关闭终端时如何清除 bash 历史记录?

关闭终端时如何清除 bash 历史记录?

使用 KDE Konsole 作为 bash 终端 我想在关闭终端(选项卡/应用程序)时清除历史记录,请注意,当 Konsole 仍打开时我确实需要 bash 历史记录(以搜索它);我想在航站楼关闭后将其清除。

我经常长时间使用终端并在关闭终端之前清除历史记录,我正在寻找一种自动清除历史记录的方法。

我发现了关于如何清除历史记录或如何禁用它的类似问题如何关闭终端而不保存历史记录?,但是我发现对我的情况没有任何帮助。这里的区别是,我在终端运行时确实需要历史文件,unset HISTFILE在运行该命令后设置禁用历史文件,并且不会清除历史文件本身。请注意,会话运行时需要历史文件,但会话关闭时需要清除历史文件。

当终端关闭时,我们如何清除 bash 历史记录?

答案1

  1. 擦除.bash_history

    cat /dev/null > .bash_history
    

    或者

    >.bash_history
    
  2. 添加一个陷阱.bashrc

    trap "history  -c" EXIT
    

答案2

您可以使用.bash_logout文件来指定注销时应执行的命令(请参见例如这里了解更多信息)。

答案3

bash文档(请参阅 参考资料man bash)包含有关历史的内容,

外壳变量以下变量由 shell 设置:

[...]

HISTFILE保存命令历史记录的文件的名称[...]。默认值为~/.bash_history。如果未设置,则 shell 退出时不会保存命令历史记录。

因此,要在会话期间允许命令历史记录但防止保存它,只需取消设置此变量即可。您可以在 , 或 中的任何一个或全部中执行此操作.bash_profile.profile.bashrc

unset HISTFILE

答案4

export HISTFILE=/dev/null

它没有改变古老的历史。当您不小心输入密码或其他不想在 .bash_history 中共享的数据时,它会很方便:-)

相关内容