Você está na página 1de 60

LINUX

Comandos & Sintaxes


Instrues tericas para todas distribuies

1. Edio Ronaldo da Paz Dourado 1

Notas Iniciais
Esta documentao relata sobre a utilidade do modo console com base no linux Debian/ubuntu, ou seja, foi documentada sob demanda do terminal. Servir teoricamente para uma abrangncia a todos os terminais, sendo que o treino no terminal muito importante para uso de todas distribuies linux. Este documento no relata nada sobre redes envolvendo linux e windows, no momento destinado a quem est comeando no Linux. Enfim, dedico est obra aos meus colegas de faculdade e amigos interessado no mundo da liberdade linux. Em breve ser lanado uma edio documentando sobre redes.

Direitos autorais
As condies de uso est sob os termos da GPL- General Public License. permitido fazer cpias, enviar para amigos, colocar para download, fazer divulgao deste trabalho, enfim, distribu-lo sem interesse comercial. Portanto a modificao deste documento somente deve acontecer sob os termos do GNU Free Documentation License.

Copyright 2010 Ronaldo da Paz Dourado Tecnlogo em Redes. Brazil. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License: Linux Comandos e Sintaxes. e-mail's: ron_dourado@hotmail.com rondapaz@gmail.com

Sumrio
Notas Iniciais.............................................................................................................................................................2 Direitos autorais .......................................................................................................................................................2 Introduo..................................................................................................................................................................6 O que Linux.................................................................................................................................................6 Linux ou GNU/Linux?...................................................................................................................................6 O kernel Linux...............................................................................................................................................6 O sistema operacional Linux (ou GNU/Linux)..............................................................................................8 1 Estudo introdutrio...............................................................................................................................................11 Terminal Virtual (console).................................................................................................................................12 Caracteres Curingas...........................................................................................................................................13 Tipos de Execuo de comandos/programas.....................................................................................................15 1.1 Manipulando arquivos e diretrios..............................................................................................................16 cd .................................................................................................................................................................16 pwd ..............................................................................................................................................................16 ../..................................................................................................................................................................16 ./...................................................................................................................................................................16 cp .................................................................................................................................................................17 dir ................................................................................................................................................................17 du .................................................................................................................................................................17 ls ..................................................................................................................................................................17 ls -l ..............................................................................................................................................................17 ls -la .............................................................................................................................................................17 ls -lha ...........................................................................................................................................................17 mkdir -p .......................................................................................................................................................17 touch.............................................................................................................................................................18 mv ...............................................................................................................................................................18 rm -rdf .........................................................................................................................................................18 chmod +x ....................................................................................................................................................18 chattr ............................................................................................................................................................18 split ..............................................................................................................................................................18 cat ................................................................................................................................................................18 find ..............................................................................................................................................................19 ln -s ..............................................................................................................................................................19 who ..............................................................................................................................................................19 whoami.........................................................................................................................................................19 history .........................................................................................................................................................19 1.2 Compactando arquivos................................................................................................................................20 zip ................................................................................................................................................................20 unzip.............................................................................................................................................................20 tar ................................................................................................................................................................20 7z .................................................................................................................................................................20 1.3 Editores do sistema......................................................................................................................................21 nano..............................................................................................................................................................21 vi..................................................................................................................................................................21 Explicando melhor o editor vi......................................................................................................................21 2. Sistema................................................................................................................................................................23 2.1 Comandos do sistema..................................................................................................................................23 date -s ..........................................................................................................................................................23 clear .............................................................................................................................................................23 uname -a.......................................................................................................................................................23 cal ................................................................................................................................................................23 lshw..............................................................................................................................................................23 fdisk..............................................................................................................................................................23

Criando parties com o fdisk ....................................................................................................................24 mount ..........................................................................................................................................................25 Montando uma imagem de extenso .iso, ...................................................................................................25 mkfs .............................................................................................................................................................26 df -h..............................................................................................................................................................26 Fazendo Backup da MBR utilizando o dd...................................................................................................26 2.2 Entendendo processos..................................................................................................................................27 top................................................................................................................................................................27 ps aux...........................................................................................................................................................27 kill ...............................................................................................................................................................27 pstree ...........................................................................................................................................................27 2.3 Memria RAM e administrao da memria SWAP...................................................................................27 free -m .........................................................................................................................................................27 Administrando a swap..................................................................................................................................28 2.4 Usando os programas: genisoimage; dd; cdrecord; cdparanoia; lame.........................................................28 2.4.1 Criando imagens ISO apartir de dados no computador......................................................................28 2.4.2 Fazendo cpias de CD's e DVD's de dados........................................................................................29 2.4.3 Gravando um CD/DVD apartir de uma imagem ISO.........................................................................30 2.4.4 Gravando CD's de msicas tradicionais via linha de comando..........................................................31 2.4.5 Convertendo CD's em formato mp3...................................................................................................31 2.4.6 Gravando CD's de udio e dados juntos.............................................................................................32 2.5 Entendendo o apt-get...................................................................................................................................32 2.5.1 Introduo ..........................................................................................................................................32 2.5.2 Comandos afins do apt-get..................................................................................................................32 2.5.4 Como utilizar o apt-get ?.....................................................................................................................33 2.5.5 Instalando pacotes...............................................................................................................................34 2.5.6 Removendo pacotes com o apt-get.....................................................................................................35 2.5.7 Atualizando pacotes com o apt-get ....................................................................................................35 2.5.8 Descobrindo nomes de pacotes...........................................................................................................36 2.5.9 Mostrando detalhes de um pacote ......................................................................................................37 2.5.10 Finalizando........................................................................................................................................38 2.6 Configurando RAID no Linux ....................................................................................................................38 2.6.1 Conhecimentos necessrios.................................................................................................................39 2.6.2 Definindo RAID..................................................................................................................................39 2.6.3 Tipos de RAID ...................................................................................................................................40 2.6.4 Usando o mdadm para Configurar o Armazenamento Baseado no RAID e Multi-localidade...........41 2.6.4.1. Criando um Dispositivo RAID com mdadm...................................................................................41 2.6.4.2 Editando o FSTAB para automatizar o RAID e mont-lo no boot.................................................43 2.6.4.3 Criando um Dispositivo Multi-localidade com mdadm...................................................................44 2.6.4.4 Nota..................................................................................................................................................44 2.7 Trabalhando com usurios, grupos e permisses.........................................................................................46 2.7.1 Adicionado usurio ao sistema............................................................................................................46 2.7.2 Entendendo permisses.......................................................................................................................46 2.7.3 Grupos: adicionando, deletando e alterando o dono...........................................................................47 2.8 Determinando agendamento com o cron.....................................................................................................47 2.8.1 Introduo...........................................................................................................................................47 2.8.2 Configurando o cron por usurio........................................................................................................50 2.8.3 Resumo de aprendizagem do cron......................................................................................................53 2.9 Usando o gnupgp (GPG).............................................................................................................................54 2.10 Entendendo dispositivos de loop (loop0 a loop7)......................................................................................57 2.10.1 Criando um volume de dados............................................................................................................57 2.10.1 Criando um volume de dados com criptografia................................................................................60 Referncias Bibliogrficas......................................................................................................................................61

Introduo O que Linux Linux ao mesmo tempo um kernel (ou ncleo) e o sistema operacional que roda sobre ele, dependendo do contexto em que voc encontrar a referncia. O kernel Linux foi criado em 1991 por Linus Torvalds, ento um estudante finlands, e hoje mantido por uma comunidade mundial de desenvolvedores (que inclui programadores individuais e empresas como a IBM, a HP e a Hitachi), coordenada pelo mesmo Linus, agora um desenvolvedor reconhecido mundialmente e mais representativo integrante da Linux Foundation. O Linux adota a GPL, uma licena de software livre o que significa, entre outras coisas, que todos os interessados podem us-lo e redistribu-lo, nos termos da licena. Aliado a diversos outros softwares livres, como o KDE, o GNOME, o Apache, o Firefox, os softwares do sistema GNU e o OpenOffice.org, o Linux pode formar um ambiente moderno, seguro e estvel para desktops, servidores e sistemas embarcados.

Linux ou GNU/Linux? A Free Software Foundation advoga que o sistema operacional formado pelo ncleo Linux e o conjunto de utilitrios e aplicativos que incluem aqueles desenvolvidos pelo seu projeto GNU deve ser chamado de GNU/Linux, e no simplesmente de Linux. A questo tem sido objeto de intensos debates h anos, sem que um posicionamento geral e definitivo seja alcanado. Naturalmente a posio da FSF no a nica existente. So conhecidas as declaraes de Linus Torvalds (que acharia interessante a existncia de uma distribuio chamada GNU Linux e mantida pelo projeto GNU), de Eric Raymond e de John Dvorak, entre outros. H ainda uma interessante citao da prpria FSF afirmando que um nome como GNU/X11/Apache/Linux/TeX/Perl/Python/FreeCiv seria absurdo, portanto necessrio estabelecer um limite. Mas, diz ela, No pode ser justo dar todo o crdito para uma contribuio secundria (Linux) enquanto se omite a contribuio principal (GNU). Outra citao digna de nota vem de um editorial do veterano Linux Journal: Talvez Richard Stallman esteja frustrado porque Linus recebeu as glrias por ter feito aquilo que Stallman pretendia fazer. O kernel Linux Inicialmente, o kernel Linux foi desenvolvido como um hobby por Linus Torvalds (ento um estudante) com o objetivo de desenvolver seu prprio sistema operacional Unix5

like que rodasse em processadores Intel 80386. Linus chegou a estudar o Minix, um sistema similar de autoria do famoso acadmico Andrew Tanenbaum, mas no ficou satisfeito com a arquitetura deste (que no era um software livre, inclusive) e resolveu criar o seu prprio sistema. O projeto Linux foi publicamente lanado em 1991 em uma famosa mensagem para a Usenet.

Tux, o logo e mascote do Linux Hoje o Linux um kernel hbrido monoltico. Drivers de dispositivo e extenses do kernel tipicamente rodam com acesso total ao hardware, embora alguns rodem em espao de usurio. Ao contrrio dos kernels monolticos padro, os drivers de dispositivo so facilmente configurados como mdulos, e carregados e descarregados enquanto o sistema est rodando. Tambm ao contrrio de kernels monolticos padro, drivers de dispositivo podem ser pr-inseridos sob certas condies. Essa ltima caracterstica foi adicionada para corrigir o acesso a interrupes de hardware, e para melhorar o suporte a multiprocessamento simtrico. Embora Linus Torvalds no tenha tido como objetivo inicial tornar o Linux um sistema portvel, ele evoluiu nessa direo. Linux hoje, na verdade, um dos kernels de sistema operacional mais portados, rodando em sistemas desde o iPaq (um computador porttil) at o IBM S/390 (um volumoso e altamente custoso mainframe), passando por vrias arquiteturas: Intel, StrongARM, PowerPC, Alpha etc., com grande penetrao tambm em dispositivos embarcados, como handhelds, PVR, vdeogames e centrais de entretenimento. De qualquer modo, importante notar que os esforos de Linus foram tambm dirigidos a um outro tipo de portabilidade. Portabilidade, de acordo com Linus, era a habilidade de facilmente compilar aplicativos de uma variedade de origens no seu sistema; portanto o Linux originalmente se tornou popular em parte devido ao esforo para que fosse fcil fazer com que cdigos de aplicativos disponveis para outros sistemas (inclusive no Unix e no sistema GNU) rodassem no Linux. Hoje, Linus Torvalds continua a dirigir o desenvolvimento do kernel, enquanto outros subsistemas (como ferramentas de desenvolvimento, ambientes grficos e aplicativos) so desenvolvidos independentemente. A tarefa de integrar todos estes componentes para formar um sistema completo desempenhada pelas empresas e organizaes que mantm distribuies de Linux.

