目次
知っておくと便利な環境変数のリストを作りましょう。
環境変数をあらかじめセットしておくと、
プログラムの動作やサーチパスが変えられます。
- man によるマニュアルには ENVIRONMENT というセクションがあるので、目的のプログラムを動かす時に読んでおくと面白いかも。
- 自分の使っているシェルのは読んでおくべき。色々発見があって楽しい。
- 「シェル変数一覧」も作ってみませんか?(csh 系と sh(bash) で分けた方がいいかも)
一覧
- 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
- csh だと↑が必要なようですが、bsh系では env なしの LANG=C date などでいけます。
- bash や zsh は env の機能をシェルが持っているようですね。