システム環境は、初期設定ファイルで定義された複数の環境変数を使って構成されます。現在の作業環境を一時的に変更する場合は、コマンドプロンプトから直接コマンドを入力します。ただし、動作環境の変更を一時的ではなく、常時有効にしたい場合は、.profile、.login、.cshrc の各ファイルの中の環境変数の設定を変更する必要があります。
次のように、システムで現在設定されている環境変数を表示できます。
env コマンドを使って、SHELL
環境変数で指示されるログインシェルの確認ができます。上の例では、ログインシェルは /bin/sh (Bourne シェルの場合) です。
この節では、一般的によく使われる環境変数について説明します。これらの環境変数の大部分は、すでにユーザプロファイルに入っています。すでに述べたように、ユーザプロファイルのファイル (Bourne シェルまたは Korn シェルでは .profile、C シェルでは .cshrc) は、各ユーザのホームディレクトリにあります。
隠しファイル (ドットファイル) は、ls -la と入力すると表示できます。
次のリストは、ユーザプロファイルで使える環境変数の一部です。環境変数を定義する構文は、シェルによって異なります。
HISTORY
- history コマンドで利用できるコマンドの数を指定します。(hisotry コマンドは、C シェルだけで使用できます。)
HOME
- 各ユーザのホームディレクトリの絶対パス名を指定します。cd コマンドを引数なしで入力したときに移動先となるディレクトリは、この情報に基づいて決められます。
LANG
- ロケールの言語を指定します。有効な値は、英語 (C)、日本 (ja)、ドイツ (de)、フランス (fr)、スウェーデン (sv)、イタリア (it) などです。
LOGNAME
- ユーザのログイン名を指定します。LOGNAME 変数のデフォルト値は、passwd データベースで指定されたログイン名となるようログイン処理の過程で自動的に設定されます。passwd データベースについての詳細は、『Solaris のシステム管理 (第 1 巻)』を参照してください。
MAIL
- メールボックスのパス名を指定します。通常、メールボックスは /var/mail/username ディレクトリにあります (username は各ユーザのログイン名)。メールボックスについての詳細は、第 7 章「メールの使い方」を参照してください。
PATH
- コマンドを入力したときに、実行可能プログラムが検索されるディレクトリを順番に指定します。適切なディレクトリが検索パスにない場合は、それを PATH 変数に追加するか、コマンドを入力するときにフルパス名を指定する必要があります。
PATH
変数のデフォルト値は、.profile ファイル (Bourne シェルまたは Korn シェル) または .cshrc ファイル (C シェル) で指定された値となるようにログイン処理の過程で自動的に設定されます。
PS1
- コマンドプロンプトを指定します。Bourne シェルと Korn シェルのデフォルトプロンプトは、ドル記号 ($) です。また、C シェルのデフォルトプロンプトは、パーセント記号 (%) です。root のデフォルトプロンプトは、どのシェルでもポンド記号 (#) です。
TERMINFO
- terminfo データベースに追加された、デフォルトでない端末のパス名を指定します。terminfo データベース内のデフォルト端末については、この変数を設定する必要はありません。terminfo データベースについての詳細は、『Solaris のシステム管理 (第 2 巻)』を参照してください。
TERM
- 現在使っている端末を指定します。エディタを実行するときは、TERM
変数で定義された名前と同じ名前のファイルが検索されます。その場合、まず最初に TERMINFO
変数で指定されるパスが検索され (TERMINFO が定義されている場合)、次にデフォルトディレクトリの /usr/share/lib/terminfo が検索されて、端末の特性が決定されます。TERM 変数で定義されたファイルが見つからない場合は、その端末はダム端末と認識されます。
PATH
環境変数の設定
PATH
環境変数は、SunOS ディレクトリ階層内でコマンドを検索するために使われます。PATH
環境変数を設定すると、コマンド名を入力したときに特定のディレクトリが常に検索されるようになります。
たとえば、PATH
変数を設定していない場合にファイルをコピーする場合、/usr/bin/cp のように、コマンドのフルパス名を入力しなければなりません。これに対して、/usr/bin ディレクトリが PATH
変数に含まれるよう設定しておけば、cp と入力するだけでコマンドを実行できます。これは、PATH
変数で指定された各ディレクトリ内で cp コマンドが検索され、見つかった時点で実行されるためです。頻繁に使われる SunOS コマンドのディレクトリを PATH
変数に設定しておけば、作業効率を大幅に向上させることができます。
Bourne シェルと Korn シェルについては、次の構文を使ってホームディレクトリの .profile ファイル内で PATH
変数を設定します。
PATH=.:/usr/bin:home/bin |
home はホームディレクトリのパス名です。
C シェルについては、次の構文を使ってホームディレクトリの .cshrc ファイル内で PATH
変数を設定します。
set path=(. /usr/bin home/bin) |
home はホームディレクトリのパス名です。
C シェルでは、短縮名の ‾ を使ってホームディレクトリのパス名を表すことができます。
C シェルの環境で PATH
変数を変更した場合は、ログアウトしなくても source コマンドを実行すれば、現在のウィンドウ内で PATH
の設定を有効にできます。
example% source .cshrc |
Bourne シェルまたは Korn シェルを使っている場合は、ログアウトしなくても次のコマンドを実行すれば、現在のウィンドウ内で PATH の設定を有効にできます。
$ . .profile |
別名 (エイリアス) は、頻繁に入力するコマンドの便利な短縮名です。たとえば、削除コマンド (rm) のデフォルト設定では、ファイルを削除する前に確認を求められませんが、入力を誤って必要なファイルを削除してしまう危険性があるため、この設定では不都合な場合があります。C シェルでは、別名変数を使ってこの設定を変更できます。別名を使うには、.cshrc ファイルに次のような行を追加します。
alias rm 'rm -i' |
.cshrc ファイルにこの行があれば、rm と入力するだけで rm -i (対話形式の rm コマンド) を入力したのと同じことになります。したがって、ファイルが削除される前に常に確認を求められるようになります。(上記の例で、rm -i の両側の引用符 (`) は、rm と -i の間に空白を挿入するために必要です。この引用符がないと、C シェルは空白の後のテキストを正しく解釈できません。)
.cshrc ファイルに対して行なった変更を、ログアウトしなくても現在のウィンドウ内で有効にするには、source コマンドを使います。source コマンドを実行すると、現在の .cshrc ファイルが読み取られてその中のコマンドが実行されます。
example% source .cshrc |
コマンドプロンプトの変更に使う構文は、Bourne、Korn、C の各シェルによって異なります。
Bourne シェルまたは Korn シェルでは、PS1 コマンドを使ってコマンドプロンプトを変更することができます。次の 3 つの例を参照してください。
PS1=": " PS1="`hostname`: " PS1="`hostname`{`id`}}: " |
最初の例では、コロン (:) の後に空白が挿入されたプロンプトを設定しています。
2 番目の例では、マシン名の後にコロンと空白が挿入されたプロンプトを設定しています。
3 番目の例では、マシン名の後に中括弧 {} で囲んだログイン名、コロンと空白が挿入されたプロンプトを設定しています。
上記の例のどれかを入力して現在のコマンドプロンプトを変更してみてください。変更したプロンプトは、再度それを変更するかログアウトするまではそのままになります。
プロンプトを恒久的に変更するには、上記の例の 1 つ (または自分で作成したプロンプト) を .profile ファイルに追加します。これにより、ログインしたりシェルを再起動するたびに、指定したプロンプトが表示されるようになります。
C シェルでは、set prompt コマンドを使ってコマンドプロンプトを変更できます。次の 3 つの例を参照してください。
set prompt="% " set prompt="`hostname`¥!: " set prompt="`hostname`{`id`}}: " |
最初の例では、パーセント記号 (%) の後に空白が挿入されたプロンプトを設定しています。
2 番目の例では、マシン名の後にコマンドの履歴番号が付き、それにコロンと空白が挿入されたプロンプト (「hostname1: 」、「hostname2: 」など) を設定しています。
3 番目の例では、マシン名の後に中括弧 {} で囲んだログイン名、コロン、空白が挿入されたプロンプトを設定しています。
上記の例のいずれかを入力して現在のコマンドプロンプトを変更してみてください。変更したプロンプトは、再度それを変更するかログアウトするまではそのままになります。
プロンプトを恒久的に変更するには、上記の例の 1 つ (または自分で作成したプロンプト) を .cshrc ファイルに追加します。これにより、ログインしたりシェルを再起動するたびに、指定したプロンプトが表示されるようになります。
.profile ファイルや .cshrc ファイルでは、上記の他に多くの変数を設定できます。変数についての詳細は、『SunOS リファレンスマニュアル (1): ユーザーコマンド』を参照してください。頻繁に使われる変数については、以下で簡単に説明します。
cp コマンドを使ってファイルをコピーするときに、誤ってファイルを上書きするのを防ぐには、set noclobber を使います。この変数は C シェルだけに適用できます。次の行を .cshrc ファイルに入力します。
set noclobber |
履歴リストに保存するコマンドの個数を設定するには、set history を使います。history コマンドは、以前に入力したコマンドを参照する場合に便利です。(以下の例では 100 個まで参照できます) 履歴リストを使って、以前のコマンドを繰り返すこともできます。この変数は C シェルだけに適用できます。次の行を .cshrc ファイルに入力します。
set history=100 |
.profile ファイルに次の行を挿入すれば、Bourne シェルと Korn シェルについても同様の設定ができます。(以下の例では 100 個まで参照できます)。
HISTORY=100 |