我想从我的服务器的历史记录中清除所有以前的命令。我使用过history -c,似乎所有内容都已清除,但是当我通过 ssh 连接到服务器时,所有命令仍然存在。
如何永久清除它们?
dev*_*av2 424
该文件~/.bash_history保存历史记录。
要完全清除服务器上的 bash 历史记录,请打开终端并键入
cat /dev/null > ~/.bash_history
Run Code Online (Sandbox Code Playgroud)
其他替代方法是链接~/.bash_history到/dev/null
一个令人讨厌的副作用是历史条目在内存中有一个副本,当您注销时它会刷新回文件。
要解决此问题,请使用以下命令(对我有用):
cat /dev/null > ~/.bash_history && history -c && exit
Run Code Online (Sandbox Code Playgroud)
小智 176
该怎么办:
在每个打开的 bash shell 中(您可能打开了多个终端):
history -c
history -w
Run Code Online (Sandbox Code Playgroud)
原因:如上所述,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/
小智 74
执行以下命令永久清除历史记录
history -c && history -w
Run Code Online (Sandbox Code Playgroud)
祝你好运!
Anw*_*war 10
另一种方法是~/.bash_history使用rm ~/.bash_history命令删除文件。当您再次登录时,.bash_history将自动创建该文件。
小智 9
清除当前 shell 的历史记录:
history -c
Run Code Online (Sandbox Code Playgroud)
当您注销时,当前 shell 的历史记录会附加到 ~/.bash_history 中,它是以前 shell 历史记录的缓存,最大数量(请参阅“man bash”中的 HISTFILESIZE)。
如果您想完全删除历史记录,那么您基本上必须清空以上许多条目所建议的 ~/.bash_history 。如:
history -c && history -w
Run Code Online (Sandbox Code Playgroud)
这会清除当前 shell 的历史记录,然后强制当前 shell 的历史记录(空)覆盖 ~/.bash_history....或者更准确地说,它会强制它覆盖 HISTFILE(默认为 ~/.bash_history)。
希望这可以帮助。
rm ~/.bash_history; history -c; logout
Run Code Online (Sandbox Code Playgroud)
现在重新登录并见证你的箭头没有给你任何东西。