13.4.? 実行パス

これまでいろいろなコマンドを説明してきましたが,実はこれらのコマンドも全てファイルの形になっています.実行できるようなプログラムの入ったファイルを実行ファイルといいます.

実行ファイルを実行するには,コマンドラインからその実行ファイルの位置をパス名で指定します.パス名は絶対パス名でも相対パス名でもかまいません.たとえばカレントディレクトリにあるa.outという実行ファイルを実行するには,

prompt./a.out return2

と入力します.

絶対パス名で指定する例を一つ挙げます./home01/g999999/bin/という場所にあるprogramというプログラムを実行するには,

prompt/home01/g999999/bin/program return2

と入力します.

lsなどのコマンドも実行ファイルの一つです.whichというコマンドを用いればlsが実際にシステムのどこにあるのかが分かります.

advanced

特殊なコマンド(シェル関数,シェル内部コマンド)はファイルの形ではないので出てきません.

promptwhich ls return2 /sw/bin/ls

lsがパス名を指定しなくても実行できるのは,実行パスで指定されるディレクトリの中にlsのファイルがあるからです.すなわち,実行パスで指定されるディレクトリにある実行ファイルは,実行するときにパスを指定しなくても実行することができます.実行パスのことをコマンドサーチパスなどと呼ぶこともあります.現在の実行パスはシェルの環境変数PATHに設定されています.PATHの値は,次のようにechoコマンドなどで見ることができます.

promptecho $PATH return2 /sw/lib/wrappers:/sw/fix-apple-x11/bin:/sw/ecc/bin:/opt/ECC/bin:/opt/HWB/bin:/sw/bin: /sw/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin

これらのディレクトリにある実行ファイルは,パス名を指定しなくてもコマンド名を入力するだけで実行できます.コマンドサーチパスの前のほうに登録されているディレクトリから,順番にそのコマンドが存在するかどうか調べて,一番最初に現れたコマンドが実行されます.