知っておくべき6つの便利なBashシェル変数
BashはほとんどのLinuxディストリビューションのデフォルトシェルです。ここでは、すべてのLinuxユーザーが知っておくべき重要なBashシェル変数をいくつか紹介します。
シェル変数は、Linuxシステムの円滑な運営に重要です。たとえば、プログラムやコマンドを実行するたびに、システムはPATH変数を見て、プログラムが存在するかどうかを確認します。シェル変数の知識は、Linuxシステムの日常的な使用や管理にとって重要です。
シェル変数の重要性
シェル変数は、Linuxシステム、プログラム、またはスクリプトによって使用される情報を保存するためのプレースホルダーです。
Linuxには異なる種類のシェルやコマンドラインインタープリタがあり、すべてが変数を広範囲に使用しています。シェル変数が果たす重要な役割のいくつかは次のとおりです:
- シェル変数を使用すると、シェル内で値を保存したり操作したりでき、計算や他の操作における結果を操作することができます。
- それらはスクリプトやプログラム間で値を渡す方法を提供します。
- シェル変数を使用してプログラムの動作をカスタマイズできます。
シェル変数は非常に柔軟であり、自分自身のカスタム変数を作成することもできますが、ここではシステムに付属するいくつかのデフォルトの変数を示します。
1. パス
PATH変数は、ターミナルでコマンドを入力したときにシステムが実行可能ファイルを検索すべきディレクトリを指定します。
これはシステム全体の環境変数であり、コロンで区切られたディレクトリのリストで構成されています。コマンドとして入力した名前の実行可能ファイルが各ディレクトリで順番に検索されます。
例えば、ターミナルで ls コマンドを入力すると、システムは PATH 変数で指定されたディレクトリを検索して ls という名前のコマンドを探します。ファイルが見つかれば実行され、見つからなければ「コマンドが見つかりません」というエラーメッセージが表示されます。
PATH変数は重要であり、実行可能ファイルのフルパスを指定することなく、任意のディレクトリからコマンドを実行できるようにします。たとえば、「ls」実行可能ファイルが/usr/binディレクトリにある場合、フルパス/usr/bin/lsを指定するのではなく、単にlsと入力することで、どのディレクトリからでもlsコマンドを実行できます。
次のようにechoコマンドを実行することで、PATH変数の現在の値を表示できます。
echo $PATHPATH変数の値は、リストからディレクトリを追加または削除することで変更することもできます。これは、独自の実行ファイルやカスタムスクリプトを含むディレクトリを追加したい場合や、コマンドを実行する際に検索されるディレクトリを変更したい場合に便利です。
2. ホーム
Linuxでは、HOME変数はユーザーのホームディレクトリへのパスを指定する環境変数です。なぜこれが重要なのでしょうか?それは、LinuxはマルチユーザーOSであり、ホームフォルダは各ユーザーに関連付けられた特別なディレクトリだからです。
ホームディレクトリは通常、ユーザーの個人ファイル、例えば文書、画像、音楽などを保存するために使用されます。
HOME変数は通常、ログイン時に自動的に設定され、ユーザーのホームディレクトリを見つけるために多くのプログラムやスクリプトで使用されます。例えば、引数なしでcdコマンドを実行すると、HOME変数を使用してユーザーのホームディレクトリに移動します。
多くのプログラムは、HOME変数を使用してユーザーのホームディレクトリに設定ファイルやその他のデータを保存します。現在のHOME変数の値を確認するには、echo $HOMEコマンドを実行します。
3. ユーザー
USER変数は、現在ログインしているユーザーのユーザー名を指定します。ログインすると自動的に設定され、プログラムやスクリプトが現在のユーザーのユーザー名を特定するために一般的に使用されます。
USER変数は、現在のユーザーに基づいてプログラムの動作をカスタマイズするためにスクリプトでよく使用されます。たとえば、スクリプトはUSER変数の値をチェックし、現在のユーザーがrootまたはsudo権限を持っている場合にのみ特定のアクションを実行することがあります。
特定の一般的なコマンドを実行するために、変数を使用することもできます。たとえば、ユーザーをDockerグループに追加する場合、実際のユーザー名を入力する代わりに、次のコマンドを実行するだけで済みます:
sudo usermod -aG docker $USER4. シェル
シェルは、オペレーティングシステムと対話するためのコマンドラインインターフェース(CLI)を提供するプログラムです。
ほとんどのLinuxシステムではBourne Again Shell(Bash)がデフォルトとして使用されていますが、多くの代替手段も存在します。Cシェル(csh)、Zシェル(Zsh)、fishなどがあります。
SHELL変数は、ユーザーのデフォルトシェルへのパスを指定します。ログイン時に自動的に設定されます。
さらに、この変数はスクリプト内で使用され、ユーザーのデフォルトシェルに基づいてプログラムの動作をカスタマイズします。例えば、スクリプトはSHELL変数の値をチェックし、使用されているシェルに応じて異なる構文やオプションを使用することがあります。
現在のSHELL変数の値は、echo $SHELLを実行することで確認できます。デフォルトのシェルはchshコマンドを使用して変更できます。
5. PWD
Linuxのもうひとつの重要な環境変数であるPWDは、現在の作業ディレクトリを保存します。ほとんどの環境変数が主に静的であるのとは異なり、これはcdコマンドを使用してディレクトリを変更するたびにシェルによって更新されます。
シェルスクリプトでPWD変数を使用することで、現在の作業ディレクトリを簡単に参照することができます。この変数の値は、pwdコマンドを実行したときに得られるものと似ています。
6. ホスト名
ホスト名またはデバイス名は、ネットワーク上でコンピュータを識別するために使用される一意の名前です。たとえば、マシンにSSH接続したい場合、IPアドレスの代わりにホスト名を使用することができます。
HOSTNAME変数は、システムのホスト名を単に指定する環境変数です。システムが起動する際に自動的に設定され、通常はネットワークに接続されたときにシステムを識別するために使用されます。Linuxでホスト名を変更する方法はいくつかあります。
HOSTNAME変数は、プログラムやスクリプトがシステムを識別し、ホスト名に基づいて動作をカスタマイズするためにも使用されます。スクリプトは通常、HOSTNAME変数の値をチェックし、システムが特定のホストである場合にのみ特定のアクションを実行します。
Linuxでカスタム変数を作成する
自動的に設定されるデフォルトのLinux変数とは別に、exportコマンドを使用して独自のシェル変数を定義することもできます。「GREETING」という名前の新しい変数を「Hello World」という値で作成するには、次のコマンドを使用できます。
export GREETING="Hello World"その後、GREETING変数をスクリプトやコマンドライン内で他の環境変数と同様に使用できます。


