Atalhos do Terminal: Keybindings do Readline que Você Precisa

Atalhos do Terminal: Keybindings do Readline que Você Precisa

Seu Terminal Pode Ser Muito Mais Rápido

Errar a digitação de um comando e ter que voltar tecla por tecla com as setas. Redigitar aquele comando longo que você executou há pouco. Esses movimentos lentos desaparecem assim que você aprende alguns atalhos (keybindings).

Neste guia, Lina e o veterano Linny percorrem juntos os atalhos do Readline que aceleram a entrada de comandos no terminal. As mesmas teclas funcionam tanto no bash quanto no zsh.

O que Você Vai Aprender

  • Que esses atalhos vêm de uma biblioteca chamada Readline
  • Como pular para o início ou fim de uma linha instantaneamente (Ctrl+A / Ctrl+E)
  • Como apagar entrada em massa (Ctrl+U / Ctrl+K / Ctrl+W)
  • Como pesquisar e reutilizar comandos anteriores com Ctrl+R
  • Um resumo rápido que você pode começar a usar hoje

1. De Onde Vêm Esses Atalhos?

Conclusão: Atalhos como Ctrl+A não são específicos do bash. Eles vêm do Readline, uma biblioteca de edição de linha, por isso funcionam em muitos shells.

Lina: Veterano Linny, quando preciso mover o cursor no meio de um comando, fico amassando as teclas de seta. É muito lento...
Veterano Linny: Um atalho faz isso instantaneamente. E tem mais: esse atalho não é uma funcionalidade do bash.
Lina: Não é do bash?
Veterano Linny: Isso. A parte que digita, apaga e move o cursor na linha de comando é gerenciada por uma biblioteca compartilhada chamada Readline. O bash e a maioria das configurações do zsh herdam esses keybindings.
Lina: Então uma vez que eu os aprenda, posso usá-los em vários lugares.
Veterano Linny: Exatamente. As teclas que você aprende hoje ainda funcionam depois que você faz SSH em um servidor remoto. O retorno sobre o investimento é enorme.

Readline é o "editor de linha"

O Readline gerencia aquela única linha de texto de comando: inserir, editar, recuperar do histórico. Por padrão ele usa os keybindings no estilo Emacs, por isso tantos atalhos usam Ctrl.

2. Pular para o Início ou Fim da Linha Instantaneamente

Conclusão: Ctrl+A pula para o início da linha, Ctrl+E para o fim. Chega de apertar as setas para corrigir o início de um comando longo.

Lina: O que devo aprender primeiro?
Veterano Linny: A movimentação do cursor traz o maior ganho. Digamos que você esqueceu o sudo no início de um comando longo. Ctrl+A te leva ao início com uma única tecla.
Lina: Como vou lembrar do A?
Veterano Linny: Pense no A como o Antes (início) da linha e no E como o fim (End em inglês). Experimente digitar um comando longo, mas ainda não aperte Enter.
echo this is an example of a very long command
Tecla Ação Dica de memorização
Ctrl+A Mover para o início da linha Antes (início)
Ctrl+E Mover para o fim da linha End (fim)
Ctrl+F Um caractere à direita Forward (avançar)
Ctrl+B Um caractere à esquerda Backward (recuar)
Alt+F Uma palavra à direita Forward por palavra
Alt+B Uma palavra à esquerda Backward por palavra

As setas funcionam bem para um único caractere, mas aprender os saltos por palavra Alt+F / Alt+B torna a edição de caminhos e opções muito mais rápida.

3. Como Apagar Erros em Massa

Conclusão: Ctrl+U apaga tudo antes do cursor, Ctrl+K tudo depois, e Ctrl+W a palavra anterior. Você pode aposentar a tecla Backspace.

Lina: Quando erro a digitação de um comando, fico segurando o Backspace até apagar tudo...
Veterano Linny: Vamos aposentar esse hábito. Para limpar a linha inteira, aperte Ctrl+A para ir ao início, depois Ctrl+K para apagar tudo. Ou use Ctrl+U para limpar tudo antes do cursor de uma vez.
Lina: E para apagar só uma palavra?
Veterano Linny: Para a palavra anterior ao cursor, use Ctrl+W. Quando você erra a digitação de um caminho longo, Ctrl+W permite apagar um segmento de cada vez.
Tecla Ação
Ctrl+U Apaga tudo antes do cursor
Ctrl+K Apaga tudo depois do cursor
Ctrl+W Apaga a palavra antes do cursor
Ctrl+Y Cola de volta o que você acabou de apagar

Cortar e colar são um par

