Linux - Atalhos de teclado em Bash
Por Rodrigo Bernardo Pimentel
Data de Publicação: 02 de Julho de 2007
Estou listando alguns "stupid bash tricks" que podem ser úteis ou mesmo divertidos :)
Estarei usando 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 podem ser feitas no arquivo ~/.inputrc . Para mais informações, man bash . =
| 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:
| 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 |
`
Esta dica foi publicada originalmente na Dicas-L em 28 de junho de 2000
Veja a relação completa dos artigos da coluna Cantinho do Shell
Para se manter atualizado sobre as novidades desta coluna, consulte sempre o newsfeed RSS
Para saber mais sobre RSS, leia o artigo O Padrão RSS - A luz no fim do túnel.
Opinião dos Leitores
13 Nov 2007, 11:31
Ctrl - l Irá limpar a tela do terminal. (semelhante ao comando clear)
Ctrl - z Pára um comando ou serviço. Mas podendo ser recuperado com o fg <jobs> (coloca em primeiro plano) ou bg <jobs> (coloca em segundo plano)
Ctrl - c Mata um comando ou serviço. Mas esta não podendo ser recuperado.
Ctrl - d Vc descrevou este atalho de uma forma diferente do que eu conheço. Por exemplo no Debian este atalho desloga o terminal.
06 Jul 2007, 08:08
source /etc/bash_complete.
Ele permite auto-completar várias outras coisas. Por exemplo, se vc digitar:
gv <TAB>
apenas os arquivos .ps serão listados.
Site do autor: http://www.caliban.org/bash/
06 Jul 2007, 00:37
M-- inverte o sentido do comando seguinte
M-(digitos) múltiplica pelo número o comando seguinte
M-d apaga (realmente) uma palavra
... C-w apaga tudo até um espaço, não necessariamente apenas uma palavra.
Se tiver:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
e quiser trocar o scaling_driver por scaling_governor... um C-w te cortaria tudinho, até o espaço após o cat.
M-- M-d cortaria apenas o "driver".
06 Jul 2007, 00:24
M-y Percorrer o buffer de colagem (quando executado logo após uma colagem)[1]
C-/ Desfazer
1 - O buffer de colagem é como no Emacs.
Tudo o que é copiado vai para o buffer. A última coisa do buffer é colada por padrão, mas pode alternar para a penúltima, antepenúltima e por todas outras anteriores (depois volta ao início e continua).



