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


8

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


Я собираюсь предположить, что вы имели в виду историю команд вашей оболочки и отредактировали для использования оболочки по умолчанию, 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встроенном.


1
Обратите внимание, что файл истории обычно не содержит строк, введенных с начала текущего сеанса bash, что можно исправить, выполнив history -a.
Деннис

@Dennis: Хорошая точка зрения .. добавлено ..
Heemayl


3

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.