Jak przeszukiwać historię poleceń powłoki za pomocą edytora tekstu?

8

Wiem, że Ctrl+ Rprzeszukujemy historię poleceń, ale jest to trochę prymitywne. Czy istnieje sposób na wyeksportowanie całej mojej historii poleceń (nie tylko bieżącej sesji terminala, ale pełnej historii) do pliku tekstowego? Mógłbym wtedy użyć edytora tekstu, aby wygodnie go wyszukiwać. Lub jeśli plik historii już istnieje, gdzie on jest?

becko
źródło
Zakładam, że miałeś na myśli historię poleceń twojej powłoki i edytowałeś, aby użyć domyślnej powłoki, bash.
muru

Odpowiedzi:

13

Od 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.

Zatem zmienna HISTFILEbędzie zawierać nazwę pliku, w którym zapisana zostanie historia.

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

Możesz teraz wyszukać wzór:

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

Jak zauważył @Dennis, jeśli chcesz, możesz uruchomić, history -aaby dołączyć do pliku historię poleceń uruchomionej sesji $HISTFILE. Zasadniczo polecenia zostaną automatycznie dołączone po zamknięciu sesji, history -azrobią to samo w tym momencie.

Uruchom, help historyaby uzyskać więcej informacji na temat historysamego wbudowanego.

heemayl
źródło
1
Zauważ, że plik historii zwykle nie będzie zawierał linii wprowadzonych od początku bieżącej sesji bash, którą można naprawić wykonując history -a.
Dennis
@Dennis: Dobra uwaga .. dodane ..
heemayl
4

Spróbuj tego:

history > output.txt
less output.txt

Następnie wyszukaj, wpisując /+searchterm

The Nightman
źródło
3

Historia bash jest zapisywana w twoim katalogu domowym ~/.bash_history.

Zasadniczo Ctrl+ Rwyszukuje z tego pliku.

Sh1d0w
źródło