Solaris ユーザーズガイド (上級編)

環境変数の設定

システム環境は、初期設定ファイルで定義された複数の環境変数を使って構成されます。現在の作業環境を一時的に変更する場合は、コマンドプロンプトから直接コマンドを入力します。ただし、動作環境の変更を一時的にではなく、常時有効にしたい場合は、適切なユーザプロファイルファイル内に永続的な環境変数を設定できます。

システムに現在設定されている環境変数を表示するには、env コマンドを使用します。

    env コマンドを入力して Return キーを押します。


    $ env
    
    HOME=/home/user2
    
    PATH=/usr/bin:
    
    LOGNAME=user2
    
    HZ=100
    
    TERM=dtterm
    
    TZ=US/Mountain
    
    SHELL=/bin/csh
    
    MAIL=/var/mail/user2
    
    PWD=/home/user2
    
    USER=user2
    
    $

    注 –

    env コマンドを使って、ログインシェルの確認も行えます。ログインシェルは、SHELL 環境変数で指定されます。上記の例では、シェルは /bin/csh (C シェル) に設定されています。


ユーザプロファイル

この節では、一般的によく使われる環境変数について説明します。これらの環境変数の大部分は、すでにユーザプロファイルに入っています。すでに述べたように、ユーザプロファイルのファイルは、各ユーザのホームディレクトリにあります。


注 –

隠しファイル (ドットファイル) は、ls コマンドに -la オプションを指定することで表示できます。


次のリストは、ユーザプロファイルで使える環境変数の一部です。環境変数を定義する構文は、現在のシェルによって異なります。

PATH 環境変数の設定

PATH 環境変数は、SunOS ディレクトリ階層内でコマンドを検索するために使われます。PATH 環境変数を設定すると、コマンド名を入力したときに特定のディレクトリが常に検索されるようになります。

たとえば、PATH 変数を設定していない場合にファイルをコピーする場合、/usr/bin/cp のように、コマンドの絶対パス名を入力しなければなりません。これに対して、/usr/bin ディレクトリが PATH 変数に含まれるよう設定しておけば、cp と入力するだけでコマンドを実行できます。これは、PATH 変数で指定された各ディレクトリ内で cp コマンドが検索され、見つかった時点で実行されるためです。頻繁に使われる SunOS コマンドのディレクトリを PATH 変数に設定しておけば、作業効率を大幅に向上させることができます。

Bourne シェル、Bourne Again シェル、および Korn シェルについては、次の構文を使ってホームディレクトリのユーザプロファイルファイル内で PATH 変数を設定できます。


PATH=.:/usr/bin:/home/bin

home は、ホームディレクトリのパス名です。

C シェル、TC シェル、および Z シェルについては、次の構文を使ってホームディレクトリのユーザプロファイルファイル内で PATH 変数を設定できます。


set path=(/usr/bin home/bin .)

home はホームディレクトリのパス名です。


注 –

C シェル、Korn シェル、TC シェル、Bourne Again シェル、および Z シェルでは、短縮名の ~ を使ってホームディレクトリのパス名を表すことができます。


C シェル、TC シェル、または Z シェルの環境で PATH 変数を変更した場合は、ログアウトしなくても source コマンドを実行すれば、現在のウィンドウ内で PATH の設定を有効にできます。


example% source user-profile-file 

Bourne シェル、Bourne Again シェル、または Korn シェルを使っている場合は、ログアウトしなくても次のコマンドを実行すれば、現在のウィンドウ内で PATH の設定を有効にできます。


$ . user-profile-file

コマンドの別名

コマンドの別名は、頻繁に入力するコマンドに利用できる便利な短縮名です。たとえば、削除コマンド (rm) のデフォルト設定では、ファイルを削除する前に確認を求められませんが、入力を誤って必要なファイルを削除してしまう危険性があるため、この設定では不都合な場合があります。alias 変数を使うと、ユーザプロファイルファイルを編集してこの設定を変更できます。

