The Ops Community ⚙️

Francilio Araújo
Francilio Araújo

Posted on

Comandos e atalhos do bash para produtividade

Se você trabalha com tecnologia é bem provável que você faça uso de um shell por boa parte do dia. Por padrão o shell de sistemas GNU/linux é o bash, ou alternativas como o dash. Para facilitar o uso e aumentar a produtividade do usuário o bash tem várias funções que podem ser desconhecidas por alguns de seus usuários. Neste texto irei listar comandos e atalhos úteis para o dia a dia.

Comandos

A shell guarda um histórico de comandos executados e permite reutilizar comandos ou partes dele.
A referência ao histórico é feita pelo caractere !. Pode-se inserir apenas uma palavra de um comando do histórico e realizar modificações.

Selecionando um item do histórico

Executando o comando history são exibidos os comandos executados com um número. Referencia-se este comando adicionando o número após o !. Por exemplo, na figura abaixo !221 seria o comando history:

exemplo do comando history

Pode-se utilizar números negativos para fazer referências a comandos anteriores ao atual. Na imagem anterior o comando history poderia ser referenciado também como !-1 e !-2 seria o comando echo loren ipsum dolor sit amet. !-1 também pode ser escrito como !!. A referência também pode ser feita como uma busca. !foo referencia o comando mais recente que inicie com foo e !?bar? referencia o comando mais recente que contenha bar. Pode-se referenciar também o comando que está sendo digitado com !#.

Logo após a referência do comando pode ser adicionado um : para fazer referência a apenas alguns parâmetros ou palavras. !!:1 é o primeiro argumento do comando anterior, !!:0 é o comando, !!:$ é o último e !!:1-4 são os argumentos de 1 a 4. Nos casos anteriores, no lugar de !! poderia ser escrito só !. Também é possível utilizar !!:* para utilizar todos os argumentos (equivalente a !!:1-$) ou !!:3* para utilizar do terceiro até o último.

É possível realizar modificações na linha ou palavra selecionada. Para adicionar uma modificação basta adicionar um : e a modificação. Para realizar uma substituição utiliza-se s para modificar uma vez e gs para modificar todas ocorrências. Por exemplo, assuma que !! seja o comando echo Lorem ipsum dolor sit amet. Para substituir o Lorem por lorem utiliza-se !!:s/Lorem/lorem/. Também podemos utilizar ^Lorem^lorem^.

Em resumo:

  • Referência a um comando n no histórico = !n
  • Referência a um comando anterior = !-n
  • Referência ao comando anterior = !-1 = !!
  • Referência ao último comando cat = !cat
  • Referência ao último comando com arquivo.txt = !?arquivo.txt?
  • Referência ao comando sendo digitado = !#
  • Referência a um argumento n = :n
  • Referência a todos os argumentos = :*
  • Referência aos argumentos m até n = :m-n
  • Referência aos argumentos n até o último = :n*
  • Realizar uma substituição = :s/velho/novo/
  • Realizar todas substituições = :gs/velho/novo/
  • Realizar uma substituição no último comando = ^velho^novo^

Executando vários comandos

O comando fc permite abrir comandos do histórico em um editor de textos para que eles possam ser executados. Para editar o último comando make, utiliza-se fc -s make. Para editar os 3 últimos comandos, utiliza-se fc -3 -1. Para executar do comando 16 ao 20 no histórico, utiliza-se fc 16 20. fc -l também pode ser utilizado para mostrar os últimos comandos.

Em resumo:

  • Editar e executar o último comando make = fc -s make
  • Editar e executar os últimos 5 comandos = fc -5 -1
  • Editar e executar os comandos de 7 a 15 = fc 7 15
  • Listar os últimos comandos = fc -l

Atalhos

Ao digitar texto no prompt do bash é possível realizar alguns comandos de edição por meio da biblioteca GNU readline. Os atalhos podem ser configurados por meio de um arquivo. Mais detalhes sobre a configuração e atalhos padrão podem ser encontrados na página do man, na página da wikipédia, ou no manual do usuário.

Movimento

As teclas ⬅️, ➡️, Home e End já são conhecidas. Além delas você pode utilizar Ctrl + seta ou Alt + seta para mover o cursor por palavra.

Além destas opções, a biblioteca permite utilizar Ctrl + b e Alt + b para mover o cursor para a esquerda um caractere e uma palavra, respectivamente, Ctrl + f e Alt + f para mover para a direita, Ctrl + a para mover para o início da linha e Ctrl + e para mover para o final. Ctrl + l é utilizado para limpar a tela e Ctrl + Alt + l para limpar a tela e o scroll.

