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?


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.


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


3

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

Zasadniczo Ctrl+ Rwyszukuje z tego pliku.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.