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

Slides:



Advertisements
Apresentações semelhantes
Manipulação de Arquivos de Dados
Advertisements

Usando o botões de comando, label e textbox
2008, Edgard Jamhour IPv6 Exercício de Tunelamento 6To4 Edgard Jamhour.
Exercícios de Roteamento BackBone IP
While While Condição // comandos End While. Exemplos While Var contador As Integer contador = 0 While (contador < 10) contador += 1 console.ConsoleWrite(contador)
Listas Encadeadas Circulares Listas Duplamente Encadeadas
Prof. José Fernando Rodrigues Júnior Pacotes Material original: Profa. Elaine Parros Machado de Sousa SCC Bancos de Dados e Suas Aplicações.
Ronaldo Celso Messias Correia
SISTEMA BINÁRIO Hardware de Computadores. SISTEMA BINÁRIO Hardware de Computadores.
Prof. Celso Gramática.
Grupo Paralelismo – Unesp RC
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
SQL Procedural Junho/2006.
SQL procedural – parte 2.
Funções de Linha 24/04/06. Funções de Linha Gerar ou construir novo valor não existente na tabela inicial. Valor construído a partir de dados de uma ou.
Vetores (2) Continuação.
Modularização de Código. Modularizar código Construção do algoritmo em um módulo único (Início...Fim/ Program... End) Único arquivo.
Trac é uma ferramenta open source e de interface web para controle de projetos de desenvolvimento de software. O objetivo do software é ajudar o desenvolvedor.
Sistemas Operacionais
Arquiteturas de 4, 3, 2, 1 e 0 endereços.
Utilização do montador Daedalus
1. Equivalência entre portas 2. Derivação de expressões booleanas 3
Algoritmos com laços (ou seja, com conjuntos de instruções que devem ser executados repetidas vezes)
Teste Estrutural de Software
Teste Funcional de Software
Servidores e Programação Web Redes de Computadores.
Profa. Graziela Santos de Araújo Algoritmos e Programação II, 2010
Banco de Dados I Profa. Jiani Cardoso 2/2005
O Fluxo de Testes © Alexandre Vasconcelos
Planejando seu site Objetivos Abordagem Sílvia Dota.
Página de entrada A página de entrada, ou a index, representa um convite para o seu site.
UD de Sorocaba/ Iperó UNIVERSIDADE ESTADUAL PAULISTA Recursos Computacionais Antonio Martins.
Campus de Sorocaba UNIVERSIDADE ESTADUAL PAULISTA Recursos Computacionais Antonio Martins.
Funções de um computador
CES-41 COMPILADORES Capítulo IV Complementos de Análise Léxica.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo III Comandos de Controle.
CES-41 COMPILADORES Aulas Práticas
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo XI Encadeamento de Estruturas por Ponteiros.
Capítulo IX – Ponteiros 9.1 – Introdução 9.2 – Relação entre ponteiros e variáveis indexadas 9.3 – Alocação dinâmica de memória 9.4 – Variáveis indexadas,
Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação.
Formação de Administradores de Redes Linux LPI – level 1 SENAC TI Fernando Costa.
Curso Técnico em Informática La Salle - Canoas
FUNDAÇÃO CARLOS CHAGAS
ALOCAÇÃO DINÂMICA DE MEMÓRIA
EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 1a série de slides versão 19/03/2012.
Sistemas Lineares Parte 2
Organização de Sistemas de Computadores
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Listas Lineares.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Comandos básicos do MS-DOS
Marco Antonio Montebello Júnior
Curso de Programação em C++ Universidade Federal do Ceará Departamento de Engenharia Estrutural e Construção Civil Prof: Evandro Parente Junior Monitor:
Baseado no documento do Prof. Ronaldo Martins da Costa
LINGUAGENS DE PROGRAMAÇÃO
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Sistemas de Informação Prof. Me. Everton C. Tetila Modelo de dados relacional Banco de Dados I.
Programação Concorrente com Thread Java
Gustavo Leitão Programação em Shell Script 4/1/2014 Processo Seletivo Simplificado – Professor Substituto Campus Natal Central Disciplina Programação para.
Stored Procedure, Function and Trigger
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
1 Seja o resultado de um experimento aleatório. Suponha que uma forma de onda é associada a cada resultado.A coleção de tais formas de ondas formam um.
Prof. André Leon S. Gradvohl, Dr.
Exercícios de revisão.
Shell Script Prof. Rafael Paoliello Guimarães FAESA.
Automatização de Serviços – P1 SHELL SCRIPT Charles J. Busarello - IFPR.
Programação em Shell Script
Transcrição da apresentação:

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

