next up previous contents
Next: 4. ウィンドウマネージャのカスタマイズ Up: 3. シェルの設定 Previous: 3.2 .cshrcの設定ファイル



3.3 ログイン,ログアウト時のコマンド実行

.login.logoutの両ファイルを利用することで,ログイン時とログアウト時に特定のコマンドを実行できる.これらのファイルは,ログインシェルと呼ばれるシェルでのみ実行される.

通常,CNSの標準X環境では`CONSOLE'ウィンドウがログインシェルになっている.リモートログイン時に実行されるシェルもログインシェルである.

なお,`CONSOLE'ウィンドウと他の`kterm'ウィンドウはログイン時に並列に起動されるため,.loginファイルの中に書いた環境変数の設定などは,``CONSOLE''以外の`kterm'ウィンドウでは有効にならないので注意が必要である.これは,環境変数は子プロセス(自分自身から起動したコマンド)には引き継がれるが,親プロセス(自分を起動したコマンド)や兄弟関係にあるプロセス,無関係なプロセスには影響を与えないためである.

より正確には,X環境では-lsオプションをつけて起動した ktermxtermがログインシェルとなり,.loginファイル,.logoutファイルの記述内容が実行される.

自分で.xsessionファイルを記述している場合には,ktermxtermをどれか1つ-lsオプションつきで起動するように設定しておく必要がある.通常,.xsessionの最後でexecで起動されるkterm-lsオプションをつける.

3.3.1 .loginの設定

.loginファイルはログイン時にログインシェルで1度だけ実行されるシェルスクリプトである.通常シェルの利用環境は.cshrcファイルに設定するので.loginファイルにはログイン時に実行させたいコマンドのみを記述する(図3.2).

.loginファイルには絶対にX Window Systemを利用したアプリケーションの起動を記述しない.もし,ログイン時にそういったアプリケーションを起動したい場合は.xsessionファイルに記述する.

.loginファイルでも,.cshrcファイルと同様に,新たにウィンドウを開くアプリケーションやrloginコマンドを絶対に記述しないこと.


図: .loginファイルの例
source /usr/local/lib/setup/.login # CNSの標準の設定を読み込む.消さないほうがよい.

# ログイン時のメッセージを表示する.
# !などの特殊記号を使う場合は\でエスケープすること.
echo "hello\!\!"
echo "I'm `hostname`."

# 実行したいコマンドを記述する.
date       #日付を表示
from       #メールが来ている場合には,そのリストを表示

3.3.2 .logoutファイルの設定

.logoutファイルも.loginファイル同様にログインシェルでログアウト時に1度だけ実行されるシェルスクリプトである. .logoutは,ログアウト時に実行させたいコマンドを記述する(図3.3)..logoutファイルは標準では用意されていないので,設定を行いたいときはホームディレクトリの下に.logoutというファイルを作成する必要がある.


図: .logoutファイルの例
# ログアウトしたホスト名を表示する.
echo "logout from `hostname`"

# ログアウトしたホストと時間を.planというファイルに記録する.
echo "Logout from `hostname` at `date`" >  /.plan

3.3ではログアウトしたホスト名を表示し,時間とホスト名を.planというファイルに記録している.これによって, fingerコマンドで表示される個人情報欄にいつログアウトしたかという記録を表示することができる(図3.4).
図: fingerコマンドの実行結果
% finger -m t00000tf<RET>
Login name: t00000tf                    In real life: Tarou Fujisawa
Office: 79000000, 00
Directory: /home/t00000tf               Shell: /bin/tcsh
Plan:
Logout from ccz00 at Fri Jan 17 08:52
% _



next up previous contents
Next: 4. ウィンドウマネージャのカスタマイズ Up: 3. シェルの設定 Previous: 3.2 .cshrcの設定ファイル