Bash - O interpretador de comandos

FLISOL Ceaŕa | Festival Latinoamericano de Instalação de Software Livre

Um comando do Linux é uma palavra especial que representa uma ou mais ações. Um interpretador de comandos também é conhecido como shell ou modo texto. Ele é o programa responsável por interpretar essas instruções enviadas pelo usuá¡rio e seus programas para o kernel. No Linux, vocês poderão ter vários interpretadores de comando.

O interpretador de comandos é que executa comandos lidos do teclado ou de um arquivo executável. É a principal ligação entre o usuário e a máquina. Entre os programas interpretadores de comandos pode-se destacar o bash, ash, csh, tesh, sh.

Entre eles o mais usado é o bash (Bourne Again Shell), criado por S.R. Bourne. Os comandos podem ser enviados de duas maneiras para o interpretador:
a) Interativa: Os comandos são digitados no teclado pelo usuário e passados ao interpretador de comandos um a um. Neste modo o computador depende do usuário para executar uma tarefa ou o próximo comando.
b) Não-interativa: São usados arquivos de comandos (scripts) criados pelo usuário para o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um, e dependendo do término do comando, o script pode checar qual será o próximo comando que será executado e dar continuidade ao processamento.

Esse sistema é útil quando temos que digitar por várias vezes seguidas um mesmo comando ou para compilar algum programa complexo.

Uma característica interessante do Bash é que ele possui a função de auto-completar os nomes de comandos que foram digitados via teclado. Isso é feito pressionando-se a tecla TAB; o comando é completado e acrescentando um espaço. É útil também quando voçê não sabe o nome completo de um comando. Caso você saiba a primeira letra, precione a tecla TAB que ele irá mostrar os comandos iniciados com aquela letra. Cuidado para não se surpreender com a quantidade de comandos; uma dica é digitar as três primeiras letras do nome do comando.

Isso funciona sem problemas para comandos internos; caso o comando não seja encontrado, o Bash emite um beep. Por exemplo, na sua pasta raiz tente digitar:
cd et (aperte TAB) +X1 (aperte TAB) + fon (aperte TAB) e veja como foi fácil digitar um caminho para entrar no local: /etc/X11/fonts.

Existem alguns atalhos úteis que podem ser utilizados no bash para facilitar no dia-a-dia no Linux:

Alt + b - Move o cursor uma palavra para trás.
Alt + f - Move o cursor uma palavra para frente.
Ctrl + a - Ir para o início da linha.
Ctrl + c - Para o comando.
Ctrl + d - Logout.
Ctrl + e - Ir para o final da linha.
Ctrl + l - Apaga a tela (O mesmo que clear).
Ctrl + r - Busca Incremental no histórico de comandos.
Ctrl + t - Inverte o caractere sob o cursor com o anterior.
Ctrl + u - Apagar do cursor até o começo da linha.
Ctrl + w - Apagar do cursor até o começo da palavra.
Ctrl + y - Re-insere o último trecho apagado.
Ctrl + z - Põe processo em background.

Agora que você já sabe um monte de combinações legais para facilitar sua vida, pode sair queimando o seu teclado no bash. Certo? Mas o bash não pára por aí. Você pode repetir um comando no bash sem ter que digitá-lo novamente. Isso é possível utilizando o caractere "!" na frente do comando que você deseja repetir. O bash vai buscar aquele comando no histórico e se lá tiver algo parecido o comando será executado. Veja o exemplo:

$ mkdir /home/psico/teste
$ ls /home/psico
$ rm /home/psico/teste
$ !mkdir

O comando "!mkdir" irá informar ao shell (bash) para executar o último comando mkdir executado, neste exemplo, "mkdir /home/psico/teste". Que poder heim? Caso você queira verificar qual o shell que está em uso, digite o comando: "echo $SHELL"; para saber as disponíveis, o comando "cat /etc/shells" lhe informará.

Sempre que quiser se dirigir ao seu diretório /home você pode fazê-lo por "~/" ao invés de digitar /home/seudiretorio. Para odiretório de outros usuário você poderá digitar ~nomedousuario. Não vivo sem isso.

Outra dica bacana é você poder digitar vários comandos numa mesma linha separados por ";". Isso é útil quanto você está otimizar uma tarefa que você costuma fazer com frequência. Veja o exemplo:

$ cd /home/psico; ls -lah; cp Pais_e_filhos.mp3 ~/ ; mplayer ~/Pais_e_filhos.mp3

Espero que esse artigo tenha abordado pontos interessantes e agradado os iniciantes. Abraços.

.::PsicoIndie


Copyright (c) 2006-2007 - Comunidade de Software Livre Tux-CE.
Conteúdo licenciado sob a licença GNU Free Documentation License,
assim como as páginas derivadas Fórum e Blog