!
es una característica que apareció originalmente en el shell C , en los días anteriores a la posibilidad de contar con terminales para tener teclas de flecha. Es especialmente útil si agrega el número de comando actual al prompt ( PS1="\!$ "
) para que pueda mirar rápidamente su pantalla para obtener números de comandos anteriores.
Ahora que puede usar las teclas de flecha y cosas como Ctrl-Rbuscar en el historial de comandos, no veo mucho uso para la función.
Una variante de la que aún puede encontrar útil es la !!
que vuelve a ejecutar el comando anterior. Por sí solo, no encuentro !!Enternada más rápido que solo ↑ Enter, pero puede ser útil cuando se combina en un comando más grande.
Ejemplo: Un error piloto común en los sudo
sistemas basados es olvidar el sudo
prefijo en un comando que requiere privilegios adicionales. Un novato vuelve a escribir todo el comando. El estudiante diligente edita el comando desde el historial de comandos del shell. El iluminado escribe sudo !!
.
Bash le permite deshabilitar el !
procesamiento en el shell con set +o histexpand
o set +H
. Puede deshabilitarlo en Zsh con set -K
.