从OS X El Capitan 10.11开始,默认情况下,Bash被配置为保存每个终端的单独命令历史,因此它们可以单独恢复恢复。 当退出shell时,每个单独的历史也会被附加到~/.bash_history中的全局历史。如果你退出终端,然后重新打开它(启用或不启用Resume),你应该会发现来自每个终端的命令都在~/.bash_history中。如果您启用了恢复,则每个恢复的终端将仅包含其恢复的历史记录,但当您创建新终端时,它将从最新的全局历史记录开始。 因为所有的命令历史都被附加到全局~/.bash_history文件中,所以您可能希望通过设置HISTFILESIZE环境变量来增加存储的命令数量,这样最新的终端历史就不会过早地将其他终端历史从文件中挤出。默认值为500。我把我的设定到了一万。我还将HISTSIZE设置为10,000,这样我就可以浏览整个历史记录(否则,只会从历史记录文件中读取最后500个)。 安排单独命令历史的脚本位于OS X El Capitan 10.11及更高版本的/etc/bashrc_Apple_Terminal中。它包含大量的注解,描述了该机制如何工作,以及如何自定义或禁用它。
6条答案
按热度按时间58wvjzkj1#
我的终端有这个问题。原来它是保存到
~/.bash_sessions
文件夹中新生成的文件。这是/etc/bashrc_Apple_Terminal
文件中介绍的El Capitan引入的管理bash会话的新方法的一部分。echo $HISTFILE
的外坑证实了这一点。要禁用此行为,只需运行touch ~/.bash_sessions_disable
。然后退出终端应用程序并重新启动它。它现在应该正确地保存历史,这可以通过echo $HISTFILE
再次确认。希望这对你有帮助!scyqe7ek2#
从OS X El Capitan 10.11开始,默认情况下,Bash被配置为保存每个终端的单独命令历史,因此它们可以单独恢复恢复。
当退出shell时,每个单独的历史也会被附加到~/.bash_history中的全局历史。如果你退出终端,然后重新打开它(启用或不启用Resume),你应该会发现来自每个终端的命令都在~/.bash_history中。如果您启用了恢复,则每个恢复的终端将仅包含其恢复的历史记录,但当您创建新终端时,它将从最新的全局历史记录开始。
因为所有的命令历史都被附加到全局~/.bash_history文件中,所以您可能希望通过设置
HISTFILESIZE
环境变量来增加存储的命令数量,这样最新的终端历史就不会过早地将其他终端历史从文件中挤出。默认值为500。我把我的设定到了一万。我还将HISTSIZE
设置为10,000,这样我就可以浏览整个历史记录(否则,只会从历史记录文件中读取最后500个)。安排单独命令历史的脚本位于OS X El Capitan 10.11及更高版本的
/etc/bashrc_Apple_Terminal
中。它包含大量的注解,描述了该机制如何工作,以及如何自定义或禁用它。uurity8g3#
我经常遇到这种事我打开多个命令窗口,历史记录按它们关闭的顺序保存。您正在查找的命令可能已被另一个命令窗口覆盖。
gjmwrych4#
我很确定这是一个bug。我用一个访客账户登录,所以配置文件是原始的。在home目录中,我这样做了:
touch .bash_history
,然后tail -f .bash_history
,以查看命令何时保存。当终端会话关闭时,命令应该保存到全局
.bash_history
文件。我发现至少有一半的时间,命令在关闭终端后没有保存到文件中。它似乎很随机,当它会发生,当它不会。它似乎也来在条纹的地方,它会连续多次,然后再次得到dropped。如果我用exit
而不是Command-W退出终端会话,它似乎每次都能工作。vulvrdjw5#
在我的例子中,当我输入
history
时,它只显示最新的16个命令。但是,我可以通过Ctrl+R调用旧命令,所以我知道命令历史实际上更长。截至2021年,命令历史记录位于名为
.zsh_history
的文件中:cd ~
list -al
你可以用vi打开它:
vi .zsh_history
,然后搜索您的命令。nzkunb0c6#