introdução à shellscript

43
Introdução à Shell Script Vinícius Alves Hax Agosto de 2010 TchêLinux Pelotas

Upload: vinicius-hax

Post on 05-Dec-2014

5.001 views

Category:

Technology


0 download

DESCRIPTION

⇒ Filosofia dos sistemas Unix e como os utilitários se interligam ⇒ O que é shell? O que é bash? ⇒ Entrada e saída em bash ⇒ Estruturas de controle no bash (for, if, while) ⇒ Alguns utilitários interessantes: awk, head, tail, sort, etc

TRANSCRIPT

Page 1: Introdução à Shellscript

Introdução à Shell Script

Vinícius Alves Hax

Agosto de 2010TchêLinux Pelotas

Page 2: Introdução à Shellscript

2

Palestrante

● Engenheiro de Computação pela FURG● Analista  de  TI  no  Centro  de  Ciências 

Computacionais – FURG● Sócio­fundador da Zetaflops – Computação de 

Alto Desempenho● Usuário Linux desde 2004

Page 3: Introdução à Shellscript

3

Conteúdo

● Filosofia  dos  sistemas  Unix  e  como  os programas se comunicam

● O que é shell? O que é bash?● Entrada e saída em bash● Estruturas de controle no bash (for, if, while)● Alguns utilitários  interessantes: awk, head,  tail, 

sort, etc

Page 4: Introdução à Shellscript

4

Filosofia dos sistemas Unix

Algumas maneiras de pensar que estão atreladas ao próprio desenvolvimento

Page 5: Introdução à Shellscript

5

Filosofia dos sistemas Unix

“Escreva programas que resolvam um único problema, e faça bem feito.” 

Page 6: Introdução à Shellscript

6

Filosofia dos sistemas Unix

Armazene dados em arquivos de texto● Cabível de edição manual● Mais  fácil  escrever  programas  que  manipulem 

esses arquivos

Page 7: Introdução à Shellscript

7

Filosofia dos sistemas Unix

Automatize as tarefas (mas não exagere!)

Page 8: Introdução à Shellscript

8

Filosofia dos sistemas Unix

Escreva programas que "conversem" com outros: leiam dados da entrada padrão e escrevam dados 

na saída padrão. Geralmente o teclado e o terminal.

Page 9: Introdução à Shellscript

9

Interligando programas

A comunicação dos programas é  feita através do pipe, representado por |

cat /etc/fstab | grep sd

Page 10: Introdução à Shellscript

10

Shell

● O Shell é o prompt de comando do Linux● Ele  lê  o  que  o  usuário  digita,  interpreta  o 

comando e o executa● Como  um  Command  do  MSDOS,  mas 

melhorado

Page 11: Introdução à Shellscript

11

Shell Script

● Chamamos  de  Shell  Script,  um  arquivo contendo  comandos  do  terminal,  sob  a  forma de um programa executável

Page 12: Introdução à Shellscript

12

Utilidade

● Executar tarefas repetidas no Shell● Integração de tarefas complexas com cron● Operações com múltiplos arquivos e diretórios● Reaproveitamento do SEU tempo

Page 13: Introdução à Shellscript

13

Bash

O  bash  é  um  dos  possíveis  interpretadores disponíveis no prompt de comando.

Geralmente é o mais usado e é o shell padrão da maioria das distribuições Linux

Outras possibilidades: ksh, csh, etc

Page 14: Introdução à Shellscript

14

Ok, ok, podemos começar?

Page 15: Introdução à Shellscript

15

Criando um shell script

● Criar um arquivo de texto normal.● A primeira linha do arquivo deve ser:

 !#/bin/bash

A linha acima diz que o interpretador é o bash● Salvar o arquivo

chmod +x meu_primeiro_script.bash

Page 16: Introdução à Shellscript

16

Executando um shell script

● Opção 1:

./meu_primeio_script.bash

● Opção 2:

bash meu_primeiro_script.bash

Page 17: Introdução à Shellscript

17

Observação

● A  extensão  é  opcional,  apenas  facilita  ao usuário,  a  primeira  linha  do  arquivo  é  que  diz quem vai interpretar o arquivo

● Alguns usam a extensão .sh, mas geralmente é um arquivo bash (verificar antes de executar!)

Page 18: Introdução à Shellscript

18

Atribuição de variáveis

● Atribui valor a uma variável

a=1

Importante: A atribuição não pode  ter espaços nem  antes  nem  depois  da  igualdade,  senão  o Bash acusa um erro

Page 19: Introdução à Shellscript

19

Atribuição de variáveis

● Operações matemáticas podem ser  feitas com let

let a=a*3

Page 20: Introdução à Shellscript

20

Atribuição de variáveis

