提问人:meisel 提问时间:12/8/2014 更新时间:8/23/2023 访问量:14932
OS X 终端历史记录缺少命令
OS X terminal history missing commands
问:
我知道我前几天输入了一个命令,但现在我无法找到它 using or .bash_history。知道为什么会发生这种情况吗?我怀疑这与在我的 OS X 终端中使用多个选项卡有关,并且不知何故,历史记录不会在选项卡之间传递,但我不知道。history
答:
这种情况一直发生在我身上。我打开了多个命令窗口,历史记录按照关闭的顺序保存。您正在查找的命令可能已被另一个命令窗口覆盖。
评论
从 OS X El Capitan 10.11 开始,默认情况下 Bash 配置为为每个终端保存单独的命令历史记录,因此可以单独恢复它们以进行恢复。
当 shell 退出时,每个单独的历史记录也会附加到 ~/.bash_history 中的全局历史记录中。如果您退出终端,然后重新打开它(无论是否启用恢复),您应该会发现每个终端的命令都位于 ~/.bash_history 中。如果启用了“恢复”,则每个已还原的终端将仅包含其还原的历史记录,但是当您创建新终端时,它将从最新的全局历史记录开始。
由于所有命令历史记录都附加到全局 ~/.bash_history 文件中,因此您可能希望通过设置环境变量来增加存储的命令数,以便最新的终端历史记录不会过早地将其他终端历史记录推出文件。默认值为 500。我把我的设置为 10,000。我还设置为 10,000,以便我可以浏览整个历史记录(否则,只会从历史记录文件中读取最后 500 个)。HISTFILESIZE
HISTSIZE
安排单独命令历史记录的脚本位于 OS X El Capitan 10.11 及更高版本中。它包含大量注释,描述了该机制的工作原理,以及如何自定义或禁用它。/etc/bashrc_Apple_Terminal
评论
我的终端有这个问题。事实证明,它正在保存到文件夹中新生成的文件中。这是文件中概述的 El Capitan 引入的管理 bash 会话的新方法的一部分。的出站证实了这一点。要禁用此行为,只需运行 。然后退出终端应用并重新启动它。它现在应该正确保存历史记录,可以通过 再次确认。我希望这会有所帮助!~/.bash_sessions
/etc/bashrc_Apple_Terminal
echo $HISTFILE
touch ~/.bash_sessions_disable
echo $HISTFILE
评论
~/.zprofile
中的类似设置。
我很确定这是一个错误。我使用访客帐户登录,因此配置文件是原始的。在主目录中,我做了:
touch .bash_history
然后查看命令何时保存。tail -f .bash_history
当终端会话关闭时,命令应该保存到全局文件中。我发现至少有一半的时间,在关闭终端后,命令没有保存到文件中。关于它何时会发生,何时不会发生,这似乎是随机的。它似乎也以条纹的形式出现,它会连续多次出现,然后再次变得片状。如果我退出终端会话而不是 Command-W,它似乎每次都有效。.bash_history
exit
评论
exit
.bash_history
就我而言,当我键入时,它只显示最新的 16 个命令。但是,我可以通过 Ctrl+R 调用较旧的命令,因此我知道命令历史记录实际上更长。history
截至 2021 年,命令历史记录位于名为.zsh_history
- 打开命令终端。
- 导航到您的主目录:
cd ~
- 列出所有文件:
list -al
- 你应该在那里找到它。
您可以使用 vi: 打开它,然后搜索您的命令。vi .zsh_history
评论
echo 'alias history="history 1"' >> ~/.zshrc && source ~/.zshrc && history
评论