Я очень озадачен моим терминальным сеансом Ubuntu, кажется, он заменяет разделы в командах, которые начинаются с, !
после которых следует число, казалось бы, случайных команд Он делает это, !87
заменяя его, screen -l
а также !88
и заменяя его ls
.
Любые идеи, почему это происходит, будут высоко оценены.
command-line
bash
history
bash-history
usbpc102
источник
источник
Ответы:
Это
bash
расширение истории, напримерповторно выполняет команду из строки истории
87
.Описание этой функции вы найдете в
man bash
разделе «РАСШИРЕНИЕ ИСТОРИИ»:Чтобы быстро вызвать последнюю команду, выполните
!-1
и для пятой последней команды!-5
. Удобный синоним!-1
это!!
- если вы назвали , например ,apt install something
и забылиsudo
, просто выполнить ,sudo !!
и вы хорошо.Чтобы избежать расширения истории, вы должны либо экранировать восклицательный знак обратной косой чертой (
\!
), либо использовать одинарные кавычки ('!'
).источник
!
своим командам и избежать расширения истории, вам нужно заключить их в одинарные кавычки или экранировать их:foo '!87'
илиfoo \!87
. (двойные кавычки будут также выполнять расширение на их содержание.)