1.1 コマンドの実体

  1. ディレクトリ /bin にどんなファイルがあるか調べましょう。 ls /bin を実行してください。

    馴染みのある名前があるはずです。 cat, cp, ls, pwd などのコマンド名が, ディレクトリ /bin の中のファイルの名前として表示されます。

  2. pwd を実行して,pwd コマンドがどんなコマンドだったか, 思い出しましょう。

  3. 続いてコマンド行に /bin/pwd とタイプして <ENTER> を押してみてください。

    ファイル pwd の絶対パス名である /bin/pwd でも pwd コマンドを実行できましたね。

このことから予想されるとおり,pwd コマンドの実体は, ディレクトリ /bin に存在する通常のファイル pwd です。 UNIX コマンドの多くは,コマンドと同名のファイルとして存在していて, /bin に存在するファイルはすべて実行可能なコマンドです12

ファイルを扱うコマンドの引数にパス名が使えるのと同様に, コマンド自身を指定する際にもパス名が使えます。 /bin/pwd で pwd コマンドを実行できたのは,そのためです。 相対パス名でも可能です。

より正確にいうと,ファイルとして存在するコマンドを実行するには, 本来,コマンドのパス名を使う必要があります。 しかし,それでは不便ですので, /bin のような特定のディレクトリに存在するコマンドを, コマンド名のみで実行できるようにする仕組みがあります。 そのおかげで,/bin/pwd や /bin/ls 等を pwdls とだけタイプして実行できるのです。