1 / 91

Formação de Administradores de Redes Linux LPI – level 1

Formação de Administradores de Redes Linux LPI – level 1. SENAC TI Fernando Costa Shell Script e Exercícios. Conceitos Iniciais. O que é Shell?? . programa que conecta e interpreta os comandos . linguagem de programação completa ­ interpretada . possui variáveis;

matty
Download Presentation

Formação de Administradores de Redes Linux LPI – level 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Formação de Administradores de Redes LinuxLPI – level 1 SENAC TI Fernando Costa Shell Script e Exercícios

  2. Conceitos Iniciais • O que é Shell?? • . programa que conecta e interpreta os comandos • . linguagem de programação completa ­ interpretada • . possui variáveis; • . construções condicionais e interativas; • . ambiente adaptável ao usuário; • Simplicidade do Shell • . Pipeline • . Sistemas de arquivos • . Sistema operacional UNIX

  3. Conceitos Iniciais • Quando usar : • Interativamente • . Realizar uma operação simples, uma única vez • . Interagir com o comando

  4. Conceitos Iniciais • O Shell Script deverá ser utilizado sempre que for necessário realizar: • . um procedimento complexo usando muitas linhas de comando; • . um procedimento do qual todos os usuários poderão beneficiar­se; • . um comando simples usado inúmeras vezes; • . uma tarefa numa data planejada; • . integrar informações de vários sistemas existentes;

  5. Conceitos Iniciais • Produtividade • Linguagem interpretada ­ não compilada • Um programador médio pode duplicar ou triplicar sua produtividade com o uso do Shell • Comparação de Bruce Cox (pai do Objetive C) • shell 1 linha de código • linguagem orientada a objeto 10 linhas de código • linguagem C 100 linhas de código

  6. Conceitos Iniciais • Construção de um Shell Script: • Edite um arquivo -> vi meu­programa • Esse arquivo deve conter na primeira linha: • #! /bin/bash • # -> utilize para comentar uma linha • /bin/rm arquivo • É recomendável passar o ``caminho'' (path) dos comandos.

  7. Conceitos iniciais • Exemplo • vi startup • a • who am i • pwd • echo Meu diretório Home eh $HOME [ESC] • ZZ • $ chmod +x startup

  8. Conceitos Iniciais • vi myecho • a • echo $1 [ESC] • ZZ • chmod +x myecho • myecho LPI • LPI

  9. Conceitos Iniciais • Posição de Argumentos

  10. Conceitos Iniciais • Posição de Argumentos $# -> Número de argumentos $* -> Todos os argumentos $$ -> O PID do processo corrente

  11. Conceitos Iniciais • Exercício • Fazer um script que faça as seguintes tarefas • Listar os diretórios • Mostrar as partições ativas do sistema • Mostrar a memória disponível • Mostrar os processos ativos do usuário

  12. Conceitos Iniciais

  13. Exemplos de Redirector • Entrada padrão (stdin - standard input): onde o comando vai ler seus dados de entrada. • Saída padrão (stdout - standard output): onde o comando vai escrever seus dados de saída. • Saída de erro (stderr - standard error): onde o comando vai enviar mensagens de erro.

  14. Exemplos de Redirector

  15. Exemplos de Redirector • Saída em arquivo: a saída padrão (stdout) do comando é desviada para um arquivo usando o operador ">". Vejamos um exemplo: • ls > listagem.txt • Entrada de arquivo: a entrada padrão (stdin) pode ser obtida a partir de um arquivo usando o operador "<". Um exemplo: • rev < listagem.txt • Uso combinado: os dois operadores podem ser usados simultaneamente. • rev < listagem.txt > listrev.txt • Concatenação: a saída padrão pode ser concatenada a um arquivo existente usando-se o operador ">>", como mostra o exemplo: • ls /etc >> listagem.txt • Saída de erros: a saída de erros (stderr) pode ser redirecionada juntamente com a saída standard. Para isso basta usar o modificador "&1" em conjunção com "2>" ou "2>>". Vejamos um exemplo: ppgia:~> ls /xpto > teste.txt ls: /xpto: No such file or directory ppgia:~> ll /xpto 2> erro.txt ppgia:~> cat error.txt ls: /xpto: No such file or directory

  16. Conceitos Iniciais

  17. Conceitos Iniciais

  18. Conceitos Iniciais Filtros: STDOUT (tela) STDIN FILTRO (teclado) • grep -i “Arthur” capit1 STDERR (tela) Autor: Lowel Arthur Rei Arthur e os Cavaleiros da Távola • cat arquivo

  19. Conceitos Iniciais • Você pode pensar na maior parte dos comandos do Shell como filtros. • Cada comando também possui duas saídas: • saída-padrão --> stdout • saída-de-erro --> stderr • Cada comando filtra dados da entrada-padrão ou transforma-os de algum modo, passando-os à saída-padrão. Quaisquer erros encontrados são passados à saída-de-erro.

  20. Comandos Iniciais • Comandos de Impressão • ECHO • Escreve argumentos em stdout. • Sintaxe: • echo [opções] string • Opções: • ­n : não adiciona uma nova linha no stdout antes de imprimir a string, deixando o cursor na linha da mensagem escrita. • CAT • Concatena e imprime. O comando cat não altera dados, ele toma a stdin e a reproduz no stdout. Possui também a opção de varrer o arquivo mas não pára a cada tela do terminal. • Sintaxe: • cat [opções] [ ­ | file1 file2 ...] • Opções: • ­n : lista as linhas do arquivo numerando­as

  21. Comandos Iniciais • cat • Exemplos: • 1. cat capt1 capit2 > livro • livro irá conter capit1,2 • 2. cat capt3 >> livro • anexe capit3 no livro • 3. cat capit1 • lista capit1 no terminal • 4. cat ­n capit1 • lista capit1 numerando as linhas • 5. cat > arq1 • direciona o stdin para o terminal e stdout para arq1, assim tudo que for digitado será gravado no arq1. Para encerrar tecle CTRL D.

  22. Comandos Segurança • CHMOD • Para tornar o arquivo do Shell executável, é necessário alterar a permissão do arquivo. • Sintaxe: • chmod [quem] operação acesso arquivo • Opções: • quem: u(usuário), g(grupo), o(outros), a (todos) • operação: +(atribuir), ­(remover), = • acesso: r(read), w(write), x(execução),

  23. Comandos Segurança • Se a sua shell for executar o comando FTP você deverá alterar a • permissão do arquivo que contém o usuário e a senha para • somente o dono ler, gravar e executar. • Exemplos: • chmod u=rwx,go= arquivo • ls ­la • ­rwx­­­­­­ 1 lilliam supsof 110 Sep 25 16:33 arquivo

  24. Comandos de Leitura • READ • Sintaxe read var1 [var2...] • Usado em shell para ler texto de forma interativa • Usado com a opção \c por questão de formatação

  25. Comandos de Leitura • Exemplo • Cat getname • echo “Entre com se nome: \c” • Read SEUNOME • echo Olah, $SEUNOME

  26. Comandos de Leitura • Exemplo2 • echo first second third fourth • Read word1 word2 word3 word4 • echo $word4 $word3 $word2 $word1

  27. Comandos de Leitura • Exercícios • Faça um programa que mostra na tela seus argumentos. • Exemplo saída: • echoarg Meu Primeiro Programa • Meu Primeiro Programa • Ainda com base nesse programa suprima a última linha em branco.

  28. Resumo • cat : concatena diversos arquivos na saída padrão. • tac : idem, mas inverte a ordem das linhas. • more : permite a paginação do fluxo de dados. • tr : troca de caracteres entre dois conjuntos. • head : seleciona as "n" linhas iniciais do fluxo de dados.

  29. Resumo • tail : seleciona as "n" linhas finais do fluxo de dados. • wc : conta o número de linhas, palavras e bytes do fluxo. • sort : ordena as linhas segundo critérios ajustáveis. • uniq : remove linhas repetidas, deixando uma só linha. • sed : para operações complexas de strings (trocas, etc).

  30. Resumo • grep : seleciona linhas contendo uma determinada expressão. • cut : seleciona colunas do fluxo de entrada. • rev : reverte a ordem dos caracteres de cada linha do fluxo de entrada. • tee : duplica o fluxo de entrada (para um arquivo e para a saída standard).

  31. Exercícios 1. Determine quanto arquivos normais (não diretórios nem links) existem em /usr. 2 . Qual a sequência de comandos para se obter uma listagem dos usuários da máquina. As informações podem ser obtidas no arquivo /etc/passwd.

  32. Comandos de Seleção

  33. Comandos de Seleção • SED • Edita e altera dados. • Sintaxe: sed [opções] stdin > stdout • Opções: • -e “script” : edita e altera dados Onde script pode ser: “s/string antiga/string nova/g” “/string pertencente à linha a ser deletada/d” “s/string a ser deletada//g” • -f arquivo : contém os scripts que devem ser executados. Não coloca-los entre aspas duplas.

  34. Comandos de Seleção

  35. Comandos de Seleção

  36. Comandos de Seleção

  37. Comandos de Transformação

  38. Comandos de Seleção • Exercícios • Leia o arquivo /etc/passwd e crie um novo arquivo chamado /home/senacti/usuarios ordenado pelo nome do usuário

  39. Outros Comandos • Cd - altera o diretório corrente • ls - lista o conteúdo do diretório • pwd - mostra qual é o diretório corrente • mkdir - cria diretório • rmdir - deleta diretório • cp - copia arquivo • mv - renomeia arquivo • rm - deleta arquivo

  40. Comandos Exemplos: ls -la cat arquivo mv arqvelho arqnovo pwd mkdir meudir

  41. Substituição de Comandos • Você pode capturar a saída de um comando colocando-o entre (`)-crase • Exemplo • CURDIR=`pwd` ou CURDIR=$(pwd) • echo $CURDIR

  42. Comando expr • Os argumentos são usados como elementos • A expressão é avaliada • O resultado é escrito na saída padrão • Exemplo • Expr 17 + 61 • 78 • Use expr para criar um contador • index=`expr + $index + 1`

  43. Códigos de Retorno • Exemplo • grep root /etc/passwd • echo $? • 0 • grep john /etc/passwd • echo $? • 1 • echo $? • 0

  44. Códigos de Retorno • true • echo $? • 0 • false • echo $? • 1 • echo $? • 0

  45. Comando IF if cmd then cmda cmdb .... fi if cmd then cmda cmdb else cmdx fi

  46. Comando IF if grep $1 /etc/passwd > /dev/null then echo $1 Encontrado exit 0 else echo $1 Não encontrado exit 1 fi

  47. Comando IF • Execução • Finder root • Root Encontrado • Echo $? • 0 • Finder Fernando • Fernando Não Encontrado • Echo $? • 1

  48. Comando IF • Vamos escrever um script que nos diga se uma determinada pessoa, que será passada por parâmetro, fez login no seu computador: • $ cat talogado • # • # Verifica se determinado usuario esta "logado" • # • if who | grep $1 • then • echo $1 esta logado • else • echo $1 nao esta logado • fi

  49. Comando IF • Repare que a execução do talogado gerou uma linha correspondente à saída do who, que não traz proveito algum para o programa; diria até que o ideal seria que ela não aparecesse. Para tal, existe um buraco negro do UNIX que todas as coisas que lá são colocadas desaparecem sem deixar vestígio. Este buraco negro, chamado /dev/null, é um arquivo especial do sistema, do tipo device, no qual todos estão aptos a gravar ou ler (neste último caso, ganhando imediatamente um EOF).

  50. Comando IF • $ cat talogado • # • # Verifica se determinado usuario esta "logado" - versao 2 • # • if who | grep $1 > /dev/null Incluí /dev/null redirecionando a saída do who • then • echo $1 esta logado • else • echo $1 nao esta logado • fi • $ talogado alex • alex esta logado Não apareceu a linha indesejada

More Related