このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンドの基本:シェル変数:コマンドパス検索

シェル変数の設定

 シェル変数は、bashシェル内で使用される変数であり、数値や文字列などの情報を保持してシェルの動作や環境をカスタマイズするために利用されます。bashには、シェルの機能を制御するための特別なシェル変数が多数用意されており、これらを適切に設定することで、シェルの挙動を自在に調整することができます。

 ここでは、シェル変数の設定方法について詳しく解説します。具体的には、コマンド検索パスを指定する重要なシェル変数である PATH について学びます。PATH変数を理解し適切に設定することで、コマンドの実行がより効率的になり、システムの操作性が向上します。

シェル変数 PATH:コマンド検索パス

 シェル変数 PATH は、コマンドを実行する際にシェルがそのコマンドの実体ファイルを探すディレクトリを指定します。PATH変数には、シェルがコマンドを検索するディレクトリが「:」で区切られた文字列として設定されています。

PATH の内容を確認

現在の PATH 変数の内容は、以下のコマンドで確認できます。

user01@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
/usr/local/games:/snap/bin

 上記の出力では、複数のディレクトリパスがコロンで区切られており、シェルはこれらのディレクトリを順番に検索してコマンドを探します。

PATH にディレクトリを追加する理由

 通常、PATH にはディストリビューションごとに適切な値が設定されています。しかし、以下のような場合に PATH にディレクトリを追加したいことがあります。

  • 個別にインストールしたアプリケーションの実行ファイルが標準のディレクトリにない場合
  • 自分で作成したコマンドやスクリプトを簡単に実行したい場合

 PATH 変数の値を変更してディレクトリを追加すると、そのディレクトリ内のコマンドをフルパスを指定せずに実行できるようになります。

~/bin ディレクトリを PATH に追加する

 Linuxでは、ユーザー自身が独自のコマンドやスクリプトを作成することが一般的です。これらのコマンドを配置する場所として、ホームディレクトリ下の ~/bin ディレクトリがよく使用されます。

PATH~/bin を追加するには、以下のように PATH 変数を再設定します。

user01@ubuntu:~$ PATH="$PATH:~/bin"

PATH の内容を再確認

PATH の末尾に ~/bin が追加されていることが確認できます。

user01@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
/usr/local/games:/snap/bin:~/bin

PATH の設定方法

PATH 変数を設定・変更する際には、以下の点に注意してください。

  • 現在の PATH に新しいディレクトリを追加する場合、既存の PATH の値を維持する必要があります。
  • 変数の内容を変更するコマンドを使用して、変更を現在のシェル環境に反映させます。

PATH 変数の設定コマンド

user01@ubuntu:~$ PATH="$PATH:追加したいディレクトリ"
  • $PATH:現在の PATH の値
  • ::ディレクトリの区切り
  • 追加したいディレクトリ:新たに追加するディレクトリパス

~/bin 内のコマンドを実行する

 PATH~/bin を追加することで、~/bin ディレクトリに配置したコマンドやスクリプトを、フルパスを指定せずに実行できるようになります。

例:~/bin にある mycommand を実行

mycommand~/bin に存在する場合、直接実行できます。

user01@ubuntu:~$ mycommand

まとめ

  • PATH 変数は、シェルがコマンドを検索するディレクトリのリストを保持します。
  • ディレクトリパスは「:」で区切られており、シェルは左から順にディレクトリを検索します。
  • PATH に新しいディレクトリを追加することで、そのディレクトリ内のコマンドをフルパスなしで実行できます。
  • ユーザー自身が作成したコマンドやスクリプトを ~/bin に配置し、PATH に追加することで、効率的なコマンド実行が可能になります。

 シェル変数 PATH を正しく理解し設定することで、システムの操作性が向上し、日々の作業がよりスムーズになります。自分好みのシェル環境を構築するために、ぜひ PATH 変数の設定を試してみてください。