Curso Gratuito de Shell Script

Preview:

Citation preview

Curso gratuito de Shell Script

Wanderlei Silva do Carmo<wander.silva@gmail.com>

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

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;

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;

Nosso FocoBash em GNU/LinuxBash em GNU/Linux

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

Breve Histórico

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.

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.

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...

Comandos mais usados

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”.

Leia e Escreva by 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.

Variáveis especiais

Variáveis especiais – Exemplo de Uso

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.

Operações Aritméticas com 'expr'

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

Operadores Relacionais

Operadores Relacionais

Operadores Lógicos

Operadores Lógicos (continuação)

Estrutura Condicional - IF

Exibir se Verdadeiro

Condição

Expressão

Exibir se Falso

Falso Verdadeiro

If,else,fi

If, elif, else, fi

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 ….

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.

Laço de Repetição - for

Laço de repetição - while

Laço de Repetição - until

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.

Blocos e Agrupamentos

Teste em Arquivos

Escapes Reconhecidos pelo echo

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

Formatadores de do domando date

Expansão de Variáveis

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;

Testando propriedades arquivos

Código de Retorno de Comandos

Código ANSI

Metacaracteres de Expressões Regulares

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!

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!

Obrigado!Obrigado!

Referências

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