GNU/Linux >> Tutoriales Linux >  >> Linux

¿Comprender el signo de exclamación (!) en Bash?

Yo solía

history | less

para obtener las líneas de los comandos anteriores y de los números en el lado izquierdo encontré la línea que quería repetir (por ejemplo, 22) y lo hice

!22

en el símbolo del sistema y funcionó, ejecutando el conjunto de comandos en la línea que hice en ese momento. No puedo entender dónde se usa el signo de exclamación, qué representa en términos de acciones realizadas por bash y dónde usarlo. De la documentación no veo una explicación que sea 'tangible'.

Respuesta aceptada:

! invoca la expansión del historial, una característica que apareció originalmente en el shell C, en los días antes de que pudieras contar con terminales que tuvieran teclas de flecha. Es especialmente útil si agrega el número de comando actual al aviso (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-R para buscar en el historial de comandos, no veo mucho uso para la función.

Una variante que aún puede resultarle útil es !! , que vuelve a ejecutar el comando anterior. Por sí solo, no encuentro ! ! Entrar más rápido que solo Entrar , pero puede ser útil cuando se combina en un comando más grande.

Ejemplo: Un error piloto común en 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 del historial de comandos del shell. El iluminado teclea sudo !! .

Procesando ! de esta manera está habilitado en Bash por defecto en shells interactivos y puede deshabilitarse con set +o histexpand o set +H . Puede deshabilitarlo en Zsh con set -K .


Linux
  1. Cómo usar el comando de historial en Linux

  2. Consejos de Bash para el día a día en la línea de comandos

  3. Cómo borrar el historial de línea de comandos BASH en Linux

  4. Cómo borrar el historial de Bash en Linux

  5. '&&' vs. '&' con el comando 'test' en Bash

Comando de historial en Linux (Bash History)

La lista de atajos de teclado Bash útiles

Cómo habilitar la marca de tiempo en el historial de Bash en Linux

Comprender el comando uname en Linux

Entendiendo el comando time en Linux

comprender la salida del comando "yum history"