環境変数とは、いろいろなアプリケーションが参照する定義です。特定のコマンドだけが参照する環境変数や、HOME、EDITOR などのように多くのコマンドが参照する環境変数があります。 環境変数はシェル変数と違って子プロセスに引き継がれます。
環境変数の設定方法は csh・tcsh と sh・bash で違います。ここでは csh・tcsh を前提に説明します。
% setenv 環境変数名 設定値 ( csh・tcsh の場合 : ~/.cshrc )
% export 環境変数名=設定値 ( sh・bash の場合 : ~/.bashrc )
% printenv ..(現在設定されている環境変数が表示される)... % setenv ..(現在設定されている環境変数が表示される、bash では無効)... 例 HOME=/home/san PATH=/usr/bin: LOGNAME=fresh22 HZ=100 TERM=vt100 TZ=Japan SHELL=/bin/csh MAIL=/var/mail/fresh22 LANG=ja_JP.PCK PWD=/ USER=fresh22 : % echo $HOME ..(現在設定されている環境変数 HOME の内容が表示される)... 例 /home/san
設定 | % setenv 環境変数名 設定値 ( csh・tcsh の場合 ) % export 環境変数名=設定値 ( sh・bash の場合 ) |
解除 | % unsetenv 環境変数名 ( csh・tcsh の場合 ) % export 環境変数名= ( sh・bash の場合 ) |
01 BLOCKSIZE
02 DISC
03 DISPLAY
04 EDITOR
05 GROUP 06 HOME 07 HTTP_PROXY 08 LANG 09 LD_LIBRARY_PATH 10 LIBRARY_PATH 11 MANPATH 12 PAGER 13 PATH 14 PWD 15 USER |
df、du などが参照する。(FreeBSDでは)標準は512バイト。 % setenv BLOCKSIZE k 1キロバイト単位 % setenv BLOCKSIZE m 1メガバイト単位 % setenv BLOCKSIZE g 1ギガバイト単位 % setenv BLOCKSIZE 1024 1キロバイト単位 % setenv BLOCKSIZE 1048576 1メガバイト単位 (コマンド du,df)
(コマンド cdcontrol : コマンド一覧にはのせていません)
% setenv DISPLAY xxx.com:0.0 これで 実際にリクエストを出す X サーバは xxx.comになります。 (コマンド xhost)
view などが参照します。標準では vi ですだが、mule を使いたい場合 は次のようにします。 % setenv EDITOR mule % setenv EDITOR 'mule -nw' (オプション指定)
引数なしでcdしたときに移動するディレクトリ。
lynx などが参照します。 % setenv HTTP_PROXY proxy.xxx.yyy.com ポート番号を指定したい場合は次のようにします。 % setenv HTTP_PROXY proxy.xxx.yyy.com:8080
次の種類などがあります。 C、ja、japanese、ja_JP.EUC、ja_JP.JIS、 ja_JP.SJIS、LANG=ja_JP.PCK Solarisのdateやlsなどは、環境変数LANGがjapaneseの場合は 日本語で表示します。
バイナリがランタイムライブラリを必要としているとき、 ライブラリを検索するためのパス。 (コマンド ldd)
(コマンド cc)
(コマンド man,manpath)
man や view などが PAGER を参照します。 % setenv PAGER more とすると man ls で more が呼ばが、 % setenv PAGER less とすると man ls で less が呼ばれます % setenv PAGER less -gj10 (オプション設定)
フルパスではなく、単にファイル名のみを指定した場合にシェルが 参照するディレクトリ。 % /bin/ls などと、完全なパス(フルパス)を表記した場合は環境変数PATHは関係 ありませんが % test などとコマンド名のみを与えた場合、シェルは環境変数 PATH に 従ってディレクトリを検索します。 PATH="/bin:/usr/bin:/usr/local/bin"の場合は、 /bin/test /usr/bin/test /usr/local/bin/test という順で該当するプログラム(test)があるかどうかを調べます。 この場合は、最初の /bin/ls を見付けた時点でそれを実行します。 仮に xxx というコマンドが /usr/bin/xxx と /usr/X11R6/bin/xx に存在した場合、PATH に書かれたディレクトリの順番に従って調べ、 最初に見つけたものを実行します。この場合は /usr/bin/xxx が実 行されることになります。同名のコマンドが複数存在するかどうか を調べる場合は where を使います。 % where xxx /usr/bin/xxx /usr/local/bin/xxx (コマンド rehash,where,which)
例えば cd /usr/local とすると自動的に $PWD=/usr/local と変更されます。 SHELL 現在使用しているシェルをフルパス表記したものです。 例えば /usr/local/bin/tcsh など。