Polecenie history w systemie Linux (Bash History)
Polecenie history w systemie Linux jest potężnym narzędziem dla użytkowników pracujących z powłoką Bash. Śledzi ono poprzednio wykonane polecenia, umożliwiając użytkownikom przeglądanie, przywoływanie, a nawet ponowne wykonywanie poleceń bez konieczności ich ponownego wpisywania. Może to znacznie zwiększyć produktywność, oszczędzając czas i zmniejszając ryzyko popełnienia błędów podczas ponownego wpisywania długich poleceń.
Czym jest Bash History?
Bash, podobnie jak wiele innych powłok, przechowuje zapis wprowadzonych poleceń w pliku historii. W większości dystrybucji Linuksa historia ta jest przechowywana w pliku o nazwie .bash_history w katalogu domowym każdego użytkownika (~/.bash_history). Domyślnie każde polecenie wprowadzone w powłoce jest dołączane do tego pliku po zakończeniu sesji, umożliwiając użytkownikom ponowne odwiedzenie poleceń z poprzednich sesji.
Podstawowe użycie polecenia history
Polecenie history jest proste w użyciu i zapewnia różne sposoby przeglądania i interakcji z historią poleceń. Oto niektóre z najczęstszych zastosowań:
- Wyświetlanie historii poleceń:
Uruchomienie polecenia history bez żadnych argumentów spowoduje wyświetlenie listy ostatnio wprowadzonych poleceń wraz z numerem obok każdego polecenia.historia
Spowoduje to wyświetlenie ostatnich n poleceń, gdzie n wynosi zazwyczaj około 500 lub 1000, w zależności od konfiguracji systemu.
- Określanie liczby poleceń:
Można ograniczyć liczbę wyświetlanych poleceń, określając ich liczbę. Na przykład, aby zobaczyć 10 ostatnich poleceń:history 10
Przywoływanie poleceń z historii
Polecenie historii umożliwia również łatwe przywołanie i ponowne użycie wcześniej wykonanych poleceń:
- Użycie notacji ! (Wykrzyknik):
Umożliwia to ponowne wykonywanie poleceń bezpośrednio z historii:- !! – Ponownie uruchamia ostatnio wykonane polecenie.
!!
- !n – uruchamia polecenie na pozycji n na liście historii.
!42
Powoduje ponowne wykonanie polecenia znajdującego się na pozycji 42 w historii.
- !string – Znajduje najnowsze polecenie zaczynające się od string i wykonuje je.
!git
Spowoduje to wykonanie najnowszego polecenia zaczynającego się od git.
- !! – Ponownie uruchamia ostatnio wykonane polecenie.
- Używanie klawiszy strzałek:
Za pomocą klawiszy strzałek w górę i w dół można przewijać poprzednie polecenia bezpośrednio w terminalu. Jest to szczególnie przydatne do szybkiego wyszukiwania ostatnich poleceń.
Edytowanie i modyfikowanie historii
- Usuwanie określonych wpisów:
Określone polecenie można usunąć z historii za pomocą polecenia history -d, po którym następuje numer wiersza:history -d 42
Spowoduje to usunięcie polecenia w wierszu 42 na liście historii.
- Wyczyść całą historię:
Aby usunąć wszystkie polecenia z pliku historii, użyj:history -c
Spowoduje to wyczyszczenie historii dla bieżącej sesji. Aby wyczyścić również zapisaną historię w ~/.bash_history, nadpisz plik:
history -c && > ~/.bash_history
Konfigurowanie historii Bash
Zachowanie historii można dostosować za pomocą zmiennych środowiskowych i ustawień konfiguracyjnych w plikach ~/.bashrc lub ~/.bash_profile:
- HISTSIZE:
Ta zmienna kontroluje, ile poleceń jest przechowywanych w pamięci podczas sesji. Na przykład, aby zachować 1000 poleceń:export HISTSIZE=1000
- HISTFILESIZE:
Ta zmienna ustawia liczbę linii (poleceń), które są zapisywane w pliku ~/.bash_history. Na przykład:export HISTFILESIZE=2000
Oznacza to, że 2000 poleceń zostanie zachowanych w pliku historii nawet po wylogowaniu.
- HISTCONTROL:
Ta zmienna określa sposób przechowywania poleceń. Typowe opcje obejmują:- ignoredups – Zapobiega dodawaniu zduplikowanych poleceń do historii.
- ignorespace – polecenia zaczynające się od spacji nie są dodawane do historii.
- ignoreboth – łączy ignoredups i ignorespace.
Przykład ustawienia HISTCONTROL na ignorowanie duplikatów:
export HISTCONTROL=ignoredups
- HISTTIMEFORMAT:
Aby dołączyć znacznik czasu do każdego wpisu historii, ustaw HISTTIMEFORMAT:export HISTTIMEFORMAT="%F %T "
Spowoduje to poprzedzenie każdego wpisu historii datą (%F) i godziną (%T).
Przeszukiwanie historii
- Wyszukiwanie wsteczne z Ctrl r:
Jednym z najskuteczniejszych sposobów wyszukiwania poleceń w historii jest użycie Ctrl r. Zacznij wpisywać część polecenia, a Bash znajdzie pasujące polecenia podczas pisania. Ponowne naciśnięcie Ctrl r spowoduje przejście przez poprzednie dopasowania. - Grep z historią:
Możesz także użyć grep do przeszukiwania danych wyjściowych historii:history | grep git
Spowoduje to wyświetlenie wszystkich poleceń zawierających słowo git.
Wnioski
Polecenie historii jest fundamentalną częścią pracy z powłoką Bash, oferując sposób na śledzenie poprzednich poleceń i usprawnienie przepływu pracy. Dzięki możliwości przywoływania, przeszukiwania i dostosowywania historii poleceń, pomaga ono uczynić operacje wiersza poleceń bardziej wydajnymi i przyjaznymi dla użytkownika. Opanowując historię i powiązane z nią funkcje, użytkownicy mogą znacznie przyspieszyć swoją pracę w środowiskach Linux.