Otimizando o controle e a digitação de comandos no shell

Todos conhecem o recurso de recuperar os comandos digitados no shell, que é precioso para auditorias, relembrar comandos pouco usados e economizar nossos dedos. Os comandos de manipulação deste histórico em conjunto com atalhos interessantes, podem diminuir nossos esforços e acelerar a repetição de linhas de comando.

[ Hits: 33.386 ]

Por: Gabriel Fernandes em 30/08/2006 | Blog: http://cd2.com.br


Comandos/atalhos - parte 1



Comandos/atalhos de manipulação do histórico do shell:

1. Se tu desejas repetir o último comando executado, normalmente usamos seta para cima, seguido de [ENTER], porém existe outra maneira de fazer isto, veja abaixo:

$ !!

2. É possível também recuperar um comando do histórico indicando a linha que está o comando dentro do arquivo ~/.bash_history, exemplo:

$ cat -b $HOME/.bash_history | grep -i ssh
  • O comando "cat -b" irá retornar, além do conteúdo do arquivo, o número das linhas;
  • O comando "grep -i" irá filtrar na saída, ignorando se letras maiúsculas ou minúsculas(case sensitive=off), todos as linhas do arquivo que possuem a expressão "ssh", veja a saída no meu caso:

    499 ssh floripa@192.168.1.232
    500 ssh -X -C 200.212.65.80 -l nayaless

Então, digamos que eu não me lembrasse mais do IP da máquina ao qual desejo fazer a conexão SSH. Com este comando além de relembrar o IP, não precisarei digitar todo o comando novamente, basta fazer o seguinte:

$ !499

3. Os comandos podem ser localizados de outras maneiras, podemos localizar diretamente um comando no histórico da seguinte forma, veja:

$ !ssh
ssh -X -C 200.212.65.80 -l nayaless

A sintaxe acima vai executar o comando mais recente que inicia com a expressão "ssh", no entanto para nosso exemplo anterior ele não serviria, pois executaria a linha 500 do arquivo .bash_history e queremos executar a linha 499.

4. Opa! Não se preocupe, pois temos outras possibilidades para localizar e executar rapidamente a nossa linha 500 do exemplo, para isto poderíamos utilizar outro recurso, observe:

$ !?floripa
ssh floripa@192.168.1.232

Este executa o comando mais recente do histórico que contenha a expressão "floripa", com este comando conseguimos executar a linha 499 do histórico de uma forma mais veloz.

5. Executar o último comando alterando somente os parâmetros, ou um dos parâmetros, também é muito simples e pode ser muito interessante em algumas situações. Digamos que precisamos executar o mesmo comando da linha 499, mas com usuário diferente e com algumas flags, poderíamos fazer da seguinte forma:

$ ^floripa^-X -C root
ssh -X -C root@192.168.1.232

O bash executa o último comando trocando somente a expressão "floripa" por "-X -C root", fácil e prático quando temos enormes linhas de comando.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Comandos/atalhos - parte 1
   3. Comandos/atalhos - parte 2
   4. Resumo
Outros artigos deste autor

Compilando PHP 5 com suporte a Oracle sem mistérios

Instalando e configurando servidor FreeNX no Slackware 10.2

Leitura recomendada

Acessando desktop remotamente com noMachine

Instalação e Configuração do Puppet

SLiM: Simple Login Manager - Mini review

Convertendo formatos de vídeo/áudio

Scilab - Mais uma alternativa livre ao MATLAB

  
Comentários
[1] Comentário enviado por dvj em 31/08/2006 - 10:25h

Ótimo artigo!
Parabéns!

[2] Comentário enviado por agk em 01/09/2006 - 09:00h

Muito bom, excelente artigo, pra quem curte Shell Script e não sabia disso vai ser uma mão na roda.

[3] Comentário enviado por tenchi em 01/09/2006 - 15:42h

Uma boa também é criar um alias para aqueles comandos enormes e cheios de parametros, que usamos comumente, facilitando ainda mais nossa vida....


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts