quarta-feira, 22 de junho de 2011

Introdução ao UNIX SHELLs

Definição e função

O Shell é um programa especial usado como uma interface entre o usuário e o coração do Sistema Operacional UNIX, chamado de kernel, como mostra a figura abaixo:

kernel

O kernel é carregado na memoria no momento do boot e gerencia o sistema ate o momento do shutdown. Isso cria e controla processos, e gerencia memorias, sistemas de arquivos, comunicações, e assim por diante. Todos os outros programas, incluindo shells scripts residem fora do disco. O kernel carrega esses programas em memoria, executa-os, e limpa o sistema quando terminar. O shell é um programa que inicializa quando você faz um logon. Isso permite os usuários interagir com o kernel interpretando os comandos digitados pelo usuário em linha de comando ou em um shell script.

Quando você faz logon, um shell interativo é iniciado e um prompt fica aguardando a sua entrada. Depois de digitar um comando, é de responsabilidade do shell: (a) analisar a linha de comando; (b) lidar com wildcards, redirecionamentos, pipes e controle dos trabalhos; e (c) pesquisar pelo comando e se encontrado, executar o comando. Quando você estuda UNIX pela primeira vez, recomendo passar uma boa parte de seu tempo digitando comandos em prompt. Use a interatividade do shell.

Se você costuma executar um conjunto de comando regularmente, você pode querer automatizar essas tarefas. Um arquivo de script permite que você crie um conjunto de comandos, e então execute esse script. Um shell script é muito parecido com um arquivo de lote do Windows: É uma lista de comandos UNIX e então esse arquivo é executado. Scripts mais sofisticados contem instruções de programação para criar decisões, looping, e muito mais. Escrever um script não requer somente estudar técnicas de programação, mas sim que você tenha um bom conhecimento dos utilitários UNIX e como eles trabalham. Existem alguns utilitários, como grep, sed e awk, que são ferramentas extremamente poderosas usadas em scripts para a manipulação das saídas dos comandos. Depois que você se familiarizar com essas ferramentas e com construção de programas, você estará pronto para escrever scripts poderosos. Ao executar comandos dentro de scripts, você estará usando o shell como uma linguagem de programação.

 

Os três principais Shells

Os três principais Shells e suportados na maioria dos sistemas UNIX são o Bourne Shell (AT&T Shell), o C Shell (Berkeley), e o Korn Shell (superconjunto do Bourne Shell). Todos esses três Shells se comportam praticamente da mesma forma quando executado, mas tem algumas diferenças na sintaxe e eficiência quando utilizado como linguagem de programação.

O Bourne Shell é o shell padrão do UNIX, e o shell é usado para administrar o sistema. A maioria dos scripts de administração do sistema, como os scripts rc start  e stop e shutdown são scripts Bourne Shell, e quando em modo single user, este é o shell usado pelo root. Este shell foi escrito pela AT&T e é conhecido por ser objetivo, compacto e rápido. O prompt padrão do Bourne Shell é o sinal de dólar ($).

O C shell foi desenvolvido e adicionado uma serie de característica pela Berkeley, como o histórico de linha de comando, aliases, cálculos aritméticos controles de tarefas. O C Shell tem sido melhor em comparação ao Bourne Shell para usuários que rodam em shell interativo, mas administradores  preferem o Bourne Shell para script, porque o Bourne Shell são simples e bem mais rápidos comparado com scripts escrito em C Shell. O prompt padrão do C Shell é o sinal de porcentagem (%).

O Korn Shell é um superconjunto do Bourne Shell escrito por David Korn da AT&T. Uma serie de recursos foram adicionados a esse shell além das melhorias do C Shell. As características do Korn Shell inclui um histórico editável, aliases, funções, expressões regulares, cálculos aritméticos, controles de tarefas e debug, entre outras. O Bourne Shell é quase totalmente compatível com o Korn Shell. O prompt padrão do Korn Shell é o sinal de dólar ($).

Nenhum comentário:

Postar um comentário