● Se você precisar que a variável fique acessível em processos filho do shell atual é preciso usar export

export OUTRO_SHELL=”ola shell”

Page 21: Introdução à Shellscript

21

Acessando variáveis

● Com exceção do let, para acessar uma variável devemos  adicionar  $  na  frente  do  nome  da mesma.

Ex:

numero=10

outro_numero=$numero

Page 22: Introdução à Shellscript

22

Mostrando dados na tela

● Para  mostrar  dados  na  tela  existe  o  comando echo

Ex: echo “ola publico”● O mesmo com variáveis● Ex: echo $a

Page 23: Introdução à Shellscript

23

Variáveis dentro de strings

● Para imprimir o valor de variáveis concatenado com strings usados { e }

Ex:

str0=“string0”

echo “minha string é ${str0}”● Mostra na tela “minha string é string0”

Page 24: Introdução à Shellscript

24

Leitura do teclado

read var_resposta● O  valor  de  var_resposta  é  tudo  que  o  usuário 

digitar, incluindo espaços

Page 25: Introdução à Shellscript

25

Testes

● O comando test realiza … testes● Cada  operação  de  test  possui  um  parâmetro. 

Por exemplo para testar se um arquivo existe o parâmetro é “­f”

Ex:

test ­f arquivo.txt

Page 26: Introdução à Shellscript

26

Estruturas de seleção ­ if

Utilizado em conjunto com o comando test

Sintaxeif COMANDO_TEST 

then

A

else

B

fi

Page 27: Introdução à Shellscript

27

Estruturas de seleção ­ ifEx:

if test $v1 ­gt $v2

then

  echo “V1 > V2”

else

  echo “V2 > V1”

fi

Page 28: Introdução à Shellscript

28

Estruturas de seleção ­ casecase $var in

1) 

echo “Opção 1”

;;

2) 

echo “Opção 2”

;;

*) 

echo “Outras opções”

;;

esac

Page 29: Introdução à Shellscript

29

Estruturas de repetição ­ while

while test ­d diretorio

do

echo “Diretório não foi deletado ainda”

done

Page 30: Introdução à Shellscript

30

Estruturas de repetição ­ for

for numero in um dois tres

do

echo $numero

done

Page 31: Introdução à Shellscript

31

Programas interessantes

Page 32: Introdução à Shellscript

32

O comando mais importante

man

Page 33: Introdução à Shellscript

33

awk

● Linguagem  de programação para manipulação de strings

● Ex:

echo "1:2:3:4" | awk ­F : '{print $2}'

Mostra  o  segundo  item  da  string,  ou  seja  “2”, usando o separador “:”

Page 34: Introdução à Shellscript

34

sed

● Substitui trechos de texto em arquivos

sed s/OLD/NEW/ FILE

sed   s/admin/master/   /etc/group

Page 35: Introdução à Shellscript

35

grep

● Filtra trechos de arquivos

grep PADRAO ARQUIVO

grep /etc/fstab /dev/sd

Page 36: Introdução à Shellscript

36

uniq, sort, wc

● uniq: Retira linhas contíquas repetidas

uniq arquivo.txt● sort: Ordena um arquivo

sort arquivo.txt● wc: Conta palavras,  linhas e caracteres de um 

arquivo

wc ­l arquivo.txt (mostra as linhas)

Page 37: Introdução à Shellscript

37

head, tail, less

● Head: Mostra as primeiras linhas de um arquivo

head arquivo.txt● Tail: Mostra as últimas linhas de um arquivo

tail arquivo.txt● Less:  Mostra  o  conteúdo  de  um  arquivo  de 

forma paginada

less arquivo.txt

Page 38: Introdução à Shellscript

38

Mais comandos

● http://wiki.ubuntu­br.org/ComandosBasicos  Comandos básicos e alguns um pouco mais avançados

● http://www.cyberciti.biz/tips/top­linux­monitoring­tools.htm Para administradores de sistema

Page 39: Introdução à Shellscript

39

Referências

● http://aurelio.net/shell/● http://www.delicious.com/vinicius_ah/shell 

Page 40: Introdução à Shellscript

40

TchêLinux Rio Grande

● CIDEC­Sul – FURG – Campus Carreiros● 27 de novembro de 2010● Call To Papers a partir de segunda

Page 41: Introdução à Shellscript

41

Agradecimentos● Vocês

● Organização  do  evento, especialmente Jerônimo

● Grupo Tchelinux

● Patrocinadores

● Comunidade  Software Livre

Page 42: Introdução à Shellscript

42

O poder é de vocês!

Page 43: Introdução à Shellscript

43

Contato

E­mail / Twitter:

[email protected] / @vinicius_ah

Sites:● www.ti.c3.furg.br● www.zetaflops.com.br● www.tchelinux.org