Jak najlepiej wykorzystać historię Linux Bash


Wiersz poleceń Linuksa - Terminal, podobnie jak wszystkie powłoki, przechowuje historię poleceń wykonanych w przeszłości przez użytkownika. Ta historia jest trwała i pozostaje w pamięci nawet po ponownym uruchomieniu naszego systemu. Te przechowywane polecenia mogą być przez nas przywołane i ponownie wykorzystane w najbardziej optymalny sposób, aby efektywnie wykorzystać funkcję zapisywania historii większości powłok.

Linux Bash zawiera bardzo potężne polecenie o nazwie „historia”. To polecenie jest wbudowanym poleceniem bash, służącym do wyodrębnienia informacji historycznych o poleceniach wykonanych przez użytkowników Linuksa we wszystkich poprzednich sesjach. W tym samouczku umożliwimy Ci jak najlepsze wykorzystanie historii powłoki poprzez naukę prawidłowego korzystania z polecenia historii. Linux domyślnie przechowuje historię poleceń dla określonego użytkownika w pliku ~ / .bash_history.

Będziemy używać aplikacji terminalowej systemu Linux do uruchamiania poleceń wymienionych w tym samouczku.

Przeglądanie całej historii

Użytkownik może przeglądać całą historię swoich poleceń powłoki z pliku historii zapisanego wyłącznie dla tego użytkownika za pomocą następującego prostego polecenia:

$ history

Historia zostanie wydrukowana na ekran w następującym domyślnym formacie:

Na powyższym obrazku możesz zobaczyć listę wszystkich poleceń z przypisanym numerem do każdego z nich. Polecenie numer 1 odpowiada pierwszemu poleceniu, które wykonałeś, a ostatnie polecenie o numerze oznacza ostatnie wykonane polecenie.

Jeśli uruchomiłeś wiele poleceń od czasu użycia bash, zauważysz, że będą tu setki, a nawet tysiące tych poleceń. Aby uzyskać dostęp do kilku odpowiednich poleceń, możesz filtrować wyniki wyświetlane przez funkcję historii. Możesz także dostosować polecenie historii, aby wyświetlała określoną liczbę poleceń.

Filtrowanie wyników historii

Jeśli chcesz filtrować wyniki historii na podstawie określonego słowa kluczowego, którego mogłeś użyć w poprzednich poleceniach, możesz użyć polecenia historii w następujący sposób:

$ history | grep [keyword]

Przykład: W tym przykładzie chcę wyświetlić tylko polecenia ping, które kiedykolwiek uruchomiłem w powłoce.Dlatego użyję następującego polecenia:

$ history | grep ping

Możesz zobaczyć, że moje dane wyjściowe wyświetlają teraz tylko polecenia, w tym moje słowo kluczowe wyszukiwania „ping”

Wyświetlanie liczby ostatnich poleceń

Można również wyświetlić określoną liczbę poleceń, na przykład:

  • N liczba ostatnie polecenia

LUB

  • N liczba najstarszych poleceń

N Liczba ostatnich poleceń

Można wyświetlić określoną liczbę ostatnio uruchomionych poleceń za pomocą następującego polecenia:

$ history | tail -n

Przykład:

W tym przykładzie Chcę wyświetlić ostatnie 3 polecenia, które uruchomiłem, ze słowem kluczowym „ping”:

$ history | grep ping |tail -3

Dane wyjściowe wyświetlają tylko 3 ostatnie polecenia ping zamiast całej historii

N Liczba najstarszych poleceń

Możesz wyświetlić określoną liczbę najstarszych poleceń uruchamiania za pomocą następującego polecenia:

$ history | head -n

Przykład:

W tym przykładzie chcę wyświetlić 3 najstarsze polecenia, które uruchomiłem, ze słowem kluczowym „ping”:

$ history | grep ping |head -3

Wyjście wyświetla tylko 3 najstarsze polecenia ping zamiast całej historii

