如何完全清除bash历史?

我想清除服务器历史记录中的所有先前命令。 我使用history -c似乎一切都被清除但是当我ssh到服务器时,所有的命令仍然存在。

我该如何永久清除它们?

文件~/.bash_history保存历史记录。

要在服务器上完全清除bash历史记录,请打开终端并键入

 cat /dev/null > ~/.bash_history 

另一种方法是将~/.bash_history链接到/dev/null

然而,

一个令人讨厌的副作用是历史记录条目在内存中有一个副本 ,它会在您注销时刷新回文件

要解决此问题,请使用以下命令(为我工作):

 cat /dev/null > ~/.bash_history && history -c && exit 

该怎么办:

每个打开的bash shell中(可能有多个终端打开):

 history -c history -w 

原因:如上所述, history -c清空文件~/.bash_history 。 请务必注意,bash shell不会立即将历史记录刷新到bash_history文件中。 因此,重要的是(1)将历史记录刷新到文件,以及(2) 在所有终端中清除历史记录。 这就是上面的命令。

参考: http : //www.giannistsakiris.com/index.php/2007/09/13/how-to-clear-bash-history-and-what-to-watch-out-for/

执行以下命令以永久清除历史记录

 history -c && history -w 

祝好运!

还有一个更简单的方法:在终端提示符上运行history -c并且消失了bash_history文件中的所有条目。

另一种方法是使用rm ~/.bash_history命令删除~/.bash_history文件。 当您再次登录时,将自动创建.bash_history文件。

清除当前shell的历史记录:

 history -c 

当您注销时,当前shell的历史记录会附加到〜/ .bash_history,这是以前shell历史记录的缓存,最大数量(请参阅“man bash”中的HISTFILESIZE)。

如果你想完全删除历史记录,那么你基本上必须清空〜/ .bash_history,其中许多上述条目已经建议。 如:

 history -c && history -w 

这将清除当前shell的历史记录,然后强制当前shell的历史记录(空)覆盖〜/ .bash_history ….或者更准确,它会强制它覆盖HISTFILE(默认为〜/ .bash_history)。

希望这可以帮助。

 rm ~/.bash_history; history -c; logout 

现在重新登录并见证你的向上箭头没有给你任何东西。

试试这个

编辑.profile并在文件末尾添加以下行

 rm -f .bash_history 

这样,每次登录时,它都会自动删除您的.bash_history文件。 添加-r recursive remove选项似乎很危险,不需要。