システム環境は、初期設定ファイルで定義された複数の環境変数を使って構成されます。現在の作業環境を一時的に変更する場合は、コマンドプロンプトから直接コマンドを入力します。ただし、動作環境の変更を一時的にではなく、常時有効にしたい場合は、適切なユーザプロファイルファイル内に永続的な環境変数を設定できます。
システムに現在設定されている環境変数を表示するには、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 オプションを指定することで表示できます。
次のリストは、ユーザプロファイルで使える環境変数の一部です。環境変数を定義する構文は、現在のシェルによって異なります。
CDPATH
– 絶対パス名を指定しないで一意のディレクトリ名を入力したときに検索されるディレクトリを指定します。
HOME
– 各ユーザのホームディレクトリの絶対パス名を指定します。cd コマンドを引数なしで入力したときに移動先となるディレクトリは、この情報にもとづいて決められます。
LANG
– ロケールの言語を指定します。有効な値は、日本語、ドイツ語、フランス語、スウェーデン語、イタリア語などです。
LOGNAME
– ユーザのログイン名を指定します。LOGNAME 変数のデフォルト値は、passwd データベースで指定されたログイン名となるようログイン処理の過程で自動的に設定されます。passwd データベースの詳細は、『Solaris のシステム管理 (基本編)』を参照してください。
MAIL
– メールボックスのパス名を指定します。通常、メールボックスは /var/mail/username ディレクトリにあります (username は各ユーザのログイン名)。メールボックスについての詳細は、第 7 章「メールの使い方」を参照してください。
PATH
– コマンドを入力したときに、実行可能プログラムが検索されるディレクトリを順番に指定します。適切なディレクトリが検索パスにない場合は、それを PATH 変数に追加するか、コマンドを入力するときに絶対パス名を指定する必要があります。
この変数のデフォルト値は、ユーザプロファイルファイルで指定されたとおりになるようにログイン処理の一環として自動的に設定されます。
PS1
– コマンドプロンプトを指定します。Bourne シェル、Bourne Again シェル、Korn シェルのデフォルトプロンプトは、ドル記号 ($) です。C シェル、TC シェル、Z シェルのデフォルトプロンプトは、パーセント記号 (%) です。root のデフォルトプロンプトは、どのシェルでもポンド記号 (#) です。
TERMINFO
– terminfo データベースに追加された、デフォルトでない端末のパス名を指定します。terminfo データベース内のデフォルト端末については、この変数を設定する必要はありません。terminfo データベースの詳細は、『Solaris のシステム管理 (上級編)』を参照してください。
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 シェル、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 シェルでは、PS1 コマンドを使ってコマンドプロンプトを定義し直すことができます。次の 3 つの例を参照してください。
コロンのあとに空白が挿入されたプロンプトを設定するには、次のコマンドを入力します。
PS1=": " |
マシン名の後にコロンとスペースが挿入されたプロンプトを設定するには、次のコマンドを入力します。
PS1="`hostname`: " |
マシン名のあとに中括弧 {} で囲んだログイン名、コロンと空白が挿入されたプロンプトを設定するには、次のコマンドを入力します。
PS1="`hostname`{`logname`}: " |
上記の例のいずれかを入力して現在のコマンドプロンプトを変更してみてください。この変更は、コマンドプロンプトを再度変更するかログアウトするまで継続します。
変更を持続させるには、上記の例の 1 つ (または自分で作成したプロンプト) を自分のユーザプロファイルファイルに追加します。指定するプロンプトが、ログインしたり、新しいシェルを起動するときに表示されます。
C シェルと TC シェルでは、set prompt コマンドを使ってコマンドプロンプトを変更できます。次の 3 つの例を参照してください。
パーセント記号のあとに空白が挿入されたプロンプトを設定するには、次のコマンドを入力します。
example% set prompt="% " |
マシン名のあとにコマンドの履歴番号 (hostname1、hostname2、hostname3 など)、コロンが挿入されたプロンプトを作成するには、次のコマンドを入力します。
example% set prompt="`hostname`\!: " |
マシン名のあとに中括弧で囲んだログイン名、コロン と空白が挿入されたプロンプトを作成するには、次のコマンドを入力します。
example% set prompt="`hostname`{`logname`}: " |
上記の例のいずれかを入力して現在のコマンドプロンプトを変更してみてください。この変更は、コマンドプロンプトを再度変更するかログアウトするまで継続します。
変更を持続させるには、上記の例の 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 |