Otimizando o controle e a digitação de comandos no shell [Artigo] - página 2
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 [email protected]
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 -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
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
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.