如何彻底清除 bash 历史记录?

如何彻底清除 bash 历史记录?

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

我怎样才能永久清除它们?

答案1

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

要在服务器上彻底清除 bash 历史记录,请打开终端并输入

cat /dev/null > ~/.bash_history

其他替代方法是链接~/.bash_history/dev/null

然而,

一个令人讨厌的副作用是,历史记录条目有一个复制到内存中并且它将退出时刷新回文件

要解决此问题,请使用以下命令(对我有用):

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

答案2

该怎么办:

每一个打开 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/

答案3

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

history -c && history -w

祝你好运!

答案4

清除当前 shell 的历史记录:

history -c

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

如果你想彻底删除历史记录,那么你必须清空 ~/.bash_history,正如上述许多条目所建议的那样。例如:

history -c && history -w

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

希望这可以帮助。

相关内容