Na przykład:
[root@ip-10-0-7-125 ~]# history | grep free
594 free -m
634 free -m | xargs | awk '{print "free/total memory" $17 " / " $ 8}'
635 free -m
636 free -m | xargs | awk '{print "free/total memory" $9 " / " $ 10}'
736 df -h | xargs | awk '{print "free/total disk: " $11 " / " $9}'
740 df -h | xargs | awk '{print "free/total disk: " $11 " / " $8}'
741 free -m | xargs | awk '{print "free/total memory: " $17 " / " $8 " MB"}'
Zastanawiam się tylko, czy jest jakiś sposób na wykonanie polecenia 636 bez ponownego wpisywania, wystarczy wpisać coś plus liczbę, na przykład historię 636 lub coś takiego.
bash
command-history
Jeden
źródło
źródło
ctrl-r
?Odpowiedzi:
W bashu
!636
wszystko będzie dobrze.źródło
In Linux
- Ma to więcej wspólnego z powłoką (bash, zsh itp.), Z której korzysta osoba, a nie z systemem operacyjnym, na którym jest uruchomiona. Na Linuksie są powłoki bez obsługi historii.:p
polecenie drukowania polecenia bez uruchamiania!636:p
. Co oznacza, że możesz łatwo wybrać go ponownie ze swojej historii, naciskając strzałkę w górę i wprowadzić niewielkie zmiany, które chceszTak, nazywa się to „ekspansją historii”. Widzieć
dla pełnych szczegółów.
Użycie wykrzyknika, po którym następuje liczba, jest prawdopodobnie najprostszym zastosowaniem:
Możesz jednak uruchomić bezpośrednio ostatnie polecenie, nie znając jego numeru historii:
Lub możesz uruchomić dwa polecenia z powrotem:
Najczęściej jednak używam formy, aby powtórzyć ostatni argument ostatniego polecenia:
Lub powiedzmy, że sprawdzam plik. Korzystając z uzupełniania tabulatorów, mogę wykonać następujące czynności:
Ponownie przeczytaj stronę podręcznika, aby uzyskać więcej informacji:
źródło
Alt-.
może być wygodniejszy niż!$
. Wstawia ostatni wiersz ostatniego polecenia dosłownie do wiersza.!$
, ale nigdy nie słyszałemAlt-.
)? Czy podasz link do niego?LESS="+/DEFAULT KEY BINDINGS" man 3 readline
,/etc/inputrc
,~/.inputrc
. Wiele programów oprócz bash używa libreadline; dla tych, którzy, masz te same cechy jakAlt-.
,Ctrl-X-U
(Usuń),Ctrl-/
(skrót opisu), tab-completion, etc - za darmo. Na przykład, z zaledwie trzy linie zPYTHONSTARTUP
jednego można włączyć kartę uzupełniania i historię w REPL Zdjęcie Pythona . Który będzie działał (głównie) tak samo jak w bash, ponieważ działa biblioteka GNU Readline. Strona readline opisuje szczegółowo funkcje.echo {1..5}
następnietouch !$
ruszy pięć plików, a nie tylko jeden. Mówiąc ściśle, nie jest to ostatni argument, ale ostatnie słowo powłoki w tym wierszu. (Również spróbowaćecho hello >temp
następnieecho goodbye !$
.) Jeśli można myśleć o sposób, aby umieścić go wyraźniej czuć się swobodnie zasugerować zmienił.Fajny, jeśli nie chcesz najpierw historii, zanotuj numer itp .:
w bash (i może inne):
(
ctrl-r
= „interaktywnie szukaj wstecz”) (something
= część poprzedniego polecenia)Spowoduje to wyświetlenie najnowszej linii historii zawierającej
something
. Aby uzyskać poprzedni, ponownie wykonaj ctrl-r (sam), za każdym razem, gdy pobierze poprzednią linię.dawny:
aby wyświetlić najnowszą linię historii zawierającą „10” (na przykład linię z
$10
, w swoim przykładzie) ictrl-r
ponownie, dopóki nie odzyskasz poszukiwanej linii historiiKiedy pojawi się linia chciał, po prostu
Enter
go uruchomić (lub można także edytować, używającarrow keys
,backspace
ictrl-a
przejść do początku wiersza,ctrl-e
aby dostać się do końca,ctrl-k
: „zabić” od kursora do końca wiersza (= usuwa + zapisuje go w buforze),:ctrl-y
aby przywrócić z bufora wcześniej zabity bit itp.)Jeśli chcesz szukać do przodu (ctrl-s), najpierw musisz wyłączyć XON : patrz https://stackoverflow.com/a/791800/1841533 :
„tylko w celu wyłączenia XON / XOFF przez uruchomienie
„(i wtedy będziesz mógł używać ctrl-s, bez konieczności zamrażania terminala)
źródło
Możesz użyć wbudowanej powłoki fc :
źródło
-s
aby uzyskać korzyści. Jeśli uruchomiszfc 636
, otworzysz w buforze edytor z poleceniem 636 z twojej historii, a kiedy zapiszesz i wyjdziesz, polecenie (zmodyfikowane lub nie) zostanie uruchomione. Co więcej, ten jest zgodny z POSIX .help
nie jest POSIX - być może będzie musiał zrobić cośman dash
podobnegohelp
istnieniu. Kolejna wbudowana powłoka. Zastanawiające dla nieostrożnych użytkowników, którzy mogą potrzebować pomocy w nowym systemie, ale zamiast tego stają w obliczu bełkotu. :-(Istnieje
HSTR
-hh
komendabash
izsh
interaktywny wybór komend, lepszy niż wyszukiwanie do tyłu Ctrl-R:jest interaktywny, dzięki czemu można wyszukiwać i edytować polecenie przed jego wykonaniem.
W systemie Ubuntu można zainstalować
hh
za pomocą następującego linera:lub krok po kroku:
Zainstaluj
hh
na Fedorze, RHEL lub CentOS:Na macOS z
homebrew
:... a następnie skonfiguruj za pomocą:
Zastąpi to domyślne zachowanie Ctrl-R.
Uruchom,
hh --show-configuration
aby określić, co zostanie dołączone do Twojego profilu Bash.Więcej opcji konfiguracji dostępnych na stronie głównej projektu w Github: https://github.com/dvorka/hstr
źródło