!
é um recurso que apareceu originalmente no shell C , antigamente, antes que você pudesse contar com terminais para ter teclas de seta. É especialmente útil se você adicionar o número do comando atual ao prompt ( PS1="\!$ "
) para poder olhar rapidamente para a tela para obter números dos comandos anteriores.
Agora que você pode usar as teclas de seta e coisas como Ctrl-Rpesquisar no histórico de comandos, não vejo muita utilidade para o recurso.
Uma variante dele que você ainda pode achar útil é !!
, que reexecuta o comando anterior. Por si só, não encontro !!Enternada mais rápido do que apenas ↑ Enter, mas pode ser útil quando combinado em um comando maior.
Exemplo: Um erro piloto comum em sudo
sistemas baseados é esquecer o sudo
prefixo em um comando que requer privilégios extras. Um iniciante redigita o comando inteiro. 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 no shell com set +o histexpand
ou set +H
. Você pode desativá-lo no Zsh com set -K
.