Powinieneś przeczytać man bash w swoim systemie, szczególnie sekcję Readline , ponieważ jest to interaktywny mechanizm wprowadzania bash. Podręcznik Bash na gnu.org zawiera przyjemną sekcję dotyczącą edycji wiersza poleceń , która pomoże wypełnić niektóre luki.
Domyślnie możesz ich użyć do poruszania się po linii poleceń (wystarczy wymienić kilka tutaj; zobacz link do pełnej listy):
- Ctrl+ aprzesuwa się na początek linii (lub w Homezależności od ustawień terminala)
- Ctrl+ eprzesuwa się na koniec linii (lub End...)
- Meta+ fprzesuwa „słowo” do przodu
- Meta+ bprzesuwa do tyłu „słowo”
Możesz ich użyć do „zabicia” (aka „wycięcia”) tekstu z linii:
- Ctrl+ kzabija („wycina”) tekst od bieżącej pozycji kursora do końca linii
- Ctrl+ yyanks („wkleja”) ostatnio zabity tekst z powrotem do bufora kursora
Możesz więc połączyć je, aby wybrać fragment linii poleceń, który chcesz powtórzyć, zabić go, a następnie wkleić na końcu następnego polecenia.
Teraz, aby było jeszcze przyjemniej, rozważmy rozszerzenie historii bash . Oto, o !!
czym wspomina Studer . Przerwy dylatacyjne historia dół do oznaczników zdarzeń , oznaczników słownych i modyfikatorów .
Oznaczniki zdarzeń wyglądają tak (ponownie, zobacz linki do pełnej listy):
!
- rozpoczyna podstawianie historii
!n
- n-ta komenda na liście historii basha, dla niektórych liczb całkowitych n (działa również na negatywy)
!!
- poprzedzające polecenie; równoważny!-1
!string
- najnowsza komenda zaczynająca się od łańcucha
Projektanci słów wybierają określone części ze zdarzenia. Użyj, :
aby oddzielić zdarzenie od desygnatora słowa. Słowa są ponumerowane od 0, zaczynając od początku linii, i wstawione do bieżącej linii oddzielone pojedynczymi spacjami.
$
- wyznacza ostatni argument (np. !!:$
jest ostatnim argumentem ostatniego polecenia; można go skrócić !$
)
n
- oznacza n-ty wyraz (np. !str:2
jest drugim argumentem najnowszego polecenia rozpoczynającego się od str ; !!:0
jest poleceniem ostatniego polecenia)
Tak więc, aby śledzić twój przykład, jeśli twoje ostatnie polecenie jest mkdir /some/really/long/path
, wystarczy uruchomić !!
ponownie polecenie. Ale cd
zamiast tego chcesz przejść na tę ścieżkę:
$ cd !$
Powiedzmy teraz, że wykonujesz inne polecenia, a następnie chcesz ponownie powrócić do tej ścieżki. Jeśli to było ostatnie polecenie mkdir, które uruchomiłeś, możesz użyć tego, aby powtórzyć tę ścieżkę:
$ tar czf ~/foo.tgz !mkdir:$