WindowsユーザーのためのPATH講座

なんか、UNIXMS-DOSを知らないけどgccのためにCygwin使っている人が多い感じなので、パスについて簡単に書いておきます。


まず、/foo/barという実行ファイルがあったとして、bashから起動するには、

/foo/bar

とします。
毎回フルパスで指定するのは面倒なんで、環境変数PATHの値を「/foo」にします。
そうすると、

bar

だけで呼べるようになります。


肝心のPATHの設定方法は、

PATH=/foo
export PATH

です。
一行目はシェル変数PATHの値を「/foo」にしています。
二行目はシェル変数PATHの内容を環境変数として見えるようにしています。
この方法はsh/bash共通のものですが、bashの場合は短縮形で、

export PATH=/foo

とも書けます。


PATHに複数の値を設定する場合は「:」で区切ります。

PATH=/usr/bin:/bin

この場合、プログラムは「/usr/bin」、「/bin」の順に探索されます。
whichコマンドを用いるとどのパスが使われたかが分かります。

% which gcc
/usr/bin/gcc


シェル変数の内容を展開するには「${名前}」とします。

echo ${PATH}

とすればPATHの内容を確認できます。
あるいは、

env

とすれば現在の環境変数の一覧が表示されます。


環境(環境変数の集合)は現在のプロセスとその子プロセスに適用されます。*1
これはbashを終了したら、変更内容が元に戻ってしまうことを意味します。
bashを起動するたびに行う設定があれば起動スクリプトに書きます。
個人用の設定であればホームディレクトリの.bashrcファイルに書いておくのが便利です。
.bashrcファイルの末尾に

PATH=/foo:${PATH}

と書いておけばシステムの既定のPATHに/fooを追加することができます。

*1:子プロセスの起動時に別の環境を設定することも出来ます。