我知道我前几天输入了一个命令,但现在无法使用history
或.bash_history找到它。你有任何想法为什么会发生这种情况吗?我怀疑这与在我的OS X终端中使用多个选项卡有关,以某种方式历史记录不会在选项卡之间传递,但我不确定。
我知道我前几天输入了一个命令,但现在无法使用history
或.bash_history找到它。你有任何想法为什么会发生这种情况吗?我怀疑这与在我的OS X终端中使用多个选项卡有关,以某种方式历史记录不会在选项卡之间传递,但我不确定。
我的终端出现了问题,后来发现它在 ~/.bash_sessions
文件夹中保存新生成的文件。这是 El Capitan 引入的管理 bash 会话的新方法,在 /etc/bashrc_Apple_Terminal
文件中有详细说明。可以通过运行 echo $HISTFILE
命令确认这一点。要禁用此行为,只需运行 touch ~/.bash_sessions_disable
命令。然后退出终端应用程序并重新启动它。现在它应该正确保存历史记录,可以再次通过 echo $HISTFILE
命令进行确认。希望这能帮到你!
从OS X El Capitan 10.11开始,默认情况下,Bash被配置为为每个终端保存单独的命令历史记录,因此它们可以单独恢复以进行 Resume 操作。
每个单独的历史记录也会在 shell 退出时附加到全局历史记录中的 ~/.bash_history 中。如果您退出终端然后重新打开它 - 无论是否启用 Resume,您应该发现来自每个终端的命令都在~/.bash_history 中。如果您已启用 Resume,则每个恢复的终端将仅包含其恢复的历史记录,但是当您创建新的终端时,它将从最新的全局历史记录开始。
由于所有命令历史记录都附加到全局的~/.bash_history 文件中,您可能希望通过设置 HISTFILESIZE 环境变量来增加存储的命令数量,以便最新的终端历史记录不会太快地将其他终端历史记录推出文件。默认值为 500。我将我的设置为 10,000。我还将 HISTSIZE 设置为 10,000,以便可以浏览整个历史记录(否则,只能从历史记录文件中读取最后 500 条)。
安排单独的命令历史记录的脚本在 OS X El Capitan 10.11 及更高版本中的 /etc/bashrc_Apple_Terminal 中。它包含详细的注释,描述了机制的工作原理以及如何自定义或禁用它。
这种情况经常发生。我会打开多个命令窗口,历史记录按关闭的顺序保存。你需要的命令可能会被其他命令窗口覆盖掉。
我非常确定这是一个bug。我登录了一个访客账户,所以配置文件是原始的。在主目录中,我执行了以下操作:
touch .bash_history
然后 tail -f .bash_history
来查看何时保存命令。
当终端会话关闭时,命令应该保存到全局的.bash_history
文件中。我发现至少有一半的时间,关闭终端后命令没有保存到文件中。它似乎很随机,不知道什么时候会发生和不发生。它也似乎会连续多次出现,然后再次变得不稳定。如果我使用exit
而不是Command-W退出终端会话,它似乎每次都能正常工作。
exit
命令,但注意到 .bash_history
根本没有被写入。在找到这篇文章后,我尝试使用 Command-W 来关闭窗口。突然间,无论我如何关闭窗口,一切都正常了。 - robotspacerhistory
时,它只显示最近的16个命令。然而,我可以通过Ctrl+R来回忆旧的命令,所以我知道命令历史实际上更长。.zsh_history
的文件中:
cd ~
list -al
vi .zsh_history
,并搜索你的命令。echo 'alias history="history 1"' >> ~/.zshrc && source ~/.zshrc && history
~/.zprofile
中更改类似的设置。 - undefined