在终端中以空格为前缀的命令不记录在命令历史文件中。但是有没有办法得到相反的结果,即历史记录应该只记录那些以空格为前缀的?
fal*_*ner 13
您可以通过设置两个变量(HISTIGNORE 和 HISTCONTROL)来反转默认的 Ubuntu 设置,使用如下命令:
HISTIGNORE='!( *)'
HISTCONTROL=ignoredups
Run Code Online (Sandbox Code Playgroud)
HISTCONTROL=ignoredups
将历史行为更改为仅忽略重复的行,而不忽略以空格开头的行。(HISTCONTROL=
如果您确实想保留重复项,也可以将 HISTCONTROL 设置为空字符串(使用),但这通常是不需要的。)
HISTIGNORE='!( *)'
使历史忽略不以空格( *)
开头的每一行:将匹配以空格开头的每一行,但前导!
否定匹配,因此它匹配所有不以空格开头的行。与 HISTIGNORE 模式匹配的所有内容都将被历史记录忽略。(后一个选项要求 bash 在extglob
打开shopt -s extglob
的情况下运行,使用,但这是 Ubuntu 上的默认设置。)
如果你想让它永久化,不要忘记把上面两个命令放到你的~/.bashrc
.