Raspberry Pi[62] ラズパイで複数コンソール間の履歴が共有できない問題

🔍【原因の調査でわかったこと】

✅ Bashの履歴動作仕様

  • history コマンドは現在のシェルセッションの履歴バッファのみ表示
  • .bash_history はセッション終了時に保存されるのがデフォルト(共有されにくい)

✅ 設定で改善を試みたが…

.bashrc に以下の設定を追加しても:

PROMPT_COMMAND="history -a; history -c; history -r"
shopt -s histappend
export HISTFILESIZE=10000
export HISTSIZE=10000

それでもターミナルBにすぐには反映されないという現象が続いた


💡【判明した仕様のポイント】

  • PROMPT_COMMAND は、コマンドを実行したあとに(=次のプロンプト表示時に)実行される
  • つまり:
    • Aで history -a により履歴が保存されても、
    • Bは何か1回でもコマンドを打たないと history -r が発動しない

✅【最終結論】

  • .bashrc に設定を入れておけば、履歴共有はできる
  • ただし、新しく開いたターミナルでは、履歴を自動で即時読み込むことはできない
  • Enterキーで1回プロンプトを更新することで履歴同期が完了する