如何获取所有 bash 终端的单一历史记录?

如何获取所有 bash 终端的单一历史记录?

我通常会打开多个 bash 终端,并且希望所有终端会话的命令都进入单个历史记录文件,这样我就可以看到所有终端会话中的命令历史记录按时间顺序排列。

例如,假设我打开了两个 bash 终端,A 和 B。我按时间顺序发出各种命令:

term_A: $ cmd1
term_A: $ cmd2
term_B: $ cmd3
term_A: $ cmd4
term_B: $ cmd5
term_B: $ cmd6

稍后,当我history从任何终端(A、B 或另一个新的或现有的终端会话)发出命令时,我应该按时间顺序看到来自两个终端的命令:

term_X: $ history
857 cmd1
858 cmd2
859 cmd3
860 cmd4
861 cmd5
862 cmd6

我该如何配置我的 .bashrc 和/或其他设置来实现这一点?

顺便说一句,我已经有下面的内容了~/.bashrc,但这似乎不足以完成我想要完成的任务:

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

答案1

在你的 .bashrc 中添加以下行export PROMPT_COMMAND='history -a'

这来自这里并已答复这里

相关内容