!
é um recurso que apareceu originalmente no shell C , nos dias anteriores a que você podia contar terminais para ter teclas de seta. É especialmente útil se você adicionar o número do comando atual ao prompt ( PS1="\!$ "
) para poder ver rapidamente sua tela para obter números de comandos anteriores.
Agora que você pode usar as teclas de seta e coisas como Ctrl-R para pesquisar o histórico de comandos, não vejo muito uso para o recurso.
Uma variante dele que você ainda pode achar útil é !!
, que re-executa o comando anterior. Por si só, eu não acho ! ! Entre mais rápido que apenas ↑ Enter , mas pode ser útil quando combinado em um comando maior.
Exemplo: Um erro do piloto comum em sudo
é esquecer o prefixo sudo
em um comando que requer privilégios extras. Um iniciante repõe todo o comando. O aluno diligente edita o comando a partir do histórico de comandos do shell. O iluminado digita sudo !!
.
O Bash permite desativar o processamento de !
no shell com set +o histexpand
ou set +H
. Você pode desativá-lo em Zsh com set -K
.