如何手动保存终端历史记录?
我的理解是终端退出时更新历史文件。 但有时我的计算机崩溃了,终端没有干净地退出,然后我从历史记录中丢失了那些烦人的命令。 如何让它立即刷新,以便即使我的计算机崩溃,条目仍然存在? 目前我正在使用这种解决方法,但我觉得应该有更好的方法。
我在Ubuntu 12.10上使用gnome-terminal。
您从超级用户站点提供的链接中的答案不一定被视为history
命令的默认行为的“变通办法”。 bash shell有一些开箱即用的默认行为。
我强烈推荐阅读如何避免丢失任何历史记录? 解释这些history
修改正在做什么。 此外,还有一些合理的问题需要注意,为什么这不是history
命令的默认行为。
-
性能 – 由于您使用
history -a
保存每个窗口中的每个命令,因此.bash_history
文件可能会变得非常大并且需要更多资源来加载bash shell。 这可能导致启动时间更长(对于终端会话,而不是整个系统启动本身)。 -
组织 – (来自上面的文章) “同时交互式shell(对于给定用户)的历史命令将交织在一起。因此,历史记录不是保证顺序的命令列表,因为它们是在单个shell中执行的。”
如果你担心进一步固定bash shell和。 bash_history
文件通过审核,看看这篇文章: 如何记录历史记录或“安全”bash反对删除历史记录?
有时(例如系统不稳定或电源故障),我发现以下命令很有用。
~/.bashrc
添加到~/.bashrc
文件中:
unset HISTFILESIZE HISTSIZE=3000 PROMPT_COMMAND="history -a" export HISTSIZE PROMPT_COMMAND shopt -s histappend
请务必使用命令source ~/.bashrc
来获取.bashrc
文件
对“如何手动保存终端历史记录?”问题的最简单,有效的答案:
history -a
也可以考虑切换到zsh,它具有setopt inc_append_history
(“在执行之前保存每个命令”)。
这个问题也是相关的: 是否有可能立即写入.bash_history?
要手动将bash历史记录保存到文件:
history -w ~/history.txt vim ~/history.txt
它将历史记录导出到名为history.txt的文件中。 然后,您可以使用自己喜欢的编辑器查看它。
答案复制自http://tech.karbassi.com/2007/01/14/view-and-change-bash-history/