Shell Script. Rafael Silva Guimarães

Documentos relacionados
Programação Aplicada a Redes de Computadores. Faculdade IESGO 2º Sem 2016

Programação de Scripts Considerações Gerais. Adaptado do material do Prof. Mário Fiocco Júnior

Conceitos Básicos de Scripts

Introdução a shell scripts

Introdução a Sistemas Abertos. Shell Script

Administração de Redes de Computadores

Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Scripts Shell. João Medeiros 1 / 20

Aula 5 e 6: Introdução ao shell

Aula 9: Shell Script

Introdução ao Shell Script

Shell Script. Básico do básico

105 Shell Script. João Bosco Teixeira Junior

Estácio-FIC Graduação em Redes de Computadores

Introdução a. Shell Script. Clésio Matos

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCENS UFES Departamento de Computação. Shell Script

FACULDADE DE TECNOLOGIA SENAC PELOTAS. Trabalho de Shellscript Atividade 5 Introdução a Informática

ADMINISTRAÇÃO DE REDES I LINUX. Shell Script. Frederico Madeira LPIC 1, CCNA

Programação para Servidores. Cassio Diego

Shell scripts - Bash

Introdução ao. Script. Baltazar Tavares (Psycho Mantys)

Programação Shell Script: como dominar seu terminal

ADMINISTRAÇÃO DE SISTEMAS UNIX Aula Prática 01 Sistemas Operacionais Gil Eduardo de Andrade

Shell Script. Arthur, Luis Filipe, Rodrigo

Formação de Administradores de Redes Linux LPI level 1. Aula 2 SENAC TI Fernando Costa

Programação Shell Script: como dominar seu terminal

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO E AUTOMAÇÃO

Programação Shell Script: como dominar seu terminal (versão 2)

Admistração de Redes de Computadores (ARC)

Introdução a Sistemas Abertos. Ambiente shell

Redes de Computadores

Oficina de ShellScript

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

CURSO LINUX Módulo Programação de Shell Scripts por Celso Kopp Webber

Uso Eficiente da Linha de Comando com os Shells do Unix. Fábio Olivé

Daniel Darlen. IV SDSL Brasília DF Dezembro de Introdução ao Bash p.1/62

Variáveis. Você pode ver as variáveis do sistema com os comandos printenv, env e set como mostra o exemplo abaixo:

Shell Script. Diego R. Frank, Leonardo Seibt

Programação. Instrutor Airton Kuada - airton@fesppr.br Curitiba, julho de 2004

Sistemas Operacionais. Laboratório 1 (Ambiente de Aprendizado)

Capacitação Sistema Operacional Linux Semana V

shell Korn shell (ksh) ksh Universidade Federal da Bahia Centro de Pesquisa em Geofísica e Geologia Sistema de Informática Korn shell

Script. Baltazar Tavares (Psycho Mantys)

Aula de Linux Modo Texto

Se não existisse uma variável de ambiente chamada PATH você teria que digitar todo o caminho do comando para listar por exemplo:

Estácio-FIC Graduação em Redes de Computadores

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Primeira Aula Prática

Estruturas de Repetição

MÓDULO 01 INTRODUÇÃO AO LINUX

Exercícios Repetição

1º Ano - Técnico em Informática Integrado. Sistemas Operacionais

Introdução ao Shell-Script

Passo-a-passo para desenvolver um Programa usando a Linguagem Python

Simulação de Caixa Automático

Comandos Básicos do Linux/Unix

Introdução a Administração de Sistemas GNU/Linux

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Shell Script Melhorando tarefas. Daniel Bauermann

Gerando um programa executável a partir de um módulo Python

Criação de Processos Fork( ) Exec( )

WINDOWS. 1. Baixar o software cwrsync e efetuar a instalação.

Preparatório LPIC-101

Algoritmos e Programação

Introdução à Linguagem C

Administração de sistemas Linux. Permissões de arquivos e diretórios em sistemas linux.

Questões e dicas. Servidores: Samba Sistema: Discos e partições Sistema: Rede Servidores: SSH Cliente: SSSD Servidores: BareOS/Bacula

