min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash byobuで開いた複数セッションの履歴を全て.bash_historyに保存し共有する

byobuで複数のセッションを切り替えて使っているときにセッション間の履歴を共有できないのに困っていた。

例えば

セッション0 の履歴がこれで

f:id:min117:20181228045947p:plain

セッション1 の履歴がこれ。

f:id:min117:20181228050042p:plain

Ctrl + p して入力履歴を呼び出すときにセッションごとに履歴が異なるのが困る全てセッションでhistoryを共有したい

 

やりかた調べたらあった。素晴らしい記事。

linuxfan.info

f:id:min117:20181228050110p:plain

 

早速やってみる。セッション0 のほうで ~/.bashrc を編集。

$ vim ~/.bashrc

f:id:min117:20181228050134p:plain

 

2行を追記する。

export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

shopt -u histappend

f:id:min117:20181228050216p:plain

 

 

 

セッション0 で ~/.bashrc を読み込む。

$ source ~/.bashrc

f:id:min117:20181228050247p:plain

 

セッション1 で ~/.bashrc を読み込む。

$ source ~/.bashrc

f:id:min117:20181228050304p:plain

 

動作を確認してみる。

 

セッション0 のhistoryを見る。

$ history | tail -n 5

f:id:min117:20181228050427p:plain

 

セッション1 のhistoryを見る。

$ history | tail -n 5

f:id:min117:20181228050407p:plain

 

行番号は違うけど内容が完全に一致したのが分かる。Ctrl + p で履歴をたどる時や、Ctrl + r で履歴からインクリメントサーチするときに、どのセッションからでも同じ履歴を呼び出せる。

こういう知恵が幾層にも積み重なっているのがLinux。ほんと最高。

min117.hatenablog.com