Conhecendo Melhor Seu Interpretador De Comandos

Categorias: desenvolvimento, shell

Se você é usuário de sistemas operacionais baseados em unix, deve estar acostumado a abrir o terminal para tarefas simples como mover e copiar arquivos, remover arquivos em massa, criar pastas, verificar diretórios, etc. Se você conhece um pouco mais e administra sites por exemplo, deve mover seus arquivos com scp, usar conexões ssh e fazer todo seu trabalho via terminal.

Quem faz essa ligação entre você e o coração do sistema operacional, permitindo executar esses comandos, é o Shell. Quem interpreta e processa os comandos para você, é uma implementação do Shell, que é o que vamos conhecer melhor aqui hoje.

Este termo Shell, deve ter feito você lembrar sobre Shell Script, que escutamos falar muito e nada mais é do que um script com vários comandos Shell dentro dele.

Dentre as implementações de Shell, aquilo que interpreta seus comandos, a mais famosa hoje é o Bash (Bourne-again shell, fazendo uma referência ao Bourne Shell que você pode pesquisar sobre). Para conferir qual o interpretador padrão de seus comandos, em seu terminal digite o seguinte comando

echo $SHELL

Se seu interpretador for o Bash, como a maioria, você vai ver a saída /bin/bash.

Entre outras implementações de Shell podemos ter csh, tcsh, sh, ksh, e várias outras. Para conferir se essas implementações estão instaladas no seu sistema operacional, basta digitar o nome delas. Por exemplo:

bash

Caso esteja instalada, o terminal irá permitir que execute comandos naquela implementação, caso contrário apontará como comando inexistente. Você também consegue uma listagem das implementações shell disponíveis em seu sistema operacional abrindo o arquivo shells, geralmente localizado em /etc/shells.

Acredito que se você usar outras implementações apenas por algum tempo, vai achar todas muito parecidas pois uma deriva ou usa a outra, e assim nem vai notar diferença entre elas.

Usando o Bash

O bash traz alguns atalhos que podem facilitar a sua vida, sendo um dos principais a tecla TAB (ou ctrl + i) para completar comandos, nomes de arquivos ou nomes de variáveis.

Para buscar por comandos que você tenha digitado anteriormente use ctrl + r.
Para anular a busca use ctrl + c, que também é usado para abortar outros comandos, scripts e as vezes loops infinitos.

ctrl + a para ir ao início da linha do comando (também obtido com a tecla home, se houver), ctrl + e para ir ao final dela (equivalente a tecla end).
Perdeu a tecla enter ou cansou dela? Use ctrl + j

Esses atalhos tendem a funcionar melhor quando se está definido o padrão de teclas Emacs, embora grande maioria deles funcione em outros padrões.

Você pode mudar esse padrão com o comando

set -o emacs

Você poderia usar o padrão VI, da seguinte maneira

set -o vi

Como exemplo para essa situação, temos os atalhos ctrl + p (equivalente a seta para cima) e ctrl + n (equivalente a seta para baixo) para trazer os últimos comandos executados. Eles funcionam apenas no padrão emacs.

Preciso saber esses comandos?

Muito provavelmente um marginal não vai encostar uma arma na sua cabeça lhe cobrando esses comandos no meio da rua. Mas talvez algum dia na sua carreira, você vai entrar em algum Data Center, e ter de mexer diretamente em uma máquina que estiver dentro de um hack enorme.

Você irá puxar uma pequena gaveta, que irá se tornar um monitor e um simples teclado. Esse teclado pode conter apenas teclas básicas, excluindo assim as suas tão usadas setas para navegar entre os caracteres e palavras, e as vezes até sem a tecla enter. Esteja preparado conhecendo alguns desses comandos. Lembre-se que o google pode não estar por perto.

Em breve trarei para vocês uma alternativa bem legal para o Bash, e como ela pode ajudar na produtividade de pessoas que trabalham diretamente com o terminal.

Até lá!


Comments