Conceitos Iniciais O que é Shell?? Simplicidade do 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

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

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;

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

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.

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

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

Conceitos Iniciais Posição de Argumentos $0 $1 $2 $3 $4 $5 $6 $9 cmd ... arg9 $0 $1 $2 $3 $4 $5 $6 $9

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

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

Conceitos Iniciais

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.

Exemplos de Redirector

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

Conceitos Iniciais

Conceitos Iniciais

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

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.

Comandos Iniciais Comandos de Impressão ECHO CAT Sintaxe: Opções: 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. cat [opções] [ ­ | file1 file2 ...] ­n : lista as linhas do arquivo numerando­as

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.

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),

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

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

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

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

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.

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.

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

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

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.

Comandos de Seleção

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.

Comandos de Seleção

Comandos de Seleção

Comandos de Seleção

Comandos de Transformação

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

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

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

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

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`

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

Códigos de Retorno true echo $? false 1

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

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

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

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

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

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

Comando IF Faça um exemplo que leia dois parâmetros e verifique se esses parâmetros são usuários válidos na máquina. As saídas possíveis são $1 e $2 São ambos válidos Somente $1 foi encontrado Somente $2 foi encontrado Nenhum dos dois foi encontrado

Comando IF Para saber se o conteúdo de uma variável é numérico ou não, poderíamos fazer: if expr $1 + 1 > /dev/null 2> /dev/null Resultado de expr e erro que irão para /dev/null then echo Eh um numero else echo Nao eh um numero fi Se o resultado de qualquer operação feita pelo expr resultar em zero, seu código de retorno será diferente de zero, então no exemplo acima, caso o conteúdo da variável fosse -1, o resultado do if seria inválido. Experimente fazer expr -1 + 1 ou expr 0 + 0 e em seguida teste o código de retorno.

Comando Test A essa altura dos acontecimentos você irá me perguntar: ora, se o comando if só testa o conteúdo da variável $?, o que fazer para testar condições? Para isso o Shell tem o comando test, que na sua forma geral obedece a seguinte sintaxe: test <expressão> Veja o exemplo a seguir

Comando Test Veja a execução..... $ cat pedi # # Testa a resposta a um pedido. Deve ser (S)im ou (N)ao resp=$1 if test $resp = N Saída do test é entrada do if then echo Ela nao deixa... else if test $resp = S Um if dentro do outro dificulta a legibilidade echo Oba, ela deixou!!! echo Acho que ela esta na duvida. fi Veja a execução.....

Comando Test $ pedi S Oba, ela deixou!!! $ pedi N Ela nao deixa... $ pedi A Acho que ela esta na duvida. $ pedi Xiii, esqueci de passar o parâmetro... pedi[6]: test: argument expected Ué, o que houve? pedi[10]: test: argument expected Ídem...

Operações Comparação Comparação

Operações Comparação

Exemplo #!/bin/bash if test $UID = 0 then adduser $1 echo $2 | passwd $1 --stdin echo echo "Usuário $1 adicionado com sucesso" else echo Pra criar usuários requer poderes de root. fi

Exemplo #Script pra testar esta condição: cat /tmp/testar #!/bin/bash mkdir /tmp/teste if [ $? -eq 0 ];then echo $? echo "comando executado com sucesso!" else echo "falha na execução do comando." exit fi

1- Exercício Faça um script que execute a seguinte função: executa o comando 'cd'. se NÃO CONSEGUIU executar 'mkdir'   cd algumdiretorio || mkdir algumdiretorio Retornar a configuração de Rede Endereço IP NetMask MAC Gateway

2 -Exercicio Recebe dois números como parâmetro e mostra a relação entre eles. Exemplo: prompt$ ./relacao.sh 3 5 3 é menor 5 Recebe um número como parâmetro e o diminui até chegar a zero, mostrando na tela cada passo, numa mesma linha. Exemplo: prompt$ ./zerador.sh 5 5 4 3 2 1 0 prompt$ ./zerador.sh 10 10 9 8 7 6 5 4 3 2 1 0

3 -Exercício Recebe duas palavras como parâmetro e checa se a primeira palavra está contida dentro da segunda. Só mostra mensagem informativa em caso de sucesso, do contrário não mostra nada. Exemplo: prompt$ ./substring.sh ana banana ana está contida em banana prompt$ ./substring.sh banana maria prompt$ ./substring.sh banana prompt$ ./substring.sh prompt$

4 - Exercício Do arquivo /etc/passwd, mostra todos os shells (último campo) que os usuários usam. Não mostrar linhas repetidas. Exemplo: prompt$ ./shells.sh /bin/bash /bin/false /bin/sync /sbin/halt /sbin/shutdown

5 -Exercício Mostra na tela todos os parâmetros recebidos na linha de comando, contando−os. Exemplo: prompt$ ./parametros.sh a b c d e f Parâmetro 1: a Parâmetro 2: b Parâmetro 3: c Parâmetro 4: d Parâmetro 5: e Parâmetro 6: f

While while [ condition ] do command1 command2 command3 .. .... done

While Exemplo while true Loop de leitura do read isto if [ ! "$isto" ] Se o campo estiver vazio... then exit else continue fi ... done

For for var in lista_de_palavras do done no corpo do loop, temos $var = a próxima palavra da lista done

For Exemplo for i in segunda terca quarta quinta sexta do echo os dias da semana sao $i done ./dias os dias da semana sao segunda os dias da semana sao terca os dias da semana sao quarta os dias da semana sao quinta os dias da semana sao sexta

Exemplo #!/bin/bash i=1 teste=`echo $1 | cut -c1` if [ "$teste" = / ] then echo dir1: / i=2 fi for x in `echo $1 | tr / '\012'` do echo "dir$i: $x" let i++ done

For O comando for é ótimo para ler um arquivo seqüencial. Veja o exemplo abaixo arquivo=`cat /etc/group` for i in $arquivo do echo $i echo --------- done

6 -Exercícios Faça o exemplo anterior apresentando apenas o nome do grupo Faça um script que informe que o root se logou na máquina Faça um script de um relógio

Case case $variable-name in pattern1) command ... .. command;; patternN) command *) command esac

Exemplo #! /bin/bash while true do clear cat <<! ------------------------------------------------------------------------------ | | | Menu de Usuario | | | | 1 - ls | | 2 - ps -f | | 3 - who | | 4 - exit | | Digite sua Opcao : | ! while tput cup 11 34 ; read opt [ "$opt" = "" ] do : done case $opt in 1) clear ls ;; 2) clear ps -f ;; 3) clear who ;; 4) clear echo Adios Amigo exit 0 ;; *) clear echo opcao invalida for x in 1 2 3 4 5 6 7 8 echo "\a\c" sleep 1 ;; esac echo Tecle Enter para continuar "\c" read

7 - Exercício O que faz o script abaixo? #!/bin/bash val=`expr ${1:-0} + ${2:-0} + ${3:-0}` echo $val Faça um script com as seguintes funções: Criar um usuário Nome do usuário (critica se existir) Nome do home do usuário Pede a senha do usuário

8 -Exercício Faça um script que monte um menu, como mostra abaixo Script de Administracao 1 – Ver processos ativos 2 – Mostra dos files systems da máquina 3 – Mostra a quanto tempo a máquina está no ar 4 – Usuários ativos na máquina 5 – Versão do kernel 6 – Lista de usuários da máquina 7 – Sair do sistema

Exercícios 3. O que faz o script abaixo? echo O primeiro argumento é: $1 echo O segundo argumento é: $2 echo O terceiro argumento é: $3 echo O quarto argumento é: $4 echo " n n n" shift echo "Shiftou... n" echo Agora o primeiro argumento é: $1 echo Agora o segundo argumento é: $2 echo Agora o terceiro argumento é: $3 echo Agora o quarto argumento é: $4

Exercícios echo "Entre com o arquivo a ser alterado: " read file echo "Texto a substituir: " read oldtext echo "Texto a colocar: " read newtext ed - $file <<! g/$oldtext/s//$newtext/g w q !

Exercícios echo "Escreva o nome do arquivo e a palavra a ser pesquisada:" read file word if grep $word $file > /dev/null then echo "A palavra $word existe no arquivo $file." fi

Exercícios DIA=$1 MES=$2 ANO=$3 DIA=`expr $DIA - 1` if [ $DIA -eq 0 ]; then MES=`expr $MES - 1` if [ $MES -eq 0 ]; then MES=12 ANO=`expr $ANO - 1` fi DIA=`cal $MES $ANO` DIA=`echo $DIA | awk '{ print $NF }'` echo $DIA $MES $ANO

Exercícios Crie um arquivo com o seguinte conteúdo(sitevistado) jamiesob mucus.slime.com tonsloye xboys.funnet.com.fr tonsloye sweet.dreams.com root sniffer.gov.au jamiesob marvin.ls.tc.hk jamiesob never.land.nz jamiesob guppy.pond.cqu.edu.au tonsloye www.sony.com janesk horseland.org.uk root www.nasa.gov tonsloye warez.under.gr tonsloye mucus.slime.com root ftp.ns.gov.au root linx.fare.com root crackz.city.bmr.au janesk smurf.city.gov.au

exercícios Sites proibidos(siteproibido) mucus.slime.com xboys.funnet.com.fr warez.under.gr crackz.city.bmr.au www.hotwarez.com.br

Exercícios #!/bin/bash # ARQUIVO: list # numLinha=1 while read linha do echo "$numLinha $linha" numLinha=`expr $numLinha + 1` done < $1

Exercícios A partir do script anterior, crie um arquivo chamado newarq2 com as linhas numeradas

Exercícios O que faz o script abaixo? Faça-o funcionar while read linha do usuario=`echo $linha | cut -d" " -f1` site=`echo $linha | cut -d" " -f2` if [ "$usuario" = "$1" ] then echo "$usuario visitou $site" fi done < netwatch

Exercícios O que faz esse script for verifUsuario in $* do while read linha while read verifSite usuario=`echo $linha | cut -d" " -f1` site=`echo $linha | cut -d" " -f2` if [ "$usuario" = "$verifUsuario" -a "$site" = "$verifSite" ] then echo "$usuario visitou o site proibido $site" fi done < netproib done < netwatch done

Exercícios Fazer um script que dê bom dia se for manhã, boa tarde, se for tarde ou boa noite de for noite Crie um script para informar que o root se logou na máquina. Crie um script para fazer ordenar 3 números Faça um script que avise quando o processamento da máquina ultrapassar 50%

Sinais e Traps Sinais são enviados para processos de várias formas Pelo kernel, quando um processo faz besteira Pelo usuário, usando o teclado (^C, ^\, encerrando a sessão) Usando o comando kill Ação normal: o processo morre Porém, um processo pode ignorar os sinais ... ... ou captura-los para fazer algo

Interrupções Os principais sinais de interrupção mascaráveis são: 1 = SIGHUP / HANGUP Sinal enviado ao processo pelo sistema operacional quando a shell ou sessão a partir da qual o script foi executado é finalizada. 2 = SIGINT / INTERRUPT Sinal enviado pelo sistema operacional ao processo em execução em uma sessão interativa, quando o usuário pressiona CTRL+C. 15 = SIGTERM / TERMINATE Sinal padrão enviado pelo comando kill para informar que o processo deve terminar.

Sinais e Traps 0 Fim do shell 1 Hangup 2 Interrupt (^C) 3 Quit(^\) 4 Illegal Instruction 5 Trace trap 6 IOT instruction 7 EMT instruction 8 Floating point exception(bug de programa) 9 Morte certa (kill -9) 10 Bus error(bug de programa) 11 Violação de segmentação(bug de programa) 12 Bad argument 13 Pipe write error 14 Alarm 15 Software termination signal (kill sem argumentos)

Exercícios O que faz o trap nesse exemplo? #!/bin/bash tempfile=/tmp/temp.$$ trap "rm -f $tempfile" 0 1 2 ls -la > $tempfile cp $tempfile /tmp/resultado for i in $* do echo $i done

Fernando Costa www.fernandocosta.com.br fernandocosta@gmail.com