Nie pamiętam sztuczki, w której mogłem uzyskać ostatnie polecenie bez jego uruchomienia:
powiedzmy, że chcę mieć dostęp do polecenia! 1255 po naciśnięciu klawisza strzałki w górę i zmodyfikowaniu polecenia. Jaki jest więc sposób na wywołanie polecenia, aby był wyświetlany w wierszu polecenia, ale nie był wykonywany, a następnie dostępny za pomocą klawisza strzałki w górę?
Próbowałem umieścić echo, ale potem mam echo przed poleceniem, nie pamiętam, jak to zrobić poprawnie.
Odpowiedzi:
Zrobię to
!
przywoływanie historii1255
jest:p
drukowaniem numeru wiersza, ale nie jest wykonywaneNastępnie możesz użyć strzałki w górę, aby cofnąć poprzednie (niewykonywane) polecenie i możesz je zmienić w razie potrzeby.
Często łączę to z
hg
(„History Grep”) - moim ulubionym pseudonimem.Wyszukuje tekst w najnowszej linii historii, bez względu na wielkość liter i jest używany w ten sposób:
Kiedy chcę wyszukać ostatnie polecenia vi do edycji określonego pliku, a następnie chcę ponownie użyć jednego z nich do edycji tego samego pliku, ale z innym rozszerzeniem.
Definiuję również
hga
(„History Grep All”), aby przeszukiwać całą moją historię:ale nie używam go zbyt często, ponieważ moja historia jest (celowo) bardzo duża i otrzymuję zbyt wiele danych wyjściowych, które później wpływają na przewijanie stron przez terminal.
źródło
hg
jest to również CLI Mercurial .Wciśnięcie Ctrl+ R(czyli powiązania klawisza emacsa z wyszukiwaniem odwrotnym przyrostowym, gdy @gnp poruszał się w komentarzach) w terminalu pozwala na wyszukiwanie w histrory określonego polecenia. Polecenie zostanie wyświetlone i można je edytować przed wykonaniem. Zobaczysz coś takiego:
Źródło
źródło
fc
komenda robi to, co chceszfc -l <number>
wyświetli historię poleceń wokół tego numerufc <number>
otworzy ten wiersz wiersza poleceńvim
(lub jakikolwiek domyślny edytor, jak przypuszczam), abyś mógł go edytować, a:wq
on będzie dostępny dla ciebie ze strzałką w górę.źródło
W bash następuje
Ctl+alt+e
rozwinięcie powłoki, więc wpisanie,!1255
a następnie naciśnięcie tej kombinacji zastąpi bieżącą linię treścią wpisu historii 1255źródło
man bash
jakoshell-expand-line
. Być może istnieje zestaw skrótów do terminalu gnome.Chcesz użyć polecenia fc podczas określania listy zamiast wykonywania (-l)
źródło