Назад | Перейти на главную страницу

Как мне вызвать конкретную команду из истории команд, не выполняя ее

Например, в bash я могу ввести !xyz который запустит последнюю набранную мной команду, начиная с xyz.

Как мне вызвать последнюю набранную мной команду, начиная с xyz но без его выполнения?
например, чтобы я мог изменить параметры перед выполнением ....

Вы можете сделать это так: в командной строке нажмите Ctrl+р а затем введите команду, которую вы хотите вспомнить, в вашем случае xyz. Это покажет вам полную команду, не выполняя ее.

Пытаться !xyz:p; он вызовет команду в начало истории, не выполняя ее, поэтому, например, стрелка вверх может немедленно получить к ней доступ для интерактивного редактирования.

Кстати, я делаю это при вызове команд с регулярным выражением, которое, вероятно, могло бы откопать что-нибудь опасное, даже после поспешного !r, призванный напомнить самые последние rsync ... команда, отозвала и выполнен ан rm * который был помещен в стек позже, чем rsync.

  1. Выполните следующую команду. Он отобразит последнюю выполненную команду. вы можете скопировать и отредактировать команду. Эта команда протестирована в debian.

    история | хвост -2 | grep -v история | вырезать -d '' -f4-

  2. Или нажмите и удерживайте ctrl + R и введите начальную букву последней команды. В нем будут перечислены команды, которые вы выполнили ранее, на основе вашего ввода. Как только появится желаемая команда, просто нажмите стрелку вправо, чтобы выбрать эту команду.

Если обратный поиск в истории завершился неудачно, выполните одно из следующих действий:

$ history | grep WHAT_YOU_LOOK_FOR

Или:

$ grep WHAT_YOU_LOOK_FOR ~/.bash_history