Большинство используют history только через ↑, хотя Bash поддерживает полноценные history expansion и inline-редактирование команд без перепечатывания.
Повторяет предыдущую команду, заменяя все совпадения прямо перед выполнением:
$ sudo !!:gs/8080/80/
Если последняя команда была:
$ docker run -p 8080:8080 app
Shell выполнит:
$ sudo docker run -p 80:80 app
Без ручного редактирования и без запуска редактора.
Можно вывести результат expansion без выполнения:
$ !-2:p
Флаг
:p показывает итоговую команду после expansion и не запускает её. Это безопасный способ проверить подстановку перед выполнением.Для быстрых исправлений опечаток существует встроенная подстановка:
$ ^sttaus^status
Shell заменит первое совпадение в предыдущей команде и выполнит исправленный вариант в текущей сессии.
🔥 History expansion выполняется самим интерактивным Bash до парсинга команды. Поэтому итоговая строка видит текущие alias, functions, переменные и окружение так же, как если бы вы набрали её вручную.
🚪 Linux Ready | #совет
