Profa Rita de Cássia Catini Faculdade Santa Lúcia 4º Semestre - Sistemas de informação
Camadas: Hardware e Kernel
Hardware: É a mais profunda e é formada
pelos componentes físicos do seu computador.
Em torno dela, vem a camada do kernel que é
o cerne do Linux, seu núcleo, e é quem põe o
hardware para funcionar, fazendo seu
Camadas: Programas e Comandos,
Shell
Os programas e comandos que envolvem o kernel,
dele se utilizam para realizar as tarefas para que
foram desenvolvidos.
Fechando tudo isso vem o Shell, que leva este nome
porque, em inglês, Shell significa concha, carapaça,
isto é, fica entre o usuário e o sistema operacional, de
forma que tudo que interage com o sistema
O ambiente Shell
Para chegar ao núcleo do Linux, no seu kernel que é o que interessa a todo aplicativo, é necessária a filtragem do
Shell, vamos entender como ele funciona de forma a tirar o máximo proveito das inúmeras facilidades que ele nos oferece.
Tipos de Shell
O Shell é a conceituação de concha envolvendo o sistema operacional propriamente dito, é o nome genérico para tratar os filhos desta idéia que, ao longo dos muitos anos de existência do sistema operacional Unix, foram
aparecendo.
Só por curiosidade: Tipos mais
conhecidos
Bourne Shell (sh):Desenvolvido no Bell Labs, foi durante muitos anos o Shell padrão do sistema operacional Unix.É também chamado de Standard Shell .
Korn Shell (ksh):Desenvolvido também noBell Labs,é um superconjunto do sh, isto é, possui todas as facilidades do sh e a elas agregou muitas outras.
Boune Again Shell (bash):Desenvolvido inicialmente por Brian Fox e Chet Ramey, este é o Shell do projeto GNU.O número de seus adeptos é o que mais cresce em todo o mundo, seja por que ele é o Shell padrão do Linux, seja por sua grande diversidade de comandos, que incorpora inclusive diversos comandos característicos do C Shell.
C Shell (csh):Desenvolvido por Bill Joy,da Universidade de Berkley, é o Shell mais utilizado em ambientes BSD. Foi ele quem introduziu o histórico de comandos.A estruturação de seus comandos é bem similar à da linguagem C.
Funcionamento do Shell
O Shell é o primeiro programa que você ganha ao iniciar sua sessão (efetuar login) no Linux.
É ele quem vai resolver um monte de coisas de forma a não onerar o kernel com tarefas repetitivas, poupando-o para tratar assuntos mais nobres.
Como cada usuário possui o seu próprio Shell interpondo-se entre ele e o Linux, é o Shell quem interpreta os
Resumindo
Na verdade o Shell é um interpretador que traz consigo uma poderosa linguagem com comandos de alto nível, que permite construção de loops, de tomadas de decisão e de armazenamento de valores em variáveis, como
Linha de Comando
Shell identifica os caracteres especiais (reservados) que têm significado para a interpretação da linha e logo em seguida verifica se a linha passada é um comando ou uma atribuição de valores, que são os itens descritos a seguir.
Comando
Quando um comando é digitado no “prompt” (ou linha de comando) do Linux, ele é dividido em partes,
separadas por espaços em branco: a primeira parte é o nome do programa, cuja existência será verificada; em seguida, nesta ordem, vêm as opções/parâmetros,
redirecionamentos e variáveis.
Exemplo:
Comando
Quando o programa identificado existe, o Shell verifica as permissões dos arquivos envolvidos (inclusive o próprio programa), e retorna um erro caso o usuário que chamou o programa não esteja autorizado a executar esta tarefa.
Comando:
$ ls linux
Neste exemplo o Shell identificou o ls como um programa e o linux como um parâmetro passado para o programa ls.
Atribuição
Se o Shell encontra dois campos separados por um sinal de igual (=) sem espaços em branco entre eles, ele
identifica esta sequência como uma atribuição.
Exemplo:
# valor=1000
Neste caso, por não haver espaços em branco (que é um dos caracteres reservados), o Shell identificou uma
Resolução de Redirecionamentos
Após identificar os componentes da linha que você digitou, o Shell parte para a resolução de
redirecionamentos O Shell tem incorporado ao seu elenco de habilidades o que chamamos de
redirecionamento, que pode ser de entrada (stdin), de saída (stdout) ou dos erros (stderr).
Substituição de Variáveis
Shell verifica se as eventuais variáveis (parâmetros
começados por $), encontradas no escopo do comando, estão definidas e as substitui por seus valores atuais
Substituição de Meta-Caracteres
Se algum meta-caracter (ou “coringa”, como *, ? ou []) for encontrado na linha de comando, ele será substituído por seus possíveis valores.
Supondo que o único item no seu diretório corrente cujo nome começa com a letra n seja um diretório chamado
nomegrandeprachuchu, se você fizer:
Entrega da linha de comando
para o kernel
Completadas todas as tarefas anteriores, o Shell monta a linha de comando, já com todas as substituições feitas e chama o kernel para executá-la em um novo Shell (Shell filho), que ganha um número de processo (PID ou Process IDentification) e fica inativo durante a execução do
Caracteres para remoção do
significado
Apóstrofo (´): quando o Shell vê uma cadeia de caracteres
entre apóstrofos, ele retira os apóstrofos da cadeia e não interpreta seu conteúdo.
Contrabarra ou Barra Invertida (\):
Idêntico aos apóstrofos exceto que a barra invertida inibe a interpretação somente do caractere que a segue.
Suponha que você, acidentalmente, tenha criado um arquivo chamado * (asterisco) – o que alguns sabores de Unix
permitem – e deseja removê-lo. Se você fizesse:
Você estaria na maior encrenca, pois o rm removeria todos os arquivos do diretório corrente. A melhor forma de fazer o
Aspas(“)
Aspas (“): exatamente iguais ao apóstrofo, exceto que, se
a cadeia entre aspas contiver um cifrão ($), uma crase (`), ou uma barra invertida (\), estes caracteres serão
O que é um Script?
Scripts, podem ser definidos como arquivos executáveis, com instruções definidas, conhecidas e claras, que são executadas por um interpretador.
PHP e arquivos de lote do Windows (bach) são outros exemplos de Script.
Scripts possuem seqüências de instruções e funções que são executadas em série pelo interpretador, de forma muito similar a qualquer programa.
Shell Scripts
Os arquivos de script permitem construir esquemas de
execução complexos a partir dos comandos básicos do shell.
A forma mais elementar de arquivo de script é apenas um
conjunto de comandos em um arquivo texto, com permissões de execução habilitadas.
Shell Script pode ser considerado uma linguagem de
programação, mas para ambientes Linux.
Porem não é tão rápido em execução como programas
compilados.
Características e funcionalidades
de Shell Script
É de terminologia e funções nativas ao usuário Linux, pois utiliza comandos do mesmo;
Fácil e lógica compreensão;
É editado como qualquer arquivo texto, em um editor de textos padrão;
Pode possuir qualquer extensão, mas o ideal é a extensão .sh;
Facilidade, organização e velocidade na execução de tarefas;
Não necessita de depurador, e no caso de erros de sintaxe, basta apenas editar e salvar novamente o arquivo, sem
necessidade de compilação;
Exemplo
Por exemplo, se de tempos em tempos você quer
saber informações do sistema como horário,
ocupação do disco e os usuários que estão logados, é
preciso digitar três comandos:
É melhor fazer um script chamado “script1" e colocar
estes comandos nele:
Como criar um script:
1. Crie um arquivo com um editor de texto (no nosso exemplo: sistema.sh)
# touch script1.sh
2. Dê permissão de execução ao arquivo. # chmod a+x script1.sh
3. Edite o arquivo comum editor de textos e inclua os comandos e parâmetros necessários.
4. Execute o script
Se o script estiver no diretório corrente, chame-o com um "./" na
frente, assim:
prompt$ ./ script1.sh
Caso contrário, especifique o caminho completo desde o diretório
raiz:
Observações
Comentários são feitos com o uso de #
O comando echo faz com que o shell imprima uma mensagem na tela.
O $ difentifica uma variável no shell
O comando read faz com que o shell dê uma pausa e espere que algo seja digitado e depois capture e coloque o que foi digitado numa variável.
A frente do "read" você pode notar que tem um nome, esse nome se
tornará uma variável que mais tarde será acompanhada do "$" para indicá-la ao shell.
A primeira linha de um script indica qual será o interpretador de comandos que deve ser ustilizado
Primeiro exemplo.
Criar diretório /home/scripts armazenamento dos scripts. vim script1 Para executar sh script1 ./script1 se estiver no mesmo diretório. /home/scripts/script1 10/11/2014 29Alterando o primeiro exemplo para o uso de
variáveis:
Cuidado para não colocar espaço entre o nome da variável e o conteúdo entre aspas.
Aspas duplas e crase.
Read mesma linha.
Localizar arquivos (escolhendo diretório e
qtd de arquivos a apresentar).
10/11/2014 33
Execute e responda:
Qual o erro deste script?
10/11/2014 34
Localizar arquivos (escolhendo diretório e
qtd de arquivos a apresentar).
Dúvidas????
Referencias bibliográficas:
MORIMOTO, Carlos Eduardo. Redes e servidores Linux: guia prático. São Paulo: Sul Editores, 2006.
NEMETH, Evi. HEIN , Trent R. SNYDER, Garth. Manual
completo do Linux: guia do administrador. São Paulo:
Makron Books, 2005. www.vivaolinux.com.br