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 ....

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.


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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.