Terminal de reemplazo! seguido de un número con un comando

Respuestas:

20

Esa es bashla 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 bashsecció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 !-1y para el quinto último comando !-5. Un sinónimo útil para !-1es !!: si llamó, por ejemplo, apt install somethingy 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 ( '!').

postre
fuente
3
para pasar un literal !a sus comandos y evitar la expansión de la historia, necesitará comillas simples o escapar de ellos: foo '!87'o foo \!87. (las comillas dobles también realizarán la expansión de sus contenidos)
Quijotesco