获取 bash 历史记录以仅记住以空格前缀运行的命令!

获取 bash 历史记录以仅记住以空格前缀运行的命令!

终端中执行的以空格为前缀的命令不会记录在命令历史文件中。但是有没有办法得到相反的结果,即历史记录应该只记录那些以空格为前缀的?

答案1

您可以通过设置两个变量(HISTIGNORE 和 HISTCONTROL)来撤消默认的 Ubuntu 设置,使用以下命令:

HISTIGNORE='!( *)'
HISTCONTROL=ignoredups

HISTCONTROL=ignoredups更改历史记录行为以仅忽略重复的行,而不忽略以空格开头的行。(HISTCONTROL=如果您确实想保留重复项,也可以将 HISTCONTROL 设置为空字符串(使用),但这通常是不希望的。)

HISTIGNORE='!( *)'使历史记录忽略不以空格开头的每一行:( *)将匹配以空格开头的每一行,但前导否定匹配,因此它会匹配不以空格开头的所有内容。并且 HISTIGNORE 模式匹配的所有内容都将被历史记录忽略。(后一个选项要求 bash 在打开的情况!下运行,但这是 Ubuntu 上的默认设置。)extglobshopt -s extglob

如果您想使其永久生效,请不要忘记将上述两个命令放入您的~/.bashrc.

答案2

终端中以空格为前缀的命令不会记录在命令历史文件中

是的,他们是。

终端历史记录

相关内容