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