? 如何在註銷時清除 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 退出時執行。

用它來清除歷史記錄。

不用擔心,它會在單獨的登錄 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

                    

相關文章