Например, в bash я могу ввести !xyz
который запустит последнюю набранную мной команду, начиная с xyz
.
Как мне вызвать последнюю набранную мной команду, начиная с xyz
но без его выполнения?
например, чтобы я мог изменить параметры перед выполнением ....
Вы можете сделать это так: в командной строке нажмите Ctrl+р а затем введите команду, которую вы хотите вспомнить, в вашем случае xyz
. Это покажет вам полную команду, не выполняя ее.
Пытаться !xyz:p
; он вызовет команду в начало истории, не выполняя ее, поэтому, например, стрелка вверх может немедленно получить к ней доступ для интерактивного редактирования.
Кстати, я делаю это при вызове команд с регулярным выражением, которое, вероятно, могло бы откопать что-нибудь опасное, даже после поспешного !r
, призванный напомнить самые последние rsync ...
команда, отозвала и выполнен ан rm *
который был помещен в стек позже, чем rsync.
Выполните следующую команду. Он отобразит последнюю выполненную команду. вы можете скопировать и отредактировать команду. Эта команда протестирована в debian.
история | хвост -2 | grep -v история | вырезать -d '' -f4-
Или нажмите и удерживайте ctrl + R и введите начальную букву последней команды. В нем будут перечислены команды, которые вы выполнили ранее, на основе вашего ввода. Как только появится желаемая команда, просто нажмите стрелку вправо, чтобы выбрать эту команду.
Если обратный поиск в истории завершился неудачно, выполните одно из следующих действий:
$ history | grep WHAT_YOU_LOOK_FOR
Или:
$ grep WHAT_YOU_LOOK_FOR ~/.bash_history