Android

Polecenie historii w systemie Linux (historia bash)

Linux Commands for Beginners 15 - Bash History

Linux Commands for Beginners 15 - Bash History

Spisu treści:

Anonim

, porozmawiamy o poleceniu history , które pozwala wyświetlić listę wcześniej wykonanych poleceń, przeszukać listę i manipulować plikiem historii.

Korzystanie z history Polecenia i rozszerzenia historii

history jest wbudowaną powłoką, a jej zachowanie może nieznacznie różnić się w zależności od powłoki. Omówimy wbudowaną wersję history Bash.

W najprostszej formie, przy wywołaniu bez żadnej opcji lub argumentu, polecenie history wyświetla całą listę historii z numerami wierszy.

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

Wpisanie !n wykonuje n-te polecenie z listy historii, a !-n polecenie n wiersze wstecz. W poniższym przykładzie wykonujemy polecenie w linii 467 :

!467

Innym sposobem wykonania polecenia jest użycie rozwijania !word . word odnosi się do najnowszego polecenia rozpoczynającego się od „słowa”.

Zazwyczaj history wyświetla wiele wierszy wyników, które nie mieszczą się na ekranie. Aby wyświetlić dane wyjściowe pojedynczo, potokuj je do programu pagera, tak jak less more polecenie:

history | less

Aby wyświetlić ostatnie n wierszy, przekaż liczbę jako argument do polecenia. Na przykład, aby wyświetlić tylko ostatnie pięć wierszy z listy historii, wpisz:

history -5

Użyj klawiszy strzałek w up i w down , aby poruszać się po pozycjach na liście. Po wyświetleniu szukanego polecenia naciśnij klawisz Enter aby je wykonać.

Wpisz !! aby wykonać poprzednie polecenie:

!!

Jest to szczególnie przydatne, gdy zapomnisz wykonać polecenie w sudo , a zamiast ponownie wpisywać polecenie, możesz wpisać:

sudo !!

!-1 to to samo co !! i wykonuje ostatnie polecenie z listy historii, od !-2 do ostatniego i tak dalej.

Rozszerzenie ^word1^word2^ pozwala ponownie uruchomić ostatnie polecenie, zastępując słowo „słowo 1” słowem „słowo 2”. Jeśli przypadkowo wpisałeś sduo command zamiast sduo command sudo command , możesz powtórzyć polecenie, używając poprawnego słowa z:

^sduo^sudo^

Użyj polecenia grep aby przefiltrować dane wyjściowe. Na przykład, aby wyświetlić wszystkie polecenia, w tym „nano”, uruchom:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

Teraz, jeśli chcesz ponownie uruchomić polecenie nano setup.py po prostu wpisz:

!356

Innym sposobem przeszukiwania historii poleceń jest naciśnięcie Ctrl-R . Monit zmieni się na następujący i możesz rozpocząć wyszukiwanie wcześniej wykonanego polecenia.

(reverse-i-search)`':

Powłoka wyświetli pasującą linię. Aby przejść do następnej pasującej sugestii, naciśnij ponownie Ctrl-R .

Sprawdź podręcznik Bash, aby uzyskać więcej informacji o rozszerzaniu historii, modyfikatorach i desygnatorach.

Zapisywanie listy historii

Domyślnie podczas rozpoczynania nowej sesji Bash czyta listę historii z pliku .bash_history . Lista poleceń wykonywanych w bieżącej sesji jest przechowywana w pamięci i zapisywana w pliku po zamknięciu sesji.

Opcja -a umożliwia zapisanie bieżącej listy historii sesji w pliku .bash_history :

history -a

Opcja -w zapisuje pełną listę historii do pliku historii.

history -w

Czyszczenie historii

Polecenie history pozwala wyczyścić pełną listę historii lub usunąć niektóre części.

Aby wyczyścić listę historii, użyj opcji -c :

history -c

Aby usunąć określoną linię lub linie między pozycjami początkową i końcową z listy historii, użyj opcji -d .

Na przykład, aby usunąć linie między 365 a 375 (w tym te linie), wpisz:

history -d 365 375

Gdy używana jest ujemna liczba całkowita, wiersze są odliczane od końca listy historii.

Powyższe polecenia usuwają listę historii, która jest przechowywana w pamięci, ale nie usuwa wpisów z pliku .bash_history na dysku. Aby wyczyścić plik, musisz zapisać listę historii do pliku:

history -c history -w

Modyfikacja zachowania historii

Zachowanie historii Bash można zdefiniować za pomocą kilku różnych zmiennych środowiskowych. Podczas modyfikowania zachowania historii ustaw zmienne w ~/.bashrc lub innym pliku konfiguracyjnym, który jest ładowany, gdy użytkownik się loguje.

Domyślnie Bash zachowuje 500 linii na liście historii poleceń. Zmienna HISTSIZE pozwala zmienić tę wartość. Aby ustawić go na 10000, dodaj następujący wiersz do pliku .bashrc :

HISTSIZE=10000

Zmienna HISTCONTROL przyjmuje listę wartości oddzielonych dwukropkami, które definiują sposób zapisywania poleceń na liście historii:

  • ignorespace - polecenia rozpoczynające się spacją nie są zapisywane na liście historii. ignoredups - zduplikowane polecenia nie są zapisywane. ignoreboth - jest skrótem, obejmującym zarówno ignorespace jak i ignorespace .

HISTCONTROL=ignoreboth

Gdy ustawiona jest zmienna HISTTIMEFORMAT , Bash przygotowuje znacznik czasu wykonania dla polecenia w każdym wierszu.

Na przykład, jeśli ustawisz:

HISTTIMEFORMAT="%F %T: "

Historia zostanie wyświetlona w następującym formacie:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

Wniosek

Polecenie history wyświetla listę wcześniej wykonanych poleceń. Na przykład możesz użyć historii, aby wyświetlić długie polecenie, którego użyłeś wcześniej, którego nie pamiętasz.

terminal historii