【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
コマンド実行時のシェルの動作
コマンド実行時、シェルは以下のように動作します。
- コマンドの実行
ユーザーがシェルにコマンドを入力します。 - エイリアスか組み込みコマンドのチェック
シェルは、入力されたコマンドがエイリアスか組み込みコマンドかを最初に確認します。 - 環境変数PATHの確認
コマンドがエイリアスや組み込みコマンドでない場合、シェルはPATH
環境変数を参照します。 - コマンドの探索
PATH
にリストされているディレクトリを順に検索し、該当する実行ファイルを探します。 - コマンドの実行
コマンドが見つかった場合、シェルはそのコマンドを実行します。 - エラーメッセージ
コマンドが見つからない場合は、「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 |
これらのポイントを理解し、適用することで、シェルの操作を効率的に行うことができます。