🐧如何在注销时清除Bash历史记录

退出Shell时如何自动清除GNU Bourne-Again SHell历史记录?

登录时禁用HISTFILE Shell变量,以防止退出Shell时保存命令历史记录。

$ echo "unset HISTFILE" | sudo tee /etc/profile.d/unset_histfile.sh

(可选)在登录时将HISTSIZE shell变量设置为0,以使执行的命令不存储在历史记录列表中。

注意,这非常不方便,因为它将完全禁用登录shell中的历史记录。

$ echo "HISTSIZE=0" | sudo tee /etc/profile.d/disable_histsize.sh

创建一个/etc/bash.bash_logout文件,以在外壳退出时执行。

用它清除历史记录。

不用担心,它将在单独的登录shell清理文件〜/ .bash_logout之后执行。

$ echo "history -c" | sudo tee /etc/bash.bash_logout

注意,它不会将空的历史记录列表写入历史记录文件。 由于尚未设置HISTFILE shell变量,因此添加第二条命令以将历史记录列表写入历史记录文件将无法进行。 这也意味着在启动时不会从历史记录文件初始化历史记录列表。 删除现有的〜/.bash_history文件以使所有内容井井有条。

但是要注意其他用户。

您始终可以将历史记录列表保存到特殊文件中。

请注意,这会将当前历史记录列表添加到文件中。

$ HISTFILE=session_history.txt history -w
$ cat session_history.txt
cat .bash_history
HISTFILE=session_history.txt history -w
Sidebar