将所有命令保留在 bash 历史记录中?

将所有命令保留在 bash 历史记录中?

我有相反的问题。如何保留 bash 历史记录中的所有命令?

在 Ubuntu 中,相当长一段时间以来,bash 的默认设置是忘记带有不成功退出代码的命令。

Unix用户@金凤花指出也许我只是感到困惑忽略两个指令

设置馅饼

答案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 \! ...

它可能会按预期工作。

相关内容