【Linux入門】bashの使い方をわかりやすく解説!

Linuxには命令文を記述したり、簡単なスプリクトを組むときに使用する「bash」があります。ここでは「bash」について以下の内容で解説していきます。

bash_image

この記事では「bash」についてわかりやすく解説していますので、ぜひ使い方を覚えておきましょう!

目次

bashコマンドとは

bash(バッシュ)とは「Bourne Again Shell」の略で、Linuxでコマンドなどの命令文を記述したシェルを実行するために使われます。

bashはLinuxで標準で採用されていて、基本的に「.sh」の拡張子でviエディタなどのテキストに処理を記述して実行します。プログラミング同様に変数や関数、演算処理など多くの機能がありちょっとしたプログラムならbashのみでも記述することができます。

また、bashはシェルによって実行されるのでシェルスクリプトとも呼びます。

シェルスクリプトの作成

では実際にbashが記述されたシェルスクリプトを作成してみましょう。まずはコンソールに「Hello World!!」を出力する簡単なスクリプトを作成してみます。

viコマンドで新規にファイルを作成します。

$ vi hello.sh

エディタを開いたら以下のように記述します。

#!/usr/bin/bash

echo "Hello World!!"

exit 0

1行目の「#!/usr/bin/bash」はbashを使用したシェルスクリプトであることを意味しています。2行目では実行する命令文を記述します。最後に「exit 0」でbashを終了します。引数の0は正常に終了することを意味します。

ファイルを作成したら「bash」コマンドでシェルスクリプトを実行します。

$ bash hello.sh

実行結果:

Hello World!!

Hello World!!が出力されました!

また、シェルスクリプト実行時のコマンドは「bash」のほかに、実行権を変更して「./」で実行する方法と、

$ chmod 755 hello.sh
$ ./hello.sh

「sh」コマンドで実行する方法があります。

$ sh hello.sh

bashの基本を理解しよう!

コメント

シェルスクリプトにはプログラミング同様コメントを記述することができます。コメントは「#」以降に書くことができます。

#!/usr/bin/bash

#ここはコメントです。
echo "Hello World!!"

#処理を終了します。
exit 0

変数の定義

シェルスクリプトは変数を定義して値を代入することができます。

#!/usr/bin/bash

num=100
PI=3.14
STR1="Hello"
str_2="World!!"

echo ${num}
echo ${PI}
echo ${STR1}
echo ${str_2}

exit 0

変数は大文字小文字や数字などの半角英数字やアンダーバー(_)が使えます。変数に値を代入するときは「変数=値」のように記述します。「=」の前後に空白を入れるとエラーになるので注意しましょう。

また、変数にアクセスするときは「${変数}」のように変数名の前に「$」を付けて、変数を「{}」で囲む必要があります。

入力と出力

シェルスクリプトは「echo」で出力を行い、「read」で入力を行います。

#!/usr/bin/bash

read AGE
echo "ege=$AGE"

exit 0

実行結果:

30
ege=30

readは引数に指定した変数にコンソールから入力された内容を格納します。readで指定した変数は通常の変数のように参照することができます。

まとめ

ここでは、bashの基本について、

  • bashとは
  • bashの使い方
  • シェルスクリプトの作り方
  • bashの基本処理


などについて解説しました。

シェルスクリプトはLinuxで開発する上で使用する機会が多いので使い方はしっかりと理解しておきましょう。もし、「bash」の使い方について忘れてしまったら、この記事を参考にしてくださいね!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次