Tipos de shell: Dentro da camada que corresponde ao shell, que foi mostrada na primeira imagem do artigo, é importante falar que para o
GNU/Linux esta camada é como se fosse um programa, que roda assim que o sistema é carregado. Existem vários tipos de shell, o primeiro foi o:
- C-shell: Que era um shell derivado da linguagem C, tivemos também o:
- P-shell, K-shell, porém o mais utilizado hoje em dia é o:
- bash: O nome vem de Bourne Again Shell, e atualmente é o mais completo e robusto interpretador de comados.
Mais funcionalidades do shell: É importante saber que o shell, além de ser um interpretador de comandos, também nos proporciona um ambiente de programação (programação em shell script), onde podemos automatizar diversas tarefas, reduzindo o trabalho do administrador GNU/Linux.
Variáveis do shell
Variáveis ambientais: O shell e seu funcionamento pode ser configurado ou customizado através das variáveis ambientais, que são posições de memória que guardam determinados valores que é lido pelo interpretador de comandos para que possamos configurar ou customizar o shell.
Exitem vários tipos de variáveis ambientais, cada uma com funções diferentes, temos a variável PS1 (Prompt String 1), esta variável armazena o prompt de comando do bash, e é representada pelo simbolo $ (cifrão) que aparece no terminal do GNU/Linux. Temos também a PS2 (Prompt String 2, ou Prompt String Extended), esta é muito usada. Quando precisamos digitar no prompt de comandos e precisamos de mais de uma linha, usamos esta variável.
Tenha em mente que as variáveis não afetam o funcionamento do shell, elas apenas fornecem informações uteis para o usuário, como o diretório corrente, usuário logado etc. Para visualizar qualquer variável ambiental, basta digitar no terminal o comando:
echo $PS
Veja que antes de listar a variável ambiental PS1 com o comando echo $PS1, estou mostrando algumas outras variáveis, que também podemos listar seu conteúdo com o comando echo $(nome da variável).
Caracteres especiais: O caractere "\" (contra barra) é um metacaractere que mostra para o interpretador de comandos que o próximo carácter depois da contra barra tem que ser interpretado como ele é. E não processado, como se fosse um programa em shell script.
Exemplo de prompt: Geralmente o prompt de comandos do GNU/Linux vem da seguinte forma:
\u@\h:\w\$
Este formato trás informações importantes, pois o \u mostra o nome do usuário, \h é utilizado para representar o nome do sistema (hostname), e por último mas bastante importante é o \w, que mostra o diretório corrente. Veja o exemplo abaixo, que estamos no diretório /home.
É importante lembrar que o shell diferencia letrar maiúsculas de minúsculas, sendo assim muito cuidado ao digitar comandos.
Variável PATH: Esta variável é muito importante, pois ela armazena uma lista de diretórios onde será acessado pelo sistema operacional para a execução de programas, caso ele não encontre a localização do programa desejado na variável PATH, dará um erro. Para visualizar a variável PATH, é só dar o comando:
echo $PATH
Diretório HOME: É um diretório especial, onde cada usuário tem o seu diretório home, ele é como se fosse a casa do usuário, possuindo todas as permissões para criar, alterar e apagar qualquer arquivo dentro do seu diretório home. Veja o meu diretório home e como visualizar o conteúdo dentro dele:
ls -l /home/elviseliton/
Ordem de execução: É importante saber que o shell segue uma ordem para localizar e executar os comandos digitados, veja a imagem com essa ordem:
Explicação: No primeiro passo o shell verifica se o que foi digitado é uma instrução interna. Uma instrução interna é um comando ou alguma solicitação que faz parte do shell, e ele não precisa chamar nenhum outro programa externo para executar o que foi pedido pelo usuário.
Se o que foi digitado não for uma instrução interna, significa que é um comando ou programa que precisa ser carregado na memória para que o mesmo possa ser executado. Caso seja um programa, o shell verifica se o mesmo está em algum diretório dentro da variável PATH que falei a pouco, caso não esteja no caminho PATH, o shell faz uma verificação se o caminho deste programa foi passado, caso não, isso gerará um erro para o usuário. Caso sim, ele vai executar o programa solicitado.
Visualizar todas as variáveis: Para que possamos visualizar todas as variáveis ambientais que são suportadas e carregadas pelo nosso interpretador de comandos, use o seguinte comando:
set
Essa imagem é um resumo, mas quando vocês digitarem no terminal vai aparecer mais informações. Não coloquei a imagem completa, pois iria ficar muito grande.