プラズマシミュレーション研究室

シミュレーションの環境設定

シェル環境設定

UNIX/Linux環境では一般にシェルと呼ばれるプログラムを通して対話的に計算機を操作する.シェルには bash, tcsh, zsh などの種類があるが,最近では bash が最も一般的.以下では bash のコマンドを説明する.それ以外のシェルを利用する場合は適宜コマンドなどを読み替える必要がある.

シェルの動作環境を設定するために,環境変数というものがある.

printenv

と入力すると,設定されている環境変数一覧が表示される.リストは,「変数名=値」という形式になっている.例えば,USER=n272r011 となっていれば,USERという環境変数があり,その値として n272r011 が設定されているということになる.また,環境変数の値は $変数名で参照することができるので,

echo $USER

とすれば,環境変数USERの値を調べることができる.${USER}と中括弧でくくることもできる.(後に文字が続く場合は,中括弧でくくったほうが間違いがなくてよい.)

重要な環境変数として,PATH がある.これは,実行されるコマンドの所在ディレクトリがコロンで区切られたリストであり,PATH に列挙されているディレクトリにあるファイルは所在ディレクトリ(パス)を指定しなくてもファイル名だけで実行することができる.“ls” コマンドは “/bin” ディレクトリにあるが,通常,PATH には /bin が含まれているので,”ls”だけで /bin/ls ファイルを実行できるわけである.

ls
/bin/ls

は同じ動作.

環境変数を設定するには

変数名=値

とすればよい.また,"export 変数名” とすれば,その環境変数は子プロセスに引き継がれる.また,bashでは,設定時に以下のように export することもできる.

export 変数名=値

通常,ある計算機システムを利用する際に必要な環境設定はシステム側でなされるため,個々のユーザは気にする必要はない.(何も設定しなくても,PATH などの重要な環境変数は設定されている.)しかし,各ユーザは自由に設定を変更することができる.例えば,ホームディレクトリ(ホームディレクトリを指す HOME が設定されている)に bin というディレクトリがあり,そこに自作のコマンドを置いている場合には,

export PATH=${HOME]/bin:${PATH}

とすれば,PATH に ${HOME}/bin が追加される.(設定に失敗した場合は,一旦ログアウトすれば元の設定に戻る.)

シェルは起動時に初期設定ファイルを読み込むので,好みの設定を書いておくと便利である.初期設定ファイルは,端末で入力するコマンドを列挙すれば良い.ただし,初期設定ファイルの内容に不備があるとログインできなくなることがあるので注意が必要.ログインできなくなった場合は管理者に連絡する.

bashの場合の初期設定ファイルは,ログインシェルの場合.bash_profile,ログインシェルではないが対話的シェルの場合(ターミナルでbashコマンドを起動した場合など).bashrcである.なお,ログイン時にも.bashrcを読み込むように,以下のように.bashrcを読み込むように.bash_profileに設定されていることが多いようである.

if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

Environment Modules

大型計算機などでは,動的に環境設定を変更するEnvironemnt Modulesと呼ばれる仕組みを用いていることが多い.Modulesでは,使用したいソフトウェアやそのバージョンに応じたモジュールファイルをロードすることによって,必要な環境設定がなされ,そのソフトウェアが使用できるようになる.アンロードすれば,その設定は無効になる.

module load software
module unload software

使用できるモジュールファイルは

module avail

で確認できる.モジュールによっては依存関係(あるモジュールを使用するには別のモジュールが必要など)があったり,同時に使用できないものがあったりするので注意が必要.毎回使用するモジュールは,シェルの初期設定ファイルに書いておけばよい.