Reexecutando comandos do console

Publicado por Perfil removido em 17/12/2009

[ Hits: 7.210 ]

 


Reexecutando comandos do console



Quem nunca precisou reexecutar um daqueles comandos complicados que merecem até um shell script, de tantas opções e parâmetros que o bicho pega? Volta e meia eu estou nessa categoria de gente.

Um exemplo típico são os "wgets", ou seja: uso demais o wget para baixar de tudo e nem sempre lembro a URL do arquivo da maioria das ISOs de distro... Para reexecutar um comando no shell basta preceder o nome do comando com o símbolo "!", assim:

!wget

Isso reexecutará o último comando "wget" com as opções.

"Legal!", você diz. Legal nada! E se o último "wget" não é o que eu preciso, hein? Faz como? Não faz? Faz sim! Só na base do "gato". Sabendo que estes comandos ficam armazenados em $HOME/.bash_history, vamos "grepar" a coisa atrás do nosso comando usando as aspas invertidas ou os parênteses de substituição. No exemplo, vou buscar a continuação de uma imagem ISO do antiX Linux que comecei baixar:

`grep antiX .bash_history`
ou
$(grep antiX .bash_history)

Estes dois comandos (ou formas de escrever o comando) produzem o mesmo resultado: o shell irá interpretar a saída do comando grep, que retornará a linha completa que encontrou no arquivo de histórico do bash, executando nosso comando com as opções.

Para outros comandos, basta lembrar algum dos parâmetros do comando a ser executado e lançar para busca no grep e, se necessário, testar antes de chamar o programa à execução, seja buscando com o grep, sem aspas e parênteses, assim:

grep antiX .bash_history

Se for necessário, utilize um pipe, de um grep no outro, como neste exemplo:

grep comando | grep regex | grep regex

até refinar a busca e sair o que precisamos.

Nem sempre esta é a melhor saída. Há ocasiões em que é melhor mesmo redigitar o comando ou buscar com as setinhas (coisa da amiga readline).

Eu uso este esqueminha para aqueles casos macarrônicos de opções, parâmetros impossíveis de lembrar e para os endereços do wget, já que estou mestre em esquecer as URLs. O mplayer é notório por suas combinações nada saudáveis de parâmetros.

Espero que tenha sido de valia.

Até a próxima.

Outras dicas deste autor

Detecção automática de impressora no Linux

Ubuntu - Como remover arquivos inúteis do sistema

cURL - Brute-force em aplicações Web

Editor Geany(IDE) + Python3

Visualizando o log do Squid com Squidview

Leitura recomendada

O jeito mais fácil de escrever e executar um Shell Script no Linux

Algoritmo para converter minutos em hora

Automatização da instalação do plugin JAVA (Mozilla)

Fazendo comparações no shell com números de ponto flutuante

Shell Script nosso de cada dia - Episódio 1

  

Comentários
[1] Comentário enviado por fabio em 17/12/2009 - 07:21h

Um jeito mais prático que o grep é o uso do "reverse search". Com o terminal aberto, digite Ctrl R e, no seu caso, antiX. Tenta aí! :)

[2] Comentário enviado por SMarcell em 17/12/2009 - 08:54h

Já no zsh digite a letra inicial do nome do comando e tecle Ctrl+r

[3] Comentário enviado por evaldoavelar em 17/12/2009 - 10:42h

Também uso o Ctrl-R!

Bem prático!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts