Successfully reported this slideshow.

Introdução à Shellscript

5.126 visualizações

Publicada em

⇒ 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

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Introdução à Shellscript

  1. 1. Introdução à Shell Script Vinícius Alves Hax Agosto de 2010 TchêLinux Pelotas
  2. 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 2
  3. 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 3
  4. 4. Filosofia dos sistemas Unix Algumas maneiras de pensar que estão atreladas  ao próprio desenvolvimento 4
  5. 5. Filosofia dos sistemas Unix “Escreva programas que resolvam um único  problema, e faça bem feito.”  5
  6. 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 6
  7. 7. Filosofia dos sistemas Unix Automatize as tarefas (mas não exagere!) 7
  8. 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. 8
  9. 9. Interligando programas A comunicação dos programas é feita através do  pipe, representado por | cat /etc/fstab | grep sd 9
  10. 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 10
  11. 11. Shell Script ● Chamamos  de  Shell  Script,  um  arquivo  contendo  comandos  do  terminal,  sob  a  forma  de um programa executável 11
  12. 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 12
  13. 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 13
  14. 14. Ok, ok, podemos começar? 14
  15. 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 15
  16. 16. Executando um shell script ● Opção 1: ./meu_primeio_script.bash ● Opção 2: bash meu_primeiro_script.bash 16
  17. 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!) 17
  18. 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 18
  19. 19. Atribuição de variáveis ● Operações  matemáticas  podem  ser  feitas  com  let let a=a*3 19
  20. 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” 20
  21. 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 21
  22. 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 22
  23. 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” 23
  24. 24. Leitura do teclado read var_resposta ● O  valor  de  var_resposta  é  tudo  que  o  usuário  digitar, incluindo espaços 24
  25. 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 25
  26. 26. Estruturas de seleção ­ if Utilizado em conjunto com o comando test Sintaxe if COMANDO_TEST  then A else B fi 26
  27. 27. Estruturas de seleção ­ if Ex: if test $v1 ­gt $v2 then   echo “V1 > V2” else   echo “V2 > V1” fi 27
  28. 28. Estruturas de seleção ­ case case $var in 1)  echo “Opção 1” ;; 2)  echo “Opção 2” ;; *)  echo “Outras opções” ;; esac 28
  29. 29. Estruturas de repetição ­ while while test ­d diretorio do echo “Diretório não foi deletado ainda” done 29
  30. 30. Estruturas de repetição ­ for for numero in um dois tres do echo $numero done 30
  31. 31. Programas interessantes 31
  32. 32. O comando mais importante man 32
  33. 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 “:” 33
  34. 34. sed ● Substitui trechos de texto em arquivos sed s/OLD/NEW/ FILE sed   s/admin/master/   /etc/group 34
  35. 35. grep ● Filtra trechos de arquivos grep PADRAO ARQUIVO grep /etc/fstab /dev/sd 35
  36. 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) 36
  37. 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 37
  38. 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 38
  39. 39. Referências ● http://aurelio.net/shell/ ● http://www.delicious.com/vinicius_ah/shell  39
  40. 40. TchêLinux Rio Grande ● CIDEC­Sul – FURG – Campus Carreiros ● 27 de novembro de 2010 ● Call To Papers a partir de segunda 40
  41. 41. Agradecimentos ● Vocês ● Organização  do  evento,  especialmente Jerônimo ● Grupo Tchelinux ● Patrocinadores ● Comunidade  Software  Livre 41
  42. 42. O poder é de vocês! 42
  43. 43. Contato E­mail / Twitter: viniciushax@gmail.com / @vinicius_ah Sites: ● www.ti.c3.furg.br ● www.zetaflops.com.br ● www.tchelinux.org 43

×