如何在终端标签之间共享历史记录?


23

我通常会在OS X的终端中使用两个或三个选项卡。

一个不便之处是,默认情况下,这些选项卡不共享其命令历史记录。因此,通过键入搜索我在另一个选项卡上运行的先前命令history | grep thingIamlooking for不会找到它。

有没有一种方法可以强制“终端”选项卡共享历史记录,或者还有其他“ history_of_all_tabs ”命令吗?

Answers:


29

我认为无法仅在“终端”选项卡之间共享历史记录,但这可以为您提供帮助。

历史记录不是由终端处理的,而是由外壳程序(bash,tcsh,zsh等)处理的。

以下是一些选项,可帮助您在所有终端窗口(shell实例)之间设置共享历史记录。

这应该放在.bashrc文件中的某个位置。

export HISTCONTROL=ignoredups:erasedups  # no duplicate entries
export HISTSIZE=100000                   # big big history
export HISTFILESIZE=100000               # big big history
shopt -s histappend                      # append to history, don't overwrite it

# Save and reload the history after each command finishes
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

1
+.5表示正确答案,+。5表示语法不错;)
Matt

@Lifely的解决方案不适用于El Capitan。完全没有 甚至历史记录文件的最大长度。自2012年以来,有没有新的解决方案?(我已经在上面发表评论了,但没有代表)
JP Duffy 2016年

1
这在El Capitan中为我工作(在.bash_profile中添加),并在我的.bash_profile中添加了导出SHELL_SESSION_HISTORY = 0并正在运行:touch〜/ .bash_sessions_disable
Andy

在bash的Ubuntu 18.04上运行良好
anon58192932 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.