C シェルと TC シェルでは、ユーザプロファイルファイルに次の行を追加します。


alias rm  'rm -i'

Bourne Again シェル、Korn シェル、および Z シェルでは、ユーザプロファイルファイルに次の行を追加します。


alias rm='rm -i'

ユーザプロファイルファイルにこの行があれば、rm と入力するだけで rm -i (対話形式の rm コマンド) と入力したのと同じことになります。したがって、ファイルが削除される前に常に確認を求められるようになります。上記の例で、rm -i の両側の引用符は、rm-i の間に空白を挿入するために必要です。 この引用符がないと、シェルは空白のあとのテキストを正しく解釈できません。

ユーザプロファイルファイルに対して行なった変更を、現在のウィンドウ内でただちに有効にするには、別のコマンドを入力する必要があります。C シェルと TC シェルでは、次のコマンドを使用します。


example% source user-profile-file

source コマンドを実行すると、現在のユーザプロファイルファイルが読み取られてこのファイル内のコマンドが実行されます。

Bourne Again シェル、Korn シェル、および Z シェルでは、次のコマンドを入力すると別名がただちに有効になります。


$ . user-profile-file

Bourne Again シェル、Korn シェル、および Z シェルでは、C シェルおよび TC シェルにおける source コマンドと同じ役割を果たす (.) コマンドを使用します。


注 –

alias コマンドを使用して作成されるコマンドエイリアスは、現在のセッションにしか適用されません。


コマンドプロンプトの変更

コマンドプロンプトの変更に使う構文は、使用しているシェルによって異なります。

Bourne、Bourne Again、Korn、Z シェルの場合

Bourne シェル、Bourne Again シェル、Korn シェル、および Z シェルでは、PS1 コマンドを使ってコマンドプロンプトを定義し直すことができます。次の 3 つの例を参照してください。

上記の例のいずれかを入力して現在のコマンドプロンプトを変更してみてください。この変更は、コマンドプロンプトを再度変更するかログアウトするまで継続します。

変更を持続させるには、上記の例の 1 つ (または自分で作成したプロンプト) を自分のユーザプロファイルファイルに追加します。指定するプロンプトが、ログインしたり、新しいシェルを起動するときに表示されます。

C シェルと TC シェル

C シェルと TC シェルでは、set prompt コマンドを使ってコマンドプロンプトを変更できます。次の 3 つの例を参照してください。

上記の例のいずれかを入力して現在のコマンドプロンプトを変更してみてください。この変更は、コマンドプロンプトを再度変更するかログアウトするまで継続します。

変更を持続させるには、上記の例の 1 つ (または自分で作成したプロンプト) を自分のユーザプロファイルファイルに追加します。指定するプロンプトが、ログインしたり、新しいシェルを起動するときに表示されます。

その他の便利な変数

ユーザプロファイルファイルには、上記以外にも多数の変数を設定できます。変数についての詳細は、『manpages section 1 : User Commands』を参照してください。次節以降では、比較的よく使われるオプションをいくつか説明します。

noclobber 変数

cp コマンドを使ってファイルをコピーするときに、誤ってファイルを上書きするのを防ぐには、set noclobber を使います。この変数は、Bourne Again シェル、C シェル、Korn シェル、および TC シェルに適用できます。ユーザプロファイルファイル内に次の行を入力します。


set noclobber

history 変数

history 変数を使用すると、履歴リストに保存するコマンドの数を設定できます。history コマンドは、以前に入力したコマンドを参照する場合に便利です。履歴リストを使って、以前のコマンドを繰り返すこともできます。次の行を .cshrc ファイルか .tcshrc ファイルに入力します。


set history=100

ユーザプロファイルファイルに次の行を入力すれば、Bourne シェル、Bourne Again シェル、Korn シェル、Z シェルについても同様の設定ができます。


HISTORY=100