如何停止 Bash 附加历史记录

如何停止 Bash 附加历史记录

我在按照自己想要的方式设置 Bash 的终端历史记录时遇到了很多麻烦。

我不想有重复的条目,如果我输入一个命令,我希望保存它并删除上面的重复项。

问题是 history 命令显示它按我想要的方式运行,但是一旦我注销,重复项又会再次出现。我相信它只是将历史记录附加到现有历史记录中。

我的 .bashrc 文件(~/.bashrc)中有这些行

HISTCONTROL=ignoreboth:erasedups
shopt -u histappend

我甚至尝试取消注释 shopt 但它仍然会在注销时附加历史记录。

我怎样才能使历史记录与我注销之前完全一致?

答案1

~/.bash_logout您可以创建一个包含以下内容的.bash_logout 文件 ( ):

history -a
history -w

这会将内存中的当前历史记录写入 .bash_history 文件,然后在您注销之前删除重复项。

答案2

@Danny Staple 的答案很好,但对我来说不起作用,一旦我注销,重复项就会再次出现(我使用的是 Ubuntu 20.04 BASH)。但这给了我正确的方向。我对其进行了微调。同样,按~/.bash_logout如下方式编辑文件:

history -w
history -c

最后,历史重复不会再困扰我了。

相关内容