如果我没记错的话,bash在退出登录 shell 会话时将其历史记录保存到~/.bash_history
(或保存到)。$HISTFILE
但是 - 如果您偶尔想坚持使用它,因为担心 shell 被过早杀死(如 SIGKILL 或电源故障),该怎么办?这是否可以在不增加系统或 shell 会话体验负担的情况下实现?
答案1
默认情况下,Bash 在退出 shell 时保存其历史记录。因此,如果它被非优雅地杀死,它将失去它当前的历史。
您可以通过运行以下命令来保存当前的 Bash 历史记录:
$ history -a
知道这一点后,您可以通过在每个执行的命令后运行来使 Bash 在每个执行的命令后保存其历史记录history -a
。一种方法是通过 Bash 提示符:
PROMPT_COMMAND='history -a'
这是有效的,因为 Bash 提示符将在每个新提示符上执行$PS1
、$PROMPT_COMMAND
等等。
这是一篇很棒的博客文章,让我想到了这个想法:https://sanctum.geek.nz/arabesque/better-bash-history/