O sistema operacional Linux (ou GNU/Linux) Logo que Linus Torvalds passou a disponibilizar o Linux, ele apenas disponibilizava o kernel (ncleo) de sua autoria juntamente com alguns utilitrios bsicos. O prprio usurio devia encontrar os outros programas, compil-los e configur-los e, talvez por isso, o Linux tenha comeado a ter a fama de sistema operacional apenas para tcnicos. Foi neste ambiente que surgiu a MCC (Manchester Computer Centre), a primeira distribuio Linux, feita pela Universidade de Manchester, na tentativa de poupar algum esforo na instalao do Linux. Hoje em dia, um sistema operacional Linux completo (ou uma distribuio de Linux) uma coleo de softwares (livres ou no) criados por indivduos, grupos e organizaes ao redor do mundo, tendo o Linux como seu ncleo. Companhias como a Red Hat, a Novell/SUSE, a Mandriva (unio da Mandrake com a Conectiva), bem como projetos de comunidades como o Debian, o Ubuntu, o Gentoo e o Slackware, compilam o software e fornecem um sistema completo, pronto para instalao e uso. As distribuies de GNU/Linux comearam a ter maior popularidade a partir da segunda metade da dcada de 1990, como uma alternativa livre para os sistemas operacionais Microsoft Windows e Mac OS, principalmente por parte de pessoas acostumadas com o Unix na escola e no trabalho. O sistema tornou-se popular no mercado de servidores, principalmente para a Web e servidores de bancos de dados, inclusive no ambiente corporativo onde tambm comeou a ser adotado em desktops especializados. No decorrer do tempo vrias distribuies surgiram e desapareceram, cada qual com sua caracterstica. Algumas distribuies so maiores outras menores, dependendo do nmero de aplicativos e sua finalidade. Algumas distribuies de tamanhos menores cabem em um disquete com 1,44 MB, outras precisam de vrios CDs, existem at algumas que tem verses em DVD. Cada uma tem seu pblico e sua finalidade. Descrio das principais distribuies linux no dia a dia: 1.Mandriva, o saudosista do Conectiva - garanto que muitos entusiastas de Linux que voc conhea j usou o Conectiva alguma vez, pois eles mudaram a histria do open source no Brasil. uma robusta distribuio, tanto para desktop como para servidores. 2.Fedora, o saudosista do Red Hat - antes do Conectiva existir, a distribuio que era mais usada na poca era o Red Hat ( que hoje pago e est mais voltado para servidores ) criou um projeto para a comunidade de codinome Fedora ( que significa chapu de feltro, aquele que o Indiana Jones usa ). 3.openSUSE, o administrador preciso - a distribuio alem SuSE apesar de ser paga, sempre se mostrou com excelente documentao e suportada por empresas grandes para usala como servidor. O projeto opensuse oferece uma verso open source com a mesma qualidade da paga. 7

4.Slackware, o simplista KISS - para que usar um milho se scripts se com meia dzia de arquivos possvel configurar quase tudo no sistema? Essa a filosofia Slackware, ser bem aberto para poder configurar a mquina, compilar e instalar as coisas do jeito que quiser, sem ficar muito preso programas gerenciadores de pacotes. Essa distribuico sugerida para quem j conhece um pouco de Unix e deseja algo mais parecido com os outros tipos de Unix existentes. 5.Gentoo, o louco por performance - alm de ser bem simples tambm, o Gentoo oferece um esquema de compilao de pacotes baseado no Ports do FreeBSD, que permite uma configurao especfica para cada arquitetura . 6.Xandros, o Linux ala XP - essa distribuio veio do descontinuado Corel Linux, uma distribuio que visava trazer muitos usurios do Windows para o seu sistema operacional. O Xandros segue essa mesma linha e por no mnimo 99 dlares voc compra uma verso para seu desktop. 7.Debian, o devoto do GNU - essa a distribuio preferida do criador do Linux, que preza sempre a adoo de software livre para os seus aplicativos. 8.Knoppix, o gamer - essa distribuio baseada no Debian, mas ela foi uma das primeiras a ser um LiveCD, que permite o seu uso em qualquer computador sem a necessidade de instalar nada,apenas bootar a mquina com um CD. Muitos LiveCDs de jogos e emuladores usam essa distribuio. 9.Kurumin NG, o brasileiro orgulhoso - essa distribuio uma das coisas mais notveis a quantidade de scripts criado para os diversos tipos de hardware e diversos provedores de acesso a Internet que temos aqui no Brasil. Baseada no Debian com interface KDE, uma excelente opo sem dvida! 10.Ubuntu, o cara da moda - hoje a mais famosa distribuio e muito difundida pelo mundo, apesar de levar a fama por estar na moda ela tem caractersticas que outras distribuies tem h anos, ela simplesmente foi criada focando a usabilidade. Se procura algo somente para uso em desktop, essa uma excelente opo. Eu sugiro ainda o uso do Kubuntu, que utiliza a interface KDE ao invs do GNOME. 11.Linuxmint Uma distribuio derivada do ubuntu, com objetivo de facilitar as coisas para o usurio. Todos os sistemas GNU/Linux possui a seguinte estrutura bsica de diretrios organizados segundo o FHS (Filesystem Hierarchy Standard): /bin Contm arquivos programas do sistema que so usados com freqncia pelos usurios. /boot Contm arquivos necessrios para a inicializao do sistema. /cdrom Ponto de montagem da unidade de CD-ROM. /media Ponto de montagem de dispositivos diversos do sistema (rede, pen-drives, CD-ROM em distribuies mais novas). 8

/dev Contm arquivos usados para acessar dispositivos (perifricos) existentes no computador. /etc Arquivos de configurao de seu computador local. /floppy Ponto de montagem de unidade de disquetes /home Diretrios contendo os arquivos dos usurios. /lib Bibliotecas compartilhadas pelos programas do sistema e mdulos do kernel. /lost+found Local para a gravao de arquivos/diretrios recuperados pelo utilitrio fsck.ext2. Cada partio possui seu prprio diretrio lost+found. /mnt Ponto de montagem temporrio. /proc Sistema de arquivos do kernel. Este diretrio no existe em seu disco rgido, ele colocado l pelo kernel e usado por diversos programas que fazem sua leitura, verificam configuraes do sistema ou modificar o funcionamento de dispositivos do sistema atravs da alterao em seus arquivos. /root Diretrio do usurio root. /sbin Diretrio de programas usados pelo superusurio (root) para administrao e controle do funcionamento do sistema. /tmp Diretrio para armazenamento de arquivos temporrios criados por programas. /usr Contm maior parte de seus programas. Normalmente acessvel somente como leitura. /var Contm maior parte dos arquivos que so gravados com freqncia pelos programas do sistema, e-mails, spool de impressora, cache, etc.

1 Estudo introdutrio

Para entendermos melhor o linux, leia atentamente este tpico introdutrio, com ateno, ento vejamos: O que o terminal? Nada mais do que uma rea de console, ou seja, onde tenho controle total do meu linux. Terminal o meio onde posso configurar o meu linux para um bom funcionamento atravs das linhas de comando e edio de scripts. Comando um pequeno programa, que tem por finalidade a inteno de provocar algo, ou seja, quando executado retorna a um resultado. Um sistema operacional constitudo por vrios programas, sendo que um programa constitudo por vrios comandos. O terminal tambm conhecido como "shell". Isto , um programa responsvel em interpretar as instrues enviadas pelo usurio e seus programas ao sistema operacional (o kernel). Ele que executa comandos lidos do dispositivo de entrada padro (teclado) ou de um arquivo executvel. a principal ligao entre o usurio, os programas e o kernel. O GNU/Linux possui diversos tipos de interpretadores de comandos, entre eles podemos destacar o bash, ash, csh, tcsh, sh, etc. Entre eles o mais usado o bash. O interpretador de comandos do DOS, por exemplo, o command.com. Os comandos podem ser enviados de duas maneiras para o interpretador: interativa e no-interativa: Interativa Os comandos so digitados no aviso de comando e passados ao interpretador de comandos um a um. Neste modo, o computador depende do usurio para executar uma tarefa, ou prximo comando. No-interativa So usados arquivos de comandos criados pelo usurio (scripts) para o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um e dependendo do trmino do comando, o script pode checar 10

qual ser o prximo comando que ser executado e dar continuidade ao processamento. Este sistema til quando temos que digitar por vrias vezes seguidas um mesmo comando ou para compilar algum programa complexo. O shell Bash possui ainda outra caracterstica interessante: A completao dos nomes. Isto feito pressionando-se a tecla TAB. Por exemplo, se digitar "ls tes" e pressionar <tab>, o Bash localizar todos os arquivos que iniciam com "tes" e completar o restante do nome. Caso a completao de nomes encontre mais do que uma expresso que satisfaa a pesquisa, ou nenhuma, emitido um beep. Se voc apertar novamente a tecla TAB imediatamente depois do beep, o interpretador de comandos ir listar as diversas possibilidades que satisfazem a pesquisa, para que voc possa escolher a que lhe interessa. A completao de nomes funciona sem problemas para comandos internos. Exemplo: ech (pressione TAB). ls /vm(pressione TAB) Terminal Virtual (console) Terminal (ou console) o teclado e tela conectados em seu computador. O GNU/Linux faz uso de sua caracterstica multi-usuria usando os "terminais virtuais". Um terminal virtual uma segunda seo de trabalho completamente independente de outras, que pode ser acessada no computador local ou remotamente via telnet, rsh, rlogin, etc. No GNU/Linux, em modo texto, voc pode acessar outros terminais virtuais segurando a tecla ALT e pressionando F1 a F6. Cada tecla de funo corresponde a um nmero de terminal do 1 ao 6 (o stimo usado por padro pelo ambiente grfico X). O GNU/Linux possui mais de 63 terminais virtuais, mas apenas 6 esto disponveis inicialmente por motivos de economia de memria RAM . Se estiver usando o modo grfico, voc deve segurar CTRL+ ALT enquanto pressiona uma tela de <F1> a <F6>. Para voltar ao modo grfico, pressione CTRL+ALT+ <F7>. Um exemplo prtico: Se voc estiver usando o sistema no Terminal 1 com o nome "joao" e desejar entrar como "root" para instalar algum programa, segure ALT enquanto pressiona <F2> para abrir o segundo terminal virtual e faa o login como "root". Ser aberta uma nova seo para o usurio "root" e voc poder retornar a hora que quiser para o primeiro terminal pressionando ALT+<F1>. 11

