root 的 .bash_history 文件可能如下所示:
line 1
line 2
line 3
line 4
现在我删除第 3 行和第 4 行
su
vim ~/.bash_history
#delete line 3 und 4 with dd
line 1
line 2
:wq
ENTER
CTRL + D
但如果我现在看一下 .bash_history:
su
cat ~/.bash_history
#.bash_history
line 1
line 2
vim ~/.bash_history
那么,我怎样才能仅删除部分历史记录,而不显示最后一行我编辑过该文件?
谢谢
答案1
使用:
su
vim ~/.bash_history
历史记录不会保存命令,如果它有空间在它前面。
这取决于HISTCONTROL
变量。默认情况下(对于 root)它是ignoredups:ignorespace
。
答案2
正如前面提到的,你可以在命令前使用空格,但这取决于HISTCONTROL
变量。以下是一些替代方案 -
您实际上可以告诉终端停止并开始记录历史记录。可以使用以下命令完成 -
set +o history #stop recording history
set -o history #start recording history
如果您已经运行了一些命令,但忘记停止录制或使用空间,.bash_history
只要会话仍处于打开状态,您仍然可以阻止它被写入。当您关闭终端会话时,它会被写入文件。因此,您可以在关闭会话之前(su
在您的情况下是退出之前)删除当前会话历史记录。可以使用以下命令完成 -
history -c
一个极端的选择是,在执行完所有命令后终止终端进程。基本上,在进程将历史记录写入文件之前,您就终止了该进程。
kill -9 $$
$$
将提供当前终端进程 idkill -9
并将终止该进程。