【Linux】外部コマンドの実行と環境変数PATH

外部コマンドが実行できる仕組み

 外部コマンドは、シェルがファイルシステム上の特定のディレクトリに存在する実行可能ファイルとして認識されます。シェルは、コマンドを実行する際に環境変数 PATH に指定されたディレクトリを順に検索し、該当するコマンドを見つけて実行します。

環境変数PATH

 PATH は、シェルが外部コマンドを検索するディレクトリのリストを保持する環境変数です。複数のディレクトリパスはコロン(:)で区切られています。

環境変数PATHの値の表示

PATH の現在の値を表示するには、以下のコマンドを使用します。

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

コマンド実行時のシェルの動作

コマンド実行時、シェルは以下のように動作します。

  1. コマンドの実行
    ユーザーがシェルにコマンドを入力します。
  2. エイリアスか組み込みコマンドのチェック
    シェルは、入力されたコマンドがエイリアスか組み込みコマンドかを最初に確認します。
  3. 環境変数PATHの確認
    コマンドがエイリアスや組み込みコマンドでない場合、シェルは PATH 環境変数を参照します。
  4. コマンドの探索
    PATH にリストされているディレクトリを順に検索し、該当する実行ファイルを探します。
  5. コマンドの実行
    コマンドが見つかった場合、シェルはそのコマンドを実行します。
  6. エラーメッセージ
    コマンドが見つからない場合は、「command not found」などのエラーメッセージが表示されます。

新しいコマンドパスを追加するには

 新しいディレクトリを PATH に追加するには、以下のコマンドを使用します。例えば、/new/path というディレクトリを追加する場合、もともと登録されていたコマンドパスを残した上で、その後ろに「:」と新しいコマンドパスを追加します。

 これにより、新しいパスが PATH に追加され、シェルはそのディレクトリもコマンドの検索の対象とします。

export PATH=$PATH:/new/path

まとめ

 外部コマンドが実行される仕組みは、シェルが PATH 環境変数にリストされたディレクトリを順に検索し、該当する実行ファイルを探して実行することに基づいています。PATH の設定を適切に行うことで、シェルが新しいコマンドを認識し、実行できるようになります。以下の表は、上記の情報を簡潔にまとめたものです。

項目説明
環境変数 PATHシェルが外部コマンドを検索するディレクトリのリスト
PATH の値の表示echo $PATH
シェルの動作順序1. コマンドの実行
2. エイリアスか組み込みコマンドのチェック
3. 環境変数 PATH の確認
4. コマンドの探索
5. コマンドの実行
6. エラーメッセージ
新しいパスの追加export PATH=$PATH:/new/path
まとめ

これらのポイントを理解し、適用することで、シェルの操作を効率的に行うことができます。