Reexecutando comandos do console

Publicado por Perfil removido em 17/12/2009

[ Hits: 7.193 ]

 


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

Flash Player (nonfree) no Debian - Instale com facilidade

Autoestudo e certificação C/C++

Instalação prática do aMSN 0.97b

Ouvindo CD de áudio no Slackware

Vundle - Gerenciador de plugins para o Vim

Leitura recomendada

cut - Comando com exemplos

Tutoriais de Shell Scripts

Backup da pasta de usuário sem copiar os arquivos ocultos

Shell - Encontrando erros

Onde está a linha que preciso editar? [Resolvido]

  

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