49
Curso gratuito de Shell Script Wanderlei Silva do Carmo <[email protected]> Do básico ao intermediário Do básico ao intermediário

Curso Gratuito de Shell Script

Embed Size (px)

Citation preview

Page 1: Curso Gratuito de Shell Script

Curso gratuito de Shell Script

Wanderlei Silva do Carmo<[email protected]>

Do básico ao intermediárioDo básico ao intermediário

Page 2: Curso Gratuito de Shell Script

Apresentação

● Meu nome é Wanderlei Silva do Carmo;● Nascido no Rio de Janeiro em 1965;● Residente em Vitória, ES;● Graduado em Análise e Desenvolvimento de Sistemas pela Universidade Estácio de Sá – Rio de

Janeiro;● Especialista em GNU/Linux;● Pós-Graduando MBA Engenharia e Arquitetura de Softwares e Gestão e Docência do Ensino

Superior;● Profissional Linux desde 1994; ● Atuando em centros de treinamentos LPI-C1 e LPI-C2;● Desenvolvedor de soluções de conectividade e segurança em ambientes operacionais híbridos;● Instrutor nas áreas de lógica de programação, linguagens de progrmação C,C++,PHP,Java e

Python;● Em constante aprendizado em novas linguagens orientadas à objetos e funcionais;● Fã das ferramentas Google;● Satisfação em compartilhar conhecimento;

Page 3: Curso Gratuito de Shell Script

Motivação

● Compartilhar conhecimento com profissionais iniciantes ou todo aquele que quer saber um pouco mais deste maravilhoso mundo de desenvolvimento para ambientes Unix...;

● Eu sei que existem muitos cursos em vídeo aulas muito bons e aconselho a segui-los, pois você poderá acrescentar muito em sua experiência, sou mais um para ajudá-los;

● O mercado para este profissional é amplo, embora não pareça;

● GNU/Linux está presente na maioria das empresas que precisam de um firewall, servidor de arquivos, servidor web, etc... Todos ele precisam de profissionais com conhecimentos em Shell Script.

● E satisfação em poder ajudar; isso é próprio da grande família de desenvolvedores de software livre;

Page 4: Curso Gratuito de Shell Script

Nosso FocoBash em GNU/LinuxBash em GNU/Linux

Page 5: Curso Gratuito de Shell Script

Agenda

Breve históricoRequisitos mínimosComandos mais usadosLeia e Escreva by Shell ScriptVariáveis – conceito e exemplosVariáveis especiaisVariáveis especiais – Exemplo de UsoOperadores e operações aritméticasOperaçoes aritméticas com 'expr'Operadores relacionaisOperadores lógicosEstrutura condicional if,else,fiEstrutura condicional if,elif,else,fiInstrução select

Estrutura case,esacLaço de repetição – forLaço de repetição – whileLaço de repetição – untilRedirecionadores de entrada e saídaBlocos e argumentosTeste em arquivosEscapes reconhecidos pelo comando 'echo'Expansão de variáveisUsando formatadores para 'printf'Código de retorno de comandosMetacaracteres de expressões regularesNotas de gradecimento ferramentas usados nesta obraReferências

Page 6: Curso Gratuito de Shell Script

Breve Histórico

Page 7: Curso Gratuito de Shell Script

Breve HistóricoA linguagem Shell Script é a linha de comando Linux (Unix),comandos armazenados em um arquivo texto que são executados sequencialmente. Esta linguagem interpreta a linha de comandos digitados pelo usuário no terminal e chama os programas desejados. Além de executar comandos do sistema, o Shell também tem seus próprios comandos, e tambémpossui variáveis e funções. Existem diversos tipos de shell: bash, csh, ksh, ash,etc. O mais utilizado atualmente é o bash (GNU Bourne-Again SHell). A primeira linha de todo Shell script deve começar com algo do tipo: #!/bin/bash, a qual indica com qual Shell deverá ser executado o script.

Shell Script é uma linguagem Interpretada e Imperativo.

