!
це особливість, яка спочатку з'явилася в оболонці С ще за дні, перш ніж ви могли розраховувати на терміналах, щоб мати клавіші зі стрілками. Це особливо корисно, якщо ви додасте поточний номер команди до рядку ( PS1="\!$ "
), щоб ви могли швидко переглянути свій екран, щоб отримати цифри за минулі команди.
Тепер, коли ви можете використовувати клавіші зі стрілками і такі речі, як Ctrl-Rпошук історії команд, я не бачу великої користі для цієї функції.
Один із варіантів цього варіанту, який вам може бути корисним, - !!
це повторне виконання попередньої команди. Сам по собі я не знаходжу !!Enterшвидше, ніж просто ↑ Enter, але це може бути корисно при поєднанні в більшу команду.
Приклад: Поширена помилка пілотування на sudo
основі базованих систем - це забути sudo
префікс команди, яка вимагає додаткових привілеїв. Новачок повторно повторює всю команду. Старанний студент редагує команду з історії команд оболонки. Просвітлений один тип sudo !!
.
Bash дозволяє вимкнути !
обробку в оболонці з set +o histexpand
або set +H
. Ви можете відключити його в Zsh за допомогою set -K
.