获取bash历史记录只记住以空格为前缀的命令!

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

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

HISTIGNORE='!( *)' HISTCONTROL=ignoredups 

HISTCONTROL=ignoredups更改历史行为以仅忽略重复行,而不忽略以空格开头的行。 (如果你想保留重复项,你也可以将HISTCONTROL设置为空字符串(使用HISTCONTROL= ),但通常不需要。)

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

如果你想永久化,请不要忘记将上述两个命令放入~/.bashrc

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

对,他们是。

终极历史