Essa é bash
a expansão da história, por exemplo
!87
reexecuta o comando da linha do histórico 87
.
Você encontra a descrição desse recurso na man bash
seção "EXPANSÃO DA HISTÓRIA":
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.
Então, para chamar rapidamente o último comando, faça !-1
e para o quinto último comando !-5
. Um sinônimo útil para !-1
é !!
- se você ligou, por exemplo, apt install something
e esqueceu o sudo
, basta executar sudo !!
e você é bom.
Apenas barra invertida ( \ ) e aspas simples podem citar o caractere de expansão do histórico.
Para evitar a expansão do histórico, você precisa escapar do ponto de exclamação com uma barra invertida ( \!
) ou usar aspas simples ( '!'
).