Lista wszystkich poleceń z datą i datownikiem

Jeśli chcesz aby wyświetlić historię poleceń wraz z datą i znacznikiem czasu, użyj następującego polecenia eksportu:

$ export HISTTIMEFORMAT='%F, %T '

Teraz, gdy chcesz wyświetlić historię, po prostu uruchom polecenie historii, aby wyświetlić dane wyjściowe w następującym formacie:

Pamiętaj, że ta zmiana formatu jest tymczasowa i zostanie przywrócona do poprzedniego standardu po zamknięciu sesji.

Nawigacja poleceń z historii

Podczas korzystania z wiersza poleceń można nawigować między poprzednio uruchomionymi poleceniami, a także przywoływać niektóre ostatnio używane polecenia, podając słowo kluczowe.

Przewijanie poleceń

Do poruszania się po poleceniach historii można używać następujących elementów sterujących klawiatury

Strzałka w górę / Ctrl + P Za pomocą tych elementów sterujących można wyświetlić poprzednie użyte polecenie. Możesz nacisnąć te elementy sterujące wiele razy, aby wrócić do określonego polecenia w historii.
Strzałka w dół / Ctrl + N Za pomocą tych elementów sterujących można wyświetlić następne użyte polecenie. Możesz nacisnąć te elementy sterujące wiele razy, aby przejść do określonego polecenia w historii.
Alt + R Jeśli edytujesz polecenie, które wyciągnąłeś z historii, w bieżącym wierszu, możesz użyć tego elementu sterującego, aby przywrócić oryginalne polecenie.

Przywoływanie poleceń

Możesz przywołać, uruchomić lub zdecydować, aby nie uruchamiać określonego polecenia z historii, używając następujących elementów sterujących:

Ctrl + R Za pomocą tego elementu sterującego można przywołać polecenie z historii, określając szukana fraza.
Ctrl + O Za pomocą tego elementu sterującego można uruchomić polecenie, które przywołano za pomocą Ctrl + R
Ctrl + G Za pomocą tego elementu sterującego, można wyjść z historii bez uruchamiania polecenia, które przywołano za pomocą Ctrl + R

Przykład :

W tym przykładzie nacisnąłem ctrl + R, a następnie podałem szukany ciąg „ar”. Historia wyświetlała polecenie „arch”.

Kiedy uruchomiłem polecenie „arch”, naciskając ctrl + O, wyświetlił architekturę procesora mojego systemu:

Wykorzystanie historii bash

Prawdziwa magia historii bash polega na użyciu różnych poleceń i dostosowaniu polecenia historii aby jak najlepiej wykorzystać funkcję historii:

Uruchamianie poleceń z historii

  • Jak widzieliśmy wcześniej, polecenie historii wyświetla polecenia, przypisując do nich liczbę. Korzystając z następującego polecenia, możesz uruchomić określone polecenie z historii na podstawie jego numeru:
$ !#

Przykład:

Tutaj uruchamiam polecenie 95 z mojej historii:

$ !95

Dane wyjściowe wyświetla wynik 'lscpu', który był wymieniony jako numer polecenia 95 w mojej historii bash. To polecenie wyświetla specyfikacje mojego procesora i systemu operacyjnego.

  • Możesz ponownie uruchomić poprzednie polecenie, używając następującego polecenia:
$ !!

Przykład:

Tutaj możesz zobaczyć, że uruchomiłem polecenie „arch”. Wykonując powyższe polecenie, mogę ponownie uruchomić polecenie „arch”, aby wyświetlić moją architekturę procesora w następujący sposób:

  • Aby wyszukać polecenie z historii, a następnie je uruchomić, użyj następującego polecenia:
$ ![keyword]

Przykład:

Użyję następującego polecenia, aby ponownie uruchomić ostatnie polecenie ze słowem kluczowym „dconf”:

$ !dconf

