Oracle® Solaris 11.2 のユーザーアカウントとユーザー環境の管理

印刷ビューの終了

更新: 2014 年 9 月
 
 

bash および Korn シェル環境変数

bash シェルと ksh93 シェルは、シェルが認識している特殊な変数情報を環境変数として格納します。bash シェルで、現在の環境変数の完全なリストを表示するには、次のように declare コマンドを使用します。

$ declare
BASH=/usr/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINEND=()
BASH_SOuRCE=()
BASH_VERSINFO=([0]=''3'' [1]=''2'' [2]=''25'' [3]=''1''
[4]=''release'' [5]''
.
.
.

ksh93 シェルでは、bash シェルの declare コマンドに相当する set コマンドを使用します。

$ set
  COLUMNS=80
  ENV='$HOME/.kshrc'
  FCEDIT=/bin/ed
  HISTCMD=3
  HZ=''
  IFS=$' \t\n'
  KSH_VERSION=.sh.version
  LANG=C
  LINENO=1
  .
  .
  .

どちらのシェルでも、環境変数を出力するには echo または printf コマンドを使用します。例:

$ echo $SHELL
/usr/bin/bash
$ printf "$PATH\n"
/usr/bin:/usr/sbin

注 -  環境変数はセッション間で持続しません。持続的な環境変数値を設定するには、.bashrc ファイルに値を設定します。

シェルには次の 2 種類の変数があります。

環境変数

シェルによって生成されるすべてのプロセスにエクスポートされる変数を指定します。変数のエクスポートには export コマンドが使用されます。例:

export VARIABLE=value

これらの設定は env コマンドを使用して表示できます。PATH などを含む環境変数の一部が、シェルそのものの動作に影響を与えます。

シェル (ローカル) 変数

現在のシェルのみに影響を及ぼす変数を指定します。

ユーザー初期設定ファイルで、定義済み変数の値を変更するか、または追加の変数を指定することによって、ユーザーのシェル環境をカスタマイズすることができます。

次の表は、Oracle Solaris リリースで使用可能なシェルおよび環境変数の詳細について説明しています。

表 1-10  シェル変数と環境変数の説明
変数
説明
CDPATH
cd コマンドで使用する変数を設定します。cd コマンドの対象ディレクトリを相対パス名で指定すると、cd コマンドは対象ディレクトリをまず現在のディレクトリ (.) 内で検索します。対象ディレクトリが見つからない場合、CDPATH 変数内のパス名のリストが順に検索され、見つかると、ディレクトリの変更が行われます。CDPATH で対象ディレクトリが見つからなかった場合は、現在の作業ディレクトリは変更されません。たとえば、CDPATH 変数が /home/jean に設定されており、/home/jean の下に binrje の 2 つのディレクトリがあるとします。/home/jean/bin ディレクトリ内で cd doc と入力した場合、フルパスを指定していなくても、ディレクトリが /home/jean/doc に変更されます。
HOME
ユーザーのホームディレクトリへのパスを設定します。
LANG
ロケールを設定します。
LOGNAME
現在ログインしているユーザーの名前を定義します。LOGNAME のデフォルト値は、passwd ファイルに指定されているユーザー名にログインプログラムによって自動的に設定されます。この変数は参照用にのみ使用し、設定を変更してはいけません。
MAIL
ユーザーのメールボックスへのパスを設定します。
MANPATH
アクセスできるマニュアルページの階層を設定します。

注 -  Oracle Solaris 11 以降は、MANPATH 環境変数は不要になりました。man コマンドは、PATH 環境変数の設定に基づいて適切な MANPATH を決定します。

PATH
ユーザーがコマンドを入力したときに実行するプログラムについて、シェルが検索するディレクトリを順番に指定します。ディレクトリが検索パス上にない場合は、ユーザーはコマンドの絶対パス名を入力しなければなりません。
デフォルトの PATH は、ログインプロセスで .profile の指定どおりに自動的に定義され、設定されます。
検索パスの順序が重要です。同じコマンドが異なる場所にそれぞれ存在するときは、その名前で最初に見つかったコマンドが使用されます。たとえば、PATH がシェル構文で PATH=/usr/bin:/usr/sbin:$HOME/bin のように定義されており、sample というファイルが /usr/bin/home/jean/bin の両方にあるものとします。ユーザーが sample コマンドを、その絶対パスを指定しないで入力した場合は、/usr/bin で見つかったバージョンが使用されます。
PS1
bash または ksh93 シェルのシェルプロンプトを定義します。
SHELL
makevi、その他のツールが使うデフォルトシェルを設定します。
TERMINFO
代替の terminfo データベースが保存されているディレクトリに名前を付けます。/etc/profile または /etc/.login ファイルで TERMINFO 変数を使用します。詳細は、terminfo(4) のマニュアルページを参照してください。
TERMINFO 環境変数を設定すると、システムはまずユーザーが定義した TERMINFO パスを調べます。ユーザーが定義した TERMINFO ディレクトリ内に端末の定義が見つからなかった場合は、デフォルトディレクトリ /usr/share/lib/terminfo で定義を探します。どちらの場所でも定義が見つからなかった場合、端末は dumb として定義されます。
TERM
端末を定義します。この変数は、/etc/profile または /etc/.login ファイルで再設定するようにしてください。ユーザーがエディタを起動すると、システムはこの環境変数で定義される名前と同じ名前のファイルを探します。システムは、TERMINFO が参照するディレクトリ内を探して端末の特性を知ります。
TZ
タイムゾーンを設定します。タイムゾーンは、たとえば ls -l コマンドで日付を表示する場合に使われます。TZ をユーザーの環境に設定しない場合、システムの設定が使用されます。それ以外の場合は、グリニッジ標準時が使用されます。