您能否分享在bash中使用HISTIGNORE的智慧?


26

我在飞机上阅读bash的联机帮助页时,偶然发现了HISTIGNORE变量。为了进行测试,我立即编辑了.profile来定义此变量:

出口HISTIGNORE = ls

我测试了一下,这很棒!它从我的历史记录中排除了普通的“ ls”命令,而没有排除具有冗长路径的更有趣的命令,但是最近从SU中学到了很多知识,我很想知道超级用户可能会推荐的其他命令或从中学到的其他课程。

您可以在bash中使用HISTIGNORE变量分享什么?

Answers:


29

我不理ls不命令bgfgexitpwdclearmountumount

如果在HISTIGNORE字符串中包含此内容,则可以通过在命令的开头添加一个空格来隐藏任何内容:

"[ \t]*" 

这是我的HISTIGNORE

HISTIGNORE="&:ls:[bf]g:exit:pwd:clear:mount:umount:[ \t]*"

我排除了其中包含的其他一些东西,这些东西是服务器唯一的重复命令。您所做的任何简单操作都是要排除的。

我还有其他东西我忘了添加,但是我离Linux盒子很远,所以我的内存不足了。


6
如果值HISTCONTROL包括“ ignorespace”或“ ignoreboth”,则从历史记录中省略以空格开头的命令。如果该值包含“ ignore dups”或“ ignoreboth”,则与中的“&”相同HISTIGNORE
暂停,直到另行通知。

对我来说,证明忽略history命令本身也是有用的。
con-f-use

2
使用"[ \t]*"ignore命令以空格或开头t。您想要HISTIGNORE=$'&:ls:[bf]g:exit:pwd:clear:mount:umount:[ \t]*'
Gregory Pakosz 2015年

14

不要在历史记录列表中保存平凡的一字符和两个字符命令:

HISTIGNORE='?:??'

如果extglob启用该选项,则还可以使用扩展模式,例如

HISTIGNORE='a*( )'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.