答案1
FWIW,我HISTFILE=~/.bash_history_$(date '+%Y%m%d_%H_%M_%S_%N').txt
在 .bashrc 文件中使用为每个会话创建一个带有时间戳的历史文件。这样我在按下$HISTSIZE
命令时就不会丢失命令。history
只显示当前终端会话的命令历史记录,但我可以轻松搜索以前的 bash 历史记录grep 'what to find' .bash_history*
答案2
我认为你感到困惑是因为HISTCONTROL=ignoreboth
。看这里:http://www.linuxjournal.com/content/using-bash-history-more-efficiently-histcontrol
答案3
我怀疑你并没有做你认为自己在做的事情。运行 frobiz: ,然后查看它是否在您的历史记录中。 Frobiz 通常应该失败 - 没有这样的命令。但它会载入你的历史。我怀疑您正在尝试类似 ls *![0-9] 的操作,这会失败
ls !(*.[0-9])
base ![0-9]": event not found
事情是;当像这样失败时,bash 永远不会尝试运行该命令,因此它不会被放入历史记录中。 IGNOREBOTH 与此无关 - 它的工作原理如广告所示。尝试逃离! (具有讽刺意味的是,shell 正在引用历史中的命令) - 例如:
ls \! ...
它可能会按预期工作。