O texto removido com Ctrl+U / Ctrl+K / Ctrl+W é armazenado em um buffer chamado "kill ring". Ctrl+Y (Yank) cola de volta imediatamente. Apagou algo por engano? Não precisa entrar em pânico.

4. Como Reutilizar um Comando que Você Já Executou

Conclusão: Ctrl+R pesquisa o histórico em ordem inversa. Digite parte de uma palavra-chave e recupere um comando longo do passado instantaneamente.

Lina: Aquele comando longo do docker de ontem — preciso mesmo redigitar tudo?
Veterano Linny: É para isso que serve o Ctrl+R. É a pesquisa no histórico: encontra comandos anteriores por palavra-chave. Aperte Ctrl+R, depois digite parte do comando, como docker.
Lina: Ah! O comando de ontem apareceu na hora!
Veterano Linny: Viu? Aperte Enter para executá-lo como está, aperte Ctrl+R novamente para uma correspondência mais antiga, ou use as setas / Ctrl+E para editá-lo antes de executar. Para cancelar, aperte Ctrl+G ou Ctrl+C.
(reverse-i-search)`docker': docker compose up -d --build

O fluxo do Ctrl+R

  1. Aperte Ctrl+R (o prompt mostra (reverse-i-search))
  2. Digite parte do comando (correspondências parciais aparecem)
  3. Aperte Ctrl+R novamente para correspondências mais antigas
  4. Enter para executar / Ctrl+G para cancelar

As setas para cima/baixo, ou Ctrl+P (Previous) / Ctrl+N (Next), percorrem o histórico um comando de cada vez. Quando você só quer ajustar o último comando, isso é mais rápido.

5. Resetar a Tela e Sua Entrada

Conclusão: Ctrl+L limpa a tela, Ctrl+C interrompe um comando em execução, e Ctrl+D sinaliza fim da entrada. Esses são seus atalhos de saída.

Lina: Quando a tela fica cheia de saída e fica difícil de ler, o que eu faço?
Veterano Linny: Ctrl+L limpa tudo. É o mesmo que o comando clear, mas mais rápido do que digitá-lo. E se um comando parece travado e não termina, Ctrl+C o interrompe.
Lina: Já vi Ctrl+D também.
Veterano Linny: Ctrl+D sinaliza "fim da entrada". Aperte-o em um prompt vazio e você sai (o shell fecha). Você também o usa para terminar a entrada quando, por exemplo, o cat está esperando você digitar.
Tecla Ação
Ctrl+L Limpar a tela (igual ao clear)
Ctrl+C Interromper o comando em execução (SIGINT)
Ctrl+D Fim da entrada / sair do shell em prompt vazio

Ctrl+C e Ctrl+D fazem coisas diferentes. Ctrl+C significa "parar o que está rodando agora", enquanto Ctrl+D significa "terminei de digitar". Se algo parece travado, tente Ctrl+C primeiro.

6. Os Atalhos para Aprender Primeiro

Conclusão: Você não precisa de todos de uma vez. Treine apenas cinco — início/fim de linha, apagar linha e pesquisa no histórico — e sua velocidade muda visivelmente.

Lina: São muitos. Não sei por onde começar.
Veterano Linny: Comece com cinco. Percorra a tabela abaixo e use-os conscientemente no trabalho de terminal de hoje. Dentro de uma semana seus dedos vão se mover sozinhos.
Prioridade Tecla Ação
1 Ctrl+A Mover para o início da linha
2 Ctrl+E Mover para o fim da linha
3 Ctrl+U Apagar tudo antes do cursor
4 Ctrl+R Pesquisar o histórico em ordem inversa
5 Ctrl+L Limpar a tela

Os atalhos só fixam quando você os usa em comandos reais. Experimente na prática em Como Usar o Terminal.

Lina: Ctrl+A e Ctrl+E primeiro! Só esses já me livram de apertar as setas o tempo todo.
Veterano Linny: Isso mesmo. Atalhos não são tanto sobre memorizar, mas sim sobre se acostumar. Comece a ensinar seus dedos aos poucos, a partir de hoje.

Resumo

  • Esses atalhos Ctrl vêm da biblioteca Readline, por isso funcionam tanto no bash quanto no zsh
  • Ctrl+A / Ctrl+E pulam instantaneamente para o início e o fim da linha
  • Ctrl+U / Ctrl+K / Ctrl+W apagam entrada em massa, e Ctrl+Y cola de volta
  • Ctrl+R pesquisa comandos anteriores por palavra-chave para reutilizá-los
  • Ctrl+L (limpar), Ctrl+C (interromper) e Ctrl+D (fim de entrada) são bons de conhecer
  • Comece com apenas cinco e aprenda usando-os

Próxima Leitura