O que é o Shell
A tradução de
shell é concha. O
shell é a camada que envolve o
kernel. Como dito antes, o
kernel é o núcleo do sistema operacional. É ele quem conversa com o hardware indicando o que deve ser feito.
O
kernel abstrai a interface de hardware fazendo com que os processos utilizem os recursos do computador de forma organizada. O
shell é a camada mais acima do
kernel. É a camada que o usuário tem acesso para que ele possa fazer as requisições para o
kernel para que este entre em contato com o hardware.
Resumindo: o
shell nada mais é que o interpretador de comandos que transmite ao
kernel o que é para ser realizado. Vale lembrar que existe uma diferença gritante de poder entre os shells para Windows e os shells para
Linux. O shell para Linux tem muito mais recursos e é onde um administrador de servidores pode trabalhar a maior parte de seu tempo. Pode-se realizar muitas tarefas usando o
shell e criando scripts para o mesmo.
Shell e as Camadas do SO
A seguir alguns exemplos de shells.
Shells do Windows
Command.com e cmd.exe:
São os nomes do
shell padrão para o sistema operacional DOS e padrão de linha de comando para (Windows 9X/ME). O cmd.exe veio para substituir o Command.com nos sistemas operacionais mais novos da Microsoft, Windows NT, 2000, XP, Vista, CE e nos OS2 da IBM.
Modos de operação:
O command.com tem dois modos distintos de trabalho. O primeiro é o modo interativo, no qual o usuário entra com os comandos, que são executados assim que pressionado o nome do comando e Enter. O segundo é o modo batch, o qual executa uma sequência de comandos predefinidos armazenados como um arquivo texto.
4Dos / 4Nt / 4OS2:
O 4Dos é um interpretador de comando desenvolvido por JP Software projetado para substituir o interpretador de comando padrão Command.com em DOS, Windows 95, Windows 98 e Windows ME.
O 4Nt foi desenvolvido pela mesma empresa e foi projetado para substituir o cmd.exe do Windows NT. E a empresa também desenvolveu um shell para substituir o shell padrão, no caso o cmd.exe também, do OS2 da IBM.
Windows PowerShell:
O Windows PowerShell é uma versão aprimorada do prompt de comandos do Windows voltada ao uso de scripts para manutenção de sistemas por parte de administradores. para um controle maior do sistema, acelerar e automatizar tarefas.
O Windows PowerShell é integrado como componente opcional do Windows Server 2008 e seu download pode ser feito gratuitamente para posterior instalação em Windows XP SP2, Vista e 2003 Server.
Shells do Linux
Bourne shell (sh):
O Bourne shell, ou simplesmente sh, foi o shell padrão do Unix Versão 7 e substituiu o Thompson shell, cujo arquivo executável tinha o mesmo nome, sh. Ele foi desenvolvido por Stephen Bourne dos laboratórios AT&T e foi lançado em 1977 junto com o Unix Versão 7 distribuído para as faculdades e universidades. Logo tornou-se um shell popular para as contas Unix. O programa binário do Bourne shell fica em /bin/sh da maioria dos sistemas Unix e ainda permanece como o
shell padrão para o superusuário root em muitas das implementações do Unix atuais.
Korn Shell (ksh):
Sendo considerado o mais popular Shell em sistemas Unix, o Korn Shell foi desenvolvido por David Korn e é um superconjunto do sh, isto é, possui todas as facilidades do sh e a elas agregou muitas outras. A compatibilidade total com o sh vem trazendo muitos usuários e programadores de
shell para este ambiente. O ksh foi o primeiro
shell a introduzir recursos avançados.
C Shell (csh):
O csh foi desenvolvido por Bill Joy da Universidade de Berkeley. É o
shell mais utilizado em ambientes BSD e xenix. Derivado originalmente da sexta edição do Unix /bin/sh. A sintaxe foi modelada segundo a linguagem de programação C. A estruturação de seus comandos é bem similar à da linguagem C. Seu grande pecado foi ignorar a compatibilidade com o sh, partindo por um caminho próprio.
Bash:
O Bash é o
shell desenvolvido para o projeto GNU, da Free Software Foundation, que se tornou padrão nas várias distribuições Linux. Pode ser usado também com outros sistemas operacionais, como o Unix. É compatível com o Bourne shell (sh), incorporando os melhores recursos do C shell (csh) e do Korn shell (ksh).