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