Podczas uruchamiania poleceń czasami może być konieczne uruchomienie polecenia z argumentem z ostatniego polecenia. Jak możesz to robić?
Oczywiście, z wyjątkiem użycia klawiszy strzałek i Delklawiszy: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Podczas uruchamiania poleceń czasami może być konieczne uruchomienie polecenia z argumentem z ostatniego polecenia. Jak możesz to robić?
Oczywiście, z wyjątkiem użycia klawiszy strzałek i Delklawiszy: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Odpowiedzi:
Na przykład, jeśli uruchomisz to polecenie:
mkdir long_path_here/new_dir
najprawdopodobniej chcesz przejść do niedawno utworzonego katalogu. Możesz to zrobić, używając następnych „skrótów”:
cd
Esc.- wpisz cd
i po wciśnięciu, Esca następnie .(nie w tym samym czasie). Jeśli poprzednie polecenie nie ma argumentów, otrzymasz samo poprzednie polecenie.cd !*
- w tym przypadku otrzymasz wszystkie argumenty z komendy previuos. Jeśli poprzednie polecenie nie zawiera argumentów, nic nie otrzymasz.cd
Alt+ .- wpisz cd
i po naciśnięciu Alti .(w tym samym czasie). W rzeczywistości, używając tej metody i kontynuując naciskanie .(bez zwalniania Alt), otrzymasz ostatni argument dla każdego polecenia z historii. Jeśli polecenie nie ma argumentów, otrzymasz samo polecenie.Ogólnie: <command>
Esc.lub <command> !*
lub <command>
Alt+ ..
Istnieje kilka skrótów, jeśli chcesz uzyskać wszystkie argumenty z poprzedniego polecenia lub tylko ostatni argument.
<command> !*
<command> !$
Przykłady:
ls foo/ bar/
ls !* # Gives the results of ls foo/ bar/
ls foo/ bar/
ls !$ # Gives the results of ls bar/
Jeśli chcesz jednego argumentu z listy argumentów z poprzedniego polecenia, możesz użyć <command> !!:<argNumber>
Przykład:
ls foo/ bar/ baz/
ls !!:2 # Gives the results of ls bar/
ls foo/ bar/ baz/
ls !!:1 # Gives the results of ls foo/
!
w pojedynczej wersji arg, np !:2
.. Zakładając domyślne bash.
!^
zamiast !:1
.
Wspomniany !*
i!$
jest to dobra rzecz, ale kiedy musisz zrobić małą edycję, skorzystaj ze skrótów readline!
Na przykład zamiast niezliczonej ↑←←←... ←→→DelDelDel... Delmożesz po prostu nacisnąć ↑ Ctrl-a(przeskoczyć na początek linii) Alt+d (usunąć na koniec słowa)
Aby uzyskać więcej informacji man readline
i wyszukaj Default key bindings
.
Aby pobrać n
argument th z poprzedniego polecenia, wpisz Alt+ n
+ Alt_. Na przykład po:
$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
Wpisanie, echo
a następnie Alt2Alt_da ci to w następnym monicie:
$ echo 2
„Zrzut ekranu” po trafieniu Alt2to:
(arg: 2) echo
Możesz powtórzyć Alt_wiele razy, aby uzyskaćn
argument th z poprzednich poleceń.
Innym przydatnym pomysłem jest zdefiniowanie aliasu r="fc -s"
. Następnie możesz wykonać zamianę poleceń:
$ echo 1
1
$ r echo=history
history 1
27755 history 1