minicurso gnu/linux

50
LTI/ICEx - UFMG LTI/ICEx - UFMG Laboratório de Tecnologia da Informação Laboratório de Tecnologia da Informação Mini Curso Mini Curso Introdução ao Sistema Operacional Introdução ao Sistema Operacional GNU/Linux GNU/Linux Alexandre Elias dos Santos ([email protected]) Alexandre Elias dos Santos ([email protected]) José Cassimiro Silva ([email protected]) José Cassimiro Silva ([email protected])

Upload: alexandre-dos-sntoas

Post on 25-Jul-2015

132 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Minicurso GNU/Linux

LTI/ICEx - UFMGLTI/ICEx - UFMGLaboratório de Tecnologia da InformaçãoLaboratório de Tecnologia da Informação

Mini CursoMini Curso

Introdução ao Sistema Operacional Introdução ao Sistema Operacional GNU/LinuxGNU/Linux

Alexandre Elias dos Santos ([email protected])Alexandre Elias dos Santos ([email protected])

José Cassimiro Silva ([email protected])José Cassimiro Silva ([email protected])

Page 2: Minicurso GNU/Linux

Sistemas Operacionais (SO)Sistemas Operacionais (SO)

1945 - 1955 – Na primeira geração de computadores, o controle era feito de forma manual via hardware (não havia 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).

Page 3: Minicurso GNU/Linux

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

Page 4: Minicurso GNU/Linux

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.

Page 5: Minicurso GNU/Linux

Projeto GNUProjeto GNU

Sistema Operacional(SO) 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.

Page 6: Minicurso GNU/Linux

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 necessidade (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 2 e 4.

Page 7: Minicurso GNU/Linux

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.

Page 8: Minicurso GNU/Linux

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.

Page 9: Minicurso GNU/Linux

Á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

Page 10: Minicurso GNU/Linux

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.

Page 11: Minicurso GNU/Linux

KDEKDE

Page 12: Minicurso GNU/Linux

GnomeGnome

Page 13: Minicurso GNU/Linux

IceWMIceWM

Page 14: Minicurso GNU/Linux

Compiz - Desktop 3DCompiz - Desktop 3D

Page 15: Minicurso GNU/Linux

Compiz - Desktop 3DCompiz - Desktop 3D

Page 16: Minicurso GNU/Linux

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.

Page 17: Minicurso GNU/Linux

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.

Page 18: Minicurso GNU/Linux

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.

Page 19: Minicurso GNU/Linux

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

Page 20: Minicurso GNU/Linux

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!

Page 21: Minicurso GNU/Linux

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.

Page 22: Minicurso GNU/Linux

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.

Page 23: Minicurso GNU/Linux

Sistema de Arquivos e PartiçõesSistema de Arquivos e Partições

# / was on /dev/sda1 during installationUUID=26a34652-710b-46c1-87d9-08aa186d4d3d / ext3 errors=remount-ro 0 1# /media/dados was on /dev/sda5 during installationUUID=0ab24c3b-f61f-4b85-b1bf-1da679331ead /home ext3 defaults 0 2# swap was on /dev/sda2 during installationUUID=cd5a32ed-e52f-4858-a210-fd2244095ae3 none swap sw 0 0# /media/backup on /dev/sdb1/dev/sdb1 /media/backup ext3 defaults 0 2

# / was on /dev/sda1 during installationUUID=26a34652-710b-46c1-87d9-08aa186d4d3d / ext3 errors=remount-ro 0 1# /media/dados was on /dev/sda5 during installationUUID=0ab24c3b-f61f-4b85-b1bf-1da679331ead /home ext3 defaults 0 2# swap was on /dev/sda2 during installationUUID=cd5a32ed-e52f-4858-a210-fd2244095ae3 none swap sw 0 0# /media/backup on /dev/sdb1/dev/sdb1 /media/backup ext3 defaults 0 2

Arquivo /etc/fstab

Page 24: Minicurso GNU/Linux

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.

Page 25: Minicurso GNU/Linux

Especificação de Rotas (Path)Especificação de Rotas (Path)

Exibindo o path em uso:

:~$ pwd # onde estou?

Rota absoluta, exemplos:

:~$ ls /home/fulano/Documentos

:~$ ls /home

Rota relativa (parcial), exemplos:

:~$ ls Documentos

:~$ ls ../ # lista pasta pai (/home)

:~$ ls ../../etc/passwd # sobe até o diretório raiz, a pasta avô.

Nota: é importante observar que o diretório corrente usado nos comandos acima é o home do usuário fulano (~).

Page 26: Minicurso GNU/Linux

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

Page 27: Minicurso GNU/Linux

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

Page 28: Minicurso GNU/Linux

Encanamento de ComandosEncanamento de Comandos

Exemplo de pipeline com o operador '|'

Page 29: Minicurso GNU/Linux

Operadores de Redirecionamento de Operadores de Redirecionamento de Entrada e Saída (Entrada e Saída (<<, , >> e e >>>>))

:~$ mutt -s ”Relatório” -a report.txt -- [email protected] < mensagem.txt

:~$ mutt -s ”Relatório” -a report.txt -- [email protected] < 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:

Page 30: Minicurso GNU/Linux

Sed – Editor de texto não iterativoSed – Editor de texto não iterativo

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.

Page 31: Minicurso GNU/Linux

Metacaracteres e Expressões Metacaracteres e Expressões RegularesRegulares

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]*^GNULinux$

