用語メモ その2

普通のシェル変数はそのシェル内だけで有効ですが、シェルから実行されるプログラムにも引き継がれていくシェル変数というものがあって、これを環境変数といいます。

すでに宣言されている普通のシェル変数を環境変数にするにはexportコマンドを使用します。

export <変数名>

変数の定義と同時に環境変数にするには

export <変数名>=<文字列>

とします。


また、環境変数は一般的に全部大文字で記述されます。
echo、unsetのコマンドは、環境変数に対して、普通のシェル変数の場合と同じように使えます。

  • printenvコマンド

$printenv

と打つと、現在設定されている環境変数の一覧が表示出来ます。

環境変数PATHにはコマンドの置かれているディレクトリがコロンで区切られて格納されています。

$echo $PATH

で見られます。
これらのディレクトリに入っているコマンドはコマンド名だけで実行出来ます。これによって例えば、lsコマンドは実は「/bin/ls」ですが、これを実行するのにいちいち全部打たなくてもよくなっています。
環境変数PATHには自由にディレクトリを追加できます。このことを「パスを通す」といいます。例えば、自分で作成したコマンドを「~/bin」ディレクトリに置いている場合、以下のようにすると、コマンド名だけで実行出来るようになります。

$ PATH=$PATH:~/bin
$ export $PATH

(1行目は、<変数名>=<文字列> 。変数名は「PATH」、文字列には「$PATH」(デフォルトで書いてあったパス)、コロンを挿んで「~/bin」)
(2行目は新しい変数「PATH」を環境変数にしている)

ここで、「PATH=~/bin」のようにするとデフォルトで書いてあったパスが上書きされ、あらかじめあったコマンドにアクセス出来なくなります。良い子も悪い子もやってはいけません。

この変数には、manコマンドがマニュアルページを検索する際に使用するディレクトリが、 コロンで区切られて格納されています。