Skip to content

O básico do Shell

O shell é um programa que permite a comunicação por texto entre o sistema operacional e o usuário. Trata-se de um programa em modo texto que lê os dados inseridos pelo usuário e os interpreta na forma de comando para o sistema.

Existem vários shells diferentes no Linux, segue alguns exemplos:

  • sh: Bourne Shell
    • Criador: Stephen Bourne (Bell Labs, 1979)
    • Shell original do Unix
    • Presente em praticamente todos os sistemas Unix/Linux
  • bash: Bourne-again shell
    • Criador: Brian Fox (GNU Project, 1989)
    • Shell padrão na maioria das distribuições Linux
    • Compatível com sh, mas com muitas extensões
    • Recursos avançados: arrays, expressões regulares, completion
  • zsh: Z shell
    • Criador: Paul Falstad (1990)
    • Autocompletar inteligente
    • Temas e plugins (Oh My Zsh)
    • Compartilhamento de histórico entre sessões
  • csh: C shell
    • Criador: Bill Joy (1978)
    • Estruturas de controle similares à linguagem C
    • Sistema robusto de aliases de comandos
  • ksh: Korn shell
    • Criador: Korn Shell (1983)
    • Combina recursos de sh e csh
    • Popular em ambientes Unix comerciais (AIX, Solaris)
    • Recursos avançados de programação

No Linux, o mais comum é o shell Bash, que é o shell que usaremos em nossos exemplos.

No shell, o usuário insere comandos no chamado prompt. Para cada distribuição Linux, o prompt padrão tem uma aparência um pouco diferente, mas geralmente segue esta estrutura:

Exemplo de prompt
username@hostname diretório_atual tipo_de_shell


No Debian/Ubuntu, o prompt terá a seguinte aparência:

Exemplo de prompt
fernando@meucomputador:~$


No Red Hat/CentOS, o prompt terá a seguinte aparência:

Exemplo de prompt
[fernando@meucomputador ~]$


Componente de cada estrutura:

  • username: Nome do usuário que está executando o shell
  • hostname: Nome da máquina na qual o shell é executando
  • diretório_atual: O diretório que o shell está atualmente. Um ~ indica que o shell está no diretório Home do usuário atual.
  • tipo_de_shell: Indica o tipo de usuário que está executando o shell
    • $: Usuário comum
    • #: Superusuário (root)