如何查看我的命令历史记录

如何查看我的命令历史记录

我不知道为什么我会以这种方式投反对票,但我仍然需要一个答案

我知道只需运行命令就可以轻松了解我的命令历史记录history

但这会产生两个主要后果:

  1. history -c命令只会清除历史记录
  2. 前面有空格的命令不会保存在历史记录中

因此,如果我运行该命令history -c或前面带有空格的命令或其他命令(如^bad^good@AvinashRaj 所述),那么我就无法使用该history命令重新显示它们。

那么还有其他方法可以知道之前运行过的所有命令吗?!!

另外,标记为重复肯定不会回答我的问题。它只是对终端的监控,而不是命令历史记录。

答案1

用户的 bash 终端命令历史记录存储在文件中。会话终止时,会话$HOME/.bash_history中使用的命令tty将写入文件;但运行命令将阻止它们附加到历史文件中。命令的作用是显示 的内容。(您也可以使用文本编辑器检查和/或编辑文件,例如使用。).bash_historyttyhistory -chistory$HOME/.bash_historynano $HOME/.bash_history


“前面带有空格的命令将不会被存储...,!!或者重复的命令将不会被存储,等等。”

您可以根据需要通过更改文件来更改设置$HOME/.bashrc。这篇文章解释了如何:获取 bash 历史记录以仅记住以空格前缀运行的命令!

在此文件中,您可能会发现类似以下行:

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

历史规模需要记住的命令数量是命令历史. 默认值为500

历史文件大小最大行数包含在历史文件中。当为该变量赋值时,历史文件将被截断(如果需要),方法是删除最旧的条目,以使其不超过该行数。默认值为500。当交互式 shell 退出时,写入历史文件后,历史文件也会被截断为此大小。


因此,总结一下,history -c只需清除正在运行的tty会话的历史记录,并且仍然可以使用history命令访问以前的命令,前提是旧命令没有按照以下方式截断:HISTFILESIZE <= 最大行数约束。

相关内容