4.4. シェル変数と環境変数


シェルの動作を設定するには、変数あるいは環境変数を用いる。

シェル変数は、 現在実行中のシェルだけで有効な変数である。

環境変数は、 シェルから実行したすべてのコマンドにも引き継がれる。

これらの変数の割合はあらかじめ決められているのだが、ユーザーも自分で、その役割を変更することができる。

ここで、bash シェルのみの場合に限るが、この場合、シェル変数と環境変数はほとんど一体化され、シェル変数を export (外部に公開)すると、環境変数になる。

例えば、シェル変数 var に値 「example」 を設定するには、

       var=example  (「=」の前後に空白文字を挿入しないこと)

と入力する。

このシェル変数 var を環境変数にするには、

        export var

と入力する。

シェル変数 var  を参照するには、

         ${var}

と記述する。

シェル環境を削除するには、unset コマンドが 使える。今の場合、シェル変数varを削除するには、

       unset var

と入力すればよい。

現在設定されているシェル変数の一覧を出力したいとき、

       echo $var

と入力する。

さらに、設定されている環境変数の一覧を出力するには、

       printenv

というコマンドがある。特定の環境変数のみの設定値を出力したいとき、

       printenv 「特定の環境変数」

と入力する。例えば、

       printenv $ LANG

で変数 LANG (言語)の設定が出力できる。

代表的なシェル変数

PATH

コマンドの検索パスを設定する。複数のパス名を「:」(コロン)で 区切る。例えば、

       echo $PATH

を入力すると、現在設定されている検索パス名が出力される。

PS1

シェルのプロンプトを指定する文字列が設定される。一般的に、

       echo $PS1

に対して

       \u@\h \w\$

が出力される。ここで、

    \u   :   ユーザー名
   \h   :    ホスト名
  \w  :    カレント・ディレクトリ
     \$  :   そのまま出力される文字列

である。

PS1 プライマリ・シェル変数である、すなわち最初に起動するシェルである。これに対してPS2、すなわち次々とシェルを呼び出すシェルに対応するものである。

PWD

カレント・ディレクトリが設定される。

USER

ユーザーが設定される。

HOME

ホーム・ディレクトリが設定される。

HOSTNAME

ホスト名が設定される。

Linuxは、国際化のため、地域に適した環境で利用できる様々な機能を持つ。これらを locale (ロケール)で言語、地域固有の日付、日時の表記を定義できる。

LANG

言語が設定される。

date

現在の日時を表示するコマンドである。

例えば、

       echo $LANG

で現在設定されている言語は日本語であることを確認した上で、

       date

を実行すれば、日付は日本語で出力される。

なお、

       LANG=C

と入力すると、言語を英語に変更できる。今度また date を入力すれば、日付は英語で表示される。また日本語に戻すには、

       LANG=ja_JP

と入力する。

シェルのカスタマイズ

今まで紹介したシェル変数の設定は、システムを再起動すれば、消えてしまうものだった。そこで、シェルの起動時に、指定されたカスタマイズを自動的に行う には、「設定ファイル」と 呼ばれるテキスト形式のファイルを使う。

シェル設定ファイルは、ホーム・ディレクトリに格納され、先頭の文字が「.」(ピリオド)なので、隠しファイルになっている。これらのファイルを表示する には、

       ls -al

を実行すればよい。

bashシェルの場合、ログインのとき、まず

       .bash_profile

を読み込み、このファイルがない場合、

       .bash_login

を読み込み、さらに、このファイルがないとき、

       .profile

を読み込む。

ホーム・ディレクトリに bash シェルシェル関係の設定ファイルとして

       .bashrc

もある。ログインのシェルは bash ではないとき、まず、.bashrcを読み込む。

そうすると、一般的に、設定ファイルは、

       .bash_profile   ログイン・シェルのシェルは bash のとき読み込むフィル

       .bashrc          ログイン・シェルのシェルは bash ではないとき読み込むフィル

の二つが必要である。


戻る        目次              進む