A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Gestão de Redes Corporativas: Tecnologias e Segurança Administração de Sistemas Operacionais Programação Shell Vera Schuhmacher –

Apresentações semelhantes


Apresentação em tema: "1 Gestão de Redes Corporativas: Tecnologias e Segurança Administração de Sistemas Operacionais Programação Shell Vera Schuhmacher –"— Transcrição da apresentação:

1 1 Gestão de Redes Corporativas: Tecnologias e Segurança Administração de Sistemas Operacionais Programação Shell Vera Schuhmacher –

2 2 Script shell O programa shell interpreta os comandos que você digita e os traduz para comandos que o kernel compreende. o shell é uma linguagem de programação completa, possuindo variáveis, construções condicionais, interativas e ambiente adaptável ao usuário. Os comandos do Shell se comunicam entre si por meio de uma interface simples e coerente chamada pipeline. O Shell permite que o usuário realize suas atividades sem afetar qualquer outro processo que não lhe pertence. Quando um usuário conecta-se a um sistema Unix, o sistema operacional inicia automaticamente uma cópia do Shell, sob a qual o usuário poderá realizar qualquer função disponível.

3 3 Script shell Nome ShellDesenvolvido porOndeComentários BASH ( Bourne- Again SHell ) Brian Fox and Chet Ramey Free Software Foundation Shell mais utilizado nas versões linux, é o shell padrão do Unix. Prompt $ CSH (C SHell)Bill JoyUniversity of California (For BSD) Sintaxe similar a linguagem C. Traz vantagens adicionais ao Bourne shell como reutilizar e visualizar comandos previamente digitados. Prompt % KSH (Korn SHell)David KornAT & T Bell Labs-- TCSH ---TCSH é compativel com UNIX C shell (CSH Para verificar shell disponível em sua máquina : $ cat /etc/shells Para verificar o shell ativo $ echo $SHELL

4 4 Script shell Quando Utilizar ? – procedimentos complexos usando muitas linhas de comando – procedimento do qual todos os usuários poderão beneficiar-se – uma tarefa numa data planejada – integrar informações de vários sistemas existentes

5 5 Script shell - Shell como linguagem escrevendo programas em Shell 1) digitando os comandos e executando-os interativamente – o prompt normal $ troca para > quando se inicia a digitar comandos na Shell – a seguir o programa é executado 2) armazenando os comandos em um arquivo e invocando da mesma forma que um programa – usando um editor de textos comum

6 6 Script shell Exemplo de programa interativo – determinar todos os arquivos que contém o string POSIX $ for arquivo in * > do > if grep -l POSIX $arquivo > then > more $arquivo > fi > done arquivo é uma variável e $arquivo seu conteúdo grep e more são comandos grep: pesquisa em um ou mais arquivos por linhas que casam com uma expressão regular dada ( -l: listar) more: mostra o conteúdo do arquivo, uma tela de cada vez

7 7 Script shell Exemplo de shell script -> arquivo chamado primeiro.sh ->.sh sem significado -> # indica comentário -> /bin/sh =shell default -> exit 0 código de retorno, 0 indica sucesso #!/bin/sh # primeiro.sh # compilar apenas os arqs. # contendo string POSIX for file in * do if grep -l POSIX $file then more $file fi done exit 0 #!/bin/sh # primeiro0.sh clear echo Os arquivos do diretório são: ls –l|more

8 8 Script shell COMO ESCREVER SEU SCRIPT 1.Escolha um editor de textos e inicie sua execução 2.Digitar script 3.Salvar 4.Acertar permissões de execução para o dono: chmod u+x nome_script Para executar se o PATH for conhecido apenas digite o nome do script, se não é possível fazê-lo de diferentes maneiras bash nome_script sh nome_script./nome_script

9 9 Script shell Escreva o seguinte script, salve e execute. Nome do script: espteste # Script para imprimir informações sobre o usuário logado clear echo Ola $USER" echo Hoje é \c ";date echo O numero de usuarios ativos e: \c" ; who | wc -l echo "Calendario" cal 2005 exit 0

