如何让 bash 登录会话“自动保存”其历史记录?

如何让 bash 登录会话“自动保存”其历史记录?

如果我没记错的话,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/

相关内容