Caracteres Curingas Curingas (ou referncia global) um recurso usado para especificar um ou mais arquivos ou diretrios do sistema de uma s vez. Este um recurso permite que voc faa a filtragem do que ser listado, copiado, apagado, etc. So usados 4 tipos de curingas no GNU/Linux: "*" - Faz referncia a um nome completo/restante de um arquivo/diretrio. "?" - Faz referncia a uma letra naquela posio. [padro] - Faz referncia a uma faixa de caracteres de um arquivo/diretrio. Padro pode ser: [a-z][0-9] - Faz referncia a caracteres de a at z seguido de um caracter de 0 at 9. [a,z][1,0] - Faz a referncia aos caracteres a e z seguido de um caracter 1 ou 0 naquela posio. [a-z,1,0] - Faz referncia a intervalo de caracteres de a at z ou 1 ou 0 naquela posio. A procura de caracteres "Case Sensitive" assim se voc deseja que sejam localizados todos os caracteres alfabticos voc deve usar [a-zA-Z]. Caso a expresso seja precedida por um ^, faz referncia a qualquer caracter exceto o da expresso. Por exemplo [^abc] faz referncia a qualquer caracter exceto a, b e c. {padres} - Expande e gera strings para pesquisa de padres de um arquivo/diretrio. X{ab,01} - Faz referncia a seqencia de caracteres Xab ou X01 X{a-z,10} Faz referencia a seqencia de caracteres Xa-z e X10. O que diferencia este mtodo de expanso dos demais que a existncia do arquivo/diretrio opcional para gerao do resultado. Isto til para a criao de diretrios. Lembrando que os 4 tipos de curingas ("*", "?", "[]", "{}") podem ser usados juntos. Para entender melhor vamos a prtica: 12

