端末画面の入力履歴を別の端末と共有する

LINEで送る
Pocket

ターミナルを複数開けてコマンドを実行していると Bash のコマンド履歴はターミナル毎に保存されてログアウト時にコマンド履歴ファイル(~/.bash_history)に書き込むため、最後にログアウトしたターミナルのコマンド履歴だけしかファイルに残らないため、複数のターミナルからログインしているとログアウトのタイミングで履歴が消えてしまう可能性があります。

export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
shopt -u histappend

ただしコマンド実行時に、毎回 hisotry ファイルの保存、再読込が発生するため、プロンプト再表示に時間がかかってしまうのでマシンスペックに応じて、~/.bashrc の環境変数 HISTSIZE (履歴の件数上限)、HISTFILESIZ(履歴のファイルサイズ)を変更して下さい。

HISTSIZE=1000
HISTFILESIZE=2000

また読み込まれるのは「プロンプトを再出力する時」なので、他のターミナルの履歴を参照したい場合、コマンドを何か実行するか、何も入力せずに「Enter」キーを押せば、↑を押すと他のターミナルで実行したコマンドが履歴の最後に加わります。

LINEで送る
Pocket

  • このエントリーをはてなブックマークに追加

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください