如何使用文本编辑器搜索 shell 命令历史记录?

bec*_*cko 9 command-line bash bash-history

我知道Ctrl+R让您搜索命令历史记录,但这有点原始。有没有办法将我的所有命令历史记录(不仅仅是当前的终端会话,而是完整的历史记录)导出到文本文件中?然后我可以使用文本编辑器轻松地搜索它。或者如果历史文件已经存在,它在哪里?

hee*_*ayl 14

来自man bash

HISTFILE
    The name of the file in which command history is saved.
    The default value  is  ~/.bash_history.
    If unset, the command history is not saved when a shell exits.
Run Code Online (Sandbox Code Playgroud)

因此,该变量HISTFILE将包含保存历史记录的文件名。

$ echo "$HISTFILE"
/home/user/.bash_history
Run Code Online (Sandbox Code Playgroud)

您现在可以搜索模式:

$ grep "vim" "$HISTFILE"
vim foo.text
vim bar.text
vim file.txt
Run Code Online (Sandbox Code Playgroud)

正如@Dennis 指出的那样,如果您愿意,可以运行history -a将正在运行的会话的命令历史记录附加到$HISTFILE文件中。基本上,一旦您关闭会话,这些命令将自动附加,history -a并会立即执行相同的操作。

运行help history以获得更多关于history内置本身的想法。