我不知道为什么我会以这种方式投反对票,但我仍然需要一个答案
我知道只需运行命令就可以轻松了解我的命令历史记录history
。
但这会产生两个主要后果:
history -c
命令只会清除历史记录- 前面有空格的命令不会保存在历史记录中
因此,如果我运行该命令history -c
或前面带有空格的命令或其他命令(如^bad^good
@AvinashRaj 所述),那么我就无法使用该history
命令重新显示它们。
那么还有其他方法可以知道之前运行过的所有命令吗?!!
另外,标记为重复肯定不会回答我的问题。它只是对终端的监控,而不是命令历史记录。
答案1
用户的 bash 终端命令历史记录存储在文件中。会话终止时,会话$HOME/.bash_history
中使用的命令tty
将写入文件;但运行命令将阻止它们附加到历史文件中。命令的作用是显示 的内容。(您也可以使用文本编辑器检查和/或编辑文件,例如使用。).bash_history
tty
history -c
history
$HOME/.bash_history
nano $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 <= 最大行数约束。