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

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

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

答案1

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.

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

$ echo "$HISTFILE"
/home/user/.bash_history

您现在可以搜索模式:

$ grep "vim" "$HISTFILE"
vim foo.text
vim bar.text
vim file.txt

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

运行help history以获取有关history内置功能本身的更多想法。

答案2

尝试这个:

history > output.txt
less output.txt

/然后输入+进行搜索searchterm

答案3

Bash 历史记录保存在你的主目录中~/.bash_history

基本上Ctrl+R从这个文件中搜索。

相关内容