Solaris のシステム管理 (第 1 巻)

シェル環境

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

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

Bourne、Korn 両シェルでは、一般的に、大文字を使って setenv コマンドでシェル変数と環境変数を設定します。また、export コマンドで環境変数の設定を終了しなければなりません。すべてのシェルで、シェル変数と環境変数は一般的に大文字の名前で参照します。

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

表 2-14 ユーザー初期設定ファイルでの環境変数の設定方法

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

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

C シェル

setenv VARIAVLE value

例:

setenv MAIL /var/mail/ripley

Bourne または Korn シェル

VARIABLE=value; export VARIABLE

例: 

MAIL=/var/mail/ripley;export MAIL

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

表 2-15 シェル変数と環境変数の説明

変数 

説明 

ARCH

ユーザーのシステムアーキテクチャ (たとえば sun4i386) を設定する。この変数は ARCH = `uname -p` (Bourne または Korn シェル) または setenv ARCH `uname -p` (C シェル) で設定する。この変数に影響されるシェルの動作はない。この変数は単にシェルスクリプト内での分岐に利用する。

CALENDAR

Calender 実行ファイルにパスを設定する。 

CDPATH (C シェルでは cdpath)

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

DESKSET

DeskSetTM 実行ファイルへのパスを設定する。

history

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

HOME (C シェルでは home)

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

LANG

ロケールを設定する。 

LOGNAME

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

LPDEST

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

MAIL

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

MANPATH

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

MANSECTS

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

OPENWINHOME

OpenWindows サブシステムへのパスを設定する。 

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 をユーザーの環境に設定しないと、システムの設定が使用される。設定する場合、グリニッジ標準時が使用される。