Czy oprócz przeglądania historii istnieje sposób na odfiltrowanie mojej historii?
Powiedz, że chcę wyszukać polecenie, które rozpoczęło się od „ssh”?
źródło
Czy oprócz przeglądania historii istnieje sposób na odfiltrowanie mojej historii?
Powiedz, że chcę wyszukać polecenie, które rozpoczęło się od „ssh”?
Naciśnij Ctrl+ Ri wpisz ssh
. Ctrl+ Rrozpocznie wyszukiwanie od ostatniego polecenia do starego (wyszukiwanie do tyłu). Jeśli masz więcej niż jedno polecenie, które zaczyna się od ssh
, naciśnij Ctrl+ Rraz po raz, aż znajdziesz dopasowanie.
Po znalezieniu dopasowania możesz nacisnąć, Enteraby wykonać polecenie, lub kursor w lewo / w prawo, aby wybrać tekst polecenia.
Nie ma domyślnej opcji odwrotnej dla Ctrl+, Raby odwrócić kierunek wyszukiwania, ale tutaj znajdziesz kilka sugestii na ten temat.
Jeśli chcesz tylko przeszukać swoją historię, możesz po prostu użyć history | grep ssh
, zastępując ssh tym, co chcesz przeszukać.
Robię niewielką odmianę powyższego, działa dobrze dla mnie (jeśli masz na myśli historię bashów)
W moim katalogu domowym tworzę plik o nazwie
Wewnątrz jest to
Uwaga: powyższe wydaje się już nie działać w 14.04, więc robi to to samo -
Następnie wpisując dowolną część poprzedniego polecenia, którego pragnę, a przyciskami strona w górę / strona dn przeszukuje historię, zawsze zaczynając od strony w górę
źródło
Naciśnięcie Ctrl+ Ruruchomi tryb „wstecz-i-szukaj”, wpisanie „ssh” przeszuka Twoją historię pod kątem poleceń zawierających „ssh”.
źródło
Oto kolejna metoda wykorzystująca klasyczne polecenia (bardziej prawdopodobne, że zadziała między dystrybucjami). Historia poleceń jest przechowywana w pliku
.bash_history
w katalogu domowym, więc możesz to zrobić:Nie zapomnij
-i
flagi, jeśli potrzebujesz wyszukiwania bez rozróżniania wielkości liter.źródło
history | grep ssh
pokaże tylko ssh sesji tymczasowej, więc wybrałbym tę odpowiedź.Znalazłem następującą funkcję gdzieś w Internecie i wykorzystałem ją z doskonałym skutkiem. Umieść to w
~/.bashrc
:Teraz ponownie załadować powłokę:
exec bash
. Masz teraz nowe polecenie, którego możesz użyć w następujący sposób:Pokaże ci listę pasujących poleceń z twojej historii. Aby uruchomić polecenie, wpisz
!
numer polecenia. Oto przykład:Podobało mi się to podejście bardziej niż Ctrl+, Rponieważ umożliwia znacznie bardziej elastyczne wyszukiwanie i widzę wiele wyników jednocześnie.
źródło
Umieść to w
~/.bashrc
:przykład:
źródło
Jeśli używasz powłoki w Emacs (
M-x shell
), możesz jej użyćM-r
(odpowiada to Ctrl+ Rw terminalu ).źródło
Historia jest dobra, ale ograniczona - wolę skonfigurować środowisko bash, aby rejestrować wszystkie polecenia, które kiedykolwiek uruchomiłem, oprócz katalogu, w którym zostały uruchomione. Następnie uruchamiam polecenie, aby wyświetlić listę wszystkich poleceń Uruchomiłem w bieżącym katalogu, który mogę potokować do grep itp. - nazywa się to „dish” patrz:
https://github.com/wolfwoolford/dish
Jeśli chcesz przejść do pościgu, po prostu pobierz to w swoim .bashrc ( https://github.com/wolfwoolford/dish/blob/master/dishrc )
Istnieje również bardzo przydatne polecenie, które otrzymujesz za darmo, o nazwie „dishg” - lub dish global - które wypisuje każde polecenie, które kiedykolwiek uruchomiono, niezależnie od katalogu. Oczywiście ten przydaje się tylko w połączeniu z grepem i ogonem itp.
Używam go od lat i jest to dosłownie pierwsza rzecz, którą instaluję za każdym razem, gdy instaluję nowe pudełko. Rejestruje polecenia uruchamiane w plikach tekstowych w ukrytym katalogu (~ / .dish) .. Nigdy nie miałem problemu z miejscem na dysku ...
źródło
Chciałem napisać to jako komentarz do @ssmy, ale nie mogłem uzyskać sformatowania w komentarzu do współpracy.
Po przeszukaniu historii
history | grep ssh
możesz wykonać żądane polecenie, wpisując jego numer poprzedzony wykrzyknikiem, np!42
.Przykład:
źródło