Answers:
这应该是您要寻找的:
unset HISTFILE
man bash
如果未设置HISTFILE或历史记录文件不可写,则不会保存历史记录。
另外,如果您要先将其关闭然后再重新打开,则可能更易于使用set
:
set +o history
set -o history
set +o history
和set -o history
来回切换;)
unset HISTFILE
不起作用。 set -/+o history
奇迹般有效!谢谢
history
查看它)。如果另外这样做,HISTSIZE=0
该列表将被删除,并且无法将任何命令存储到文件中(因为不会记住任何命令)。
如果您需要避免存储多个命令,而仍然想使用向上箭头访问以前的命令,请使用:
$ bash # open a new session.
$ unset HISTFILE # avoid recording commands to file.
$ commands not recorded
.
.
$ exit
$
有四种方法(级别)来控制命令的存储方式。
第一个也是最简单的方法是使用ignorespace
(或忽略两者):
$ HISTCONTROL="ignorespace${HISTCONTROL:+:$HISTCONTROL}"
这样可以在要避免记录在的内存列表中的命令之前使用空格history
。因此,由于在内存中没有记录可发送到文件的命令,因此也将避免将一个命令发送到中列出的文件$HISFILE
。
避免将命令记录到文件中$HISTFILE
:
$ unset HISTFILE
如果未设置,则退出shell时不会保存命令历史记录。
Null HISTFILE=''
和/或设置为HISTFILE=/dev/null
相同效果。了解命令仍在记录到内存列表中,请尝试使用该history
命令或向上箭头。
警告:如果在存在该外壳程序之前将HISTFILE重置,则无论如何,所有记录在内存中的内容都可以写入该文件中。
避免将新命令记录到内存中的历史记录列表中。并且,由于不在内存中,因此无法记录到文件中。
$ shopt -ou history # or set +o history
重新启用shopt -os history
(或set -o history
)
从中删除所有命令到内存中的历史记录列表:
$ HISTSIZE=0
(从内存中)所有命令都将被擦除,因此,毫无疑问,什么也不会存储到文件中,直到将变量再次设置为某个有效的数值为止。
man history
是,对于我们大多数人来说,都不会削减它。
LESS=+'/^ *HISTI' man bash
(不是“手册页”吗?)。@NathanBasanese
关闭历史记录有一种简单的方法,因此命令不会存储在.bash_history
文件中。
您必须将空格或制表符放在任何命令的前面,以便该命令不会存储在历史记录中。例如:
$ ls
print the list of file
$ history
ls
history
$ pwd
print the current working directory
$ history
ls
history
该pwd
命令将不会存储在历史记录中,因为它的前面有空格。
export HISTFILE=/dev/null
那是我的后路。万一未设置的HISTORY / HISTFILE / HISTCONTROL等无法正常工作,将其导出到/ dev / null总是对我有用。
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)
HISTFILE
仅当bash退出时才检查的值,因此第一种方法不能按原样工作(如果还原该值,则将保存命令)。set +o history
确实按照指示工作。