Vamos dizer que tenha 5 arquivo no diretrio /usr/teste: teste1.txt, teste2.txt, teste3.txt, teste4.new, teste5.new. Caso deseje listar todos os arquivos do diretrio /usr/teste voc pode usar o coringa "*" para especificar todos os arquivos do diretrio: cd /usr/teste e ls * ou ls /usr/teste/*. No tem muito sentido usar o comando ls com "*" porque todos os arquivos sero listados se o ls for usado sem nenhum Coringa. Agora para listar todos os arquivos teste1.txt, teste2.txt, teste3.txt com excesso de teste4.new, teste5.new, podemos usar inicialmente 3 mtodos: Usando o comando ls *.txt que pega todos os arquivos que comeam com qualquer nome e terminam com .txt. Usando o comando ls teste?.txt, que pega todos os arquivos que comeam com o nome teste, tenham qualquer caracter no lugar do coringa ? e terminem com .txt. Com o exemplo acima teste*.txt tambm faria a mesma coisa, mas se tambm tivssemos um arquivo chamado teste10.txt este tambm seria listado. Usando o comando ls teste[1-3].txt, que pega todos os arquivos que comeam com o nome teste, tenham qualquer caracter entre o nmero 1-3 no lugar da 6a letra e terminem com .txt. Neste caso se obtm uma filtragem mais exata, pois o coringa ? especifica qualquer caracter naquela posio e [] especifica nmeros, letras ou intervalo que ser usado. Agora para listar somente teste4.new e teste5.new podemos usar os seguintes mtodos: ls *.new que lista todos os arquivos que terminam com .new ls teste?.new que lista todos os arquivos que comeam com teste, contenham qualquer caracter na posio do coringa ? e terminem com .new. ls teste[4,5].* que lista todos os arquivos que comeam com teste contenham nmeros de 4 e 5 naquela posio e terminem com qualquer extenso. Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto de

13

cada um. O que pretendi fazer aqui foi mostrar como especificar mais de um arquivo de uma s vez. O uso de curingas ser til ao copiar arquivos, apagar, mover, renomear, e nas mais diversas partes do sistema. Alias esta uma caracterstica do GNU/Linux: permitir que a mesma coisa possa ser feita com liberdade de vrias maneiras diferentes. Tipos de Execuo de comandos/programas No linux existe dois tipos de usurio, o comum identificado pelo smbolo $ e o administrador identificado pelo smbolo #. Isto , certos comandos so executados pelos usurios comuns e o administrador pode executar todos os tipos de comandos. Aviso de comando [Administrador # (root) ] ou [Usurio comum $(usurio simples)]. Um programa pode ser executado de duas formas: Primeiro Plano - Tambm chamado de foreground. Quando voc deve esperar o trmino da execuo de um programa para executar um novo comando. Somente mostrado o aviso de comando aps o trmino de execuo do comando/programa. Segundo Plano - Tambm chamado de background. Quando voc no precisa esperar o trmino da execuo de um programa para executar um novo comando. Aps iniciar um programa em background, mostrado um nmero PID (identificao do Processo) e o aviso de comando novamente mostrado, permitindo o uso normal do sistema. O programa executado em background continua sendo executado internamente. Aps ser concludo, o sistema retorna uma mensagem de pronto acompanhado do nmero PID do processo que terminou. Para iniciar um programa em primeiro plano, basta digitar seu nome normalmente. Para iniciar um programa em segundo plano, acrescente o caracter "&" aps o final do comando. OBS: Mesmo que um usurio execute um programa em segundo plano e saia do sistema, o programa continuar sendo executado at que seja concludo ou finalizado pelo usurio que iniciou a execuo (ou pelo usurio root). Exemplo: find / -name boot.b & O comando ser executado em segundo plano e deixar o sistema livre para outras 14

tarefas. Aps o comando find terminar, ser mostrada uma mensagem.

COMANDOS ; O ponto e vrgula (;) no um comando, mas usado para indicar a finalizao de comandos. Pois assim podemos executar dois ou mais comandos ao mesmo tempo na mesma linha no terminal. nautilus permisso total na janela que se abre no modo grfico, depois fechada tudo normal. sudo su dar permisso de usurio root ao usurio logado. man Fundamental para visualizar manual de determinado comando.

SINTXES (# =usurio root e $=usurio comum) $ ls -la; date; cal

# nautilus

$ sudo su

$ man ls

1.1 Manipulando arquivos e diretrios

cd Acessa diretrios. pwd Mostra caminho de diretrio. ../ Retorna a um nvel anterior. ./

$ cd /home

$ pwd root@linux:/home/usuario/exemplo # ls ../ obs.: listar os arquivos de usurio e no do diretrio exemplo. root@linux:/home/usuario/exemplo # ./configure

15

Determina algo no local.

obs.: ideal para ativar scripts

cp Copia arquivos ou diretrios. Obs.: todos os diretrios entre chaves esto no / e separados por vrgula.

$ cp -r minhas-imagens /home/album # cp --preserve -R / {home/user/test,home/user/videos,/etc} /home/user/backup

dir Usado listar arquivos e diretrios. du Lista diretrios e mostra tamanho de arquivos ou diretrios. ls Lista arquivos. ls -l Lista arquivos visualizando o dono e o grupo e suas permisses. ls -la Lista arquivos ocultos e motra o dono, grupo e permisses. ls -lha Todas as funes dos ls anteriores, porm este mostra o tamanho dos arquivos. mkdir -p

$ dir -la

$ du -h; du -h arquivo

$ ls

$ ls -l

$ ls -la

$ ls -lha

# mkdir -p teste01/{teste02,teste03/

Cria rvore de diretrios, obdecendo {teste04,teste05}} o fechamento das chaves. 16

touch #touch nome.txt Usado para criar arquivos vazios mv Renomeia arquivos e tambm move se necessrio para outro diretrio. rm -rdf Remove arquivos ou diretrios. chmod +x Torna arquivos em executveis. chattr Protege arquivos, usa argumento +i para proteger e -i desfaz a proteo). Depois de inserir a proteo nem mesmo o usurio root pode alterar o arquivo, somente quando desfeita. split Quebra arquivos veja o manual digitando man split no terminal. Sintxe: quebrando um arquivo de vdeo de 30MB em trs pedaos de 10MB: cat Este comando tem vrias funes como por exemplo de visualizar o contudo de arquivos, criar lista do resultados de comandos e agrupar arquivos quebrados pelo # cat aranha.x* > homem_aranha2.avi # split -b 10m homem_aranha.avi aranha.x #chattr +i arquivo; chattr +i -R diretrio # chmod +x <nome do arquivo> # rm -rdf diretrio; arquivo.doc # mv arquivo.do file.doc

17

comando split. Na sintxe est montando as partes do arquivo de 30 M, quebrado antes em partes de 10M. find Pesquisa arquivos no disco, use o comando man e estude detalhadamente o comando, para ver seus argumentos. ln -s # ln -s nome_do_script /bin/nome_do_script # find -name arquivo

Usado para criar link's para arquivos, scripts, diretrios. Lembre da permisses, estude permisses de arquivos. who Mostra usurio logado e o nome do terminal que est logado. Informando horrios de inicializao. Veja man who. E estude seus atributos. whoami Mostra usurio history Visualiza histrico de comandos usados, ou seja, manipulados pelo usurio. Para visualizar o histrico por pausa, use o atributo |more. Para limpa o use history acrescentando o atributo -c

$ who

$ whoami

$ history $ history |more $ history -c

18

1.2 Compactando arquivos

zip Zip um compactador padro, ou seja, o mais conhecidos dos formatos de compresso zip. -r caso for um diretorio para compresso, -e significa que uma senha ser solicitada, caso no queira uma senha no use; -v de verbose para ver o andamento; #zip -r -e -v educativos.zip /home/usuario/educativos

unzip usado para descompactar arquivos zip's e visualiz-los o que possui em seu interior. tar um outro compactador muito eficiente, porm no usa senha. Para descompactar os arquivos tar.gz use o comando: #tar -xvvf educativos.tar.gz 7z um compactador bastante eficiente, com possibilidade de uso de senha. Para descompactar os arquivos 7z use o Argumentos: comando: a adicionada; e extrai somente arquivos; x extrai arquivos obedecendo rvore de #7z x educativos.7z Compacatando o diretrio educativos #7z a educativos.7z ./educativos #tar -cvvf educativos.tar.gz /home/usuario/educativos #unzip educativos.zip #unzip -v educativos.zip

19

diretrios. u faz update; d deletar; l listar arquivos contidos; t testar; -p inserir senha. 1.3 Editores do sistema

nano um programa editor do sistema utilizado para criar ou editar scripts para o sistema. vi um programa editor do sistema utilizado para criar ou editar scripts para o sistema. Explicando melhor o editor vi O editor de textos (modo caracter) vi muito utilizado no mundo Linux para editar arquivos de configurao, embora este o mais conceituado quando se trata de estudos para certificao linux. O vi apresenta 2 modos de uso: a) Modo de edio b) Modo de comando quando pressionamos a tecla < i >. quando chamamos o vi ou desabilitamos o modo de # vi arquivo # man vi #nano arquivo #man nano

edio pressionando a tecla <ESC>. Operaes bsicas do modo de comando: Obs.: Conceito de linha: Considerasse linha o texto digitado at o prximo enter. x apaga um caracter yy copia a linha corrente nyy copia n linhas 20

D nD p P dd ndd dDD cc ncc o O u . / n N e b

remove a linha corrente para posterior colagem remove n linhas para posterior colagem cola o texto copiado ou removido para a memria, aps o cursor cola o texto copiado ou removido para a memria, aps o cursor remove a linha corrente remove n linhas apaga do cursor at o final da linha elimina a linha corrente, permitindo a incluso imediata de uma nova linha elimina n linhas, permitindo a incluso imediata de uma nova linha insere linha em branco abaixo da linha corrente e habilita edio insere linha em branco acima da linha corrente e habilita edio desfaz as ltimas alteraes refaz o que u desfez procura palavra continua (next) a procura da palavra, para frente continua (next) a procura da palavra, para trs avana para a prxima palavra (final da palavra) aps o cursor retrocede para a palavra (incio da palavra) anterior ao cursor substitui o termo-antigo pelo termo-novo edita outro arquivo (novo ou j existente) insere na posio do cursor o arquivo

Obs.: Notar que necessrio pressionar a tecla <shift> para obter D (maisculo)

Obs.: Notar que necessrio pressionar a tecla <shift> para obter P (maisculo)

Obs.: Notar que necessrio pressionar a tecla <shift> para obter DD (maisculo)

Obs.: Notar que necessrio pressionar a tecla <shift> para obter O (maisculo)

Obs.: Notar que necessrio pressionar a tecla <shift> para obter N (maisculo)

<shift> :% s / termo-antigo / termo-novo <shift> :e nome-do-arquivo <shift> :r nome-do-arquivo especificado <shift> :q! <shift> :wq (ou x) <shift> :wq! (ou x!) <shift> :w <shift> :w! sai sem salvar sai gravando sai gravando, forando salva sem sair, forando salva sem sair

21

Obs.: Se digitarmos no prompt do Linux apenas vi, o editor entrar em operao com um arquivo em branco e sem nome. Se digitarmos no prompt do Linux vi <nome-doarquivo>, o editor entrar em operao com um arquivo em branco e com nome. Se digitarmos no prompt do Linux vi +8 <nome-do-arquivo>, abriremos o arquivo especfico na linha 8. 2. Sistema

2.1 Comandos do sistema

date -s Ajusta a data e hora entre aspas. Porm mostra a data quando digitado somente date. clear Usado para limpar a tela, porm as combinaes Ctrl + L, bem mais prtico. uname -a Visualiza a verso do kernel. cal Visualiza calendrio, se digitado s $ cal $ cal 1990 cal , mostra o ms com dias da semana, se expecficado o ano, mostra o calendrio daquela poca. lshw Visualiza todos os dispositivos de hardware no computador. # lshw # date -s "12:00"; date -s "02/05/2009"

$ clear

$ uname -a

fdisk 22

Este um programa para criar e manipular parties, muito utilizado no linux. Para visualizar as parties correntes no disco e dispositivos extras. Use o comando: # fdisk -l Estude seu manual use o comando: #man fdisk

Criando parties com o fdisk Acesse o dispositivo usando o comando: # fdisk /dev/sdb Onde /dev/sdb o dispositivo. Depois surge: Comando (m para ajuda): m digite para visualizar o menu. Comando - ao a alterna a opo "inicializvel" b edita rtulo BSD no disco c alterna a opo "compatibilidade" d exclui uma partio l lista os tipos de partio conhecidos m mostra este menu n cria uma nova partio o cria uma nova tabela de parties DOS vazia p mostra a tabela de parties q sai sem salvar as alteraes s cria um novo rtulo de disco Sun vazio t altera a identificao da partio para o sistema u altera as unidades das entradas mostradas v verifica a tabela de parties w grava a tabela no disco e sai x funcionalidade adicional (somente para usurios avanados) Comando (m para ajuda): n digite para criar uma nova partio. Comando - ao e estendida p partio primria (1-4) p digite para primria. Nmero da partio (1-4): 1 digite para primeira partio primria. Primeiro cilindro (1-1016, padro 1): 1 digite para padro 23

Last cilindro, +cilindros or +size{K,M,G} (1-1016, padro 1016): 1016 M para determinar o tamanho da partio. Note que estou criando uma nica partio. Se desejasse mais de uma no mesmo dispositivo, deveria escolher um valor menor onde a soma desses valores resultaria o tamanho total. Exemplo: caso duas parties uma de 200M e outra de 815M no dispositivo que tenha 1016 cilindros, ficaria assim. a) Partio 1: Nmero da partio (1-4): 1 Primeiro cilindro (1-1016, padro 1): 1 Last cilindro, +cilindros or +size{K,M,G} (1-1016, padro 1016): 200M b)Partio 2: Nmero da partio (1-4): 2 Primeiro cilindro (201-1016, padro 201): 201 Last cilindro, +cilindros or +size{K,M,G} (201-1016, padro 1016): 815M Comando (m para ajuda): w para gravar as alteraes no dispositivo e sair. A tabela de parties foi alterada! # mkfs.vfat /dev/sdb1 Formatando a partio em fat32 para leitura em todos os SO's. mkfs.vfat 3.0.3 (18 May 2009)

mount Monta dispositivos de armazenamento de dados: /dev/sda3 o dispositivo; /mnt/disco o ponto de montagem. # mount /dev/sda3 /mnt/disco

Montando uma imagem de extenso .iso, No linux podemos visualizar o contedo de uma imagem, sem a necessidade de queimar um CD, veja: O mp3.iso a imagem, /mnt o ponto de montagem. Sintxe: # mount -o loop mp3.iso /mnt Para desmont-la uso o comando umount , que usado para desmontar 24

dispositivos. Sintxe: # umount /mnt/disco

mkfs Formata partio ou dispositivos de dados. df -h Mostra o tamanho de parties ou dispositivos montados. Fazendo Backup da MBR utilizando o dd

# mkfs.ext3 /dev/sda3

# df -h

# dd if=/dev/sda of=./backup.mbr bs=512 count=1 O dd um programa capaz de acessar qualquer parte do disco at mesmo a MBR, o if significa entrada de fluxo (input flow) e o of significa sada de fluxo (out flow), bs determina a quantidade de bytes em bloco, no caso da MBR, o bs=512 porque ela contm 512 bytes com a tabela de partio, count o contador, ou seja, determina quais blocos, a MBR fica no primeiro bloco do HD ento o count=1. Criando assim o arquivo backup.mbr. Obs.: quando visualizo o meu disco com o fdisk -l, ele mostra /dev/sda e suas parties. Pois meu disco sata. Veja: #sfdisk -d /dev/sda > sda.sf Arquivo de Informaes adicionais, na realidade dois arquivos sero gerados o de backup da MBR j explicado e o sda.sf. Restaurando a cpia de segurana da MBR, use as duas situaes abaixo como root, utilizando um live-cd, estes argumentos so necessrios quando o grub est com erro, por causa de uma atualizao mal sucedida. Tenha cpia tambm do menu.list, bastando simplesmente acessar a pasta do /boot/grub e fazer uma cpia deste arquivo.

#dd if=backup.mbr of=/dev/sda 25

#sfdisk -force /dev/sda < sda.sf

2.2 Entendendo processos

Processo um programa em execuo. Aqui aprenderemos como gerenciar processos no sistema. top Visualiza processos, correntes no sistema. Para sair pressione Q. $ top

ps aux Mostra processos ativos. kill Usado para mata processo com o nmero do processo. Utilize argumento -9.

$ ps aux

# kill -9 1234

pstree Usado para ver rvore de processos. #pstree

2.3 Memria RAM e administrao da memria SWAP

free -m Visualiza o tamanho da memria RAM e memria SWAP.

# free -m

26

Administrando a swap

Voc pode acompanhar o uso de memria do sistema atravs do comando"free" que exibe um relatrio de quanta memria (fsica e swap) est sendo usada e quanto ainda est disponvel. Um recurso que vem a ser necessrio que voc pode criar, a qualquer momento, um arquivo de memria swap temporrio, usando o espao livre do HD. Para isso basta usar os comandos (como root): 1. criando o arquivo: # dd if=/dev/zero of=./swap bs=1M count=512 2. formatando como memria de troca: # mkswap ./swap 3. ativando: # swapon ./swap 4. use o comando free -m para visualizar. Substitua o nmero 512 pela quantidade de memria swap desejada em MB. So 512 MB, mas no preciso usar um nmero exato, voc pode usar "734" por exemplo). O arquivo temporrio desativado automaticamente ao reiniciar o micro, mas voc pode faz-lo a qualquer momento usando os comandos: # swapoff ./swap # rmdir ./swap 2.4 Usando os programas: genisoimage; dd; cdrecord; cdparanoia; lame 2.4.1 Criando imagens ISO apartir de dados no computador

27

O genisoimage usado para criar imagens com extenso iso apartir de dados existentes no computador. Ento veja: -r -J so argumentos de compatibilidade com outros sistemas operacionais; -o determina o nome do arquivo iso; -R de recursivamente, ou seja, determinar que todos os diretrios e subdiretrios sero inclusos na imagem.iso; Sintaxe: # genisoimage -r -J -o backup.iso -R -v -V Meu_backup -L /{/etc,/usr,/home/usuario,/lib} Abaixo estou fazendo uma cpia de segurana do meu sistema, no incluindo na minha imagem alguns diretrios: O argumento -x impedir a cpia dos diretrios /mnt, /proc, /dev, /lost+found, /tmp. Sintxe: # genisoimage -a -o backup.iso -R -v -V Meu_backup -L -x /mnt -x /proc -x /dev -x /lost+found -x /tmp / Isto criar sua imagem, para gravar em cd use o cdrecord como abaixo: Sintxe: cdrecord -v -dao dev=1,0,0 backup.iso caso no saiba a identificao da sua gravadora de cd que o dev e uns nmeros use o comando : cdrecord -scanbus -v de verbose; -V para determinar o ttulo da imagem.

2.4.2 Fazendo cpias de CD's e DVD's de dados Note: isto no vlido para cd's de audio tradicional, pois estes exige uma correo na transferncia. Porm vlido para DVD's de filmes pois estes so puro dados . Para gravar cd's tradicionais ser explicado mais adiante.

28

# dd if=/dev/cdrom of=./imagem.iso Esta linha de comando acima criar uma imagem do CD no diretrio corrente, o nico inconveniente deste comando que ele no aceita o -v de verbose, e no existe nenhum outro para visualizarmos o andamento.

2.4.3 Gravando um CD/DVD apartir de uma imagem ISO Primeiro devemos ter a imagem que representa o CD, j explicado antes como criar a imagem e ento usamos os comandos cdrecord ou wodim via terminal. Sintxe: # cdrecord -v -fs=16M speed=8 dev=0,0,0 -data trabalhos.iso -v : Exibe informaes durante a gravao. -fs=16M : Especifica o tamanho do buffer na memria RAM em megabytes. Substitua o 16 por um tamanho maior se tiver uma quantidade de memria agradvel. Graas ao cache de memria e multitarefa real, o Linux oferece umatolerncia muito maior durante a gravao. Quase sempre voc conseguir gravar a 8x ou mais, mesmo que continue usando o PC normalmente. speed=8 : A velocidade de gravao. Pode ser qualquer nmero suportado pelo gravador. dev=0,0,0 : Especifica a localizao do gravador. O 0,0,0 o padro para gravadores IDE na maioria das distribuies. Se no funcionar, use o comando cdrecord -scanbus (como root) para ver onde est instalado o seu gravador. -data : Especifica o arquivo ISO que ser gravado, no caso estamos gravando trabalhos.iso

29

2.4.4 Gravando CD's de msicas tradicionais via linha de comando. Para extrai todas as faixas do CD no diretrio corrente use o comando: # cdparanoia -B Para extrai uma faixa especfica use: # cdparanoia 2 faixa.wav Para extrai um grupo de faixas use: # cdparanoia 2-4 O comando abaixo gravar o cd de audio tradicional com todas as faixas que foi extrada. # cdrecord -v -fs=16M speed=8 dev=0,0,0 -audio * Se voc preferir especificar manualmente as faixas a serem gravadas, uma a uma, basta substituir o asterisco pelos nomes das faixas, separadas por espaos: # cdrecord -v -fs=16M speed=8 dev=0,0,0 -audio 01.wav 02.wav 03.wav

2.4.5 Convertendo CD's em formato mp3 Como j explicado extraia as msicas de um cd comum usando o comando: cdparanoia -B , e em seguinda utilizaremos as faixas, convertendo-as em formato mp3 usando programa lame, caso no esteja instalado dar um apt-get install lame. O lame converte arquivos wav em mp3, veja o Manual do lame Sintxe: # man lame Para utilizar o lame acesse o diretrio que contm os arquivos wav e converta todos em mp3 usando: Sintxe: # lame -V 6 *.wav *.mp3 Obs.: o asterisco representa o nome do arquivo que ser informado. - V 6 a qualidade da msica que estou confirmando para o formato mp3. Se desejar maior qualidade o arquivo de audio mp3 ocupar mais espao e ficar melhor. Uso o V6, fica timo. Porm varia de 1 a 9. Obs.: Para gravar um cd de msicas MP3. Os passos so os mesmo utilizados para

30

gravar um cd de dados, j explicados acima.

2.4.6 Gravando CD's de udio e dados juntos Voc tambm pode gravar CDs mistos, com faixas de dados e de msica, como em alguns Cds de jogos, onde as msicas podem ser tocadas em CD-Players comuns. Para isto, basta indicar as faixas de dados e de udio a serem gravadas, colocando sempre a(s) faixa(s) de udio no final: # cdrecord -v -fs=16M speed=8 dev=0,0,0 -data imagem.iso -audio track1.cdr Outro que substitui o cdrecord o wodim porm usa os mesmos argumentos.

2.5 Entendendo o apt-get

2.5.1 Introduo O apt-get um recurso desenvolvido originalmente para a distribuio Debian que permite a instalao e a atualizao de pacotes (programas, bibliotecas de funes, etc) no Linux de maneira fcil e precisa. Este artigo, dividido em duas partes, mostrar como utilizar seus principais recursos. 2.5.2 Comandos afins do apt-get #apt-get update; atualiza o sistema; #apt-get install <nome do programa>; instala programas; #apt-get remove <nome do programa>; remove programa; #apt-cache search <nome do pacote>; pesquisa pacote; #apt-get --purge remove <nome do programa>; remove o programa e todas as suas informaes; #apt-cache show <nome do pacote>; mostra detalhadamente informaes do 31

pacote. #apt-get clean libera o cache do apt-get Vale frisar que o apt-get deve ser utilizado atravs de um usurio com privilgios de

administrador, ou seja, usurio root. 2.5.3 O que apt-get ? Em qualquer sistema operacional h a necessidade de se instalar programas para que o uso do computador faa sentido. O problema que, muitas vezes, o processo de instalao trabalhoso, forando o usurio a procurar arquivos indispensveis ao software (dependncias) ou a editar scripts, por exemplo. Para poder lidar com esses e com problemas oriundos, desenvolvedores da distribuio Debian Linux criaram o APT (Advanced Packaging Tool), uma ferramenta para instalar e atualizar pacotes (e suas dependncias) de maneira rpida e prtica. No demorou para que o APT fosse utilizado em outras distribuies, sendo padro no Debian e no Ubuntu (j que este baseado no Debian).

2.5.4 Como utilizar o apt-get ? Atualizando a lista de pacotes. Quando o apt-get utilizado no Linux, o comando consulta um arquivo denominado sources.list, geralmente disponvel no diretrio /etc/apt/. Esse arquivo informa onde esto os locais (repositrios) nos quais ele obter os pacotes requisitados pelo usurio. Pelo arquivo /etc/apt/sources.list o APT sabe onde procurar os pacotes solicitados. O problema que ele precisa conhecer o que est instalado no sistema operacional para saber exatamente o que procurar. Se no tiver essas informaes, o APT no saber que um determinado pacote essencial a um programa no est instalado e no providenciar sua instalao, por exemplo. Para lidar com essa situao, o APT utiliza um banco de dados 32

prprio e o compara aos repositrios registrados no sources.list para saber quando um pacote est atualizado ou quando h uma nova verso de um determinado aplicativo. Para fazer o APT executar essa tarefa, basta digitar em um terminal o seguinte comando: #apt-get update;

2.5.5 Instalando pacotes Antes de instalar um programa, necessrio executar o comando mostrado no tpico anterior para o APT saber o que est e o que no est instalado no computador. por isso que esse comando foi explicado primeiro. Depois de ter executado o apt-get update, basta digitar o seguinte comando para instalar os pacotes desejados:

#apt-get install <nomedoprograma>; Por exemplo, suponha que voc queira instalar o cliente de e-mail Mozilla Thunderbird. Para isso, basta dar o comando:

#apt-get install mozilla-thunderbird; Quando esse comando executado, o APT procura nos repositrios os pacotes correspondentes e os instala imediatamente aps baix-los. Caso o programa necessite de um outro pacote, o APT o procurar e perguntar se voc deseja instal-lo, no que voc dever responder com Y (sim) ou N (no), como mostra a situao abaixo: 0 packages upgraded, 6 newly installed, 0 to remove and 2 not upgraded. Need to get 6329kB of archives. After unpacking 14.1MB will be used. Do you want to continue? [Y/n]

33

2.5.6 Removendo pacotes com o apt-get Se voc no quer mais utilizar um determinado programa, pode desinstal-lo atravs do comando apt-get. Para isso, basta digitar:

#apt-get remove <nome do programa>; Por exemplo, suponha que voc queira desinstalar o Mozilla Thunderbird. O comando ficar ento da seguinte forma:

#apt-get remove mozilla-thunderbird;

importante destacar que o comando acima remove o programa, mas mantm os arquivos de configurao, caso estes existam. Para uma desinstalao total do programa, incluindo arquivos extras, deve-se usar o comando:

#apt-get --purge remove <nomedoprograma>;

2.5.7 Atualizando pacotes com o apt-get Verses novas de programas so lanadas periodicamente por conterem correes de segurana, disponibilizarem novos recursos ou por executarem de forma melhor. Com o comando apt-get possvel obter e instalar verses mais novas de pacotes. Para isso basta digitar o comando:

#apt-get -u upgrade; O parmetro -u serve para o apt-get mostrar os pacotes que esto sendo atualizados, portanto, seu uso opcional. Um detalhe importante: na atualizao de pacotes, tambm importante executar antes 34

o comando apt-get update.

2.5.8 Descobrindo nomes de pacotes Voc viu que necessrio conhecer o nome de um pacote para poder instal-lo. Em muitos casos, o nome segue a mesma denominao do aplicativo. Por exemplo, se voc quer instalar o programa para bate-papo XChat, basta digitar:

#apt-get install xchat; Entretanto, nem sempre o nome do pacote trivial e muitas vezes no sabemos sequer o nome do programa, apenas estamos procura de um software que atenda a uma determinada necessidade. O que fazer ento? No APT pode-se usar o seguinte comando:

#apt-cache search termo; Por exemplo, suponha que voc queira procurar jogos para o Linux. O comando a ser usado :

#apt-cache search games; Ao fazer essa pesquisa, o APT mostrar uma lista dos pacotes encontrados exibindo seus respectivos nomes seguidos de uma descrio. Se voc quer ter uma descrio mais detalhada de um dos pacotes listados, basta digitar o seguinte comando:

#apt-cache show nomedopacote;

35

2.5.9 Mostrando detalhes de um pacote importante frisar que existem outras formas para descobrir nomes de pacotes, porm essa uma das mais conhecidas. Uma alternativa interessante para quando voc no sabe ao certo a denominao do software, digitar as primeiras letras do nome deste e pressionar a tecla Tab duas vezes no teclado para ele auto-completar at a denominao desejada aparecer. Arquivo sources.list Voc viu no incio deste artigo que o arquivo sources.list indica os locais ou repositrios onde o APT deve buscar pacotes. possvel indicar vrios servidores, por isso importante entender como esse arquivo funciona para acrescentar, ou se necessrio, retirar repositrios. Ao abrir o arquivo sources.list (no editor de textos de sua preferncia, como o emacs ou vi), voc encontrar algo mais ou menos semelhante a: deb http://us.archive.ubuntu.com/ubuntu breezy main restricted universe multiverse deb-src http://us.archive.ubuntu.com/ubuntu breezy main restricted universe multiverse O sources.list contm uma lista de repositrios, sendo cada um adicionado linha por linha. O primeiro termo - deb - indica o tipo de pacote disponvel naquele repositrio. O termo "deb" indicado porque esse o tipo de arquivo usado como pacote. A alternativa a extenso deb-src, que indica que o repositrio oferece pacotes com cdigo-fonte dos programas (til a programadores e desenvolvedores). O termo seguinte o endereo do servidor do repositrio. Ele pode ser HTTP, FTP, file (arquivos locais), entre outros. No final da linha vem os atributos, que indicam, por exemplo, a que verso da distribuio o repositrio se refere.

36

Note que voc tambm encontrar vrias linhas com o smbolo # em seu incio. Neste caso, a linha ser ignorada pelo APT, tal como se no existisse, permitindo desativar temporariamente repositrios ou a incluso de comentrios com orientaes. Voc poder obter em fruns, em sites oficiais de distribuies que usam APT ou em listas de discusso quais so os repositrios que valem a pena serem adicionados no sources.list de seu Linux. Usurios do Debian, por exemplo, contam com o endereo www.debian.org/distrib/packages para isso. importante no esquecer de executar o comando apt-get update aps alterar esse arquivo, do contrrio, o sistema ir executar a verso antiga at ser encerrado e ligado novamente.

2.5.10 Finalizando Usurios acostumados com outros sistemas operacionais costumam dizer que instalar programas no Linux uma tarefa difcil, o que no verdade. O APT mostra-se muito intuitivo nessa tarefa e aprender a us-lo requer pouco esforo, mesmo porque, com ele, no preciso visitar um determinado site, baixar os pacotes e depois instal-los; o APT conta com milhares de programas e, por isso, resume bastante o trabalho de instalao (dependendo do caso, ela baixar o software e uma janela com botes Next/Avanar aparecer para voc prosseguir com a instalao).

2.6 Configurando RAID no Linux Ao final deste artigo, o leitor vai aprender como configurar o RAID no Linux de forma prtica. Este artigo funciona para qualquer distribuio que usa o mdadm. importante salientar que as parties/discos precisam ser de tamanhos semelhantes.

Se voc deseja segurana a pedida RAID1 ou RAID5 (este ltimo precisa de 3 HDs 37

pelo menos), mas possvel utilizar RAID0 em casa para o ganho de performance: ele no lhe dar segurana, mas diminui o tempo de acesso aos discos. Por fim, software RAID uma boa pedida tanto para pequenos servidores como para computadores caseiros, trazendo segurana e performance a estas mquinas.

2.6.1 Conhecimentos necessrios necessrio um conhecimento intermedirio no Linux ou saber como trabalhar com parties, saber usar um editor do sistema como vi ou nano. necessrio um computador com duas parties livres de pelo menos 1GB cada ou dois discos rgidos apenas para testes, ou at mesmo usar o dispositivo de loop do prprio linux, para criar arquivos de bloco, onde simular as parties.

2.6.2 Definindo RAID Voc quer ter redundncia de dados? Quer aumentar o desempenho de acesso aos discos? Ento, use RAID.

Redundant Array of Independent Disks. Traduzindo: Arranjo Redundante de Discos Independentes. uma forma de voc fazer arranjos entre discos para obter maior confiabilidade, maior capacidade de dados e tambm reduo de tempo de acesso aos dados.

Ento, trs caractersticas do RAID:

1. Confiabilidade;

2. Desempenho;

3. Armazenamento.

38

2.6.3 Tipos de RAID Por Hardware - Atravs de controladoras especiais. O ideal usar controladora e discos SCSI, devido a performance e segurana. Na maioria das vezes, usamos esta opo, pois, alm de ser mais seguro, a performance melhor. Claro que bem mais caro, pois ser necessrios placas especiais e discos scsi.

Por Software - Atravs de mdulos do kernel do Linux. Aqui, quem vai fazer o RAID o kernel do Linux. til quando no temos discos scsi e nem controladoras especiais. Testei RAID via software com HD IDE e funciona de forma consistente.

Vamos implementar Raid via Software, pois existem casos que necessrio fazer desta forma.

Primeiro vamos aprender sobre os nveis de RAID existentes:

RAID LINEAR: transformar vrios discos em um nico. No tem redundncia.

RAID-0: igual ao linear. A grande diferena que no RAID-0 o desempenho melhor. Ele usa o conceito de Data Stripping -> segmentao de dados. No considerado o RAID verdadeiro.

RAID-1: mais conhecido como espelhamento (mirror). Este sim, tem tolerncia a falhas. Os dados so duplicados em outro HD. Aqui, existe perda de 50%. Caso um disco falhe o outro estar com os dados duplicados.

RAID-2 e RAID-3: Este dois tipos raramente so utilizados. O Linux tambm no oferece suporte a RAID-3 por software. 39

RAID-4: Um disco guarda informaes de paridade. Quando um disco falha os dados podem ser recuperados usando a informao de paridade.

RAID-5: Este o modelo ideal. Mas as informaes de paridade so guardadas em todos os discos. So necessrios 5 discos.

2.6.4 Usando o mdadm para Configurar o Armazenamento Baseado no RAID e Multilocalidade

Similar a outras ferramentas contidas no pacote raidtools, o comando mdadm pode ser usado para executar todas as funes necessrias relacionadas administrao de conjuntos multi-dispositivos. Nesta seo mostramos como o mdadm pode ser usado para: Criar um dispositivo RAID Criar um dispositivo multi-localidade 2.6.4.1. Criando um Dispositivo RAID com mdadm Para criar um dispositivo RAID, edite o arquivo /etc/mdadm/mdadm.conf para definir valores DEVICE e ARRAY apropriados: DEVICE /dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1 ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1 Neste exemplo, a linha DEVICE est definindo os dispositivos SCSI seguintes: /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

A linha ARRAY define um dispositivo RAID (/dev/md0) composto pelos dispositivos SCSI definidos na linha DEVICE. 40

Antes de criar ou usar qualquer dispositivo RAID, o arquivo /proc/mdstat no exibe nenhum dispositivo RAID ativo, visualize utilizando cat /proc/mdstat: Personalities : read_ahead not set Event: 0 unused devices: none Obs.: depois do RAID criado visualize este arquivo novamente. Depois da edio do arquivo /etc/mdadm/mdadm.conf, explicado acima, use o comando mdadm da seguinte forma para criar um conjunto RAID 0: mdadm -C /dev/md0 --level=raid0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 \ /dev/sdd1 Continue creating array? yes mdadm: array /dev/md0 started. Uma vez que tenha sido criado, o dispositivo RAID pode ser questionado a qualquer momento para o fornecimento de informaes de estado. O exemplo seguinte exibe a sada do comando mdadm --detail /dev/md0: /dev/md0: Version : 00.90.00 Creation Time : Mon Mar 1 13:49:10 2004 Raid Level : raid0 Array Size : 15621632 (14.90 GiB 15.100 GB) Raid Devices : 4 Total Devices : 4 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Mon Mar 1 13:49:10 2004 State : dirty, no-errors Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Chunk Size : 64K Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 active sync /dev/sdb1 2 8 33 2 active sync /dev/sdc1 3 8 49 3 active sync /dev/sdd1 UUID : 25c0f2a1:e882dfc0:c0fe135e:6940d932 Events : 0.1 41

O comando usado para criar o sistema de arquivo com ext3 este: # mke2fs -j /dev/md0

Este comando verifica o nmero de verificaes do sistema de arquivos: # tune2fs -c 20 /dev/md0

Criando um diretrio para montar o RAID mkdir /mnt/raid1 mount -t ext3 /dev/md0 /mnt/raid1 cd /mnt/raid1

Neste momento, j possvel realizar testes no seu RAID, ou seja: copiar dados etc. Faa os testes. Este comando serve para dar um stop ao RAID, ou seja, par-lo: mdadm --stop /dev/md0

mdadm run /dev/md0

2.6.4.2 Editando o FSTAB para automatizar o RAID e mont-lo no boot Vamos colocar nosso Raid no fstab para caso, seja necessrio fazer algum boot, ao ligar o Linux tudo j funcione automaticamente. Veja como simples: vi /etc/fstab /dev/md0 /mnt/raid1 ext3 defaults 0 0 42

2.6.4.3 Criando um Dispositivo Multi-localidade com mdadm

Alm de criar conjuntos RAID, o mdadm tambm pode ser usado para tirar proveito do hardware suportando mais de uma localidade de E/S para LUNs (drives de disco) SCSI individuais. O objetivo do armazenamento multi-localidade a disponibilidade contnua de dados no caso de falha de hardware ou saturao de uma localidade. Como essa configurao contm diversas localidades (cada uma atuando como um controlador virtual independente) acessando um LUN (drive de disco) SCSI comum, o kernel do Linux detecta cada drive compartilhado uma vez "atravs" de cada localidade. Em outras palavras, o LUN (drive de disco) SCSI conhecido como /dev/sda tambm pode estar acessvel como /dev/sdb, /dev/sdc e assim por diante, dependendo da configurao especfica. Para fornecer um nico dispositivo que possa permanecer acessvel se um caminho de E/S falhar ou tornar-se saturado, o mdadm inclui um parmetro adicional opo level. Este parmetro multipath instrui a camada md do kernel do Linux para que faa o redirecionamento de pedidos de E/S de um caminho para outro no evento de uma falha num caminho de E/S. Para criar um dispositivo multi-localidade, edite o arquivo /etc/mdadm.conf para definir os valores das linhas DEVICE e ARRAY que refletem a configurao de seu hardware. 2.6.4.4 Nota Ao contrrio do exemplo RAID anterior (no qual cada dispositivo especificado em /etc/mdadm.conf deve representar drives de disco fsicos diferentes), cada dispositivo deste arquivo refere ao mesmo drive de disco compartilhado. O comando usado para a criao de um dispositivo multi-localidade similar quele usado para criar um dispositivo RAID; a diferena a substituio do parmetro de um nvel do RAID pelo parmetro multipath. mdadm -C /dev/md0 --level=multipath --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 Continue creating array? yes mdadm: array /dev/md0 started. Obs.:A linha de comando do mdadm comando foi dividida em duas linhas devido sua extenso. 43

Neste exemplo, o hardware consiste de um LUN SCSI apresentado como quatro dispositivos SCSI separados, cada um acessando o mesmo armazenamento por uma localidade diferente. Uma vez criado o dispositivo multi-localidade /dev/md0, todas as operaes de E/S que faam referncia a /dev/md0 so direcionadas para /dev/sda1, /dev/sdb1, /dev/sdc1 ou /dev/sdd1 (dependendo de qual localidade estiver ativa e operacional no momento). A configurao do /dev/md0 pode ser examinada em mais detalhes usando o comando mdadm --detail /dev/md0 para verificar se , de fato, um dispositivo multi-localidade: /dev/md0: Version : 00.90.00 Creation Time : Tue Mar 2 10:56:37 2004 Raid Level : multipath Array Size : 3905408 (3.72 GiB 3.100 GB) Raid Devices : 1 Total Devices : 4 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue Mar 2 10:56:37 2004 State : dirty, no-errors Active Devices : 1 Working Devices : 4 Failed Devices : 0 Spare Devices : 3 Number Major Minor RaidDevice State 0 8 49 0 active sync /dev/sdd1 1 8 17 1 spare /dev/sdb1 2 8 33 2 spare /dev/sdc1 3 8 1 3 spare /dev/sda1 UUID : 4b564608:fa01c716:550bd8ff:735d92dc Events : 0.1 Uma outra caracterstica do mdadm a habilidade em forar um dispositivo (seja um membro de um conjunto RAID ou uma localidade numa configurao multi-localidade) a ser removido de uma configurao em operao. No exemplo seguinte, o /dev/sda1 marcado como falho, ento removido e finalmente adicionado de volta configurao. Numa configurao multi-localidade, estas aes no impactariam nenhuma atividade de E/S ocorrendo no momento: # mdadm /dev/md0 -f /dev/sda1 mdadm: set /dev/sda1 faulty in /dev/md0 44

# mdadm /dev/md0 -r /dev/sda1 mdadm: hot removed /dev/sda1 # mdadm /dev/md0 -a /dev/sda1 mdadm: hot added /dev/sda1

2.7 Trabalhando com usurios, grupos e permisses

2.7.1 Adicionado usurio ao sistema adduser Adiciona usurio ao sistema. deluser Deleta usurio do sistema.

# adduser Ronaldo # deluser Ronaldo

chmod Usado para dar ou alterar permisses #chmod 777 arquivo.doc em arquivos e diretrios. 2.7.2 Entendendo permisses Obs.: Antes de dar permisses a arquivos ou diretros entenda as mscaras? Veja abaixo: r=leitura w=escrita e x=execuo: Nesse caso mais prtico mudar permisses pois utilizo apenas as letras de permisses, pois sei o que significa cada letra, veja quando utilizo a+wrx significa adicionar permisses, awrx tirar permisses a letra (a+ ou a-) significa a todos os usurios sintxe: ( # chmod a+wrx <nome do arq. ou dir. ) ( # chmod a-wrx <nome do arq. ou dir. ) ( # chmod a-rx <nome do arq. ou dir. ) ( # chmod a-x <nome do arq. ou dir. ) Para dar permisses somente para o dono use a letra u (u+ ou u-) sintxe: ( # chmod u+wrx <nome do arq. ou dir. ) ( # chmod u-wrx <nome do arq. ou dir. ) r=4 ;w=2; x=1 . Obs.: quando usa permisses para o dono importante saber quem o dono do arquivo ou diretrio, estude melhor o comando que muda o dono: # chown a soma deles = 4+2+1= 7 que resulta na mscara = rwx (todas as permisses) dividido de trs em trs nesse caso o primeiro 7 dono, o segundo 7 o grupo, o terceiro 7 o usurio comum. 777=rwxrwxrwx a soma de 4+2=6 , no caso usar o chmod 666 = rw-rw-rw-(permisso de leitura e escrita). Se no quiser da nenhuma permisso a sintxe : # chmod 000 <nome do arquivo ou diretrio>. 000 = --- <significa nenhuma permisso> 45

Quando tiver mscara com as iniciais (d,l, -) isto significa: d = diretrio ou pasta; l = link simblico; - = arquivos comuns. 2.7.3 Grupos: adicionando, deletando e alterando o dono groupadd Adiciona grupo

#groupadd paz

groupdel Deleta grupo

#groupdel paz

chown -R <nome do usurio.nome do grup # chown - R root.tecnologia /projeto /local> altera o dono gpasswd -a <nome de usurio> <nome do grupo> adiciona um usurio no grupo Sintxe: # gpasswd -a teste tecnologia gpasswd -d <nome do usurio> <nome do grupo> deleta um usurio no grupo Sintxe: # gpasswd -d teste tecnologia ls -l <ver arquivos diretrios> com suas mscaras de permisses, dono, grupo e data. ls -la <ver arquivos ocultos e diretrios> com suas mscaras de permisses, dono, grupo e data.

2.8 Determinando agendamento com o cron 2.8.1 Introduo

O "cron" um programa usado para "agendar tarefas". Voc pode programar um ou vrios eventos no linux para serem executados numa certa periodicidade ou at mesmo em um exato dia, numa exata hora. Um uso bem comum do cron o agendamento de tarefas 46

administrativas de manuteno do seu sistema e backup. Estas tarefas so programadas para todo dia, toda semana ou todo ms, serem automaticamente executadas atravs do crontab e um script shell comum. A configurao do cron geralmente chamada de crontab. Os sistemas Linux possuem o cron sempre presente. Pelo menos eu nunca vi nenhuma distribuio que no inclusse o to til cron. A configurao tem duas partes: Uma global, e uma por usurio. Na global, que o root quem controla, o crontab pode ser configurado para executar qualquer tarefa de qualquer lugar, como qualquer usurio. J na parte por usurio, cada usurio tem seu prprio crontab, sendo restringido penas ao que o usurio pode fazer (e no tudo, como o caso do root).

O cron implementa uma agenda de tarefas para cada usurio. Sendo assim o comando ou programa ser executado sob o UID do usurio. O root pode determinar agendamento para se prprio e para usurios comuns. Depois de executar a tarefa agendada, o cron envia um e-mail para o usurio relatando a sada do que foi agendado, este e-mail sea enviado para o diretrio /var/mail. O servidor cron deve estar rodando para que as tarefas sejam executadas. Para agendar as tarefas usamos o comando crontab com a sintaxe descrita a baixo: crontab [-u usurio] { -e | -l | -r } A opo -u permite que o superusurio agende tarefas para outros usurios, pois o comando su pode atrapalhar o crontab. Um usurio comum no precisa usar essa opo para especificar ele prprio. A opo -e edita o arquivo de tarefas agendadas pelo usurio. A formatao desse arquivo ser descrita mais adiante. A opo -l lista o arquivo de tarefas agendadas pelo usurio. A opo -r apaga o arquivo de tarefas agendadas pelo usurio. Basicamente, para agendarmos uma tarefa deveremos editar o nosso arquivo agenda com o comando: crontab -e O formato de um comando do cron em grande parte o padro V7. Cada linha tem cinco campos de hora e data, seguidos por um comando. Os comandos so executados pelo 47

servidor cron quando os campos minuto, hora, e ms correspondem hora atual, e quando pelo menos um dos campos de dia (dia do ms, ou dia da semana) correspondem ao dia atual. Os campos de hora e data so:

campo minuto hora dia do ms ms

valores permitidos 0-59 0-23 0-31 0-12 (ou nome)

dia da semana 0-7 (0 ou 7 domingo, ou nome)

Podemos usar intervalos de nmero usando o hfen - (ex: 1-10), um asterisco * indica um intervalo do primeiro ao ltimo valor permitido. Dentro do intervalo poderemos determinar o passo (incremento) com uma barra / (ex: 1-10/2 ou */2). Podemos, tambm, usar listas de nmeros usando vrgula , (ex: 1,3,10). interessante a possibilidade de mesclarmos intervalos e listas (ex: 1-10/2,15,20-22,30). Lembre-se que no so permitidos intervalos ou listas de nomes. Os nomes dos meses e dos dias da semana so as primeiras trs letras dos nomes correspondentes em ingls. Veja as tabelas: Ms Janeiro Maro Abril Maio Junho Julho Agosto Outubro Abrev. dia Jan Mar Apr Mai Jun Jul Ago Oct Abrev.

