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


8

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


我将假设您的意思是您的shell的命令历史记录,并已进行了编辑以使用默认的shell bash。
muru 2015年

Answers:


13

来自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内置本身的更多想法。


1
请注意,自当前bash会话开始以来,历史记录文件通常将不包含输入的行,可以通过执行进行修复history -a
丹尼斯

@丹尼斯:好点..补充..
heemayl 2015年

4

尝试这个:

history > output.txt
less output.txt

然后输入/+searchterm


3

bash历史记录保存在您的主目录中~/.bash_history

基本上Ctrl+ R从该文件搜索。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.