我在按照自己想要的方式设置 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
最后,历史重复不会再困扰我了。