Esa es bash
la expansión de la historia, por ejemplo
!87
vuelve a ejecutar el comando desde la línea del historial 87
.
Encontrará la descripción de esta función en la man bash
sección "EXPANSIÓN DE HISTORIA":
An event designator is a reference to a command line entry in the
history list. Unless the reference is absolute, events are relative to
the current position in the history list.
! Start a history substitution, except when followed by a blank,
newline, carriage return, = or ( (when the extglob shell option
is enabled using the shopt builtin).
!n Refer to command line n.
!-n Refer to the current command minus n.
Entonces, para llamar rápidamente al último comando, haga !-1
y para el quinto último comando !-5
. Un sinónimo útil para !-1
es !!
: si llamó, por ejemplo, apt install something
y olvidó el sudo
, simplemente ejecute sudo !!
y estará bien.
Solo la barra invertida ( \ ) y las comillas simples pueden citar el carácter de expansión del historial.
Para evitar la expansión del historial, debe escapar del signo de exclamación con una barra diagonal inversa ( \!
) o utilizar comillas simples ( '!'
).