有没有办法暂时中止 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=ignorespace
您HISTCONTROL=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
命令不会存储在历史记录中,因为它前面有空格。