UNIX その他
 2. 環境変数 について説明します。
 環境変数とは、いろいろなアプリケーションが参照する定義です。特定のコマンドだけが参照する環境変数や、HOME、EDITOR などのように多くのコマンドが参照する環境変数があります。 環境変数はシェル変数と違って子プロセスに引き継がれます。

 環境変数の設定方法は csh・tcsh と sh・bash で違います。ここでは csh・tcsh を前提に説明します。

  % setenv 環境変数名 設定値 ( csh・tcsh の場合 : ~/.cshrc )
  % export 環境変数名=設定値 ( sh・bash の場合 : ~/.bashrc )


  1. 環境変数の参照

    % 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
    




  2. 環境変数の設定/解除

    設定 % 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 



    01.
    BLOCKSIZE

      ブロックサイズの単位。
    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)
    



    02.
    DISC

      cdcontrolが参照するCD のデバイス名
    (コマンド cdcontrol : コマンド一覧にはのせていません)



    03.
    DISPLAY

      X サーバが実際に描画するサーバ名
    
    % setenv DISPLAY xxx.com:0.0
    
    これで 実際にリクエストを出す X サーバは xxx.comになります。
    
    (コマンド xhost)
    



    04.
    EDITOR

      標準エディタの指定。
    
    view などが参照します。標準では vi ですだが、mule を使いたい場合
    は次のようにします。
    
          % setenv EDITOR mule
    
          % setenv EDITOR 'mule -nw'   (オプション指定)
    
    



    05.
    GROUP

      自分の属するグループ名
     
    



    06.
    HOME

      ホームディレクトリ。
    引数なしでcdしたときに移動するディレクトリ。
    



    07.
    HTTP_PROXY

      HTTPで使用する proxy サーバ名
    lynx などが参照します。
    
        % setenv HTTP_PROXY proxy.xxx.yyy.com
    
    ポート番号を指定したい場合は次のようにします。
    
        % setenv HTTP_PROXY proxy.xxx.yyy.com:8080
    



    08.
    LANG

      使用言語の指定。
    次の種類などがあります。
    
     C、ja、japanese、ja_JP.EUC、ja_JP.JIS、
     ja_JP.SJIS、LANG=ja_JP.PCK 
    
    Solarisのdateやlsなどは、環境変数LANGがjapaneseの場合は
    日本語で表示します。
    
    



    09.
    LD_LIBRARY_PATH

      ランタイムライブラリを検索するパス名
    バイナリがランタイムライブラリを必要としているとき、
    ライブラリを検索するためのパス。
    
    (コマンド ldd)
    



    10.
    LIBRARY_PATH

      ライブラリのパス名
    (コマンド cc)
    



    11.
    MANPATH

      オンラインマニュアルのパス名
    (コマンド man,manpath)
    



    12.
    PAGER

      標準ページャの指定
    man や view などが PAGER を参照します。
    
      % setenv PAGER more とすると man ls で more が呼ばが、
    
      % setenv PAGER less とすると man ls で less が呼ばれます
    
      % setenv PAGER less -gj10   (オプション設定)
    



    13.
    PATH

      プログラムの置いてあるディレクトリ名
    フルパスではなく、単にファイル名のみを指定した場合にシェルが
    参照するディレクトリ。
    
        % /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)
    



    14.
    PWD

      カレントディレクトリ名。
    
    例えば cd /usr/local とすると自動的に 
    $PWD=/usr/local と変更されます。
    
    SHELL 現在使用しているシェルをフルパス表記したものです。
    
    例えば /usr/local/bin/tcsh など。
    



    15.
    USER

      自分のログインネーム