Jak mogę przywołać określone polecenie z historii poleceń, bez wykonywania go

13

Na przykład w bash mogę wpisać, !xyzktóre uruchomi ostatnie polecenie, które wpisałem zaczynając od xyz.

Jak mogę wywołać ostatnie polecenie, które wpisałem zaczynając od, xyzale bez jego wykonania?
np. że mogę zmienić parametry przed wykonaniem ....

Mtl Dev
źródło

Odpowiedzi:

20

Możesz to zrobić w następujący sposób: W wierszu polecenia naciśnij Ctrl+, ra następnie wpisz polecenie, które chcesz przywołać, w twoim przypadku xyz. Spowoduje to wyświetlenie pełnego polecenia bez jego wykonania.

użytkownik2249251
źródło
1
Bardziej przydatne niż !notacja, ponieważ możesz nacisnąć Ctrl-r wiele razy, aby przejść dalej do pasującej historii. Kiedy dotrzesz do właściwego miejsca, możesz spróbować wykonać nie za pomocą Enter, ale za pomocą Ctrl-o, aby uzyskać duży zysk.
kubańczyk
12

Spróbuj !xyz:p; przywoła polecenie na początek historii bez jego wykonania, więc np. strzałka w górę może natychmiast uzyskać do niego dostęp w celu interaktywnej edycji.

Tak na marginesie, zrobię praktykę robi to, gdy przypominając poleceń z regexp że mogłaby wykopać coś uszkodzić, odkąd pospiesznym !r, przeznaczone przypomnieć najnowszego rsync ...polecenia, odsunął i wykonywanerm * które zostały zepchnięte na stosie ostatnio niż rsync.

Szalony Kapelusznik
źródło
Dzięki, to dobra praktyka. Zrobiłem to samo, rm -rf ./*nigdy przez pewien czas nie byłem tak wdzięczny. FYI !xyz:pDziała, dziękuję, ale wymagało kilku dodatkowych naciśnięć klawiszy niż rozwiązanie ctrl-r.
Mtl Dev
@MtlDev tak; Uważam, że rozwiązanie ^ R działa najlepiej dla EMACSludzi, a viścieżka ! Działa najlepiej dla olatorów takich jak ja.
MadHatter
1
  1. Wykonaj następujące polecenie. Powtórzy ostatnio wykonane polecenie. możesz skopiować i edytować polecenie. To polecenie przetestowane w debianie.

    historia | ogon -2 | grep -v history | Wytnij -d '-f4-

  2. Lub Naciśnij i przytrzymaj ctrl + R i wpisz literę początkową ostatniego polecenia. Wyświetli listę wcześniej wykonanych poleceń na podstawie wprowadzonych danych. Po wyświetleniu żądanego polecenia wystarczy nacisnąć strzałkę w prawo, aby wybrać to polecenie.

vembutech
źródło
1
Pierwsze polecenie jest takie płynne !! Myślę, że szybsze jest po prostu
zajmowanie się
1

Jeśli wyszukiwanie historii wstecz nie powiodło się, wykonaj następujące czynności:

$ history | grep WHAT_YOU_LOOK_FOR

Lub:

$ grep WHAT_YOU_LOOK_FOR ~/.bash_history
178024
źródło