【しばらく編集不可モードで運営します】 編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴

UNIXの環境変数メモ - 知っておくと便利な環境変数のリストを作りましょう。

目次

知っておくと便利な環境変数のリストを作りましょう。

環境変数をあらかじめセットしておくと、 プログラムの動作やサーチパスが変えられます。

一覧

BROWSER
http://catb.org/~esr/BROWSER/
CLASSPATH
Javaのclassファイル用のサーチパス (java)
CPLUS_INCLUDE_PATH
C++言語のincludeファイルのサーチパス (g++)
CPLUS_LIBRARY_PATH
C++言語のライブラリのサーチパス (g++)
CVS_RSH
RSYNC_RSH のCVS版。(cvs)
DISPLAY
X Window System で、ウィンドウを表示させたいXサーバのアドレスとディスプレイ番号(とスクリーン番号)を指定する。(x11 client 全般)
EDITOR
そのまんま、エディタ名。MUA が読んでくれたりする。emacs 系の場合は gnuclient とか emacsclient がお勧め。 (全般)
IDL_STARTUP
IDL の起動時に読み込むスクリプトを指定する。 (IDL)
LANG,LC_*,LANGUAGE
locale関係。LANG、LC_ALLで一括設定、LC_MESSAGESやLC_DATEでカテゴリ毎の言語設定が出来るようになっている。LANGUAGEはLC_MESSAGESを上書きするようだ。優先順位は LANGUAGE>LC_ALL>LC_*>LANG。(全般)
LESSCHARSET
less で us-ascii 以外を表示するときに使う。(less)
MANPATH
オンラインマニュアル(man コマンド)のサーチパス(全般)
PATH
最も重要!コマンドのサーチパスを設定する。(全般)
PERL5LIB
Perl のライブラリ・モジュールのサーチパス (perl5以降)
PYTHONPATH
Python のライブラリ・モジュールのサーチパス
RSYNC_RSH
これを ssh に設定すると、rsync コマンドは rsh の代わりに ssh を利用するようになります (rsync)
TERM
ターミナルの種類を表す。これが設定されていないと emacs が動かないことも。
TEXINPUTS
TeX のクラスファイル・スタイルファイルのサーチパス (tex,ptex)
TZ
タイムゾーン。日本だと JST-9 にセットされるのが普通? (全般)
TMOUT
タイムアウト。0以外の数字にセットしておくと、その秒数の間入力がない場合勝手にログアウトする。(何シェル用でしょう? tcsh だと autologoutシェル<b style="color:black;background-color:#99ff99">変数</b>が同じ機能を持ってるようです。) (?) - <b style="color:black;background-color:#ffff66">bash</b>/zsh/ksh です。
VISUAL
less で v を押したときに起動されるエディタ名。vi だとシームレスでいいですね。(less)
WWW_HOME
これをみてくれる http クライアントは多いです。(w3m,lynx,etc..)
http_proxy
プロキシを使う時は、設定しないと駄目ですよね?違う?(w3m,lynx,LWP,etc..)

設定方法 (csh系)

環境変数の値を参照するには printenv かシェルで "$" 文字を使います

 % printenv DISPLAY
 % echo $DISPLAY

設定するためには setenv を使います

 % setenv DISPLAY localhost:0.0

設定方法 (sh系)

値を参照する場合は csh系と同様に printenv や "$" を用います。

 % printenv DISPLAY
 % echo $DISPLAY

sh 系では、シェル変数を export することによって環境変数を設定できます。

 % DISPLAY=localhost:0.0; export DISPLAY

または

 % export DISPLAY=localhost:0.0

環境変数に関する注意

基本的に、自プロセスの環境変数しか設定変更できないということ。

具体的には、X上で複数の xterm を用いている場合、一方で http_proxy を変更しても 他方の xterm ではそれを認識してくれない等。

環境変数を設定するプログラム、というのも以上のことから作成不能です。 シェルに関して言えば、バッククォートによるプログラム出力の再評価、という技があるので 見かけ上別プロセスによって環境変数を変更することが出来ますね。

環境変数を一時的に変更するプログラム - env

引数無しだと環境変数全表示

 % env

変えたい環境変数と実行したいプログラム名を渡す。

 % env LC_ALL=C ps aux
 % env LANG=ja LC_MESSAGES=C emacs
 % env LD_LIBRARY_PATH=~/test/lib:$LD_LIBRARY_PATH sample-prog
 % env DISPLAY=mint:0.0 xterm
 % env PRINTER=colorpr lpr tiger.ps
 % env PRINTER=laserpr lpr journal.ps