Minicurso GNU/Linux

513 visualizações

Publicada em

Apresentação didática e abrangente sobre o Sistema Operacional GNU/Linux dividida em duas partes: uma visão geral e introdutória do GNU/Linux e Introdução a programação em Shell Script Bash. Além disso, há uma abordagem básica de casamento de padrões de buscas que pode ser usado com comandos de busca e/ou edição de arquivos de texto. Este recurso poderosíssimo é indispensável na construção de código Bash. É essencial ter noção básica de programação de computadores para o aprendizado de Shell Script Bash.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
513
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
12
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Minicurso GNU/Linux

  1. 1. LTI/ICEx - UFMGLTI/ICEx - UFMG Laboratório de Tecnologia da InformaçãoLaboratório de Tecnologia da Informação Mini CursoMini Curso Introdução ao Sistema OperacionalIntrodução ao Sistema Operacional GNU/LinuxGNU/Linux Alexandre Elias dos SantosAlexandre Elias dos Santos aleniac@ufmg.braleniac@ufmg.br Julho 2015Julho 2015
  2. 2. Sistemas OperacionaisSistemas Operacionais  1945 - 1955 – Na primeira geração de computadores, o controle era feito de forma manual via hardware, não havia SOs (sistemas operacionais);  1955 - 1965 – Sistemas orientados por lotes (batch systems) e uso de cartões perfurados;  1965 - desenvolvimento do Multics, sistema interativo com compartilhamento de tempo, por Ken Thompson, Dennis Ritchie, Douglas McIlroy e Peter Weine;  Envolvidos no projeto do Multics: MIT (Massachussets Institute of Technology), AT&T (Bell Laboratories) e General Electric (GE).
  3. 3. Sistemas Operacionais UnixSistemas Operacionais Unix  1969 - Thompson desenvolve o Unics reescrevendo o Multics através de um minicomputador PDP-7 em Assembler;  1973, reimplementação do Unix em C para um PDP-11 por Thompson e Richie;  Alguns SOs da famíla Unix (*nix): TSS/360 (da IBM), Mac OS X, Solaris, BSD(Universidade de Berkeley), Xenix (Microsoft), System III e System V (Bell Labs).  Outros sistemas operacionais contemporâneos: CP/M, Apple DOS, MS DOS. Minicomputador PDP-11
  4. 4. Principais Características do UnixPrincipais Características do Unix  Capacidade multitarefas - execução de diversas tarefas simultâneas;  Capacidade Multiusuário – possibilidade de vários usuários utilizarem o mesmo computador ao mesmo tempo;  Transportabilidade – facilidade de transportar o sistema para outras arquiteturas de computadores;  Sistema orientado por arquivos - praticamente todos elementos do computador é representado por arquivos.
  5. 5. Projeto GNUProjeto GNU  Sistema Operacional compatível com Unix e totalmente livre (direito de uso, modificação e redistribuição);  GNU – Gnu is Not Unix;  Criado em 1984 por Richard Stallman;  Objetos iniciais do SO GNU: compiladores de C, editores de texto, etc;  GPL – General Public License.
  6. 6. GNU GPLGNU GPL (General Pubic License)(General Pubic License)  A GPL se baseia em 4 termos: 1) liberdade de execução do programa para qualquer propósito (liberdade # 0); 2) liberdade de estudar o funcionamento do programa e adaptá-lo conforme suas necessidades (liberdade # 1); 3) liberdade de redistribuição de cópias (liberdade # 2); 4) liberdade de aperfeiçoar e redistribuir o programa aperfeiçoado de modo que beneficie toda comunidade (liberdade # 3). ⚠⚠ Acesso ao código fonte é um pré-requisito para as liberdades #1 e #3.
  7. 7. Kernel de um Sistema OperacionalKernel de um Sistema Operacional  Kernel, núcleo de um sistema operacional;  Responsável pelo gerenciamento de recursos do sistema (controle de processos, alocação de memória, entrada e saída de dispositivos e outros);  Linux, o Kernel de Linux Torvalds criado em 1991;  GNU/Linux, o SO GNU com o kernel Linux.
  8. 8. Primeiras Distribuições LinuxPrimeiras Distribuições Linux  No começo, a instalação básica do sistema partia da compilação do kernel através do Minix.  Boot/Root: conhecida como a primeira distribuição do sistema pré-compilado, 1991.  MCC Interim Linux: Sucessor do Boot/Root, 1992.  SLS Linux: distribuição com muitos aplicativos em modo texto, 1992.  Yggdrasil: precursora do live-CD e com ambiente gráfico, 1992.
  9. 9. Árvore de Distribuições LinuxÁrvore de Distribuições Linux ➔ Debian ➔ aLinux ➔ Knoppix ➔ Kurumin ➔ Ubuntu ➔ Mint ➔ Kunbuntu ➔ Xubuntu ➔ Gentoo (Linux?) ➔ Red Hat ➔ Mandrake ➔ Conectiva ➔ SuSE ➔ Fedora Core ➔ Libertas ➔ Slackware ➔ Slacx ➔ Vector Linux } Mandriva Representação ilustrativa da árvore de distribuições Linux.
  10. 10. Gerenciadores de JanelasGerenciadores de Janelas  Servidor X: ➔ Desenvolvido em 1984 pelo MIT; ➔ Carrega a placa de vídeo, mouse e teclado; ➔ permite o uso de programas com bibliotecas gráficas em sistemas Unix ou similares.  Gerenciadores de janelas: ➔ Requesita serviços do servidor X; ➔ Permite operações com janelas, como, por exemplo, mover, minimizar, maximizar e fechar a janela; ➔ Múltiplas áreas de trabalho e desktop 3D.
  11. 11. KDEKDE  KDE (K Desktop Enviroment): ➔ Interface gráfica que possui um visual bem atrativo, bastante sedutora para usuários do Windows. O ambiente gráfico é altamente intuitivo.
  12. 12. GnomeGnome  GNOME (GNU Network Object Model Environment): ➔ Ambiente gráfico bastante amigável com diversos recursos, além de ser altamente personalizável.
  13. 13. UnityUnity  Unity: ➔ Interface gráfica padrão do Ubuntu, atualmente, muito estilosa. O Unity é uma renovação do Gnome, contudo é menos personalizável.
  14. 14. Compiz - Desktop 3DCompiz - Desktop 3D  Compiz: ➔ Foi o primeiro desktop com efeitos tridimensionais. O Compiz Fusion, projeto mais recente, permite visulização de mútiplas áreas de trabalho em diversos formatos espaciais: cúbicos, esféricos e outros.
  15. 15. Alguns ProgramasAlguns Programas  Pacote de programas de escritório: Libre Office (antigo Open Office).  Multimídia: Audacious, VLC, Brasero.  Compiladores: Gcc, G++, Gpc.  Editores de textos: Kedit, Kate, leafpad.  Editor/compilador de Latex: Kile.  Acadêmicos: R, Scilab, Eclipse.  Utilitários em modo texto: Vim, Links, Moc, Mutt.  Gráfico: Gimp, Gthumb, Ristretto.
  16. 16. Uso de Console no LinuxUso de Console no Linux  Console (terminal): interface em modo texto que permite a interpretação de comandos através de um shell.  Shell: interpretador de comandos ou conjunto de comandos (modo programado em Shell Script).  Tipos de Shell: Bash, Ash, Dash, Sh e outros.
  17. 17. Alguns ComandosAlguns Comandos  ls listar o conteúdo do diretório  rm remoção de arquivos/diretórios  cd muda para um determinado diretório  man mostra informações sobre um comando  cat exibe o conteúdo de um arquivo na saída padrão  less permite a visualização de arquivo de texto  cp copia arquivos ou diretórios  mkdir cria um diretório  du -sh mostra o tamanho do diretório  ps aux exibe todos processos que estão sendo executados  top permite visualizar os recursos usados pelos processos abertos.
  18. 18. Gerenciamento de ProcessosGerenciamento de Processos  Um processo é a representação de um comando em execução.  Características específicas de um processo: ➢ PID – Identificador do Processo ➢ PPID – PID do processo pai ➢ Proprietário do processo ➢ Estado (em espera, em execução, etc) ➢ Prioridade de execução ➢ Recursos de Memória  Visualização de todos processos em execução: aleniac@terminal-frost:~$ ps aux
  19. 19. Gerenciamento de ProcessosGerenciamento de Processos  Alguns sinais de um processo: ➢ STOP – usado para interromper um processo. ➢ CONT – para continuar um processo interrompido. ➢ SEGV – informa erros de endereço de memória. ➢ TERM – para terminar um processo. ➢ ILL – informa erros de instrução ilegal. ➢ KILL – para matar um processo.  Fechando um processo com o comando kill: :~$ kill -TERM pid do processo # nem sempre termina!  Matando (todos) processos por nome: :~$ killall -KILL firefox # mata mesmo todos firefox abertos!
  20. 20. Instalação de Pacotes/ProgramasInstalação de Pacotes/Programas O que são os repositórios? São servidores que disponibilizam pacotes para download. Formas de instalaçao de programas:  Via apt-get: a instalação de programas pode ser feita usando o comando apt-get que obtém em repositórios previamente reconhecidos pelo sistema os pacotes do programa a serem instalados;  Gerenciador de pacote (Synaptic): semelhante ao apt- get, porém através de uma interface gráfica;  Manual: através do código fonte pelos procedimentos ./configure; make; make install. Geralmente, são programas que não estão nos repositórios.
  21. 21. Estrutura de Diretórios GNU/LinuxEstrutura de Diretórios GNU/Linux Representação ilustrativa de diretórios e arquivos do sistema de arquivos da distribuição Ubuntu.
  22. 22. Sistema de Arquivos e PartiçõesSistema de Arquivos e Partições # / was on /dev/sda1 during installation UUID=26a34652-710b-46c1-87d9-08aa186d4d3d / ext3 errors=remount-ro 0 1 # /media/dados was on /dev/sda5 during installation UUID=0ab24c3b-f61f-4b85-b1bf-1da679331ead /home ext3 defaults 0 2 # swap was on /dev/sda2 during installation UUID=cd5a32ed-e52f-4858-a210-fd2244095ae3 none swap sw 0 0 # /media/backup on /dev/sdb1 /dev/sdb1 /media/backupext3 defaults 0 2 # / was on /dev/sda1 during installation UUID=26a34652-710b-46c1-87d9-08aa186d4d3d / ext3 errors=remount-ro 0 1 # /media/dados was on /dev/sda5 during installation UUID=0ab24c3b-f61f-4b85-b1bf-1da679331ead /home ext3 defaults 0 2 # swap was on /dev/sda2 during installation UUID=cd5a32ed-e52f-4858-a210-fd2244095ae3 none swap sw 0 0 # /media/backup on /dev/sdb1 /dev/sdb1 /media/backupext3 defaults 0 2 Arquivo /etc/fstab
  23. 23. Alguns Arquivos ImportantesAlguns Arquivos Importantes  /etc/passwd – contém dados de contas dos usuários  /etc/group – contém os grupos de usuários  /etc/shadow – senhas criptografadas dos usuários  /etc/fstab – tabela de sistema de arquivos  /etc/crontab – tabela de agendamento de tarefas do cron  /etc/fstab – tabela de sistema de arquivos  /etc/apt/sources.list – lista de repositórios  /etc/resolv.conf – contém endereços dos servidores de DNS  /etc/network/interfaces – configurações de rede  /etc/skel/ – arquivos básicos para home de novos usuários.
  24. 24. Especificação de RotasEspecificação de Rotas Não se perca onde um comando é executado ou onde se encontra um determinado arquivo ou diretório.  O path é o caminho onde se encontra um determinado arquivo ou diretório no sistema de arquivos.  O path pode ser referenciado de duas formas: através da rota absoluta, o caminho completo; ou através da rota relativa, isto é, em relação ao diretório em uso por um shell.  Exibindo o path em uso: :~$ pwd # onde estou?  Rota absoluta, exemplo: :~$ ls /home/fulano/Documentos  Rota relativa (parcial), exemplo: :~$ ls Documentos
  25. 25. Utilizando Rotas Absolutas EUtilizando Rotas Absolutas E RelativasRelativas Retorne de onde eu estava. Em qual diretório estou? O que contém no meu diretório pai? O que tem no diretório no qual estou? O que contém em Documentos? O que contém no meu diretório avô, o diretório ”/”? Vá para meu diretório pai. Exemplo de uso de rotas absolutas e relativas.
  26. 26. Montagem de Sistema de ArquivosMontagem de Sistema de Arquivos Montando todos sistemas de arquivos incluídos em /etc/fstab: Montando o dispositivo /dev/sda2 pré-definido em /etc/fstab: Montando /dev/sda2 do tipo ntfs e não definido em /etc/fstab: root@terminal-frost:~# mount -t ntfs /dev/sda2 /media/windowsxproot@terminal-frost:~# mount -t ntfs /dev/sda2 /media/windowsxp root@terminal-frost:~# mount /dev/sda2root@terminal-frost:~# mount /dev/sda2 root@terminal-frost:~# mount -aroot@terminal-frost:~# mount -a Dispositivo Local de montagem
  27. 27. Setando os bits xwr, exemplo: Conversão binária para decimal: usuário (xwr) 1*20 + 1*21 + 1*22 = 7 grupo (x-r) 1*20 + 0*21 + 1*22 = 5 outros (---) 0*20 + 0*21 + 0*22 = 0 Permissões de ArquivosPermissões de Arquivos valor símbolos Permissão 0 --- nenhuma 1 --x execução 2 -w- escrita 3 -wx escrita e execução 4 r-- leitura 5 r-x leitura e execução 6 rw- leitura e escrita 7 rwx leitura, escrita e execução aleniac@crisolita:~$ chmod 750 exemplo.txt; ls -l exemplo.txt -rwxr-x--- 1 aleniac aleniac 562 Fev 20 11:12 exemplo.txt aleniac@crisolita:~$ chmod 750 exemplo.txt; ls -l exemplo.txt -rwxr-x--- 1 aleniac aleniac 562 Fev 20 11:12 exemplo.txt Bit x w r octal u 1 1 1 7 g 1 0 1 5 o 0 0 0 0
  28. 28. Encanamento de ComandosEncanamento de Comandos Exemplo de uso do operador pipeline com o operador '|'.
  29. 29. Operadores de Redirecionamento deOperadores de Redirecionamento de Entrada e Saída (Entrada e Saída (<<,, >> ee >>>>)) :~$ mutt -s ”Relatório” -a report.txt -- aleniac@ufmg.br < mensagem.txt :~$ mutt -s ”Relatório” -a report.txt -- aleniac@ufmg.br < mensagem.txt  Enviando email com o utilitário mutt usando como mensagem o conteúdo de um arquivo: :~$ echo ”Arquivos do meu diretório:” > report.txt :~$ echo >> report.txt :~$ ls -lh >> report.txt :~$ echo ”Arquivos do meu diretório:” > report.txt :~$ echo >> report.txt :~$ ls -lh >> report.txt  Redirecionando saída do ls para o arquivo através de concatenação:
  30. 30. Sed – Editor de texto não interativoSed – Editor de texto não interativo  O Sed facilita a automatição de tarefas que envolvem processamento de textos.  Forma geral do comando: sed '[ endereço, [endereço ]] [!] comando [argumentos]' Exemplos: $ sed 's/aa/bb/g' file.txt # substitui todas ocorrências encontradas do padrão 'aa' por 'bb' em toda as linhas. $ sed '/GNU/d' file.txt # deleta somente linhas que contém GNU. $ sed '/^BEGIN/,/END$/p' file.txt # imprime entre as linhas que iniciam com BEGIN e terminam com END. $ sed '/SELECT/!d' file.txt # apaga todas que NÃO contém SELECT. $ sed '/BEGIN/,/END/!s/zip/zap/g' file.txt # substitui todas ocorrências, exceto entre as linhas que contém BEGIN e END. $ sed 's/aa/bb/g' file.txt # substitui todas ocorrências encontradas do padrão 'aa' por 'bb' em toda as linhas. $ sed '/GNU/d' file.txt # deleta somente linhas que contém GNU. $ sed '/^BEGIN/,/END$/p' file.txt # imprime entre as linhas que iniciam com BEGIN e terminam com END. $ sed '/SELECT/!d' file.txt # apaga todas que NÃO contém SELECT. $ sed '/BEGIN/,/END/!s/zip/zap/g' file.txt # substitui todas ocorrências, exceto entre as linhas que contém BEGIN e END.
  31. 31. Metacaracteres e Expressões RegularesMetacaracteres e Expressões Regulares  Metacaracteres: são caracteres com significado especial dependendo do contexto;  São usados em expressões regulares (regex) para localizar um determinado padrão utilizando-se comandos como o sed, o grep e o tr. Padrão de pesquisa Expressão procurada X* gnu.linux .* [0-9] [a-zA-Z]* ^GNU Linux$ ^.$ [[:alfnum:]] [aeiou1-3] x{n,m} qualquer quantidade do caractere precendente, X, inclusive zero qualquer tipo de caractere entre as palavras gnu e linux zero ou mais caracteres de qualquer tipo somente dígitos zero ou mais caracteres alfabéticos linhas cujo início seja a palavra GNU linhas cujo final tenha a palavra Linux linhas que contém apenas um caractere qualquer caracteres alfanuméricos vogais ou números 1 ou 2 ou 3 frequência de n a m do caractere precedente, x Quadro com algumas expressões regulares.
  32. 32. Exemplos de Uso de MetacaracteresExemplos de Uso de Metacaracteres aleniac@crisolita:~$ cat /etc/crontab | grep cron....ly 25 6 * * * roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) aleniac@crisolita:~$ cat /etc/crontab | grep cron....ly 25 6 * * * roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) aleniac@crisolita:~$ grep cron....ly /etc/crontab | sed 's/^[0-9]{1,2} [0-9]{1,2}/21 18/' 21 18 * * * roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) aleniac@crisolita:~$ grep cron....ly /etc/crontab | sed 's/^[0-9]{1,2} [0-9]{1,2}/21 18/' 21 18 * * * roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )  Busca linhas contendo a palavra cron seguida de 4 caracteres quaisquer mais a palavra ly:  Exibe modificação da linha acima do arquivo do crontab alterando o horário de execução da tarefa diária para às 18:21 horas: ⚠⚠ O significado literal do comando sed acima é: substitua as linhas que começam com 1 ou 2 dígitos seguidos de espaço seguidos de 1 ou 2 dígitos por ”21 18”.
  33. 33. SSH - Acesso RemotoSSH - Acesso Remoto  Acessando o computador remoto com o comando ssh:  Copiando arquivo para um computador remoto com o comando scp:  Copiando arquivo do computador remoto para o local: $ ssh -p 22 usuario@host_remoto$ ssh -p 22 usuario@host_remoto $ scp -P 22 relatorio.txt usuario@host_remoto:~/$ scp -P 22 relatorio.txt usuario@host_remoto:~/ $ scp -P 22 usuario@host_remoto:~/lah.txt ./aqui.txt$ scp -P 22 usuario@host_remoto:~/lah.txt ./aqui.txt ●Final
  34. 34. Introdução à ProgramaçãoIntrodução à Programação em Shell Bashem Shell Bash
  35. 35. Programação em Shell BashProgramação em Shell Bash  Comando de saída, exemplo: ➔ $ echo ”Olá, Tux!”  Comando de entrada, exemplo: ➔ $ read nome  Criando variáveis: ➔ $ time=”Galo”  Visualizando variáveis: ➔ $ echo $time
  36. 36. Variáveis de AmbienteVariáveis de Ambiente  Variáveis de ambiente são variáveis utilizadas pelo sistema, Exemplo: ➔ PATH – contém os possíveis caminhos(locais) de comandos e programas executados no Shell; ➔ PWD – contém o endereço do diretório ativo; ➔ USER – armazena o nome do usuário.  Visualizando uma variável de ambiente, exemplo: ➔ $ echo $PATH
  37. 37. Criando um Shell ScriptCriando um Shell Script  Passos para criar um Script Shell: ➔ Criar e salvar o arquivo contendo o código do script utilizando um editor de texto de preferência; ➔ Mudar o modo do arquivo, tornando-o executável, por exemplo: $ chmod 755 meuscript ➔ Executar o script da seguinte forma: $ ./meuscript ⚠⚠ O par de caracteres ”./” aponta para o diretório corrente em uso no terminal.
  38. 38. Código em Shell ScriptCódigo em Shell Script #!/bin/bash # Buscando nome de arquivos através de uma # palavra-chave (pode-se usar metacaracteres). echo "Entre com a palavra chave:" read chave # ler entrada find ../ -name "$chave" # busca arquivo echo "Terminei a busca." # exibe saida #!/bin/bash # Buscando nome de arquivos através de uma # palavra-chave (pode-se usar metacaracteres). echo "Entre com a palavra chave:" read chave # ler entrada find ../ -name "$chave" # busca arquivo echo "Terminei a busca." # exibe saida #!/bin/bash # Meu primeiro script em Shell Bash printf "Olá mundo!n" #!/bin/bash # Meu primeiro script em Shell Bash printf "Olá mundo!n"  Dois exemplos de código em Bash:
  39. 39. Teste de Expressões LógicasTeste de Expressões Lógicas a=”GNU/Linux” b=”Windows Microsoft” [ ”$a” = ”$b” ]; echo $? [ ”$a” != ”$b” ]; echo $? a=”GNU/Linux” b=”Windows Microsoft” [ ”$a” = ”$b” ]; echo $? [ ”$a” != ”$b” ]; echo $? Expressões Lógicas Literais (strings): ⚠⚠ É um bom hábito usar as aspas duplas (”); Deve-se deixar espaço entre a expressão de teste e os colchetes.
  40. 40. Teste de Expressões LógicasTeste de Expressões Lógicas Operadores Lógicos para Expressões Aritméticas: ➔ -eq (equal): igual; ➔ -ne (not-equal): diferente); ➔ -lt (less than): menor que (<); ➔ -le (less than or equal): menor ou igual ( <= ); ➔ -gt (greater than): maior que (>); ➔ -ge (greater than or equal): maior ou igual (>=).
  41. 41. Teste de Expressões LógicasTeste de Expressões Lógicas Expressões Lógicas numéricas, exemplo: Expressão literal ou numérica? ⚠⚠ Note que o resultado da avaliação utilizando-se o operador ”=” não necessariamente produz o mesmo utilizando-se ”-eq”. valor1=-1; valor2=1 [ ”$valor1” -eq ”$valor2” ]; echo $? valor1=-1; valor2=1 [ ”$valor1” -eq ”$valor2” ]; echo $? x=002; y=2 # x e y são iguais? [ ”$x” -eq ”$y” ]; echo $? [ ”$x” = ”$y” ]; echo $? x=002; y=2 # x e y são iguais? [ ”$x” -eq ”$y” ]; echo $? [ ”$x” = ”$y” ]; echo $?
  42. 42. Teste CondicionalTeste Condicional Forma geral do comando if... then... else... fi: if [ condição ] then ... comandos ... else ... comandos ... fi if [ condição ] then ... comandos ... else ... comandos ... fi
  43. 43. Comando de Iteração WhileComando de Iteração While Forma geral do comando while: while [ condição ] do ... comandos ... done while [ condição ] do ... comandos ... done
  44. 44. Comando de Iteração WhileComando de Iteração While Exemplo do uso do while: x=0 # valor inicial de x while [ "$x" -lt 9 ] do echo ”linha: $x” x=$(($x+1)) # x = x + 1 done x=0 # valor inicial de x while [ "$x" -lt 9 ] do echo ”linha: $x” x=$(($x+1)) # x = x + 1 done
  45. 45. Comando de Iteração ForComando de Iteração For Forma geral do comando for: for <variável> in <v1 v2 v3 ... vn> do ... comandos ... done for <variável> in <v1 v2 v3 ... vn> do ... comandos ... done
  46. 46. Comando de Iteração ForComando de Iteração For Exemplos de uso do comando for: # exibe uma sequência de 10 iterações for i in $(seq 1 10) do echo ”iteração: $i” done # exibe uma sequência de 10 iterações for i in $(seq 1 10) do echo ”iteração: $i” done # lista todos arquivos ”txt” no diretório corrrente for x in *.txt do echo ”achei o arquivo $x” done # lista todos arquivos ”txt” no diretório corrrente for x in *.txt do echo ”achei o arquivo $x” done
  47. 47. Comando de Iteração ForComando de Iteração For Exemplo de uso do for com vetores: v=("one" "two" "three" "four") # vetor cont=0 # contador # v[@] são todos elementos de v for x in ${v[@]} do echo ”conteúdo de v[$cont] = $x” let cont++ done v=("one" "two" "three" "four") # vetor cont=0 # contador # v[@] são todos elementos de v for x in ${v[@]} do echo ”conteúdo de v[$cont] = $x” let cont++ done
  48. 48. Filosofia UnixFilosofia Unix  Escreva programas que façam apenas uma coisa mas que façam bem feito;  Escreva programas que trabalhem juntos;  Escreva programas que manipulem streams de texto, pois esta é uma interface universal. Ou, simplesmente: "faça apenas uma coisa e faça bem".
  49. 49. Filosofia UnixFilosofia Unix KISS,KISS, keep it simple stupid!keep it simple stupid! "Tudo deve ser feito da forma mais simples possível,"Tudo deve ser feito da forma mais simples possível, mas não mais simples que isso."mas não mais simples que isso." (Albert Eistein)(Albert Eistein) Tomoyasu Hotei - Battle Without Honor or HumanityTomoyasu Hotei - Battle Without Honor or Humanity (Kill Bill Vol. 1 Soundtrack)(Kill Bill Vol. 1 Soundtrack)
  50. 50. ReferênciasReferências  Introdução ao Shell Script, Aurélio Marinho Jargas  Linux – O guia essencial, E. Siever, A.Weber, S. Figgins, R. Love e A. Robbins  O livro oficial do Ubuntu, Benjamin Mako Hill e outros  Unix - Guia do Usuário, Rebecca Thomas  wiki.forumdebian.com.br  www.linuxnared.com.br  www.guiadohardware.net  www.vivaolinux.com.br  www.vivaolinux.com.br/~aleniac  http://pt.wikipedia.org/wiki/Unix  http://www. inf.ufpr.br/afms03/shell3.html  http://pt.wikipedia.org/wiki/LINUX_Guia_de_Comandos  http://www.infowester.com/linprocessos.php

×