W systemach UNIX możesz naciskać górne i dolne strzałki, aby poruszać się po poprzednich poleceniach. Jest to bardzo przydatne.
Czasami wchodzę na górę i znajduję polecenie, którego chcę użyć ponownie, ale z pewnymi zmianami. Jeśli dokonam takich zmian, nie będę mógł odzyskać oryginalnej komendy, chyba że ją sprawdzę history
.
Czy istnieje sposób „cofnięcia” zmian polecenia w historii, do której dostęp uzyskuje się za pomocą klawiszy?
Moje obecne obejście polega na dodaniu #
polecenia a do polecenia. W ten sposób bieżące polecenie jest wykonywane jako komentarz, więc nic się nie dzieje. Następnie mogę ponownie przeglądać polecenia za pomocą klawiszy. Problem polega na tym, że polecenie, którego użyłem, może być bardzo odległe na liście, więc wznowienie gry dwieście razy to trochę. Control + R też nie jest rozwiązaniem, ponieważ mogę nie pamiętać dokładnie tego, czego szukałem.
Przykład
Wpisałem następujące „50 poleceń temu”:
ls -l /etc/httpd/conf/
Teraz podszedłem do tej linii i zmieniłem ją na
ls -l /etc/init.d/
ale nie nacisnął Enter. Teraz chcę przejść do tego ls -l /etc/httpd/conf/
ponownie.
Moje środowisko
$ echo $SHELL
/bin/bash
$ echo $TERM
xterm
ksh
Wygląda na to, że również w tym przypadku zachowanie się tu różni. A opcje edycji historii zależą również od wybranego trybu edycji. Na ksh
przykład w trybie vi stary wpis nie jest nadpisywany, a także mogę wydać polecenie cofnięcia, podobnie jak w vi
, za pomocą „u”.
ksh
, ale dobrze wiedzieć, że coś takiego istnieje.
ksh
przykład możesz edytować wpisy historii i wywoływać je bez usuwania „poprzedniej wersji” wpisu; masz wszystkie wywołane polecenia dostępne.