Jestem bardzo zdezorientowany co do mojej sesji terminala ubuntu, wydaje się, że zastępuje sekcje w poleceniach, które rozpoczynają się !
od liczby z pozornie losowymi poleceniami. Robi to, !87
zastępując go, screen -l
a także !88
i zastępując go ls
.
Wszelkie pomysły, dlaczego tak się dzieje, byłyby bardzo mile widziane.
command-line
bash
history
bash-history
usbpc102
źródło
źródło
Odpowiedzi:
To
bash
rozszerzenie historii, npponownie wykonuje polecenie z linii historii
87
.Opis tej funkcji znajduje się w
man bash
rozdziale „ROZSZERZENIE HISTORII”:Aby szybko wywołać ostatnie polecenie, zrób
!-1
i dla piątego ostatniego polecenia!-5
. Przydatnym synonimem!-1
jest!!
- jeśli zadzwoniłeś np.apt install something
I zapomniałeśsudo
, po prostu wykonajsudo !!
i jesteś dobry.Aby uniknąć ekspansji historii, musisz uciec od wykrzyknika ukośnikiem odwrotnym (
\!
) lub użyć pojedynczych cudzysłowów ('!'
).źródło
!
swoim poleceniom i uniknąć ekspansji historii, musisz je zacytować lub uciec przed nimi:foo '!87'
lubfoo \!87
. (podwójne cudzysłowy również spowodują rozszerzenie ich zawartości).