Moc Linux „History Command” w Bash Shell

Moc Linux „History Command” w Bash Shell

Używamy historia Polecenie często w naszych codziennych rutynowych zadaniach, aby sprawdzić historię polecenia lub uzyskać informacje o poleceniu wykonanym przez użytkownika. W tym poście zobaczymy, w jaki sposób możemy skutecznie używać komendy historii, aby wyodrębnić polecenie, które zostało wykonane przez użytkowników w Bash Shell. Może to być przydatne w celu audytu lub dowiedzieć się, jakie polecenie jest wykonywane za co data I czas.

Domyślnie data I znak czasu nie będzie widać podczas wykonywania historia Komenda. Jednak Bash Shell zapewnia Cli Narzędzia do edytowania historii poleceń użytkownika. Zobaczmy poręczne wskazówki, sztuczki i moc historia Komenda.

Przykłady polecenia historii

1. Lista ostatni/wszystkie wykonane polecenia w Linux

Wykonanie prostego historia Polecenie z terminalu wyświetli pełną listę ostatnich wykonanych poleceń z numerami wiersza.

[[e -mail chroniony] ~] $ History 1 ps1 = '\ e [1; 35m [\ [chroniony e -mail] \ h \ w] $ \ e [m' 2 ps1 = "\ e [0; 32M [\ [[e -mail chronione] \ h \ w] $ \ e [m "3 ps1 =" \ [e -mail chroniony] \ h: \ w [\ j] $ "4 ping Google.com 5 echo $ ps1 6 ogon -f/var/log/message 7 ogon -f/var/log/message 8 exit 9 Wyczyść 10 HISTORIA 11 Clear 12 Historia

2. Wymień wszystkie polecenia z datą i znacznikiem czasu

Jak znaleźć data I znak czasu przeciw poleceniom? Z 'eksport' Polecenie ze zmienną wyświetli polecenie historii z odpowiednim znacznikiem czasu, gdy polecenie zostało wykonane.

[[e-mail chroniony] ~] $ Export HisttimeFormat = " %f %t" 1 2013-06-09 10:40:12 Cat /etc /emisj 2 2013-06-09 10:40:12 Clear 3 2013-06- 09 10:40:12 Znajdź /etc -name *.CONF 4 2013-06-09 10:40:12 Wyczyść 5 2013-06-09 10:40:12 Historia 6 2013-06-09 10:40:12 PS1 = '\ e [1; 35m [\ [[e-mail chroniony ] \ H \ w] $ \ e [M '7 2013-06-09 10:40:12 ps1 = "\ e [0; 32M [\ [chroniony e-mail] \ h \ w] $ \ e [m" 8 8 2013-06-09 10:40:12 ps1 = "\ [chroniony e-mail] \ h: \ w [\ j] $" 9 2013-06-09 10:40:12 Ping Google.COM 10 2013-06-09 10:40:12 Echo $ PS1
Znaczenie zmiennych HisttimeFormat
%F równoważny %y - %m - %d %t zastąpiony przez czas ( %h: %m: %s)

3. Filtruj polecenia w historii

Jak widzimy, że to samo polecenie jest powtarzane liczba razy w powyższym wyjściu. Jak filtrować proste lub nie destrukcyjne polecenia w historii?. Użyj następujących 'eksport„Polecenie, określając polecenie w HISTIGNORE = „LS -L: PWD: Data:” nie będzie zapisane według systemu i nie będzie pokazane w dowództwie historii.

[[e -mail chroniony] ~] $ export histignore = "ls -l: pwd: data:"

4. Ignoruj ​​zduplikowane polecenia w historii

Z poniższym poleceniem pomoże nam zignorować duplikat poleceń wprowadzonych przez użytkownika. Tylko pojedynczy wpis zostanie wyświetlony w historii, jeśli użytkownik wykonuje to samo polecenie wiele razy w wierszu BASH.

[[e -mail chroniony] ~] $ Export HistControl = IgnorredUps

5. Unset Export Command

Unset Export Command w locie. Wykonać Unset Export polecenie ze zmienną jeden po drugim, jakie polecenia zostały wyeksportowane eksport Komenda.

[[e -mail chroniony] ~] $ unset eksport HistConcontrol

6. Zapisz polecenie eksportu na stałe

Dokonaj wpisu w następujący sposób .bash_profile zapisać eksport polecenie na stałe.

[[chroniony e -mail] ~] $ vi .bash_profile # .bash_profile # Zdobądź aliasy i funkcje, jeśli [-f ~/.bashrc]; Następnie . ~/.BASHRC FI # Specyficzne dla użytkownika środowisko i programy startupowe Eksport HistControl = IgnorredUps Ścieżka = $ ścieżka: $ home/bin ścieżka eksportowa

7. Wypisz wykonane polecenia określone przez użytkownika

