Ubuntu:删除 root .bash_history 的部分内容而不留下任何痕迹

Ubuntu:删除 root .bash_history 的部分内容而不留下任何痕迹

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并将终止该进程。

相关内容