O que é um Shell?
Um shell é um programa que fornece uma interface entre um usuário e um sistema operacional (SO) kernel. Um sistema operacional inicia uma shell para cada usuário quando o usuário faz login ou abre uma janela de terminal ou console.
Um kernel é um programa que:
- Controla todas as operações do computador.
- Coordena todos os utilitários de execução
- Segura que os utilitários de execução não interferem uns com os outros ou consomem todos os recursos do sistema.
- Squadrilha e gere todos os processos do sistema.
Interfazendo com um kernel, uma shell fornece uma forma de um utilizador executar utilitários e programas.
Ambiente do utilizador
A shell também fornece um ambiente de utilizador que pode ser personalizado utilizando ficheiros de inicialização. Estes ficheiros contêm definições para características do ambiente do utilizador, tais como:
- Procurar caminhos para encontrar comandos.
- Permissões por defeito em novos ficheiros.
- Valores para variáveis que outros programas usam.
- Valores que pode personalizar.
Quais são os diferentes Shells?
As secções seguintes descrevem as shells de SO disponíveis na maioria no sistema operativo UNIX/Linux. As características do shell e as suas instruções padrão também são descritas.
O Bourne Shell
O Bourne shell (sh), escrito por Steve Bourne em AT&T Bell Labs, é o shell original UNIX. É a shell preferida para a programação da shell devido à sua compacidade e velocidade. Uma desvantagem do Bourne shell é que ele não possui recursos para uso interativo, tais como a capacidade de lembrar comandos anteriores (histórico). O Bourne shell também carece de manipulação aritmética e lógica de expressões.
O Bourne shell é o shell padrão do SO Solaris. É a shell padrão para os scripts de administração do sistema Solaris. Para o Bourne shell o:
- Command full-path name é /bin/sh e /sbin/sh.
- Ponto padrão do usuário não-root é $.
- Ponto padrão do usuário não-root é #.
A Shell C
A Shell C (csh):
- É uma melhoria do UNIX escrita por Bill Joy na Universidade da Califórnia em Berkeley.
- Características corporativas para uso interativo, tais como aliases e histórico de comandos.
- Inclui recursos convenientes de programação, como aritmética embutida e uma sintaxe de expressão parecida com C.
Para a shell C o:
- O nome completo do caminho do comando é /bin/csh.
- O prompt padrão do usuário não-root é hostname %.
- Ponto padrão do usuário root é hostname #.
O Korn Shell
O Korn shell (ksh):
- Foi escrito por David Korn em AT&T Bell Labs
- É um super conjunto do Bourne shell.
- Suporta tudo no Bourne shell.
- Tem características interactivas comparáveis às da shell C.
- Inclui características de programação convenientes como aritmética embutida e arrays tipo C, funções, e facilidades de manipulação de strings.
- É mais rápido que a shell C.
- Executa scripts escritos para a shell Bourne.
Para a shell Korn a:
- O nome completo do caminho do comando é /bin/ksh.
- O prompt padrão do usuário não-root é $.
- O prompt padrão do usuário não-root é #.
O Shell GNU Bourne-Again Shell
O shell GNU Bourne-Again (bash):
- É compatível com o shell Bourne.
- Incorporta características úteis dos shells Korn e C.
- Têm teclas de setas que são automaticamente mapeadas para recuperação de comandos e edição.
Para a shell GNU Bourne-Again the:
- O nome do caminho completo do comando é /bin/bash.
- O prompt padrão para um usuário não-root é bash-x.xx$. (Onde x.xx indica o número da versão da shell. Por exemplo, bash-3.50$)
- Pedido padrão do usuário root é bash-x.xx#. (Onde x.xx indica o número da versão da shell. Por exemplo, bash-3.50$#)
Aqui está uma breve comparação dos 4 shells e suas propriedades.
Shell | Path | Pedido por defeito (nãoroot user) | Prompt default (Root user) |
---|---|---|---|
The Bourne Shell (sh) | /bin/sh e /sbin/sh | >$ | # |
The C Shell (csh) | /bin/csh | % | ##7785> |
The Korn Shell (ksh) | /bin/ksh | $ | > |
The GNU Bourne-Novamente Shell (Bash) | /bin/bash | bash-x.xx$ | bash-x.xx# |