Linguagem Computacional. Estruturas de Controle: Estruturas de Repetição. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

UFRJ IM - DCC. Departamento de Ciência da Computação. Tópicos Especiais em Programação. 14/10/2013 Profª Valeria Menezes Bastos 1

Administração de sistemas Linux. Administração de processos.

3.1 - Funções para manipular dados de entrada e saída padrão

1.1-Digitar o comando abaixo para entrar no manual on-line do sistema para buscar informações sobre o comando pwd. man pwd

Programação para Servidores. Cassio Diego

Transcrição:

Shell Script Rafael Silva Guimarães

O que é Shell O Shell é o "prompt" da linha de comando do Linux, que recebe os comandos digitados pelo usuário e os executa. Mas o Shell é muito mais poderoso que seu primo distante. Além dos comandos básicos para navegar entre diretórios e manipular arquivos, ele também possui todas as estruturas de uma linguagem de programação, como IF, FOR, WHILE, variáveis e funções. Com isso, também é possível usar o Shell para fazer Scripts e automatizar tarefas.

Shell Script Um script é um arquivo que guarda vários comandos e pode ser executado sempre que preciso. Os comandos de um script são exatamente os mesmos que se digita no prompt, é tudo Shell. Script em inglês significa roteiro. Para criar um script deve-se criar um arquivo texto com diversos comandos. Estes comandos serão executados em ordem. Exatamente como num roteiro.

Tipos de Shell Ksh - Korn Shell (David G. Korn at AT&T Bell Labs) Bsh Bouner Shell (Steve Bourne 7ª versão do UNIX Bell Labs) Csh C like shell Bash - GNU Bourne-Again SHell

Shell Script Escolher o diretório onde colocar o script, para que o script possa ser executado de qualquer parte do sistema, mova o para um diretório que esteja no seu PATH. #echo $PATH Para criar o arquivo e colocar nele os comandos use o VI ou VIM ou outro editor de textos de sua preferência para colocar todos os comandos dentro do arquivo.

Shell Script Colocar a chamada do Shell na primeira linha na primeira linha do script deve ser: #!/bin/bash Para que ao ser executado, o sistema saiba que é o Shell quem irá interpretar estes comandos. Tornar o script o arquivo um executável, use o comando para que seu script seja reconhecido pelo sistema como um comando executável. #chmod +x <nome do arquivo>

Parâmetros de Entrada Os argumentos da linha de comando são passados para o shell através da variável local $argv. Os campos individuais dessa variável podem ser acessados como em uma variável local qualquer. Além disso, uma série de atalhos é definida para facilitar o acesso a esses parâmetros: $0 : o nome do script $n : o n-ésimo argumento da linha de comando $* : todos os argumentos da linha de comando $# : número de argumentos $? : status do último comando executado (status <> 0 indica erro) $$ : número de processo (PID) do shell que executa o script

Testando Parâmetros de Entrada Começando a nerdisse #!/bin/bash #exemplo de parâmetros de entrada echo "Nome do script : $0" echo "Primeiro parâmetro : $1" echo "Todos os parâmetros : $*" echo "Numero de parametros : $#" echo "Numero deste processo : $$" exit 0 Nerd

Começando a Brincadeira Fazer um script chamado "sistema" e colocar estes comandos nele. O conteúdo do arquivo "sistema" seria o seguinte: #!/bin/bash date df -h w Cuidado! Shell é tão legal que vicia!

Shell Script Executar os três comandos seguidos resulta em um bolo de texto na tela, misturando as informações e dificultando o entendimento. É preciso trabalhar um pouco a saída do script, tornando a mais legível. Para usar o echo, basta colocar entre "aspas". Se nenhum texto for colocado, uma linha em branco é mostrada. #!/bin/bash echo "Data e Horário:" date echo echo "Uso do disco:" df echo echo "Usuários conectados:" w

Shell Script Para o script ficar mais completo, vamos colocar uma interação mínima com o usuário, pedindo uma confirmação antes de executar os comandos. #!/bin/bash echo "Vou buscar os dados do sistema. Posso continuar? [sn] " read RESPOSTA test "$RESPOSTA" = "n" && exit echo "Data e Horário:" date echo echo "Uso do disco:" df echo echo "Usuários conectados:" w

