OS X终端历史缺失命令

时间:2014-12-08 01:19:34

标签: macos unix command-line terminal

我知道我前几天输入了一个命令,但现在我无法使用history或.bash_history找到它。任何想法为什么会这样?我怀疑它与在我的OS X终端中使用多个标签有关,并且不知何故历史不会在标签之间延续,但我不知道。

5 个答案:

答案 0 :(得分:14)

我的终端遇到了这个问题。事实证明它保存到repoquery --repoid=<myrepository_id> --qf="package|%{name}|%{version}|%{release}|%{arch}" <packagename_of_interest> 文件夹中新生成的文件。这是管理在~/.bash_sessions文件中概述的El Capitan引入的bash会话的新方法的一部分。 /etc/bashrc_Apple_Terminal的结果证实了这一点。要禁用此行为,只需运行echo $HISTFILE即可。然后退出终端应用程序并重新启动它。它现在应该正确保存历史记录,可以通过touch ~/.bash_sessions_disable再次确认。我希望这有帮助!

答案 1 :(得分:4)

从OS X El Capitan 10.11开始,默认情况下,Bash配置为为每个终端保存单独的命令历史记录,因此可以单独为恢复恢复它们。

退出shell时,每个单独的历史记录也会附加到〜/ .bash_history中的全局历史记录中。如果您退出终端然后重新打开它 - 无论是否启用了恢复 - 您应该会发现每个终端的命令都在〜/ .bash_history中。如果您启用了恢复,则每个恢复的终端将仅包含其恢复的历史记录,但是当您创建新终端时,它将以最新的全局历史记录开始。

因为所有命令历史记录都附加到全局〜/ .bash_history文件,您可能希望通过设置HISTFILESIZE环境变量来增加存储的命令数,以便最新的终端历史记录不会推送太快的其他终端历史记录。默认值为500.我的设置为10,000。我还将HISTSIZE设置为10,000,这样我就可以浏览整个历史记录(否则,只会从历史记录文件中读取最后500个)。

安排单独命令历史记录的脚本位于OS X El Capitan 10.11及更高版本的/etc/bashrc_Apple_Terminal中。它包含描述机制如何工作的广泛注释,以及如何自定义或禁用它。

答案 2 :(得分:1)

这种情况一直发生在我身上。我打开多个命令窗口,历史记录按照它们关闭的顺序保存。您正在寻找的命令可能已被另一个命令窗口覆盖。

答案 3 :(得分:1)

我可以肯定这是一个错误。我登录来宾帐户,以便配置文件是原始的。在主目录中,我做了:

Star Trek: Next Generation episodes-> season 1-> Encounter at Farpoint Encounter at Farpoint The Naked Now ... season 2-> The Child Where Silence Has Lease Elementary, Dear Data ... ... ... ,然后是touch .bash_history,以查看命令何时保存。

命令应该在关闭终端会话时保存到全局tail -f .bash_history文件中。我发现关闭终端后,至少有一半时间没有将命令保存到文件中。关于何时发生和何时不发生似乎是随机的。它似乎还会连续出现很多次,然后又变得片状。如果我使用.bash_history而不是Command-W退出终端会话,它似乎每次都起作用。

答案 4 :(得分:0)

就我而言,当我输入 history 时,它只显示最新的 16 个命令。但是,我可以通过 Ctrl+R 调用旧命令,因此我知道命令历史记录实际上更长。

截至 2021 年,命令历史记录位于名为 .zsh_history 的文件中:

  • 打开您的命令终端。
  • 导航到您的主目录:cd ~
  • 列出所有文件:list -al
  • 你应该在那里找到它。

您可以使用 vi 打开它:vi .zsh_history,然后搜索您的命令。