暂时挂起给定 shell 上的 bash_history?

暂时挂起给定 shell 上的 bash_history?

有没有办法暂时中止 bash 中的历史记录跟踪,从而进入某种“隐身”模式?我正在向终端输入一些我不希望记录的敏感财务信息。

答案1

这将阻止 bash 在退出 shell 时保存任何新的历史记录:

unset HISTFILE

具体来说,根据man bash

如果未设置 HISTFILE,或者历史文件不可写,则不会保存历史记录。

请注意,如果重新设置HISTFILE,历史记录将正常保存。这仅影响 shell 会话结束的那一刻。

或者,如果您想在会话期间将其关闭然后再次打开,则使用它可能会更容易set:

set +o history # temporarily turn off history

# commands here won't be saved

set -o history # turn it back on

答案2

使用 bash,设置HISTCONTROL="ignorespace"任何您不希望记录在历史中的命令并在其前面添加空格。如果您忘记采取任何措施,还可以history -d <number>删除特定条目或history -c清除整个命令历史记录。

答案3

确保HISTCONTROL包含ignorespace.您可能想向HISTCONTROL=ignorespaceHISTCONTROL=ignoredups:ignorespace~/.bashrc.然后,任何以空格开头的命令行都会从历史记录中省略。

另一种可能性是启动一个不保存其历史记录的新 bash 会话。

$ bash
$ unset HISTFILE
$ sooper-sekret-command
$ exit
$ #back in the parent shell

答案4

有一种简单的方法可以关闭历史记录,这样命令就不会存储在文件中.bash_history

您必须将空格或制表符放在任何命令前面,这样该命令就不会存储在历史记录中。例如:

$ ls 
print the list of file 
$ history 
ls
history

$  pwd
print the current  working directory 
$ history 
ls
history

pwd命令不会存储在历史记录中,因为它前面有空格。

相关内容