Możesz ponownie potwierdzić na poniższym obrazie, że był to ostatni dconf polecenie, które uruchomiłem.

Używanie argumentów z poprzednich poleceń

Linux bash umożliwia uruchomienie nowego polecenia przy użyciu argumentów z poprzedniego polecenia. Jest to szczególnie pomocne, gdy chcesz uniknąć ponownego wpisywania długich lub skomplikowanych argumentów. W tym celu możesz użyć następującego polecenia:

Używając ostatniego argumentu z poprzedniego polecenia

$ [Command] !$

Zmienna! $ Ma ostatni argument z poprzedniego polecenia zapisanego w nim.

Przykład:

W tym przykładzie utworzę plik o długiej nazwie.

Nano [longnameOfaFile]

Następnie skopiuję go do innej lokalizacji, unikając ponownego wpisywania długiej nazwy w następujący sposób:

Cp !$ [destinationfolder]

Możesz zobaczyć, że mogłem skopiować plik bez ponownego wpisywania nazwy pliku za pomocą zmiennej ! $

Korzystanie z pierwszego argumentu z poprzedniego polecenia

Czasami tylko pierwszy argument z poprzedniego polecenia jest pomocny w bieżącym.

W takim przypadku możesz użyć następującego polecenia:

$ [command] !^

Przykład:

W poniższym przykładzie uruchomiłem polecenie ping, podając nazwę hosta i liczbę jako argumenty. Teraz chcę użyć nazwy hosta (pierwszy argument) zamiast 2 (ostatni argument) w moim nowym poleceniu. W tym celu użyję następującego polecenia:

$ ping !^

Używając wszystkich argumentów z poprzedniego polecenia

Możesz także użyć wszystkich argumentów z poprzedniego polecenia, używając następującego polecenia:

$ !*

Używając jeden argument z komendy historii

Można także użyć komend z historii, ponownie wykorzystując ich argumenty.W tym celu użyj następującego polecenia:

$ [command] ![keyword]:#

Przykład:

$ echo !cp:2

To polecenie przyjmie następujące parametry:

polecenie: echo

Słowo kluczowe: cp

#: 2 (drugi argument polecenie)

Poniższe dane wyjściowe pokazują 2. argument ostatniego polecenia cp, które uruchomiłem:

Używanie wszystkich argumentów z polecenia historii

Następujące polecenie zapisze wszystkie argumenty z przeszukiwanego polecenia historii i użyje ich w bieżącym poleceniu:

$ command ![keyword]:*

Przykład:

W poniższym poleceniu wydrukuję wszystkie argumenty ostatniego polecenia cp, używając polecenia echo w następujący sposób:

$ echo ![cp]:*

Modyfikowanie i uruchamianie poprzednich poleceń

W przypadku pomyłki polecenie lub chcesz ponownie uruchomić polecenie, zmieniając w nim tekst; Oto sposób na to:

$ ^[previoustext]^[newtext]

Przykład:

Błędnie wpisałem polecenie „grep” jako „gep”, a teraz chcę uruchomić polecenie, poprawiając tekst:

$ ^gep^grep

Teraz ty widzę, że moje poprawione polecenie będzie działać poprawnie w następujący sposób:

Czyszczenie historii

Aby usunąć historię twojego basha, użyj następującego polecenia:

$ history -c

To polecenie wyczyści Twoją historię i usunie całą zawartość z plik ~ / .bash_history

W tym samouczku nauczyliśmy się, że podczas drukowania całej zawartości historii może nie być to tak przydatne, optymalizacja wyjścia za pomocą poznanych poleceń jest prawdziwym zmieniaczem gier. Ćwiczenie wraz z tym artykułem pozwoli ci zobaczyć dokładne polecenia, które chcesz, ponownie uruchomić i ponownie użyć tych poleceń, a także użyć argumentów z wcześniej uruchomionych poleceń, aby zoptymalizować nowe.

Komentarze