Domingo Sun Segunda Mon Tera Quarta Quinta Sexta Sbado Tus Wed Thu Fri Sat

Fevereiro Feb

Setembro Sep Novembro Nov Dezembro Dec 48

Observao: o dia de execuo de um comando pode ser especificado em dois campos (dia do ms/dia da semana). Se ambos os campos so determinados, isso , diferentes de *, o comando ser executado quando qualquer dos dois campos corresponder data atual. Exemplos de entradas para o arquivo agenda: A linha abaixo copia todo o contedo do home do usurio para o disquete todo domingo s 13h e 40min. (backup de dados) 40 13 * * Sun cp $HOME/* ./floppy -R -f A linha abaixo apaga os arquivos core do home do usurio todos os dias meia noite 0 0 * * * rm $HOME/core -f

2.8.2 Configurando o cron por usurio

Para configurar um crontab por usurio, utiliza-se o comando "crontab", junto com um parmetro, dependendo do que voc quiser fazer. Abaixo uma relao: root@linux:~# crontab -u usurio arquivo Comando Funo crontab -e Edita o crontab atual do usurio crontab -l Exibe o atual contedo do crontab do usurio crontab -r Remove o crontab do usurio crontab -u Determina regras para um usurio

Se voc quiser verificar os arquivos crontab dos usurios, voc precisar ser root. O comando crontab coloca os arquivos dos usurios no diretrio: /var/spool/cron/usuario Onde "usuario" corresponde ao usurio dono do arquivo crontab. Agora se voc quiser editar o crontab global, este fica no arquivo "/etc/crontab", e s pode ser manipulado pelo root. E agora que j sabemos onde ficam os arquivos de 49

configurao, vamos estudar o formato da linha do crontab, j explicada antes que quem vai dizer o que executar e quando. Vamos ver um exemplo: 0 4 * * * who

Ento como se pode ver, a linha dividida em 6 campos separados por tabs ou espao: Campo Funo 1o. 2o. 3o. 4o. 5o. 6o. Minuto Hora Dia do ms Ms Dia da semana Programa pra execuo

Todos estes campos, sem contar com o 6o., so especificados por nmeros. Veja a tabela abaixo para os valores destes campos: Campo Minuto Hora Dia do ms Ms Funo 0-59 0-23 1-31 1-12

Dia da semana 0-6 (o "0" domingo, "1" segunda, etc)

Ento o que nosso primeiro exemplo estava dizendo? A linha est dizendo: "Execute o comando 'who' todo dia de todo ms sendo o dia qualquer dia da semana, s 4 horas e 0 minutos.". Vamos pegar mais exemplos para analisar: 1,21,41 * * * * echo "Meu crontab rodou mesmo!"

Aqui est dizendo: "Executar o comando do sexto campo toda hora, todo dia, nos minutos 1, 21 e 41". 30 4 * * 1 rm -rf /tmp/*

Aqui est dizendo: "Apagar todo contedo do diretrio /tmp toda segunda-feira, as 4:30 da manh.". 50

45

19

1,15

/usr/local/bin/backup

Aqui est dizendo: "Executar o comando 'backup' todo dia 1 e 15 s 19:45.". E assim voc pode ir montando inmeros jeitos de agendamento possvel. No arquivo do crontab global, o sexto campo pode ser substitudo pelo nome do usurio, e um stimo campo adicionado com o programa para a execuo, como mostro no exemplo a seguir: 0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg Aqui est dizendo: "Executar o mrtg como usurio root, durante 5 e 5 minutos dos minutos 059. Ou seja, executar de 5 em 5 minutos o mrtg sempre.". Em alguma distribuies, os agendamentos mais comuns esto programados para serem executados. Veja as linhas abaixo: 01 02 22 42 * 4 4 4 * * * 1 * * * * * * 0 * root run-parts /etc/cron.hourly root run-parts /etc/cron.daily root run-parts /etc/cron.weekly root run-parts /etc/cron.monthly

O programa "run-parts" executa todos os scripts executveis dentro de um certo diretrio. Ento com essas linhas, temos diretrios programados para executar programas de hora em hora, diariamente, semanalmente ou mensalmente. Abaixo a tabela: Diretrio /etc/cron.hourly /etc/cron.daily Perodo De hora em hora Diariamente

/etc/cron.weekly Semanalmente /etc/cron.monthly Mensalmente

Ento todos os arquivos executveis dentro de cada diretrio sero executados no seu correspondente perodo. Ou seja, posso colocar um certo contedo no arquivo "/etc/cron.daily/teste", depois torn-lo executvel atravs do comando "chmod +x /etc/cron.daily/teste", e ento ele ser executado todo dia as 4:02 da manh.

51

2.8.3 Resumo de aprendizagem do cron

Veja como funciona cron: Devemos criar com o usurio root um arquivo com as regras ou seja, o agendamento: Sintxe: root@linux:~# touch regras criando o arquivo. root@linux:~# ls verificando ou listando. regras root@linux:~# vi regras editando o arquivo com o editor vi escrevendo o seguinte: #min|hora|dia|ms|semana|comando 0-59/5 * * * * cp /home/teste /mnt/disco; depois salve o arquivo em um local de sua preferncia. No meu caso salvei em /home/usuario/regras Neste exemplo quem vai executar o arquivo um usurio comum, o root apenas criou o arquivo denominado regras. Podemos determinarmos que o root execute tambm este arquivo se quisermos. Agora vamos determinar que um usurio comum chamado de usuario execute as regras agendadas no arquivo criado pelo root. Ainda como root devemos usar o seguinte comando: root@linux:~# crontab -u usuario /home/teste/regras determinado que o usurio comum execute as regras. Agora samos de root dando exit, e ficamos como usurio comum: usuario@linux:~$ crontab -l Aqui estamos verificando se as regras esto ativas para este usurio e no para root. Para removermos as tais regras determinada pelo root, basta usar o seguinte comando como usurio comum mesmo. Veja: usuario@linux:~$ crontab -r

52

2.9 Usando o gnupgp (GPG) 1) Instalando o PGP nas distribuies Debian/ubuntu:

apt-get install gnupg 2)Criando um par de chaves pblica/privada:

gpg --gen-key 3) Encriptando dados:

gpg -e arquivo.txt (usando compactao) --> Resultado: arquivo.txt.gpg gpg -e -a arquivo.txt( sem compactao) --> Resultado: arquivo.txt.asc gpg -r dourado -e arquivo.txt (chave pblica do usurio "dourado" no seu chaveiro, somente ele abrir o arquivo, veja adicionando chave pblicas seo 8) 4) Decriptando dados com o gpg:

gpg -d arquivo.txt.asc >arquivo.txt gpg -d arquivo.txt.gpg >arquivo.txt 5) Assinando arquivos Assinar um arquivo garantir que voc a pessoa que realmente enviou aquele arquivo. gpg -s arquivo.txt gpg -s --clearsign arquivo.txt 6) Checando assinaturas Verificar quem nos enviou o arquivo realmente quem diz ser e se os dados foram de alguma forma alterados. dever ter a chave pblica do usurio. gpg --verify arquivo.txt.asc

53

Se a sada for "Assinatura Correta", significa que a origem do arquivo segura e que ele no foi de qualquer forma modificado. gpg --verify arquivo.txt.gpg Se a sada for "Assinatura INCORRETA" significa que ou o usurio que enviou o arquivo no confere ou o arquivo enviado foi de alguma forma modificado. 7) Extraindo sua chave pblica do chaveiro para distribu-la: gpg --export -a usuario >chave-pub.txt 8) Adicionando chaves pblicas ao seu chaveiro pessoal: gpg --import chave-pub-usuario.txt 9) Listando chaves de seu chaveiro: gpg --list-keys 10) Apagando chaves de seu chaveiro: gpg --delete-key usuario 11) Mudando sua FraseSenha Execute o comando: gpg --edit-key usurio Quando o programa entrar em modo de comandos, digite passwd. Ser lhe pedida a "Frase Senha" atual e a nova "Frase Senha". Explore o programa digitando "?" para exibir todas as opes disponveis. 12) Assinando uma chave digital A assinatura de chaves um meio de criar laos de confiana entre usurios PGP. Assinar uma chave de algum algo srio, voc deve ter noo do que isto significa e das consequncias que isto pode trazer antes de sair assinando chaves de qualquer um. O prprio teste para 54

desenvolvedor da distribuio Debian requer como primeiro passo a identificao do candidato, caso sua chave pgp seja assinada por algum desenvolvedor desta distribuio, imediatamente o teste de identificao completado. A partir disso voc deve ter uma noo bsica do que isto significa. Para assinar uma chave siga os seguintes passos: 1. Importe a chave pblica do usurio (veja Adicionando chaves pblicas ao seu chaveiro pessoal, Seo 8). 2. Execute o comando gpg --edit-key usuario (onde usuario o nome do usurio/email/IDchave da chave pblica importada). 3.Digite list, e selecione a chave pblica (pub) do usurio com o comando uid [numero_chave]. Para assinar todas as chaves pblicas do usurio, no selecione qualquer chave com o comando uid. 4.Para assinar a chave pblica do usurio digite sign, ser perguntado se deseja realmente assinar a chave do usurio e ento pedida a "FraseSenha" de sua chave privada. 5.Digite "list", repare que existe um campo chamado trust: n/q no lado direito. O primeiro parmetro do "trust" indica o valor de confiana do dono e o segundo (aps a /) o valor de confiana calculado automaticamente na chave. As seguintes possuem o seguinte significado: o o o o o o o - - Nenhum dono encontrado/confiana no calculada. e - Chave expirada/falha na checagem de confiana. q - Quando no conhece o usurio. n - Quando no confia no usurio ( o padro). m - Pouca confiana no usurio. f - Totalmente confivel. u - Indiscutivelmente confivel. Somente usado para especificar a chave pblica do

prprio usurio. O valor de confiana da chave pode ser modificado com o comando trust e selecionando uma das opes de confiana. Os valores de confiana para a chave pblica pessoal -/u (no necessrio calcular a confiana/indiscutivelmente confivel). 13) Listando assinaturas digitais Execute o comando gpg --list-sigs para listas todas as assinaturas existentes no seu chaveiro. Opcionalmente pode ser especificado um parmetro para fazer referncia a assinatura de um

55

usurio:gpg --list-sigs usuario. O comando gpg --check-sigs adicionalmente faz a checagem de assinaturas. 2.10 Entendendo dispositivos de loop (loop0 a loop7) Dispositivos de Loop (Loop devices, loopback devices) so drivers dedispositivo que permitem que arquivos de imagens (images files) sejam montados como se fossem dispositivos de blocos normais. Quando montamos um arquivo iso, utilizando o comando mountExemplo:

# mount -o loop -t iso9660 mp3.iso /mnt/iso Montamos uma imagem iso que contm msicas no formato mp3(o arquivo chamadase mp3.iso), dentro de um diretrio chamado /mnt/iso. A partir desse momento, um ls /mnt/iso ir mostrar todos os arquivos que esto dentro do sistema de arquivos contido na imagem.

2.10.1 Criando um volume de dados Um volume de dados quando montado com a ferramenta loop escolhida (loop0 a loop7), simula uma partio real no sistema, onde possa criar diretrios, arquivos, dentro desse volume. Um ponto forte de um volume que voc possa transport-lo para outra mquina, mont-lo e alter os arquivos contidos nesse volume, como se fosse uma partio presente no computador. Pois o mesmo como j dito, depois de montado se comporta como um dispositivo de blocos normal, e pode at mesmo usar criptografia para proteger os dados, explicado mais adiante. Um volume de dados pode ter o tamanho que desejar. Porm sempre gosto de cri-los seguindo o tamanho de CD's e DVD's, isso no caso de transport-los para Mquinas Linux, mais comodo. O exemplo acima mostra como montar uma imagem, isso todos que trabalham

56

com linux j sabem. Agora vamos aprender a criar arquivos de bloco, no momento sem criptografia. Para tal procedimento necessitaremos das ferramentas dd e losetup. Vamos criar um arquivo com o tamanho desejado. Isto feito com o comando dd e o dispositivo zero (/dev/zero):

# dd if=/dev/zero of=volume1 bs=1M count=700 Criamos um arquivo chamado volume1 dentro do diretrio home do usurio. Esse arquivo ser usado para armazenar dados utilizando o sistema de arquivo ext3 com um tamanho mximo de 700M. Mas antes que um sistema de arquivo possa ser criado no nosso volume1, devemos fazer com que o nosso volume se comporte como um sistema de bloco. Isto feito com o comando losetup. Assim: # losetup /dev/loop0 volume1 Existem 8 possibilidades de montar dispositivos de loop ao mesmo tempo, contados apartir de loop0 a loop7, por isso voc precisa ter certeza que o dispositivo que deseja utilizar no esteja em uso. Para isso podemos utilizar o comando que nos permite ver os dispositovos de loop em uso: # losetup -a # losetup /dev/loop0 /home/usuario/volume1 Agora que /dev/loop0 um dispositivo de bloco legtimo, comportando como uma partio no computador, ento vamos format-la, para isso utilizaremos o mkfs.ext3 para criar o sistema de arquivos ext3: # mkfs.ext3 /dev/loop0 O resultado deve ser algo do tipo: mke2fs 1.40.2 (12-Nov-2009) 57

Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 16 inodes, 100 blocks 5 blocks (5.00%) reserved for the super user First data block=1 1 block group 8192 blocks per group, 8192 fragments per group 16 inodes per group

Writing inode tables: done

Filesystem too small for a journal Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 24 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. * Com o arquivo de imagem criado, podemos monta-lo escolhendo um ponto de montagem com o comando mount: lembrando que um ponto de montagem um diretro no computador, caso deseje criar um ponto faa: # mkdir /mnt/imagem/ # mount /dev/loop0 /mnt/imagem/ Acesse-o ou d um *ls* ir confirmar que a imagem est montada, mostrando o diretrio lost+found: De agora em diante vc poder criar arquivos dentro do seu volume ou copi-los de outro lugar

58

para o seu volume e alter-los se necessro. # ls /mnt/imagem lost+found Para desmontalo use: # umount /dev/loop0 Depois o comando abaixo para libera o dispositivo de loop: # losetup -d /dev/loop0

2.10.1 Criando um volume de dados com criptografia Muito til para proteger dados quando transportados pela internet ou correio. Se houver um interceptador este dever ter a senha para manipular os arquivos. Use senha longas alfanumricas para maior segurana. Aviso: no esquecer a senha, no h possibilidade de alter-la, caso necessite, um novo volume deve ser criado, e depois s motar os dois e copiar os dados de um para o outro. 1. Primeiro criamos o arquivo volume de 700MB j explicado:

# dd if=/dev/zero of=volume1 bs=1M count=700 2. necessrio carregar os modulos de criptografia: # modprobe des # modprobe cryptoloop 3. Agora o uso da ferramenta losetup com os argumentos de criptografia: # losetup -e aes /dev/loop0 ./volume1 -e significa encriptar e aes o algoritmo criptogrfico, nesse momento pedir uma senha, informe a senha, pedida uma nica vez. Importante: No possibilidade de alter-la depois, no pode esquec-la. Se de alguma forma

59

esquec-la ou tiver que alter-la no existir esta possibilidade, seus dados inseridos nesse volume ficaro presos te que lembre a senha. 4. Agora formate-o no sistema de arquivo desejado. Exemplo o ext3. # mkfs.ext3 /dev/loop0 5. Agora monte-o: # mount /dev/loop0 /mnt/imagem/ 6 Quando desejar desmont-lo use: # umount /dev/loop0 Este comando para libera o dispositivo de loop0 # losetup -d /dev/loop0

Referncias Bibliogrficas Sites de dicas linux: http://www.vivaolinux.com.br http://www.clubedohardware.com.br http://www.guiafoca.org http://www.hunder-linux.org.br BR-Linux The Linux Home Page at Linux Online Linux.com: The Enterprise Linux Resource The Linux Documentation Project O que uma distribuio de Linux

60

Você também pode gostar