MC, 11:58 środa, 25.07.2012 r.
Ilustracja do artykułu: Linux bash - Czyszczenie historii poleceń oraz ich wyszukiwanie i wykonywanie

Linux bash - Czyszczenie historii poleceń oraz ich wyszukiwanie i wykonywanie

Dziś postaram się omówić temat historii poleceń Basha. Mianowicie zajmę się operacjami takimi jak przeglądanie, przeszukiwanie czy czyszczenie historii, a także wykonywania zapisanych w niej poleceń.

Jak przejrzeć/przeszukać historię wydanych poleceń?

Praktycznie każda wydawana w terminalu komenda zostaje utrwalona w historii. Na początku nauki korzystania z niej, należy poznać sposób przeglądania jej zawartości. Nawet początkujący użytkownik wiersza poleceń nie powinien mieć z tym żadnych problemów. Jeśli wydamy polecenie:
history
zostanie wypisana cała zapisana historia wydanych komend. Zazwyczaj jest tego dość dużo, zatem zerknijmy jedynie na ostatnich 5 wpisów (skorzystamy do tego celu z polecenia tail):
$ history | tail -n 5
 1995  htop
 1996  sudo renice -n -20 -p 4083 4071
 1997  sh start.sh 
 1998  history
 1999  history | tail -n 5
Jak widać, każdemu wydanemu poleceniu przypisany został numeryczny identyfikator, dzięki któremu będziemy się mogli do nich odnosić. Ale o tym za chwilę. Spróbujmy najpierw przeszukać naszą historię poleceń. Najłatwiej oczywiście jest przefiltrować jej zawartość poleceniem grep. Załóżmy, że chcemy odnaleźć wszystkie wywołania komendy htop:
$ history | grep "htop"
 1134  htop
 1565  htop
 1582  htop
 1601  htop
 1715  htop
 1769  htop
 1845  htop
 1854  htop
 1856  htop
 1858  htop
 1865  htop
 1981  htop
 1982  htop
 1985  htop
 1995  htop
 2000  history | grep "htop"

Jak wykonywać dane polecenia z historii?

Jak już wspomnieliśmy, każdemu zapisanemu w historii poleceniu przypisany został identyfikator, dzięki któremu możemy odnosić się do tychże poleceń. Jeśli więc chcemy wykonać komendę o danym Id, np. 1995 (w moim wypadku polecenie htop), to należy wpisać w terminalu:
!1995
Jak widać, identyfikator polecenia musimy poprzedzić wykrzyknikiem - !.

Istnieje również bardzo prosta możliwość wykonania ostatniego polecenia, co jest niezwykle przydatne. Robimy to za pomocą podwójnego wykrzyknika !!. Ja najczęściej korzystam z tej możliwości, gdy za pierwszym wywołaniem zapomnę użyć uprawnień roota, a jest to wymagane przez dane polecenie. Wtedy wystarczy tylko wydać komendę:

sudo !!
i ostatnio wydane przez nas polecenie zostanie wykonane na prawach super-użytkownika.

Jak usunąć historię poleceń?

Historię komend czyści się w bardzo prosty sposób. Wystarczy do polecenia history dołączyć flagę -c (od clear).
history -c
Warto również wiedzieć, że historia przechowywana jest w pliku ~/.bash_history i można również ręcznie usunąć jego zawartość, co przyniesie ten sam efekt.

Komentarze (6)

Imię:
Treść:
Ja-rek 2023-02-15 13:07:23
history -c kasuje historie tylko do momentu ponownego uruchomienia programu. Przy uruchomieniu jest ona ponownie ładowana i dostępna
Poszukiwacz 2021-12-21 01:56:31
Dzięki za artykuł. Pomógł.
Administrator 2017-08-09 13:42:11
@tonieya, zerknij proszę na ten wpis: https://askubuntu.com/a/430973
tonieya 2017-08-09 13:09:08
a jak zwiekszyc ilość linii w historii? Aktualnie mam 500.
Administrator 2017-07-09 17:24:51
@ppawel, dziękuję bardzo za uzupełnienie artykułu swoim komentarzem. Czy ktoś zna jeszcze inne skróty klawiszowe związane z operacjami na historii poleceń wydanych w konsoli?
ppawel 2017-07-07 22:18:55
Warto też pamiętać o skrócie klawiczowym ctrl + r - czyli wyszukiwanie w historii poleceń ;)