Как найти историю команд оболочки с помощью текстового редактора?

8

Я знаю, что Ctrl+ Rдавайте искать историю команд, но она немного примитивна. Есть ли способ экспортировать всю мою историю команд (не только текущий сеанс терминала, но и полную историю) в текстовый файл? Затем я мог бы использовать текстовый редактор для удобного поиска. Или, если файл истории уже существует, где он находится?

becko
источник
Я собираюсь предположить, что вы имели в виду историю команд вашей оболочки и отредактировали для использования оболочки по умолчанию, bash.
Муру

Ответы:

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встроенном.

heemayl
источник
1
Обратите внимание, что файл истории обычно не содержит строк, введенных с начала текущего сеанса bash, что можно исправить, выполнив history -a.
Деннис
@Dennis: Хорошая точка зрения .. добавлено ..
Heemayl
4

Попробуй это:

history > output.txt
less output.txt

Затем выполните поиск, набрав /+searchterm

Ночной человек
источник
3

История Bash сохраняется в вашем домашнем каталоге ~/.bash_history.

В основном Ctrl+ Rпоиск из этого файла.

Sh1d0w
источник