^.$[[:alfnum:]][aeiou1-3]

x{n,m}

qualquer quantidade do caractere precendente, X, inclusive zeroqualquer tipo de caractere entre as palavras gnu e linuxzero ou mais caracteres de qualquer tiposomente dígitoszero ou mais caracteres alfabéticoslinhas cujo início seja a palavra GNUlinhas cujo final tenha a palavra Linuxlinhas que contém apenas um caractere qualquercaracteres alfanuméricosvogais ou numeros 1 ou 2 ou 3frequência de n a m do caractere precedente, x

Quadro com algumas expressões regulares.

Page 32: Minicurso GNU/Linux

Exemplos de Uso de MetacaracteresExemplos de Uso de Metacaracteres

aleniac@crisolita:~$ cat /etc/crontab | grep cron....ly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

aleniac@crisolita:~$ cat /etc/crontab | grep cron....ly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

aleniac@crisolita:~$ grep cron.*ly /etc/crontab | sed 's/[0-9][0-9]\t6/18/'17 * * * * root cd / && run-parts --report /etc/cron.hourly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

aleniac@crisolita:~$ grep cron.*ly /etc/crontab | sed 's/[0-9][0-9]\t6/18/'17 * * * * root cd / && run-parts --report /etc/cron.hourly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Busca linhas contendo a palavra cron seguida de 4 caracteres quaisquer mais a palavra ly:

Exibe modificação dos horários de execução dos arquivos do cron em /etc:

Page 33: Minicurso GNU/Linux

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

Page 34: Minicurso GNU/Linux

Introdução à Programação Introdução à Programação em Shell Bashem Shell Bash

Page 35: Minicurso GNU/Linux

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

Page 36: Minicurso GNU/Linux

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

Page 37: Minicurso GNU/Linux

Criando um Shell ScriptCriando um Shell Script

Passos para criar um Script Shell:➔ Criar e salvar o arquivo com o 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

Nota: O par de caracteres ./ indica o diretório corrente do terminal em uso.

Page 38: Minicurso GNU/Linux

Código em Shell ScriptCódigo em Shell Script

#!/bin/bash

# Meu primeiro script em Shell Bash

echo "Entre com a palavra chave:"read chave # ler entradafind ../ -name "$chave" # busca arquivoecho "Terminei a busca." # exibe saida

#!/bin/bash

# Meu primeiro script em Shell Bash

echo "Entre com a palavra chave:"read chave # ler entradafind ../ -name "$chave" # busca arquivoecho "Terminei a busca." # exibe saida

Page 39: Minicurso GNU/Linux

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):

Importante: é um bom hábito usar as aspas duplas (”); deve-se deixar espaço entre a expressão de teste e os colchetes.

Page 40: Minicurso GNU/Linux

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 (>=).

Page 41: Minicurso GNU/Linux

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 $?

Page 42: Minicurso GNU/Linux

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

Page 43: Minicurso GNU/Linux

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

Page 44: Minicurso GNU/Linux

Comando de Iteração WhileComando de Iteração While

Exemplo do uso do while:

x=0 # inicializa xwhile [ "$x" -lt 9 ]do

echo ”linha: $x”x=$(($x+1)) # x = x + 1

done

x=0 # inicializa xwhile [ "$x" -lt 9 ]do

echo ”linha: $x”x=$(($x+1)) # x = x + 1

done

Page 45: Minicurso GNU/Linux

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

Page 46: Minicurso GNU/Linux

Comando de Iteração ForComando de Iteração For

Exemplos de uso do comando for:

for i in $(seq 1 10)do

echo ”iteração: $i”done

for i in $(seq 1 10)do

echo ”iteração: $i”done

for x in *.txtdo

echo ”achei o arquivo $x”done

for x in *.txtdo

echo ”achei o arquivo $x”done

Page 47: Minicurso GNU/Linux

Comando de Iteração ForComando de Iteração For

Exemplo de uso do for com vetores:

v=("one" "two" "three" "four") # vetorcont=0 # contador# v[@] são todos elementos de vfor x in ${v[@]}do

echo ”conteúdo de v[$cont] = $x”cont=$(($cont + 1))

done

v=("one" "two" "three" "four") # vetorcont=0 # contador# v[@] são todos elementos de vfor x in ${v[@]}do

echo ”conteúdo de v[$cont] = $x”cont=$(($cont + 1))

done

Page 48: Minicurso GNU/Linux

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".

Page 49: Minicurso GNU/Linux

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)

Page 50: Minicurso GNU/Linux

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