我喜欢保留很多历史,所以我histappend在我的.bashrc. 大多数情况下,一切正常,历史记录是由许多 shell 附加而成的。然而,每隔一段时间,我会启动一个新的 shell 并发现我已经丢失了整个历史——而且它通常只包含来自最后一个 shell 的一些退出命令(即它不仅仅是覆盖而不是附加)。因此,我怀疑它是在 shell 退出时发生的,而不是在其他一些进程杀死.bash_history文件时发生的。支持这个结论,我的提示中有历史命令编号,而且我从未见过它们跳下来。
有人遇到过类似的问题吗?或者甚至只是有关于如何追踪问题的建议?
Cas*_*bel 15
很抱歉回答我自己的问题,但其他答案都没有真正解决问题。
我终于发现这只会在关闭gnome-terminal自身时发生(即文件 > 退出,'x' 按钮,alt+F4),即使这样,通常也只有在快速连续关闭多个终端时才会发生。使用 ctrl-D 关闭外壳时,它永远不会发生,让终端跟随。
如果我能很好地确定它,我将提交一份 gnome-terminal 错误报告。与此同时,也许这会帮助其他一些从谷歌来到这里的人!
inn*_*naM 13
不知道为什么会发生这种情况,但也许您可以通过强制 bash 每次显示提示时写入其历史文件来规避该问题:
PROMPT_COMMAND="history -a; history -n"
Run Code Online (Sandbox Code Playgroud)
每次 bash 提示输入下一个命令时,这将写入 (-a) 然后重新读取 (-n) 历史文件。额外的好处:您将在 shell 2 的历史记录中在 shell 1 中获得命令 X。
我以前见过这种情况发生,但这是一个磁盘错误发生频率不断增加的问题。我会在驱动器上运行扫描。如果结果证明驱动器没有问题,我会检查该文件是否没有超过任意 shell 历史记录限制。
可能能够阻止这种情况发生的方法是不断将文件削减到 80 行,或者您想要历史记录的命令数量。
| 归档时间: |
|
| 查看次数: |
7479 次 |
| 最近记录: |