Poderíamos resumir desta forma:

  • ⬅️ = Ctrl + b
  • ➡️ = Ctrl + f
  • Ctrl + <- ou Alt + <- = Alt + b
  • Ctrl + -> ou Alt + -> = Alt + f
  • Home = Ctrl + a
  • End = Ctrl + e

Em teclados menores que exigem o uso da tecla Fn para acessar as teclas de seta, Home e End pode ser mais confortável utilizar os atalhos do readline.

Histórico de comandos

Utiliza-se comumente as teclas ⬆️ e ⬇️ para percorrer a lista de comandos no histórico e a tecla Enter para executá-los. Pode-se utilizar Ctrl + p, Ctrl + n e Ctrl + j para os mesmos fins. Para ir até o comando mais antigo do histórico utiliza-se Alt + < e Alt + > para o mais novo.

Se você frequentemente fica utilizando a seta ⬆️ para encontrar o comando, existem atalhos para realizar buscas no histórico. Ctrl + r é utilizado para buscar comandos mais antigos que o atual e Ctrl + s é utilizado para buscar comandos mais novos. Ao utilizar um destes atalhos o prompt vai mudar e você pode ir digitando o que deve ser buscado.

Para reutilizar o primeiro argumento do comando anterior utiliza-se Ctrl + Alt + y. Pode-se selecionar outro argumento teclando a tecla Esc + número e Ctrl + Alt + y. Para o último argumento utiliza-se Alt + . ou Alt + _. Por exemplo, assuma que o comando anterior seja echo Lorem ipsum dolor sit amet. Ao utilizar Ctrl + Alt + y a palavra Lorem seria inserida, Esc + 3 a palavra dolor e Alt + . a palavra amet.

Ao executar vários comandos sucessivos repetidas vezes, no lugar de executar o primeiro com Enter ou Ctrl + j, você pode utilizar Ctrl + o e já será inserido o próximo comando do histórico.

Resumo:

  • ⬆️ = Ctrl + p
  • ⬇️ = Ctrl + n
  • Enter = Ctrl + j
  • início do histórico = Alt + <
  • fim do histórico = Alt + >
  • busca "acima" = Ctrl + r
  • busca "abaixo" = Ctrl + s
  • Inserir o primeiro argumento do comando anterior = Ctrl + Alt + y
  • Inserir o n-ésimo argumento = Esc + n e após Ctrl + Alt + y
  • Inserir o último argumento = Alt + .
  • Executar um comando do histórico e inserir o próximo = Ctrl + o

Edição da linha

As teclas <- Backspace e Delete já são conhecidas. No lugar da tecla <- Backspace pode-se utilizar Ctrl + ?. No lugar da tecla Delete pode-se utilizar Ctrl + d.

Para trocar duas palavras de lugar, utiliza-se Alt + t. Utiliza-se Alt + u e Alt + l para transformar a palavra em maiúsculas e minúsculas, respectivamente. Alt + c transforma a letra sob o cursor para maiúscula e todas as outras da palavra em minúscula.

Em resumo:

  • <- Backspace = Ctrl + ?
  • Delete = Ctrl + d
  • Transformar palavra em maiúsculas = Alt + u
  • Transformar palavra em minúsculas = Alt + l
  • Capitalizar letra na palavra = Alt + c

Recortar e Colar

Ctrl + w e Alt + d são utilizados para recortar do cursor para o início e fim da palavra, respectivamente. Ctrl + y é utilizado para colar texto recortado. Ctrl + u e Ctrl + k são utilizados para recortar do cursor para o início e fim da linha, respectivamente.

Em resumo:

  • Recortar do cursor pro início da linha = Ctrl + u
  • Recortar do cursor pro início da palavra = Ctrl + w
  • Recortar do cursor pro fim da palavra = Alt + d
  • Recortar do cursor pro fim da linha = Ctrl + k
  • Colar texto recortado = Ctrl + y

Compleção

Utiliza-se Tab para completar a palavra até o cursor. Para exibir todas as possíveis compleções utiliza-se Alt + ?.

Em resumo:

  • Completar = Tab
  • Mostrar todas possibilidades para completar = Alt + ?

Outros

  • Abortar um comando sem executar = Ctrl + g
  • Desfazer edição = Ctrl + _
  • Busca por caractere até final da linha = Ctrl + ]
  • Busca por caractere até início da linha = Ctrl + Alt + ]

Top comments (0)