過去問ドリル

LinuCレベル1 シェルおよびスクリプト 問20

シェルおよびスクリプト/シェル環境のカスタマイズ

bashのログインシェルを終了(ログアウト)するときに、端末の画面を消去するなどの後始末を自動で実行させたい。ユーザーごとの設定として、そのコマンドを書くファイルとして適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル1の出題範囲「シェルおよびスクリプト」に対応。実際の試験問題ではありません)

正解:C

解説

~/.bash_logout は、対話的なログインシェルが終了するときにbashが読み込んで実行するファイルです。ログアウト時の画面消去や一時ファイルの削除などの後始末を書いておけます。Debian系では、コンソールからログアウトしたときに画面を消去する処理を含むファイルが /etc/skel に用意されており、ユーザー作成時にホームディレクトリへ複製されます。ログインシェルではない対話シェル(端末を新しく開いた場合など)を閉じたときには読み込まれない点に注意が必要です。

選択肢ごとの解説

  • A誤り。~/.bash_profile はログインシェルの起動時に読み込まれるファイルで、終了時に実行される処理を書く場所ではありません。
  • B誤り。~/.bashrc は主に対話的な非ログインシェルの起動時に読み込まれるファイルで、ログアウト時には読み込まれません。
  • C正しい。~/.bash_logout は、ログインシェルが終了するときに読み込まれて実行されます。
  • D誤り。/etc/bash.bashrc はDebian系で使われるシステム全体の対話シェル用設定ファイルで、起動時に読み込まれるものです。
LinuCレベル1の問題を演習モードで解く