Gnu Linux - Atalhos de teclado em Bash
Colaboração: Rodrigo Bernardo Pimentel
Data de Publicação: 28 de Junho de 2000
Estou listando alguns "stupid bash tricks" que podem ser úteis ou mesmo divertidos :)
Usarei a notação do Emacs:
- C-a significa "segure a tecla Ctrl e aperte a tecla a"
- M-a significa "Use a tecla Meta junto com a tecla a", em que a tecla Meta pode ser o Alt da esquerda, a tecla de função do windows ao lado dela ou o Esc (nesse último caso, não é preciso manter o Esc apertado enquanto se aperta o "a", basta apertar o Esc e em seguida o "a"). A tecla que responde pela Meta varia com cada configuração de teclado.
Além disso, estou assumindo uma configuração padrão do bash. Há
configurações alternativas e configurações customizadas que podem ser feitas no
arquivo ~/.inputrc
. Para mais informações, man bash
.
Combinação de teclas | Resultado |
---|---|
C-a |
Ir para o começo da linha |
C-e |
Ir para o final da linha |
M-f |
Andar com o cursor uma palavra para a frente |
M-b |
Andar com o cursor uma palavra para a trás |
C-w |
Apagar do cursor até o começo da palavra |
C-u |
Apagar do cursor até o começo da linha |
C-k |
Apagar do cursos até o final da linha |
C-y |
Re-inserir o último trecho apagado com C-u , C-k ou C-w |
C-d |
Apaga o caracter sob o cursor (como o "Delete", no DOS e em algumas configurações de teclado no Linux) |
C-h |
Apaga o caracter anterior ao cursor. Era o comportamento padrão da tecla Delete , até não muito tempo atrás. |
C-t |
Inverte o caracter sob o cursor e o imediatamente anterior a ele (Para, por exemplo, quando você digitar "celar" ao invés de "clear") |
C-r |
Faz busca incremental para trás no histórico de comandos. Durante uma busca incremental, para se executar o comando exibido na linha, basta usar Enter. Para simplesmente deixar a linha pronta para execução ou edição, use Esc . Para cancelar a busca sem utilizar a linha que estiver na tela, use C-g . |
Você já se sentiu frustrado por ter de digitar
man make-ssh-known-hosts
E não poder usar o TAB
para completar o nome do comando? Bem, em
primeiro lugar, o TAB
não funciona porque o comando associado a ele
("complete") é sensível a contexto. Ou seja, se você aperta TAB
enquanto
está digitando a primeira palavra na linha, supõe-se que você esteja
digitando um comando e a busca por nomes para completar o que você já
digitou é feita na variável PATH
. Se a palavra está mais adiante na linha,
supõe-se que seja um nome de arquivo e tenta-se completar a palavra com os
nomes de arquivo no diretório atual. Bem, há alguns comandos que
possibilitam complementação de palavras independentemente de contexto:
Combinação de Teclas | Resultado |
---|---|
M-/ |
Tenta completar assumindo que se trata de um nome de arquivo |
M-~ |
Tenta completar assumindo que se trata de um nome de usuário naquela máquina |
M-@ |
Tenta completar assumindo que se trata de um nome de máquina listado em /etc/hosts |
M-! |
Tenta completar assumindo que se trata de um comando |