Jak zobaczyć historię poleceń wykonaną przez określonego użytkownika. Bash przechowuje historię w '~/.bash_history ' plik. Możemy wyświetlić lub otwierać plik, aby zobaczyć historię polecenia.

[[chroniony e -mail] ~] $ vi .Bash_history CD / TMP / CD Logstalgia-1.0.3/ ./Skonfiguruj sudo passwd root apt-get instaluj libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev Make GCC ./konfiguruj, aby zainstaluj apt-get instaluj libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev Make gcc ++ apt-get instaluj libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc apt-get instaluj MySQl -u root -p apt-get instaluj grsync apt-get instaluj Unisis Unison Unison

8. Wyłącz przechowywanie historii poleceń

Niektóre organizacja nie zachowują historii poleceń ze względu na politykę bezpieczeństwa organizacji. W takim przypadku możemy edytować .bash_profile plik (to ukryty plik) użytkownika i dokonaj wpisu jak poniżej.

[[chroniony e -mail] ~] $ vi .bash_profile # .bash_profile # Zdobądź aliasy i funkcje, jeśli [-f ~/.bashrc]; Następnie . ~/.bashrc fi # Ścieżka dla użytkownika i programy uruchamiania = $ ścieżka: $ home/bin histsize = 0 ścieżka eksportu .bash_profile (koniec)

Zapisz zmiany i załaduj zmiany poniżej polecenia.

[[e -mail chroniony] ~] $ Źródło .bash_profile

Notatka: Jeśli nie chcesz, aby system pamiętał, jak wpisałeś polecenia, po prostu wykonaj poniżej polecenie, które wyłączy lub przestanie nagrywać historię w locie.

[[e -mail chroniony] ~] $ Eksport Histsize = 0

Porady: Szukaj 'Histsize'i edytuj w'/itp./profil ' Plik z Superuser. Zmiana pliku wpłynie na globalnie.

9. Usuń lub jasna historia poleceń

Z w górę I w dół strzałka, widzimy wcześniej używane polecenie, które może być pomocne lub może cię zirytować. Usuwanie lub wyczyszczenie wszystkich wpisów z listy historii Bash z '-C„Opcje.

[[e -mail chroniony] ~] $ History -c

10. Wyszukaj polecenia w historii za pomocą polecenia GREP

Wyszukaj polecenie przez '.bash_history`` Przekładając plik historii ''Grep' jak poniżej. Na przykład poniższe polecenie wyszukuje i znajdzie 'PWD„Polecenie z listy historii.

[[e -mail chroniony] ~] $ HISTORIA | GREP PWD 113 2013-06-09 10:40:12 PWD 141 2013-06-09 10:40:12 PWD 198 2013-06-09 15:46:23 Historia | GREP PWD 202 2013-06-09 15:47:39 Historia | GREP PWD

11. Wyszukaj na koniec wykonane polecenie

Wyszukaj wcześniej wykonane polecenie z „Ctrl+r” Komenda. Po znalezieniu polecenia, którego szukasz, naciśnijWchodzić„Aby wykonać tę samą elastyczność”wyjście„Aby to anulować.

(Odwrotne-i-poszukiwaj) „Źródło”: Źródło .bash_profile

12. Przywołaj ostatnie wykonane polecenie

Przypomnijmy wcześniej użyte określone polecenie. Kombinacja Huk I 8 (!8) Polecenie przywoła numer 8 polecenie, które wykonałeś.

[[chroniony e -mail] ~] $ !8

13. Przywołaj na koniec wykonane określone polecenie

Przywołaj wcześniej używane polecenie (netstat -np | GREP 22) z '!„I a następnie niektóre litery tego konkretnego polecenia.

[[chroniony e -mail] ~] $ !net netstat -np | GREP 22 (nie można odczytać żadnych informacji dla „-p”: geteuid () = 501, ale powinieneś być root.) TCP 0 68 192.168.50.2:22 192.168.50.1: 1857 Ustanowiony - TCP 0 0 192.168.50.2:22 192.168.50.1: 2516 Ustanowiony - UNIX 2 [] DGRAM 12284 - @/org/freedesktop/hal/udev_event Unix 3 [] Stream podłączony 14522 - UNIX 2 [] DGRAM 13622 - UNIX 3 [] Stream podłączony 12250 - @/var/run/run/run/run/ HALD/DBUS -UJAJOMNA0G UNIX 3 [] Podłączony strumień 12249 - UNIX 3 [] Stream podłączony 12228 -/var/run/dbus/system_bus_socket Unix 3 [] Stream podłączony 12227 -

Próbowaliśmy podkreślić moc History Command. To jednak nie jest to koniec. Podziel się z nami swoim doświadczeniem z History za pośrednictwem naszego pola komentarza poniżej.