10 10 Script shell - Caracteres especiais Aspas duplas - string – mostra o string e substitui variáveis (se existir) Aspas simples ´ - string – mostra o string e não substitui variáveis (se existir) Crase ` - comando – o resultado do comando é usado em output Barra Invertida \ Transforma caracter especial em caracter normal # – permite a inserção de comentários no script # testando variaveis set dia = 19 echo Hoje é dia $dia resultado = Hoje é dia $dia set maquina = `hostname` echo $resultado $maquina

11 11 Script shell - Variáveis Variáveis de ambiente - são variáveis pré- definidas – Todas as variáveis de ambiente são definidas no início da Sessão do Usuário Variáveis de ambiente comuns a todos os usuários são encontrados no arquivo /etc/profile Variáveis de ambiente de usuário são encontrados no arquivo ~HOME/.profile Primeiro é lido o arquivo /etc/profile e depois o arquivo ~HOME/.profile Digite set para verificar as variáveis de ambiente exemplos: HOME, PATH, $#, $$

12 12 Script shell - Manipulando Variáveis Variáveis locais – atuam somente durante a execução do Shell Atribuição de valor : Para verificar as variáveis locais digite set nome=joao idade=16 meudir=`ls –l` set

13 13 Script shell - Manipulando Variáveis Um detalhe importante: NÃO PODE EXISTIR ESPAÇOS ENTRE OS ELEMENTOS DA DECLARAÇÃO/ATRIBUIÇÃO Quando a string atribuída a variável possuir espaços, é necessário a utilização de aspas duplas no início e no final da string. As variáveis são case-sensitive, isto é, existe diferenças entre maiúsculas e minúsculas. nome=joao idade=16 meudir=`ls –l` A=5 a=5

14 14 Script shell - Manipulando Variáveis Variáveis globais – permanecem ativas durante toda a sessão de login Atribuição de valor : export nome (torna a variável global) Para verificar as variáveis globais digite o comando env|more Para apagar uma variável digite unset unset nome TERM=VT100 export TERM nome=joao export nome

15 15 Script shell - Manipulando Variáveis Realizando Cálculos Através do prompt do Shell podemos realizar onde $(( )) é a função de cálculo $A porque estamos solicitando o conteúdo da variável A e B A=5 B=3 SOMA=$(($A+$B))

16 16 Script shell - Manipulando Variáveis Definir uma variável J com o valor 5 e mostrar na tela Definir uma variavel SALA cujo conteúdo deve ser Laboratorio D e a seguir mostrar na tela Apagar as variáveis J e SALA criadas anteriormente

17 17 Script shell - Manipulando Variáveis read -> captura de variável no teclado, termina ao pressionarmos o return echo -> impressão no vídeo read nome read idade echo bom dia $nome voce tem apenas $idade anos? Faça um script e grave-o no arquivo esp01. O Script deve solicitar as seguintes informações: Digite Primeiro Nro: Digite Segundo Nro: Após a entrada de dados imprima no vídeo a seguinte frase: O Usuario XXX digitou os numeros XX e XX A soma dos números foi XXX

18 18 Script shell - Echo - Opções -n Do not output the trailing new line. -e Enable interpretation of the following backslash escaped characters in the strings: \a alert (bell) \b backspace \c suppress trailing new line \n new line \r carriage return \t horizontal tab echo -e "Amanhã vou pescar \a\t\t com meu amigo\n"

19 19 Script shell – Parâmetros posicionais Variáveis adicionais são criadas quando a shell é invocada com parâmetros $# -> quantidade de parâmetros passados $1, $2,... parâmetros dados ao script $* -> lista de todos os parâmetros $0 -> nome do programa $* -> todos os argumentos $$ -> número do PID

20 20 Script shell Nome:posici inicio=Ola" echo $inicio echo O programa $0 iesta rodando agora" echo O segundo parametro foi $2" echo " O primeiro parametro foi $1" echo A lista de parametros é $*" echo O diretorio home da conta $USER e $HOME" echo Por favor entre com uma nova saudação inicial" read inicio echo $inicio echo Final do script" exit 0 Para executar:./posici joana paulo ana

21 21 Script shell - Teste de Condição Comando de teste com duas sintaxes: [ ] ou test As condições de teste podem ser feitas em 3 categorias: Comparação de strings, aritmética e de arquivos

22 22 Script shell - Teste de Condição if condição then comandos else comandos fi echo Por favor estamos no periodo mautino? read hora if [ $hora = sim" ]; then echo Bom dia" else echo Boa noite" fi exit 0

23 23 Script shell - Teste de Condição Comparação de strings Verdadeiro se: string1 = string2 São iguais string1 != string2 Não são iguais -n string String não é nulo -z string String é null (vazio)

24 24 Script shell - Comparação alfanuméricos #!/bin/bash varx="Bom dia" read dia if [ $dia = $varx = dia ]; then echo "A comparação de String é verdadeira" else echo "A Comparação de Striong é falsa" fi

25 25 Script shell - Teste de Condição Comparação Aritmética Verdadeiro se: expr1 -eq expr2 São iguais expr1 -ne expr2 Não são iguais expr1 -gt expr2 expr1 > expr2 expr1 -ge expr2 expr1 >= expr2 expr1 -lt expr2 expr1 < expr2 expr1 -le expr2 expr1 <= expr2 ! expr Not expr

26 26 Script shell - NUMÉRICOS #!/bin/bash echo -n "digite o valor do número: " read var1 if [ $var1 -eq 1 ] then echo "Vc escolheu o Valor um" elif [ $var1 -eq 2 ]; then echo "Vc escolheu o valor dois" elif [ $var1 -eq 3 ]; then echo "Vc escolheu o valor três" else echo "Vc escolheu uma opção inválida" fi

27 27 Script shell - Teste de Condição Comparação entre Arquivos Verdadeiro se: -d fileÉ diretório -s file Tamanho não é zero -e file Existe -f file É arquivo regular -w file Pode ser escrito -x file É executável -r file É legível

28 28 Script shell - ARQUIVOS #!/bin/bash echo -n "digite o nome do arquivo: " read var1 if [ -f "$var1" ] then echo "$var1 é um arquivo normal" if [ ! -s "$var1" ]; then echo "Este arquivo está vazio" else echo "Este arquivo não está vazio" fi if [ -r "$var1" ]; then echo "O arquivo tem permissão de leitura" else echo "O arquivo não tem permissão de leitura" fi else if [ -d "$var1" ]; then echo "$var1 é um diretório" fi

29 29 Script shell - Teste de Condição Retome o script esp01, verifique o valor do primeiro número, se este for maior do que o segundo multiplique-os e apresente o resultado. Se for inferior ao segundo número subtraia o primeiro do segundo e apresente o resultado.

30 30 Script shell - Laços for variavel in valores do comandos done for i in do echo passou $i done exit 0 for i in $(ls –l) do echo ** arquivo $i ** more $i read oi done exit 0

31 31 Script shell – Controle Incondicional O comando "break" para incondicionalmente a execução de qualquer ramo, e prossegue a Execução na instrução seguinte ao "done", "fi" ou "esac". Se não existirem instruções após este o programa termina. O comando "continue" faz com que o programa reinicie imediatamente um novo ciclo, ignorando o que resta dos comandos entre o "do" e o "done". c=0 for file in * do If grep -l POSIX $file then more $file continue fi c=$(($c+1) if [ $c –eq 5 ] then break fi Echo ** passou por aqui ** done exit 0

32 32 Script shell - Laços Utilizando-se do laço for, escreva um script (esp02) onde: O usuário irá informar o nome do diretório do qual deseja mover os arquivos e e o nome do diretório destino. Mover apenas arquivos simples, não mover diretórios. A cada movimento de arquivo mostre o nome do arquivo copiado. Ao finalizar informe o total de arquivos movidos Script Movimentação Automática Digite nome do diretório a ser copiado: Digite nome do diretório destino:

33 33 Script shell - Laços while condição do comandos done foo=1 while [ "$foo" -le 20 ] do echo passou pelo laço $foo" foo=$(($foo+1)) done exit 0

34 34 Script shell - Laços until condição do comandos done #!/bin/sh until who | grep "$1" > /dev/null do sleep 60 done # Agora toca o sinal e anuncia a entrada do #usuario echo -e \\a echo "*** $1acaba de se logar no sistema ***" exit 0 O script fica em loop até que o usuário informado em $1 se logue no sistema

35 35 Script shell - case variavel in pattern [ | pattern]...) comandos;; esac #!/bin/sh echo Digite o codigo do curso, 1- direito, 2- letras, 3- medicina read curso case $curso in 1) echo seu credito custa R$ 30,00";; 2 ) echo seu credito custa R$ 20,00";; 3 ) seu credito custa R$ 50,00";; * ) echo Resposta incorreta";; esac exit 0

36 36 Script shell - case Escreva um script utilizando-se do case onde seja possível ao usuário utilizar o menu abaixo: ** menu de opções ** 01 – criar diretorio 02 – copiar arquivo 03 – mostra usuários ativos 04 – lista diretório 05 - remove diretório 00 - fim opção:** -Na opção 1 solicite o nome do diretorio -Na opção 2 solicite nome do arquivo de origem e destino -Na opção 4 e 5 solicite o nome do diretorio -Mantenha o menu em loop até a digitação 00 para finalizar

37 37 Script shell - Funções nome _da_função () { Comandos } #!/bin/sh foo() { echo a função foo esta executando" } echo inicio do script" foo echo "script finalizado"

38 38 Links Interessantes shell/shell.htmhttp://www.moredata.pt/whitepapers/manual-prog- shell/shell.htm


Carregar ppt "1 Gestão de Redes Corporativas: Tecnologias e Segurança Administração de Sistemas Operacionais Programação Shell Vera Schuhmacher –"

Apresentações semelhantes


Anúncios Google