删除持久 shell 历史记录

删除持久 shell 历史记录

有人建议使用此命令来删除持久的 shell 历史记录

history -c; >$HISTFILE

在我知道它的确切作用之前,我只是不想执行它,你能帮忙吗?

答案1

这是两个命令,用 分隔;,而不是一个。你有history -c,然后你有> $HISTFILE。您没有在问题中指定,但假设您正在使用bash,您可以运行help history以查看该history命令是如何工作的。您将看到该-c选项将:

  -c    clear the history list by deleting all of the entries

因此history -c会删除当前 shell 会话中的所有历史记录。

全局历史记录保存在变量中存储的文件中$HISTFILE。默认情况下,这是~/.bash_history

$ echo $HISTFILE
/home/terdon/.bash_history

在 bash shell 中,>不带命令的重定向运算符将清空文件。例如:

$ echo "Hello world!" > file
$ cat file
Hello world!
$ > file
$ cat file
$ 

正如您在上面看到的,运行> file清空了文件,因此运行> $HISTFILE将清空您的历史文件。

因此,将所有这些结合在一起,history -c; > $HISTFILE将清除当前 shell 的历史记录,然后还会删除用户存储的所有历史记录。

相关内容