Exemplos: Fazer um script chamado calc_idade.sh" e colocar estes comandos nele. O conteúdo do arquivo calc_idade.sh" seria o seguinte: #!/bin/bash echo "Script para calcular a idade" echo "Entre com o seu ano de nascimento: " read RESP IDADE=$(($(date +%Y)-$RESP)) echo "Sua idade e $IDADE anos"

Exemplos: Fazer um script chamado system.sh" #!/bin/bash clear echo "Hello, $USER" echo echo "Hoje e `date`, estamos na semana `date +"%V"`." echo echo "Usuarios conectados atualmente:" w cut -d " " -f 1 - grep -v USER sort -u echo echo "Este um sistemas operacional `uname -s`" echo echo "Tempo de uptime" uptime

Comandos test O canivete suíço dos comandos do shell é o "test", que consegue fazer vários tipos de testes em números, textos e arquivos. Ele possui várias opções para indicar que tipo de teste será feito.

Comandos teste Comparações entre números -eq : igual a -ne : diferente de -gt : maior que -ge : maior ou igual a -lt : menor que -le : menor ou igual a -a : AND binário (bit a bit) -o : OR binário (bit a bit) Comparações entre strings usando [] = : igual a!= : diferente de -z : string de tamanho zero Associações entre condições && : AND lógico : OR lógico

Conceitos Avançados Assim como os comandos do sistema que possuem e opções e parâmetros, os scripts também podem ser preparados para receber dados via linha de comando. Dentro do script, algumas variáveis especiais são definidas automaticamente, em especial, "$1" contém o primeiro argumento recebido na linha de comando, "$2" o segundo, e assim por diante.

Operador if if comando 1 then... elif comando 2 then... else... fi Exemplo 2: Exemplo 1: Echo Digite um numero read VAR if [ $VAR -ge 10 ] && [ $VAR -le 20 ]; then echo Seu número esta entre 10 e 20!" else echo "$VAR" fi echo "Compara dois numeros" echo "Escreva primeiro numero:" read n1 echo "Escreva segundo numero:" read n2 if [ $n1 -eq $n2 ]; then echo "$n1 == $n2" else echo "$n1 >< $n2" fi

Operador for for VAR in LISTA; do comandos done Desafio: Crie um shell script para criar pasta com nome DIRXX, onde XX varia de 01 a 99. Dica: use o operador for com comando printf para gerar o nome das pastas a criar. Exemplos for: for i in $(seq 1 10); do echo $i; done for ((i=1;i<11;i++)); do echo $i; done

Operador while while CONDIÇÃO; do...comandos... done Exemplos while: Desafio: Escreva um shell script que execute uma contagem até um numero informado pelo usuario e vai informando esse numero na tela. i=1 while [ $i -le 100 ]; do echo "$i" i=$((i+1)) done

Operador case O comando case é um pouco difícil de se usar. Também um pouco difícil de se acostumar. Ele compara uma variável passada e vai comparando com cada valor listado. A sintaxe é assim: case <variável> in <algo_para_comparar>1) <comando>1 ; <comando>2 ;; <algo_para_comparar>2) <comando>3 ; <comando>4 ;; <algo_para_comparar>n) <comando>n ; <comando>n+1 ;; *) echo "Você tem de entrar com um parâmetro válido" ;; esac Desafio: Crie um menu com 4 opções onde a ultima opção é sair.

Menu while : ; do echo -n " -------------Administrar usuarios-------------------- 1 - teste1 2 - teste2 3 - Sair ------------Escolha uma das opcao:" read opcao case "$opcao" in 1)echo "teste1";; 2)echo "teste2";; 3)exit;; esac done Exemplo case: case $1 in "list") echo "Listar!";; "ni!") echo "Ni!";; *) echo "Não conheço $1";; esac

Exemplo PráDco Criar um software em bash com os seguintes itens: - Cadastrar Usuário. - Deletar Usuário. - Exibir Usuários. - Adicionar Grupo. - Deletar Grupo. - Adicionar Usuário ao Grupo. - Listar Usuários do Grupo.