01 apostila-introducao-shell

Click here to load reader

Post on 14-Apr-2017

86 views

Category:

Technology

0 download

Embed Size (px)

TRANSCRIPT

  • Introduo ao Shell Script

    Aurlio Marinho Jargas

    http://aurelio.net

  • ndiceSobre o curso.......................................................................................................................1

    Apresentao........................................................................................................................2O que o shell............................................................................................................2Shell script...................................................................................................................3Antes de comear........................................................................................................3

    O primeiro shell script.........................................................................................................4Passos para criar um shell script.................................................................................4Problemas na execuo do script................................................................................5

    O primeiro shell script (melhorado)....................................................................................6Melhorar a sada na tela..............................................................................................6Interagir com o usurio................................................................................................6Melhorar o cdigo do script.........................................................................................7

    Rebobinando a fita...............................................................................................................8Variveis......................................................................................................................8Detalhes sobre os comandos......................................................................................8O comando test.........................................................................................................10Tarefa: script que testa arquivos...............................................................................11

    Conceitos mais avanados...............................................................................................12Recebimento de opes e parmetros......................................................................12Expresses aritmticas..............................................................................................12If, for e while..............................................................................................................13

    Exerccios...........................................................................................................................15

    Mais informaes...............................................................................................................18

    Respostas dos exerccios.................................................................................................19testa-arquivos............................................................................................................19relacao.sh..................................................................................................................19zerador.sh..................................................................................................................19substring.sh...............................................................................................................20juntatudo.sh...............................................................................................................20users.sh.....................................................................................................................20shells.sh.....................................................................................................................20parametros.sh............................................................................................................20

    Introduo ao Shell Script - Aurlio Marinho Jargas

    i

  • Sobre o curso

    NomeIntroduo a Shell Scripts

    InstrutorAurlio Marinho Jargas (http://aurelio.net)

    ObjetivoEnsinar aos alunos todos os conceitos necessrios para poderem fazer sozinhosscripts simples em shell.

    Pr-RequisitosNoes bsicas de informtica e operao do sistema pela linha de comando. desejado, porm no obrigatrio, noes bsicas de programao.

    Pblico AlvoDesenvolvedores, administradores de sistemas, programadores e interessados emgeral.

    Durao8 horas

    1

  • Apresentao

    O que o shell

    O shell o "prompt" da linha de comando do Unix e Linux, o servo que recebe oscomandos digitados pelo usurio e os executa.

    O shell aquele que aparece logo aps digitar-se a senha do usurio e entrar na telapreta. Ou na interface grfica, ao clicar no cone do Xterm, rxvt, Terminal ou Console.

    localhost login: root Password:

    Last login: Fri Apr 16 01:57:28 on tty5 [[email protected] root]# _

    Ali est o shell, esperando ansiosamente por algum comando para ele poder executar.Essa a sua funo: esperar e executar. Cada comando digitado lido, verificado,interpretado e enviado ao sistema operacional para ser de fato executado.

    No Mac OS X, o shell est em Aplicativos > Utilitrios > Terminal. No Windows preciso instal-lo com o Cygwin.

    Funcionando como uma ponte, o shell a ligao entre o usurio e o kernel. O kernel quem acessa os equipamentos (hardware) da mquina, como disco rgido, placa de vdeoe modem. Por exemplo, para o usurio ler um arquivo qualquer, toda esta hierarquia seguida:

    USURIO --> SHELL --> KERNEL --> DISCO RGIDO

    Para os usurios do Windows, fcil pensar no shell como um MSDOS melhorado. Aoinvs do C:\> aparece um [[email protected] root]#, mas o funcionamento similar. Bastadigitar um comando, suas opes e apertar a ENTER que ele ser executado. O comandodeve estar no PATH, mensagens de aviso so mandadas para a tela e Ctrl+C interrompe ofuncionamento. Isso tudo igual em ambos.

    Mas o shell muito mais poderoso que seu primo distante. Alm dos comandos bsicospara navegar entre diretrios e manipular arquivos, ele tambm possui todas as estruturasde uma linguagem de programao, como IF, FOR, WHILE, variveis e funes. Com isso,tambm possvel usar o shell para fazer scripts e automatizar tarefas.

    Este ser o nosso foco: scripts em shell.

    2

    http://aurelio.net/cygwin/

  • Shell script

    Um script um arquivo que guarda vrios comandos e pode ser executado sempre quepreciso. Os comandos de um script so exatamente os mesmos que se digita no prompt, tudo shell.

    Por exemplo, se de tempos em tempos voc quer saber informaes do sistema comohorrio, ocupao do disco e os usurios que esto logados, preciso digitar trscomandos:

    [[email protected] root]# date [[email protected] root]# df [[email protected] root]# w

    melhor fazer um script chamado "sistema" e colocar estes comandos nele. O contedodo arquivo "sistema" seria o seguinte:

    #!/bin/bash date df w

    E para chamar este script, basta agora executar apenas um comando:

    [[email protected] root]# sistema

    Isso um shell script. Um arquivo de texto que contm comandos do sistema e pode serexecutado pelo usurio.

    Antes de comear

    Se voc est acessando o sistema como usurio administrador (root), saia e entre comoum usurio normal. muito perigoso estudar shell usando o superusurio, voc podedanificar o sistema com um comando errado.

    Se voc no tem certeza qual o seu usurio, use o comando "whoami" parasaber

    Como o prompt de usurio normal diferente para cada um, nos exemplos seguintes serusado "prompt$" para indicar o prompt da linha de comando.

    Introduo ao Shell Script - Aurlio Marinho Jargas

    3

  • O primeiro shell script

    O primeiro shell script a fazer ser o "sistema" do exemplo anterior, de simplesmente juntartrs comandos em um mesmo script.

    Passos para criar um shell script

    1. Escolher um nome para o script

    J temos um nome: sistema.

    Use apenas letras minsculas e evite acentos, smbolos e espao em branco

    2. Escolher o diretrio onde colocar o script

    Para que o script possa ser executado de qualquer parte do sistema, mova-o para umdiretrio que esteja no seu PATH. Para ver quais so estes diretrios, use o comando:

    echo $PATH

    Se no tiver permisso de mover para um diretrio do PATH, deixe-o dentro deseu diretrio pessoal ($HOME).

    3. Criar o arquivo e colocar nele os comandos

    Use o nano, VI ou outro editor de textos de sua preferncia para colocar todos oscomandos dentro do arquivo.

    4. Colocar a chamada do shell na primeira linha

    A primeira linha do script deve ser:

    #!/bin/bash

    Para que ao ser executado, o sistema saiba que o shell quem ir interpretar estescomandos.

    5. Tornar o script um arquivo executvel

    Use o seguinte comando para que seu script seja reconhecido pelo sistema como umcomando executvel:

    chmod +x sistema

    4

  • Problemas na execuo do script

    "Comando no encontrado"

    O shell no encontrou o seu script.

    Verifique se o comando que voc est chamando tem exatamente o mesmo nomedo seu script. Lembre-se que no Unix/Linux as letras maisculas e minsculas sodiferentes, ento o comando "SISTEMA" diferente do comando "sistema".

    Caso o nome esteja correto, verifique se ele est no PATH do sistema. O comando"echo $PATH" mostra quais so os diretrios conhecidos, mova seu script paradentro de um deles, ou chame-o passando o caminho completo.

    Se o script estiver no diretrio corrente, chame-o com um "./" na frente, assim:

    prompt$ ./sistema

    Caso contrrio, especifique o caminho completo desde o diretrio raiz:

    prompt$ /tmp/script