Reexecutando comandos do console

Publicado por Perfil removido em 17/12/2009

[ Hits: 7.251 ]

 


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

Big Busca: site de busca eficiente e promissor

[MP-X e CELULAR] Organizando arquivos no Linux

Montando EnhnacedCDs

Instalando driver wireless Broadcom BCM4312 no Fedora, RHEL e CentOS Linux

Instalando Mint Stick no Debian 11

Leitura recomendada

Comando para envio de dados via console para outro console

Como excluir um determinado kernel no Ubuntu

Shell script no logon do openSUSE 11.3 para definir profile com configurações do wine e atalhos

Ativando o NUMLOCK na tty1 quando ligar o PC automaticamente

Sintetizador de Voz Off-Line Masculino e Feminino

  

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