我想清除服务器历史记录中的所有先前命令。我使用过,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) 清除历史记录,在所有航站楼。这就是上述命令的作用。
答案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)。
希望这可以帮助。