Tendo as características de uma linguagem de programação, o Shell é uma ferramenta muito poderosa para desenvolver Scripts e programinhas rápidos, para automatizar tarefas do dia-a-dia. Podemos escrever programas elaborados em Shell Script, substituindo aplicativos que, em uma linguagem mais elaborada demorariam muito mais tempo para ser escritos . Seus scripts podem possuir interfaces simples de modo texto , ou possuir interface gráfica elaborada escrita usando o kommander e funções do kdialog. Para quem está acostumado com o MSDOS, o Shell é como um Batch (dos arquivos .BAT).Além de servir para fazer pequenos scripts o Shell é completo o suficiente para fazer grandes programas.

Page 8: Curso Gratuito de Shell Script

Breve Histórico (continuação)

Entre as características do Shell é que nele pode ser feito Interfaces Interativas com o usuário, programas de cálculos, CGI, instaladores de software,manipulação de banco de dados, rotinas de backup etc . Uma das vantagens dos Shell Scripts é que eles não precisam ser compilados, para dar a um arquivo uma definição de "Shell script" temos que incluir uma linha no começo do arquivo (#!/bin/bash) e torná-lo "executável", utilizando o comando chmod.

Page 9: Curso Gratuito de Shell Script

Requisitos Mínimos

● Qualquer distribuição Unix Like Linux: Ubuntu, Fedora, Gentoo, Mandriva, Debian, Mint. FreeBSD ou MacOS (comercial), Cygwin – uma implementação dos comandos do Linux para Windows;

● Conhecer pelo menos os comandos básicos em GNU/Linux;

● Um editor de texto de sua escolha: vi, nano, pico, gedit, kedit, genie, kate,... e por aí vai, a lista é grande... ;

● Ter força de vontade para querer aprender mais;

● Estudar, estudar, praticar, praticar, praticar, ….., estudar... estudar...

Page 10: Curso Gratuito de Shell Script

Comandos mais usados

Page 11: Curso Gratuito de Shell Script

Leia e Escreva by Shell ScriptPara ler e escrever usamos a dobradinha dos comandos:echo e read

Ex.:

echo “Qual o seu nome?”read NOME

echo “Seu nome é: $NOME”

Como vimos acima, para ler algo do teclado ou outro <stdin> ou (entrada padrão) usamos o comando “read”. Para exibir no monitor ou <stdout> ( saida padrao) usamos o comando “echo”.

O “read” lê o que foi escrito pelo teclado e armazena em uma variável. Para que o echo leia o conteúdo que foi armazenado na variável deve-se usar o sinal “$” no inicio do nome da variável. Ou seja, a variável NOME foi criada com o comando read e lida $NOME com o comando “echo”.

Page 12: Curso Gratuito de Shell Script

Leia e Escreva by Shell Script

Page 13: Curso Gratuito de Shell Script

Variáveis

● Variável é um nome dado a um determinado local da memória onde são armazenados dados.

● Em Shell Script, uma variável pode ser declarada e atribuído valor à ela simultâneamente, simplesmente assim:

– NOME=”Wanderlei”

– IDADE=23

● Para lermos o conteúdo de uma variável devemos acrescentar um “$” no inicio do nome da variável ou na forma ${var}, dependendo doe seu estilo de programação o do contexto atual.

● O nome da variável deve ser preferivelmente (mas não obrigatório) ser escrita em maiúsculas para que não se confunda ou entre em conflito com nome dos comandos do sistema.

Page 14: Curso Gratuito de Shell Script

Variáveis especiais

Page 15: Curso Gratuito de Shell Script

Variáveis especiais – Exemplo de Uso

Page 16: Curso Gratuito de Shell Script
Page 17: Curso Gratuito de Shell Script
Page 18: Curso Gratuito de Shell Script

Operações Aritiméticas

● Os operadores aritméticos em Shell Script são:

– Somar => +;

– Subtrair => -;

– Multiplicar => *;

– Dividir => /;

– Módulo ou resto da divisão => %;

– Exponenciação => ** ;

● Exemplos de uma operações aritiméticas.

Page 19: Curso Gratuito de Shell Script

Operações Aritméticas com 'expr'

Para operações aritméticas pode ser usado também o comando `expr`:

Page 20: Curso Gratuito de Shell Script

Operadores Relacionais

Page 21: Curso Gratuito de Shell Script

Operadores Relacionais

Page 22: Curso Gratuito de Shell Script

Operadores Lógicos

Page 23: Curso Gratuito de Shell Script

Operadores Lógicos (continuação)

Page 24: Curso Gratuito de Shell Script

Estrutura Condicional - IF

Exibir se Verdadeiro

Condição

Expressão

Exibir se Falso

Falso Verdadeiro

Page 25: Curso Gratuito de Shell Script

If,else,fi

Page 26: Curso Gratuito de Shell Script

If, elif, else, fi

Page 27: Curso Gratuito de Shell Script
Page 28: Curso Gratuito de Shell Script

Instrução selectA instrução 'select' itera sob uma lista de opções e ao escolher o número referente a opção esta será executada...

Funciona de forma análoga ao for in ….

Page 29: Curso Gratuito de Shell Script

case, esac

A estrutura case é utilizada quando precisamos escolher uma opção dentre várias disponíveis. É muito parecida com if, elif, eles, fi mas tem vantagens adicionais que melhoram a visibilidade e entendimento do código.

As opções poderiam ser comandos de sistema a serem executados de acordo com a opção escolhida.

Page 30: Curso Gratuito de Shell Script

Laço de Repetição - for

Page 31: Curso Gratuito de Shell Script

Laço de repetição - while

Page 32: Curso Gratuito de Shell Script

Laço de Repetição - until

Page 33: Curso Gratuito de Shell Script

Redirecionamento de entrada e saída

Os direcionadores de entrada e saída podem redirecionar entradas e saidas para um canal específica que pode ser um arquivo, /dev/null ou um dispositivo qualquer...

Muito útil quando não se quer que o usuário não veja as mensagens de erro por exemplo, ou envar todas as mensagens produzidas pelos comandos para um arquivo de log.

No futuro faremos alguns exercícios para praticarmos estes direcionadores.

Page 34: Curso Gratuito de Shell Script

Blocos e Agrupamentos

Page 35: Curso Gratuito de Shell Script

Teste em Arquivos

Page 36: Curso Gratuito de Shell Script
Page 37: Curso Gratuito de Shell Script

Escapes Reconhecidos pelo echo

Para usar as sequências de escape use o parâmetro '-e'.

Page 38: Curso Gratuito de Shell Script

Formatadores de do domando date

Page 39: Curso Gratuito de Shell Script

Expansão de Variáveis

Page 40: Curso Gratuito de Shell Script

Usando formatadores para printf

printf “O número %d em hexa é %x” 12 12 printf “Peso: %f 15,8 printf “Peso: %3.2f' 15,8 #formatado com 3 numeros inteiros e 2 casas decimais.printf “Peso: %3.2f\n' 15,8 #formatado com 3 numeros pulando uma linha;

Page 41: Curso Gratuito de Shell Script

Testando propriedades arquivos

Page 42: Curso Gratuito de Shell Script
Page 43: Curso Gratuito de Shell Script

Código de Retorno de Comandos

Page 44: Curso Gratuito de Shell Script

Código ANSI

Page 45: Curso Gratuito de Shell Script

Metacaracteres de Expressões Regulares

Page 46: Curso Gratuito de Shell Script

Muito mais conteúdo nas referências ao final da página.

Tentei cobrir nestes slides o princípio básico...

A partir de agora faremos video aulas totalmente práticas e aumentando o nível de complexidade progressivamente.

http://youtube.com/w3ae

Espero que gostem!

Page 47: Curso Gratuito de Shell Script

Estes slides foram produzidos usando a suíte de aplicativos LibreOffice instalado em um computador com GNU/Linux Ubuntu 14.10, com interface gráfica Cinnamon.

Algumas imagens utilizadas foram baixadas de sites públicos e se algum autor se sentir ofendido ou de alguma maneira não permitir seu uso nestes slides, por gentileza me comunique que os substituirei assim que for solicitado por e-mail.

Obrigado a grande comunidade de desenvolvedores que não poupam esforços para a divulgação de ferramentas de software livre em todos os níveis...

Grande abraço à todos!

Page 48: Curso Gratuito de Shell Script

Obrigado!Obrigado!

Page 49: Curso Gratuito de Shell Script

Referências

https://fit.faccat.br/~jonis/shellscript.pdfhttp://aurelio.net/shell/canivete/