Этот вопрос можно было бы обобщить на «Запустить ту же команду, но с некоторой модификацией», поскольку одно из блестящих дизайнерских решений в Unix - это то, что реализовано один раз в оболочке, можно использовать любой командой, вызываемой из оболочки .
Другими словами, этот трюк не применяется только к sudo:
Повторить предыдущую команду как суперпользователь (sudo !!) Повторить предыдущую команду и время ее ( time !!) Повторите предыдущую команду с другой средой (env A=b B=z !!) Повторите предыдущую команду (!!)Расширение истории (также известное как замена истории) - это просто функция оболочки, чтобы повторять предыдущие команды проще (с меньшими нажатиями клавиш). Проверьте страницу man для оболочки history expansion. Он описывает еще много трюков и сокращений, которые вы можете сделать с историей, например:
Вы можете ссылаться на предыдущие команды по номеру:
!55 # repeat command number 55
!-1 # repeat the previous command, alias for !!
!-2 # repeat the command before the previous command
Вы можете ссылаться на отдельные слова в предыдущие команды:
some-command !$ # run some-command on the last arg of previous command
Вы также можете выполнить поиск перед повторением:
!?awk # repeat the last command including the string 'awk'
Вы можете искать историю и заменять что-то еще:
!?awk?:s/str1/str2/ # repeat previous command matching 'awk' replacing str1 by str2
И многое другое, поскольку вы можете комбинировать выбор команд, выбор аргументов, поиск и замену независимо.
Персональная страница вашей оболочки (в данном случае man bash) является вашим другом. [!d15 ]