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
:
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 + <-
ouAlt + <-
=Alt + b
-
Ctrl + ->
ouAlt + ->
=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ósCtrl + 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)