O histórico bash pode ajudar muito, e a pesquisa com Strg-r
mencionada por Terry Wang é importante entre eles. Mas também é possível fazer exatamente o que você pediu.
Você pode refazer o comando anterior com !!
. Com isso, você também pode editar o comando anterior. Se, por exemplo, você esqueceu de obter privilégios de root para um comando
apt-get install a-long-list-of-packages
você não precisa redigitar tudo isso novamente. Em vez disso, basta ligar
sudo !!
Se você quiser re-executar o comando em uma posição específica do seu histórico, você também pode usar !
, por exemplo
!3
para re-executar o comando na posição 3. Esteja ciente de que isso conta a partir do topo. Então, se você está armazenando 500 comandos em seu histórico, !1
seria "500 comandos atrás". Você também pode usar números negativos. Por exemplo
!-2
executaria novamente o segundo último comando.
Você também pode reexecutar o último comando que começou com uma string como
!apt-
que refazia a última linha que começou com "apt-". Se você quer o último comando onde a string apareceu em qualquer lugar da linha, você pode usar algo como
!?pt-ge
Existem coisas mais interessantes que a história do bash pode fazer. Apenas para dar uma impressão da ampla gama de possibilidades, você pode acessar especificamente um parâmetro de um comando do histórico. Então
!-5:3:p
imprime o terceiro parâmetro para o quinto do último comando.
EDIT: Sobre o comentário de Rudie abaixo, com as configurações padrão, as expansões do histórico bash são de fato executadas diretamente. Provavelmente é melhor descrito assim: Uma chamada como !-3
é substituída pelo shell com o terceiro último comando do seu histórico e então sua entrada (com a substituição) executada . Portanto, se você digitar !-3
e pressionar ENTER
e seu terceiro último comando for ls ~
, ele será o mesmo se você digitou ls ~
novamente e pressionou ENTER
"sozinho".
Se você não quiser isso, poderá definir a opção de shell histverify
. Para configurar e desativar opções de shell, você pode querer ler o comando shopt
. Com histverify
set, uma chamada como !-3
grava apenas a substituição do histórico para a linha de comando, mas não a executa diretamente. Você tem que, para speek, pressionar o ENTER
você mesmo - ou abster-se dele, se você quiser.