Pular para o conteúdo

Shell do GNU/Linux

O shell do GNU/Linux é um assunto essencial, pois é uma ferramenta muito poderosa onde podemos configurar nosso sistema, interpretar comandos, além de fornecer um ambiente poderoso de programação (programação em shell script).
elvis elviseliton
Hits: 27.084 Categoria: Linux Subcategoria: Software
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 2: Tipos de shell e variáveis

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução ao shell
   2. Tipos de shell e variáveis
   3. Alguns comandos e conclusão

Filtros de Texto no Linux

Hierarquia do Sistema de Arquivos GNU/Linux

Concatenação, conexão e recursividade de comandos no GNU/Linux

LFTP - Sophisticated File Transfer Program

Efeito metálico no GIMP (ferramentas)

QTParted - Particionador gráfico, simples e fácil

RealBasic 2005: Um Visual Basic multi-plataforma!

Nuxeo EP com MySQL no Ubuntu LTS Server Hardy 8.04

#1 Comentário enviado por fernandowx em 18/06/2012 - 08:46h
Ficou muito bom o seu artigo, muito bem escrito.
Você pretende escrever sobre quais tipos de servidores linux?
#2 Comentário enviado por elviseliton em 18/06/2012 - 09:19h
Resposta para o fernandowx.
Ftp + tls, servidor proxy, dhcp, e firewall e outros. Porém o tempo esta curto para mim, mas vou escrever aos poucos, tendo cuidado com a qualidade do artigo. Pois tem muito conteúdo, onde algumas pessoas só fazer copiar e colar.
#3 Comentário enviado por magnodsb em 19/06/2012 - 11:24h
Muito bom artigo, esclarecedor como todos os artigos tem que ser.
#4 Comentário enviado por danniel-lara em 19/06/2012 - 12:16h
Parabén , muito bom o artigo
#5 Comentário enviado por elviseliton em 19/06/2012 - 16:04h
Valeu magnodsb, danniel-lara e todos os outros.
#6 Comentário enviado por removido em 20/06/2012 - 16:52h
O COMMAND.COM era shell do DOS e tinha um absurdo de comandos embutidos.

Ele era tão arcaico que quem nunca o viu tomaria um susto de tantas limitações.

Fora o fato da monotarefa, pouca memória, sem permissões, sem multiusuários. 100% ROOT.

Programas resdentes (TSR) eram um luxo.

Shell de doido mesmo é o ZSH, que é tipo um BASH com algum alucinógeno.
#7 Comentário enviado por removido em 21/06/2012 - 10:31h
Aprendi muito com seu artigo.

Claro e didático.


Ótimo trabalho!
#8 Comentário enviado por px em 11/07/2012 - 18:40h
nota 10 !
#9 Comentário enviado por maurixnovatrento em 15/08/2020 - 17:24h
MUITO bom.

___________________________________
Conhecimento não se Leva para o Túmulo.


Contribuir com comentário

Entre na sua conta para comentar.