Solaris のシステム管理 (基本編)

シェル環境

シェルは、login プログラム、システム初期設定ファイル、ユーザー初期設定ファイルによって定義される変数を含む環境を管理します。また、一部の変数はデフォルトで定義されます。シェルには次の 2 種類の変数があります。

C シェルでは、小文字を使って set コマンドでシェル変数を設定し、大文字を使って setenv コマンドで環境変数を設定します。シェル変数を設定すると、対応する環境変数が設定され、その逆もあります。たとえば、path シェル変数を新しいパスで更新すると、シェルは PATH 環境変数も新しいパスで更新します。

Bourne、Korn の両シェルでは、何らかの値に等しい大文字の変数名を使ってシェル変数と環境変数を設定できます。また、export コマンドを使って、その後に実行されるコマンドの変数をアクティブにする必要があります。

すべてのシェルで、シェル変数と環境変数は一般的に大文字の名前で参照します。

ユーザー初期設定ファイルで、ユーザーのシェル環境を、あらかじめ定義された変数の値を変更するか、変数を追加することによってカスタマイズできます。次の表に、ユーザー初期設定ファイルで環境変数を設定する方法を示します。

表 4–19 ユーザー初期設定ファイルでの環境変数の設定方法

環境変数を設定したいシェルタイプ 

ユーザー初期設定ファイルに追加する行 

C シェル

setenv VARIAVLE value

例:

setenv MAIL /var/mail/ripley

Bourne または Korn シェル

VARIABLE =value; export VARIABLE

例: 

MAIL=/var/mail/ripley;export MAIL

次の表では、ユーザー初期設定ファイルでカスタマイズできる環境変数とシェル変数について説明します。各シェルで使用される変数の詳細については、 sh(1)ksh(1)csh(1) の各マニュアルページを参照してください。

表 4–20 シェル変数と環境変数の説明

変数 

説明 

CDPATH (C シェルでは cdpath)

cd コマンドで使用する変数を設定する。cd コマンドの対象ディレクトリを相対パス名で指定すると、cd コマンドは対象ディレクトリをまず現在のディレクトリ (.) 内で検索する。対象ディレクトリが見つからなかった場合は、CDPATH 変数のリストの順で検索され、見つかると、ディレクトリの変更が行われる。CDPATH で対象ディレクトリが見つからなかった場合は、現在の作業ディレクトリは変更されない。たとえば、CDPATH 変数を /home/jean に設定し、その下に binrje の 2 つのディレクトリがある場合。/home/jean/bin ディレクトリの中で cd rje と入力すると、絶対パスを指定しなくても、ディレクトリを /home/jean/rje に変更することになる

history

C シェルの履歴を設定する 

HOME (C シェルでは home)

ユーザーのホームディレクトリへのパスを設定する 

LANG

ロケールを設定する 

LOGNAME

現在ログインしているユーザーの名前を設定する。LOGNAME のデフォルト値は、passwd ファイルに指定されているユーザー名にログインプログラムによって自動的に設定される。この変数は参照用にのみ使用し、設定を変更してはならない

LPDEST

ユーザーのデフォルトプリンタを設定する 

MAIL

ユーザーのメールボックスへのパスを設定する 

MANPATH

アクセスできるマニュアルページの階層を設定する 

PATH (C シェルでは path)

ユーザーがコマンドを入力したときに実行するプログラムについて、シェルが検索するディレクトリを順番に指定する。ディレクトリが検索パス上にない場合は、ユーザーはコマンドの絶対パス名を入力しなければならない 

デフォルトの PATH は、ログインプロセスで .profile (Bourne または Korn シェル) または .cshrc (C シェル) の指定どおりに自動的に定義され、設定される

検索パスの順序が重要となる。同じコマンドが異なる場所にそれぞれ存在するときは、最初に見つかったコマンドが使用される。たとえば、PATH が Bourne および Korn シェル構文で PATH=/bin:/usr/bin:/usr/sbin:$HOME/bin のように定義されていて、sample というファイルが /usr/bin/home/jean/bin の両方にあるものとする。ユーザーが sample コマンドを、その絶対パスを指定しないで入力した場合は、/usr/bin で見つかったバージョンが使用される

prompt

C シェルのシェルプロンプトを設定する 

PS1

Bourne または Korn シェルのシェルプロンプトを設定する 

SHELL (C シェルではshell)

makevi、その他のツールが使うデフォルトシェルを設定する

TERMINFO

terminfo ファイルに追加した、サポートされていない端末のパス名を指定する。/etc/profile または /etc/.loginTERMINFO 変数を使用する

TERMINFO 環境変数を設定すると、システムはまずユーザーが定義した TERMINFO パスを調べる。ユーザーが定義した TERMINFO ディレクトリ内に端末の定義が見つからなかった場合は、システムはデフォルトディレクトリ /usr/share/lib/terminfo で定義を探す。どちらにも見つからなかった場合、端末は dumb として定義される

TERM (C シェルでは term)

端末を設定する。この変数は /etc/profile または /etc/.login で再設定する必要がある。ユーザーがエディタを起動すると、システムはこの環境変数の定義と同じ名前のファイルを探す。システムは、TERMINFO が参照するディレクトリ内を探して端末の特性を知る

TZ

時間帯を設定する。これは、たとえば ls -l コマンドで日付を表示する場合に使われる。TZ をユーザーの環境に設定しないと、システムの設定が使用される。設定する場合、グリニッジ標準時が使用される