1.03.1標準
通常設定の対話的Bashを2つ同時に開いている。
一方で実行した直後のコマンドが、もう一方で読み直した~/.bash_historyにまだない。
一般的な説明として適切なのはどれか。
× 不正解
各Bashはセッション内の履歴を持ち、通常は終了時などにHISTFILEへ書き込むため、同時セッション間で即時一致しないことがある。
詳細解説
正しいBashは履歴をメモリに保持し、通常は終了時などに履歴ファイルへ保存する
セッション中の履歴リストとディスク上の履歴ファイルには時差が生じ得る。
正しい。通常のBashはセッション履歴を持ち、終了時の書き込みなどによりファイルとの間に時間差が生じる。
誤り~/.bash_historyは実行ファイルなので、読み取り権限があっても内容を確認できない
通常はテキスト形式の履歴ファイルである。
誤り。.bash_historyは通常テキストとして保存され、適切な権限があれば内容を読める。
誤りhistoryは常に全シェルのコマンドを同時に1つの共有メモリへ記録する
各Bashプロセスはそれぞれ履歴リストを持つ。
誤り。別プロセスのBashは独立した履歴リストを持ち、設定なしに即時同期される共有メモリではない。
誤り履歴ファイルには環境変数だけが保存され、コマンド行は保存されない
履歴ファイルはコマンド履歴の保存に使われる。
誤り。履歴ファイルは実行したコマンド行を保存するために使われ、環境変数だけのファイルではない。
実際に確かめる
一時的な検証環境で実行できる例です。
bash -c 'printf "HISTFILE=%s\n" "${HISTFILE:-not-set-in-noninteractive-shell}"'期待される結果
非対話シェルでは未設定の場合もあることを示す表示理解のポイント
- session historyとfileは別
- HISTFILEの既定は~/.bash_history
- 書込タイミングで差が出る
確認時の注意
- 確認環境: Bash 5.x / 説明確認のみ
- 履歴設定は環境ごとに異なるため、通常設定という前提を問題文へ明示している。
基礎のおさらい
HISTFILE
履歴を書き込むファイル名を制御し、既定として~/.bash_historyが使われることが多い。
追記と再読込
history -aや-rなどを用いた同期方法はあるが、複数端末での順序や重複に注意する。
問題IDKL-101-441
確認環境Bash 5.x / 説明確認のみ
最終技術確認2026-08-13
誤り・権利侵害を報告