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#

Deixe uma resposta

O seu endereço de email não será publicado.