会话崩溃后恢复丢失的终端命令

会话崩溃后恢复丢失的终端命令

几天前,我正在使用 Guake 执行一个相当长的命令(使用wget,带有一组复杂的选项下载一个网站)。手术还没做完,我就暂停了笔记本电脑,几天都没有使用它。不幸的是,我的电池没电了。再次登录后,该命令不会出现在文件中.bash_history,因此使用时不会出现在Guake或其他终端中

有什么办法可以恢复这个命令吗?也许它写在其他地方? Guake 文件夹中似乎没有相当于 bash 历史记录的内容。

答案1

不,您可能无法恢复该命令。默认情况下,~/.bash_history仅当您退出 shell 会话时才会写入该文件。这是来自bash手册

当启用历史记录的 shell 退出时,最后几$HISTSIZE行将从历史记录列表复制到名为 的文件中$HISTFILE。如果histappend设置了 shell 选项(请参阅Bash 内置函数),这些行将被追加到历史文件中,否则历史文件将被覆盖。如果HISTFILE未设置,或者历史文件不可写,则不保存历史记录。保存历史记录后,历史记录文件将被截断为仅包含$HISTFILESIZE行。如果HISTFILESIZE未设置或设置为 null、非数字值或小于零的数字值,则不会截断历史文件。

也就是说,如果您想避免将来发生这种情况,您可以采取一些措施。您可能需要将类似以下内容添加到您的~/.bash_profile

shopt -s histappend
export HISTSIZE=-1
export HISTFILESIZE=-1
PROMPT_COMMAND='history -a;history -n'

有关此主题的进一步讨论,请参阅以下帖子:

相关内容