终端中执行的以空格为前缀的命令不会记录在命令历史文件中。但是有没有办法得到相反的结果,即历史记录应该只记录那些以空格为前缀的?
答案1
您可以通过设置两个变量(HISTIGNORE 和 HISTCONTROL)来撤消默认的 Ubuntu 设置,使用以下命令:
HISTIGNORE='!( *)'
HISTCONTROL=ignoredups
HISTCONTROL=ignoredups
更改历史记录行为以仅忽略重复的行,而不忽略以空格开头的行。(HISTCONTROL=
如果您确实想保留重复项,也可以将 HISTCONTROL 设置为空字符串(使用),但这通常是不希望的。)
HISTIGNORE='!( *)'
使历史记录忽略不以空格开头的每一行:( *)
将匹配以空格开头的每一行,但前导否定匹配,因此它会匹配不以空格开头的所有内容。并且 HISTIGNORE 模式匹配的所有内容都将被历史记录忽略。(后一个选项要求 bash 在打开的情况!
下运行,但这是 Ubuntu 上的默认设置。)extglob
shopt -s extglob
如果您想使其永久生效,请不要忘记将上述两个命令放入您的~/.bashrc
.
答案2
“终端中以空格为前缀的命令不会记录在命令历史文件中“
是的,他们是。