woshidan's blog

そんなことよりコードにダイブ。

「パスを通す」とは何をしているのか

ここ3年くらい恐る恐る export PATH="$PATH:additional_path" のような行を .bash_profile に追加する日々を生きていたのですが、ようやくなんとなく意味がわかったのが嬉しかったのでメモ。

  • 「(お目当てのコマンドへの)パスを通す」というときは、お目当ての「コマンド」があるディレクトリのパスを「実行ファイル検索パス」に追加している
  • 「コマンド」とはUnix関連の用語でコンパイルが済んでおり、ファイル名を打ち込めば実行可能な状態のプログラムのファイル*1
  • 「実行ファイル検索パス」とは環境変数 PATH: 区切りで記述されているディレクトリ群のこと
  • コマンド名(というよりファイル名)を入れた時、 PATH に記述されたディレクトリのどれかの中にその名前のコマンドがないか探す*2
  • which コマンドでは PATHディレクトリ群の中に引数で与えたコマンド(という種類のファイル)を含むディレクトリがないか検索してその結果を表示している

参考

現場からは以上です。

*1:C言語のプログラムでいうと a.out 的な.

*2:探した結果、ディレクトリやファイルしかないと bash: your_file: command not found のようなエラーが出る