我在/unix//a/1292/41729中使用了答案,以在各个bash终端之间启用实时共享历史记录。如以上答案中所述,这是通过添加以下内容来实现的:
# avoid duplicates..
export HISTCONTROL=ignoredups:erasedups
# append history entries..
shopt -s histappend
# After each command, save and reload history
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
如果bash外壳是分开的(例如,使用打开bash终端),则此方法效果很好CTRL+ALT+T
。但是,如果我使用tabs
(从打开的终端“ CTRL + SHIFT + T”)而不是新窗口使用,则无法正常工作。是否可以在各个选项卡之间共享Bash历史记录?
更新:我注意到一种不寻常的行为:如果CTRL+C
键入,则正确显示了在其他任何终端(无论是否为制表符)中键入的最后一个命令。就像CTRL + C强制刷新历史记录以便正确共享历史记录一样。
作为示例输出(T1表示端子1,T2表示端子2):
T1:
ls -lah <enter>
# the list of files and directory is shown
T2:
cd Documents <enter>
T1:
<up> (i.e. I press the up arrow)
ls -lah #i.e the last command in terminal 1 is shown rather than the last of terminal 2
^C (i.e. I press CTRL+C)
<up>
cd Documents #the last command issued in terminal 2 is correctly displayed
希望这可以提供任何提示!
~.bashrc
文件中?附带说明,导出这些变量是没有意义的。只是浪费环境空间。