![如何使用文本编辑器搜索 shell 命令历史记录?](https://linux22.com/image/870431/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8%E6%90%9C%E7%B4%A2%20shell%20%E5%91%BD%E4%BB%A4%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95%EF%BC%9F.png)
我知道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从这个文件中搜索。