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

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

Administração de Sistemas Operacionais

Apresentações semelhantes


Apresentação em tema: "Administração de Sistemas Operacionais"— Transcrição da apresentação:

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

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 Script shell Nome Shell Desenvolvido por Onde Comentá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 Joy University 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 Korn AT & 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 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 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 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 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 # primeiro0.sh clear echo “Os arquivos do diretório são:” ls –l|more #!/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

8 Script shell COMO ESCREVER SEU SCRIPT
Escolha um editor de textos e inicie sua execução Digitar script Salvar 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 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 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 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 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 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 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 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 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 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 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 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 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 “Final do script" exit 0 Para executar: ./posici joana paulo ana

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 Script shell - Teste de Condição
if condição then comandos else 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 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 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 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 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 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 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" echo "O arquivo não tem permissão de leitura" if [ -d "$var1" ]; then echo "$var1 é um diretório"

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 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 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 ] break Echo “** passou por aqui **” done exit 0

32 Script Movimentação Automática
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 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 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 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 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 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 Links Interessantes http://aurelio.net/shell/canivete.html


Carregar ppt "Administração de Sistemas Operacionais"

Apresentações semelhantes


Anúncios Google