1.06.1基礎
Bashのログインシェルを正常に終了するとき、ユーザー固有の後処理を実行する。
処理を記述するファイルはどれか。
× 不正解
~/.bash_logoutはログインBashの終了時に読み込まれる。起動時のprofileやbashrcとは処理時点が異なる。
詳細解説
誤り
~/.bashrc対話的非ログインBashの起動時設定である。
~/.bashrcは対話操作を始める際の設定である。ログインセッション終了時の後処理を置くファイルではない。
誤り
~/.profileログイン開始時に使われる候補である。
~/.profileはログイン開始時に選ばれ得るユーザーファイルである。正常終了時に自動実行される専用ファイルではない。
誤り
/etc/profileシステム全体のログイン開始時設定である。
/etc/profileは全体のログイン初期化である。ユーザー固有のログアウト後処理という範囲と時点の両方が異なる。
正しい
~/.bash_logoutログインBashの終了時に読み込まれるユーザーファイルである。
~/.bash_logoutはログインBashが終了するときに読み込まれる。ユーザー固有の一時情報整理などの後処理を配置できる。
実際に確かめる
一時的な検証環境で実行できる例です。
man bash 2>/dev/null | col -b | grep -A4 'When a login shell exits' | sed -n '1,5p'期待される結果
~/.bash_logoutを読む旨。manがない最小環境では出力なし理解のポイント
- logout時のユーザーファイル
- ログインBashが対象
- 起動ファイルと区別
確認時の注意
- 確認環境: GNU Bash 5.2 / マニュアル参照
- ログアウト時の全体処理はディストリビューション固有の構成も確認する。
基礎のおさらい
ログインシェルだけ
~/.bash_logoutはすべてのBash終了時ではなく、ログインBashの終了時に対象となる。
強制終了との違い
プロセスが強制終了された場合など、必ず後処理が実行される保証はない。重要な永続処理を依存させない。
問題IDKL-102-898
確認環境GNU Bash 5.2 / マニュアル参照
最終技術確認2026-08-13
誤り・権利侵害を報告