apostila introducao-shell

Download Apostila introducao-shell

Post on 29-Jun-2015

799 views

Category:

Education

0 download

Embed Size (px)

TRANSCRIPT

  • 1. Introduo ao Shell Script Aurlio Marinho Jargashttp://aurelio.net

2. Introduo ao Shell Script - Aurlio Marinho Jargas ndiceSobre o curso.......................................................................................................................1Apresentao ........................................................................................................................2 O que o shell............................................................................................................2 Shell script...................................................................................................................3 Antes de comear........................................................................................................3O primeiro shell script.........................................................................................................4Passos para criar um shell script ................................................................................4 .Problemas na execuo do script...............................................................................5 .O primeiro shell script (melhorado)...................................................................................6 .Melhorar a sada na tela..............................................................................................6Interagir com o usurio................................................................................................6Melhorar o cdigo do script.........................................................................................7Rebobinando a fita...............................................................................................................8 Variveis......................................................................................................................8 Detalhes sobre os comandos......................................................................................8 O comando test.........................................................................................................10 Tarefa: script que testa arquivos...............................................................................11Conceitos mais avanados...............................................................................................12 Recebimento de opes e parmetros ......................................................................12 Expresses aritmticas ..............................................................................................12 If, for e while..............................................................................................................13Exerccios...........................................................................................................................15Mais informaes...............................................................................................................18Respostas dos exerccios.................................................................................................19 testa-arquivos............................................................................................................19 relacao.sh..................................................................................................................19 zerador.sh..................................................................................................................19 substring.sh...............................................................................................................20 juntatudo.sh...............................................................................................................20 users.sh.....................................................................................................................20 shells.sh.....................................................................................................................20 parametros.sh ............................................................................................................20i 3. Sobre o cursoNome Introduo a Shell ScriptsInstrutor Aurlio Marinho Jargas (http://aurelio.net)Objetivo Ensinar aos alunos todos os conceitos necessrios para poderem fazer sozinhos scripts simples em shell.Pr-Requisitos Noes bsicas de informtica e operao do sistema pela linha de comando. desejado, porm no obrigatrio, noes bsicas de programao.Pblico Alvo Desenvolvedores, administradores de sistemas, programadores e interessados em geral.Durao 8 horas1 4. ApresentaoO que o shellO 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: rootPassword:Last login: Fri Apr 16 01:57:28 on tty5[root@localhost 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 RGIDOPara os usurios do Windows, fcil pensar no shell como um MSDOS melhorado. Aoinvs do C:> aparece um [root@localhost 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 5. Introduo ao Shell Script - Aurlio Marinho JargasShell scriptUm 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:[root@localhost root]# date[root@localhost root]# df[root@localhost root]# w melhor fazer um script chamado "sistema" e colocar estes comandos nele. O contedodo arquivo "sistema" seria o seguinte:#!/bin/bashdatedfwE para chamar este script, basta agora executar apenas um comando:[root@localhost root]# sistemaIsso um shell script. Um arquivo de texto que contm comandos do sistema e pode serexecutado pelo usurio.Antes de comearSe 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" parasaberComo o prompt de usurio normal diferente para cada um, nos exemplos seguintes serusado "prompt$" para indicar o prompt da linha de comando. 3 6. O primeiro shell scriptO primeiro shell script a fazer ser o "sistema" do exemplo anterior, de simplesmente juntartrs comandos em um mesmo script.Passos para criar um shell script1. Escolher um nome para o scriptJ temos um nome: sistema. Use apenas letras minsculas e evite acentos, smbolos e espao em branco2. Escolher o diretrio onde colocar o scriptPara 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 de seu diretrio pessoal ($HOME).3. Criar o arquivo e colocar nele os comandosUse 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 linhaA primeira linha do script deve ser:#!/bin/bashPara que ao ser executado, o sistema saiba que o shell quem ir interpretar estescomandos.5. Tornar o script um arquivo executvelUse o seguinte comando para que seu script seja reconhecido pelo sistema como umcomando executvel:chmod +x sistema 4 7. Introduo ao Shell Script - Aurlio Marinho JargasProblemas 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$ ./sistemaCaso contrrio, especifique o caminho completo desde o diretrio raiz:prompt$ /tmp/scripts/sistema"Permisso Negada"O shell encontrou seu script, mas ele no executvel.Use o comando "chmod +x seu-script" para torn-lo um arquivo executvel."Erro de Sintaxe"O shell encontrou e executou seu script, porm ele tem erros.Um script s executado quando sua sintaxe est 100% correta. Verifique os seuscomandos, geralmente o erro algum IF ou aspas que foram abertos e no foramfechados. A prpria mensagem informa o nmero da linha onde o erro foiencontrado. 5 8. O primeiro shell script (melhorado)Nesse ponto, voc j sabe o bsico necess