当我运行时history,我得到一个命令列表。然而,它似乎并不完整,即使在给定的时间段内也是如此。(感觉它没有连续覆盖过去的 N 个命令 - 感觉缺少一些。)此外,history不同终端选项卡中的输出不同。这是因为在选项卡关闭之前历史记录不会写入磁盘吗?这是否解释了为什么某些命令似乎会丢失,因为它们被关闭选项卡覆盖了?
我在 OSX 10.8 上是为了它的价值。
不同的终端正在运行您的不同实例$SHELL(这可能是 BASH,因为您使用的是 OSX)。每个实例都保留自己的历史记录,当该特定 BASH 实例退出时,这些历史记录会连接到全局会话历史记录中。
您可以通过打开两个终端,运行一些命令,然后关闭两个终端并打开第三个来尝试此操作。来自(现已关闭)前两个终端的命令现在将在您的历史记录中。
还有一些 BASH 选项可以删除重复的命令,看看你的$HOME/.bashrc并检查你是否有这样的一行:
export HISTCONTROL=ignoredups
Run Code Online (Sandbox Code Playgroud)
该选项告诉 BASH 不要保存重复的命令。所以,如果你运行ls10 次,它只会被保存一次。