问题描述
我想在我的服务器的历史命令之前清除所有命令。我使用history -c
似乎所有的东西都被清除了,但是当我ssh到服务器时,所有的命令仍然存在。
我如何永久清除它们?
最佳解决方法
文件~/.bash_history
保存历史记录。
要在服务器上完全清除bash历史记录,请打开终端并键入
cat /dev/null > ~/.bash_history
其他备用方法是将~/.bash_history
链接到/dev/null
然而,
一个令人讨厌的side-effect是历史条目在内存中有一个副本,当你注销时它会回到文件。
要解决这个问题,请使用以下命令(为我工作):
cat /dev/null > ~/.bash_history && history -c && exit
次佳解决方法
该怎么办:
在每个打开的bash shell中(您可能会打开多个终端):
history -c
history -w
原因:如上所述,history -c
清空文件~/.bash_history
。请注意,bash shell不会立即将历史记录刷新到bash_history文件。因此,重要的是(1)将历史记录刷新到文件中,并(2)清除所有终端中的历史记录。这就是上面的命令。
第三种解决方法
执行以下命令永久清除历史记录
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
现在重新登录并见证你的arrow-up不会给你任何东西。