Você está na página 1de 165

Linux: Instalao e Iniciao

Matt Welsh Phil Hughes David Bandel Boris Beletsky Sean Dreilinger Robert Kiesling Henry Pierce Gleydson Mazioli da Silva

Traduo Oficial Alfamdia


Fernando Miguel de Alava Soto Rodrigo de Losina Silva Alexandre Folle de Menezes

Verso 1.3, julho/2002.

Os Captulos 3, 5 e 8 so adaptaes do texto: Guia Foca GNU/Linux Copyleft 1999-2002 - Gleydson Mazioli da Silva. Fonte: http://focalinux.cipsga.org.br O restante do texto uma adaptao do original: Linux Installation and Getting Started Copyright 1992-1996 Matt Welsh Copyright 1998 Specialized Systems Consultants, Inc (SSC) P.O. Box 55549 Seattle, WA 98155-0549 USA Phone: +1-206-782-7733 Fax: +1-206-782-7191 E-mail: ligs@ssc.com URL: http://www.ssc.com/ Traduo autorizada pelo autor. As marcas registradas utilizadas no decorrer deste documento so usadas unicamente para fins didticos, sendo estas propriedade de suas respectivas companhias. A Alfamdia no assume qualquer responsabilidade por erros ou omisses, ou por danos resultantes do uso das informaes contidas neste livro. Traduo para portugus - Brasil, 2002: Alfamdia Ltda Rua Flix da Cunha, 818 Porto Alegre - RS - Brasil Fone/Fax: +55 (51) 3346-7300 E-mail: alfamidia@alfamidia.com.br URL: http://www.alfamidia.com.br Traduo para portugus: Fernando Miguel de Alava Soto (soto@alfamidia.com.br) Rodrigo de Losina Silva (rodrigo@alfamidia.com.br) Alexandre Folle de Menezes (menezes@alfamidia.com.br) Permisso para copiar, distribuir, alterar, conforme licena GNU, desde que sejam mantidos os crditos acima, incluindo nome e dados da empresa e nome dos tradutores. NOTA DO TRADUTOR: FORAM TRADUZIDOS OS CAPTULOS 1 a 3 do Guia "Linux Installation and Getting Started", de Matt Welsh. O sinal (......) marca onde partes do texto foram suprimidas na traduo. Basicamente, foram suprimidos textos considerados pelo tradutor como partes que necessitam uma atualizao mais profunda ou partes que fazem referncia aos demais captulos ou partes no traduzidas.

Linux Installation and Getting Started is a free document; you may reproduce and/or modify it under the terms of version 2 (or, at your option, any later version) of the GNU General Public License as published by the Free Software Foundation. This book is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details, in Appendix C. The authors encourage wide distribution of this book for personal or commercial use, provided the above copyright notice remains intact and the method adheres to the provisions of the GNU General Public License (see Appendix C). In summary, you may copy and distribute this book free of charge or for a profit. No explicit permission is required from the author for reproduction of this book in any medium, physical or electronic. Note, derivative works and translations of this document must be placed under the GNU General Public License, and the original copyright notice must remain intact. If you have contributed new material to this book, you must make the source code (e.g., LaTeX source) available for your revisions. Please make revisions and updates available directly to the document maintainers, Specialized Systems Consultants. This will allow for the merging of updates and provide consistent revisions to the Linux community. If you plan to publish and distribute this book commercially, donations, royalties, and/or printed copies are greatly appreciated by the authors and the Linux Documentation Project. Contributing in this way shows your support for free software and the Linux Documentation Project. If you have questions or comments, please contact SSC.

CONTEDO
CONTEDO ...............................................................................................................4 1. INTRODUO ...................................................................................................11 1.1 SOBRE ESTE LIVRO .............................................................................................11 1.2 UMA BREVE HISTRIA DO LINUX ......................................................................12 1.3 RECURSOS DO SISTEMA ......................................................................................14 1.4 RECURSOS DE SOFTWARE ..................................................................................15 1.4.1 FERRAMENTAS E LINGUAGENS DE PROGRAMAO ............................................16 1.4.2 INTRODUO AO SISTEMA X-WINDOWS ............................................................17 1.4.3 INTRODUO S REDES ....................................................................................18 1.4.4 TELECOMUNICAES E SOFTWARES DE BBS .....................................................19 1.4.5 WORLD WIDE WEB ..........................................................................................19 1.4.6 INTERFACE COM O MS-DOS .............................................................................19 1.4.7 OUTRAS FERRAMENTAS ....................................................................................20 1.5 QUESTES DE COPYRIGHT .................................................................................20 1.6 O PROJETO E A FILOSOFIA DO LINUX ................................................................21 1.7 DIFERENAS ENTRE O LINUX E OUTROS SISTEMAS OPERACIONAIS ...................23 1.7.1 PORQUE USAR O LINUX ? ...................................................................................23 1.7.2 LINUX VS WINDOWS .........................................................................................23 1.7.3 LINUX VS OUTRAS IMPLE MENTAES DE UNIX .................................................24 1.8 EXIGNCIAS DE HARDWARE ..............................................................................24 1.8.1 PLACA-ME E CPU...........................................................................................24 1.8.2 EXIGNCIAS DE MEMRIA ................................................................................25 1.8.3 CONTROLADORES DE DISCO RGIDO ..................................................................25 1.8.4 ESPAO EM DISCO ............................................................................................25 1.8.5 OUTROS DISPOSITIVOS ......................................................................................25 1.9 FONTES DE INFORMAO SOBRE O LINUX ..........................................................26 1.9.1 DOCUMENTAO ONLINE .................................................................................26 1.9.2 LINUX NA WEB .................................................................................................26 1.9.3 LIVROS E OUTROS TRABA LHOS PUBLICADOS ......................................................26 1.9.4 GRUPOS DE DISCUSSO D A USENET ...................................................................27 1.9.5 LISTAS DE E -MAIL POR INTERNET ......................................................................27 1.10 BUSCANDO AJUDA SOBRE LINUX ......................................................................28

2 TUTORIAL SOBRE LINUX ......................................................................30


2.1 INTRODUO ......................................................................................................30 2.2 CONCEITOS BSICOS DO LINUX .........................................................................30 2.2.1 CRIANDO UMA CONTA .......................................................................................31 2.2.2 LOGANDO .........................................................................................................31 2.2.3 CONSOLES VIRTUAIS. .......................................................................................31

2.2.4 SHELLS E COMANDOS ........................................................................................32 2.2.5 LOGOUT ...........................................................................................................33 2.2.6 MUDANDO SUA S ENHA ......................................................................................33 2.2.7 ARQUIVOS E DIRETRIOS ..................................................................................33 2.2.8 A RVORE DE DIRETRIO S ................................................................................34 2.2.9 O DIRETRIO DE TRABAL HO CORRENTE .............................................................35 2.2.10 REFERINDO -SE A DIRETRIOS HOME ................................................................36 2.3 PRIMEIROS PASSOS NO LINUX ............................................................................36 2.3.1 PASSEANDO POR A ...........................................................................................36 2.3.2 VISUALIZANDO O CONTE DO DE DIRETRIOS .....................................................37 2.3.3 CRIANDO NOVOS DIRETR IOS............................................................................39 2.3.4 COPIANDO ARQUIVOS .......................................................................................39 2.3.5 MOVENDO ARQUIVOS .......................................................................................40 2.3.6 EXCLUINDO ARQUIVOS E DIRETRIOS ................................................................40 2.3.7 VISUALIZANDO ARQUIVOS ................................................................................40 2.3.8 BUSCANDO AJUDA ONLINE ................................................................................41 2.4 COMANDOS BSICOS DO UNIX ..........................................................................42 3 COMANDOS PARA MANIPULAO DE DIRETRIOS .............................43 3.1 O COMANDO LS ..................................................................................................43 3.2 O COMANDO CD ..................................................................................................44 3.3 O COMANDO PWD .................................................................................................44 3.4 O COMANDO MKDIR .............................................................................................44 3.5 O COMANDO RMDIR .............................................................................................45 4 EXPLORANDO O SISTEMA DE ARQUIVOS ................................................46 5 COMANDOS PARA MANIPULAO DE ARQUIVOS.................................50 5.1 O COMANDO RM ..................................................................................................50 5.2 O COMANDO CP ..................................................................................................50 5.3 5.4 5.5 5.6 5.7 O COMANDO MV ..................................................................................................51 O COMANDO LN ..................................................................................................52 O COMANDO CAT .................................................................................................53 O COMANDO TAC .................................................................................................53 O COMANDO MORE ...............................................................................................54

5.8 O COMANDO LESS ...............................................................................................54 5.9 O COMANDO HEAD ...............................................................................................54 5.10 O COMANDO TAIL .............................................................................................55 5.11 O COMANDO TOUCH ...........................................................................................55 5.12 O COMANDO WC.................................................................................................56 5.13 O COMANDO SORT .............................................................................................56 5.14 O COMANDO DIFF .............................................................................................58 5

6 PERMISSES DE ARQUIVOS .........................................................................60 6.1 CONCEITOS DE PERMISS ES DE ARQUIVOS .........................................................60 6.2 INTERPRETANDO PERMISS ES DE ARQUIVOS .....................................................60 6.3 DEPENDNCIAS DE PERMISSES .........................................................................61 6.4 MODIFICANDO PERMISSE S ...............................................................................62 7 GERENCIANDO LINKS DE ARQUIVOS........................................................63 7.1 LINKS RGIDOS ..................................................................................................63 7.2 LINKS SIMBLICOS ............................................................................................64 8 COMANDOS DE BUSCA...................................................................................65 8.1 O COMANDO GREP ...............................................................................................65 8.2 8.3 8.4 O COMANDO FIND ...............................................................................................65 O COMANDO WHICH .............................................................................................67 O COMANDO WHEREIS ........................................................................................68

9 USANDO O EDITOR VI ....................................................................................69 9.1 CONCEITOS . .......................................................................................................69 9.2 INICIANDO O VI ..................................................................................................70 9.3 INSERINDO TEXTO ..............................................................................................70 9.4 APAGANDO TEXTO .............................................................................................72 9.5 MODIFICANDO TEXTO ........................................................................................73 9.6 COMANDOS PARA MOVIMEN TAR O CURSOR .......................................................74 9.7 SALVANDO ARQUIVOS E S AINDO DO VI ...............................................................75 9.8 EDITANDO OUTRO ARQUIV O ...............................................................................75 9.9 INCLUINDO OUTROS ARQU IVOS ..........................................................................76 9.10 RODANDO COMANDOS DO S HELL ......................................................................77 9.11 AJUDA NO VI .....................................................................................................77 10 ACESSANDO ARQUIVOS MS-DOS.................................................................78 11 O SHELL .............................................................................................................79 11.1 TIPOS DE SHELL ................................................................................................79 11.2 CARACTERES CORINGA ...................................................................................80 11.3 REDIRECIONAMENTOS E P IPES .........................................................................82 11.3.1 ENTRADA PADRO E SAD A PADRO ................................................................82 11.3.2 REDIRECIONANDO ENTRAD A E SADA ..............................................................83 11.3.3 REDIRECIONAMENTO DE S ADA NO -DESTRUTIVO ............................................84 11.3.4 USANDO PIPES ................................................................................................85 11.4 PERSONALIZANDO SEU AM BIENTE ....................................................................86 11.4.1 VARIVEIS DO SHELL E O AMBIENTE ................................................................86 11.4.1.1 A varivel de ambiente PATH .....................................................................88 11.4.2 SCRIPTS DE INICIALIZA O DO SHELL..............................................................89

12 CONTROLE DE TAREFAS...............................................................................91 12.1 TAREFAS E PROCESSOS ....................................................................................91 12.2 FOREGROUND AND BACKGR OUND ....................................................................92 12.3 COLOCANDO TAREFAS EM SEGUNDO PLANO E ABOR TANDO TAREFAS ..............92 12.4 PARANDO REINICIANDO T AREFAS ....................................................................94 13 OBTENDO E INSTALANDO O LINUX ...........................................................97 13.1 INSTALAO GENRICA ...................................................................................97 13.1.1 PRINCIPAIS DISTRIBUIE S LINUX ...................................................................97 13.1.2 PLANEJAMENTO BSICO ..................................................................................98 13.1.3 HARDWARE ....................................................................................................98 13.1.4 PLANEJAMENTO ..............................................................................................99 13.1.5 PLANILHA PARA PLANEJA MENTO DO SISTEMA ..................................................99 13.1.6 MOUSE .........................................................................................................101 13.1.7 DISCOS RGIDOS (HDS) E CD-ROMS ............................................................101 13.1.8 DISCOS NO LINUX .........................................................................................102 13.1.9 INSTALANDO O X WINDOW ...........................................................................102 13.1.10 HARDWARE DE REDE .....................................................................................103 13.1.11 PLANEJAMENTO , PARTE 2 .............................................................................103 13.1.12 ESTRATGIAS DE PARTIC IONAMENTO ............................................................103 13.1.13 A PARTIO DE SWAP ...................................................................................106 13.1.14 REPARTICIONAMENTO ...................................................................................106 13.1.15 FAZENDO CPIA DE SEGU RANA DE SEU SISTEMA ANTIGO ..............................107 13.1.16 FIPS.EXE ....................................................................................................107 13.1.17 PREPARANDO O LINUX PARA INICIALIZA R ......................................................108 13.1.18 CRIANDO UM DISQUETE D E INICIALIZAO DO LINUX NO DOS.......................108 13.1.19 CRIANDO UM DISQUETE D E INICIALIZAO NO LINUX ....................................109 13.1.20 PARTICIONANDO O DISCO RGIDO : FDISK E CFDISK. ...........................................109 14 DISTRIBUIES LINUX ................................................................................112 14.1 DEBIAN GNU/LINUX ......................................................................................112 14.1.1 CARACTERSTICAS DA IN STALAO DO DEBIAN GNU/LINUX.........................112 14.1.2 OBTENDO AS IMAGENS DO DISQUETE .............................................................112 14.1.3 FAZENDO O DOWNLOAD DOS PACOTES ..........................................................113 14.1.4 INICIALIZANDO DOS DIS QUETES E INSTALANDO O DEBIAN GNU/LINUX ..........114 14.1.4.1 O disco de rescue ......................................................................................114 14.1.4.2 A caixa de dilogos colorido ou monocromtico .......................................115 14.1.4.3 O Menu Principal......................................................................................115 14.1.4.4 Configurao do teclado............................................................................116 14.1.4.5 O shell ......................................................................................................116 14.1.4.6 Particionando seus discos..........................................................................117 14.1.4.7 Inicializando e Ativando a Partio de Swap.............................................117

14.1.4.8 Inicializando uma partio Linux ..............................................................117 14.1.4.9 Instalando o sistema base ..........................................................................118 14.1.4.10 Instalando o kernel do sistema operacional................................................118 14.1.4.11 Instalando os drivers de dispositivos .........................................................118 14.1.4.12 Configurando o sistema base.....................................................................119 14.1.4.13 Configurando a rede..................................................................................119 14.1.4.14 Tornando seu disco rgido inicializvel .....................................................120 14.1.4.15 Criando um disquete de inicializao ........................................................120 14.1.4.16 O momento da verdade .............................................................................120 14.1.4.17 Add a user account and password..............................................................120 14.1.4.18 Log in .......................................................................................................121 14.1.5 RODANDO O DEBIAN GNU/LINUX.................................................................121 14.1.5.1 Classificao dos Pacotes..........................................................................121 14.1.5.2 Relacionamento entre Pacotes...................................................................122 14.1.6 DSELECT .........................................................................................................122 14.1.6.1 Access (Acesso)........................................................................................123 14.1.6.2 Update (Atualizao) ................................................................................123 14.1.6.3 Select (Selecionar) ....................................................................................123 14.1.6.4 Install (Instalar).........................................................................................124 14.1.6.5 Configure (Configurar) .............................................................................124 14.1.6.6 Remove (Remover)...................................................................................124 14.1.6.7 Quit ..........................................................................................................124 14.1.7 DPKG ............................................................................................................124 14.1.7.1 Instalando ou atualizando pacotes novos ou existentes ..............................124 14.1.7.2 Configurando pacotes instalados ...............................................................125 14.1.7.3 Removendo pacotes instalados..................................................................125 14.1.7.4 Relatando a situao dos pacotes...............................................................125 14.1.7.5 Listando pacotes disponvies.....................................................................125 14.1.7.6 Listando arquivos pertencentes por pacotes...............................................126 14.1.7.7 Encontrando o pacote que detem um arquivo ............................................126 14.1.7.8 Sumrio ....................................................................................................126 14.1.8 SOBRE O DEBIAN GNU/LINUX ......................................................................126 14.2 LINUX RED HAT.........................................................................................127 14.2.1 PROPRIEDADES DA INSTA LAO DO LINUX RED HAT LINUX ..........................127 14.2.2 O SISTEMA DE GERENCIA MENTO DE PACOTES RPM........................................127 14.2.2.1 Convenes de nome dos pacotes..............................................................128 14.2.3 UMA NOTA SOBRE ATUALI ZAO DO RED HAT ..............................................128 14.2.4 CRIANDO DISQUETES DE INSTALAO ...........................................................128 14.2.5 MDIA DE INSTALAO .................................................................................129 14.2.5.1 Instalao por NFS....................................................................................129 14.2.5.2 Instalao por disco rgido ........................................................................129

14.2.6 PERSONALIZANDO SUA IN STALAO POR DISCO R GIDO OU NFS ....................130 14.2.6.1 O arquivo comps.......................................................................................130 14.2.7 INSTALAO MNIMA REC OMENDADA ...........................................................132 14.2.8 QUANTO ESPAO VOC RE ALMENTE PRECISA ? ...............................................133 14.2.9 INSTALAO .................................................................................................133 14.2.10 AINDA SOBRE A MDIA D E INSTALAO .........................................................133 14.2.10.1 Instalao por CD-ROM ...........................................................................134 14.2.10.2 Instalao a partir do disco rgido..............................................................134 14.2.10.3 Instalao por NFS....................................................................................134 14.2.10.4 Instalao por FTP ....................................................................................135 14.2.11 PASSANDO PELO RESTO DA INS TALAO ........................................................135 14.2.12 APS A INSTALAO .....................................................................................137 14.2.12.1 Entendendo o prompt do LILO .................................................................137 14.2.12.2 Logando no sistema pela primeira vez.......................................................137 14.3 SLACKWARE ...................................................................................................138 14.3.1 O SLACKWARE NO PARA VOC. (OU TALVEZ SEJA .) ..................................138 14.3.2 UMA BREVE HISTRIA ...................................................................................138 14.3.3 POR QU , ENTO ? .........................................................................................138 14.3.4 ATUALIZAO ? PENSE DUAS VEZES ! .............................................................139 14.3.5 SELECIONE UM MTODO D E INSTALAO .......................................................139 14.3.6 DISCOS DE INICIALIZA O: SEMPRE UMA BOA IDIA .......................................139 14.3.7 PLANILHA PARA INSTALA O DO SLACKWARE ..............................................140 14.3.8 FAZENDO O SLACKWARE ACONTECER ...........................................................146 14.3.9 CRIANDO ALGUNS DISCOS DE BOOT ...............................................................147 14.3.9.1 Escolha seu kernel! ...................................................................................147 14.3.10 ENTRANDO EM AO ....................................................................................150 14.3.11 O PROGRAMA DE INSTALA O (SETUP ) SLACKWARE ......................................150 14.3.12 ISSO TUDO ?................................................................................................151 14.3.13 SOLUCIONANDO PROBLEMAS DE INSTALA O ...............................................151 14.3.13.1 FAQs de instalao do Slackware .............................................................151 14.3.13.2 Suporte na Web para o Slackware .............................................................151 14.3.13.3 Grupos de News Usenet Para Slackware ...................................................151 14.3.13.4 Listas de discusso sobre Slackware..........................................................152 14.3.13.5 Voc recebe pelo que paga (suporte comercial).........................................152 14.3.14 NO BAIXE A GUARDA ..................................................................................152 14.3.15 CONSIDERE A REINSTALAO ! ......................................................................152 14.3.16 TORNE O SISTEMA SEGUR O ............................................................................152 14.3.16.1 Saia da rede de uma vez ............................................................................152 14.3.16.2 Cadastre uma senha de root.......................................................................152 14.3.16.3 Crie uma conta para voc..........................................................................153 14.3.16.4 Proiba Logins de root................................................................................153

14.3.16.5 Verifique se h patches disponvies...........................................................153 14.3.16.6 Mantenha-se informado ............................................................................153 14.3.17 BACK UP .......................................................................................................154 15 ENFRENTANDO DIFICULDADES DE INSTALAO ...............................155 15.1 PROBLEMAS INICIALIZAN DO ATRAVS DA MDIA DE INSTALA O . ................155 15.2 PROBLEMAS DE HARDWARE ..........................................................................157 15.2.1 ISOLANDO PROBLEMAS DE HARDWARE ..........................................................157 15.2.2 PROBLEMAS NO RECONHEC IMENTO DE UM DISCO R GIDO OU CONTROLADOR ...159 15.2.3 PROBLEMAS COM DISPOSI TIVOS E CONTROLADORE S SCSI..............................160 15.3 PROBLEMAS INSTALANDO SOFTWARE ............................................................161 15.4 PROBLEMAS APS INSTAL AR O LINUX ............................................................163 15.4.1 PROBLEMAS AO INICIALI ZAR O LINUX DO DISQUETE .......................................163 15.4.2 PROBLEMAS INICIALIZA NDO O LINUX DE SEU DISCO R GIDO ...........................163 15.4.3 PROBLEMAS PARA ENTRAR NO SISTEMA (LOGIN ) ............................................165 15.4.4 PROBLEMAS USANDO O SI STEMA ...................................................................165

10

1. INTRODUO
O Linux possivelmente o mais importante software livre produzido desde o Space War ou, mais recentemente, o Emacs. Ele evoluiu para um sistema operacional completo para negcios, educao e uso pessoal. O Linux no esta mais restrito ao universo de hackers que ficam horas na frente de um monitor (embora muitos de seus usurios se enquadrem neste grupo). O Linux um sistema operacional UNIX que executa em uma variedade de plataformas, principalmente computadores pessoais com processadores 80386 ou seus sucessores. Ele suporta uma vasta gama de softwares, como o TeX, o Sistema X-Windows, o compilador GNU C/C++, e o TCP/IP. uma implementao verstil e confivel do UNIX, distribuda livremente nos termos da Licena Geral de Uso GNU (GNU General Public License). O Linux pode transformar qualquer computador 386 ou superior em uma estao de trabalho que coloca em suas mos todo o poder e flexibilidade do UNIX. Empresas instalam Linux em suas redes de computadores, e usam o sistema operacional para gerenciar sistemas financeiros e hospitalares, ambientes de computao distribuda e telecomunicaes. Universidades do mundo inteiro utilizam o Linux para ministrar cursos de definio e implementao de sistemas operacionais. Entusiastas por computadores usam o Linux em casa para programao, como ferramenta de produtividade, e uma infinidade de outros usos. O que torna o Linux to diferente de outras opes de sistema operacional que ele uma implementao gratuita do UNIX. Ele foi e ainda est sendo desenvolvido cooperativamente por um grupo de voluntrios, principalmente atravs da Internet, que trocam cdigos, relatam bugs e resolvem problemas em um ambiente aberto. Todos so bem vindos ao esforo de desenvolvimento do Linux. Tudo que necessrio o interesse em mexer em uma implementao do UNIX e algum conhecimento de programao.

1.1

Sobre este livro

Este livro um guia de instalao e iniciao ao Linux. O propsito iniciar novos usurios consolidando tanto material quanto possvel em um s livro. Ao invs de cobrir detalhes tcnicos volteis, que tendem a mudar rapidamente, damos a voc uma excelente base para que possa descobrir mais por conta prpria. O Linux no difcil de instalar e usar. Entretanto, assim como qualquer implementao do UNIX, h freqentemente uma magia negra envolvida para fazer com que tudo funcione corretamente. Esperamos que este livro seja seu ingresso para a excurso no mundo Linux e que mostre quo incrvel um sistema operacional pode ser. Neste livro, cobrimos os seguintes tpicos: O que o Linux? O projeto e filosofia deste sistema operacional exclusivo, e o que ele pode fazer por voc.

Detalhes da execuo do Linux, incluindo sugestes e recomendaes de configurao de hardware. Instrues especficas para instalar vrias distribuies Linux, como Debian, Red Hat e Slackware. Um breve tutorial introdutrio ao UNIX para usurios sem experincia anterior em UNIX. Esse tutorial deve fornecer material suficiente para que iniciantes encontrem seu caminho pelo sistema. (......)

Este livro para usurios que queiram iniciar no Linux. No assumimos qualquer experincia prvia em UNIX, mas esperamos que os iniciantes busquem outras fontes de referncia ao longo do aprendizado. (......). Em geral, este livro feito para ser lido juntamente com outro livro sobre conceitos bsicos de UNIX.

1.2

Uma Breve Histria do Linux

O UNIX um dos sistemas operacionais mais populares do mundo devido enorme base instalada do mesmo. Ele foi originalmente desenvolvido na dcada de 70 na AT&T como um sistema multitarefa para minicomputadores e mainframes, mas desde ento cresceu para se tornar um dos sistemas operacionais mais utilizados, apesar de sua interface s vezes confusa e a falta de uma padronizao centralizada. Muitos hackers acreditam que o UNIX a "coisa certa", o nico sistema operacional de verdade. Da, conseqentemente, o desenvolvimento do Linux se d, em grande parte, por uma comunidade de hackers que desejam "sujar" suas mos mexendo no seu prprio sistema operacional. Verses do UNIX existem em muitos sistemas, de computadores pessoais a supercomputadores como o Cray. A maioria das verses do UNIX para computadores pessoas, porm, so caras e difceis de utilizar. O Linux uma verso gratuita do UNIX desenvolvida inicialmente por Linus Torvalds na Universidade de Helsinque, na Finlndia, com a ajuda de muitos programadores UNIX espalhados pela Internet. Qualquer um com conhecimento suficiente e vontade pode alterar e melhorar o sistema. O kernel (ncleo) do Linux no utiliza nenhum cdigo da AT&T ou de qualquer outra fonte proprietria, e muito do software disponvel para Linux foi desenvolvido como parte do projeto GNU da Free Software Foundation, em Cambridge, Massachusetts, nos Estados Unidos. Entretanto, programadores do mundo inteiro contriburam para o crescente conjunto de softwares para Linux. O Linux foi originalmente desenvolvido como um projeto de passatempo por Linus Torvalds. Foi inspirado no Minix, um pequeno sistema UNIX desenvolvido por Andy Tanenbaum. As primeiras discusses sobre o Linux se realizaram no grupo de discusso da Usenet comp.os.minix. Estas discusses eram centradas no desenvolvimento de uma verso acadmica do UNIX para usurios do Minix que queriam um sistema operacional com mais recursos.

12

O desenvolvimento inicial do Linux - na poca feito todo em assembly lidou principalmente com os recursos multitarefa da interface de modo protegido do 80386. Linus escreveu: "Depois desta etapa ficou bem mais simples: um cdigo complicado, ainda, mas a depurao era bem mais fcil. Eu comecei a utilizar C neste ponto, e isto certamente acelerou o desenvolvimento. Foi tambm ento que comecei a pensar seriamente nas minhas idias megalomanacas de criar um Minix melhor que o Minix. Eu tinha a esperana de que conseguiria recompilar o gcc em cima do Linux algum dia." "Foram pouco mais de dois meses para eu ter um driver de disco rgido (cheio de bugs, mas que pelo menos na minha mquina funcionava) e um pequeno sistema de arquivos. Foi nesta poca que liberei a verso 0.01 (perto do final de agosto de 1991): no era algo bonito, no tinha driver para disquete e no podia fazer muita coisa. Duvido que algum tivesse chegado a compilar esta verso. Mas ento eu j estava envolvido, e no iria parar enquanto no superasse o Minix". Nenhum anncio jamais foi feito do lanamento da verso 0.01. Os cdigos fonte no eram sequer executveis. Continham apenas os rudimentos do kernel e assumiam que voc tinha acesso a uma mquina Minix para compilar e experimentar com eles. Em outubro de 1991 Linus anunciou a primeira verso "oficial" do Linux, que era a verso 0.02. Nesta fase, Linus conseguia rodar o bash (o Bourne Again Shell do GNU) e o GCC (o compilador C do GNU), mas bem pouco alm disto. Novamente, tratava-se de um sistema para hackers. O foco principal era o desenvolvimento do kernel - questes como suporte a usurios, documentao e distribuio nem haviam sido levantadas. Hoje, a comunidade Linux ainda tende a tratar estas questes como secundrias perante a "verdadeira programao": o desenvolvimento do kernel. Como Linus escreveu no comp.os.minix : "Voc ainda sente falta dos saudosos dias do Minix-1.1, quando os homens eram homens e escreviam seus prprios drivers de dispositivo? Est sem um projeto legal e morrendo de vontade de cravar seus dentes em um sistema operacional que voc pode modificar como quiser? Est ficando frustrado quando tudo funciona no Minix? Com saudades de perder noites tentando fazer um programa difcil funcionar? Ento esta mensagem para voc." "Como havia mencionado um ms atrs, eu estou trabalhando numa verso gratuita de um sistema parecido com o Minix para computadores 386. Ele finalmente atingiu o estgio em que talvez seja at usvel (embora talvez no, dependendo do que voc quer), e eu estou disposto a disponibilizar os fontes para uma distribuio mais abrangente. apenas a verso 0.02, mas consegui com sucesso executar nele o bash, gcc, gnu-make, gnu-sed, compress, etc."

13

Aps a verso 0.03, Linus subiu o nmero de verso para 0.10, j que mais pessoas estavam trabalhando no projeto. Depois de vrias outras revises, Linus subiu o nmero de verso para 0.95 em maro de 1992, refletindo suas expectativas que o sistema estava quase pronto para um lanamento oficial. (De modo geral, um software no recebe o nmero de verso 1.0 at que esteja teoricamente completo ou livre de bugs). Quase um ano e meio depois, no final de dezembro de 1993, o kernel do Linux ainda estava na verso 0.99.pl14, lentamente se aproximando de 1.0. Hoje, o Linux j est na verso 2.4.18, e a verso 2.5 j est em desenvolvimento. A maioria dos principais pacotes gratuitos UNIX j foi portada para o Linux, e softwares comerciais tambm esto disponveis. Mais hardware suportado do que na verso original do kernel. Quem iria imaginar que este "pequeno" clone do UNIX iria crescer at atingir a posio que atingiu no universo de computadores pessoais.

1.3

Recursos do Sistema

O Linux suporta os recursos normalmente encontrados em outras implementaes do UNIX, e muitos outros que no so encontrados em nenhum outro sistema operacional. Nesta seo iremos apresentar rapidamente os recursos do kernel do Linux. O Linux um sistema operacional multiusurio e multitarefa completo, como o so todas as outras verses do UNIX. Isto significa que muitos usurios diferentes podem entrar e executar programas na mesma mquina simultaneamente. O sistema Linux quase totalmente compatvel com diversos padres UNIX no cdigo fonte, incluindo IEEE POSIX 1, UNIX System V e Berkeley System Distribution UNIX (BSD UNIX). O Linux foi desenvolvido tendo em mente a portabilidade do cdigo fonte, e comum encontrar recursos que so compartilhados por mais de uma plataforma. Boa parte do software livre UNIX disponvel na Internet compila diretamente em Linux. Adicionalmente, todo o cdigo fonte do Linux, incluindo Kernel, drivers de dispositivo, bibliotecas, programas para usurios e ferramentas de desenvolvimento, pode ser livremente distribudo. Outros recursos internos especficos do Linux incluem controle de tarefas POSIX (usado em shells como csh e bash), pseudo-terminais (dispositivos tty), e suporte para dispositivos lidos dinamicamente para controle de teclados nacionais ou customizados. Linux tambm suporta consoles virtuais que permitem que voc troque entre sesses de usurio no mesmo console de sistema. O Kernel tambm pode emular instrues de ponto flutuante do 387, de forma que mquinas sem um co-processador aritmtico podem rodar programas que exijam este tipo de instrues. O Linux tambm suporta diversos sistemas de arquivo para armazenar dados, como o ext2, que foi desenvolvido especificamente para o Linux. Os sistemas de arquivos Xenix e UNIX System V tambm so suportados, bem como o FAT do MS-DOS e o VFAT do Windows 95. Tambm so suportados os sistemas de arquivos ISO9660, para CD-ROM, e UDF, para DVD.

14

O Linux fornece uma implementao completa do software de TCP/IP, incluindo drivers de dispositivo para vrias placas Ethernet, protocolos SLIP e PPP, para conexo TCP/IP discada, PLIP e NFS. A gama completa de clientes e servios TCP/IP tambm suportada, o que inclui FTP, telnet, NNTP e SMTP. O kernel do Linux desenvolvido para utilizar os recursos do modo protegido do Intel 80386 e seus sucessores. Qualquer pessoa familiarizada com o modo protegido do 80386 sabe que o chip foi desenvolvido para sistemas multitarefa, como o Linux. O kernel suporta executveis lidos sob demanda. Apenas aqueles segmentos do programa que eventualmente esto em uso so lidos do disco para a memria. Alm disto, se diversas instncias de um programa esto rodando ao mesmo tempo, elas compartilham a mesma memria fsica, o que reduz o consumo total de memria. Visando aumentar a memria disponvel, o Linux tambm implementa paginao de disco. At um gigabyte de rea de swap pode ser alocada no disco. Quando o sistema exige mais memria fsica, ele salva as pginas inativas em disco, permitindo que voc rode aplicaes maiores e suporte mais usurios. Entretanto, naturalmente h uma perda de velocidade, pois o disco muito mais lento do que a memria RAM. O kernel do Linux tambm implementa um gerenciamento de memria unificado para programas de usurio e cache de disco. Toda a memria livre utilizada para cache de disco, que reduzido quando so executados programas grandes. Executveis usam bibliotecas dinmicas compartilhadas, de forma semelhante ao mecanismo de compartilhamento de bibliotecas do sistema operacional SunOS. Conseqentemente, arquivos executveis ocupam menos espao em disco, em particular aqueles que utilizam muitas funes de biblioteca. Existem tambm bibliotecas lincadas estaticamente, para depurao e criao de arquivos binrios completos, para o caso de sistemas que no tenham as bibliotecas dinmicas instaladas. Para facilitar a depurao, o kernel gera core dumps (imagens da memria) para anlise em caso de falha do sistema, tornando possvel identificar o que fez determinado programa derrubar o sistema.

1.4

Recursos de Software

Praticamente todas as ferramentas que se espera encontrar em uma implementao padro do UNIX j foram portadas para o Linux, incluindo os comandos bsicos, como ls, awk, tr, sed, bc, e more. O ambiente de desenvolvimento de outros sistemas UNIX duplicado no Linux. Todos os comandos e utilitrios padres esto includos. Muitos editores de texto esto disponveis, como vi, ex, pico, jove e GNU Emacs. O editor de texto que voc est acostumado a usar muito provavelmente j foi portado para o Linux. A escolha do editor de texto uma questo interessante. Muitos

15

usurios UNIX preferem editores "simples" como vi, mas vi tem muitas limitaes devido a sua idade, e editores modernos como o Emacs tem ganhado popularidade. O Emacs suporta uma linguagem macro e um interpretador baseados em Lisp, poderosas sintaxes de comando e outras extenses. Existem pacotes de macros Emacs que permitem que voc leia emails, edite o contedo de diretrios, etc. A maioria dos aplicativos bsicos do Linux so softwares GNU. Aplicativos GNU suportam recursos avanados no encontrados nas verses padro de programas BSD ou UNIX System V. Por exemplo, o clone GNU do vi, o elvis, inclui uma linguagem de macro estrutura que diferente da verso original. Entretanto, os aplicativos GNU permanecem compatveis com as verses BSD e System V. Muitas pessoas consideram as verses GNU superiores s originais. Um shell um programa que l e executa comandos do usurio. Alm disto, muitos programas shell oferecem recursos como controle de tarefas, gerenciamento simultneo de diversos processos, redirecionamento de entrada e sada e uma linguagem de comando para escrita de scripts shell. Um script shell um programa na linguagem de programao do shell e anlogo aos arquivos batch do MS-DOS. Muitos tipos de shell esto disponveis no Linux. A mais importante diferena entre shells a linguagem de programao. Por exemplo, o C Shell (csh) usa uma linguagem de comando similar a linguagem de programao C. O Bourne Shell (sh) usa outra linguagem de comando. A escolha do shell geralmente baseada na linguagem de comandos que ele oferece e determina significativamente a qualidade do ambiente de desenvolvimento que estar sendo oferecido naquele Linux. O GNU Bourne Again Shell (bash) uma variao do Bourne Shell que inclui muitos recursos avanados como controle de tarefas, histrico de comandos, uma interface semelhante ao Emacs para edio de linhas de comando e outras poderosas extenses do Bourne Shell padro. Outro shell popular o tcsh, uma verso do C Shell com avanos de funcionalidade semelhantes ao bash. Outros shells incluem zsh, ksn, ash e rc. (......)

1.4.1 Ferramentas e Linguagens de Programao


O Linux fornece um ambiente completo de programao UNIX, incluindo todas as bibliotecas padro, ferramentas de programao, compiladores e ferramentas de depurao. So suportados padres como o POSIX.1, o que permite que programas escritos para o Linux sejam facilmente portados para outros sistemas operacionais. Programadores profissionais UNIX e administradores de sistema usam o Linux para desenvolver programas em casa, ento copiam o programa para outras plataformas UNIX. Estudantes de computao aprendem programao UNIX e exploram outros aspectos do sistema, como a arquitetura do kernel, com Linux. Com o Linux, o programador tem acesso ao fonte do kernel e de todas as bibliotecas.

16

Dentro do mundo de software UNIX, sistemas e aplicaes so geralmente programados em C ou C++. O compilador C e C++ padro no Linux o GNU gcc, que um compilador avanado que suporta C++, incluindo recursos do ANSI/ISO C++, bem como Objective-C, outra linguagem orientada a objetos derivada do C. Alm de C e C++, outras linguagens compiladas e interpretadas j foram portadas para o Linux, como Smalltalk, FORTRAN, Java, Pascal, Lisp, Scheme e ADA. Adicionalmente, vrias ferramentas para programao em Assembly, esto disponveis, bem como interpretadores Perl e Tcl/Tk. O depurador gdb pode avanar pelo cdigo fonte de um programa, uma linha por vez, e examinar um core dump para encontrar a causa de uma queda do programa. A ferramenta gprof permite anlises estatsticas de desempenho, informando as partes em que o programa gasta mais tempo de execuo. Como mencionado anteriormente, o editor de texto Emacs fornece um ambiente de programao que permite a edio e compilao de fontes em vrias linguagens. Outras ferramentas incluem o GNU make e GNU image, que permitem manipular a compilao de grandes aplicaes, e o RCS, um sistema para controle de verses de cdigo fonte. Finalmente, o Linux suporta DLLs, que so bibliotecas compartilhadas e dinamicamente lincadas, e permitem executveis muito menores.

1.4.2 Introduo ao Sistema X -Windows


O Sistema X-Windows, ou simplesmente X, uma poderosa interface grfica (GUI - Graphical User Interface) para mquinas UNIX e um poderoso ambiente que suporta muitas aplicaes. Usando o Sistema X-Windows, voc pode ter diversas janelas de terminal na tela ao mesmo tempo, cada uma tendo uma sesso de usurio diferente. Um mouse geralmente utilizado com o X, ainda que no seja indispensvel. Muitas aplicaes especficas do ambiente X j foram escritas, incluindo jogos, ferramentas grficas e de programao e ferramentas de documentao. Atravs de uma rede TCP/IP, uma mquina Linux pode mostrar aplicaes X que estejam rodando em outras mquinas. O Sistema X-Windows foi originalmente desenvolvido no MIT (Massachusetts Institute of Technology) e gratuito. Muitas empresas j distriburam verses proprietrias aprimoradas do Sistema X-Windows. A verso do X para Linux o XFree86, uma verso portada do X11R6. O XFree86 suporta uma larga gama de adaptadores de vdeo, incluindo VGA, Super VGA e placas aceleradoras de vdeo. O XFree86 inclui o servidor X, aplicaes, utilitrios, bibliotecas de programao e documentao. Aplicaes padro do X incluem o xterm, um emulador de terminal utilizado para executar aplicaes de modo texto em uma janela, entre outros. Entre as muitas aplicaes em X esto includas planilhas eletrnicas, editores de texto, ferramentas grficas e navegadores da Web, como o Netscape. Em teoria, qualquer aplicao desenvolvida para o X ir compilar e executar no Linux. A interface do Sistema X-Windows controlada pelo gerenciador de 17

janelas. Este programa responsvel pelo posicionamento, movimentao e redimensionamento das janelas, controle dos cones associados s janelas, entre outras tarefas semelhantes. O XFree86 inclui o twm, o gerenciador de janelas clssico do MIT, e gerenciadores de janela avanados, como o Open Look Virtual Window Manager (olvwm). Outro gerenciador de janelas popular o fvwm, que mostra as janelas com uma aparncia tridimensional. Muitas distribuies do Linux utilizam o fvwm como gerenciador padro de janelas. Uma verso do fvwm chamada fvwm95-2 imita o visual do ambiente de janelas Windows. A distribuio do XFree86 inclui bibliotecas de programao para programadores que desejam desenvolver aplicaes para o X. A exigncia mnima para utilizar o X um 80386 com pelo menos 4 megabytes de RAM, embora 16 MB ou mais seja recomendvel.

1.4.3 Introduo s Redes


Voc gostaria de se comunicar com o mundo? Linux suporta dois protocolos de rede UNIX: TCP/IP e UUCP. TCP/IP (Transmission Control Protocol/Internet Protocol) o paradigma de conexo que permite que sistemas de todo o mundo se comuniquem em uma rede nica, a Internet. Com Linux, TCP/IP e uma conexo com a Internet, voc pode se comunicar com usurios e mquinas atravs de e-mail, news e FTP. A maioria das redes TCP/IP utiliza a Ethernet como meio fsico de transporte. O Linux suporta vrias placas Ethernet para computadores pessoais, incluindo adaptadores PCMCIA. Entretanto, como nem todos tem uma conexo Ethernet em casa, Linux tambm suporta os protocolos SLIP e PPP, que permitem o acesso a Internet via modem. Muitas empresas e universidades possuem servidores SLIP e PPP. Se seu sistema Linux tem uma conexo Ethernet com a Internet, voc pode torn-lo tambm um servidor SLIP ou PPP. O NFS (Network File System) permite que seu sistema Linux compartilhe arquivos e diretrios com outras mquinas da rede. O FTP permite que voc transfira arquivos de e para outras mquinas. O Sendmail envia e recebe emails atravs do protocolo SMTP. Telnet, rlogin e rsh permitem que voc entre em outras mquinas presentes em uma rede e execute comandos nelas. O finger permite que voc recupere informaes sobre outros usurios da Internet. O Linux tambm suporta conexo com mquinas Windows atravs do Samba e com mquinas Macintosh com AppleTalk e LocalTalk. Suporte ao protocolo IPX da Novell tambm est includo. A gama completa de leitores de e-mail e news tambm est disponvel para o Linux, incluindo elm, pine, rn, nn e tin. Qualquer que seja sua preferncia, voc pode configurar um sistema Linux para enviar e receber news e e-mail para qualquer lugar do mundo. O Linux fornece ainda uma interface padro para a programao de sockets. Virtualmente qualquer programa que utiliza TCP/IP pode ser portado para o Linux. O servidor X do Linux tambm suporta TCP/IP, e aplicaes rodando remotamente podem utilizar o monitor de seu computador. 18

UUCP (UNIT-to-UNIX Copy) um mecanismo mais antigo de transferncia de arquivos, e-mails e news entre mquinas UNIX. Historicamente, mquinas UUCP se conectam por linhas telefnicas, via modem, mas UUCP pode ser utilizado tambm para transferir dados em uma rede.

1.4.4 Telecomunicaes e Softwares de BBS


Se voc tem um modem, voc ser capaz de se comunicar com outras mquinas via pacotes de telecomunicao disponveis para o Linux. Um pacote popular de comunicao para o Linux o seyon, que fornece uma interface customizvel e ergonmica no X, e possui suporte para os protocolos de transferncia de arquivos Kermit e ZModem. Outros programas de telecomunicao incluem o C-Kermit, pcomm e minicom. So programas similares aos encontrados em outros sistemas operacionais e relativamente fceis de utilizar. Se voc no tem acesso a um servidor SLIP ou PPP, pode utilizar o term para dividir sua linha serial. O programa term permite que voc abra mais de uma sesso de usurio em uma conexo por modem. Permite ainda que voc redirecione conexes de um cliente X para seu servidor X local por uma linha serial. Outro pacote de software, KA9Q, implementa uma interface SLIP similar.

1.4.5 World Wide Web


importante observar que o Linux inclui servidores web, bem como navegadores da web. O servidor mais conhecido o Apache. Milhares de sistemas Linux rodam Apache na Internet hoje em dia. Distribuies do Linux incluem diferentes web browsers, e outros podem ser copiados da Internet. Browsers disponveis incluem Lynx, Mosaic, Netscape, Arena e Amaya. O Linux tambm oferece suporte completo para Java e CGI, e o Perl uma ferramenta padro do ambiente de programao Linux.

1.4.6 Interface com o MS -DOS


Existem diversas ferramentas que fazem interface com o MS-DOS. A mais conhecida o Linux MS-DOS Emulator, que permite que se execute aplicativos MS-DOS diretamente do Linux. Ainda que ambos sejam sistemas operacionais completamente diferentes, o ambiente de modo protegido do 80386 possibilita que aplicaes MS-DOS comportem-se como se estivessem executando diretamente. Diversas ferramentas executam no emulador MS-DOS. Naturalmente, aplicaes MS-DOS que usam recursos bizarros e esotricos do sistema podem nunca vir a ser suportadas, devido s limitaes inerentes a qualquer emulador. Comandos e ferramentas que so padro no MS-DOS, como pkzip.exe, 4dos, e outras, executam normalmente no emulador.

19

O emulador MS-DOS se destina a ser apenas uma soluo para quem precisa utilizar algumas poucas aplicaes MS-DOS, e utiliza Linux para todas as outras atividades. No se destina a ser uma implementao completa do MS-DOS. Se o emulador no suficiente para atender as suas necessidades, sempre possvel executar o MS-DOS e o Linux na mesma mquina. Utilizando o LILO, voc pode especificar na inicializao do sistema qual o sistema operacional que vai ser executado. Outro emulador, o WINE, se destina a permitir o uso de aplicativos MSWindows, emulando o Microsoft Windows no Sistema X-Windows.

1.4.7 Outras Ferramentas


Um conjunto de outros programas e ferramentas existe para Linux. Bancos de dados relacionais, como Postgres, Ingres e Mbase, bem como bancos de dados comerciais, como Oracle, existem em plataforma Linux. Muitas outras aplicaes j foram portadas para Linux. Se voc no consegue encontrar o que procura, voc pode voc mesmo portar uma aplicao de outra plataforma para Linux. (......)

1.5

Questes de Copyright

O Linux protegido pelo que conhecido como a GNU GPL (GNU General Public License). A GPL foi desenvolvida pela Free Software Foundation para o projeto GNU e especifica uma srie de regras para a distribuio e modificao de software livre. Livre, neste sentido, refere-se a distribuio, no ao custo. Originalmente, Linus Torvalds disponibilizou o Linux atravs de uma licena mais restritiva que a GPL, que permitia que o software fosse livremente distribudo e modificado, mas que impedia que qualquer quantia em dinheiro fosse cobrada por sua distribuio e uso. A GPL, por outro lado, permite que pessoas vendam e tenham lucro com software livre, mas no permite que elas restrinjam de qualquer forma o direito de outros de distriburem tambm o software como bem entenderem. Primeiro preciso que se explique que o software livre protegido pela GPL no de domnio pblico. Software de domnio pblico, por definio, no tem um copyright e pertence ao pblico. Software protegido pela GPL, por outro lado, copyright do autor. O software protegido pelas leis internacionais de copyright, e o autor est legalmente definido. A GPL protege softwares que podem ser livremente distribudos, mas que no so de domnio pblico. Software GPL tambm no shareware. Normalmente, sharewares pertencem a um autor que exige que os usurios lhe enviem dinheiro para utiliz-lo. Softwares GPL podem ser distribudos e utilizados sem que nada seja cobrado por eles. A GPL tambm permite que qualquer um utilize, modifique e distribua suas prprias verses do software. Entretanto, todo e qualquer trabalho derivado de um software protegido pela GPL precisa, necessariamente, 20

tambm ele ser protegido pela mesma licena. Em outras palavras, uma empresa no pode modificar o Linux e vend-lo protegido por uma licena mais restritiva que a GPL. Se o software deriva do Linux, ele tem que ser associado a GPL. Entretanto, voc pode revender qualquer produto derivado do Linux, desde que o mesmo tambm esteja disponvel gratuitamente. A primeira vista, isto pode parecer uma contradio. Porque vender software quando a GPL obriga que o mesmo esteja tambm disponvel gratuitamente? Imagine que uma empresa grave um CD-ROM com diversos softwares gratuitos. Obviamente ela teria um custo por este trabalho que teria que ser cobrado dos interessados em adquirir o produto. A GPL permite que ela cubra os custos e mesmo tenha lucro vendendo um CD-ROM com software livre. Organizaes que vendem software livre tm, porm, que seguir certas restries definidas na GPL, no podendo restringir os direitos dos usurios que adquirem o produto. Se voc compra um CD-ROM que contenha produtos protegidos pela GPL, voc pode copiar e distribuir o CD-ROM sem ter que pagar nada por isto, e mesmo revend-lo voc mesmo. Os distribuidores tm que deixar claro para seus compradores que os softwares esto protegidos pela GPL e disponibilizar o cdigo-fonte dos mesmos sem nenhum custo. Isto permite que qualquer um que compre software protegido pela GPL possa modific-lo. Permitir que empresas distribuam ou vendam software livre algo importante, pois nem todos tm acesso a Internet e condies de baixar software de graa. Muitas organizaes vendem Linux em CD-ROM e outras formas, e lucram com as vendas. Desenvolvedores Linux provavelmente nunca vo receber uma parcela deste lucro, mas este um entendimento obtido entre os programadores e distribuidores de softwares que obedecem a GPL. Em outras palavras, Linus Torvalds sabia que empresas poderiam vender Linux e que ele poderia no ganhar um centavo com estas vendas. No mundo do software livre, a questo fundamental no o dinheiro. O objetivo do software livre sempre de desenvolver e distribuir programas excelentes e permitir que qualquer um obtenha e use. Na prxima seo, ns iremos discutir como isto se aplica ao desenvolvimento do Linux.

1.6

O Projeto e a Filosofia do Linux

Novos usurios geralmente tm algumas falsas expectativas sobre o Linux. importante entender a filosofia e o projeto do Linux para us-lo efetivamente. Ns iremos comear apresentando qual no a filosofia dele. Em empresas que desenvolvem verses comerciais do UNIX, o sistema todo desenvolvido segundo uma poltica rigorosa de controle de qualidade, que utiliza sistemas de controle de cdigos fonte, documentao e procedimentos para relatar e resolver bugs. Desenvolvedores no podem alterar recursos e mudar sees chaves do cdigo ao seu bel prazer. Eles precisam justificar a mudana como resposta a um relato de bug e em seguida marcar todas as mudanas no sistema de controle do cdigo fonte, de tal forma que as mudanas possam ser desfeitas se necessrio. Cada desenvolvedor responsvel por uma ou mais partes do cdigo, e apenas o responsvel pode 21

fazer alteraes em sua seo do cdigo fonte. Um departamento de controle de qualidade executa rigorosos testes em cada nova verso do sistema operacional e relata qualquer bug. Os desenvolvedores consertam os bugs relatados. Um complexo sistema de anlise estatstica utilizado para garantir que uma certa percentagem dos bugs seja resolvida antes da liberao da prxima verso do sistema operacional. A empresa, naturalmente, precisa ter alguma prova quantificvel que a prxima verso do sistema operacional est pronta para ser liberada, o que torna necessria a coleta de anlises estatsticas quanto ao desempenho do mesmo. um trabalho de grandes propores desenvolver um sistema UNIX comercial, geralmente empregando centenas, ou mesmo milhares, de profissionais. Obviamente, no existem dois fabricantes de verses comerciais do UNIX que sejam exatamente iguais, mas este o cenrio tpico. O modelo de desenvolvimento do Linux descarta todo o conceito clssico de desenvolvimento organizado, sistemas de controle de cdigo fonte, relatrios estruturados de bugs e controle estatstico de qualidade. Linux , e possivelmente sempre ser, um sistema operacional desenvolvido por hackers. (Por hacker, queremos dizer um programador expert, dedicado a mexer com computadores. Este o conceito original da palavra hacker, em contraste com a conotao de hacker como algum que utiliza o computador com objetivos ilegais. Atualmente as palavras cracker ou haxor tm ou sido utilizadas para denominar este segundo grupo de indivduos). No existe uma organizao exclusivamente responsvel pelo desenvolvimento do Linux. Qualquer um com conhecimento suficiente pode auxiliar no desenvolvimento e teste do kernel, no porte de novos softwares, na escrita de documentao, e mesmo no auxlio a novos usurios. Atravs de listas de e-mail e grupos Usenet a comunidade Linux mantm contato entre si. Qualquer um que queira incluir cdigo na verso oficial do kernel pode enviar um e-mail para Linus Torvalds, que ir testar e decidir se possvel incluir o cdigo no kernel. O sistema em si projetado de forma aberta e orientado a recursos. Os critrios para lanamento de uma nova verso incluem o nmero de bugs consertados, retorno para usurio durante testes pr-lanamento, etc. suficiente dizer que nem todos os bugs so corrigidos, nem todos os problemas so solucionados entre verses. Enquanto as revises estiverem livres de erros crticos e bugs recorrentes, elas so consideradas estveis. Qualquer um que desenvolver um novo recurso ou ferramenta geralmente disponibiliza o mesmo como uma verso alfa, ou seja, uma verso de teste, para aqueles que quiserem auxiliar na descoberta de problemas no cdigo. Verses Alfa so geralmente disponibilizadas inicialmente em determinados sites de ftp, e mensagens so enviadas para uma ou mais listas de Linux. Usurios que instalam as verses alfa das ferramentas enviam suas opinies, correes de bugs e perguntas para os autores. Depois que os primeiros bugs foram resolvidos, o cdigo entra a fase de Beta teste, na qual considerado estvel, mas incompleto. Ele funciona, mas nem todos os recursos necessariamente esto presentes. Eventualmente, o

22

software pode ir direto para a etapa final, na qual considerado completo e utilizvel. Tenha em mente que estas so convenes, no regras. Alguns programadores podem se sentir to confiantes em seus softwares que optem por no lanar verses alfa ou beta. Sempre cabe ao desenvolvedor tomar este tipo de deciso. Voc pode chegar a duvidar que tal sistema desestruturado de voluntrios que programam e testam um UNIX completo consigam produzir resultados. Hoje sabido que o Linux um dos mais eficientes e motivados esforos de desenvolvimento j realizado. O kernel inteiro do Linux foi construdo do zero, sem nenhum cdigo proprietrio. Bibliotecas so escritas e portadas, sistemas de arquivo so desenvolvidos, e drivers de dispositivos so escritos, tudo graas ao trabalho de voluntrios. O software Linux geralmente disponibilizado como uma distribuio, um conjunto de ferramentas j empacotado que compreende todo um sistema. Seria difcil para a maioria dos usurios instalar um sistema completo do zero, comeando com o kernel, incluindo ferramentas e instalando todos os softwares necessrios, sem utilizar uma distribuio. Assim, muitas distribuies esto disponveis que incluem tudo que necessrio para instalar e rodar um sistema completo. No existe uma nica distribuio padro. Existem muitas, e cada uma tem suas vantagens e desvantagens.

1.7

Diferenas entre o Linux e outros Sistemas Operacionais

importante entender as diferenas entre o Linux e outros sistemas operacionais, como MS-DOS, Windows e outras implementaes de UNIX para computadores pessoais. Em primeiro lugar, Linux coexiste pacificamente com outros sistemas operacionais na mesma mquina. Voc pode executar MSDOS ou Windows na mesma mquina em que roda Linux.

1.7.1 Porque usar o Linux?


Porque utilizar Linux ao invs de um sistema operacional comercial? Para usurios e programadores de UNIX e estudantes que tm interesse em dominar tal plataforma, faz muito mais sentido utilizar um sistema operacional Linux do que Windows em casa. Para hackers, no sentido sempre de experts em informtica, Linux o sistema operacional ideal. Para empresas, Linux pode ser uma soluo mais barata, robusta e eficiente que outras alternativas. Muitas empresas tm utilizado como forma de evitar os altos custos anuais com compras de licenas de software, enquanto outras tm escolhido como forma de utilizar eficientemente mquinas ultrapassadas, que no rodam nas verses recentes do Windows, mas funcionam com eficincia em um Linux.

1.7.2 Linux vs Windows


Tanto as diferentes verses do Windows quanto o Linux so sistemas operacionais multitarefa, suportando aproximadamente os mesmos recursos de 23

interface com usurios, conexo com redes de computadores, etc. A verdadeira diferena que o Linux uma verso do UNIX, beneficiando-se da contribuio da comunidade UNIX como um todo. Ao contrrio do Linux, o Windows propriedade de uma nica empresa. O desenvolvimento do sistema operacional controlado por uma nica corporao, o que traz vantagens em termos de padronizao e definio de interface, mas tambm significa que as definies de poltica de preos e padres a serem utilizados sero todos definidos por uma empresa. (......)

1.7.3 Linux vs outras implementaes de UNIX


Existem diversas outras implementaes do UNIX para o PC, mesmo porque a arquitetura do 80386 e de seus sucessores bastante adequada estrutura do UNIX. Outras implementaes do UNIX para computadores pessoas so similares ao Linux. Praticamente todas as verses do UNIX suportam os mesmos softwares, ambientes de programao e recursos de conexo. Diferenas existem, porm. Muitos usurios relatam que o Linux pelo menos to estvel quanto verses UNIX comerciais. O tempo para o desenvolvimento de novos recursos, porm, costuma ser significativamente menor. O mais importante fator, porm, preo. Sendo um software livre, o Linux pode ser copiado de graa da Internet ou adquirido por um pequeno valor na forma de uma distribuio em CD-ROM. Se voc pretende instalar o Linux em um grupo de mquinas, o custo apenas o de comprar uma nica cpia. Implementaes comerciais do UNIX, por outro lado, oferecem mais do que apenas o software. Em geral o preo pago pelas mesmas inclui documentao, suporte e garantias quanto a qualidade. Para grandes instituies, estas podem ser questes importantes, mas usurios domsticos e mesmo determinadas empresas podem preferir no seguir por esta alternativa e fazer uso do Linux gastando um valor muito menor. (......)

1.8

Exigncias de Hardware

possvel que voc esteja convencido das potencialidades do Linux e ansioso por aproveitar tudo o que ele tem a fazer. Entretanto, antes de sair instalando o sistema operacional, voc precisa estar ciente das necessidades e limitaes do mesmo em termos de hardware.

1.8.1 Placa-me e CPU


O Linux atualmente suporte sistemas com processadores 80386, 80486, Pentium e suas variaes e sucessores, bem como outros chips compatveis com Intel. Linux tambm j foi portado para PowerPC, Alpha, MIPS e Sparc.

24

1.8.2 Exigncias de Memria


O Linux exige muito pouca memria, em comparao com outros sistemas operacionais avanados. Voc precisa ter pelo menos 4MB de RAM, mas 16MB recomendvel. Quanto mais memria, mais rpido o sistema ir rodar. Algumas distribuies podem exigir mais memria RAM. O Linux suporta o endereamento de 32 bits do processador, utilizando toda a memria RAM automaticamente. O Linux ir funcionar em uma mquina com 4MB de RAM, podendo inclusive executar o sistema X-Windows e o editor Emacs. Entretanto, ter mais memria to importante quanto ter um processador mais rpido. 16MB suficiente para muitas aplicaes, mas sistemas que vo operar como servidores podem precisar de consideravelmente mais memria, de acordo com o tipo de servio que eles vo executar. A maioria dos usurios Linux aloca uma poro do disco como espao de swap, que utilizado como uma memria RAM virtual. Mesmo que seu computador tenha 16MB ou mais, pode ser interessante utilizar espao de swap.

1.8.3 Controladores de Disco Rgido


teoricamente possvel executar o Linux de um disquete ou, em algumas distribuies, diretamente de um CD-ROM, mas para se ter um bom desempenho necessria uma rea no disco rgido. O Linux pode co-existir com outros sistemas operacionais - ele apenas precisa de uma ou mais parties. O Linux suporta controladores IDE e EIDE. Em geral, se o MS-DOS ou outro sistema operacional consegue acessar o disco rgido, o Linux tambm consegue.

1.8.4 Espao em Disco


Obviamente, para instalar o Linux voc precisa de algum espao disponvel no disco. O Linux suporta mais de um disco rgido, de tal forma que voc pode instalar partes do sistema em cada disco. O espao em disco necessrio para o Linux depende de suas necessidades e do software que voc ir instalar. Para uma implementao do UNIX, o Linux relativamente pequeno. possvel executar o sistema com apenas 20MB de espao em disco. Naturalmente, para expanses e grandes pacotes de software, como as interfaces grficas, mais espao necessrio. Exigncias realistas de espao em disco variam de 200MB at 1GB ou mais. Cada distribuio do Linux vem com uma documentao que ir ajud-lo a definir as necessidades exatas de espao em disco.

1.8.5 Outros Dispositivos


De uma forma geral, todos os dispositivos comumente encontrados em computadores e mesmo alguns relativamente incomuns so suportados pelo

25

Linux. Sempre que surge algum dispositivo novo no mercado que no tem suporte em Linux, algum da comunidade de desenvolvedores imediatamente comea a trabalhar em um driver para o mesmo. (......)

1.9

Fontes de informao sobre o Linux

Existem muitas fontes de informao sobre o Linux. Em particular, livros sobre o UNIX em geral sero muito teis, especialmente para quem no estiver familiarizado com o UNIX. Tambm h muita informao online sobre o Linux. Um bom lugar para comear o site http://www.linuxresources.com/ .

1.9.1 Documentao Online


Muita documentao do Linux est disponvel por FTP annimo de sites na Internet ao redor do mundo e em redes como a Fidonet e CompuServe. Distribuies do Linux em CD-ROM tambm contm documentos mencionados aqui. Se voc pode mandar e-mail para a Internet, tambm pode pegar esses arquivos usando um dos servidors de e-mail FTP, que mandam os documentos ou arquivos dos sites de FTP por e-mail. (......)

1.9.2 Linux na Web


A pgina do Projeto de Documentao Linux (Linux Documentation Project) est em http://www.linuxdoc.org/ . Esta pgina lista muitos "HOWTOs" e outros documentos em formato HTML, assim como links para outros sites de interesse de usurios Linux, como o ssc.com, onde est o Linux Journal, uma revista mensal. Sua home page est em http://www.ssc.com/ .

1.9.3 Livros e outros trabalhos publicados


Os livros do Projeto de Documentao Linux so o resultado de um esforo ao redor da rede para escrever e distribuir um bom conjunto de manuais para Linux, anlogos documentao que vem com as distribuies UNIX comerciais, cobrindo instalao, operao, programao, rede, e desenvolvimento do kernel. Os manuais do Projeto de Documentao Linux esto disponveis por FTP annimo e pedidos por correio. Grandes editoras, incluindo MIS:Press, Digital Press, O'Reilly & Associates, e SAMS publicaram livros sobre o assunto. Verifique numa livraria ou na pgina do SSC (http://www.ssc.com/ ), ou ainda nas anlises no Linux Journal, disponveis no site http://www.linuxjournal.com . Um grande nmero de livros sobre UNIX em geral aplicvel ao Linux. No uso e na interface de programao o Linux no difere muito de outras 26

implementaes do UNIX. Quase tudo que voc gostaria de saber sobre usar e programar o Linux pode ser encontrado em textos genricos sobre UNIX. De fato, este livro objetiva suplementar a biblioteca de livros UNIX atualmente disponvel. Aqui, apresentamos os detalhes mais importantes e especficos do Linux e esperamos que voc procure outras fontes de informao para aprofundar-se. Equipado com este e outros bons livros sobre UNIX, voc deve estar apto a lidar com quase tudo. A revista Linux Journal distribuda no mundo todo e uma excelente maneira de manter-se em contato com as novidades da comunidade Linux, especialmente se voc no tem acesso aos grupos de discusso da Usenet.

1.9.4 Grupos de discusso da Usenet


Usenet um frum de discusso eletrnico com uma seleo diversa de newsgroups(grupos de discusso), que por sua vez so reas de discusso voltadas para um tema especfico. Muitos debates sobre desenvolvimento do Linux ocorrem na Internet e Usenet. H, portanto, um grande nmero de grupos de discusso dedicados ao Linux. O primeiro grupo de discusso do Linux, alt.os.linux, foi criado para centralizar os debates sobre Linux que ocorriam em comp.os.minix e vrias outras listas de e-mail. Rapidamente, o trfego no alt.os.linux cresceu ao ponto de ser solicitada a criao de um novo grupo de discusso na hierarquia comp. Uma votao em Fevereiro de 1992 aprovou a criao do comp.os.linux. comp.os.linux tornou-se rapidamente um dos mais populares (e barulhentos) grupos do Usenet. Mais popular que qualquer outro grupo no hierrquia comp.os. Se voc no tem acesso Usenet, h alguns gateways de mail-to-news disponveis para muitos dos grupos de discusso. (......)

1.9.5 Listas de e-mail por Internet


Se voc tem acesso a e-mail, voc participar de muitas listas, mesmo no tendo acesso ao Usenet. Se voc no est conectado diretamente na Internet, pode se inscrever uma destas listas se puder trocar e-mail com a Internet (com UUCP, por exemplo). Para mais informaes sobre listas de e-mail sobre Linux, mande um email para: majordomo@vger.rutgers.edu Inclua uma linha com a palavra help no corpo da mensagem e uma mensagem ser retornada para voc descrevendo com se cadastrar e descadastrar de vrias listas de e-mail. A palavra lists em uma linha retorna o nome de vrias listas que so acessveis pelo servidor majordomo.vger.rutgers.edu

27

H muitas listas de Linux com propsitos especficos. A melhor maneira de encontrar informao sobre isso observar os newsgroups de Linux na Usenet, assim como verificar o rol de listas pblicas de e-mail disponveis, que publicado no grupo news.answers da Usenet.

1.10 Buscando ajuda sobre Linux


Sem dvida alguma voc vai precisar de ajuda durante suas "aventuras" no mundo Linux. At mesmo experts em UNIX ficam ocasionalmente confusos com alguma particularidade do Linux. importante saber como, onde e quando buscar ajuda. O meio bsico de obter ajuda atravs de listas de e-mail e grupos de discusso, como discutido nas sees anteriores. Se voc no tem acesso a essas fontes, voc pode procurar outros meios online, como BBSs e CompuServe. Tambm est disponvel online o Linux Journal's Best of Technical Support, no endereo http://www.linuxjournal.com/techsup.html . Muitas empresas oferecem suporte comercial para o Linux. Muitos desses servios oferecem contratos de suporte que do acesso a consultas sobre problemas de Linux. Mantenha em mente as sugestes abaixo para melhorar sua experincia em Linux e garantir um maior sucesso na busca de ajuda. Consulte toda a documentao disponvel primeiro! Esta a primeira coisa a fazer quando voc encontrar um problema. As documentaes disponveis foram arduamente escritas para pessoas que precisem de ajuda no sistema operacional Linux (exemplo: HOWTOs). Como mencionado anteriormente, livros escritos para UNIX so aplicveis ao Linux e devem ser usados tambm. Se voc tem acesso ao Usenet, ou qualquer lista de e-mail sobre Linux, leia primeiramente a infornao que j foi publicada. Freqentemente, solues para problemas comuns que no esto cobertas na documentao so amplamente discutidas nas listas. Se voc publicar uma pergunta sem ler antes se este assunto j foi tratado, prepare-se para as respostas :). Aprenda a apreciar a autoconfiana. Voc pediu por isso ao executar o Linux! Lembre-se, hacking tem tudo a ver com Linux. Ele no um sistema comercial, nem pretende tornar-se um. Ser esclarecedor investigar e resolver problemas por conta prpria - voc at poder ser um guru Linux algum dia! Aprenda a apreciar o valor de vasculhar o sistema e consertar problemas por conta prpria. No espere, no entanto, criar um sistema Linux totalmente personalizado sem muita mo de obra. Mantenha-se calmo. Voc no vai ganhar nada usando uma marreta no seu computador Linux. Compre um bom saco de pancadas ou saia para uma longa caminhada. Essa uma boa maneira de aliviar situaes de estresse. Com a maturidade do Linux e das distribuies, esperamos que estes problemas diminuam. Entretanto, mesmo UNIX comerciais podem ser problemticos. Quando tudo falhar, sente-se, inspire fundo e retorne ao problema quando estiver relaxado. Sua mente e conscincia estaro mais

28

claras. Evite publicar perguntas desnecessrias. Muitas pessoas cometem o erro de mandar mensagens pedindo ajuda prematuramente. Quando encontrar algum problema, no corra para mandar uma mensagem na lista. Primeiro, tente resolver por sua conta, e esteja absolutamente certo do problema que tem em mos. O seu sistema no liga? Talvez esteja desligado da tomada... Quando pedir ajuda, faa valer a pena. Lembre-se que as pessoas que vo ler sua mensagem no esto l necessariamente para ajudar voc. Lembre-se de ser educado, resumido e informativo tanto quanto possvel. Como fazer tudo isso? Primeiramente, voc deve incluir toda a informao relevante possvel sobre seu sistema e problema. Mandando uma mensagem simples, como: "No consigo fazer o e-mail funcionar" provavelmente no ser de grande ajuda e vai lev-lo a lugar nenhum a no ser que voc inclua informao sobre seu sistema, que software usa, o que voc j tentou fazer e quais os resultados que obteve. Quando incluir informaes tcnicas, uma boa idia incluir tambm informao sobre as verses de software utilizadas (verso do kernel, por exemplo), assim como um breve sumrio da configurao de hardware. Tambm no exagere - o tipo de monitor e marca provavelmente irrelevante se voc est tentando configurar sua placa de rede.

29

TUTORIAL SOBRE LINUX

2.1

Introduo

Se voc for novo no UNIX e Linux, pode estar um pouco intimidado pelo tamanho e aparente complexidade do sistema na sua frente. Este captulo no entra em grandes detalhes nem trata de tpicos avanados. Ao invs disso, queremos que voc comece colocando a mo na massa. Assumimos muito pouco sobre o que voc j sabe, exceto talvez que voc tenha alguma familiarizao com computadores, e com MS-DOS. Entretanto, mesmo que voc nunca tenha usado o MS-DOS, deve ser capaz de entender tudo exposto aqui. primeira vista, o Linux se parece bastante com o MS-DOS -- mesmo porque, partes do MS-DOS foram modeladas no sistema operacional CP/M, que por sua vez foi modelado no UNIX. No entanto, s as caractersticas mais superficiais do Linux lembram o MS-DOS. Mesmo que voc seja completamente novo ao mundo do PC, este tutorial deve ajud-lo. E, antes de comearmos: no tenha medo de experimentar. O sistema no morde.Voc no pode destruir alguma coisa ao trabalhar no sistema. O Linux tem segurana embutida que previne usurios "normais" de danificarem arquivos essenciais ao sistema. Mesmo assim, a pior coisa que pode acontecer que voc apague alguns ou todos os seus arquivos e tenham que reinstalar o sistema. Assim, por agora voc no tem nada a peder.

2.2

Conceitos Bsicos do Linux

O Linux um sistema operacional multi-tarefa e multi-usurio, o que significa que muitas pessoas podem rodar aplicaes diferentes em um computador ao mesmo tempo. Isso difere do MS-DOS, por exemplo, onde somente uma pessoa pode usar o sistema de cada vez. No Linux, para se identificar, voc deve "logar" no sistema, o que exige que voc fornea sua identificao (login - o nome que o sistema usa para identific-lo), e sua senha, que sua chave pessoal para entrar na sua conta. Como somente voc sabe sua senha, ningum pode "logar" no sistema usando seu nome de usurio. Em sistemas UNIX tradicionais, o administrador do sistema determina um nome de usurio e uma senha inicial quando voc recebe uma conta do sistema. Entretanto, como neste Linux voc o administrador do sistema, voc deve configurar sua conta pessoal antes de poder logar. Para os prximos debates usaremos o nome de usurio imaginrio "larry". Alm disso, cada sistema tem um nome de mquina (host name) determinado. o hostname que d nome a sua mquina; d a ela carter e charme. O hostname usado para identificar mquinas individuais na rede, mas mesmo que sua mquina no esteja em rede, ela deve ter um hostname. Para o nosso exemplo, o nome da mquina ser "mousehouse".

30

2.2.1 Criando uma conta


Antes que possa usar um sistema Linux recm instalado, voc deve criar uma conta prpria. No uma boa idia usar a conta root para uso normal; voc deve reserv-la para rodar comandos privilegiados e para manuteno do sistema, como discutido abaixo. Para criar sua conta, entre como root e use o comando useradd ou adduser.

2.2.2 Logando
No momento do login, voc vai ver um prompt parecido com: mousehouse login: Entre seu nome de usurio e pressione <Enter>. Nosso heri, larry, iria digitar: mousehouse login: larry Password: A seguir, entre sua senha. Os caracteres que voc entrar no sero mostrados na tela, por isso digite-os com cuidado. Se voc errar sua senha, vai ver a mensagem "Login incorrect" e deve tentar novamente. Uma vez que tenha entrado com sucesso o nome de usurio e senha, voc entrou oficialmente no sistema e est livre para perambular.

2.2.3 Consoles Virtuais.


O console do sistema o monitor e teclado que esto diretamente ligados no sistema. Como o Linux um sistema operacional multi-usurio, voc pode ter outros terminais conectados a portas seriais no seu sistema, mas esses no seriam o console. O Linux, como outras verses do UNIX, fornece acesso a consoles virtuais (ou VCs), que permitem que voc tenha mais de uma sesso de login no console ao mesmo tempo. Para demonstrar isso, entre no sistema. Aps, pressione Alt-F2. Voc deve ver o prompt "login:" novamente. Voc est na frente do segundo console virtual.Para mudar novamente para o primeiro VC, pressione Alt-F1. Voila! Voc est novamente na primeira sesso de login. Um sistema Linux novo provavelmente permite que voc acesse somente a primeira meia dzia de VCs, pressionando Alt-F1 at Alt-F6, ou conforme o nmero de VCs configurados no sistema. possvel habilitar at 12 VCs - um para cada tecla de funo no seu teclado. Como voc pode ver, o uso de VCs pode ser bem poderoso, pois voc pode trabalhar em vrias sesses diferentes ao mesmo tempo. Mesmo que o uso de VCs seja um tanto quanto limitado (afinal, voc pode ver somente um VC de cada vez), deve dar uma noo das capacidades multi-usurios do Linux. Enquanto estiver trabalhando com o primeiro VC, voc pode mudar para o segundo VC e trabalhar em alguma outra coisa.

31

2.2.4 Shells e comandos


A maioria de sua explorao no mundo Linux se dar atravs de um shell, um programa que pega comandos que voc digita e os traduz em instrues para o sistema operacional. Ele pode ser comparado ao COMMAND.COM, o programa que no MS-DOS faz essencialmente a mesma coisa. Um shell s uma interface para o Linux. H muitas interfaces possveis - como o Sistema X Window, que permite que voc rode comandos usando o mouse e teclado. Assim que voc entra no login, o sistema inicia um shell e voc pode comear a digitar comandos. Aqui vemos um exemplo rpido. O Larry "loga" e fica esperando no prompt do shell: mousehouse login: larry Password: (no mostrada) Welcome to Mousehouse! /home/larry# A ltima linha desse texto o prompt do shell, indicando que est pronto para receber comandos. (Adiante veremos mais sobre o que ele significa). Vamos tentar dizer ao sistema para fazer algo interessante: /home/larry# make love make: *** No way to make target 'love'. Stop. /home/larry# Bem, como vemos, make o nome de um programa real no sistema, e o shell executou o programa quando demos o comando. (Infelizmente, o sistema no foi muito amigvel.) Isto nos leva a uma pergunta picante: O que um comando? O que acontece quando voc digita "make love"? A primeira palavra na linha de comando, "make", o nome de um comando a ser executado. Todo o reste na linha de comando tomado como parmetro para o comando. Exemplo: /home/larry# cp foo bar O nome deste comando "cp", e os parmetros so "foo" e "bar". Quando voc entra um comando, o shell faz vrias coisas. Primeiro, ele verifica o comando para ver se ele interno ao shell. Isto , um comando que o prprio shell saiba como executar. H vrios comandos assim, e vamos passar por eles mais tarde. O shell tambm verifica se o comando no um alias (um nome substituto) para outro comando. Se nenhuma dessas condies se aplicar, o shell procura um program no disco que tenha o nome especificado. Se for bem sucedido, o shell roda esse programa, enviando os parmetros especificados na linha de comando. No nosso exemplo, o shell procura por um programa chamado "make", e roda ele com o parmetro "love". "Make" um programa freqentemente usado para compilar programas grandes, e recebe como parmetros o nome do "alvo" a ser compilado. No caso do "make love", ns instrumos o "make" a compilar o arquivo "love". Como o "make" no pde encontrar um destino com

32

esse nome, ele falhou com uma mensagem de erro engraada e nos retornou para o prompt do shell. O que acontece se digitarmos um comando para o shell e o shell no conseguir encontrar um programa com o nome especificado? Bem, podemos tentar o seguinte: /home/larry# coma lixo coma: command not found /home/larry# Bem simples, se o shell no pode encontrar o comando com o nome dado (no exemplo, "coma"), ele imprime uma mensagem de erro. Voc vai ver esta mensagem de erro com freqncia se digitar um comando errado (ex: se voc digitou "mkae love" ao invs de "make love").

2.2.5 Logout
Antes de nos aprofundarmos ainda mais, temos que lhe contar como dar logout (sair) do sistema. No prompt do shell, use o comando "exit" para dar logout. H outras formas ainda, mas esta a que envolve menos riscos.

2.2.6 Mudando sua senha


Voc deve saber como mudar sua senha no sistema. O comando "passwd" pede pela sua velha senha e por uma nova. Ele tambm pede que voc redigite a nova para validao. Cuidado para no esquecer sua senha se voc esquec-la, s o administrador do sistema pode recuperar seu acesso.

2.2.7 Arquivos e diretrios


Na maioria dos sistemas operacionais (incluindo o Linux), h o conceito de arquivo, que um monte de informaes com um nome (chamado filename - nome de arquivo). Exemplos de arquivos so seu trabalho de concluso de curso, uma mensagem de e-mail, ou um programa que pode ser executado. Essencialmente, qualquer coisa gravada no disco gravada em um arquivo individual. Arquivos so identificados por seus nomes. Por exemplo, um arquivo contendo seu trabalho de concluso pode ser gravado como nome trabalho-deconclusao. Esses nomes usualmente identificam o arquivo e seu contedo de alguma forma que faa sentido para voc. No h um formato padro para nomes de arquivo como existe no MS-DOS ou Windows e outros sistemas operacionais. Em geral, um nome de arquivo pode conter um caracter (exceto o caracter /) e limitado a 256 caracteres de comprimento. Com o conceito de arquivos, vem o conceito de diretrios. Um diretrio uma coleo de arquivos. Voc pode pensar nele como uma "pasta" que contm muitos arquivos diferentes. Diretrios tambm recebem nomes, com os quais voc os identifica. Alm disto, diretrios so mantidos em uma estrutura tipo rvore. Isso significa que diretrios podem conter outros diretrios.

33

Conseqentemente, voc pode se referenciar a um arquivo pelo seu caminho (path), que composto do nome de arquivo, precedido pelo nome do diretrio que contm o arquivo. Vamos assumir que o Larry, por exemplo, tenha um diretrio chamado "papers", que contm trs arquivos: history-final, english-lit, e tese-mestrado. Cada um desses trs arquivos contm informao sobre um dos projetos do Larry. Para se referir ao arquivo english-lit, o Larry pode especificar o path como "papers/english-lit". Como voc pode ver, o diretrio e nome so separados por uma barra simples ( / ). Por este motivo, os nomes de arquivo no podem conter o caracter /. Os usurios do MS-DOS iro achar esta conveno familiar, embora no MS-DOS seja usada a contra-barra ( \ ). Como mencionado, diretrios podem ser aninhados dentro de outros. Vamos assumir, por exemplo, que exista outro diretrio dentro de "papers", chamado "notas". O diretrio "notas" contm os arquivos notas-matematica e notas-rascunho. O path do arquivo notas-rascunho ser: papers/notas/notas-rascunho Assim, o path como um caminho para o arquivo. O diretrio que contm um dado subdiretrio conhecido como diretrio superior (parent directory). Aqui, o diretrio papers superior ao diretrio notas.

2.2.8 A rvore de diretrios


A maioria dos sistemas Linux usa um formato padro para guardar os arquivos, de forma a que recursos e programas possam ser facilmente localizados. Esse formato forma a rvore de diretrios, que comea com o diretrio "/", tambm chamado de diretrio raiz. Diretamente abaixo do "/" esto importantes subdiretrios: /bin, /etc, /dev e /usr, dentre outros. Esses diretrios, por sua vez, contm outros diretrios que contm arquivos de configurao do sistema, programas, e assim por diante. Cada usurio tem um diretrio home (home directory), que o diretrio reservado para que aquele usurio armazend seus arquivos. Nos exemplos acima, todos os arquivos do Larry (como notas-rascunho e tesemestrado) esto contidos no diretrio home do Larry. Usualmente, diretrios home esto abaixo do diretrio /home, e seus nomes refletem os usurios aos quais os diretrios pertencem. O diretrio home do Larry, por exemplo, /home/larry. O diagrama abaixo mostra um exemplo de rvore de diretrios que pode lhe dar uma idia de como a rvore de diretrios do seu sistema est organizada.

34

Figura 3.1: Uma rvore de diret rios tpica (abreviada) do Linux.

2.2.9 O diretrio de trabalho corrente


A qualquer momento, assume-se que comandos que voc digita so relativos ao seu diretrio de trabalho corrente. Voc pode pensar no seu diretrio de trabalho como o diretrio onde voc est atualmente localizado. Quando voc entra no sistema, seu diretrio de trabalho configurado como seu diretrio home - /home/larry, no seu caso. Sempre que se referir a um arquivo, voc pode faz-lo em relao ao seu diretrio de trabalho corrente, ao invs de ter que ficar especificando o caminho do arquivo (path). Aqui vemos um exemplo. Larry tem o diretrio papers, e papers contm o arquivo history-final. Se o Larry quer ver este arquivo, ele pode usar o comando /home/larry# more /home/larry/papers/history-final O comando "more" simplesmente mostra o arquivo na tela, uma pgina por vez. Entretanto, como o diretrio de trabalho corrente do Larry /home/larry, ele pode se referenciar ao arquivo de forma relativa a sua localizao atual usando o comando /home/larry# more papers/history-final

35

Se voc comea um nome de arquivo com o caracter diferente de / (como em papers/final), voc est se referenciado a este arquivo de forma relativa ao seu diretrio de trabalho corrente. Chamamos isso de caminho relativo (relative path name). Por outro lado, se voc comea um nome de arquivo com uma "/", o sistema interpreta isso como o caminho completo - isto , um caminho que inclui o caminho completo para o arquivo, comeando com o diretrio raiz, /. Isso chamado de caminho absoluto (absolute path name)

2.2.10

Referindo-se a diretrios home

Tanto com o tcsh quanto com o bash, voc pode especificar o diretrio home com um caracter til (~). Por exemplo, o comando: /home/larry# more ~/papers/history-final equivalente a /home/larry# more /home/larry/papers/history-final O shell substitui o caracter ~ pelo nome do seu diretrio home. Voc tambm pode especificar diretrios home de outros usurios com o caracter ~. O caminho "~karl/letters" traduzido para "/home/karl/letters" pelo shell (se /home/karl for o diretrio home do karl). Usar o til como usar um atalho. No h um diretrio chamado "~" - s uma mozinha oferecida pelo shell.

2.3

Primeiros passos no Linux

Antes de comearmos, importante ter em mente que todos os nomes de arquivos e comandos no Linux fazem diferenciao de letras maisculas e minsculas (diferentemente do Windows ou MS-DOS). O comando "make", por exemplo, diferente de "Make" ou "MAKE". O mesmo vale para nomes de arquivos e diretrios.

2.3.1 Passeando por a


Agora que voc pode logar e sabe se referir a arquivos usando caminhos, como pode mudar o diretrio de trabalho corrente para tornar a vida mais fcil? O comando para mover-se por a na estrutura de diretrios "cd", que um nome curto para "change directory", ou "mudar de diretrio". Muitos dos comandos mais usados do Linux tm duas ou trs letras. O uso do comando cd : cd diretrio

36

onde diretrio o nome do diretrio que voc deseja que se torne seu diretrio de trabalho corrente. Se o Larry quisesse mudar para o subdiretrio papers, ele usaria o comando: /home/larry# cd papers /home/larry/papers# Como voc pode ver, o prompt do Larry mudou para refletir seu diretrio de trabalho corrente (assim ele sabe onde est). Agora que ele est no diretrio papers, ele pode ver o arquivo history-final com o comando: /home/larry/papers# more history-final Agora o Larry est trancado no subdiretrio papers. Para mover-se para cima para o diretrio imediatamente superior (ou parent), use o comando: /home/larry/papers# cd .. /home/larry# (Note o espao entre o "cd" e o ".."). Cada diretrio tem uma entrada chamada ".." que se refere ao diretrio superior. Similarmente, cada diretrio tem uma entrada chamada ".", que se refere a ele mesmo. Assim, o comando: /home/larry/papers# cd . nos leva a lugar nenhum. Voc tambm pode usar caminhos absolutos no comando cd. Para ir para o diretrio home do Karl, podemos usar o comando: /home/larry/papers# cd /home/karl /home/karl# Usando somente cd, sem parmetro algum, ir retorn-lo ao seu diretrio home: /home/karl# cd /home/larry#

2.3.2 Visualizando o contedo de diretrios


Agora que voc sabe como se mover pelos diretrios, voc pode pensar: "E a?" Mover-se pelos diretrios por si s intil. Vamos introduzir, ento, um novo comando: o "ls". O comando "ls" mostra uma lista de arquivos e diretrios - por default do seu diretrio corrente. Por exemplo: /home/larry# ls Mail letters papers

37

/home/larry# Aqui podemos ver que o Larry tem trs entradas no seu diretrio corrente: Mail, letters e papers. Isso no nos diz muito - eles so arquivos ou diretrios? Podemos usar a opo -F do comando ls para ver informao mais detalhada. /home/larry# ls -F Mail/ letters/ papers/ /home/larry# Atravs da barra ( / ) adicionada a cada nome de arquivo, sabemos que estas trs entradas so de fato subdiretrios. O "ls -F" pode tambm acrescentar um asterisco ( * ) no fim dos arquivos, o que indicaria que o arquivo executvel, ou um programa que pode ser rodado. Se nada for acrescentado ao nome do arquivo usando "ls F", o arquivo um "arquivo simples" (plain), isto , nem um diretrio nem um executvel. Em geral, cada comando UNIX pode receber um nmero de opes, alm dos outros parmetros. Essas opes usualmente comeam com um "-", como demonstrado acima com a opo "-F". A opo "-F" diz ao ls para dar mais informaes sobre o tipo dos arquivos envolvidos - neste cado, imprimindo uma "/" depois do nome de cada diretrio. Se voc fornecer ao ls um nome de diretrio, o sistema ir mostrar o contedo desse diretrio. /home/larry# ls -F papers english-lit history-final tese-mestrado notas/ /home/larry# Ou, para uma listagem mais interessante, vamos ver o que h no diretrio /etc do sistema:
/home/larry# Images adm bcheckrc brc brc~ csh.cshrc .... ls /etc ftpusers getty gettydefs group inet init lpc magic motd mount mtab mtools rc.new rc0.d rc1.d rc2.d rc3.d rc4.d shells startcons swapoff swapon syslog.conf syslog.pid

38

Se voc for um usurio MS-DOS, voc pode notar que os nomes de arquivos podem ser maiores que 8 caracteres, e que podem conter pontos em qualquer posio. Voc pode at usar mais de um ponto num nome de arquivo. Vamos nos mover para o topo da rvore de diretrios, e depois para baixo, para outro diretrio, com os comandos:
/home/larry# cd .. /home# cd .. /# cd usr /usr# cd bin /usr/bin#

Voc tambm pode se mover para dentro de vrios diretrios em um nico passo, como em "cd /usr/bin". Tente movimentar-se por vrios diretrios, usando o ls e o cd. Talvez voc encontre algumas mensagens do tipo "Permission denied". Trata-se apenas da segurana do UNIX mostrando suas garras: para usar o ls ou cd, voc deve ter permisso para isso.

2.3.3 Criando novos diretrios


hora de aprender a criar diretrios. Isso envolve o uso do comando mkdri. Tente o seguinte: /home/larry# mkdir foo /home/larry# ls -F Mail/ foo/ letters/ papers/ /home/larry# cd foo /home/larry/foo# ls /home/larry/foo# Parabns! Voc criou um novo diretrio e entrou nele. Como no h arquivos nesse novo diretrio, vamos aprender como copiar arquivos de um lugar para o outro.

2.3.4 Copiando arquivos


Para copiar arquvis, use o comando cp, como mostrado: /home/larry/foo# cp /etc/termcap . /home/larry/foo# cp /etc/shells . /home/larry/foo# ls -F shells termcap /home/larry/foo# cp shells bells /home/larry/foo# ls -F

39

bells shells termcap /home/larry/foo# O comando cp copia os arquivos listados na linha de comando para o arquivo ou diretrio dado como ltimo argumento. Note que usamos um ponto (".") para nos referirmos ao diretrio corrente.

2.3.5 Movendo arquivos


O comando mv move arquivos, ao invs de copi-los. A sintaxe bem direta: /home/larry/foo# mv termcap sells /home/larry/foo# ls -F bells sells shells /home/larry/foo# Note que o arquivo termcap foi renomeado para sells. Voc tambm pode usar o comando mv para mover um arquivo para um diretrio completamente novo. Nota: o mv e o cp vo sobreescrever o arquivo destino que tiver o mesmo nome sem pedir por confirmao. Tome cuidado quando mover um arquivo em outro diretrio. Pode j existir um nome igual no mesmo diretrio, que voc ir sobreescrever!

2.3.6 Excluindo arquivos e diretrios


Para excluir um arquivo, use o comando "rm" (que vem de "remover"), como mostrado aqui: /home/larry/foo# rm bells sells /home/larry/foo# ls -F shells /home/larry/foo# Ficamos sem nada, a no ser "shells", mas no nos queixamos. Note que o rm, por default, no vai pedir confirmao antes de apagar um arquivo tome cuidado! Note tambm que voc pode apagar vrios arquivos, passando uma lista como parmetro ao "rm". Um comando relacionado ao rm o rmdir. Esse comando exclui um diretrio, mas somente se o diretrio estiver vazio. Se o diretrio contm qualquer arquivo, ou subdiretrio, o rmdir vai reclamar.

2.3.7 Visualizando arquivos


Os comandos "more" e "cat" so usados para visualizar o contedo de arquivos. O "more" mostra um arquivo, uma tela por vez, enquanto o "cat" mostra todo o arquivo de uma vez.

40

Para ver o arquivo shells, use o comando: /home/larry/foo# more /etc/shells Esse arquivo tem uma lista dos programas shell disponveis no seu sistema (geralmente est no /etc). Na maioria dos sistemas, ele inclui o /bin/sh, o /bin/bash e o /bin/csh. Vamos falar sobre os diferentes tipos de shell mais tarde. Enquanto estiver usando o "more", pressione a tecla de espaos para mostrar a prxima pgina, e "b" para mostrar a anterior. H outros comandos disponveis no "more". Estes so somente os bsicos. Pressione "q" para sair. Saia do "more" e tente dar um cat em /etc/services. O texto provavelmente ir passar to rapidamente que voc no poder l-lo. O nome "cat" vem de "concatenar", que para o que serve esse programa. O comando "cat" pode ser usado para concatenar o contedo de vrios arquivos e salvar o resultado em outro arquivo.

2.3.8 Buscando ajuda online


Quase todo o sistema UNIX, incluindo o Linux, fornece uma facilidade chamada de pginas do manual (manual pages). O manual contm documentao online para os comandos de sistema, recursos, arquivos de configurao e assim por diante. O comando usado para acessar pginas do manual o man. Se voc est interessado em aprender sobre outras opes do comando "ls", por exemplo, pode digitar: /home/larry# man ls e a pgina do manual para o ls vai ser mostrada. Infelizmente, muitas pginas de manual so escritas para aqueles que j tem alguma idia do que o comando ou recurso faz. Por este motivo, as pginas usualmente contm somente detalhes tcnicos do comando, sem muita explicao. Entretanto, este pode ser um recurso inestimvel para refrescar sua memria se voc esqueceu a sintaxe do comando. As pginas do manual tambm vo contar-lhe sobre comandos que ns no iremos cobrir neste livro. Eu sugiro que voc tente o man para comandos que ns j experimentamos antes e sempre que eu introduzir um novo comando. Alguns no tero um manual, por vrias razes. Primeiro, a pgina pode ainda no ter sido escrita. (O Linux Documentation Project responsvel pelas pginas de manual no Linux). Segundo, o comando pode ser um comando interno do shell ou um alias, que no teria uma pgina de manual prpria. Um exemplo o cd, que um comando interno do shell. O shell mesmo processa o cd - no h um programa separado que implementa esse comando.

41

2.4

Comandos bsicos do UNIX

Esta seo introduz alguns dos comandos bsicos mais teis num sistema UNIX, incluindo aqueles que foram discutidos nas sees anteriores. Note que opes usualmente comeam com "-", e na maioria dos casos voc pode especificar mais de uma opo em um nico "-". Por exemplo, ao invs de usar o comando "ls -l -F", voc pode usar "ls -lF". Ao invs de listar todas as opes para cada comando, vamos apresentar somente os comandos teis ou importantes por agora. De fato, a maioria dos comandos tem muitas opes que voc nunca vai usar. Voc pode usar o man para ver as pginas de manual para cada comando, que listam todas as opes disponveis. Note tambm que muitos desses comandos tm como parmetros uma lista de arquivos ou diretrios, marcados nesta tabela como "arquivo1 ... arquivoN". Por exemplo, o comando cp recebe como parmetro uma lista de arquivos para copiar, seguida de um arquivo ou diretrio destino. Quando estiver copiando mais de um arquivo, o destino deve ser um diretrio.

42

3 COMANDOS PARA MANIPULAO DE DIRETRIOS


Abaixo comandos teis para a manipulao de diretrios. Um diretrio usado para armazenar arquivos de um determinado tipo. O diretrio pode ser entendido como uma pasta onde voc guarda seus papeis (arquivos). Como uma pessoa organizada, voc utilizar uma pasta para guardar cada tipo de documento, da mesma forma voc pode criar um diretrio vendas para guardar seus arquivos relacionados com vendas naquele local.

3.1 O comando ls
Mostra informao sobre os nomes de arquivos e diretrios. Sintaxe:
ls [ opes ] [caminho/arquivo ] [caminho1/arquivo1] ...

onde: caminho/arquivo: Diretrio/arquivo que ser listado. caminho1/arquivo1: Outro Diretrio/arquivo que ser listado. Podem ser feitas vrias listagens de uma s vez. opes: Modificam o comportamento do comando o -a Lista todos os arquivos (inclusive os ocultos) de um diretrio. o -l Usa o formato longo para listagem de arquivos. Lista as permisses, data de modificao, donos, grupos, etc. o -F Insere um caracter aps arquivos executveis ('*'), diretrios ('/'), soquete ('='), link simblico ('@') e pipe ('|'). Seu uso til para identificar de forma fcil tipos de arquivos nas listagens de diretrios. o --color=PARAM Mostra os arquivos em cores diferentes, conforme o tipo de arquivo. PARAM pode ser: never nunca lista em cores (mesma coisa de no usar o parmetro --color). always sempre lista em cores conforme o tipo de arquivo. auto somente colore a listagem se estiver em um terminal. A listagem pode ser classificada usando-se as seguintes opes: -f No ordena, e usa -au para listar os arquivos. -r -c -X -U Inverte a seqncia de ordenao. Ordena pela data de alterao. Ordena pela extenso. No ordena, lista os arquivos na ordem do diretrio.

43

Exemplos: ls ls /bin /sbin ls -la /bin /bin

lista os arquivos do diretrio atual. lista os arquivos do diretrio /bin e /sbin listagem detalhada e completa dos arquivos do diretrio

3.2 O comando cd
Muda o diretrio de trabalho atual. necessrio ter a permisso de execuo para entrar no diretrio. Sintaxe:
cd [diretorio]

onde: diretorio - diretrio para onde se deseja mudar. "." se refere ao diretrio corrente, ".." ao diretrio superior na hierarquia, e ~ o diretrio padro do usurio. Se nenhum diretrio for especificado, ~ assumido. Exemplos: cd retorna ao diretrio padro do usurio. cd cd cd cd / /etc .. muda para o diretrio raiz. muda para o diretrio /etc. retorna ao diretrio anteriormente acessado. sobe um diretrio na hierarquia.

3.3 O comando pwd


O comando pwd pode ser usado para verificar em qual diretrio o usurio se encontra, caso seu aviso de comandos no mostre isso. Exemplo: pwd

mostra o nome e caminho do diretrio atual

3.4 O comando mkdir


Cria um novo diretrio. Sintaxe:
mkdir [opes] [ caminho/diretrio ] [ caminho1/diretrio1 ]

onde: caminho Caminho onde o diretrio ser criado. diretrio Nome do diretrio que ser criado. opes: Modificam o comportamento do comando:

44

o --verbose mostra uma mensagem para cada diretrio criado. As mensagens de erro sero mostradas mesmo que esta opo no seja usada. Para criar um novo diretrio, voc deve ter permisso de gravao no diretrio pai do novo diretrio. Exemplos: mkdir /home/larry/test mkdir test1 test2 diretrio atual.

cria o diretrio test em /home/larry. cria os diretrios test1 e test2 dentro do

3.5 O comando rmdir


Remove diretrios. Este comando faz exatamente o contrrio do mkdir. O diretrio a ser removido deve estar vazio e voc deve ter permisso de gravao para remove-lo. Alm disso, o diretrio de trabalho atual no deve estar dentro do diretrio a ser excludo. Sintaxe:
rmdir [caminho/diretrio ] [caminho1/diretrio1]

onde: caminho Caminho do diretrio que ser removido. diretrio Nome do diretrio que ser removido. Para remover diretrios que contenham arquivos, use o comando rm com a opo -r (para maiores detalhes, veja rm, Seo 9.3). Exemplos: rmdir /home/larry/test rmdir test1 test2 dentro do diretrio atual.

remove o diretrio test em /home/larry. remove os diretrios test1 e test2 de

45

4 EXPLORANDO O SISTEMA DE ARQUIVOS


Um sistema de arquivos a coleo de arquivos e a hierarquia de diretrios em um sistema. Chegou a hor de gui-lo pelo sistema de arquivos. Voc j tem as habilidades e conhecimento para entender o sistema de arquivos do Linux, e tem um mapa (veja a figura 3.2.8). Primeiro, mude para o diretrio root ( "cd /" ), e entre "ls -F" para mostrar uma lista do seu contedo. Provavelmente voc vai ver os seuintes diretrios: bin, dev, etc, home, install, lib, mnt, proc, root, tmp, user, usr, e var. Vamos dar uma olhada em cada um deles. /bin /bin uma abreviatura para "binrios", ou executveis. onde residem a maioria dos programas essencias do sistema. Use o comando "ls -F /bin" para listar os arquivos. Poder ver alguns arquivos que reconhecer, como cp, ls e mv. Esses so os arquivos que contm os programas para esses comandos. Quando voc executa cp, est executando o programa /bin/cp. Usando "ls -F" ver que a maioria (se no todos) dos arquivos em /bin tm um asterisco ("*") acrescrentado ao final de seus nomes. Isso indica que so arquivos executveis, como descrito na seo 3.3.2. /dev A seguir vem o /dev. Vamos dar uma olhada dentro dele, com "ls -F /dev". Os arquivos em /dev so conhecidos como controladores de dispositivo (device drivers) e so usados para acessar os dispositivos ou recursos do sistema, como discos rgidos, modems, memria, etc. Por exemplo, da mesma forma que voc pode lear dados de um arquivo, pode tambm ler da entrada do mouse, lendo /dev/mouse. Os arquivos que comeam com fd so os controladores de disquete. fd0 o primeiro drive, e fd1 o segundo. Agora, se voc for esperto, se dar conta que h mais controladores de dispositivo para drivers do que mencionamos. Eles representam tipos especficos de discos. Por exemplo, fd1H1440 acessa discos de 3.5'' de alta densidade no drive 1. Aqui temos uma lista de alguns dos controladores de dispositivos mais usados. Note-se que mesmo que voc no tenha algum dos dispositivos listados, ter entradas em dev de qualquer forma. /dev/console faz referncia ao console do sistema, quer dizer, ao monitor conectado em seu sistema. Os dispositivos /dev/ttyS e /dev/cua so usados para acessar as portas seriais. Por exemplo, /dev/ttyS0 faz referncia a "COM1", sob o MS-DOS. Os dispositivos /dev/cua so "callout" e so usados em conjunto com um modem. Os nomes dos dispositivos que comeam por hd acessam a discos rgidos. /dev/hda se refere a todo o primeiro disco, enquanto que /dev/hda1 se refere a primeira partio em /dev/hda. Os nomes de dispositivo que comenam com sd so dispositivos SCSI. Se voc tem um disco rgido SCSI, no lugar de acess-lo 46

com /dev/hda, vai acess-lo com /dev/sda. As fitas SCSI so acessadas via dispositivos st e os CD-ROM SCSI via sr. Os nomes que comenam por lp acessam as portas paralelas. /dev/lp0 se refere a "LPT1" no mundo MS-DOS. /dev/null usado como "buraco negro", qualquer dado enviado a este dispositivo desaparece. Para que pode ser til isto?. Bem, se deseja suprimir a sada para a tela de um comando, pode enviar a sada para /dev/null. Falaremos mais sobre isto depois. Os nomes que comeam por /dev/tty se referem a "consoles virtuais" de seu sistema (acessveis mediante as teclas Alt-F1, AltF2, etc). /dev/tty1 se refere a primeira VC, /dev/tty2 a segunda, etc. Os nomes de dispositivo que comeam com /dev/pty so "pseudoterminais". So usados para proporcionar um "terminal" a sesses remotas. Por exemplo, se sua mquina est em uma rede, o telnet de entrada usar um dos dispositivos /dev/pty.

/etc /etc contm uma srie de arquivos de configurao do sistema. Isto inclui o /etc/passwd (a base de dados de usurios), o /etc/rc (instrues de inicializao do sistema), etc. /sbin /sbin usado para armazenar programas esenciis do sistema, usados pelo administrador do sistema. /home /home contm os diretrios "home" dos usurios. Por exemplo, /home/larry o diretrio do usurio "larry". Em um sistema recm instalado, esse diretrio estar vazio. /lib /lib contm as imagens das bibliotecas compartilhadas. Esses arquivos contm cdigo que muitos programas compartilham. Ao invs de cada programa ter uma cpia prpria das funes compartilhadas, elas so guardadas em um lugar comum, o /lib. Isso faz com que os programas executveis sejam menores e reduzam o espao usado em disco. /proc /proc um "sistema de arquivos virtual". Os arquivos que esto no /proc residem verdadeiramente na memria, e no no disco. Esses arquivos se referem a vrios processos que rodam no sistema e permitem obter informao sobre programas e processos que esto rodando num dado momento. Falaremos mais sobre isso na seo 3.11.1. /tmp Muitos programas tm necessidade de gerar alguma informao temporria e de guardar essa informao em um arquivo temporrio. O lugar para esses arquivos o /tmp. /usr

47

/usr um diretrio muito importante. Contm uma srie de subdiretrios que por sua vez contm alguns dos mais importantes e teis programas e arquivos de configurao usados no sistema. Os vrios diretrios descritos acima so essenciais para o sistema operar, mas a maioria dos itens no /usr so opcionais. Entretanto, so esses itens opcionais que tornam o sistema til e interessante. Sem o /usr, voc teria um sistema tedioso que suportaria somente programas como cp e ls. O /usr contm a maioria dos pacotes grandes de software e os arquivos de configurao que os acompanham. /usr/X11R6 /usr/X11R6 contm o sistema X Window se voc o instalou el sistema X Window se voc o instalou. O sistema X Window um ambiente grfico poderoso que proporciona um grande nmero de ferramentas e programas grficos, mostrados em janelas na sua tela. Se voc est familiarizado com os ambientes MS Windows ou Macintosh, o X Window lhe ser muito familiar. O diretrio /usr/X11R6 contm todos os executveis do X Window, arquivos de configurao e suporte. Entraremos em mais detalhes sobre isso na seo 5.1. /usr/bin /usr/bin contm a maioria dos programas executveis no encontrados em outras partes, como no /bin. /usr/etc Como o /etc, contm diferentes arquivos de configurao e programas do sistema, /usr/etc contm inclusive mais que o anterior. Em geral, os arquivos que se encontram em /usr/etc no so essenciais para o sistema, diferentemente dos que se encontram no /etc. /usr/include /usr/include contm os arquivos include para o compilador C. Esse arquivos (a maioria dos quais termina com .h, de "header") declaram estruturas de dados, subrotinas e constantes usadas no desenvolvimento de programas em C. Os arquivos que se encontram em /usr/include/sys geralmente so usados quando programando no nvel do sistema UNIX. Se voc est familiarizado com programao C, encontrar arquivos como stdio.h, o qual declara funes como printf(). /usr/g++-include /usr/g++-include contm arquivos de incluso para o computador C++ (muito parecido ao /usr/include). /usr/lib /usr/lib contm as bibliotecas "stub" e "static" equivalentes aos arquivos encontrados em /lib. Ao compilar um programa, ele "linkado" com as bibliotecas que se encontram em /usr/lib, as quais direcionam o programa para o /lib, quando precisa buscar o cdigo real da biblioteca. Alm disso, vrios programas armazenam arquivos de configurao no /usr/lib. /usr/local /usr/local muito parecido ao /usr. Ele contm programas e arquivos no essenciais ao sistema, mas que tornam o sistema mais divertido e excitante. Em geral, os programas que se encontram em /usr/local so especficos do seu sistema, isto , o diretrio /ussr/local difere bastante entre

48

os sistemas UNIX. Aqui encontrar grandes programas, como o TeX (sistema de formatao de documentos) e Emacs (editor grande e poderoso), se os instalar. /usr/man Esse diretrio contm as pginas de manual. H dois subdiretrios para cada seo de pgina de manual (use o comando "man man" para detalhes). Por exemplo, /usr/man/man1 contm os fontes (isto , o original no formatado) para as pginas de manual na seo 1, e /usr/man/cat1 contm as pginas de manual formatadas para a seo 1. /usr/src /usr/src contm o cdigo fonte (programas a compilar) de vrios programas do sistema. O subdiretrio mais importante o /usr/src/linux, que contm o cdigo fonte do kernel do Linux. /var /var contm diretrios que freqntemente mudam de tamanho ou tendem a crescer. Muitos desses diretrios residiam antes em /usr, mas desde que estamos tratando de deixar o /usr inalterado, os diretrios que mudam de tamanho foram levados para o /var. Alguns deles so: /var/adm /var/adm contm vrios arquivos de interesse para o administrador do sistema, especificamente histricos do sistema, que armazenam erros ou problemas com o sistema. Outros arquivos guardam logins do sistema, assim como tentativas frustradas. O captulo 4 abordar este assunto. /var/spool /var/spool contm arquivos que vo ser passados a outros programas. Por exemplo, se sua mquina est conectada a uma rede, o correio de entrada ser armazenado em /var/spool/mail at que voc o leia ou apague. Artigos novos dos News, tanto os que entram quanto os que saem, se encontram em /var/spool/news, etc.

49

5 COMANDOS PARA MANIPULAO DE ARQUIVOS


Abaixo, comandos utilizados para manipulao de arquivos.

5.1 O comando rm
Remove arquivos. Tambm pode ser usado para apagar diretrios, vazios ou no. Note que no UNIX quando um arquivo removido, ele no mais recupervel (como no MS-DOS, onde voc pode usar o "undelete", ou no Windows, com a lixeira). Sintaxe:
rm [opes] [caminho][ arquivo/diretrio ]

onde: caminho: Localizao do arquivo que deseja apagar. Se omitido, assume que o arquivo esteja no diretrio atual. arquivo/diretrio: Arquivo/diretrio que ser apagado. opes: Modificam o comportamento do comando: o -i, --interactive Confirma antes de remover, esta ativada por padro. o -f, --force Remove os arquivos sem confirmao. o -r, --recursive Usado para remover arquivos em subdiretrios. Esta opo tambm pode ser usada para remover sub-diretrios. Exemplos: rm teste.txt Remove o arquivo teste.txt do diretrio atual. rm *.txt Remove todos os arquivos do diretrio atual que terminam com .txt. rm *.txt teste.novo Remove todos os arquivos do diretrio atual que terminam com .txt e tambm o arquivo teste.novo. rm -rf /tmp/teste/* Remove todos os arquivos e sub-diretrios do diretrio /tmp/teste mas mantm o sub-diretrio /tmp/teste. rm -rf /tmp/teste Remove todos os arquivos e sub-diretrios do diretrio /tmp/teste, inclusive /tmp/teste.

5.2 O comando cp
Copia arquivos. Sintaxe:
cp [opes] [origem] [ destino]

onde: origem Arquivo que ser copiado. Podem ser especificados mais de um arquivo para ser copiado usando "Curingas" (veja Curingas, Seo 2.12). 50

destino: O caminho ou nome de arquivo onde ser copiado. Se o destino for um diretrio, os arquivos de origem sero copiados para dentro do diretrio. opes: Modificam o comportamento do comando: o -f, --force No confirma, substitui arquivos caso j existam. o -i, --interactive Confirma antes de substituir arquivos existentes. o -u, --update Copia somente se o arquivo de origem mais novo que o arquivo de destino ou quando o arquivo de destino no existe. o -r, Copia arquivos e sub-diretrios, com exceo de arquivos especiais FIFO e dispositivos. o -R, --recursive Copia arquivos e sub-diretrios, inclusive arquivos especiais FIFO e dispositivos. o -p, --preserve Preserva atributos do arquivo, se for possvel. O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos origem e destino tero o mesmo contedo aps a cpia. Exemplos: cp teste teste1 cp teste /tmp /tmp. cp * /tmp /tmp.

Copia o arquivo teste para teste1 Copia o arquivo teste para dentro do diretrio Copia todos os arquivos do diretrio atual para

cp /bin/* . Copia todos os arquivos do diretrio /bin para o diretrio atual. cp -R /bin /tmp Copia o diretrio /bin e todos os arquivos/subdiretrios existentes para o diretrio /tmp. cp -R /bin/* /tmp Copia todos os arquivos do diretrio /bin (exceto o prprio diretrio /bin) e todos os arquivos/sub-diretrios existentes dentro dele para /tmp. cp -R /bin /tmp Copia todos os arquivos e o diretrio /bin para /tmp.

5.3 O comando mv
Move ou renomeia arquivos e diretrios. O processo semelhante ao do comando cp mas o arquivo de origem apagado aps o trmino da cpia. Sintaxe:
mv [opes] [origem] [ destino]

Onde: origem: Arquivo/diretrio de origem. destino: Local onde ser movido ou novo nome do arquivo/diretrio.

51

opes: Modificam o comportamento do comando: o -f, --force Substitui o arquivo de destino sem perguntar. o -i, --interactive Pergunta antes de substituir. o padro. o -u, --update Move somente arquivos antigos, ou novos arquivos.

Exemplos: mv teste teste1 mv teste /tmp

Muda o nome do arquivo teste para teste1. Move o arquivo teste do diretrio atual para /tmp.

5.4 O comando ln
Cria um novo link para arquivos e diretrios. O link o mecanismo usado para fazer referncia a um arquivo ou diretrio. Sintaxe:
ln [opes] [origem] [ link]

Onde: origem: Diretrio ou arquivo de onde ser feito o link . link: Nome do novo link que ser criado. opes: Modificam o comportamento do comando: o -s Cria um link simblico. Usado para criar ligaes com o arquivo/diretrio de destino. o -d Cria um hard link para diretrios. Somente o root pode usar esta opo. Existem 2 tipos de links: simblicos e rgidos .

O link rgido faz referncia ao mesmo i-node do arquivo original, desta forma ele ser perfeitamente idntico, inclusive nas permisses de acesso, ao arquivo original. Ambos os links passam a se referir ao mesmo arquivo, e no a cpias iguais. No possvel fazer um link rgido para um diretrio ou para arquivos que estejam em parties diferentes. O link simblico cria um arquivo especial no disco (do tipo link) que tem como contedo o caminho para chegar at o arquivo alvo (isto pode ser verificado pelo tamanho do arquivo do link). A opo -s cria links simblicos. Observaes:

Se for usado o comando rm com um link, somente o link ser removido. Se for usado o comando cp com um link, o arquivo original ser copiado ao invs do link. Se for usado o comando mv com um link, a modificao ser feita no link.

52

Se for usado um comando de visualizao (como o cat), o arquivo original ser visualizado. Exemplos:

ln -s /dev/ttyS1 /dev/modem Cria o link simblico /dev/modem para o arquivo /dev/ttyS1. ln -s /tmp ~/tmp Cria um link ~/tmp para o diretrio /tmp.

5.5 O comando cat


Oficialmente usado para concatenar arquivos, mas tambm pode ser usado para mostrar o contedo completo de um arquivo por vez. Sintaxe:
cat [opes] [ diretrio/arquivo] [diretrio1/arquivo1 ]

Onde diretrio/arquivo: Localizao do arquivo que se deseja visualizar o contedo. opes: Modificam o comportamento do comando: o -n, --number Mostra o nmero das linhas enquanto o contedo do arquivo mostrado. o -s, --squeeze-blank No mostra mais que uma linha em branco entre um pargrafo e outro. O comando cat trabalha com arquivos texto. Use o comando zcat para ver diretamente arquivos compactados com gzip. Exemplo: cat /usr/doc/copyright/GPL

5.6 O comando tac


Mostra o contedo de um arquivo binrio ou texto (como o cat) s que em ordem inversa. Sintaxe:
tac [opes] [ diretrio/arquivo] [diretrio1/arquivo1 ]

diretrio/arquivo: Localizao do arquivo que se deseja visualizar o contedo opes: Modificam o comportamento do comando: o -s [string] Usa o [string] como separador de registros.

Exemplo: tac /usr/doc/copyright/GPL

53

5.7 O comando more


Permite fazer a paginao de arquivos ou da entrada padro. O comando more pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela ocupada, o more efetua uma pausa e permite que voc pressione Enter ou espao para continuar avanando no arquivo sendo visualizado. Para sair do more pressione q. Sintaxe:
more [arquivo]

Onde: arquivo: o arquivo que ser paginado. Para visualizar diretamente arquivos texto compactados pelo gzip (.gz) use o comando zmore. Exemplos: more /etc/passwd cat /etc/passwd | more

5.8 O comando less


Permite fazer a paginao de arquivos ou da entrada padro. O comando less pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela ocupada, o less efetua uma pausa (semelhante ao more) e permite que voc pressione Seta para Cima e Seta para Baixo ou PgUP/PgDown para fazer o rolamento da pgina. Para sair do less pressione q. Sintaxe:
less [arquivo]

Onde: arquivo: o arquivo que ser paginado. Para visualizar diretamente arquivos texto compactados pelo gzip (.gz) use o comando zless. Exemplos: less /etc/passwd cat /etc/passwd | less

5.9 O comando head


Mostra as linhas iniciais de um arquivo texto. Sintaxe:
head [opes] [arquivo]

Onde: arquivo: o arquivo que ser mostrado. opes: Modificam o comportamento do comando: o -c [numero] Mostra o [numero] de bytes do inicio do arquivo.

54

o -[numero] Mostra o [numero] de linhas do inicio do arquivo. Caso no seja especificado, mostra as 10 primeiras linhas. Exemplos: head teste.txt head -20 teste.txt

5.10 O comando tail


Mostra as linhas finais de um arquivo texto. Sintaxe:
tail [opes] [arquivo]

Onde: arquivo: o arquivo que ser mostrado. opes: Modificam o comportamento do comando: o -c [numero] Mostra o [numero] de bytes do final do arquivo. o -[numero] Mostra o [numero] de linhas do final do arquivo. Caso no seja especificado, mostra as 10 ltimas linhas. Exemplos: tail teste.txt tail -n 20 teste.txt

5.11 O comando touch


Muda a data e hora que um arquivo foi alterado. Tambm pode ser usado para criar arquivos vazios. Caso o touch seja usado com arquivos que no existam, por padro ele criar estes arquivos. Sintaxe:
touch [opes] [ arquivos]

Onde: arquivos: Arquivos que tero sua data/hora modificados. opes: Modificam o comportamento do comando: o -a, --time=atime Faz o touch mudar somente a data e hora do acesso ao arquivo. o -m, --time=mtime Faz o touch mudar somente a data e hora da modificao. o -c, --no-create No cria arquivos vazios, caso os arquivos no existam. o -t MMDDhhmm[AA.ss] Usa Minutos (MM), Dias (DD), Horas (hh), minutos (mm) e opcionalmente o Ano (AA) e

55

segundos (ss) para modificao dos arquivos, ao invs da data e hora atual. Exemplos: touch teste Cria o arquivo teste, caso ele no exista. touch -t 10011230 teste Altera da data e hora do arquivo para 01/10 e 12:30. touch -t 120112301999.30 teste Altera da data e hora do arquivo para 01/12/1999 e 12:30:30.

5.12 O comando wc
Conta o nmero de palavras, bytes e linhas em um arquivo ou entrada padro. Se as opes forem omitidas, o wc mostra a quantidade de linhas, palavras, e bytes. Sintaxe:
wc [opes] [arquivo]

Onde: arquivo: Arquivo que ser verificado pelo comando wc. opes: Modificam o comportamento do comando: o -c, --bytes Mostra os bytes do arquivo. o -w, --words Mostra a quantidade de palavras do arquivo. o -l, --lines Mostra a quantidade de linhas do arquivo. A ordem da listagem das estatsticas nica, e modificando a posio das opes no modifica a ordem que os dados so listados. Exemplo: wc /etc/passwd Mostra a quantidade de linhas, palavras e letras (bytes) no arquivo /etc/passwd. wc -w /etc/passwd Mostra a quantidade de palavras. wc -l /etc/passwd wc -lw /etc/passwd Mostra a quantidade de linhas. Mostra a quantidade de linhas e palavras.

5.13 O comando sort


Organiza as linhas de um arquivo texto ou da entrada padro. A organizao feita por linhas e as linhas so divididas em campos que a ordem que as palavras aparecem na linha separadas por um delimitador (normalmente um espao). Sintaxe:
sort [opes] [arquivo ]

Onde:

56

Arquivo: o nome do arquivo que ser organizado. Caso no for especificado, ser usado o dispositivo de entrada padro (normalmente o teclado ou um "|"). Opes: o -b Ignora linhas em branco. o -d Somente usa letras, dgitos e espaos durante a organizao. o -f Ignora a diferena entre maisculas e minsculas. o -r Inverte o resultado da comparao. o -n Caso estiver organizando um campo que contm nmeros, os nmeros sero organizados na ordem aritmtica. o -c Verifica se o arquivo j esta organizado. Caso no estiver, retorna a mensagem "disorder on arquivo". o -i Ignora os caracteres fora da faixa octal ASCII 040-0176 durante a organizao. o -t caracter Usa caracter como delimitador durante a organizao de linhas. Por padro usado um espao em branco como delimitador de caracteres. o +num1 -num2 Especifica qual o campo dentro na linha que ser usado na organizao. O(s) campo(s) usado(s) para organizao estar entre +num1 e +num2. O delimitador padro utilizado um espao em branco (use a opo -t para especificar outro). A contagem iniciada em "0". Caso no for especificada, a organizao feita no primeiro campo. Caso -num2 no seja especificado, a organizao ser feita usando a coluna +num1 at o fim da linha. o -k num1, num2 Esta uma alternativa ao mtodo acima para especificar as chaves de organizao. O uso idntico, mas o delimitador iniciado em "1".

Exemplos sort texto.txt - Organiza o arquivo texto.txt em ordem crescente. sort texto.txt -r - Organiza o contedo do arquivo texto.txt em ordem decrescente. cat texto.txt | sort - Faz a mesma coisa que o primeiro exemplo, s que neste caso a sada do comando cat redirecionado a entrada padro do comando sort. sort -f texto.txt - Ignora diferenas entre letras maisculas e minsculas durante a organizao. sort +1 -3 texto.txt - Organiza o arquivo texto.txt usando como referncia a segunda at a quarta palavra (segundo ao quarto campo) que constam naquela linha. sort -t : +2 -3 passwd - Organiza o arquivo passwd usando como referncia a terceira at a quarta palavra (terceiro ao quarto campo). Note que

57

a opo -t especifica o caracter ":" como delimitador de campos ao invs do espao. Neste caso, o que estiver aps ":" ser considerado o prximo campo.

5.14 O comando diff


Compara dois arquivos e mostra as diferenas entre eles. O comando diff usado somente para a comparao de arquivos em formato texto. As diferenas encontradas podem ser redirecionadas para um arquivo que poder ser usado pelo comando patch para aplicar as alteraes em um arquivo que no contm as diferenas. Isto til para grandes textos porque possvel copiar somente as modificaes (geradas atravs do diff, que so muito pequenas) e aplicar no arquivo para atualiza-lo (atravs do patch) ao invs de copiar a nova verso. Este um sistema de atualizao muito usado na atualizao dos cdigo fonte do kernel do GNU/Linux. Sintaxe:
diff [diretrio1/arquivo1 ] [ diretrio2/arquivo2 ] [opes]

Onde: diretrio1/arquivo1 diretrio2/arquivo2 Arquivos /diretrios que sero comparados. Normalmente usado como primeiro arquivo/diretrio o mais antigo e o mais novo como segundo. Opes: o -lines [num] Gera a diferena com [num] linhas de contexto. Por padro o diff gera um arquivo com 2 linhas que o mnimo necessrio para o correto funcionamento do patch. o -a Compara os dois arquivos como arquivos texto. o -b Ignora espaos em branco como diferenas. o -B Ignora linhas em branco inseridas ou apagadas nos arquivos. o -I Ignora diferenas entre maisculas e minsculas nos arquivos. o -H Usa anlise heurstica para verificar os arquivos. o -N Em uma comparao de diretrios, se o arquivo apenas existe em um diretrio, trata-o como presente mas vazio no outro diretrio. o -P Em uma comparao de diretrios, se o arquivos apenas existe no segundo diretrio, trata-o como presente mas vazio no primeiro diretrio. o -q Mostra somente se os dois arquivos possuem diferenas. No mostra as diferenas entre eles. o -r Compara diretrios e sub-diretrios existentes. o -S [nome] Inicia a comparao de diretrios pelo arquivo [nome]. til quando cancelamos uma comparao. o -t Aumenta a tabulao das diferenas encontradas. o -u Usa o formato de comparao unificado.

58

Use o comando zdiff para comparar diretamente arquivos compactados pelo utilitrio gzip Use o comando sdiff para visualizar as linhas diferentes entre os dois arquivos em formato texto simples. Exemplos: diff texto.txt texto1.txt - Compara o arquivo texto.txt com texto1.txt e exibe suas diferenas na tela. diff -Bu texto.txt texto1.txt - Compara o arquivo texto.txt com texto1.txt ignorando linhas em branco diferentes entre os dois arquivos e usando o formato unificado. diff texto.txt texto1.txt >texto.diff - Compara o arquivo texto.txt com texto1.txt e gera um arquivo chamdo texto.diff contendo a diferena entre eles. Este arquivo poder ser usado pelo patch para aplicar as diferenas existente entre os dois no arquivo texto.txt. diff -r /usr/src/linux-2.2.13 /usr/src/linux-2.2.14 >patch2.2.14.diff - Compara o diretrio e sub-diretrios linux-2.2.13 e linux-2.2.14 e grava as diferenas entre eles no arquivo patch-2.2.14.diff.

59

6 PERMISSES DE ARQUIVOS

6.1

Conceitos de permisses de arquivos

Como h tipicamente mais de um usurio num sistema Linux, o Linux fornece um mecanismo conhecido com permisso de arquivos, que protegem arquivos de usurios de serem mal utilizados por outros usurios. Esse mecanismo permite que arquivos e diretrios "pertenam" ao um usurio particular. Por exemplo, como Larry criou os arquivos em seu diretrio home, o Larry dono desses arquivos e tem acesso a eles. O Linux tambm permite que arquivos sejam compartilhados entre usurios e grupos de usurios. Se o Larry desejasse, sele poderia tirar o acesso a seus arquivos de forma a que nenhum outro usurio poderia acesslos. Entretanto, na maioria dos sistemas, o padro permitir que outros usurios leiam seus arquivos, mas no possam modific-los ou exclui-los de alguma forma. Cada arquivo pertence a um usurio em particular. Entretanto, arquivos tambm pertencem a um grupo, que um grupo definido de usurios do sistema. Cada usurio colocado em pelo menos um grupo quando sua conta criada. No entanto, o administrador do sistema pode conceder ao usurio o acesso a mais de um grupo. Grupos so usualmente definidos pelo tipo de usurios que acessam a mquina. Por exemplo, numa universidade, o sistema Linux pode ser configurados para os grupos estudante, administracao, faculdade ou convidado. H tambm alguns grupos pr-definidos do sistema (como bin e admin), que so usados pelo prprio sistema para controlar acesso aos recursos - muito raramente usurios reais pertencem a grupos de sistema. Permisses esto divididas em trs tipos: leitura, escrita e execuo. Essas permisses podem ser concedidas a trs tipos de usurios: o dono do arquivo, o grupo ao qual o arquivo pertence, e a todos os usurios, independentemente de grupo. A permisso de leitura permite que um usurio leia o contedo do arquivo e, no caso de diretrios, liste o contedo do diretrio (usando ls). A permisso de escrita permite que o usurio escreva e/ou modifique o arquivo. Para diretrios, a permisso de escrita permite que o usurio crie novos arquivos ou exclua arquivos naquele diretrio. Finalmente, a permisso de execuo permite que um usurio rode um arquivo como um programa ou script de shell (o arquivo precisa ser um programa ou script de shell). Para diretrios, ter permisso de execuo permite que o usurio entre no diretrio em questo (com o comando cd).

6.2

Interpretando permisses de arquivos

Vamos observer um exemplo que demonstra permisses de arquivos. Usando o comando ls com a opo "-l" mostra uma listagem mais completa do arquivo, incluindo permisses de arquivos.

60

/home/larry/foo# ls -l stuff -rw-r--r-- 1 larry users /home/larry/foo#

505 Mar 13 19:05 stuff

O primeiro campo na lista representa as permisses do arquivo. O terceiro campo o dono do arquivo (larry) e o quarto campo o grupo ao qual o arquivo pertence (users). Obviamente, o ltimo campo o nome do arquivo (stuff). Vamos falar sobre os outros campos mais tarde. Esse arquivo pertence ao larry, e pertence ao grupo users. A string -rwr--r-- mostra, em ordem, as permisses concedidas ao dono do arquivo, ao grupo do arquivo, e a todo o resto. O primeiro caracter da string de permisses ("-") representa o tipo do arquivo. Um hfen ("-") significa que um arquivo comum (e no um diretrio um driver de dispositivo). O prximos trs caracteres ("rw-") representam as permisses concedidas ao dono do arquivo, larry. O "r" vem de "read" (leitura) e o "w" de "write" (escrita). Assim, Larry tem permisso de leitura e escrita no arquivo stuff. Como mencionado, alm de permisses de escrita e leitura, h tambm a permisso de "execuo" - representada por um "x". Entretanto, um "-" listado no exemplo no lugar do "x", indicando que o Larry no tem permisso de execuo para este arquivo. Isto est ok, visto que o arquivo stuff no um programa. Como o Larry o dono do programa, ele mesmo pode conceder permisso de execuo para o arquivo se assim desejar. Os prximos trs caracteres ("r--"), representam as permisses de grupo no arquivo. O grupo que dono deste arquivo users. Como somente um "r" aparece aqui, um usurio que pertena ao grupo users pode ler este arquivo. Os ltimos trs caracteres (tambm "r--") representam as permisses concedidas para qualquer usurio do sistema (alm do dono do arquivo e daqueles que pertenam ao grupo users). Novamente, como somente um "r" aparece, outros usurios podem ler o arquivo, mas no escrever ou executar. Aqui vemos outros exemplos de permisses: -rwxr-xr-x O dono do arquivo pode ler, escrever e executar o arquivo. Usurios no grupo do arquivo, e todos os outros, podem ler e executar o arquivo -rw------O dono do arquivo pode ler e escrever no arquivo. Nenhum outro usurio pode acessar o arquivo. -rwxrwxrwx Todos os usurios podem ler, escrever e executar o arquivo.

6.3

Dependncias de Permisses

As permisses concedidas a um arquivo tambm dependem das permisses do diretrio no qual o arquivo est localizado. Por exemplo, mesmo que um arquivo esteja com permisso -rwxrwxrwx, outros usurios no vo poder acessar o arquivo a menos que eles tenham permisso de leitura e 61

execuo no diretrio no qual est o arquivo. Por exemplo, se Larry quer restringir acesso a todos os seus arquivos, ele pode configurar as permisses do seu diretrio home (/home/larry) para -rwx------. Desta forma, nenhum outro usurio ter acesso ao seu diretrio, e a todos os arquivos e diretrios dentro dele. Larry no precisa se preocupar com as permisses individuais para cada um de seus arquivos. Em outras palavras, para acessar um arquivo, voc tem que ter permisso de execuo para todos os diretrios no caminho, e permisso de leitura (ou execuo) para o arquivo. Tipicamente, usurios num sistema Linux so bastante descuidads com seus arquivos. A permisso usual dada a arquivos -rw-r--r--, que permite que outros usurios leiam os arquivos mas no modifiquem. A permisso usual dada a diretrios -rwxr-xr-x, que permite que outros usurios entrem em seus diretrios, mas no criem ou apaguem arquivos dentro deles. Entretanto, muitos usurios desejam manter outros usurios longe de seus arquivos. Colocando as permisses de um arquivo para -rw------- ir previnir que qualquer outro usurio acesse o arquivo. Da mesma forma, se um diretrio tiver a permisso -rwx------, nenhum outro usurio poder entrar nele.

6.4

Modificando permisses

O comando "chmod" usado para modificar permisses de um arquivo. Somente o dono do arquivo pode mudar as permisses para o arquivo. A sintaxe do chmod "chmod {a,u,g,o}{+,-}{r,w,x} arquivos" Brevemente, voc fornece uma ou mais letras indicando para quem voc est concedendo ou retirando permisses: todos (a, do ingls, all); usurio (u), grupo (g), ou outros (o). Depois voc especifica se est adicionando (+) ou removendo ( - ) direitos. E finalmente voc especifica o tipo de permisso: leitura (read), escrita (write), ou execuo. Alguns exemplos de comandos possveis so: chmod a+r stuff D permisso de leitura para todos os usurios. chmod +r stuff A mesma coisa - se nenhuma a, u, g ou o especificado, a assumido. chmod og-x stuff Remove permisso de execuo de usurios que no o prprio dono. chmod u+rwx stuff Permite que o dono leia, escreva e execute o arquivo. chmod o-rwx stuff Remove as permisses de leitura, escrita e execuo para outros usurios que no sejam o dono ou usurios do grupo.

62

7 GERENCIANDO LINKS DE ARQUIVOS


Links permitem que voc d mais de um nome a um nico arquivo. Arquivos so identificados pelo sistema pelo nmero do "inode", que o identificador nico para o arquivo no sistema. Um diretrio na verdade uma listagem de "inodes" com seus nomes de arquivos correspondentes. Cada nome de arquivo num diretrio um link para um "inode" particular.

7.1

Links Rgidos

O comando "ln" usado para criar mltiplos links para um arquivo. Por exemplo, digamos que voc tenha um arquivo chamado "foo" em um diretrio. Usando "ls -i", voc pode ver o nmero do "inode" para este arquivo.
/home/larry# 22192 foo /home/larry# ls -i foo

Aqui, "foo" tem o nmero de inode 22192 no sistema de arquivos. Voc pode criar outro link para o arquivo "foo", chamado, por exemplo, "bar", como segue:
/home/larry# ln foo bar

Com o "ls -i", voc pode ver que os dois arquivos tem o mesmo inode.
/home/larry# ls 22192 bar 22192 /home/larry# -i foo foo

Agora, especificando tanto "foo" quanto "bar", voc ter acesso ao mesmo arquivo. Se voc fizer mudanas a "foo", essas mudanas aparecem em "bar" tambm. Para todos os prositos, "foo" e "bar" so o mesmo arquivo. Esses links so conhecidos como links rgidos (hard link), porque criam um link direto para um inode. Note que voc s pode fazer hard links para arquivos se os links estiverem no mesmo sistema de arquivos. Links simblicos (veja abaixo) no tm esta restrio. Quando voc exclui um arquivo com "rm", voc est, na verdade, apagando um link para o arquivo. Se voc usar o comando
/home/larry# rm foo

somente o link chamado foo excludo, bar ainda vai existir. Um arquivo realmente excludo do sistema somente quando no h mais links para ele. Usualmente, arquivos s tem um link. Assim, usando o comando "rm" exclui o arquivo. Entretanto, se um arquivo tem mltiplos links, usando o comando "rm" excluir somente um link. Para excluir o arquivo, voc tem que excluir todos os links para o mesmo. O comando "ls -l" mostra o nmero de links para um arquivo (entre outras informaes).
/home/larry# -rw-r--r-- 2 ls -l foo bar root root 12 Aug 5 16:51 bar

63

-rw-r--r-- 2 /home/larry#

root root

12 Aug

5 16:50 foo

A segunda coluna na listagem, "2", especifica o nmero de links para o arquivo. Com isso claro, um diretrio , na verdade, somente um arquivo contendo a informao sobre as associaes link para inode. Alm disso, cada diretrio contm, no mnimo, dois links rgidos: "." (um link apontando para si mesmo), e ".." (um link apontando para o diretrio superior). No diretrio root (/), o link ".." aponta novamente para /. (Em outras palavras, o diretrio superior do diretrio root o prprio diretrio root).

7.2

Links Simblicos

Links simblicos, ou symlinks, so outro tipo de link, e so diferentes dos links rgidos. Um link simblico permite que voc d outro nome a um arquivo, mas no faz o link ao arquivo por inode. O comando "ln -s" cria um link simblico para um arquivo. Por exemplo, se voc usa o comando:
/home/larry# ln -s foo bar

Voc estar criando um link simblico chamado "bar" que aponta para o arquivo "foo". Se voc usa o "ls -i", voc ver que os dois arquivos tm, de fato, inodes diferentes.
/home/larry# ls -i foo 22195 bar 22192 foo /home/bar# bar

Entretanto, usando o "ls -l", vemos que o arquivo "bar" um ponteiro simblico para "foo".
/home/larry# lrwxrwxrwx -rw-r--r-/home/larry# ls -l foo 1 root 1 root bar root root 3 Aug 12 Aug 5 16:51 bar -> foo 5 16:50 foo

As permisses de arquivo num link simblico no so usadas (sempre aparecem como rwxrwxrwx). Elas so determinadas pelas permisses no arquivo alvo do link simblico (em nosso exemplo, o arquivo foo). Funcionalmente, links rgidos e links simblicos so similares, mas h diferenas. Voc pode, por exemplo, criar um link simblico para um arquivo que no existe; o mesmo no funciona para links rgidos. Links simblicos so processados pelo kernel diferentemente de links rgidos. somente uma diferena tcnica, mas algumas vezes importante. Links simblicos so teis porque identificam o arquivo para o qual apontam. Com links rgidos, no h uma maneira fcil de determinar quais arquivos esto "linkados" para o mesmo inode. Links so usados em muitos lugares no sistema Linux. Links simblicos so especialmente importante para bibliotecas compartilhadas no /lib.

64

8 COMANDOS DE BUSCA

8.1 O comando grep


Procura por um texto dentro de um arquivo(s) ou no dispositivo de entrada padro. Sintaxe:
grep [expresso] [arquivo] [ opes]

Onde: Expresso: Expresso regular que ser procurada no texto. Se tiver mais de 2 palavras voc deve identifica-la com aspas "" caso contrrio o grep assumir que a segunda palavra o arquivo! Arquivo: Arquivo onde ser feita a procura. Opes: o -A [nmero] Mostra o [nmero] de linhas aps a linha encontrada pelo grep. o -B [nmero] Mostra o [nmero] de linhas antes da linha encontrada pelo grep. o -f [arquivo] Especifica que o texto que ser localizado, esta no arquivo [arquivo]. o -h, --no-filename No mostra os nomes dos arquivos durante a procura. o -i, --ignore-case Ignora diferena entre maisculas e minsculas no texto procurado e arquivo. o -n, --line-number Mostra o nome de cada linha encontrada pelo grep. o -U, --binary Trata o arquivo que ser procurado como binrio. Se no for especificado o nome de um arquivo ou se for usado um hfen "-", grep procurar a string no dispositivo de entrada padro. O grep faz sua pesquisa em arquivos texto. Use o comando zgrep para pesquisar diretamente em arquivos compactados com gzip, os comandos e opes so as mesmas. Exemplos: grep "capitulo" texto.txt ps ax | grep inetd grep "capitulo" texto.txt -A 2 -B 2

8.2 O comando find


Procura por arquivos/diretrios no disco. find pode procurar arquivos atravs de sua data de modificao, tamanho, etc atravs do uso de opes. find, ao contrrio de outros programas, usa opes longas atravs de um "-". Sintaxe: 65

find [diretrio] [opes/expreso ]

Onde: Diretrio: Inicia a procura neste diretrio, percorrendo seu subdiretrios. opes/expresso: o -name [expresso] Procura pelo nome [expresso] nos nomes de arquivos e diretrios processados. o -depth Processa os sub-diretrios primeiro antes de processar os arquivos do diretrio principal. o -maxdepth [num] Faz a procura at [num] sub-diretrios dentro do diretrio que est sendo pesquisado. o -mindepth [num] No faz nenhuma procura em diretrios menores que [num] nveis. o -mount, -xdev No faz a pesquisa em sistemas de arquivos diferentes daquele de onde o comando find foi executado. o -amin [num] Procura por arquivos que foram acessados [num] minutos atrs. Caso for antecedido por "-", procura por arquivos que foram acessados entre [num] minutos atrs at agora. o -atime [num] Procura por arquivos que foram acessados [num] dias atrs. Caso for antecedido por "-", procura por arquivos que foram acessados entre [num] dias atrs e a data atual. o -gid [num] Procura por arquivos que possuam a identificao numrica do grupo igual a [num]. o -group [nome] Procura por arquivos que possuam a identificao de nome do grupo igual a [nome]. o -uid [num] Procura por arquivos que possuam a identificao numrica do usurio igual a [num]. o -user [nome] Procura por arquivos que possuam a identificao de nome do usurio igual a [nome]. o -inum [num] Procura por arquivos que esto localizados no inodo [num]. o -links [num] Procura por arquivos que possuem [num] links como referncia. o -mmin [num] Procura por arquivos que tiveram seu contedo modificado h [num] minutos. Caso for antecedido por "-", procura por arquivos que tiveram seu contedo modificado entre [num] minutos atrs at agora. o -mtime [num] Procura por arquivos que tiveram seu contedo modificado h [num] dias. Caso for antecedido por "", procura por arquivos que tiveram seu contedo modificado entre [num] dias atrs at agora. o -nouser Procura por arquivos que no correspondam a identificao do usurio atual.

66

o -nogroup Procura por arquivos que no correspondam a identificao do grupo do usurio atual. o -perm [modo] Procura por arquivos que possuam os modos de permisso [modo]. Os [modo] de permisso pode ser numrico (octal) ou literal. o -used [num] O arquivo foi acessado [num] vezes antes de ter seu status modificado. o -size [num] Procura por arquivos que tiverem o tamanho [num]. [num] pode ser antecedido de "+" ou "-" para especificar um arquivo maior ou menor que [num]. A opo size pode ser seguida de: b - Especifica o tamanho em blocos de 512 bytes. o padro caso [num] no seja acompanhado de nenhuma letra. c - Especifica o tamanho em bytes. k - Especifica o tamanho em Kbytes. o -type [tipo] Procura por arquivos do [tipo] especificado. Os seguintes tipos so aceitos: b - bloco c - caracter d - diretrio p - pipe f - arquivo regular l - link simblico s - sockete A maior parte dos argumentos numricos podem ser precedidos por "+" ou "-". Para detalhes sobre outras opes e argumentos, consulte a pgina de manual. Exemplos: find / -name grep - Procura no diretrio raz e sub-diretrios um arquivo/diretrio chamado grep. find / -name grep -maxdepth 3 - Procura no diretrio raz e subdiretrios at o 3o. nvel, um arquivo/diretrio chamado grep. find . -size +1000k - Procura no diretrio atual e sub-diretrios um arquivo com tamanho maior que 1000 kbytes (1Mbyte). find / -mmin 10 - Procura no diretrio raz e sub-diretrios um arquivo que foi modificado h 10 minutos atrs. find / -links 4 - Procura no diretrio raz e sub-diretrios, todos os arquivos que possuem 4 links como referncia.

8.3 O comando which


Mostra a localizao de um arquivo executvel no sistema. A pesquisa de arquivos executveis feita atravs do path do sistema. Sintaxe: 67

which [comando]

Exemplos: which ls which shutdown which which

8.4 O comando whereis


Localiza o arquivo que contm uma pgina de manual. A pesquisa feita usando-se os caminhos de pginas de manuais configuradas no sistema (normalmente o arquivo /etc/manpath.config). Sintaxe:
whereis [comando ]

Exemplos: whereis ls whereis cd

68

9 USANDO O EDITOR VI
Um editor de textos um programa usado para editar arquivos que so compostos de textos: uma carta, um programa C, ou um arquivo de configurao do sistema. Ainda que existam vrios desses editores disponveis para o Linux, o nico que voc garantidamente vai encontrar em qualquer UNIX ou sistema Linux, o vi (do ingls, "visual editor"). O vi no o editor mais fcil de usar, nem muito auto-explicativo. Entretanto, como o vi to comum em sistemas UNIX/Linux, e muitas vezes necessrio, ele merece um pouco de nossa ateno. Sua escolha por um editor mais uma quest pessoal de gosto e estilo. Muitos usurios preferem o barroco, auto-explicativo e poderoso Emacs - um editor com mais funes que qualquer outro programa no mundo UNIX. Por exemplo, o Emacs tem o seu prprio dialeto da linguagem de programao LISP embutido, e tem muitas outras extenses (uma das quais um tipo Eliza um programa de inteligncia artificial). No entanto, como o Emacs e seus arquivos de suporte so relativamente grandes, ele no pode ser instalado em alguns sistemas. O vi, por outro lado, pequeno e poderoso, mas mais difcil de usar. Entretanto, uma vez que voc saiba lidar com ele, ser muito fcil. Esta seo apresenta uma introduo ao vi - no vamos discutir todas os seus atributos, somente aqueles que voc precisa saber para comear a us-lo. Voc pode verificar a pgina de manual do vi se estiver interessado em aprendar mais sobre o editor e suas funes. Alternativamente, voc pode ler o livro Learning the vi Editor, da editora OReilly and Associates, ou Vi Tutorial, da Specialized Systems Consultants (SSC) Inc.

9.1

Conceitos.

Enquanto estiver usando o vi, em qualquer momento voc est em um dos trs modos de operao. Esses modos so chamados: modo de comando, modo de insero, e modo ltima linha. Quando voc inicia o vi, voc est no modo de comando. Esse mode permite que voc use comandos para editar arquivos ou para trocar para outros modos. Por exemplo, digitando "x" no modo comando apaga o caracter que est sob o cursor. As teclas de setas movem o cursor pelo arquivo que voc est editando. Geralmente, os comandos usados no modo de comando so de um ou dois caracteres. Voc pode inserir ou editar textos no modo de insero. Quando estiver usando o vi, vai provavelmente usar a maior parte do tempo neste modo. Voc inicia o modo de insero pressionando o comando "i" (de "inserir") no modo de comando. Enquanto estiver em modo de insero, voc pode inserir texto no documento na posio do cursor. Para sair do modo de insero e retornar ao modo de comando, pressione <Esc>. O modo de ltima linha um modo especial que permite alguns comandos extendidos do vi. Ao digitar esses comandos, eles aparecem na ltima linha da tela (da o nome). Por exemplo, quando voc digita ":" no modo de comando, voc pula para o modo de ltima linha e pode usar os comandos "wq" (gravar e sair - do ingls, write and quit), ou "q!" (para sair sem salvar). O 69

modo de ltima linha geralmente usado para comandos do vi que so mais longos do que um caracter. No modo de ltima linha, voc entra um comando de uma linha e pressiona <Enter> para execut-lo.

9.2

Iniciando o vi

A melhor maneira de compreender estes conceitos chamar o vi e editar um arquivo. O exemplo "screens" abaixo mostra algumas linhas de texto, como se a tela tivesse somente seis linhas de altura, ao invs de vinte e quatro. A sintaxe do vi
vi arquivo

onde arquivo o nome do arquivo a editar. Chame o vi digitando:


/home/larry# vi test

para editar o arquivo "test". Voc deve ver algo parecido com:

~ ~ ~ ~ ~ ~ ~ "test"

[New file ]

A coluna de caracteres "~" indicam que voc est no fim do arquivo. No exemplo, o caracter "_" representa o cursor.

9.3

Inserindo texto

O programa vi est agora no modo de comando. Insira um texto no arquivo - pressionando "i" voc coloca o editor em modo de insero. A partir da, comece a digitar.

Now is the time for all good men to come to the aid of the party ~ ~ ~ ~ ~

70

~ ~
Digite quantas linhas voc quiser (pressionando <Enter> depois de cada uma). Voc pode corrigir erros com a tecla <Back Space>. Para terminar o modo de insero e retornar ao modo de comando, pressione <Esc>. No modo de comando voc pode usar as setas para mover pelo arquivo. (Se voc tem somente uma linha de texto, e tentar usar as teclas para cima e para baixo, vai sentir que vi vai tocar um bip). H muitas maneiras de inserir um texto que no o comando "i". O comando "a" insere um texto comeando aps a posio atual do cursor, ao invs de na posio atual do cursor. Por exemplo, use a seta da esquerda para mover o cursor entre as palavras "good" e "men".

Now is the time for all good_men to come to the aid of the party ~ ~ ~ ~ ~ ~ ~
Pressione "a" para entrar no modo de insero, digite "wo", e ento pressione <Esc> para retornar ao modo comando.

Now is the time for all good wo men to come to the aid of the party ~ ~ ~ ~ ~
Para comear a inserir texto na prxima linha, use o comando "o". Pressione "o" e entre uma ou duas linhas mais:

Now is the time for all good humans to come to the aid of the party. Afterwards, well go out for pizza and beer.
71

~ ~ ~ ~ ~ ~ ~

9.4

Apagando texto

A partir do modo de comando, o comando "x" apaga o caracter sob o cursor. Se voc pressionar cinco vezes "x", vai chegar em:

Now is the time for all good humans to come to the aid of the party. Afterwards, well go out for pizza and _ ~ ~ ~ ~ ~ ~ ~
Agora pressione "a" e insira algum texto, seguido de <esc>:

Now is the time for all good humans to come to the aid of the party. Afterwards, well go out for pizza and diet coke. ~ ~ ~ ~ ~ ~ ~

72

Voc pode apagar linhas inteiras usando o comando "dd" (isso mesmo, pressione "d" duas vezes seguidas), Se o cursor est na segunda linha, e voc pressionar "dd", ver:

Now is the time for all good humans to come to the aid of the party . ~ ~ ~ ~ ~ ~ ~
Para apagar a palavra onde est o cursor, use o comando "dw". Coloque o cursor no incio da palavra good, e digite "dw".

Now is the time for all humans to come to the aid of the party. ~ ~ ~ ~ ~ ~ ~

9.5

Modificando texto

Voc pode substituir sees de texto usando o comando "R" (maisculo). Posicione o cursor na primeira letra da palavra "party", pressione "R" e digite a palavra "hungry".

Now is the time for all humans to come to the aid of the hungry . ~ ~ ~ ~ ~ ~ ~
73

Usando "R" para editar um texto como usar "i" ou "a", mas o "R" sobreescreve, ao invs de inserir. O comando "r" (minsculo) substitui o caracter sob o cursor. Por exemplo, mova o cursor para o incio da palavra "Now" e pressione "r", depois "C", voc ver:

Cow is the time for all humans to come to the aid of the hungry. ~ ~ ~ ~ ~ ~ ~
O comando "~" troca a caixa da letra que est sob o cursor de alta para baixa e vice-versa. Por exemplo, se voc posiciona o cursor no "o", na palvra "Cow" acima e repetidamente pressiona "~", ter:

COW ~ ~ ~ ~ ~ ~ ~

IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY .

Nota: em teclados programados para o portugus, voc ter que pressionar "~" seguido da tecla de espao para ter o mesmo efeito.

9.6

Comandos para movimentar o cursor

Voc j sabe como usar as setas para se movimentar pelo documento. Alm disso, voc pode usar os comandos "h", "j", "k" e "l" para mover o cursor para a esquerda, baixo, cima e direita, respectivamente. Isso til quando (por alguma razo) suas teclas de setas no funcionam corretamente. O comando "w" move o cursor para o incio da prxima palavra, o comando "b" para o incio da palavra anterior.

74

O comando "0" (tecla zero) move o cursor para o incio da linha corrente, e o comando "$" para o fim da linha. Quando editar arquivos grandes, voc vai querer avanar e retroceder atravs do arquivo uma tela por vez. Pressionado "Ctrl-F" move o cursor uma tela para a frente, e Ctrl-B, uma tela para trs. Para mover o cursor para o fim do arquivo, pressione "G". Voc tambm pode mov-lo para uma linha arbitrria; por exemplo, digite o comando "10G" para mover o cursor para a linha 10 no arquivo. Para mov-lo para a primeira linha, use "1G". Voc pode combinar comandos de movimentao com outros comandos, como aqueles usados para apagar texto. Por exemplo, o comando "d$" apaga tudo do cursor at o fim da linha; "dG" apaga tudo do cursor at o fum do arquivo, e assim por diante.

9.7

Salvando arquivos e saindo do vi

Para sair do vi sem salvar mudanas no arquivo, use o comando ":q!". Quando voc pressiona ":", o cursor se move para a ltima linha da tela e voc estar no modo de ltima linha.

COW ~ ~ ~ ~ ~ ~ :_

IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY .

No modo de ltima linha, certos comandos extendidos esto disponveis. Um deles o "q!", que sai do vi sem salvar. O comando ":wq" salva o arquivo e sai do vi. O comando "ZZ" (do modo comando, sem os ":") equivalente a ":wq". Se o arquivo no foi modificado desde a ltima vez que foi salvo, o comando s sai, preservando a data de modificao da ltima mudana. Lembre-se que voc deve pressionar <Enter> depois de um comando entrado no modo de ltima linha. Para salvar o arquivo sem sair do vi, use ":w".

9.8

Editando outro arquivo

Para editar outro arquivo, use o comando ":e". Por exemplo, para parar a edio do arquivo "test" e editar o arquivo "foo" no lugar, use o comando:

75

COW

IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY .

~ ~ ~ ~ ~ ~ :e foo_
Se voc usa ":e" sem salvar o primeiro arquivo, voc vai receber a mensagem de erro:
No write since last change (":edit!" overrides)

que significa que o vi no quer editar outro arquivo at que voc salve o primeiro. Neste ponto, voc pode usar ":w" para salvar o arquivo original, e depois o ":e", ou pode usar o comando:

COW

IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY .

~ ~ ~ ~ ~ ~ :e!

foo_

O sinal "!" diz ao vi que voc realmente quer fazer isso - editar o novo arquivo sem salvar as mudanas do primeiro.

9.9

Incluindo outros arquivos

Se voc usar o comando ":r", pode incluir o contedo de outro arquivo no arquivo corrente. Por exemplo, o comando
:r foo.txt

insere o contedo do arquivo "foo.txt" no texto atul na localizao do cursor.

76

9.10 Rodando comandos do shell


Voc tambm pode rodar comandos do shell de dentro do vi. O comando ":r!" funciona como ":r", mas ao invs de ler um arquivo, ele insere a sada do comando dado na posio corrente do cursor. Por exemplo, se voc usar o comando:
:r! ls -F

voc vai terminar com:

COW

IS THE TIME FOR ALL HUMANS TO COME TO THE AID OF THE HUNGRY .

letters/ misc/ papers/ ~ ~


Voc tambm pode rodar um comando do shell de dentro do vi sem que o texto seja inserido no arquivo em edio. Por exemplo, se usar o comando
:! ls -F

O "ls -F" ser executado e o resultado mostrado na tela, mas no inserido no arquivo que voc est editando. Se voc usar o comando
:shell

O vi inicia uma instncia do shell, permitindo que voc ponha o vi temporariamente em segundo plano, enquanto executa outros comandos. Simplesmente d um logout (usando o comando exit) do shell para retornar ao vi.

9.11 Ajuda no vi
O vi no fornece muita ajuda interativa (a maioria dos programas Linux tambm no), mas voc sempre pode ler a pgina do manual para o vi. O vi uma fachada para o editor "ex", que manipula muitos dos comandos do modo de ltima linha do vi. Assim, alm de ler a pgina de manual para o vi, veja tambm para o "ex". Voc tambm pode usar o comando ":help" para ver uma ajuda dos comandos bsicos na tela.

77

10 ACESSANDO ARQUIVOS MS-DOS


Se, por qualquer motivo bizarro, voc quiser acessar arquivos do MSDOS (ou Windows), pode faz-lo facilmente no Linux. A maneira usual de acessar arquivos MS-DOS montar uma partio ou disquete MS-DOS no Linux, permitindo que voc acesse os arquivos diretamente atravs do sistema de arquivos. Por exemplo, se voc tem um disquete MS-DOS em /dev/fd0, o comando # mount -t msdos /dev/fd0 /mnt vai mont-lo no diretrio /mnt. Voc tambm pode montar uma partio MS-DOS no seu disco rgido para acess-la atravs do Linux. Se voc tem uma partio MS-DOS em /dev/hda1, o comando: # mount -t msdos /dev/hda1 /mnt monta a partio. Lembre-se de desmontar a partio quando tiver terminado de us-la. Voc pode ter uma partio MS-DOS montada automaticamente na inicializao do sistema se voc incluir a entrada no /etc/fstab. A prxima linha no /etc/fstab ir montar a partio MS-DOS no /dev/hda1 no diretrio /dos automaticamente: /dev/hda1 /dos msdos defaults Voc tambm pode montar o sistema de arquivos VFAT (usado pelo Windows 95): # mount -t vfat /dev/hda1 /mnt Isso permite acessar nomes de arquivo longos do Windows. Voc pode montar um sistema de arquivos FAT16 e usar isto para gerar nomes de arquivo longos. O software Mtools tambm pode ser usado para acessar arquivos MSDOS. Os comandos mcd, mdir e mcopy se comportam como seus correspondentes MS-DOS. Se voc instalar o Mtools, poder consultar pginas de manual para esses comandos. Acessar arquivos MS-DOS uma coisa, execut-los outra. H um emulador MS-DOS em desenvolvimento no Linux. Ele includo em muitas distribuies. Tambm pode ser baixado de muitos sites de FTP. O emulador bastante poderoso e pode rodar vrias aplicaes. Entretanto, Linux e MSDOS so sistemas bem diferentes. O poder de qualquer emulador MS-DOS num UNIX limitado. H tambm um emulador Windows para ambiente X em desenvolvimento.

78

11 O SHELL

11.1 Tipos de shell


Como mencionado anteriormente, o Linux um sistema de arquivos multi-tarefa e multi-usurio. Ser multi-tarefa bem til, e uma vez que voc tenha entendido isso, vai us-lo todo o tempo. Em pouco tempo voc vai estar rodando programas em segundo plano, mudando entre tarefas, e fazendo pipelines entre programas. Tudo isso junto para atingir resultados complicados em um nico comando. Muitas das caractersticas que ns vamos cobrir nesta seo so fornecidas pelo prprio shell. Tome cuidado para no confundir o Linux (o prprio sistema operacional) com um shell - um shell somente uma interface para o sistema que est embaixo. O shell fornece funcionalidade para o Linux. Um shell no somente um interpretador para comandos interativos que voc digita no prompt, mas tambm uma poderosa linguagem de programao. Ele permite que voc escreva scripts de shell, para agrupar vrios comandos shell em um nico arquivo. Se voc sabe MS-DOS, voc vai reconhecer a semelhana com os arquivos "batch" (.BAT). Os scripts do shell so uma ferramenta poderosa, que permitiro que voc automatize e expanda seu uso do Linux. H vrios tipos de shell no mundo Linux. Os dois tipos principais so o "Bourne shell" e o "C shell". O "Bourne shell" usa uma sintaxe de comando como o shell original dos sistemas UNIX, como o System III. O nome do "Bourne shell" na maioria dos sistemas Linux /bin/sh (onde sh vem de "shell"). O "C shell" usa uma sintaxe diferente, parecida com programao C, e na maioria dos sitemas chamado de /bin/csh. No Linux, vrias variantes desses shell esto disponveis. As duas mais comunmente usadas so "Bourne Again Shell", ou "Bash" (/bin/bash), e "Tcsh" (/bin/tcsh). Bash uma forma de Bourne shell que inclui muitas das caractersticas avanadas encontradas no "C shell". Como o bash suporta um conjunto maior de comandos que o "Bourne shell", os scripts em shell escritos para o Bourne shell devem funcionar no bash. Se voc prefere usar a sintaxe do C shell, o Linux suporta o tcsh, que uma verso expandida do C shell original. O tipo de shell que voc vai escolher mais uma questo de religio. Alguns preferem a sintaxe do Bourne shell com as caractersticas avanadas do bash, e outros preferem a sintaxe mais estruturada do C shell. Para comandos normais como cp e ls, o shell que voc usar no faz diferena - a sintaxe no muda. S quando voc comear a escrever scripts shell ou usar funes avanadas de um shell que as diferenas entre os tipos vai comear a importar. A medida que for se acostumando, voc vai notar diferenas entre o Bourne e o C shell. Entretanto, para os propsitos deste livro, a maioria das diferenas irrelevante. (Se voc est curioso sobre este ponto, leia as pginas de manual do bash e do tcsh).

79

11.2 Caracteres Coringa


Uma caracterstica fundamental da maioria dos shell do Linux a habilidade de se referir a mais de uma arquivo usando caracteres especiais. Esses caracteres coringa permitem que voc se refira, digamos, a todos os arquivos que contenham o caracter "n". O caracter coringa "*" especifica qualquer caracter ou seqncia de caracteres num nome de arquivo. Quando voc usa o caracter "*" em um nome de arquivo, o shell o substitui por todas as possibilidades possveis de nomes de arquivos no diretrio ao qual voc se refere. Aqui temos um exemplo rpido. Suponha que Larry tenha os arquivos frog, joe e stuff no seu diretrio corrente. /home/larry# ls frog joe stuff /home/larry# Para especificar todos os arquivos contendo a letra "o" no nome, use o comando: /home/larry# ls *o* frog joe /home/larry# Como voc pode ver, cada instncia do "*" substituda por todas as substituies que casam com os arquivos no diretrio corrente. O uso do "*" simplesmente, casa com todos os nomes, pois todos os caracteres casam com o caracter coringa. /home/larry# ls * frog joe stuff /home/larry# Abaixo, mais alguns exemplos: /home/larry# ls f* frog /home/larry# ls *ff stuff /home/larry# ls *f* frog stuff /home/larry# ls s*f stuff /home/larry# O processo de trocar um "*" numa srie de nomes de arquivos chamado de expanso de caracteres coringa e feito pelo shell. Isto importante: um comando individual, como ls, nunca v o "*" na sua lista de

80

parmetros. O shell expande os caracteres coringa para incluir os nomes de arquivos que casam. Assim, o comando: /home/larry# ls *o* expandido pelo shell para: /home/larry# ls frog joe Uma nota importante sobre o caracter coringa "*" que ele no expande para nomes que comeam com um ponto ("."). Esses arquivos so tratados como ocultos apesar de no serem realmente ocultos, eles no so mostrados numa listagem ls normal nem so tocados pelo uso do caracter "*". Aqui temos um exemplo. Ns mencionamos antes que cada diretrio contm duas entradas especiais: ".", que se refere ao diretrio corrente, e "..", que se refere ao diretrio superior. Entretanto, quando voc usao o ls, essas entradas no so mostradas. /home/larry# ls frog joe stuff /home/larry# Se voc usa a opao -a no ls, entretanto, voc pode ver nomes de arquivos que comeam com ".". Observe: /home/larry# ls -a . .. .bash_profile .bashrc frog joe stuff /home/larry# A lista contm as duas entradas especiais, "." e "..", assim como outros arquivos ocultos - .bash_profile e .bashrc. Esses dois arquivos so arquivos de inicializao usados pelo bash quando o Larry entra no sistema. Note que quando voc usa o caracter coringa "*", nenhum dos arquivos comeando com "." so mostrados. /home/larry# ls * frog joe stuff /home/larry# Essa uma caracterstica de segurana: se o "*" encontrasse nomes comeando com ".", ele tambm encontraria os diretrios "." e "..". Isso pode ser perigoso quando ao usar alguns comandos. Outro caracter coringa o "?". O "?" expande para um nico caracter. Assim, "ls ?" mostra todos os arquivos com nomes de um caracter s. E "ls termca?" mostraria "termcap", mas no "termcap.backup". Segue outro exemplo: /home/larry# ls j?e joe

81

/home/larry# ls f??g frog /home/larry# ls ????f stuff /home/larry# Como pode ver, caracteres coringa permitem que voc especifique muitos arquivos de uma s vez. J comentamos que os comandos cp e mv podem copiar ou mover mais de um arquivo por vez. Por exemplo: /home/larry# cp /etc/s* /home/larry copia todos os arquivos comeando com "s" para o diretrio "/home/larry". O formato do comado cp cp {arq1} {arq2} {arq3} ...{arqN} {destino} onde {arq1} at {arqN} uma lista de nomes de arquivos a copiar, e destino o arquivo ou diretrio destino. "mv" tem uma sintaxe idntica. Se voc est copiando ou movendo mais de um arquivo, o destino deve ser um diretrio. Voc somente pode copiar ou mover um nico arquivo para outro arquivo.

11.3 Redirecionamentos e pipes


11.3.1 Entrada padro e sada padro

Muitos comandos no Linux recebem dados de entrada pelo que chamamos entrada padro (standard input) e do sada na sada padro (standard output) - freqentemente abreviadas para stdin e stdout. O shell trabalha de forma a que sua stdin seja o teclado e sua stdout seja a tela. Segue um exemplo usando o comando cat. Normalmente, o cat l dados de todos os arquivos especificados na linha de comando e envia dados diretamente para a stdout (normalmente sua tela). Assim, o comando /home/larry/papers# cat history-final masters-thesis mostra o contedo do arquivo history-final seguido pelo contedo do arquivo masters-thesis No entanto, se voc no especifica um nome de arquivo, o cat l dados da stdin e manda dados para a stdout. Veja o exemplo: /home/larry/papers# cat Hello there. Hello there. Bye. Bye. {Ctrl-D}

82

/home/larry/papers# Cada linha que voc digita imediatamente ecoada pelo cat. Quando estiver lendo da entrada padro, voc indica que a entrada "terminou" mandando um sinal de EOT (End-Of-Text - fim de texto) que, em geral, gerado ao pressionar Ctrl-D. Aqui voc tem outro exemplo. O comando sort l linhas de texto (novamente, da stdin, a menos que voc especifique um ou mais nomes de arquivos) e manda-as ordenadas para a stdout. Tente o seguinte: /home/larry/papers# sort bananas carrots apples {Ctrl-D} apples bananas carrots /home/larry/papers# Agora voc pode ordenar sua lista de compras..... Linux til ou no ?

11.3.2

Redirecionando entrada e sada

Digamos que voc queira mandar a sada do sort para um arquivo, para gravar sua lista de compras no disco. O shell permite que voc redirecione a sada padro para um arquivo usando o smbolo ">". Veja como funciona: /home/larry/papers# sort > shopping-list bananas carrots apples {Ctrl-D} /home/larry/papers# Como voc pode notar, o resultado do comando sort no mostrado, mas sim gravado num arquivo chamado shopping-list. Vamos dar uma olhada no arquivo: /home/larry/papers# cat shopping-list apples bananas carrots /home/larry/papers# Agora voc pode ordenar sua lista de compras e salv-la tambm! Mas vamos supor que voc esteja armazenando a lista original no ordenada no 83

arquivo itens. Uma maneira de ordenar a informao e grav-la num arquivo seria dar ao comando sort o nome do arquivo a ser lido no lugar da stdin, e redirecionar a stdout assim como fizemos antes. Veja o exemplo: /home/larry/papers# sort itens > shopping-list /home/larry/papers# cat shopping-list apples bananas carrots /home/larry/papers# Entretanto, h outra forma de fazer isto. Alm de redirecionar a stdout, voc pode redirecionar a stdin tambm, usando o smbolo "<". /home/larry/papers# sort < itens apples bananas carrots /home/larry/papers# Tecnicamente, "sort < itens" equivalente a "sort itens", mas permite demonstrar o seguinte ponto: "sort < itens" se comporta como se os dados no arquivo "itens" tivessem sido digitados na stdin. O shell manipula o redirecionamento. O "sort" no recebeu o nome do arquivo itens para ler; tudo o que o sort sabe que recebeu uma lista da stdin, como se voc tivesse digitado todos os dados pelo teclado. Isso introduz o conceito de um filtro. Um filtro um programa que l dados da stdin, processa-os de alguma forma, e manda-os processados para a stdout. Usando redirecionamentos, stdin e stdout podem ser referenciados de arquivos. Como mencionado acima, stdin e stdout, por padro, se comportam como teclado e tela respectivamente. O "sort" um filtro simples. Ele ordena os dados de entrada e manda o resultdao para a sada padro. O "cat" ainda mais simples. Ele no faz nada com os dados de entrada. Simplesmente mostra o que l.

11.3.3

Redirecionamento de sada no -destrutivo

Usando ">" para redirecionar a sada para um arquivo destrutivo. Em outras palavras, o comando /home/larry/papers# ls > arquivo-lista sobreescreve o contedo do arquivo arquivo-lista. Se, no lugar de usar ">", voc usar o smbolo ">>", a sada adicionada ao final do arquivo dado ao invs de sobreescrev-lo. Por exemplo, /home/larry/papers# ls >> arquivo-lista anexa a sada do comando ls ao arquivo arquivo-lista.

84

Mantenha em mente que redirecionamentos e pipes so caractersticas do shell - que suporta o uso de ">", ">>" e "|". No tem nada a ver com os comandos mesmos.

11.3.4

Usando pipes

J demonstramos como usar o "sort" como um filtro. Entretanto, esses exemplos assumem que voc tenha dados armazenados em algum arquivo ou que v digitar os dados da entrada padro voc mesmo. E se os dados que voc quer ordenar vierem da sada de outro comando, por exemplo o ls? A opo -r do "sort" ordena os dados em ordem alfabtica reversa. Se voc quer listar os arquivos no diretrio corrente em ordem reversa, uma maneira de fazer isso seria: /home/larry/papers# ls english-list history-final masters-thesis notes Agora redirecione a sada do comando ls num arquivo chamado arquivolista: /home/larry/papers# ls > arquivo-lista /home/larry/papers# sort -r arquivo-lista notes masters-thesis history-final english-list /home/larry/papers# Assim voc gravou a sada do ls num arquivo, e ento rodou "sort -r" nesse arquivo. Mas isso incmodo e usa um arquivo temporrio para gravar os dados do ls. A soluo usar pipes. Essa uma caracterstica do shell que conecta uma srie de comandos. A stdout do primeiro comando enviada para a stdin do segundo comando. Neste caso, queremos mandar a stdout do ls para a stdin do sort. Use o smbolo "|" para criar um pipe, como segue: /home/larry/papers# ls | sort -r notes masters-thesis history-final english-list /home/larry/papers# Esse comando menor e mais fcil de digitar.

85

Veja outro exemplo til. O comando: /home/larry/papers# ls /usr/bin mostra uma longa lista de arquivos, a maioria dos quais voa pela tela to rpido que voc no consegue ler. Assim, vamos usar o more para mostrar uma lista de arquivos em /usr/bin. /home/larry/papers# ls /usr/bin | more Agora voc pode paginar a lista de arquivos como quiser. Mas a graa no termina aqui! Voc pode os pipes em mais de dois comandos seguidos. O comando "head" um filtro que mostra as primeiras linhas de uma entrada de dados (neste caso, vinda de um pipe). Se voc quer mostrar o ltimo arquivo em ordem alfabtica do diretrio corrente, use comandos como no exemplo: /home/larry/papers# ls | sort -r | head -1 notes /home/larry/papers# onde "head -1" mostra a primeira linha da entrada que recebe (neste caso, a lista ordenada em ordem reversa vinda do ls).

11.4 Personalizando seu ambiente


Um shell fornece muitos mecanismos para personalizar seu ambiente de trabalho. Como mencionado acima, um shell mais que um interpretador de comando - ele tambm uma poderosa linguagem de programao. Embora escrever scripts de shell seja um assunto extenso, gostaramos de introduzir algumas maneiras de como simplificar seu trabalho no sistema Linux pelo uso dessas funes avanadas do shell. Como mencionado antes, shells diferentes usam sintaxes diferentes para scripts. Por exemplo, o tcsh usa uma sintaxe parecida com a linguagem C, enquanto o Bourne shell usa outro tipo de sintaxe. Nesta seo, no vamos ver muitas diferenas entre os dois, mas vamos assumir que os scripts sejam executados na sintaxe do Bourne shell.

11.4.1

Variveis do shell e o ambiente

Um shell permite que voc define variveis, como a maioria das linguagens de programao. Uma varivel somente um dado ao qual associado um nome. O tcsh, assim como outros shells, usam diferentes mecanismos dos descritos aqui para definir variveis. Esta seo assume o uso de um uma sintaxe tipo Bourne shell. Veja a pgina do manual para o tcsh para outros detalhes. Quando voc determina um valor para uma varivel (usando o operador "="), voc pode acessar a varivel precedendo um caracter "$" ao nome da varivel, como demonstrado abaixo:

86

/home/larry# foo="hello there" A varivel foo recebe o valor "hello there". Voc pode se referenciar a esse valor pelo nome da varivel precedido por um caracter "$". Por exemplo, o comando /home/larry# echo $foo hello there /home/larry# produz o mesmo resultado que: /home/larry# echo "hello there" hello there /home/larry# Essas variveis so internas ao shell, o que significa que somente o shell pode acess-las. Isso pode ser til em scripts shell; se voc precisa guardar um nome de arquivo, por exemplo, pode armazen-lo numa varivel, como acima. O comando "set" mostra a lista de todas as variveis definidas no shell. Entretanto, o shell permite que voc exporte variveis para o ambiente. O ambiente o conjunto de variveis que so acessveis por todos os comandos que voc executa. Uma vez que voc defina uma varivel dentro do shell, se voc a exportar, ela tambm far parte do ambiente. Use o comando "export" para exportar uma varivel para o ambiente. Novamente, aqui h uma diferena entre o bash e tcsh. Se voc usa o tcsh, outra sintaxe usada para especificar variveis de ambiente (o comando "setenv" usado). Veja o manual do tcsh para mais informaes. O ambiente muito importanto para o sistema UNIX. Ele permite que voc configure certos comandos definindo variveis que esses comandos conhecem. Aqui temos um exemplo rpido. A varivel de ambiente PAGER usada pelo comando "man" e especifica o nome do comando para seu usado pelo "man" para mostrar uma tela de cada vez. Se voc setar a varivel PAGER para o nome de um comando, o "man" usar esse comando para paginar as telas, ao invs do "more" (que o padro). Atribua "cat" varivel PAGER. Isso faz com que a sada do "man" role pela tela, sem pausa entre as pginas. /home/larry# PAGER=cat Agora exporte PAGER para o ambiente /home/larry# export PAGER Tente o comando "man ls". A pgina do manual deve rolar pela sua tela sem pausa. Agora, se voc atribuir "more" varivel PAGER, o comando "more" ser usado para mostrar a pgina do manual.

87

/home/larry# PAGER=more Note que no temos que usar o comando "export" depois de termos mudado o valor de PAGER. S precisamos exportar uma varivel uma vez. Qualquer mudana feita varivel posteriormente ser automaticamente propagada para o ambiente. Freqentemente necessrio colocar as seqencias de caracteres entre aspas para previnir que o shell interprete vrios caracteres como especiais. Por exemplo, voc tem que colocar aspas em strings que contenham "*", "?", espaos, etc. H muitos outros caracteres que precisam ser protegidos de interpretao do shell. Uma explicao detalhada descrita no Bourne Shell Tutorial da SSC. As pginas de manual para um comando particular indicam se esse comando usa alguma varivel de ambiente. Por exemplo, a pgina de manual do "man" explica que a varivel PAGER usada para especificar o comando paginador. Alguns comandos compartilham variveis de ambiente. Por exemplo, muitos comandos usam a varivel de ambiente EDITOR para especificar o editor padro a ser usado quando um necessrio. O ambiente tambm usado para informaes importantes sobre a sesso de login. Um exemplo a varivel de ambiente HOME, que contm o nome do seu diretrio home. /home/larry/papers# echo $HOME /home/larry Outra varivel interessante PS1, que define o prompt principal do shell. Por exemplo: /home/larry# PS1="Your command, please: " Your command, please: Para definir o prompt como antes (que contm o diretrio de trabalho corrente seguido pelo smbolo "#"), Your command, please: PS1="\w# " /home/larry# A pgina de manual do bash descreve a sintaxe usada para definir o prompt. 11.4.1.1 A varivel de ambiente PATH

Quando voc usa o comando "ls", como o shell sabe onde encontrar o executvel "ls"? De fato, o "ls" est no diretrio /bin, na maioria dos sistemas. O shell usa a varivel de ambiente PATH para localizar o arquivo executvel para o comando que voc digitou. Por exemplo, sua varivel PATH pode ser definida como: /bin:/usr/bin:/usr/local/bin:. 88

Esta uma lista de diretrios para o shell procurar. Cada diretrio est separado por um ":". Quando voc usa o comando ls, o shell olha primeiramente em "/bin/ls", e ento em "/usr/bin/ls", e assim por diante. Note que o PATH no tem nada a ver com arquivos regulares (de texto, por exemplo). Por exemplo, se voc usa o comando: /home/larry# cp foo bar o shell no usa o PATH para localizar os arquivos foo e bar - esses nomes de arquivos so assumidos como caminhos completos. O shell s usa o PATH para localizar o executvel "cp". Isso economiza seu tempo, e voc no precisa estar lembrando onde todos os executveis esto armazenados. Em muitos sistemas, os executveis esto espalhados em muitos lugares, como em /usr/bin, /bin ou /usr/local/bin. Ao invs de dar o caminho completo para o comando (como /usr/bin/cp), voc pode definir o PATH como uma lista de diretrios onde voc quer que o shell procure automaticamente. Note que o PATH contm ".", o que significa o diretrio de trabalho corrente. Isso permite que voc crie scripts de shell ou programas e rode-os como um comando do seu diretrio de trabalho corrente, sem ter que especific-lo diretamente (como em "./makebook"). Se um diretrio no est no seu PATH, o shell no vai procurar nesse diretrio por comandos que devem ser rodados; essa regra inclui tambm o diretrio de trabalho corrente.

11.4.2

Scripts de inicializao do Shell

Alm de scripts de shell que voc cria, h uma srie de scripts que o shell usa para certos propsitos. Os mais importantes so os scripts de inicializao, que so scripts executados pelo shell quando voc d login. Os scripts de inicializao so bem simples. Entretanto, eles inicializam seu ambiente executando comandos automaticamente quando voc loga. Se voc sempre usa o comando "mail" para verificar seus e-mails quando entra, voc pode colocar esse comando no script de inicializao para execut-lo automaticamente. Tanto o bash quanto o tcsh fazem distino entre um login shell e outras invocaes do shell. Um login shell o shell chamado quando voc entra no sistema. Usualmente o nico shell que voc usa. Entretanto, se voc chama um shell de dentro do vi, por exemplo, voc inicia uma nova instncia do shell, que no seu shell de login. Alm disso, cada vez que voc roda um script de shell, voc automaticamente inicia outra instncia do shell para executar o script. Os arquivos de inicializao usados pelo bash so: /etc/profile (configurado pelo administrador do sistema e executado por todos os usurios do bash no momento do login), $HOME/.bash_profile (executado por uma sesso de login do bash), e $HOME/.bashrc (executado por todas as instncias do bash que no sejam de login). Se o .bash_profile no est presente, o ".profile" usado no lugar. O tcsh usa os seguintes scripts de inicializao: /etc/csh.login (executado por todos os usurios do tcsh no momento do login), $HOME/.tcshrc (executado no momento do login e a cada nova instncia do

89

tcsh), e $HOME/.login (executado no momento do login, aps o .tcshrc). Se o ".tcshrc" no est presente, o ".cshrc" usado no lugar. Um guia completo de programao shell estaria alm do escopo deste livro. Veja as pginas do manual para o bash e o tcsh para aprender mais sobre personalizar o ambiente Linux.

90

12 CONTROLE DE TAREFAS

12.1 Tarefas e Processos


Controle de Tarefas (jobs) uma caracterstica oferecida por vrios shells (incluindo o bash e o tcsh) que permite que voc controle mltiplos comandos que esto rodando (as tarefas) ao mesmo tempo. Antes de aprofundar-nos mais, precisamos falar sobre processos. Cada vez que voc roda um programa, voc inicia o que chamado de um processo. O comando "ps" mostra uma lista de processos rodando no momento, como mostrado aqui. /home/larry# ps PID TT STAT TIME COMMAND 24 3 S 0:03 (bash) 161 3 R 0:00 ps /home/larry# O PID listado na primeira coluna o que chamamos de ID do processo (ou identificao), um nmero nico dado a cada processo que est rodando. A ltima coluna, COMMAND, o nome do comando que est rodando. Aqui, estamos vendo somente os processos que o Larry est rodando (h muitos outros processos roddando no sistema tambm - "ps -aux" lista todos). Eles so o bash (o shell do Larry), e o prprio comando "ps". Como voc pode ver, bash est rodando concorrentemente com o comando ps. O bash executou o ps quando o Larry digitou o comando. Depois que o ps terminar de rodar (somente depois que a tabela de processos mostrada), o controle retornado ao processo bash, que mostra o prompt, pronto para outro comando. Um processo rodando tambm chamado de uma tarefa. Os termos processos e tarefas so intercambiveis. Entretanto, um processo usualmente referido com o uma terefa quando usado em conjunto com controle de tarefas - uma caracterstica do shell que permite chavear entre vrias tarefas independentes. Na maioria dos casos, os usurios rodam somente uma tarefa de cada vez - qualquer comando que eles tenha digitado no shell. Entretanto, usando controle de tarefas, voc pode rodar vrias tarefas de uma s vez, e chavear entre elas quando necessrio. Como isto pode ser til? Vamos assumir que voc esteja editando um arquivo texto e quer interromper sua edio para fazer alguma outra coisa. Com controle de tarefas, voc pode suspender temporariamente o editor, voltar para o prompt do shell e iniciar algum outro trabalho. Quando terminar, voc pode chavear novamente para o editor e voltar para onde estava, como se no tivesse sado dele. H muitos outros usos prticos do controle de tarefas.

91

12.2 Foreground and background


As tarefas podem ser em foreground (primeiro plano) ou em background (segundo plano). S pode haver uma tarefa em primeiro plano por vez. A tarefa em primeiro plano aquela com a qual voc interage - ela recebe entradas do teclado e envia sada para a sua tela, a menos, claro, que voc tenha redirecionado a entrada ou sada, como descrito anteriormente. Por outro lado, tarefas em segundo plano no recebem entradas do terminal em geral, elas rodam em silncio sem necessidade de interao. Algumas tarefas levam um bom tempo para terminar e no fazem nada interessante enquanto rodao. Compilao de programas uma dessas tarefas, assim como compactar um grande arquivo. No h razes para que voc fique sentado esperando que essas tarefas terminem; basta rod-las em segundo plano. Enquanto as tarefas rodam em segundo plano, voc est livre para rodar outros programas. Tarefas tambm podem ser suspensas. Uma tarefa suspensa uma tarefa que est temporariamente parada. Depois que voc suspende uma tarefa, voc pode solicitar que ela continue em primeiro ou segundo plano, conforme necessrio. Resumir uma tarefa suspensa no muda o estado da tarefa de nenhuma forma - a tarefa continua rodando de onde ela parou. Suspender uma tarefa no igual a interromper uma tarefa. Quando voc interrompe um processo rodando (pressionando a tecla de interrupo, que usualmente o Ctrl-C), o processo morto, para sempre. Uma vez que a tarefa abortada, no h como retornar para ela. Voc ter que rodar o comando novamente. Alm disso, alguns programas capturam a interrupo, e pressionando Ctrl-C no vai abortar imediatamente a tarefa. Isso permite que o programa execute funes para sair de forma limpa antes de terminar. Ainda, alguns programas no permitem que voc os aborte com uma interrupo.

12.3 Colocando tarefas em segundo plano e abortando tarefas


Vamos comear com um exemplo simples. O comando "yes" aparentemente um comando intil que manda uma lista sem fim de "y"s para a sada padro. (Na verdade ele til se voc fizer um pipe com ele na sada de outro programa que pergunta uma srie de perguntas "yes" ou "no" e voc quer confirmar todas elas). Tente: /home/larry# yes y y y y y y y

92

Os y's vo continuar infinitamente. Voc pode matar o processo pressionando a tecla de interrupo (Ctrl-C). Para que voc no tenha que lidar com uma lista inoportuna de y's, vamos redirecionar a sada padro do "yes" para /dev/null. Como voc pode lembrar, /dev/null age como um "buraco negro" para os dados. Qualquer dado mandado para /dev/null desaparece. Esse um mtodo efetivo de calar um programa que "fala" muito. /home/larry# yes > /dev/null Ah, bem melhor! Nada impresso, mas o prompt do shell no volta. Isso porque o "yes" ainda est rodando, e mandando uma monte desses y's inteis para o /dev/null. Novamente, para matar a tarefa, pressione a tecla de interrupo. Vamos supor que voc queira que o comando "yes" continue rodando, mas quer ter o prompt do shell de volta para que possa continuar trabalhando. Voc pode colocar o "yes" em segundo plano, permitindo que ele rode e sem que voc tenha que interagir. Uma maneira de colocar o processo em segundo plano anexar um caracter "&" no fim da linha de comando. /home/larry# yes > /dev/null & [1] 164 /home/larry# Como voc pode ver, o prompt do shell retornou. Mas o que esse "[1] 164"? E o comando yes est realmente rodando? O "[1]" representa o nmero da tarefa para processo yes. O shell determina um nmero de tarefa para cada tarefa rodando. Como o yes o primeiro e nico arquivo que ns estamos rodando, ele recebe o nmero de tarefa 1. O "164" o ID do processo, ou PID (process id), nmero dado pelo sistema para a tarefa. Voc pode usar qualquer dos dois nmeros para fazer referncia tarefa, como vamos ver mais tarde. Agora voc tem o processo "yes" rodando em segundo plano, mandando continuamente uma lista de y's para o /dev/null. Para verificar o estado do processo, use o comando interno do shell, "jobs". /home/larry# jobs [1]+ Running yes > /dev/null & /home/larry# Com certeza, l estar ele. Voc tambm pode usar o comando ps, como demonstrado acima para verificar o estado da tarefa. Para matar a tarefa, use o comando kill. Esse comando recebe o nmero da tarefa ou o ID do process como um argumento. Esse era a tarefa de nmero 1, assim, usando o comando: /home/larry# kill %1 mata a tarefa. Quando identificar uma tarefa pelo nmero de tarefa, voc deve usar o caracter de percentagem (%) como prefixo ao nmero. 93

Agora que voc matou a tarefa, use o comando jobs novamente para verificar seu estado. /home/larry# jobs [1]+ Terminated yes > /dev/null & /home/larry# A tarefa est, de fato, morta, e se voc usar o comando jobs ainda mais uma vez, nada deve ser mostrado. Voc tambm pode matar uma tarefa usando o PID do processo, mostrado junto com o nmero da tarefa quando voc a iniciou. Em nosso exemplo, o ID do processo 164, ento o comando: /home/larry# kill 164 equivalente ao /home/larry# kill %1 Voc no deve usar o caracter "%" quando fizer referncia a uma tarefa pelo ID do processo.

12.4 Parando reiniciando tarefas


H outra forma de colocar uma tarefa em segundo plano. Voc pode iniciar uma tarefa normalmente (em primeiro plano), parar o processo, e ento reinici-lo em segundo plano. Primeiro, inicie o processo yes em primeiro plano, como voc fez antes: /home/larry# yes > /dev/null Novamente, como o yes est rodando em primeiro plano, voc no vai receber o prompt do shell de volta. Agora, ao invs de interromper o processo com Ctrl-C, suspenda a tarefa. Suspender uma tarefa no a aborta. Somente a pra temporariamente at que voc a reinicie. Para fazer isso, pressione a tecla de suspender, que normalmente Ctrl-Z. /home/larry# yes > /dev/null {Ctrl-Z} [1]+ Stopped yes > /dev/null /home/larry# Enquanto a tarefa estiver suspensa, ela simplesmente no est rodando. Nenhum tempo de CPU usado para a tarefa. No entanto, voc pode reinicila, o que causa que a tarefa continue rodando, como se nada tivesse acontecido. Ela continuara de onde havia parado. Para reiniciar uma tarefa em primeiro plano, use o comando "fg" (do ingls, foreground).

94

/home/larry# fg yes > /dev/null O shell mostra o nome do comando novamente para que voc saiba qual tarefa voc colocou em primeiro plano. Pare a tarefa novamente com CtrlZ. Desta vez, use o comando "bg" para colocar a tarefa em segundo plano. Isso faz com que o comando rode como se voc o tivesse iniciado com o caracter "&" (ver seo anterior). /home/larry# bg [1]+ yes > /dev/null & /home/larry# E voc vai ter o prompt de volta. O comando "jobs" tambm deve mostrar que o "yes" est rodando, e voc pode matar a tarefa com o kill, como fez antes. Como voc pode parar a tarefa novamente? Usar o Ctrl-Z no vai funcionar, pois a tarefa est em segundo plano. A resposta colocar a tarefa em primeiro plano com fg, e s ento par-la. Como voc deve ter notado, pode usar o fg tanto em processos parados como em processos em segundo plano. Essa uma grande diferena entre uma tarefa em segundo plano e uma tarefa que est parada. Uma tarefa parada no est rodando - ela no est usando nenhum tempo de CPU, e no est fazendo qualquer trabalho (a tarefa ainda ocupa memria do sistema, embora ele pode ter sido jogado para swap no disco). Uma tarefa em segundo plano est rodando e usando memria, bem como completando algum servio enquanto voc faz outro trabalho. Entretanto, uma tarefa em segundo plano pode tentar exibir texto em seu terminal, o que pode ser incmodo se voc est tentando trabalhar em alguma outra coisa. Por exemplo, se voc usar o comando: /home/larry# yes & sem redirecionar a stdout para /dev/null, uma lista de y's ser mostrada na sua tela, sem que voc tenha uma maneira de interromp-la. (Voc no pode usar o Ctrl-C para interromper tarefas em segundo plano). Para parar essa lista infinita de y's, use o comando "fg" para trazer a tarefa para primeiro plano, e depois use o Ctrl-C para mat-la. Outra nota: os comandos fg e bg normalmente afetam as a ltima tarefa parada (indicada por um "+" seguindo o nmero da tarefa quando voc usa o comando jobs). Se voc estiver rodando mltiplas tarefas de uma vez, voc pode colocar tarefas em primeiro ou segundo plano fornecendo o nmero da tarefa como argumento aos comandos fg ou bg, com no exemplo: /home/larry# fg %2 (coloca a tarefa 2 em primeiro plano), ou /home/larry# bg %3

95

(coloca a tarefa 3 em segundo plano). Voc no pode usar o ID do processo com fg ou bg. Alm disto, usando o nmero da tarefa somente, como em: /home/larry# %2 equivalente a /home/larry# fg %2 Lembre-se que o controle de tarefas uma funo do shell. Os comandos fg, bg e jobs so internos ao shell. Se, por alguma razo, voc usa um shell que no suporta controle de tarefas, no espere encontrar esses comandos disponveis. H, tambm, alguns aspectos que diferem entre os controles de tarefas do bash e tcsh. De fato, alguns shell no fornecem controle de tarefas entretanto, a maioria dos shells disponveis para Linux fornece.

96

13 OBTENDO E INSTALANDO O LINUX


David Bandel reescreveu e revisou a primeira seo sobre instalao do Linux. Partes do trabalho dos seguintes autores de diferentes sees de distribuies Linux tambm foram adicionadas primeira verso. Boris Beletsky escreveu a seo Debian; Sea n Dreilinger, a Slackware; Henry Pierce, a Red Hat; Evan Leibovitch a seo Caldera OpenLinux e Larry Ayers a seo S.u.S.E. Linux.

13.1 Instalao Genrica


Ao contrrio de outros sistemas operacionais, o Linux pode ser obtido sem nenhum custo. Como distribudo protegido pela GNU GPL, no so vendidas licenas do software. Voc pode usar Linux sem custo e recomendamos que ajude na sua distribuio. Isto no significa que empresas no possam lucrar com a distribuio do Linux. Elas podem inclusive adicionar outros software, que no so livres, junto em uma distribuio. Isto lhe d a liberdade de escolha. Se voc no pode pagar por um CDROM, pode simplesmente copiar de um amigo ou fazer um download da Internet. Tanto comprando de um distribuidor ou fazendo um download de um site de FTP, voc vai ter o mesmo sistema operacional rodando e os pacotes oferecidos. Na verdade, voc pode conseguir mais softwares livres de um site de FTP do que atravs de empresas que distribuem em CD devido s restries que alguns autores impem distribuio de seus softwares.

13.1.1

Principais distribuies Linux

Uma viso aprofundada de algumas distribuies Linux inicia na seo "Distribuies Linux". Essas distribuies so: Debian, Red Hat, Caldera, Slackware e S.u.S.E. Cada seo tem informao sobre onde conseguir cada distribuio. Mas lembre-se, o kernel Linux. O sofware parte da distribuio, no do Linux. A maior parte do software est disponvel livremente e pode ser portada para vrios outros UNIX. A principal diferena est no suporte de vrias bibliotecas (software chamado por cada aplicao). Cada distribuio tem suas prprias ferramentas de instalao e manuteno que ajudam na instalao e manuteno do sistema. Cada uma aparentemente voltada para um pblico diferente. Com qualquer uma voc pode instalar e rodar o Linux. Assim, eu recomendo que voc leia sobre cada uma delas e toque idias com amigos experimentados. Normalmente, grandes cidades tm grupos de Linux, a maioria com usurios experientes, que defendem por que cada distribuio melhor. Eu sugiro que voc escute alguns argumentos e decida. Voc tambm pode consultar listas de e-mail (prefira assinar uma de cada vez) e ler o que outros usurios comentaram e as respostas dos gurus Linux. Assim como as distribuies so bem diferentes, tambm so variadas as listas de discusso. Parar para fazer a melhor escolha importante, porque trocar a distribuio normalmente significa reinstalar tudo do zero.

97

13.1.2

Planejamento bsico
tem um computador com MS-DOS e Windows ou OS/2; tenha um entendimento bsico do MS-DOS, mas no do Linux; saiba ou possa vir a saber que tipo de hardware est instalado no seu computador; tenha desejo de "tentar" usar o Linux, por qualquer razo, nem sempre para mudar o sistema definitivamente (ainda), e no tenha uma mquina sobrando ou outro disco rgido, mas vrias centenas de MegaBytes livres para uso.

Esta seo assume que o novo usurio Linux:

Estas suposies no so extremas e podem at ser um pouco conservadoras. Alguns dizem que se seu vdeo cassete pisca 12:00, Linux no para voc, mas isto me deixaria do lado de fora tambm. Meu vdeo cassete pisca 12:00. Antes de iniciarmos, devemos saber aonde queremos chegar.Ainda que seja possvel chegar de Nova Iorque a California tentando qualquer via aleatoriamente, a maioria optaria em seguir a rota mais direta. Da mesma forma para instalar o Linux.

13.1.3

Hardware

Esta seo explica os passos necessrios antes da instalao. Cada distribuio cobre esta preparao de forma levemente diferente. Ainda que as instalaes paream diferentes, elas satisfazem s mesmas necessidades e tm mais em comum do que pode parecer. Todas requerem:

planejamento; obter informaes do hardware do sistema; fazer cpia de segurana do sistema antigo (opcional, mas fortemente recomendado); preparar parties Linux; decidir qual boot loader instalar (para sistemas com dual boot); dar boot no kernel do Linux; instalar o kernel; escolher e instalar pacotes de software; carregar o software; fazer a configurao final e ajustes; e reiniciar e rodar o sistema.

Agora que descompliquei suficientemente o processo, vamos aprofundar-nos nas etapas. Espere antes de instalar. No m idia aprender com os erros dos outros.

98

13.1.4

Planejamento

No vamos exagerar nesta etapa. Qualquer piloto diria que a aterrisagem vai depender da aproximao. O mesmo vale para o Linux. Primeiramente temos que determinar que tipo de hardware voc tem. Um checklist foi includo para assisti-lo. Seja to preciso quanto possvel, sem exageros. Por exemplo, se voc tem uma placa de rede, voc precisa saber qual tipo (ex: SMC-Ultra, 3 Com 3C509, etc), endereo de I/O (ex: io=0x300), interrupo (IRQ 10), mas no o endereo de hardware (ex: 00 00 a6 27 bf 3c). Nem toda a informao sobre o hardware necessria. Se voc tem Windows 95 ou NT rodando, voc pode conseguir alguns dados pela janela de "Propriedades do Sistema". Fora isso, consulte os manuais de hardware ou o site das empresas fabricantes. Como muito importante, vamos revisar esta planilha.

13.1.5

Planilha para planejamento do sistema

Os campos sublinhados, na planilha abaixo, so exemplos de uma configurao hipottica. Os campos entre parnteses so exemplos de respostas vlidas. Planilha Geral: Processador: Tipo: 386 486 Pentium PPro Velocidade (opcional): Fabricante: Intel/AMD/Cyrix/... Placa Me: Fabricante: desconhecido Chip Set:: triton II Mouse: Fabricante: Tipo: bus PS/2 porta serial Interface serial: COM1 (ttyS0) , COM2 (ttyS1) HD(s): Tipo: IDE/MFM/RLL/ESDI/SCSI Tamanho (liste cada disco): Controlador SCSI (se houver): Fabricante: BusLogic Modelo: 948 Boot: (Linux - DOS/Windows - OS/2 - Outro) Disco: Partio: Tamanho: Disco: Partio: Tamanho: Disco: Partio: Tamanho: Disco: Partio: Tamanho: CD-ROM: (IDE/ATAPI - SCSI - Outro)

Boot: Boot: Boot: Boot:

99

Fabricante: Modelo: X-Windows: Placa de vdeo: Mfg: Model: Memria da placa: (8Mb/16Mb/32Mb/64Mb) Monitor: Fabricante: Modelo: Max taxa de refresh: Rede: Modem: Fabricante: Modelo: Porta serial: COM1: ttyS0 COM2: ttyS1 COM3: ttyS2 COM4: ttyS3 Nome do computador: Aguia As prximas respostas so necessrias somente se voc estiver usando uma placa de rede (NIC - network interface card). No configure a rede se voc no tiver uma placa de rede instalada. Tipo de NIC: (Ethernet - Token Ring - FDDI - outro) Fabricante do NIC: Modelo: Nome do domnio da rede: aves.net Endereo IP: 192.168.1.2 Endereo de rede: 192.168.1.0 Mscara: 255.255.255.0 Endereo de Broadcast: 192.168.1.255 Gateway(s): (none - 192.168.1.1) DNS(s): 192.168.1.2 Algumas das informaes, na seo Planilha Geral, foram colocadas para referncia futura somente. Especificamente, no precisamos saber agora o tipo de processador. Tambm podemos continuar sem saber o chip set da placa me. Mas se a informao existir, bom que a tenhamos.

100

13.1.6

Mouse

Outras informaes, como o tipo de mouse, so necessrias (se voc quiser usar o mouse, claro). Vamos precisar conhecer o fabricante do mouse porque h diferenas na implementao de como os sinais so tratados. Aqui, ateno ao detalhe essencial. Se voc tem um mouse Microsoft, ele ainda pode ter uma interface serial ou PS/2. Observando o conector atrs do computador pode no ser suficiente. Vrios computadores vm com um mouse que parece serial, mas esto conectados internamente a uma porta PS/2 na placa me. Leia o que est impressa em baixo do mouse cuidadosamente antes de decidir. Observe tambm se h uma chavezinha na parte de baixo, dizendo Micrososft / PC systems. Nesse caso, prefira PC systems. A configurao Microsoft no suporta o boto do meio, que pode ser til no UNIX. Talvez voc precise saber outra informao adicional que no listamos acima: o dispositivo (device) pelo qual o sistema acessa o mouse. O Linux deve saber como o device ser chamado. Se voc tem um PS/2, provavelmente usar /dev/psaux , ou ainda /dev/psmouse . Para mouses seriais, se voc conhece as portas COM1: e COM2: do MS-DOS, substitua-as por /dev/ttyS0 e /dev/ttyS1 respectivamente. Vou evitar explicar ar origens do nome tty , pois isso consumiria vrios pargrafos e j coberto em outros livros UNIX.

13.1.7

Discos Rgidos (HDs) e CD -ROMs

Antes de comear a instalao, voc precisa decidir quanto espao do seu disco voc vai dedicar ao Linux e saber de quanto dispe. Decidindo durante a instalao voc estar procurando por problemas e acabar perdendo mais tempo, talvez dados e ainda ter que reinstalar tudo. Seu disco pode ser de vrios tipos. Para nossos propsitos, IDE, MFM, RLL e ESDI so equivalentes, e eu usarei somente o termo IDE. Este tambm engloba o EIDE, a interface mais comum em uso hoje em dia, favorecida pelo baixo custo. Se seu disco tem interface SCSI, ser evidente durante o boot. Voc dever conhecer o fabricante e modelo do controlador SCSI. Os controladores mais comuns so Adaptec e BusLogic, mas no so os nicos. Estes tambm tm modelos especficos, como AHA-1572 ou BTC-958. Esta informao freqentemente mostrada durante a inicializao. Para reservar espao, precisamos saber o tamanho do disco rgido. Se voc tem MS-DOS ou Windows, ou OS/2 no seu computador, o Linux deve ter uma partio separada. Ele pode ser carregado numa partio MS-DOS com UMSDOS, mas no falaremos sobre isso. O Linux tem emuladores DOS que pode ler e at mesmo rodar alguns programas DOS e o DOS usualmente pode "ver" o que h numa partio Linux. Se voc tem e quer manter o MS-DOS (assume-se), precisamos determinar quanto espao vai ser reservado para ele. Subtraia este nmero do tamanho total do disco e guarde o restante. Por agora, anote o tamanho total do disco e o segundo nmero com o tamanho total que dedicar ao Linux.

101

Para um drive de CD-ROM voc vai precisar informaes similares. Ele pode ser IDE/ATAPI (o mais comum em sistemas atuais), SCSI, ou um antigo, com controlador proprietrio, como esses que vinham com placas de som. Se voc tiver um IDE ou SCSI, melhor. Se tiver um proprietrio, precisar conhecer o fabricante e modelo para que o Linux possa reconhec-lo.

13.1.8

Discos no Linux

Para novatos no Linux que esto familiarizados somente com MS-DOS, e para aqueles que vm de plataformas UNIX, dispositivos (devices) no Linux tm referncias peculiares. Estas referncias so usadas quase desde o incio e entend-las um pouco necessrio. No Linux, assim como em qualquer UNIX, devices so arquivos especiais. Discos rgidos so tratados como arquivos e referenciados por nomes, assim como os modens, monitores, e outros dispositivos de hardware. UNIX trata os dispositivos como arquivos de onde se l e grava informao. Como o Linux os v como arquivos, eles estaro localizados em um diretrio dedicado aos dispositivos. Aps a instalao voc poder v-los sob o diretrio /dev, que vem do ingls, devices. Mesmo vistos pelo Linux como arquivos, eles so especiais. Podem vir em dois "sabores" (tipos): block ou character, que fazem referncia ao modo como o dispositivo se comunica: em blocos de dados ou caracteres individuais. Os dispositivos so criados automaticamente durante a instalao. (......)

13.1.9

Instalando o X Window

Inclu na planilha informaes sobre sua placa de vdeo e monitor. Mesmo no sendo absolutamente necessrio, muitos dos que vm do mundo Windows querem instalar e configurar uma interface grfica (GUI - graphical user interface). Algumas distribuies j fazem essa instalao, outras fornecem pacotes para instalar posteriormente. Nesse caso, a informao sobre o seu hardware ser importante. Voc dever saber o fabricante e modelo especfico de sua placa de vdeo. Algumas placas podem ser identificadas por software, outras no. De qualquer forma, conhecer quanta memria RAM tem a placa e o chip set usado (ex: S3, S3-Virge), importante. Esta informao economiza muito tempo e sofrimento. A parte mais difcil e frustrante de qualquer instalao Linux a instalao do X Window. A informao do seu monitor pode ser um pouco mais difcil de obter. Se voc tem um uma marca desconhecida, pode ter de fornecer as taxas de refresh horizontal e vertical por conta prpria. Se estiver em dvida, seja conservador. Se voc usar uma taxa maior do que seu monitor suporta, pode queimar o monitor ou a placa de vdeo. Sobre o mouse, outro dispositivo que o X usa, j recolhemos a informao necessria na seo 2.1.7.

102

13.1.10

Hardware de rede

Esta seo no to significante quanto a planilha pode sugerir. (......). No entanto, se voc tem uma placa de rede (NIC), seja ela Ethernet, token ring ou outra, deve conhec-la antes de continuar. Esta informao ser necessria durante a instalao para que voc possa usar a placa no futuro. Durante a instalao inicial do Linux voc no precisa ter um NIC. Voc pode pular algumas partes sobre rede. No entanto, todos os computadores devem ter um nome no Linux. O exemplo na planilha assume que voc tenha escolhido um assunto, aves, por exemplo, e voc vai nomear os computadores nesse grupo, mas qualquer esquema que voc inventar est ok. Se voc tem um modem, deve saber onde ele est conectado. As portas seriais, /dev/ttyS0 at /dev/ttyS3 , correspondem s portas COM: 1 at 4 do MS-DOS ou Windows. Isto termina nossa planilha sobre a metade do planejamento que precisamos fazer. Note-se que no est na nossa planilha o total de memria RAM que o sistema tem. Felizmente, o Linux pode rodar com sistemas que tenham at menos de 4MB de RAM, mas isto vai ser penoso para a instalao e qualquer uso subseqente. Se voc tem 4MB de RAM ou menos, dever seguir procedimentos especiais para mquinas com pouca memria.

13.1.11

Planejamento, Parte 2

Partes da seo seguinte, particularmente sobre estratgias de particionamento, so bem controversas para instaladores experientes, mas eu darei minhas dicas. Se voc se sentir vontade, poder adotar seus prprios critrios. Creio que a maior parte das diferenas de opinio advm dos diferentes propsitos para o sistema, ex: uma estao de trabalho, um servidor Web, um servidor de News, ou outra funo.

13.1.12

Estratgias de particionamento

Poucos usurios experientes do Linux vo aconselh-lo a criar uma partio Linux nativa e uma partio de swap e iniciar a instalao. H muitos motivos para isso, e eu compartilho com eles. Assim, eu crio vrias parties nativas Linux. Para mim, a razo mais convincente que um dia voc vai querer fazer um upgrade no sistema, o que vai requerer uma reformatao do sistema de arquivos.A distribuio Slackware, por exemplo, no permito um upgrade do sistema instalado, e no parece que ter no futuro. No upgrade do kernel 0.99 para o 1.2.13 tive que reformatar tudo, e assim tambm foi no upgrade do 1.2.13 para o 2.0.0. Certamente nunca vou querer perder os arquivos que acumulei no meu diretrio home. Claro que tenho uma cpia de segurana, mas mantendo meu /home intacto mais fcil, especialmente se eu tenho todos os meus arquivos especiais em um sudiretrio l. Outra razo que cada partio de boot deve estar dentro dos primeiros 1024 cilindros do disco. Quando um PC inicializa, uma seqencia de eventos ocorre que terminam com o carregamento do sistema operacional. Devido a limitaes na BIOS (Basic Input/Output System), at que o sistema seja carregado, somente os primeiros 1024 cilindros do primeiro ou segundo disco

103

rgido podem ser acessados. Para sentir do que estamos falando, vou descrever um sistema de arquivos Linux padro e como o Linux lida com parties. No MS-DOS ou Windows, cada partio um drive diferente, e pouca distino feita se se trata de um dispositivo fsico ou lgico (partio). No Linux, dispositivos fsicos e lgicos so muito menos rigidamente definidos. Durante a instalao, voc deve escolher qual partio ser sua partio root (principal ou raiz). A partio root definida com "/". Quando nos referenciamos a "/dev" estamos falando de dois diretrios, "/" e "dev". O kernel do Linux estar localizado na partio root, podenso ser num subdiretrio, desdee que este subdiretrio esteja na partio root. Algumas distribuies, por exemplo, usam /boot para guardar o kernel e outros arquivos de inicializao. A seguinte estrutura (no mnimo) ser criada na sua partio root durante a instalao: /bin /dev /etc /home /lib /lost+found /proc /root /sbin /usr /var Voc poder encontrar outras, como /boot, /mnt, /cdrom , /floppy, /opt, etc, mas as mostradas acima so essenciais. E sobre outras parties? O Linux pode usar um nome de diretrio (/usr, por exemplo), como um mount point (ponto de montagem). Isso significa que a outra partio no disco (ou mesmo em outro disco) est montada, neste caso, em /usr. Se voc desmonta uma partio e olha no subdiretrio que o Linux usa como ponto de montagem, voc vai (ou deveria) v-lo vazio, sem arquivos ou outros diretrios. Quando a partio montada, voc vai ver os arquivos e diretrios que esto naquela partio. Assim, se voc tem dois discos, um com 120MB e outro com 840MB, voc pode fazer uma partio no de 120MB (pode ser a partio root) e montar quaisquer parties que voc tenha criado no de 840MB (pode ser uma s ou vrias pequenas parties) nos respectivos pontos de montagem, uma partio por ponto de montagem, criando, efetivamente, um sistema com 960MB. A restrio que voc no pode usar certos diretrios, que esto no disco root, como pontos de montagem, pois eles contm arquivos que so necessrios ao boot ou para montar outros sistemas. Obviamente se o comando usado para montar outras parties est localizado em outra partio 104

e voc no pode acessar essa partio at que voc a tenha montado, voc estar como um co correndo atrs do seu rabo. Os diretrios que no podem ser usados como pontos de montagem so: /bin, /dev, /etc, /lib, /lost+found , /proc, /root , e /sbin. (......) Vamos olhar um pequeno exemplo. Voc quer montar um provedor de acesso Internet (ISP - Internet Service Provider). Voc tem quatro mquinas, cada uma com um 1GB de disco. Voc decide, ento, dividir o espao da seguinte forma: mquina A: / = 120MB /usr = resto do disco (exportado) /home = 0 - montado da mquina B /var/news = 0 - montado da mquina C /var/spool/mail = 0 - montado da mquina D mquina B: / = 120MB /usr = 0 - montado da mquina A /home = resto do drive (exportado) /var/news = 0 - montado da mquina C /var/spool/mail = 0 - montado da mquina D mquina C: / = 120MB /usr = 0 - montado da mquina A /home = 0 - montado da mquina B /var/news = resto do disco (exportado) /var/spool/mail = 0 - montado da mquina D mquina D: (exerccio - monte a tabela) Voc provavelmente notou que eu arbitrariamente reservei 120MB para a partio de root e defini o resto para as outras ( /usr, /home , /var/spool/mail e assim por diante). Eu tambm no reservei qualquer espao para uma partio de swap. Assim, vamos dar uma olhada no que vamos precisar, tendo em mente que "depende do caso". Eu vou abordar este assunto na perspectiva de um usurio caseiro, com poucos usurios, sem outras necessidades extraordinrias. A melhor maneira de comear descrevendo como meu computador . Eu tenho dois discos, /dev/hda (1.2 GB) e /dev/hdb (540 MB). O comando df (disk free) mostra:

105

Voc pode notar que eu tenho uma partio root de 150MB com 50% de uso, uma partio /usr quase cheia, uma partio /usr/X11R6 bastante usada, e uma partio grande de 500MB apertada onde est o /home. O resto do disco hdb uma partio de swap, que no aparece no df. No mnimo, eu sugeriria reservar uns 100MB para sua partio root, calcular quantos MB voc vai precisar por usurio para sua partio /home, reservando este espao, uns 100 ou 128MB para swap (ver prxima seo), e o resto para /usr. Sua partio /usr dever ter no mnimo uns 250MB, mas isso vai depender do que voc vai instalar. Como voc poder ver, isso pode crescer rapidamente com programas, bibliotecas e dados. Lembre-se tambm que parties do a flexibilidade que voc no tem com uma partio gigante.

13.1.13

A partio de swap

Voc deve pensar numa partio de swap. Diferentemente do Windows, o Linux usa uma partio dedicada de swap. Embora seja possvel criar um arquivo de swap, isto no recomendado. O Linux pode usar at 128MB de swap. Eu recomendaria um mnimo de 80MB, mas quanto mais voc puder reservar, melhor. Uma ltima considerao antes de voc decidir como melhor dividir o seu disco. Lembre-se que eu disse que a BIOS no pode ver alm do setor 1023 no disco (mais ou menos uns 512MB). Assim, o kernel do Linux (um arquivo com o provvel nome vmlinuz no seu disco de boot), ou qualquer outro kernel de um sistema operacional, devem residir integralmente em um dos primeiros dois discos (/dev/hda ou /dev/hdb ) e dentro dos primeiros 1024 setores, ou a BIOS no poder carreg-los. Para assegurar-se de que isso seja possvel, planeje para fazer com que sua partio root (assim como qualquer partio de boot) caia inteiramente nesta limitao no primeiro ou segundo disco rgido.

13.1.14

Reparticionamento

No incio deste captulo eu disse que faria algumas poucas suposies. Uma delas que manteria seu MS-DOS ou Windows. Como provavelmente seu micro s tenha o Windows, no h razo para que tenha mais de uma partio. Dessa forma, seu disco provavelmente est totalmente dedicado ao Windows. De qualquer forma, teremos dois sistemas operacionais nesse computador. Se atualmente seu disco est vazio (sorte sua), isso timo, mas voc ainda no est exatamente pronto para saltar esta etapa. O Linux fica confortvel em qualquer lugar que voc o instale. A BIOS pode no ser capaz de inicializ-lo, mas uma rodando, ele no reclamar de estar colocado na

106

quarta partio do quarto disco. O Windows e o MS-DOS no so to complacentes. Eles querem o primeiro disco e a primeira partio e podem se negar a inicializar em qualquer outra posio. Eu j vi um MS-DOS inicializar no segundo disco, mas o primeiro disco no tinha parties MS-DOS, assim o DOS no o reconheceu. A melhor estratgia usualmente seguir o caminho que oferece menor resistncia. Se possvel, instale o Windows na primeira partio do primeiro disco. Uma segunda considerao em um sistema mltiplo qual sistema operacional carregar primeiro. Se voc estiver tentado a particionar o disco e instalar o Linux primeiro (reservando, por exemplo, /dev/hda1 para o Windows), e ento instalar o Windows, no faa isso. O Windows terrivelmente desrespeitoso. Os sistemas operacionais Microsoft, em geral, vo apagar qualquer boot loader que voc tenha instalado no seu MBR (Master Boot Record - setor do disco que a BIOS usa para apontar para o kernel). O Linux no causa esses problemas e at fornece uma maneira de escolher qual imagem do kernel ser carregada. Ele tambm permite sua interveno durante o processo para escolher qual sistema operacional deve ser carregado. Esta uma etapa padro das instalaes Linux.

13.1.15

Fazendo cpia de segurana de seu sistema antigo

Antes de "colocar a mo na massa" na tabela de parties, vamos revisar os procedimentos para proteger seus dados que esto no disco rgido. Estes procedimentos assumem que voc tenha uma partio FAT ou FAT32. Outros sistemas operacionais podem ou no ter maneiras de efetuar os mesmos passos. A primeira coisa a fazer uma cpia de segurana (backup) completa de todos os dados. As ferramentas que voc vai usar na instalao com certeza funcionam, mas os procedimentos so inerentemente perigosos. Em qualquer momento que voc esteja trabalhando numa tabela de parties, voc pode facilmente perder todos os dados contidos no disco. Faa uma cpia de segurana antes de prosseguir. Uma vez que voc tenha feito o backup, cria um disquete de inicializao para seu sistema. No Painel de Controle do Windows, clique em "Adicionar ou remover programas", depois na guia "disco de inicializao" e em seguida no boto "Criar disco...". Depois, copie o arquivo RESTORRB.EXE da distribuio Linux para esse disco. Rode um desfragmentador no seu disco. Se o desfragmentador encontrar erros, voc precisar passar um SCANDISK para corrigi-los. Depois de desfragmentar e corrigir eventuais erros no disco, voc estar pronto para rodar o FIPS.EXE para encolher a partio DOS.

13.1.16

FIPS.EXE

No CD de sua distribuio Linux (ou site Internet), voc encontrar uma cpia do FIPS.EXE, que pode encolher uma partio FAT ou FAT32. Se voc tem outros tipos de partio para encolher, talvez precise do Partition Magic, mas este um software comercial e no grtis. Copie o FIPS.EXE para seu

107

disquete de inicializao e reinicie o sistema com ele. Com isso estaremos certos de duas coisas: seu drive de disquete funciona e voc ter inicializado o sistema em Modo Real, e no rodando o Windows. No prompt A:>, digite FIPS. Voc ser saudado e questionado sobre qual disco voc quer operar (se tiver mais de um). Selecione o disco para encolher. Uma vez que voc confirme a escolha, deixe o FIPS fazer uma cpia de seus setores de root e boot para o disco no caso de algo dar errado. O FIPS ir perguntar se voc deseja que todo o espao livre na partio deve ser usado para criar uma segunda partio. Se voc disser "sim", estar deixando a partio DOS sem espao livre para salvar qualquer coisa, por isso diga "no". Voc, ento, poder alterar o espao reservado para a primeira e a segunda parties. Note que se voc no desfragmentou o disco corretamente, no ter muito para deixar para a segunda partio. Voc pode editar e reeditar a tabela at que esteja satisfeito. Uma vez que goste da distribuio de espao entre as parties, confirme suas escolhas e grave a tabela. Uma vez que o FIPS tenha terminado, remova o disquete de inicializao do seu computador. Neste exemplo, vamos destruir e recriar a segunda partio durante a instalao para criar ao menos duas parties para o Linux: uma partio de swap e uma partio Linux nativa. Voc pode criar quantas quiser.

13.1.17

Preparando o Linux para inicializar

Para instalar o Linux, devemos comear por inicializar o kernel do Linux. Isto feito da mesma maneira como voc instalaria o Windows: precisamos de um disquete de inicializao. A maior parte das distribuies vem somente com um CD-ROM, e mesmo que voc j tenha um Linux rodando, a forma de criar disquetes de inicializao para o Linux diferente do Windows. Se voc tiver um computador com um CD-ROM inicializvel (a maioria hoje em dia provavelmente tenha que mudar alguma opo na CMOS), algumas distribuies permitem que voc inicie desta maneira. De qualquer forma, vamos passar pelo processo de criar o disquete.

13.1.18

Criando um disquete de inicializao do Linux no DOS

Cada CD de distribuio contm um programa DOS que permite gravar uma imagem pronta de um disquete de inicializao num disquete virgem. Insira o disquete no drive. No CD (ou no seu disco, se voc fez download da distribuio), encontre o RAWRITE2.EXE (ou RAWRITE.EXE). V para o diretrio onde est a imagem do disquete de inicializao. Pode haver mais de uma, variando para configuraes diferentes de hardware. Voc ter de consultar a documentao da sua distribuio. Rodando o RAWRITE2.EXE sem argumentos resulta em duas perguntas que voc ter de responder: o caminho para encontrar o arquivo com a imagem e o drive de destino (A: ou B:). Para encurtar as perguntas C:> rawrite diskimage drive Utilize um bom disquete de inicializao. Muitas inicializaes fracassam por disquetes com defeito. O RAWRITE no verifica erros no disco. 108

badblocks(1)

Isso tambm vale para disquetes criados no Linux. descreve como checar erros de disco. Nomeie o disco para uso futuro.

O manual

13.1.19

Criando um disquete de inicializao no Linux

Se voc tem um sistema operacional Linux e quiser gerar um disquete de inicializao, v para o diretrio que contenha as imagens e rode o seguinte comando: dd if=diskimage of=dispositivo-de-disquete bs=512 conv=sync ; sync Substitua diskimage pelo nome do arquivo com a imagem e indique corretamente o dispositivo disquete (usualmente /dev/fd0), e repita para cada disquete que voc precisar. Os parmetros do dd so: if para input file (arquivo de entrada); of para output file (arquivo de sada) - aqui usamos o drive de disquete; bs para block size (tamanho do bloco), neste caso 512 bytes; conv=sync assegura que o arquivo de sada exatamente do mesmo tamanho que o de entrada. O "sync" restante assegura que vamos descarregar todos os buffers para o disquete imediatamente. Um mtodo alternativo que funciona, mas que freqentemente evitado por administradores Linux o comando cp (copy) cp diskimage dispositivo-de-disquete ; sync Novamente, substitua diskimage pelo arquivo de imagem e dispositivode-disquete pelo dispositivo correto. Pode aparecer uma mensagem pedindo confirmao de que voc quer mesmo substituir o dispositivo de disquete por arquivo de imagem. Obviamente isto no ocorre, uma vez que o disquete no verdadeiramente um arquivo, mas sim um dispositivo, mas o cp no presta ateno a esse detalhe. Responda "sim", se ele perguntar. Com os disquetes de inicializao do Linux em mos, voc est pronto para instalar o sistema. A maior parte das distribuies chama o fdisk do Linux, a voc poder criar a partio Linux nativa e a de swap. Para instalar programas, continue criando o sistema de arquivos (equivalente a formatar um disco com DOS) para o Linux e a partio de swap, inicialize a partio de swap e monte a partio Linux. Uma pergunta que ser feita se voc quer checar seu disco rgido contra blocos defeituosos. Se voc estiver usando um SCSI, diga "no". Discos SCSI tm um sistema interno de deteco e correo. IDE e outros discos similares no tm isso e precisam ser verificados. Se voc tem um disco mais antigo, voc certamente vai querer fazer isso. Se voc disser "sim", o programa de instalao ir chamar o programa badblocks para mapear todos os blocos defeituosos. Isso leva algum tempo. Na dvida, diga "sim".

13.1.20

Particionando o disco rgido:

fdisk

e cfdisk.

Qualquer sistema operacional, seja ele o DOS, o Windows ou Linux, tem sua verso do fdisk. Se voc quer criar uma partio para usar no DOS, use a verso DOS FDISK.EXE para criar a partio e gravar a tabela de

109

particionamento. Se voc vai criar uma partio para o Linux, deve cri-la com a verso Linux, fdisk. No Linux, dois programas de particionamento esto disponveis: o original fdisk, e uma verso mais amigvel cfdisk. A diferena entre os dois que no fdisk voc faz todos os comandos por teclado, atravs de letras e nmeros. Com o cfdisk, voc pode usar uma seta para marcar as opes e apertar <Enter> para executar o comando. O nico momento que voc no usa as setas ou o <Enter> quando voc especifica o tamanho da partio. Essencialmente, para iniciantes, todos os disquetes de inicializao so iguais. Reinicie o computador com o disquete no drive. Voc receber uma mensagem de boas vindas LILO boot: e um cursor piscando. Se voc usar a tecla <Tab>, poder ver uma lista de nomes. Os nomes diferentes dependem da distribuio, mas procure um que diga "rescue" ou "expert" e outro "install". O "install" iniciar o programa de instalao aps a carga do kernel. Assim, se voc quer que o programa de instalao passe pelas etapas de particionamento e inicializao do sistema de arquivos, use o "install", seno, use outra opo. Voc pode tambm passar alguns parmetros no boot do Linux. Para nossos propsitos, isto no ser necessrio, mas voc logo descobrir se este for o caso. Entre uma opo e pressione <Enter>. Quando o kernel do Linux terminar o processo de inicializao, voc poder receber um de vrios prompts, dependendo da distribuio. Se voc receber um prompt do shell, como um caracter '#' ou um sinal de dlar ('$'), voc est onde deveria. Se no, tente pressionar Alt-F2 ou Alt-Shift-F2. Voc deve ser capaz de ativar um console virtual do sistema. Uma vez que consiga um prompt (provavelmente no ter que fazer um login), voc estar trabalhando como "root". Entre o seguinte comando: fdisk Se retornar erro, tente cfdisk. Esta a ferramenta para particionar o disco. Por default, ela usa o disk /dev/hda. Assim, se voc precisa trabalhar no segundo disco, use: fdisk /dev/hdb No fdisk, pressione m para ver o menu. Os comandos que voc vai usar so: n - para criar uma nova partio d - para destruir uma partio t - para mudar o tipo de uma partio (83 Linux nativo, 82 swap Linux) p - para exibir a tabela de parties que est na memria (no o que est no disco) w - para escrever a tabela de partio que est em memria no disco q - para sair (quit) At que voc use o comando w, voc no est comprometido e pode fazer todas as mudanas que quiser e sair sem confirm-las. 110

Preste ateno aos prefixos e sufixos que modificam o tamanho da partio. Os sufixos "k" ou "M" (no importando se caixa alta ou baixa), especificam se o nmero est em KB ou MB, respectivamente. Uma nota final sobre parties: voc pode criar at quatro parties primrias. Se voc precisa mais de quatro parties, voc vai criar trs parties primrias e outras parties estendidas. Os nmeros das parties estendidas iniciam em 5, assim voc poder ter /dev/hda1 , /dev/hda2 , /dev/hda3 , /dev/hda5 , e /dev/hda6 se precisar de cinco parties. Antes de gravar a tabela de parties, assegure-se que as mesmas no se sobreponham. Desde que os segmentos de incio e fim no se sobreponham a quaisquer outros segmentes, voc pode estar certo que os limites das parties estaro ok. Parties que comeam aps o cilindro 1024 podem estar listadas com esse nmero. Por agora, somente lembre-se que a BIOS no poder ler (ou inicializar) dessa partio. faz exatamente a mesma coisa que o fdisk , mas mostra na tela o estado da tabela de partio em memria (no a do disco) durante todo o tempo. Use as setas para cima e para baixo para selecionar em qual partio quer trabalhar e as da direita e esquerda para selecionar a ao a ser executada. Pressione <Enter> para executar a ao. Voc ter que entrar nmeros para o tamanho das parties, mas toda a informao necessria estar na tela. cfdisk inicia no /dev/hda , por isso, se quiser trabalhar no segundo disco, use o parmetro /dev/hdb . Lembre-se de salvar a tabela antes de sair. Esta a pior parte do cfdisk. Ele no pergunta por confirmao antes de sair. Assim, selecione "Write" e depois pressione <Enter>.
cfdisk

111

14 DISTRIBUIES LINUX
Agora voc vai enfrentar a tarefa de decidir qual distribuio particular melhor para as suas necessidades. Nem todas as distribuies so parecidas. Muitas vm com todos os software necessrios para rodar um sistema completo. Outras so distribuies "menores" dirigidas a usurios sem tanto espao de disco disponvel. Muitas contm apenas o corao do sistema Linux, e voc tem que instalar pacotes grandes, como o X Window, por conta prpria. (......) Se voc tem acesso ao news, voc pode pedir opinies de pessoas que tenham instalado o Linux. Alm disso, o Linux Journal mantm uma tabela de caractersticas comparando as distribuies e periodicamente publica revises sobre as mesmas (em http://www.linuxjournal.com voc vai encontrar uma verso online e artigos). Se voc conhecer algum que tenha instalado o Linux, tanto melhor. Pergunte a ele e pea ajuda. H muitos fatores a considerar quando da escolha de uma distribuio; no entanto, as necessidades e opinies de cada um so diferentes. Atualmente, a maior parte das distribuies contm essencialmente o mesmo conjunto de software. Dessa forma, sua escolha vai ser mais ou menos arbitrria.

14.1 Debian GNU/Linux


Esta seo sobre Debian GNU/Linux foi escrita por Boris Beletsky.

14.1.1

Caractersticas da instalao do Debian GNU/Linux


sim disquete CD, HD, NFS, FTP Sys V init desafiadora no dselect dselect/dpkg

Dependncias: Mtodo de inicializao da instalao: Mtodos de instalao: Inicializao do sistema: Facilidade de instalao: Ferramentas grficas de administrao: Ferramenta de instalao: Ferramenta para manuteno de pacotes:

14.1.2

Obtendo as imagens do disquete

Se voc tem uma conexo rpida com a Internet, a melhor maneira de conseguir o Debian por FTP annimo. O servidor de ftp para o Debian est em ftp.debian.org , e o diretrio /debian/dists . A estrutura do pacote descrita na tabela a seguir: Diretrio ./stable/main Contedo ltima verso estvel

112

./stable/main/binary-i386 ./stable/main/disks-i386 ./stable/main/disks-i386/current

Pacotes Debian para arquitetura Intel i386 Discos de inicializao e necessrios para a instalao Os discos atuais root

Tabela 2.1: Estrutura do pacote do Debian GNU/Linux Para uma instalao bsica do Debian, voc vai precisar apenas de 12 MB de espao em disco e alguns disquetes. Primeiro, voc precisa gerar os disquetes de inicializao. No diretrio /debian/dists/stable/main/disks i386/current/images -1.44 (para disquetes de 1.44MB), voc vai encontrar: Nome do arquivo rescue.bin driver- (1 at 4).bin base-(1 at 11).bin Rtulo Disquete de resgate Drivers de dispositivos Disquetes base Descri o

Tabela 2.2: Disquetes de instalao para Debian GNU/Linux. Voc tambm pode usar o conjunto fornecido no diretrio compact, que seguramente servir para iniciar a instalao. Escolha o conjunto apropriado de disquetes para o seu hardware a partir da tabela acima e gere-os como descrevemos anteriormente.

14.1.3

Fazendo o Download dos pacotes

Para instalar e usar o Debian, voc vai precisar mais que o sistema base. Para decidir quais pacotes voc precisa, baixe o arquivo Packages de: ftp://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages Este arquivo a listagem corrente dos pacotes Debian disponveis na verso estvel. O arquivo tem um formato especial: cada pacote tem uma entrada e est separado por uma linha em branco. A informao de cada pacote est separada em campos. A tabela 2.3 descreve os campos e os possveis valores. Ele deve dar uma idia de como montar sua lista pessoal. Quando tiver a listagem de pacotes que quiser, voc ter de decidir como fazer o download dos mesmos. Se for um usurio experiente, pode querer fazer o download do pacote netbase e assim poder fazer o download dos pacotes posteriormente, j no Linux. De outra forma, voc pode fazer o download de todos os pacotes com o seu sistema operacional atual e instal-los posteriormente a partir de uma partio montada. Campo Package Priority Descrio Nome do pacote Importncia do pacote Required 113

Section

Installed-Size Maintainer Architecture Version Depends Filename Size MD5Sum Description

necessrio para o funcionamento do sistema Important - no necessrio, mas importante Optional - no necessrio, mas til Extra - pode conflitar com outros pacotes de mais alta prioridade Categoria Geral Base Sistema base Devel Ferramenta de desenvolvimento X11 pacote para o X11 Admin ferramentas para administra o Doc documenta o Comm pacotes para comunica o Editors editor de texto Electronics ferramentas para eletrnica Games jogos Graphics ferramentas grficas Hamradio ferramentas para rdio para Internet Mail servidores e clientes de e-mail Math ferramentas matemticas Net ferramentas para conex o rede News servidores e clientes de NNTP Shells shells, como o bash, o sh, etc Sound aplicativos de som TeX aplicativos para o TeX Text ferramentas para manipular textos Misc qualquer coisa fora das categorias acima Tamanho total instalado Quem mantm o pacote Arquitetura para a qual o pacote foi escrito Verso do pacote Dependncia de outros pacotes,se houver. Arquivo onde est o pacote Tamanho do arquivo do pacote Checksum para verifica o de integridade do pacote Breve descri o do pacote

Tabela 2.3: Campos do arquivo Packages do Debian/GNU Linux.

14.1.4

Inicializando dos disquetes e instalando o Debian GNU/Linux


O disco de rescue

14.1.4.1

Insira o disquete Rescue e reinicialize. Em alguns minutos, voc ver a tela de introduo do Rescue e o prompt de inicializao.

114

Ele chamado de disquete Rescue (resgate, salvamento) porque pode ser usado para inicializar o sistema e reparar algum problema que torne seu disco no inicializvel. Mantenha esse disquete mesmo aps instalar o sistema. Voc pode fazer duas coisas no prompt boot: : pressione as teclas F1 at F10 para ver algumas telas com informaes teis, ou inicialize o sistema. Se voc tem qualquer dispositivo de hardware que o Linux no acesse corretamente durante a inicializao, pode encontrar um parmetro para adicionar ao comando de inicializao do sistema nas telas de ajuda ao pressionar F3, F4 e F5. Se adicionar parmetros linha de comando da inicializao, esteja certo de digitar a palavra "linux" e um espao antes do primeiro parmetro. Se simplesmente pressionar <Enter>, isso ser o mesmo que ter digitado "linux" sem parmetro algum. Se esta a primeira vez que voc est inicializando o sistema, pressione <Enter> para ver se funciona corretamente. Provavelmente ir funcionar. Se no, voc pode reinicializar mais tarde e verificar se precisa de algum parmetro especial que informe ao sistema sobre seu hardware. Uma vez que tenha pressionado <Enter>, dever ver as seguintes mensagens: Loading... Uncompressing Linux... Depois vir uma pgina ou quase isso com informao codificada sobre seu hardware. Podero aparecer vrias mensagens do tipo "can't find" (no posso encontrar) alguma coisa", "alguma coisa not present (no est presente)", "can't initialize (no posso inicializar)qualquer coisa", ou ainda "this driver release depends on (esta verso do driver depende de) qualquer coisa". A maioria destas mensagens no faz mal algum. Os disquetes de inicializao so preparados para rodar com muitos computadores diferentes e diferentes dispositivos. Obviamente, nenhum computador ter todos os dispositivos possveis e o sistema operacional vai reclamar cada vez que procurar por um dispositivo no presente. Voc poder notar que algumas vezes ele dar uma pausa. Isso acontece porque o sistema estar aguardando pela resposta do dispositivo que pode no estar presente. Se voc achar que a inicializao do sistema est inaceitavelmente longa, pode criar um kernel personalizado aps instalar o sistema, que no tenha todos os drivers dos dispositivos no existentes. 14.1.4.2 A caixa de dilogos colorido ou monocromtico

Uma vez que tenha terminado de inicializar, voc deve ver a caixa de dilogo para selecionar colorido ou monocromtico. Selecione preferencialmente "color", a no ser que voc tenha um monitor monocromtico. 14.1.4.3 O Menu Principal

Voc poder ver uma caixa de dilogos que diga: 115

The installation program is determining the current stat of your system

. (O

programa de instalao est determinando o estado atual do seu sistema) Em alguns sistemas, esta mensagem pisca muito rpido para ser lida. Ela mostrada entre os passos do processo de instalao. O programa de instalao verifica o estado do sistema aps cada passo. Isso permite que voc reinicie a instalao sem perder o trabalho que j fez, se por acaso parar o sistema no meio da instalao. Se precisar reiniciar uma instalao, voc ser questionado sobre o tipo de monitor novamente (colorido ou monocromtico), configurao do teclado, reativar partio de swap e remontar qualquer disco que tenha sido inicializado. Qualquer outra instalao no sistema ter sido salva. Durante todo o processo voc poder acessar o menu principal. As opes no topo do menu mudam para indicar seu progresso na instalao do sistema. Phil Hughes escreveu no Linux Journal que poderia ensinar um frango a instalar o Debian. Ele quis dizer que o processo de instalao principalmente "bicando" a tecla <Enter>. A primeira opo do menu a prxima ao que voc deve tomar de acordo com o que o sistema detectou que voc j fez. Ela deve ser Next (prximo) e, neste ponto, a prxima coisa deve ser a configurao do teclado. 14.1.4.4 Configurao do teclado

Esteja certo que est sobre o item Next e pressione <Enter> para entrar no menu de configurao do teclado. Selecione um teclado que esteja adequado ao padro do seu pas ou algum com configurao prxima se o seu no mostrado. Depois da instalao voc poder selecionar um teclado de um conjunto maior de opes. Mova a barra para o teclado escolhido e pressione <Enter>. 14.1.4.5 O shell

Se voc um usurio experimentado UNIX ou Linux, pressione Alt da esquerda mais F2 para um segundo console virtual. Voc ver uma segunda janela rodando um clone do Bourne shell chamado ash. Neste ponto, o sistema de arquivos root est em um disco virtual na memria RAM e h poucas ferramentas UNIX disponveis para uso. Voc pode ver os programas disponveis atravs do comando: ls /bin /sbin /usr/bin /usr/sbin O shell e os comandos esto a somente em caso de algo dar errado. Em particular, voc deve usar sempre os menus, no o shell, para ativar a partio de swap, porque o programa do menu no pode determinar se voc fez isso atravs do shell. Pressione Alt da esquerda mais F1 para voltar ao menu. O Linux suporta at 64 consoles virtuais, mas o disco de resgate usa poucos deles. ltima Chance! J fez backup de seus discos? Aqui est sua primeira chance de apagar todos os dados em seus discos, e sua ltima chance de salvar seu sistema antigo. Se voc no fez backup, remova o disquete do drive, reinicie o sistema e faa-o.

116

14.1.4.6

Particionando seus discos

Se voc ainda no particionou seus discos para os sistemas de arquivo Linux nativo e Linux Swap, o menu Next vai ser "Partition a Hard Disk" (Particionando o disco) Se voc j criou ao menos uma partio Linux nativa e uma de swap, a opo Next ser "Initialize and Activate the Swap Disk Partition" (Inicializar e Ativar a Partio de Swap), ou pode at pular esta etapa se seu sistema tem pouca memria RAM e o programa de instalao perguntou se voc queria ativar a partio de swap assim que o sistema iniciou. Qualquer que seja o caso, voc ainda pode usar as setas para selecionar a opo "Partition a Hard Disk" O menu "Partition a Hard Disk" apresenta uma lista de discos que voc pode particionar e roda o cfdisk (j comentado anteriormente), que permite criar e editar as parties no disco. Voc deve criar ao menos uma partio Linux (tipo 83). Sua partio de swap ser usada para prover memria virtual ao sistema e deve ter entre 16 e 128MB de tamanho, dependendo de quanto espao em disco voc e tenha e quo grande sejam os programas que queira rodar. O Linux no vai usar mais de 128 MB de swap, por isso no h motivo para criar uma partio de swap maior. Uma partio de swap fortemente recomendada, mas voc at pode rodar sem ela. 14.1.4.7 Inicializando e Ativando a Partio de Swap

menu inicializar e ativar uma partio de swap nova, ativar uma partio j inicializada, ou continuar sem ativar uma partio de swap. A menos que voc saiba o que est fazendo, opte por "Initialize and Activate the Swap Disk Partition " (inicializar e ativar uma partio de swap). Esta opo lhe permitir verificar a partio e identificar possveis setores defeituosos. Isto til se voc tem um disco MFM, RLL ou antigos IDE, e verificar o disco nunca demais. Discos SCSI usados adequadamente no precisam ser verificados. Eles tm seu prprio mecanismo de mapear setores defeituosos. A partio de swap fornece memria virtual para complementar a memria RAM no seu sistema e usada durante a instalao. Por isso a primeira coisa a fazer. 14.1.4.8 Inicializando uma partio Linux

"Initialize and Activate the Swap Disk Partition " o prximo ao pressionar Next aps criar as parties. Voc tem a opo de

Neste ponto, o prximo menu deve ser "Initialize a Linux Partition" (inicializando uma partio Linux). Se no for, voc no deve ter completado o processo de particionamento do disco, ou no ter selecionado uma das opes sobre a partio de swap. Voc pode inicializar uma partio do Linux ou montar uma partio j inicializada anteriormente. Os disquetes de inicializao no vo fazer um upgrade do sistema sem

117

remover os arquivos - o Debian tem um procedimento diferente para fazer upgrade. Assim, se voc estiver usando parties antigas que no esto vazias, voc deve inicializ-las, o que apaga qualquer arquivo. Voc deve inicializar qualquer partio criada no passo de particionamento do disco. A nica razo de montar uma partio sem inicializ-la neste ponto seria a montagem de parties com arquivos de usurios, como o /home , que voc no vai querer apagar. Selecione a opo Next no menu para inicializar e montar a partio root (o diretrio "/"). A primeira partio que voc montar, depois da partio de swap (se estiver usando uma), a partio root. Voc poder escolher por verificar o disco contra setores defeituosos, assim como quando inicializou a partio de swap. No uma m idia, mas mantenha em mente que este passo pode levar mais de 10 minutos, dependendo do tamanho de seu disco. 14.1.4.9 Instalando o sistema base

Aps ter montado a partio root, o prximo menu ser "Install the Base System" (instalando o sistema base), a no ser que voc j tenha feito alguns passos da instalao. Se voc tem parties adicionais para configurar, use as setas para selecionar as opes de inicializao e montagem dos discos. Se voc criou parties separadas para /var, /usr, ou outros sistemas de arquivos, deve inicializ-las e mont-las agora. Haver uma pausa enquanto o sistema procura por uma cpia local do sistema base. Esta procura para instalaes por CD-ROM e no ter xito. Voc ver, ento, um menu com drives de onde ler os disquetes base. Selecione o drive apropriado. V colocando os disquetes Base 1, Base 2 e assim por diante, conforme requisitado pelo programa. Se um dos disquetes tiver erro de leitura, voc ter de criar um novo e colocar todos os discos no sistema novamente. Aps ler todos os disquetes, o sistema instala os arquivos. Isso pode levar vrios minutos. 14.1.4.10 Instalando o kernel do sistema operacional

Neste ponto, o prximo menu deve ser "Install the Operation System Kernel" (instalando o kernel do sistema operacional). O programa solicitar que selecione um drive de disquete para inserir o disco de resgate. Este processo copia o kernel no disco rgido. Este kernel usado posteriormente para criar um disquete de inicializao para seu sistema e fazer seu disco rgido inicializvel sem disquete. 14.1.4.11 Instalando os drivers de dispositivos

Selecione o item de menu para instalar os drivers de dispositivos. O programa solicitar que insira os disquetes de Drivers e os mesmos sero copiados para seu disco rgido. Selecione o item "Configure Device Drivers" e procure dispositivos que estejam em seu sistema. Configure esses dispositivos para que eles sejam carregados sempre que voc reinicie o sistema. H uma opo de menu para drivers PCMCIA, mas voc no precisa us-la. Depois da instalao, voc poder instalar o pacote pcmcia-cs . Ele 118

detecta as placas PCMCIA automaticamente e configura aquelas que encontrar. Ele tambm reconhece placas "hot swap" enquanto o sistema estiver rodando - elas sero configuradas quando conectadas e desconfiguradas quando desconectadas. 14.1.4.12 Configurando o sistema base

Neste ponto o sistema l toda a informao que faz parte de um sistema Debian mnimo, mas voc ter que fazer algumas configuraes antes de rodar o sistema. Selecione "Configure the Base System" (configurar o sistema base). Isto ir pedir que voc selecione a time zone (fuso horrio). Verifique seu fuso horrio (grande parte do Brasil usa o fuso Braslia - GMT -03:00). Os sistemas UNIX usam a hora GMT no relgio do sistema e um software que converte isso para o horrio local). Isso permite que ele possa lidar com horrio de vero e anos bissextos, e at que usurios remotos entrem no sistema e configurem seu fuso horrio individualmente para o seu terminal. Se voc roda o sistema com GMT e sua localidade tem horrio de vero, o sistema ajusta automaticamente o dia de incio e fim do horrio de vero. 14.1.4.13 Configurando a rede

Voc deve configurar a rede, mesmo que voc no tenha uma, mas neste caso ter que responder somente s duas primeiras perguntas: What is the name of your computer? (Qual o nome de seu computador) e Is your system connect to a network? (Seu sistema est conectado a uma rede) Se voc estiver conectado a uma rede, verifique com o administrador da mesma ou com o provedor de acesso se no tiver as seguintes informaes:

o nome de seu computador; o domnio onde ele est (pode ser da sua rede ou do provedor); o endereo IP do seu computador; a mscara de rede; o endereo IP inicial da sua rede; o endereo de broadcast; se a rede tiver um gateway, o endereo IP do gateway para onde voc deve rotear os pacotes; o endereo do seu servidor de DNS (Domain Name Service); e se voc conecta na rede usando Ethernet.

O programa ir deduzir que o endereo IP de sua rede um E lgico (AND) do seu endereo IP com a sua mscara. Tambm ir deduzir que o endereo de broadcast o OU lgico (OR) do seu endereo IP com a negao da mscara. Ir tambm deduzir que o seu gateway o mesmo que seu servidor DNS. Se voc no tiver estar respostas, use as dedues do sistema - se necessrio, poder alter-las posteriormente editando o arquivo

119

/etc/init.d/network

14.1.4.14

Tornando seu disco rgido inicializvel

Se voc escolheu que seu disco inicialize direto no Linux, o programa ir perguntar se voc quer instalar um MBR (master boot record). Se voc no estiver usando o gerenciador de inicializao (provavelmente este o caso se voc no souber o que isso), responda "yes" pergunta. A prxima pergunta se voc quer inicializar o Linux automaticamente a partir do disco rgido quando ligar o sistema. Isso faz com que a partio do Linux seja inicializvel aquela que ser carregada do disco rgido quando o sistema for ligado. Se voc responder "no", poder configurar a partio como inicializvel posteriormente com o FDISK.EXE do windows ou o fdisk do Linux. 14.1.4.15 Criando um disquete de inicializao

Voc deve criar um disquete de inicializao, mesmo que queira iniciar seu sistema pelo disco rgido. A razo para isto que possvel que o disco seja gravado incorretamente. O disquete provavelmente ir funcionar nesse caso. Selecione "Make a Boot Floppy" (Fazer um disquete de Inicializao) pelo menu e insira um disquete virgem desprotegido no sistema quando indicado. O programa vai tentar format-lo e gravar nele. Marque o disquete como "Custom Boot" e proteja-o assim que o processo terminar. 14.1.4.16 O momento da verdade

Esta a parte que os engenheiros eltricos chamam de "teste de fumaa" - o que acontece quando voc liga um sistema pela primeira vez. Remova o disquete do drive e selecione "Reboot the System" (Reiniciar o sistema) a partir do menu. Voc dever ver as mesmas mensagens de quando inicializou durante a instalao, seguidas de algumas novas mensagens. 14.1.4.17 Add a user account and password

Depois de ter adicionado logins, voc jogado no dselect, o programa de gerenciamento de pacotes do Debian. Voc deve ler o tutorial antes de tentar instalar qualquer pacote com o
dselect.

permite que voc selecione pacotes que queira instalar no sistema. Veja a seo sobre dselect - gerenciador de pacotes do Debian mais adiante. Se voc tem um CD-ROM ou disco rgido com os pacotes adicionais do Debian ou est conectado na Internet, voc pode querer ler esse seo agora. Seno, saia do dselect. Voc pode usar o gerenciador de pacotes depois de ter transferido os arquivos com os pacotes do Debian para seu sistema.
dselect

Voc deve ser um super-usurio (root) para usar o dselect. Se voc instala o X Window e no usa um teclado norte-americano (US), leia a nota do X11 sobre "non-US keyboards" (teclados no-americanos).

120

14.1.4.18

Log in

Depois de sair do dselect , voc est no prompt do login:. Entre usando seu login pessoal e a senha que voc escolheu. Voc est pronto para usar o sistema.

14.1.5

Rodando o Debian GNU/Linux

Esta seo descreve o sistema de pacotes Debian e as ferramentas especficas do Debian. O formato do arquivo Packages mostrado na tabela 2.3. A distribuio Debian vem em arquivos chamados pacotes. Cada pacote uma coleo de arquivos (usualmente programas) que podem ser instalados usando o dpkg ou dselect . Alm disso, o pacote contm informao sobre si mesmo que lida pelas ferramentas de instalao. 14.1.5.1 Classificao dos Pacotes

Os pacotes que foram includos no Debian GNU/Linux so classificados de acordo com sua necessidade (item priority - prioridade) e sua funcionalidade (item section - seo) A prioridade do sistema indica quo necessrio ele . O Debian GNU/Linux classifica todos os pacotes em quatro diferentes nveis de prioridade:
14.1.5.1.1 Required (Necessrio)

Estes pacotes devem ser instalados para que o sistema funcione corretamente e so instalados como parte do sistema base. Nunca remova um pacote necessrio do sistema a no ser que voc esteja absolutamente certo do que est fazendo. Isto bom repetir: nunca, nunca, nunca remova um pacote necessrio do sistema a no ser que voc esteja absolutamente certo do que est fazendo. Fazendo isso, provavelmente seu sistema ficar completamente inutilizado. Pacotes Required so abreviados no dselect como Req.
14.1.5.1.2 Important (Inportante)

Pacotes importantes so encontrados em quase todos os sistemas operacionais tipo UNIX. Estes pacotes incluem cron, man, e vi. Pacotes Importantes so abreviados como Imp.
14.1.5.1.3 Standard (Padro)

Pacotes Standard so pacotes que compreendem, mais ou menos, o sistema padro do Debian GNU/Linux. O sistema padro inclui um pacote bem completo de ferramentas de desenvolvimento e o GNU Emacs. Pacotes Standard dselect como Std.
14.1.5.1.4 Optional (Opcional)

Pacotes opcionais compreendem vrios sistemas. Window e o Tex. So abreviados como Opt.

Dentre eles, o X

121

14.1.5.1.5 Extra (Extra)

Pacotes Extras so teis somente para um pequeno grupo de pessoas, ou instalados para um propsito especfico. Podem incluir programas de eletrnica ou aplicaes de rdio. Pacotes Extras so abreviados como Xtr. Por default, dselect seleciona automaticamente os pacotes Standard se o usurio no quiser selecionar individualmente os pacotes a serem instalados. A seo (section) de um pacote indica sua funcionalidade ou uso. Pacotes em CD-ROM ou em repositrios FTP so organizados em subdiretrios de acordo com sua funo. Os nomes dos diretrios so bem auto-explicativos: o diretrio admin, por exemplo, contm pacotes para administrao do sistema e o diretrio devel contm pacotes de software para desenvolvimento e programao. Diferentemente dos nveis de prioridade, h diversas "sections", e outras podem ser adicionadas no futuro, assim, no as descreveremos individualmente neste guia. 14.1.5.2 Relacionamento entre Pacotes

Cada pacote inclui informao sobre como ele se relaciona com outros pacotes includos no sistema. H quatro relacionamentos de pacotes no Debian: conflito, dependncia, recomendao e sugesto (conflicts, dependencies, recommendations, and suggestions). Um conflito ocorre quando dois ou mais pacotes no podem ser instalados no mesmo sistema ao mesmo tempo. Um bom exemplo de pacotes conflitantes so os agentes de transferncia de mail (MTAs). Um MTA um programa que envia e-mails para usurios no sistema e em outras mquinas na rede. o Debian suporta dois agentes de e-mail: sendmail ou smail. Somente um agente de transferncia de e-mail pode ser instalado de cada vez. Eles fazem a mesma funo e no so projetados para coexistir. Assim, os pacotes sendmail e smail conflitam. Se voc tentar instalar o sendmail quando o smail j estiver instalado, o sistema de gerenciamento de pacotes do Debian vai se recusar a instal-lo. Da mesma forma, se tentar instalar o smail quando o sendmail j estiver instalado, o dselect (ou dpkg; veja abaixo) se recusar a instal-lo. Uma dependncia ocorre quando um pacote requer outro pacote para funcionar corretamente. Usando o exemplo do e-mail, usurios lem suas mensagens com programas chamados agentes de e-mail (MUAs - mail user agents). MUAs populares incluem elm, pine e Emacs. normal instalar vrios MUAs simultaneamente porque eles no so conflitantes. Mas MUAs no enviam e-mail - esse um trabalho dos MTAs. Assim, todos os MUAs dependem de um MTA. Um pacote tambm pode recomendar ou sugerir outros pacotes relacionados.

14.1.6

dselect dselect

Esta seo um breve tutorial sobre o

do Debian.

Para

122

informaes mais detalhadas, refira-se ao manual do dselect ftp://ftp.debian.org/debian/dists/stable/main/disks-i386/current/doc/dselectbeginner.en.html

em

dselect uma interface simples, orientada a menus, que ajuda a instalar os pacotes. Ele leva voc atravs do processo de instalao dos pacotes na ordem das opes do menu:

Debian Linux dselect package handling front end. 0. 1. 2. 3. 4. 5. 6. [A]ccess Choose the access method to use. [U]pdate Update list of available packages, if possible. [S]elect Request which packages you want on your system. [I]nstall Install and upgrade wanted packages. [C]onfig Configure any packages that are unconfigured. [R]emove Remove unwanted software. [Q]uit Quit dselect.

H duas maneiras de selecionar a opo do menu: escolha a opo usando as setas, ou pressione a tecla correspondente entre colchetes. 14.1.6.1 Access (Acesso)

Neste item voc escolhe o mtodo de acesso para obter e instalar os pacotes. Abbreviation cdrom nfs harddisk mounted floppy ftp Description install from a CD-ROM install from an NFS server (not yet mounted) install from a hard disk partition (not yet mounted) install from a file system which is already mounted install from a pile of floppy disks install using ftp

14.1.6.2

Update (Atualizao)

dselect l a base de dados de pacotes e cria uma base de dados dos pacotes disponveis para o seu sistema.

14.1.6.3

Select (Selecionar)

Este item seleciona os pacotes. Escolha os pacotes que voc quer e pressione <Enter>. Se voc tem uma mquina lenta, a tela pode ficar branca por uns 15 segundos. A primeira coisa que aparece a primeira pgina do arquivo de Ajuda. Voc pode ver esta tela pressionado "?" em qualquer momento que estiver na janela de seleo, e pode passar as pginas pressionando a tecla ponto (.). 123

Para sair da tela de seleo, aps todas as selees completas, pressione <Enter>. Voc retornar tela principal se no houver problemas com sua seleo. Se houver, voc ter de resolv-los primeiro. Quando estiver satisfeito com qualquer tela, pressione <Enter> Conflitos de dependncia so bem normais e at esperados. Se voc selecionou um pacote A e esse pacote requer o pacote no selecionado B para rodar, o dselect avisa sobre o problema e normalmente sugere a soluo. Se o pacote A conflita com o pacote B, voc ter de optar entre eles. 14.1.6.4 Install (Instalar)

passa pelos 800 pacotes e instala aqueles que voc selecionou. Voc ter de tomar algumas decises sobre o processo. Usualmente til abrir um outro shell para comparar, por exemplo, uma configurao antiga com a nova. Se a antiga chamada conf.modules, por exemplo, a nova ser conf.modules.dpkg-new.
dselect

A tela rola bem rpido em mquinas velozes. Voc pode parar a rolagem pressionando Control-S e reiniciar com Control-Q. No final, sobrar uma lista de pacotes no instalados. 14.1.6.5 Configure (Configurar)

A maior parte dos pacotes configurada no passo 3, mas o que sobrar pode ser configurado aqui. 14.1.6.6 Remove (Remover)

Remover os pacotes que no so mais necessrios. 14.1.6.7 Quit

Au revoir.

14.1.7

dpkg

Esta uma ferramenta por linha de comando que instala que instala e manipula pacotes Debian. Ela tem muitas opes que permitem instalar, configurar, remover ou realizar outras operaes nos pacotes Debian. Voc pode at criar seus prprios pacotes. dpkg tambm permite listar todos os pacotes disponveis, arquivos pertencentes aos pacotes, que pacotes detm um arquivo, e assim por diante. 14.1.7.1 Instalando ou atualizando pacotes novos ou existentes

Digite o seguinte comando: dpkg -i arquivo.deb


tcsh_6.06-11_i386.deb ).

Onde arquivo o nome do arquivo que contm o pacote Debian (ex: O dpkg parcialmente interativo. Durante a 124

instalao ele pode fazer perguntas adicionais, assim como instalar ou no uma nova verso de um arquivo de configurao ou manter a verso antiga. Voc tambm pode desempacotar um pacote sem configur-lo, entrando: dpkg --unpack arquivo Se um pacote depende de outro no instalado ou de uma nova verso de um que voc j tenha, ou se qualquer outro problema de dependncia ocorrer durante a instalao, dpkg sair sem configur-lo. 14.1.7.2 Configurando pacotes instalados

Se o dpkg aborta durante a instalao e deixa um pacote instalado, o pacote no foi configurado. O sistema de pacotes do Debian precisa que o pacote seja configurado para evitar problemas de dependncia. Alguns pacotes tambm necessitam ser configurados para funcionar corretamente. Para configurar um pacote, digite: dpkg --configure pacote Onde pacote o nome do pacote, como tcsh (note que este no o nome original do arquivo de onde o tcsh foi instalado, que era maior, incluindo o nmero da verso e terminado em .deb). 14.1.7.3 Removendo pacotes instalados

No sistema de pacotes do Debian, h duas maneiras de eliminar pacotes: as opes remove e purge (remover e limpar). A opo remove remove o pacote especificado; a opo purge remove tanto o pacote especificado quanto seus arquivos de configurao. O uso : dpkg -r package ou dpkg --purge package Se houver pacotes instalados que dependam daquele que voc quer remover, o pacote no ser removido, e o dpkg ir abortar com uma mensagem de erro. 14.1.7.4 Relatando a situao dos pacotes

Para informar a situao dos pacotes (ex: instalado, no instalado, ou no configurado), digite: dpkg -s package 14.1.7.5 Listando pacotes disponvies dpkg -l padro-de-nome-de-arquivo Onde padro-de-nome-de-arquivo um argumento opcional

Para listar os pacotes disponveis que fechem com um padro, digite:

125

especificando o padro para os nomes dos pacotes a encontrar, como *sh. Caracteres coringa do shell so permitidos. Se voc no especifica um padro, todos os pacotes instalados so listados. 14.1.7.6 Listando arquivos pertencentes por pacotes

Para listar todos os arquivos pertencentes a um pacote em particular, simplesmente digite: dpkg -L pacote No entanto, isso no lista os arquivos criados por scripts de instalao especficos dos pacotes. 14.1.7.7 Encontrando o pacote que detem um arquivo

Para encontrar o pacote ao qual o arquivo pertence, digite o seguinte comando: dpkg -S padro-de-nome-de-arquivo Onde padro-de-nome-de-arquivo o padro para procurar nos nomes de pacotes. Novamente, caracteres coringa do shell so permitidos.
14.1.7.8

Sumrio

simples de usar e preferido sobre o dselect quando tudo que voc tiver de fazer uma instalao, atualizao ou remoo de um pequeno nmero de pacotes. Ele tem tambm alguma funcionalidade que dselect (que uma interface para o dpkg) no tem, como encontrar o pacote ao qual pertence um arquivo. Para uma lista exaustiva de opes, refira-se pgina do manual do dpkg (8).
dpkg

14.1.8

Sobre o Debian GNU/Linux

O Projeto Debian GNU/Linux foi criado por Ian Murdock em 1993, inicialmente sob o patrocnio do projeto GNU da Free Software Foundation (FSF). Posteriormente, o Debian se separou da FSF. O Debian o resultado de um esforo voluntrio para criar um sistema operacional livre, de alta qualidade, compatvel com o UNIX e baseado no kernel do Linux, complementado com um conjunto de aplicaes. A comunidade Debian um grupo com mais de 150 voluntrios no remunerados de todo o mundo, que colaboram via Internet. Os fundadores do projeto formaram a organizao Software in the Public Interest (SPI) para patrocinar o desenvolvimento do Debian GNU/Linux. Software in the Public Interest uma organizao sem fins lucrativos formada quando a FSF retirou o patrocnio ao projeto Debian. A finalidade da organizao desenvolver e distribuir software livre. Seus objetivos so muito similares aos da FSF, e ela encoraja programadores a usar a licena GNU nos seus programas. No entanto, a SPI tem um foco levemente diferente ao construir e distribuir um sistema Linux que diverge em muitos detalhes tcnicos do sistema GNU planejado pela FSG. SPI ainda se comunica com a FSF e 126

coopera enviando alteraes ao software GNU e solicitando que seus usurios doem recursos FSF e ao projeto GNU. A SPI pode ser encontrada em: http://www.spi-inc.org/ ou Software in the Public Interest P.O. Box 70152 Pt. Richmond, CA 94807-0152

14.2 LINUX RED HAT


Instalao do Red Hat
Esta seo foi escrita por Henry Pierce.

14.2.1

Propriedades da instalao do Linux Red Hat Linux


Dependncias: sim Mtodo de inicializao da instalao: CD, disquete, loadin (a partir do DOS) Mtodos de instalao: CD, HD, NFS, FTP, SMB Inicializao do sistema: Sys V init Facilidade de instalao: fcil Ferramentas grficas de administrao: vrias Ferramenta de instalao: script de instalao chamado RPM Ferramenta para manuteno de pacotes: RPM, glint

14.2.2

O sistema de gerenciamento de pacotes RPM

O sistema de gerenciamento de pacotes do Red Hat (RPM) gerencia o software recolhendo informao sobre componentes e mtodos de instalao do pacote durante o processo de construo. Um pacote RPM tem um cabealho com dados organizados que podem ser adicionados a uma base de dados que descreve ao que esse pacote pertence, quais outros pacotes so necessrios, se os pacotes necessrios esto instalados, e fornece uma maneira de determinar dependncias de pacotes. O RPM d aos administradores do sistema a habilidade de: atualizar componentes individuais ou sistemas inteiros preservando a configurao do sistema ou pacote; pesquisar a base de dados sobre a localizao dos arquivos, pacotes, ou outra informao relacionada; realizar verificaes nos pacotes para instal-los corretamente; manter os fontes "puros" (manter as fontes do pacote do autor original e remendos - patches - de outros autores separadamente), para que problemas de portabilidade possam ser rastreados. 127

Por esse motivo, voc instalar, atualizar ou remover pacotes com uma simples linha de comando no modo texto ou poucos cliques de mouse no X. Exemplos usando o rpm por linha de comando so: rpm --install pacote.rpm # isto instala pacote rpm --upgrade pacote.rpm # isto atualiza pacote rpm --erase pacote.rpm # isto remove ou apaga pacote 14.2.2.1 Convenes de nome dos pacotes

Um pacote RPM bem construdo tem as seguintes caractersticas: o nome identifica o pacote, a verso, o nmero da reviso, a arquitetura; e a extenso .rpm o identifica como um pacote RPM. Peguemos, por exemplo, bash-1.14.7-1.i386.rpm . O nome por si s j contm informao til: o pacote o bash (o Bourne Again SHell), sua verso 1.14.7, e sua reviso 1 em relao verso corrente para o Red Hat. Foi construdo para o Intel 80386 ou compatvel e est no formato RPM. Assim, se voc vir um pacote chamado bash-1.14.7-2.i386.rpm , saber que a segunda reviso do bash verso 1.14.7, e provavelmente contm correes para verses anteriores e mais atual. A organizao interna de um arquivo rpm est alm do escopo desta seo, mas um pacote bem construdo contm um arquivo executvel, os arquivos de configurao, a documentao (no mnimo as pginas do manual), arquivos variados relacionados ao pacote, um registro indicando onde os arquivos devem ser instalados e um registro indicando os pacotes que so pr-requisitos. Depois da instalao bem sucedida, uma informao sobre o pacote registrada na base de dados RPM do sistema. Uma discusso mais completa do sistema de gerenciamento de pacotes RPM pode ser encontrada em http://www.rpm.org.

14.2.3

Uma nota sobre atualizao do Red Hat

Atualizaes do Red Hat somente so suportadas a partir da verso 2.0 devido a grandes mudanas no formato binrio do Linux. Atualizaes podem ser feitas atravs dos mesmos mtodos de instalao (CD-ROM, NFS, FTP e disco rgido). A partir da verso 4.0, a verso de atualizao tambm est disponvel a partir do disquete de atualizao, ao invs de um programa separado.

14.2.4

Criando disquetes de instalao

Para criar um kit de disquetes de inicializao, voc precisa: 1. da imagem do disquete de inicializao Red Hat, que est disponvel em ftp://ftp.redhat.com/pub/redhat/linux/current/en/os/i386/images/boot.img, ou no diretrio images do CD-ROM do Red Hat. 2. dos disquetes de drivers suplementares, isto se voc no for instalar a partir de um CD-ROM drvblock.img - Supplemental Block Device Drivers drvnet.img - Supplemental Network Drivers

128

Eles esto no mesmo diretrio do boot.img. 3. do programa RAWRITE.EXE disponvel em ftp://ftp.redhat.com/pub/redhat/linux/current/en/os/i386/dosutils/rawrite.exe, ou no CD-ROM do Red Hat 4. do FIPS.EXE - usurios Windows instalando Red Hat pela primeira vez na mquina, podem ter que obter o FIPS.EXE do endereo ftp://ftp.redhat.com/pub/redhat/linux/current/en/os/i386/dosutils/fips.exe para liberar espao na sua mquina. 5. criar um disquete de inicializao para o sistema operacional que est rodando atualmente na mquina. Este item para sua segurana.

14.2.5

Mdia de instalao

Depois de criar os disquetes de instalao usando o RAWRITE.EXE, assegure-se que seu mtodo de instalao est bem configurado para os disquetes do Red Hat. Para CD, NFS, FTP e discos rgidos, a fonte deve conter o diretrio /RedHat no nvel raiz, com os diretrios /base e /RPMS abaixo: /RedHat |------> /RPMS (contem os pacotes a serem instalados) |------> /base (contem o sistema base e arquivos para configurar o disco rgido) 14.2.5.1 Instalao por NFS

Para instalao por NFS, voc ou vai precisar de um CD-ROM Red Hat numa mquina que suporte e exporte sistema de arquivos ISO-9660 (sistema de arquivos padro do CD) com Extenses Rockridge, ou vai precisar de uma cpia da distribuio Red Hat num diretrio organizado como descrito acima e, obviamente, os arquivos dentro de cada diretrio. O diretrio /RedHat precisa ser exportado para as mquinas da rede que tero o Red Hat instalado ou atualizado. Essa mquina precisa estar na Ethernet. Voc no pode fazer uma instalao NFS por link discado. 14.2.5.2 Instalao por disco rgido

Instalaes por disco rgido precisam do diretrio /RedHat criado na raiz da partio (no importando qual partio) contendo a distribuio obtida de um CD ou site de FTP. Num sistema de arquivos MS-DOS, no importa que os nomes dos pacotes.rpm estejam truncados. Voc precisa apenas se certificar que o diretrio \RedHat\base contenha os arquivos base copiados de um CD ou site de FTP e que \RedHat\RPMS contenha todos os arquivos pacotes.rpm do CD ou site de FTP. A partir da voc poder instalar daquela partio.
Instalao por FTP

Para instalar via FTP pela Internet, voc precisa do endereo IP do servidor de FTP e do diretrio raiz para o sistema Red Hat que quer instalar. Se voc quer fazer uma instalao FTP com pouca largura de banda (qualquer

129

coisa menos que 128Kbps), melhor copiar os arquivos primeiramente para o disco rgido. O tamanho total dos pacotes no diretrio RPMS de aproximadamente 1GB e vai levar vrias horas para instalar. Se algo der errado com a instalao (o link cair, por exemplo), voc precisa comear tudo novamente. Se voc pegar os arquivos antes, ser menos trabalhoso e confuso para reiniciar de uma instalao que tenha falhado. Voc nem precisa fazer o download de todos os arquivos do diretrio RPMS para uma instalao mnima do Red Hat. Veja a prxima seo para detalhes.

14.2.6

Personalizando sua instalao por disco rgido ou NFS

Voc pode personalizar o processo de instalao. Somente os mais familiarizados com o Linux deveriam tentar. Na verso 7.2 do Red Hat o diretrio RPMS contem aproximadamente 1 GB de arquivos. Esses arquivos so compactados e assume-se que os pacotes precisem de 2 a 3MB de espao para cada 1MB no pacote RPM. Se o pacote RPM de 6MB, por exemplo, voc vai precisar entre 12 e 18MB de espao para instal-lo. Personalizar quais pacotes esto disponveis para instalao uma opo quando instalando o sistema via FTP, NFS e disco rgido. Voc tambm pode copiar os arquivos de um CD-ROM num disco rgido e instalar a partir de l com uma listagem personalizada. Instalaes via FTP e NFS s podem ser alteradas se voc tem acesso root ao servidor da rede ou se o administrador do sistema quer trabalhar com voc. As seguintes situaes podem tornar uma instalao personalizada desejvel: quando voc obtm o Red Hat via FTP com uma conexo lenta ou quando projetando um conjunto de software para ser usado por todas as estaes Red Hat numa rede. Para personalizar uma instalao, voc tem que obter o arquivo /base/comps, que contm a lista de pacotes que uma instalao completa normalmente inclui. Depois, faa o download dos pacotes que gostaria de instalar e modifique o /base/comps de sua instalao para refletir a lista de pacotes que voc escolheu. Se voc tem pacotes RPM locais, pode adicion-los no arquivo comps tambm. 14.2.6.1 O arquivo comps

O programa de instalao do Red Hat usa o arquivo /RedHat/base/comps (o arquivo usado aqui um exemplo do Red Hat Linux verso 4.0) para determinar quais pacotes esto disponveis no diretrio /RedHat/RPMS em cada categoria a ser instalada. O arquivo organizado por categoria e cada categoria contm uma lista de pacotes que o Red Hat acredita formarem o mnimo necessrio para aquela seo. Nota: somente a parte do nome do pacote (pacote-verso-reviso.rpm) listada no arquivo. Isso significa que o arquivo comps geralmente pode ser usado de uma verso do Red Hat para a outra. Uma seo nesse arquivo tem a seguinte estrutura: nmero categoria pacote ...

130

end Um tag para identificar o nmero da categoria, a categoria, uma lista de nomes de pacotes e a palavra end para marcar o fim de uma categoria That is a tag to identify the category number, the category, a list of the package names in the category, and the tag ``end'' to mark the end of the category. Sem excees, todos precisam dos pacotes de software listados na seo Base do arquivo. As outras sees geralmente podem ser personalizadas ou eliminadas para satisfazer uma necessidade particular. Por exemplo, h trs tipos de Networked Stations: "plain", management, e dial-up. Um exame destas sees mostra que muitos pacotes de software esto listados nas trs categorias, mas alguns pacotes de software so especficos para cada categoria. Se voc estiver criando uma estao Dial-up Networked, seguramente pode eliminar as sees "plain" e "management" e quaisquer pacotes nicos para essas categorias. Reciprocamente, se voc s precisa a capacidade bsica para estaes de trabalho (workstations) de rede, as outras sees podem ser eliminadas do arquivo assim como o software nico a essas sees. Voc precisa certificar-se que tenha todos os pacotes listados nessa categoria. Se voc tiver pacotes personalizados exclusivos (no fornecidos pela Red Hat), voc deve adicion-los a uma categoria existente que seja adequada e no criar uma nova categoria. Como a lista de pacotes em cada categoria s contm o nome do pacote (e no o nome inteiro, como pacote-verso-reviso.rpm), voc pode substituir qualquer atualizao que tenha sido disponibilizada pela Red Hat no diretrio updates. O programa de instalao relativamente insensvel verso. A nica precauo garantir que as dependncias sejam satisfeitas. Quando um pacote RPM construdo, o RPM mesmo tenta determinar quais pacotes devem ser instalados para que esse novo funcione (o desenvolvedor RPM tambm tem controle direto disto - ele pode adicionar dependncias que o RPM no detecte). Aqui onde um pouco de experimentao ou pesquisa pode ser necessria. Uma maneira de determinar dependncias de pacote, por exemplo, perguntar ao pacote com o comando rpm: rpm -q -p -R bash-1.14.7-1.i386.rpm libc.so.5 libtermcap.so.2 A opo "-q" pe o rpm em modo pergunta, a "-p" faz com que o rpm verifique um pacote no instalado, e "-R" diz ao rpm para listar as dependncias do pacote. Neste exemplo, libc.so.5 e libtermcap.so.2 so necessrias. Como libc e termcap so necessrios para o bash, voc tem que assegurar-se que os pacotes libc e libtermcap estejam presentes para instalar o bash. Desde que voc instale todo o sistema base, voc pode inicializar o sistema quando a instalao terminar. Voc pode adicionar pacotes extras ao Red Hat quando necessrio mesmo que o programa de instalao relate que a instalao de um pacote falhou porque suas dependncias no foram respeitadas. A tabela 2.4 descreve as categorias de software encontradas no arquivo comps (Red Hat v4.0)

131

RPM Category BASE C Development Development Libs C++ Development Networked Workstation Yes

Required?

Comments Should not be customized Need the minimal system to compile a kernel Need the minimal system to compile a kernel C++ Development Whether you are on an Ethernet or going to dialup networking, you need to install this package suite; You shouldnt customize this. If your LInux box is going to serve files via FTP or Gopher. Useful for Web Developers for local development, required if you serve Web Pages. Has additional tools useful for dialup as well as Ethernet network Required if you are going to dialup. Need I say more? Fortunes are required for humor. If you have supported hardware. If you want to run X If you have supported hardware. Installation of the entire package is recommended. The One True Editing Environment. Requires X. Huh? Manual pages should always be installed.

Highly Recommended Highly Recommended Optional Recommended; Required for other network software

Anonymous FTP/Gopher Optional Server Web Server Network Management Workstation Dialup Workstation Game Machine Multimedia Machine X Window System X Multimedia Support TEX Document Formatting Emacs Emacs with X Support MS-DOS and Microsoft Windows Connectivity Extra Documentation Optional Optional Recommended Optional Optional Optional Optional Optional Recommended Recommended Optional Required

Table 2.4: Pacotes importantes do Red Hat Linux.

14.2.7

Instalao mnima recomendada

difcil determinar quanto espao em disco uma instalao requer. Entretanto, algum instalando via FTP deveria pegar o sistema Base e o suporte para dialup e instalar somente isso. Pacotes adicionais podem ser obtidos e adicionados quando houver necessidade. Claro, se voc quer programar em C, deve pegar os pacotes relevantes e editar o arquivo comps apropriadamente. Se, durante a instalao, voc encontrar um pacote que requeira outro pacote que voc no tem, ou fizer um erro no arquivo comps, geralmente pode terminar a instalao e ainda ter um sistema inicializvel. Voc pode corrigir o problema adicionado manualmente o pacote que falhou e suas dependncias

132

posteriormente. Em geral, pegue o sistema Base inteiro e uma das opes de rede (Dialup Support, por exemplo), e voc poder adicionar qualquer outra coisa mais tarde.

14.2.8

Quanto espao voc realmente precisa?

A tabela 2.5 apresenta o espao em disco necessrio para o Red Hat Linux (verso 4.0) e vrios subsistemas.
Uso da Partio Swap Root system, sem o X Recomendado 2 x memria RAM 100 a 200 MB Dependendo de ferramentas, como compiladores, que forem necessrios Dependendo das ferramentas instaladas Depende do nmero de usurios. Depende do nmero de usurios. Usado por programas no no formato RPM. Comentrios

Root sytem, com o X /home /var /usr/local /usr

250 a 350 MB 5 a infinitos MB 5 a infinitos MB 25 a 200 MB 350+ MB

Table 2.5: Requisitos de espao em disco tpicos do Red Hat Linux v4.0.

14.2.9

Instalao

At agora, voc j deve ter seu kit de disquetes de instalao criado, preparado seu disco rgido e ter sua mdia de instalao pronta. Os detalhes da instalao esto adiante. A primeira coisa inicializar seu sistema e configurar o programa de instalao para instalar a partir da mdia selecionada. Depois disso, a instalao segue com os mesmos passos para todos. Voc precisa reiniciar o computador com o disquete chamado "Disquete de Inicializao" (Boot Disk).

14.2.10

Ainda sobre a mdia de instalao

Quando o disquete de inicializao inicia, o kernel tenta detectar qualquer hardware para o qual tenha drivers compilados. Uma vez que a inicializao completada, uma mensagem aparece perguntando se voc tem um monitor colorido (se tiver, selecione "ok"). Depois vem a tela de Boas Vindas do Red Hat. Escolha "ok" para continuar. A prxima pergunta se voc precisa de suporte PCMCIA. Voc deve responder "yes" (sim) se estiver instalando num laptop - insira o disque suplementar quando solicitado. Depois disso, apresentada uma tela que pede qual tipo de mtodo de instalao deve ser usado. Siga as instrues nas prximas sees.

133

14.2.10.1

Instalao por CD-ROM

Para instalar de um CD-ROM, marque a opo "Local CD-ROM" da lista e clique "ok". O programa perguntar se voc tem um SCSI, IDE/ATAPI ou CD-ROM proprietrio. Se voc escolher SCSI, ter de saber que tipo de placa SCSI voc tem. O programa mostrar uma lista. Encontre sua placa na lista. Depois de selecion-la, o programa perguntar se voc quer um "AUTOPROBE" (deteco automtica) ou "SPECIFY OPTIONS" (especificar opes). A maioria escolheria AUTOPROBE, o que faz o programa procurar por sua placa SCSI e habilitar suporte para ela quando encontrada. Depois do programa ter localizado o CD-ROM do Red Hat com sucesso, leia a prxima seo. NOTA: Muitos computadores atualmente podem inicializar automaticamente do CD-ROM. Se voc tem uma mquina assim voc pode inicializar diretamente com o CD-ROM do Red Hat sem usar os disquetes de inicializao. Depois de inicializar, voc poder instalar o sistema a partir do CD-ROM, mas inicializando do CD equivalente a inicializar com o disquete; qualquer driver adicional ainda pode ser necessrio. 14.2.10.2 Instalao a partir do disco rgido

Para instalar do disco rgido, selecione essa opo e escolha "ok". 14.2.10.3 Instalao por NFS

Para instalar por NFS, selecione esta opo e escolha "ok". Voc deve escolher a placa Ethernet instalada na mquina para que o programa possa carregar o driver correto. Marque a placa adequada na lista e selecione "ok", permitindo um "AUTOPROBE" na sua placa. Se sua mquina trancar, voc deve pressionar Ctrl-Alt-Delete para reiniciar o sistema. Grande parte das vezes, quando isso ocorre porque a deteco tentou se comunicar com uma placa no ethernet. Se acontecer, tente novamente com a opo "SPECIFY OPTIONS" e fornea os dados sobre sua placa na forma: ether=IRQ,IO_PORT,eth0 Isso instrui o programa a olhar na localizao especificada pelos valores de IRQ e IO_PORT da placa Ethernet. Se sua placa Ethernet configurada para IRQ11 e I/O 0x300, especifique: ether=11,0x300,eth0 Nota: isso no necessrio para placas plug and play, como a maioria das placas PCI. Depois que a placa foi encontrada com sucesso, voc ter que fornecer informao de TCP/IP sobre sua mquina e sobre o servidor NFS com os pacotes de instalao. Primeiro voc ter que fornecer o endereo IP da mquina a ser instalada, a mscara de rede, o gateway padro, e o servidor de DNS primrio. Por exemplo:

134

IP Address: 192.168.181.21 Netmask: 255.255.255.0 Default Gateway: 192.168.181.1 Primary Nameserver: 192.168.181.1 Depois de selecionar ok, ter de fornecer o nome de domnio e o nome da mquina. Por exemplo, se seu nome de domnio infomagic.com e seu computador se chama vador, entre: Domainname: infomagic.com Host name: vador.infomagic.com Secondary nameserver IP: servidor DNS secundrio - entre se necessrio Tertiary nameserver IP: servidor DNS tercirio - entre se necessrio A ltima tela pede o servidor NFS e o nome do diretrio exportado contendo a distribuio Red Hat. Se o seu servidor NFS , por exemplo, redhat.infomagic.com, entre: NFS Server name: Red Hat Directory: redhat.infomagic.com /pub/mirrors/linux/RedHat

Se voc desconhece esses dados, pergunte ao seu administrador de sistema. Depois de entrar esses valores, selecione ok para continuar. Se o programa de instalao relata um erro ao localizar a distribuio do Red Hat, esteja certo de ter entrado os valores corretos nos campos acima e que o administrador de sua rede tenha dado permisses de exportao corretas para a sua mquina. 14.2.10.4 Instalao por FTP

A instalao por FTP similar instalao por NFS descrita acima. Voc questionado sobre sua placa Ehternet e a informao TCP/IP de sua mquina. Entretanto, o programa tambm perguntar sobre o site FTP e o diretrio onde est o Red Hat ao invs do servidor NFS. Uma nota sobre fazer uma instalao FTP: procure o site FTP mais prximo e menos ocupado.

14.2.11

Passando pelo resto da instalao

1. No prximo passo voc ter de informar se est instalando um Novo Sistema ou Atualizando de outro antigo. Se estiver atualizando, no poder reparticionar o disco ou configurar qualquer coisa no sistema que no seja o LILO. Selecione "INSTALL" ou "UPGRADE" para continuar. 2. Se voc estiver atualizando, dever informar a partio root do seu sistema Red Hat atual. Selecione a partio apropriada e pressione ok. Se voc est instalando pela primeira vez, voc precisa particionar seu disco com o espao determinado acima. 3. Depois de criar as parties de Linux Nativa e de Swap, voc deve reiniciar e habilitar a partio de swap. O programa ir perguntar em qual partio voc quer instalar o Linux. Se for uma atualizao, 135

selecione a partio root. Voc tem que configurar e escolher pelo menos uma partio, que ser sua partio root. Selecione a partio root e ento (a menos que esteja atualizando) aparecer uma tabela de parties disponveis. Escolha as parties apropriadas e a opo "EDIT" para indicar quais parties sero usadas para cada diretrio. Se tiver mais de uma partio para a instalao do Linux, agora a hora de design-las. 4. Depois, uma lista de categorias de software a serem instalados apresentada, seguida de uma chance de personalizar quais pacotes de cada categoria devem ser instalados. Se voc no tiver instalado o Red Hat ou outra distribuio Linux antes, simplesmente escolha as categorias que quiser e deixe o programa de instalao instalar o padro para cada categoria. Se precisar de um pacote que no foi instalado originalmente, voc sempre pode instal-lo no futuro. Enquanto o software estiver instalando, voc vai ver um indicar de progresso e deveria tomar um ou dois cafs. A instalao pode levar 30 min a uma hora ou at mais, dependendo de sua configurao de hardware e escolha de pacotes. 5. Depois da instalao feita, voc poder configurar seu mouse. 6. A seguir vem a configurao do sistema X Window. recomendado que voc espere at que inicialize o sistema pela primeira vez para iniciar a configurao do X. Se algo sair errado com a configurao do X, voc pode ter que reiniciar todo o processo de instalao se o programa de instalao no conseguir se recuperar. 7. Se voc no tem uma placa Ethernet, no configure sua rede agora. Se voc tem uma placa de rede e no a configurou antes, voc deve configur-la agora. Configurao para acesso discado deve ser feita aps completar a instalao. 8. A seguir voc deve configurar o relgio do sistema. UTC (Coordinated Universal Time) uma boa escolha se voc estiver numa rede e quiser que horrios de vero sejam configurados adequadamente. "Local Time" est ok se voc tem um computador isolado. 9. Se voc no tem um teclado US, ter de especificar a configurao do seu teclado. 10. O sistema vai pedir pela senha de root. No a esquea. Recuperar uma senha de root no um problema trivial. Voc vai precisar da senha para acessar o sistema quando inicializ-lo pela primeira vez. 11. Finalmente vir a configurao do LILO. Se voc no tiver instalado uma partio root que inicie e termine entre os cilindros 0-1023, no instale o LILO. Se houver um problema na inicializao do sistema, use o disquete de inicializao do Windows e no prompt A: entre FDISK /MBR. Isso vai permitir que voc inicialize o sistema no Windows como fazia antes do LILO ser instalado. Voc ento poder usar o disquete de inicializao do Red Hat com os seguintes parmetros no prompt de inicializao para iniciar o sistema pelo disco rgido: boot: rescue root=/dev/particao-root ro load_ramdisk=0

136

Onde particao-root a partio root do sistema. Depois que a instalao estiver completa, voc estar pronto para reiniciar o sistema e usar o Linux.

14.2.12

Aps a instalao

Agora que voc j instalou e reiniciou o sistema com o Linux pela primeira vez, h algumas dicas teis a conhecer. 14.2.12.1 Entendendo o prompt do LILO

Quando voc liga ou reinicia o sistema, voc pode ver o prompt do LILO, que deve estar configurado para um intervalo de 30 segundos antes que ele inicie automaticamente. Quando o LILO aparece na tela, se voc no fizer nada, o sistema operacional padro ir inicializar no tempo ajustado. Entretanto, a partir do LILO voc pode controlar vrios aspectos de como o Linux inicializa ou ainda indicar um outro sistema operacional para que o LILO inicialize. Se voc quiser cancelar o comportamento padro do LILO, apertando Shift quando ele aparecer vai causar o aparecimento do prompt "boot:". Pressionado Tab, uma lista de sistemas operacionais disponvies vai aparecer: LILO boot: dos linux boot: Isso indica-nos que o "dos" o sistema operacional padro, que vai inicializar se nada for digitado. Para inicializar o Linux, digite "linux". Entretanto, o LILO permite que voc passe parmetros ao kernel do Linux que alteram seu comportamento padro. Voc pode estar experimentando com arquivos de configurao e fez algo que impediu o sistema de iniciar, por exemplo. Se isso aconteceu, voc quer iniciar o sistema at o ponto que ele l os arquivos de configurao e nada alm disso. O parmetro para isso "single": boot: linux single Inicializa o sistema no modo mono-usurio para que voc possa tomar a ao corretiva. Isso tambm til se o seu sistema no inicializa por qualquer motivo. 14.2.12.2 Logando no sistema pela primeira vez

Agora que voc est na frente do prompt de login: pela primeira vez, pode estar imaginando como entrar no sistema. Neste momento, num sistema recm instalado, h somente uma conta para entrar - a conta administrativa "root". Essa conta usada para gerenciar o sistema e fazer outras coisas, como configur-lo, adicionar ou remover usurios, software, etc. Para entrar na conta, digite "root" no prompt "login:" e pressione <Enter>. O sistema pedir a senha que voc escolheu durante a instalao. Entre a senha no prompt "password:". O prompt do sistema "[root@localhost] #" aparece depois voc ter tido sucesso no login. O prompt do sistema diz a voc duas coisas: voc est logado como "root" e, neste caso, sua mquina se chama "localhost". Se voc

137

deu nome a sua mquina durante o processo de instalao, esse nome aparecer no lugar de "localhost".

14.3 Slackware
Esta seo sobre o Slackware foi escrita por Sean Dreilinger.

14.3.1

O Slackware no para voc. (Ou tal vez seja.)

Bem vindo distribuio Slackware do Linux! Esta seo tem por objetivo ajudar o novo usurio ou administrador Linux a avaliar o Slackware, planejar um sistema Slackware e instalar o Slackware Linux. Escolher ou no o Slackware uma deciso difcil. Pode parecer trivial agora, mas os ambientes Linux tm a tendncia de irem acumulando mais e mais responsabilidade nos ambientes computacionais. Muitos Linux experimentais evoluram no seu primeiro ano para se tornarem mquinas de misso-crtica servindo muito mais usurios e propsitos do que inicialmente planejado. Slackware uma das distribuies mais usadas. Quando se trata de encontrar a distribuio mais nova, fcil ou mais cuidadosamente planejada do Linux, podemos dizer que o Slackware se encaixa em "nenhuma das respostas acima". Uma retrospectiva sobre a vida e evoluo do Slackware nos esclarece a questo.

14.3.2

Uma breve histria

Em 1993, a Soft Landing System (SLS) criou uma das primeiras distribuies organizadas do Linux. Embora fosse um grande passo, a distribuio da SLS tinha muitos defeitos (na verdade nem funcionava, para iniciantes). O Slackware, uma ddiva de Deus enviada por Patrick Volkerding, resolveu a maioria dos problemas, foi copiado via FTP e impresso em CDROMs em todo o mundo, e rapidamente se tornou a distribuio mais usada do Linux. Por algum tempo, o Slackware foi a nica "soluo" completa do Linux. Outros mantenedores, tanto comerciais como sem fins lucrativos, gradualmente desenvolveram distribuies que valem a sua considerao. Em Janeiro de 1994, o Slackware atingiu tamanha expanso que ganhou notoriedade popular normalmente reservada para pop stars. Uma fofoca se espalhou pela Usenet sugerindo que o projeto Slackware era trabalho de bruxas e adoradores do diabo! "Linux, o sistema livre... exceto pela sua ALMA! MOUHAHAHAHA!''

14.3.3

Por qu, ento?

Se voc um administrador de sistema, pode ser que j esteja lidando com um ou mais servidores chave usando o Slackware. A menos que voc tenha tempo de experimentar no trabalho, aderir a uma distribuio j amplamente testada o caminho mais fcil a seguir. Se voc espera conseguir ajuda de amigos ou colegas letrados em UNIX, melhor ter certeza

138

que eles estejam rodando algo compatvel - e provvel que estejam usando Slackware. Seus defeitos so amplamente conhecidos, em sua maioria j descobertos, documentados e corrigidos quando possvel. Voc pode juntar um Slackware, tapar os furos conhecidos, e instalar algumas ferramentas complementares de outras distribuies Linux para criar um excelente servidor UNIX ou estao de trabalho, tudo em meio dia de trabalho.

14.3.4

Atualizao? Pense duas vezes!

24-Aug-95 NOTE: Tentar atualizar do Slackware ELF para o Slackware a.out ir, com certeza, causar todo o tipo de problemas. No tente isso. Patrick Volkerding Uma coisa que voc no escuta freqentemente no Slackware atualizao. Os programas de configurao do Slackware foram planejados para instalar um sistema novo em discos rgidos vazios ou parties vazias. Instalar um Slackware sobre uma instalao antiga pode apagar suas aplicaes personalizadas e causar problemas de compatibilidade entre aplicaes atualizadas e arquivos antigos no mesmo sistema. Quando o Slackware foi montado, todo o mundo era um novo usurio Linux, e o sistema era sempre experimental - reinstalar o sistema operacional inteiro e as aplicaes era a norma. Hoje, muitas instituies e empresas rodam aplicaes de misso-crtica num Slackware. Nesse ambiente, uma simples reinicializao uma atividade planejada e colocar o sistema abaixo e sobreescrever os arquivos de usurios e aplicaes personalizadas absolutamente inaceitvel. Ensinar como enganar um Slackware para atualiz-lo est alm do escopo deste captulo, mas praticvel se voc for um administrador UNIX experimentado e tiver tomado as precaues necessrias para preservar as modificaes e arquivos de usurios. Voc pode ler, chorar e aprender a partir da experincia de Greg Louis no seu mini HOWTO "Upgrading Your Linux Distribution", disponvel onde houver um mirror do LDP (Linux Documentation Project). A home page do LDP : http://www.linuxdoc.org

14.3.5

Selecione um mtodo de instalao

O Slackware pode ser instalado a partir de meios variados, inclusive a rede. Todos os mtodos requerem que voc tenha no mnimo dois disquetes para dar incio ao processo.

14.3.6

Discos de inicial izao: sempre uma boa idia

Mesmo que voc tenha uma conexo T-3 com a Internet, que permite que voc sugue uma distribuo do Slackware imediatamente da rede, melhor comear criando os dois discos de inicializao do Slackware (boot e root) antes de iniciar. Se ocorrer um acidente (falta de luz, amigos maliciosos metendo a mo no teclado, ou mesmo um erro humano), esses dois disquetes 139

podem reviver seu sistema ou ao menos recuperar seus arquivos pessoais.

14.3.7

Planilha para instalao do Slackware

Depois de copiar todos os arquivos, o Slackware pode continuar e fazer a maioria das configuraes de rede e sistema, se voc estiver pronto. Para ajud-lo a planejar suas decises, esta seo consiste de uma planilha derivada do programa de instalao do Slackware. Se puder usar esta planilha para guardar suas respostas antecipadamente (enquanto seu computador ainda est trabalhando!), estar pronto com os detalhes necessrios parties, endereos IP, IRQ do modem e mouse, nomes do computador e de domnio, e outros que voc ter de fornecer durante a instalao. 1. Teclado: O programa de instalao do Slackware setup vai querer saber se voc precisa remapear o teclado para algo diferente do padro USA 101 teclas? sim ou no 2. Configurao do Swap: Voc j tem uma partio preparada com tipo 82 (Linux Swap)? sim ou no Voc quer que o programa de instalao use o mkswap nas suas parties de swap? Normalmente "sim", a no ser que j tenha feito isso antes. sim ou no 3. Preparando a Partio Principal do Linux: O setup vai listar todas as parties do tipo 83 (Linux Native) e perguntar qual voc quer usar como partio root (/). Use o formato do tipo /dev/hda3 ou como o dispositivo for chamado. nome da partio ltima chance de recuar! Quando usar a opo "instalar do incio", voc tem que instalar para uma partio em branco. Se ainda no a tiver formatado, voc ter de faz-lo quando solicitado. Entre "i" para Instalar do incio ou "a" para adicionar novos programas ao seu sistema existente. [i]nstalar or [a]dicionar (Re)formatar a partio principal do Linux. Voc quer formatar esta partio? sim, no ou checar setores tambm O sistema de arquivos ext2fs tem por padro um inode (apontador para arquivo) para cada 4096 bytes de espao. Se voc planeja ter muitos pequenos arquivos no seu disco, voc pode precisar mais inodes (vai precisar de um para cada arquivo). Voc pode mudar a densidade para um inode por 2048 bytes ou mesmo um para cada 1024 bytes. 4096 (default). 2048, or 1024 4. Preparando Parties Linux Adicionais: Voc pode montar outras 140

parties para o /usr ou /usr/X11 ou o que quer que seja . Voc quer usar alguma outra partio Linux para montar alguns de seus diretrios? sim ou no Estas so suas parties Linux (lista ser mostrada). Estar parties j esto em uso (outra lista mostrada). Entre a partio que gostaria de usar, ou digite "q" (quit) para sair. Use o formato como /dev/hda3 ou qualquer que seja o nome de seu dispositivo. Nome da partio ou [q]uit Quer formatar esta partio? sim, no ou checar setores tambm Agora esta nova partio precisa ser montada em algum ponto de sua rvore de diretrios. Se quiser coloc-la sob /usr/X11R6, por exemplo, responda /usr/X11R6. Onde quer montar esta nova partio? Ponto de montagem Quer montar algumas parties adicionais? sim ou no 5. Configurao de parties DOS e OS/2: As seguintes parties DOS FAT ou OS/2 HPFS foram encontradas (lista de parties mostrada). Voc quer configurar alguma dessas parties para ser visvel a partir do Linux? sim ou no Por favor entre a partio que gostaria de acessar do Linux, ou digite "q" (quit) para sair. Use o formato como /dev/hda3 ou qualquer que seja o nome de seu dispositivo. Nome da partio ou [q]uit Agora esta nova partio deve ser montada em algum lugar na sua rvore de diretrios. Por favor entre o diretrio sob o qual gostaria de coloc-la. Voc pode escolher /dosc ou /dosd ou qualquer coisa que deseje. Onde quer montar esta partio? Ponto de montagem 6. Seleo de Mdia:
(a) (b) (c) (d) (e) Install from a hard drive partition Install from floppy disks. Install via UFS. Install from a pre -mounted directory. Install from CD -ROM.

7. Instalando de uma partio do disco rgido: Para instalar diretamente de um disco rgido, voc tem que ter uma partio contendo a distribuio Slackware com um subdiretrio para cada disco. Se a distribuio est em /stuff/slack, por exemplo, voc vai precisar de diretrios /stuff/slack/a1, /stuff/slack/a2, e assim por diante, cada um

141

contendo os arquivos que estariam naquele disco. Voc pode instalar de parties DOS, HPFS ou Linux. Entre a partio onde se encontram as fontes do Slackware, ou pressione "p" para listar as parties. Nome da partio ou lista de [p]arties Em que diretrio nesta partio esto os fontes do Slackware? No exemplo acima, seria /stuff/slack. Nome do diretrio Que tipo de sistema a partio que contm a distribuio contm?
(a) (b) (c) (d) (e) FAT (MS-DOS, DR-DOS, OS/2) Linux Second Extended File System Linux Xiafs Linux MINIX OS/2 HPFS

8. Instalando de um diretrio pr-montado: Okay, ns vamos instalar a partir de um diretrio que j est montado. Ele pode estar montado normalmente ou por NFS. Voc tem que especificar o nome do diretrio que contm os subdiretrios com os arquivos da distribuio. A partir de qual diretrio voc quer instalar? Nome do diretrio 9. Instalando de disquetes: As sries bsicas do Slackware (A) podem ser instaladas a partir de disquetes 1.44MB. The base Slackware series (A) can be installed from 1.2M or 1.44M media. Most of the other disks will not fit on 1.2M media, but can be downloaded to your hard drive and installed from there later. Which drive would you like to install from (1/2/3/4)? /dev/fd0u1440 (1.44M drive a:) /dev/fd1u1440 (1.44M drive b:) /dev/fd0h1200 (1.2M drive a:) /dev/fd1h1200 (1.2M drive b:)

10. Instalando via NFS: Esta mquina est atualmente rodando na rede da qual voc quer instalar? Se est, no vamos tentar reconfigurar sua placa ethernet. Sua rede est rodando? sim ou no Voc precisa entrar o endereo IP que voc quer atribuir a esta mquina. Exemplo: 111.112.113.114. Qual seu endereo IP? Endereo IP Agora precisamos saber sua mscara de rede. Tipicamente seria 255.255.255.0. Qual sua mscara de rede? Mscara de rede

142

Voc tem um gateway? sim ou no Qual o endereo do seu gateway? Endereo IP Bom! Estamos no final, mas precisamos saber onde esto os pacotes a instalar. Primeiro, precisamos do endereo IP da mquina onde esto os fontes do Slackware. Como voc j est na rede, deve ser capaz de usar o nome da mquina ao invs do endereo IP. Qual o endereo IP do seu servidor NFS? Endereo IP Deve existir um diretrio no servidor com os fontes do Slackware com subdiretrios para cada disco. O setup precisa saber o nome do diretrio que contem os subdiretrios no servidor. Por exemplo, se seu disco A3 est em /slackware/a3, voc deve responder /slackware. Qual o diretrio? Nome do diretrio 11. Instalado deCD-ROM: Qual tipo de CD-ROM voc tem? (a) Works with most ATAPI/IDE CD drives (/dev/hd*) com IDE (b) (c) (d) . . . (m) Try to scan for your CD drive a, b, c, d, e, f, g, h, i, j, k, l, m CD-ROM IDE: Entre o nome do dispositivo que representa seu disco de CD-ROM. Provavelmente ser um destes (em ordem do mais ao menos provvel): /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg /dev/hdh /dev/hda Nome do dispositivo CD-ROM SCSI: Qual CD-ROM SCSI voc est usando? Se no estiver certo, use /dev/scd0. 1. 2. /dev/scd1 /dev/scd0 # tentar procurar o CD SCSI (/dev/scd0 ou /dev/scd1) Sony CDU31A/CDU33A (/dev/sonycd) Sony 531/535 (/dev/cdu535) # trabalha

mtodo de instalao: Com o CD do Slackware, voc pode rodar a maior parte do sistema a partir dele, se estiver com pouco espao em disco ou quer apenas testar o Linux sem passar por uma instalao completa. Qual tipo de instalao voc quer (slackware ou slacktest)? slakware

143

Instalao normal no disco rgido slaktest Linca /usr->/cdrom/live/usr para rodar principalmente do CD. slakware or slaktext 12. Seleo das Sries: Identifique que pacotes voc planeja instalar. Voc deve especificar uma combinao de discos. Por exemplo, para instalar o sistema base, o X Window e o Tcl Toolkit, voc entraria : a x tcl. Que conjuntos quer instalar? A AP Sistema Linux Base Vrios aplicativos que no precisam do X

D Utilitrios para Desenvolvimento (C, C++, fontes do kernel, Lisp, Perl, etc) E F K N GNU Emacs listas de FAQ Fontes do Kernel do Linux Rede (Networking) - TCP/IP, UUCP, Mail

Q Kernels extras com drivers especiais (necessrios para CDs no SCSI) T TeX TCL Tcl/Tk/TclX, linguagem Tcl, e toolkit Tk para desenvolver aplicaes X X XD XV Y sistema X Window sistema de desenvolvimento para o servidor X11 XView (Gerenciador de Janelas OpenLook e aplicativos) Jogos (que no usam o X) XAP Aplicaes para o X

Qualquer combinao de a ap d e f k n q t tcl x xap xd xv y e outros conjuntos oferecidos, separada por espaos. 13. Instalao do Software: A seguir, os pacotes de software sero transferidos para o seu disco rgido. Se esta a primeira vez que estiver instalando o Linux, provavelmente usar o modo PROMPT. No modo prompt voc poder pedir a instalao de outros pacotes. Se voc no usar o modo prompt, o programa de instalao ir adiante e instalar tudo que voc selecionou sem perguntar. Voc quer usar o modo prompt? sim ou no 14. Configurao Extra: Se voc quiser, pode passar pelas opes e reconfigurar seu harware, criar um disco de inicializao e instalar o LILO. Se tiver instalado uma nova imagem do kernel, voc deve passar por estes passos novamente. De outra forma, voc decide.

144

sim ou no 15. Criao do Disquete de Inicializao: recomendado que voc crie um disco de inicializao. Quer fazer isto? sim ou no Insira um disco formatado no drive. Esse ser seu disco de inicializao. Use-o para inicializar o Linux at que o LILO tenha sido configurado para inicializar de seu disco rgido. Qualquer dado no disquete ser destrudo. Insira o disco e pressione <Enter>, ou "s" se quiser saltar esta etapa. <Enter> ou [s]altar 16. Configurao do Modem: Um link em /dev ser criado do seu dispositivo de discagem (cua0, cua1, cua2 ou cua3) para /dev/modem. Voc pode mudar esse link depois se colocar o modem em outra porta. Quer configurar seu modem? sim ou no Estes so as portas seriais padro para os dispositivos E/S. Em qual seu modem est ligado (0, 1, 2 ou 3)? 0 1 2 3 /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 (ou COM1: no DOS) (ou COM2: no DOS) (ou COM3: no DOS) (ou COM4: no DOS)

0, 1, 2, or 3 17. Configurao do Mouse: Um link ser criado em /dev do seu mouse para /dev/mousr. Voc pode mudar esse link posteriormente se mudar o mouse de porta. Quer configurar seu mouse? sim ou no Estes tipos so suportados. Que tipo de mouse voc tm? (a) (b) (c) (d) (e) (f) (g) compatvel com serial Microsoft Quickport ou PS/2 Logitech Bus Mouse ATI XL Bus Mouse Microsoft Bus Mouse Mouse Systems serial mouse Logitech serial mouse

a, b, c, d, e, f ou g Estas so as portas padro de E/S. Em qual seu mouse est conectado? 0 1 2 /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 (ou COM1: no DOS) (ou COM2: no DOS) (ou COM3: no DOS)

145

/dev/ttyS3

(ou COM4: no DOS)

0, 1, 2, or 3 18. Configurao de Rede: Agora vamos tentar configurar seu mail e TCP/IP. Esse process possivelmente no vai funcionar em todas as configuraes de rede possveis, mas deve ser um bom comeo. Voc poder reconfigurar seu sistema a qualquer tempo chamando netconfig. Primeiro, precisamos do nome que quer dar para sua mquina. Somente o nome base necessrio agora (no o nome de domnio). Entre o nome do host (mquina): Nome do Host Agora precisamos do nome do domnio. No deve iniciar com ".". Entre o nome do domnio. Nome do domnio Se voc planeja usar TCP/IP atravs de loopback, ento seu endereo IP ser 127.0.0.1, e podemos pular uma srie de perguntas. Planeja usar somente loopback? sim ou no Entre o endereo IP para a mquina local. 111.112.113.114. Endereo IP Entre o endereo do gateway (exemplo: 111.112.113.1). Gateway a mquina responsvel por trocar dados com outras mquinas fora de sua rede. Se voc no tem um gateway agora, pode editar o /etc/rc.d/rc.inet1 posteriormente , ou at mesmo colocar seu prprio endereo IP aqui. Entre o endereo IP do gateway: Endereo IP Entre sua mscara de rede. Geralmente deve ser algo como: 255.255.255.0. Entre a mscara: Mscara de rede Voc vai acessar um servidor de nomes (DNS)? sim ou no Por favor indique o endereo IP do servidor. Voc pode adicionar outros Servidores de Nome editando /etc/resolv.conf. Qual o servidor de nomes do seu domnio? Endereo IP Agora voc pode reinicializar seu computador pressionando Ctrl-Alt-Del. Se voc instalou o LILO, remova o disco de inicializao antes de reiniciar. No esquea de criar seu /etc/fstab se no tiver um! Exemplo:

14.3.8

Fazendo o Slackware acontecer

Se voc separou um tempo para organizar e planejar como recomendado nas sees anteriores, a instalao mesmo ser um abrao. No h muito o que escrever para explicar o processo real de instalar o 146

Slackware no seu computador. Siga os passos para criar os disquetes de boot e root e responda a longa srie de perguntas feitas pelo programa de instalao. Se voc completou a planilha, essas perguntas sero familiares e tudo correr tranqilamente.

14.3.9
14.3.9.1

Criando alguns discos de boot


Escolha seu kernel!

Para instalar o Slackware Linux, voc vai precisa criar um disquete de boot com um kernel especialmente preparado para reconhecer seu sistema. Para instalar o Slackware de um CD-ROM num disco SCSI, por exemplo, o kernel que voc colocar no disquete de boot precisa ter os drivers para sua placa SCSI e para seu disco de CD-ROM. Os kernels so armazenados como arquivos binrios compactados que voc pode acessar de quase todos os sistemas operacionais para criar o disquete de Boot do Slackware. No site de FTP da Slackware, ou no CD-ROM, voc vai encontrar um subdiretrio chamado bootdsks.144 contendo imagens de kernel de1.44 MB para criar os disquetes de boot de 1.44MB (3,5''). As tabelas 2.6 e 2.7 do uma rpida referncia das imagens de kernel disponveis no momento que este livro foi escrito. Informaes atualizadas sobre os disquetes de boot podem ser encontradas em: ftp://ftp.slackware.org/pub/slackware/slackware/bootdsks.144/README. TXT

147

File aztech.i

IDE Slackware bootdisks CD-ROM drives: Aztech CDA268 -01A, Orchid CD-3110, Okano/Wearnes CDD110, Conrad TXC, CyCDROM CR520, CR540 IDE support only. Sony CDU31/33a CD-ROM. Sony CDU531/535 CD -ROM. Philips/LMS cm206 CD -ROM with cm260 adpter card. Goldstar R420 CD -ROM (sometimes sold in a Reveal "Multimedia Kit"). NON-IDE Mitsumi CD-ROM support. Inproved support. NON-IDE Mitsumi CD-ROM

bare.i cdu31a.i cdu535.i cm206.i goldstar.i mcd.i mcdx.i net.i optics.i sanyo.i sbpcd.i

Ethernet support. Optics Storage 8000 AT "DOLPHIN" drive). CD -ROM (the

Sanyo CDR-H94A CD-ROM support. Matsushita, Kotobuki, Panasonic, CreativeLabs (Sou nd Blaster).Longshine and teac NON -IDE CD-ROM support. MFM hard drive support.

xt.i

Tabela 2.6: Imagens de disquetes de boot Slackware IDE

148

File 7000fast.s Advansys.s Aha152x.s Aha1542.x Aha1740.s Aha2x4x.s

SCSI/IDE Slackware bootdisks: Western Digital 7000FASST SCSI support. AdvanSys SCSI support. Adaptec 152x SCSI support. Adaptec 1542 SCSI support. Adaptec 1740 SCSI support. Adaptec AIC7xxx SCSI support (For these cards: AHA-274x, AHA-2842, AHA-2940, AHA2940W, AHA-2940U, AHA-2940UW, AHA-2944D, AHA-2944WD, AHA-3940, AHA-3940W, AHA-3985, AHA-3985W) AMD AM53/79C974 SCSI support. All supported SCSI cont rollers, plus CD -ROM support for Aztech CDA268 -01A, Orchid CD3110, Okano/Wearnes CDD110, Conrad TXC, CyCDROM CR520, CR540. Buslogic MultiMaster SCSI support. All supported SCSI controllers, plus CD -ROM support for Sony CDU31/33a. All supported SCSI contro llers, plus CD-ROM support for Sony CDU531/535. All supported SCSI controllers, plus Philips/LMS cm206 CD -ROM with cm260 adpter card. DTC (Data support. Technology Corp) 3180/3280 SCSI

Am53c974.s Aztech.s

Buslogic.s Cdu31a.s Cdu535.s Cm206.s

Dtc3280.s Eata.dma.s

DPT EATA-DMA SCSI support (Boards like PM2011, PM2021, PM2041, PM3021, PM2012B, PM2022, PM2122, PM2322, PM2042, PM3122, PM3222, PM3332, PM2024, PM2124, PM2044, PM2144, PM3224, PM3334) DPT EATA-ISA/EISA SCSI support (Boards like PM2011B/9X, PM2021A/9X, PM2021A, PM2012B, PM2022A/9X, PM2122A/9X, PM2223A/9X) DPT EATA-PIO PM2012A). SCSI support (PM2001 and

Eata.isa.s

Eata.pio.s Fdomain.s Goldstar.s In2000.s Iomega.s

Future Domain TMC -16x0 SCSI support. All supported SCSI Goldstar R420 CD-ROM controllers, plus

Always IN2000 SCSI support IOMEGA PPA3 parallel port SCSI support

Tabela 2.7: Imagens de disquetes de boot Slackware SCSI.

149

14.3.10

Entrando em ao

Aqui o grande anticlmax. Depois de todo o planejamento, preparao e particionamento, voc est na reta final. Esteja certo que seu disco de inicializao est no drive e reinicie seu computador. um bom momento para servir um caf e voltar para a mquina pronto para passar uma hora mais ou menos respondendo a perguntas tipo sim ou no. Entre como root (no tem senha) e digite setup ou setup.tty

14.3.11

O programa de instalao (setup) Slac kware

O Slackware vem com duas verses do programa de instalao. Uma colorida, baseada em janelas de dilogo, e orientada a menus. A verso alternativa, setup.tty, baseada em texto e voc at pode preferir esta, porque as mensagens de erro ou diagnstico ficam na tela e no so escondidas pela prxima janela de dilogo. Se voc estiver instalando o Slackware num hardware no confivel, eu recomendo fortemente a verso menos colorida (setup.tty). Se voc no sabe muito sobre UNIX e se sente mais confortvel com uma interface limpa e atrativa para o mesmo processo ento, sem sombra de dvidas, use a verso mais bela.
============ Slackware96 Linux Setup (version HD -3.1.0) ============= Welcome to Slackware Linux Setup. Hint: If you have trouble using the arrow keys on your keyboard, you can use '+', ' -', and TAB instead. like? HELP KEYMAP MAKE TAGS TARGET SOURCE DISK SETS INSTALL CONFIGURE PKGTOOL EXIT Which option would you

====================================================================== Read the Slackware Setup HELP file Remap your keyboard Tagfile customization program Select target directory [now: / ] Select source media Decide which disk sets you wish to install Install selected disk sets Reconfigure your Linux system Install or remove packages with Pkgtool Exit Slackware Linux Setup

================================================= ================ ====================================================================== < OK > <Cancel> ======================================================================

Transferir o Slackware a partir daqui para o seu sistema deve envolver pouco mais do que selecionar o que voc deseja dos menus. Completando a Seo 3 da planilha adiantadamente, voc deve estar apto a passar por cada menu rapidamente at atingir a opo INSTALL (Instalar), ponto em que as coisas podem ficar mais lentas: voc foi aconselhado a selecionar a opo PROMPT e ler sobre cada pacote de software, decidindo se ele deve entrar ou 150

no na sua instalao. A ltima parte de uma instalao normal a seo CONFIGURE (Configurar) no menu setup, e as perguntas que voc deve responder se assemelham s da segunda metade da planilha da seo 3.

14.3.12

Isso tudo?

De jeito algum! Neste ponto, ou voc est enfrentando algum obstculo perturbador que no permite a concluso da instalao, ou, mais provvel, est vendo o prompt do root.
darkstar ~#

e perguntando-se: "E agora?" Bem, se voc estiver atormentado por problemas, vai querer ir diretamente para a prxima seo sobre soluo de problemas. Se parece que as coisas esto funcionando corretamente, voc ainda tem alguns detalhes para ver. como comprar um carro novo - depois de escolher e pagar pelo carro, ainda h algumas coisas a fazer antes que possa dirigi-lo com segurana - seguro, emplacamento, etc.

14.3.13

Solucionando Problemas de instalao

Nem toda a instalao do Slackware nasce de acordo com a expectativa do administrador do sistema. Eu j enfrentei a situao de ter de atualizar um Slackware depois do trabalho e ficar a noite toda trabalhando para colocar a maldita coisa online at a madrugada, antes que as pessoas chegassem e comeassem a reclamar sobre e-mails e news faltando. Esta seo vai passar por alguns problemas comuns da instalao do Slackware, indicando solues e onde procurar por mais ajuda. 14.3.13.1 FAQs de instalao do Slackware

Patrick Volkerding, o pai do Slackware, tem lidado com muitas questes de novos usurios escutando, respondendo e antecipando perguntas repetidas. Para evitar ter que responder sempre as mesmas pergunta, Patrick criou a documentao e a inlcluiu na distribuio Slackware. Trs arquivos que voc pode achar muito teis para suas perguntas iniciais so FAQ.TXT, INSTALL.TXT e BOOTING.TXT. 14.3.13.2 Suporte na Web para o Slackware

A maneira mais fcil de encontrar documento sobre Linux geralmente a pgina do LDP (Linux Documentation Project). Voc tambm pode encontrar boa documentao na home page do Slackware (http://www.slackware.org). 14.3.13.3 Grupos de News Usenet Para Slackware

A hierarquia comp.os.linux.* um tesouro de informaes sobre Linux,

151

no necessariamente sobre o Slackware. 14.3.13.4 Listas de discusso sobre Slackware

Veja em http://www.slackware.org/lists/ vrias opes de listas de discusso sobre Slackware. 14.3.13.5 Voc recebe pelo que paga (suporte comercial)

Suporte comercial de Linux est disponvel atravs de vrios consultores e integradores de distribuies.

14.3.14

No baixe a guarda

No hora de contar vantagem, especialmente se seu computador com Slackware ser compartilhado ou instalado num ambiente de rede. Cuidar de um computador para uma comunidade ou uso em rede demanda mais do que simplesmente rodar o programa de instalao e esquecer do resto. Ns daremos algumas dicas para tornar seu sistema seguro e compartilh-lo.

14.3.15

Considere a reinstalao!

Eu sei que voc recm passou por uma sesso de instalao longa, e talvez complicada. Mas antes de se mudar para a nova casa, que acabou de construir, considere a possibilidade de destru-la e comear tudo novamente. Uma citao de Friedrich Nietzsche: "Um homem aprende o que precisa saber sobre contruir sua casa somente aps t-la terminado." Se, no processo de instalar o sistema, voc teve novas idias sobre como poderia ter sido diferente, agora a hora. Se seu Slackware vai ser um computador multi-usurio ou servidor de rede, pode no haver outra oportunidade to conveniente de reinstalar ou reconfigurar o sistema de maneira radical.

14.3.16
14.3.16.1

Torne o sistema seguro


Saia da rede de uma vez

O Slackware recm instalado um sistema inseguro. Embora Patrick Volkerding faa o melhor para criar uma distribuio segura, poucos furos inevitveis tornam-se conhecidos, e patches (remendos) ou workarouds so disponibilizados para os administradores (e crackers). Se voc instalou o Slackware a partir da rede (ex: NFS), voc deve temporariamente desconectlo da mesma at que tape alguns furos. 14.3.16.2 Cadastre uma senha de root

Por definio, um novo Slackware no pede senha para o usurio root.

152

Quando estiver confiante na estabilidade de seu sistema Slackware (depois de algumas horas, no dias ou semanas), crie uma senha para proteger a conta root. Entre como root e digite: # passwd root 14.3.16.3 Crie uma conta para voc

Em sistemas grandes, compartilhados, a conta de super-usurio root no usada como uma conta de trabalho. Se estiver interessado em administrar o sistema ou estiver em uma rede, um bom conselho a ser seguido. Use o programa /sbin/adduser e crie uma conta prpria para entrar no sistema, ao invs de usar a conta root. Eu sempre acho graa quando vejo estudantes e iniciantes orgulhosamente publicando no News como root@minhamquina.meudomnio. Seja humilde e seguro: crie outra conta de login para seu trabalho dirio e use o programa su para entrar como root. 14.3.16.4 Proiba Logins de root

Assim como incomum trabalhar como usurio root, tambm considerado inseguro permitir acesso root atravs da rede diretamente. Usurios remotos usualmente conectam com seu login prprio e depois do um su para root quando necessrio. Para se precaver de crackers, hackers e usurios ignorantes de entrarem diretamente como root, edito o arquivo /etc/securetty e comente (iniciando a linha com '#') tudo menos os terminais locais (console, tty1, tty2, etc). Depois deste "conserto", usurios que tentar entrar como root pela rede recebero uma mensagem negando a parmisso:
Linux 2.0.29 (durak.interactive.com) (ttyp4)

durak login: root root login refused on this terminal. durak login:

14.3.16.5

Verifique se h patches disponvies

Como uma distribuio ativamente mantida, as atualizaes e patches do Slackware esto disponveis em: http://www.slackware.com/changelog/ 14.3.16.6 Mantenha-se informado

Voc pode querer se inscrever em uma ou mais listas de e-mail que alertam usurios sobre falhas no Linux, como em: http://www.slackware.com/lists/ http://www.cert.org/ (no s Linux, mas de vrias falhas em sistemas de Internet)

153

14.3.17

Back up

Gostou de como as coisas esto rodando? Salve-as de uma tempestade mantendo cpias de segurana. O Amanda (Advanced Maryland Automatic Network Disk Archiver) uma das muitas opes de backups disponveis para Linux. Voc pode aprender mais sobre o Amanda em: http://www.amanda.org

154

15 ENFRENTANDO DIFICULDADES DE INSTALAO


Quase todo o mundo passa por algum tipo de dificuldade na primeira vez que tenta instalar o Linux. A maior parte das vezes, o problema causado por simples mal-entendido. Outras vezes, porm, pode ser mais srio, como um equvoco do desenvolvedor ou um bug. Se sua instalao parece ter sido bem sucedida, mas voc recebe mensagens de erro inesperadas, veja a seguir.

15.1 Problemas inicializando atravs da mdia de instalao.


Quando tentar inicializar atravs da mdia de instalao pela primeira vez, voc pode encontrar uma srie de problemas. Estes so descritos a seguir. Note que esses problemas no esto relacionados inicializao do novo sistema Linux instalado.

Erro de disquete ou de mdia ao tentar inicializar. A causa mais comum deste tipo de problema um disquete corrompido. Ou o disco est fisicamente danificado - e neste caso voc deve recriar o disquete com um novo -, ou os dados no disco esto mal gravados, caso no qual voc deve verificar que tenha feito download e gravado corretamente a imagem. Em geral, simplesmente refazer o disquete vai solucionar o problema. Siga os passos novamente e tente outra vez. Se voc recebeu o disquete de uma empresa, contate essa empresa e pea um novo disquete - mas somente depois de estar certo que esse realmente o problema.

O sistema pendura durante a inicializao ou aps a mesma. Depois que o sistema iniciar, voc vai ver uma srie de mensagens do kernel indicando quais dispositivos foram reconhecidos e configurados. Depois disso, normalmente aparece o prompt de login, permitindo que voc continue a instalao (algumas distribuies jogam voc diretamente em algum tipo de programa de instalao). O sistema pode parecer pendurar em muitos desses passos. Seja paciente: carregar software do disquete um processo bastante lento. Em muitos casos, o sistema no pendurou, mas est meramente levando um bom tempo. Verifique se no h atividade de disco ou do sistema (mudanas na tela) por vrios minutos antes de assumir que tenha pendurado. 1. Depois de iniciar do prompt do LILO, o sistema deve carregar a imagem do kernel do disquete. Isso pode levar vrios segundos. Voc vai saber que ele est carregando pela luz ligada do drive. 2. Enquanto o kernel inicializa, os dispositivos SCSI devem ser sondados. Se voc no tem dispositivo SCSI instalado, o sistema vai pendurar por uns 15 segundos enquanto a sondagem SCSI continua. Isso ocorre depois de uma linha como esta aparecer na tela:

155

lp_init: lp1 exists (0), using pollin driver 3. Depois que o kernel terminar a inicializao, o controle transferido para os arquivos de inicializao do sistema do disquete. Finalmente, ser apresentado um prompt de login, ou vai aparecer um programa de instalao. Se aparecer um prompt de login, como: Linux login: voc deve logar no sistema (usualmente como root ou "install" isso varia conforme a distribuio). Depois de entrar o nome de usurio, o sistema pode dar uma pausa de 20 segundos ou mais enquanto o programa de instalao ou script carregado do disquete. Novamente, a luz do drive deve ligar. No pense que o sistema pendurou. Quaisquer dos itens acima podem ser fonte de problemas. Entretanto, pode ser que o sistema realmente pendure durante a inicializao devido a diversos fatores. Voc pode no ter memria suficiente para inicializar da mdia de instalao, por exemplo. A causa de muitos "congelamentos" do sistema incompatibilidade de hardware. O ltimo captulo apresenta uma viso geral sobre hardware suportado no Linux. Mesmo que seu hardware seja suportado, voc pode passar por dificuldades com configuraes incompatveis de hardware, que podem fazer o sistema pendurar.

O sistema acusa falta de memria ao tentar inicializar ou instalar o software. Provavelmente voc vai enfrentar este problema se estiver instalando em um velho, velho, velho sistema com 4MB de RAM ou menos. Isso por que muitas distribuies usam um disco em RAM - um sistema de arquivos carregado diretamente na RAM para operaes durante a instalao. A imagem inteira do disquete de instalao, por exemplo, pode ser carregada num disco em RAM, o que pode ocupar mais de 1MB. Voce pode no ver uma mensagem "out of memory" quando tentar instalar ou inicializar; ao invs disso, o sistema pode pendurar inesperadamente ou falhar na inicializao. Se ele pendura, e voc no encontra uma explicao (e tem pouca memria mesmo), tente desabilitar o ramdisk. Consulte a documentao da sua distribuio. O Linux precisa de no mnimo 2 MB de RAM para rodar, mas algumas distribuies mais novas requerem bem mais do que isso.

O sistema informa um erro como ``permission denied '' (permisso negada) ou ``file not found '' (arquivo no encontrado)enquanto inicializa. Essa uma indicao que sua mdia de instalao pode estar corrompida. Se voc tentar inicializar a partir da mdia de instalao (estando certo de estar fazendo tudo corretamente), voc no deve ver erros desse tipo. Entre em contato com o distribuidor do seu Linux e verifique o problema - talvez tenha que conseguir novos discos de

156

inicializao. Se voc mesmo fez o download dos disquetes, tente recri-los e veja se isso resolve.

O sistema informa um erro do tipo ``VFS: Unable to mount root '' quando inicializando. Essa mensagem de erro significa que o sistema de arquivos root (que est na mdia de instalao), no pde ser encontrado. Ou sua mdia est corrompida de alguma forma, ou voc no est inicializando o sistema corretamente. Por exemplo, muitas distribuies em CD requerem que voc mantenha o CD no drive quando inicializando. Esteja certo que o drive de CD-ROM est ok e verifique se h atividade. Pode ser que o sistema no esteja localizando o drive de CD-ROM na inicializao.

15.2 Problemas de Hardware


O problema mais comum ao tentar instalar ou usar o Linux uma incompatibilidade de hardware. Mesmo que todo seu hardware seja suportado pelo Linux, uma configurao mal feita ou conflito de hardware pode, algumas vezes, causar resultados estranhos - seus dispositivos podem no ser reconhecidos na inicializao ou o sistema pendurar. importante isolar esses problemas de hardware se voc suspeitar que eles possam ser a fonte de seus problemas.

15.2.1

Isolando problemas de hardware

Se voc enfrentar um problema que acredita estar relacionado ao hardware, a primeira coisa a tentar isolar o problema. Isso significa eliminar todas as variveis possveis e (usualmente) desmontar o sistema, pea por pea, at que a pea de hardware seja isolada. Isso no to assustador quanto possa parecer. Basicamente, voc deve remover todo o hardware no essencial ao sistema, e ento determinar qual dispositivo est causando o problema - possivelmente reinstalando cada dispositivo, um por vez. Isso significa que voc deveria remover todo o hardware exceto os controladores de vdeo e disquete e, claro, o teclado. Mesmo dispositivos aparentemente inocentes, como os controladores de mouse, podem causar perturbao a sua paz de esprito a menos que voc os considere no essenciais. Por exemplo: vamos assumir que seu sistema pendure durante a deteco da placa de rede. Voc pode criar uma hiptese de que h um conflito ou problema com a placa de rede de sua mquina. A maneira mais fcil de saber isso retirar a placa de rede e tentar reinicializar. Se tudo der certo, voc saber que ou a placa no suportada, ou h um conflito de IRQ ou endereo E/S com a placa. "Conflito de IRQ ou endereo de E/S?" O que isso quer dizer? Todos os dispositivos na sua mquina usam uma IRQ (Interrupt Request Line, ou linha de interrupo) para se comunicar com o sistema e dizer que eles precisam

157

que algo seja feito. Voc pode pensar numa IRQ como se fosse uma corda que o dispositivo puxa quando precisa que o sistema tome conta de alguma requisio. Se mais de um dispositivo estiver puxando na mesma corda, o kernel no poder determinar qual dispositivo precisa de ateno. Assim sendo, esteja certo que todos os dispositivos instalados usem IRQs nicas. Em geral, a IRQ para um dispositivo pode ser configurada por jumpers na placa; veja a documentao de cada dispositivo em particular. Alguns dispositivos no precisam de uma IRQ, mas recomendado que voc use uma se possvel (os controladores SCSI Seagate ST01 e ST02 so bons exemplos). Em alguns casos, o kernel fornecido na sua mdia de instalao configurado para usar certas IRQs para certos dispositivos. Em algumas distribuies Linux, por exemplo, o kernel pr-configurado para usar IRQ 5 para o controlador SCSI TMC-950, o CD-ROM Mitsumi, e o driver do bus mouse. Se voc quer usar dois ou mais desses dispositivos, voc precisa primeiro instalar o Linux com um deles habilitado, e ento recompilar o kernel para mudar a IRQ padro para os outros. Outras reas onde o hardware pode causar conflitos so no DMA (Direct Memory Access - Acesso Direto Memria); endereos de E/S; e endereos de memria compartilhada. Todos esses termos descrevem mecanismos atravs dos quais o sistema se comunica com os dispositivos de hardware. Algumas placas de rede, por exemplo, usam endereo de memria compartilhada assim como uma IRQ para se comunicarem com o sistema. Se qualquer desses mecanismos conflitar com outros dispositivos, o sistema pode se comportar de forma imprevista. Voc deve ser capaz de mudar o canal de DMA, endereo de E/S ou de memria compartilhada para vrios dispositivos atravs configuraes de jumpers. Desafortunadamente, alguns dispositivos no permitem mudana dessas configuraes. A documentao dos dispositivos de hardware deve especificar a IRQ, canal de DMA, endereo de E/S e endereo de memria compartilhada que esses dispositivos usam. Novamente, a maneira mais simples de contornar esses problemas desabilitando temporariamente o dispositivo conflitante at que voc tenha tempo para determinar a causa do problema. A tabela abaixo uma lista de IRQ e canais de DMA usados por vrios dispositivos "padro" na maioria dos sistemas. Quase todos os sistemas tm esses dispositivos. Assim, melhor evitar configurar o IRQ ou DMA de outros dispositivos em conflito com esses valores.
Device ttyS0 (COM1) ttyS1 (COM2) ttyS2 (COM3) ttyS3 (COM3) lp0 (LPT1) lp1 (LPT2) fd0, fd1 (floppies 1 and 2) fd2, fd3 (floppies 3 and 4) I/O address 3f8 2f8 3e8 2e8 378 - 37f 278 - 27f 3fD - 3f7 37D - 377 IRQ 4 3 4 3 7 5 6 10 DMA n/a n/a n/a n/a n/a n/a 2 3

158

Tabela 2.8: Configurao de alguns dispositivos comuns.

15.2.2

Problemas no reconhecimento de um disco rgido ou controlador

Quando o Linux inicializa, voc deve ver uma srie de mensagens na tela, como: Console: colour EGA+ S0x25, S virtual consoles Serial driver version 3.96 with no serial options enabled tty00 at 0x03f8 (irq = 4) is a 16450 tty03 at 0x02e8 (irq = 3) is a 16550A lp_init: lp1 exists (0), using polling driver ...

no

Aqui, o kernel est detectando vrios dispositivos de hardware presentes seu sistema. Depois, voc vai ver uma linha como:
Partition check:

seguidas de uma lista de parties reconhecidas, como:


Partition check: hda: hdb: hda1 hda2 hdb1 hdb2 hdb3

Se, por alguma razo, seus discos ou parties no so reconhecidos, voc no poder acess-los. H muitas razes para isto:

Controlador ou disco rgido no suportados. Se voc tem um controlador de disco rgido (IDE, SCSI, ou outro) que no seja suportado pelo Linux, o kernel no vai reconhecer suas parties no momento da inicializao. Controlador ou disco configurado impropriamente. Mesmo que seu controlador seja suportado pelo Linux, pode no estar configurado corretamente. Este um problema comum em controladores SCSI. A maior parte de controladores no SCSI devem funcionar bem sem nenhuma configurao adicional. Refira-se documentao de seu disco rgido e/ou controlador. Em particular, muitos discos rgidos precisam de uma configurao de jumpers para serem usados com "slave" (o segundo dispositivo tanto na IDE primria ou secundria). O teste decisivo nesta condio inicializar no MS-DOS ou outro sistema operacional que voc saiba que

159

funcione com seu disco ou controlador. Se puder acessar o disco e controlador de outro sistema operacional, no problema de hardware.

Controlador configurador corretamente, mas no reconhecido. Alguns controladores SCSI sem BIOS requerem que o usurio especifique informao sobre o controlador no momento de inicializao. Geometria do disco no reconhecida. Alguns sistemas, como o IBM PS/ValuePoint, no armazenam a informao de geometria do disco na memria CMOS, onde o Linux espera encontr-la. Alm disso, certos controladores SCSI precisam que voc indique onde encontrar a geometria do disco para que o Linux reconhea a configurao do disco. A maioria das distribuies fornece uma opo de especificar a geometria do disco. Geralmente, quando inicializar de uma mdia de instalao, voc pode especificar a geometria no prompt do LILO, com um comando como: boot: linux hd=cilindros,cabeas,setores onde cilindros, cabeas e setores correspondem ao nmero de cilindros, cabeas e setores por trilha para o seu disco rgido. Depois de instalar o Linux, voc poder instalar o LILO, permitindo que voc inicialize do disco rgido. Voc pode especificar a geometria do disco para LILO, tornando desnecessrio entrar a geometria cada vez que voc inicializa.

15.2.3

Problemas com dispositivos e controladores SCSI

Apresentamos aqui uma srie de problemas comuns com controladores SCSI e dispositivos como CD-ROMs, discos rgidos e drives de fita. Se voc tem problemas para fazer o Linux reconhecer seu disco ou controlador, leia adiante. O HOWTO sobre SCSI contm muita informao til sobre dispositivos SCSI alm da listada aqui. O SCSI pode ser particularmente manhoso para configurar algumas vezes.

Um dispositivo SCSI detectado em todos os IDs possveis. Isso causado por configurar o dispositivo para o mesmo endereo do controlador. Voc tem que mudar o jumper para que o disco use um endereo diferente do controlador. Linux reporta erros no acesso, mesmo que o dispositivo seja sabidamente livre de defeitos. Isso pode ser causado por cabos defeituosos ou terminadores ruins. Se o seu barramento SCSI no possuir terminadores nas duas extremidades, voc pode enfrentar erros acessando o dispositivo. Quando em dvida, verifique sempre os cabos. Dispositivos SCSI indicam erros de timeout. Isso usualmente causado por conflitos de IRQ, DMA ou endereo de E/S. Tambm verifique se as interrupes esto corretamente habilitadas no controlador. Controladores SCSI que usam BIOS no so detectados. Deteco de controladores que usam BIOS ir falhar se a BIOS estiver

160

desabilitada, ou se a assinatura do seu controlador no reconhecida pelo kernel. Veja o Linux SCSI HOWTO disponvel em www.linuxdoc.org.

Controladores que usam memria de E/S mapeada no funcionam. Isso causado quando as portas de E/S mapeadas em memria esto incorretas no cache. Marque o espao de endereo usado pela placa como "no cachevel" na configurao da CMOS, ou desabilite o cache totalmente. Quando particionando, voc recebe um aviso "cylinders > 1024'', ou no consegue inicializar de uma partio usando cilindros acima do 1023. A BIOS limita o nmero de cilindros a 1024, e qualquer partio usando cilindros acima desta posio no sero acessveis atravs da BIOS. Quanto ao Linux, isso s afeta a inicializao; uma vez que o sistema tenha inicializado voc deve estar apto a acessar a partio. Suas opes so: inicializar de um disquete ou de uma partio usando cilindros abaixo do 1024. Drive de CD-ROM ou outro dispositivo de mdia removvel no so reconhecidos na inicializao. Tente reinicializar com um CD-ROM (ou disco) no drive. Isso necessrio para alguns dispositivos.

Se o seu controlador SCSI no reconhecido, voc pode tentar forar a deteco de hardware no momento da inicializao. Isso particularmente importante para controladores SCSI sem BIOS. A maioria das distribuies permite que voc especifique a IRQ da placa controladora e o endereo de memria compartilhada quando estiver iniciando da mdia de instalao. Por exemplo, se estiver usando um controlador TMC-8xx, voc pode entrar: boot: linux tmxSxx=interrupo,endereo-de-memria no prompt do LILO, sendo que interrupo a IRQ da controladora, e endereo-de-memria o endereo da memria compartilhada. Se isso possvel ou no, depende da distribuio Linux que estiver usando. Consulte sua documentao para detalhes.

15.3 Problemas instalando software


Instalar o Linux deve ser uma operao bem simples, se voc tiver sorte. Os nicos problemas que voc pode enfrentar seriam relacionados mdia de instalao com defeito ou falta de espao em disco. Aqui temos uma lista desses problemas comuns:

O sistema reporta "Read error '' (erro de leitura), "file not found '' (arquivo no encontrado), ou outros errps enquanto tenta instalar o software. Isso indica um problema com a mdia de instalao. Se estiver instalando de disquetes, lembre-se que eles so bastante suscetveis a erros deste tipo. Use disquetes novos, recm formatados. Se voc tem uma partio MS-DOS, muitas distribuies permitem que instale o software a partir dela. Isso mais rpido e confivel do que usar disquetes. Se estiver usando um CD-ROM, veja se ele no est danificado,

161

com poeira, ou outra coisa que possa estar causando erros de leitura. A causa do problema pode estar relacionada ao formato da mdia. Algumas distribuies requerem que os disquetes sejam formatados no formato MS-DOS de alta densidade. O disco de inicializao exceo, (ele no em formato MS-DOS na maioria dos casos). Se tudo o mais falhar, obtenha um novo conjunto de disquetes ou gere-os novamente (usando novos disquetes) se voc mesmo fez download do software.

O sistema reporta erros como "tar: read error '' ou "gzip: not in gzip format ''. Esse problema causado geralmente por arquivos corrompidos na mdia de instalao. Em outras palavras, seu disquete pode estar ok, mas os dados gravados no disquete esto, de alguma forma, corrompidos. Se voc fez download do Linux usando modo texto (ASCII), ao invs de modo binrio, ento seus arquivos estaro corrompidos e no podero ser lidos pelo software de instalao. O sistema reporta erros como "device full '' durante a instalao. Este um sinal bem claro de que acabou seu espao em disco. Nem todas as distribuies conseguem lidar com este problema de forma limpa. Voc provavelmente no vai conseguir abortar a instalao e conseguir que o sistema funcione. A soluo normalmente recriar seu sistema de arquivos (com mke2fs), o que apaga os software parcialmente instalados. Voc pode tentar reinstalar o software selecionando menos pacotes. Em outros casos, voc pode ter que recomear completamente e repensar o tamanho de suas parties e sistemas de arquivos.

O sistema reporte erros como "read_intr: 0x10 '' durante acesso ao disco rgido. Isso normalmente indica blocos defeituosos no disco. No entanto, se voc receber esses erros enquanto estiver usando o mkswap ou mke2fs, o sistema pode estar tendo problemas para acessar seu disco. Isso pode ser um problema de hardware ou pode ser devido a uma geometria pobremente especificada. Se voc usou a opo: hd=cilindros, cabeas, setores no momento da inicializao para forar a geometria do disco e especificou a geometria incorretamente, isso pode ser a causa do problema. Isso tambm pode acontecer se a geometria do seu disco est mal especificada na CMOS.

O sistema reporta erros como "file not found '' ou ``permission denied ''. Este problema pode ocorrer se nem todos os arquivos necessrios esto presentes na mdia de instalao (veja prximo pargrafo) ou se h problemas de permisso com o software de instalao. Algumas distribuies Linux, por exemplo, tm bugs conhecidos no programa de instalao. Esses bugs normalmente so corrigidos rapidamente e so pouco freqentes. Se voc suspeita que sua distribuio tem bugs e est certo de no ter feito nada errado, entre em contato com o mantenedor da distribuio e reporte o bug.

Se voc enfrentar outros erros estranhos ao instalar o Linux (especialmente se voc fez download do Linux por conta prpria), verifique se obteve todos os arquivos necessrios. Por exemplo, algumas pessoas usam o 162

comando FTP: mget *.* ao fazer download do Linux via FTP. Isso apenas ir fazer download de arquivos que contenham um ponto (".") no nome do arquivo; se existirem arquivos sem ".", voc no vai peg-los. O comando correto nesse caso mget * O melhor conselho reconstruir seus passos quando algo der errado. Voc pode pensar que fez tudo corretamente quando, de fato, esqueceu um pequeno, mas importante, passo em alguma parte do caminho. Em muitos casos, baixando e instalando novamente o software pode resolver o problema. No bata a cabea na parede mais do que precisa!

15.4 Problemas aps instalar o Linux


Voc gastou uma tarde inteira instalando o Linux. Para fazer espao para ele, voc apagou suas parties de MS-DOS ou OS/2 e chorando apagou suas cpias de SimCity e Wing Commander. Voc reinicia o sistema. . . e nada acontece. Ou, ainda pior, algo acontece, mas no o que deveria. O que fazer? Alm dos problemas j abordados, voc pode ser vtima dos seguintes males:

15.4.1

Problemas ao inicializar o Linux do disquete

Se voc usa um disquete para inicializar o Linux, voc pode ter que especificar a localizao da partio root no momento do boot. Isso especialmente verdade se voc est usando o disquete de instalao original, e no um disquete personalizado criado durante a instalao. Enquanto inicializa do disquete, pressione Shift ou Ctrl. Com isso, um menu deve aparecer. Pressione Tab para ver uma lista de opes disponveis. Por exemplo, muitas distribuies permitem que voc digite: boot: linux hd=partio no menu de inicializao, onde partio o nome da partio root do Linux (ex: /dev/hda2). Consulte a documentao de sua distribuio para detalhes.

15.4.2

Problemas inicializando o Linux de seu disco rgido

Se voc optou por instalar o LILO ao invs de usar um disquete de inicializao, deve conseguir inicializar o Linux a partir do disco rgido. No entanto, o processo automtico de instalao do LILO usado por muitas distribuies nem sempre perfeito. Ele pode fazer suposies incorretas sobre o formato de sua partio e voc ter que reinstalar o LILO para que tudo funcione corretamente.

O sistema reporta "Drive not bootable --Please insert system

163

disk.''

(disco no inicializvel - por favor insira um disco de sistema). O MBR (Master Boot Record) do disco rgido foi corrompido de alguma forma. Na maioria dos casos, isso inofensivo, e tudo no disco deve estar intacto. H muitas maneiras de contornar isto: 1. Ao particionar seu disco usando fdisk, voc pode ter apagado a partio que estava marcada com ativa. O MS-DOS e outros sistemas operacionais tentam inicializar a partio ativa no boot (o Linux no se importa se a partio est "ativa" ou no). Voc pode inicializar o MS-DOS de um disquete e rodar o FDISK.EXE para marcar sua partio MS-DOS como ativa e tudo ficar bem. Outro comando para tentar (no MS-DOS 5.0 ou posterior) "FDISK /MBR". Este comando tenta reconstruir o MBR de seu disco rgido para inicializar com o MS-DOS, sobreescrevendo o LILO. Se voc no tem mais o MS-DOS no seu disco, voc precisa inicializar o Linux de um disquete e tentar instalar o LILO depois. 2. Se voc criou uma partio MS-DOS usando a verso Linux do fdisk, ou vice-versa, voc pode chegar neste erro. Voc deve criar parties MS-DOS usando a verso MS-DOS FDISK.EXE (Isso se aplica tambm a outros sistemas operacionais). A melhor soluo comear tudo novamente e reparticionar o disco corretamente, ou simplesmente apagar e recriar a partio com problema com a verso correta do fdisk. 3. O processo de instalao do LILO pode ter falhado. Neste caso, voc pode inicializar do disquete de inicializao (se tiver um), ou da mdia de instalao original. Qualquer desses meios deve dar possibilidade de especificar a partio root a ser usada quando da inicializao. Aperte e segure Shift ou Ctrl durante o boot, e pressione Tab a partir do menu para uma lista de opes.

Ao inicializar o sistema do disco rgido, o Windows (ou qualquer outro sistema operacional) iniciado no lugar do Linux. Primeiramente, certifique-se que voc realmente tenha instalado o LILO quando instalou o Linux. Se no, o sistema ainda vai iniciar o Windows (ou outro sistema que voc tenha) quando tentar inicializar do disco rgido. Para dar boot do Linux a partir do disco rgido, voc deve instalar o LILO. Se voc realmente instalou o LILO e outro sistema operacional ainda entra no lugar do Linux, ento seu LILO est configurado para inicializar o outro sistema operacional por padro. Enquanto o sistema estiver inicializando, segure pressionado Shift ou Ctrl, e pressione Tab durante o prompt do boot. Isso deve apresentar uma lista dos sistemas operacionais disponveis para boot. Selecione a opo apropriada (usualmente "linux") para inicializar o Linux. Se voc quer que o Linux seja o seu sistema padro, deve reconfigurar ou reinstalar o LILO. Tambm possvel que voc tenha tentado instalar o LILO, mas a instalao tenha falhado de alguma forma. Veja a seo anterior.

164

15.4.3

Problemas para entrar no sistema (login)

Depois de inicializar o Linux, provavelmente voc receber um prompt de login, como: linux login: Neste ponto, ou a documentao de sua distribuio ou o prprio sistema indicaro o que fazer. Em muitas distribuies, voc simplesmente entra como "root", sem senha. Outros nomes possveis so "guest" ou "test". A maior parte dos sistemas Linux recm instalados no requerem uma senha para o login inicial. Entretanto, se o sistema pedir uma senha, pode ser um problema. Primeiro, tente usar uma senha igual ao nome de usurio, isto , se voc entrou como "root", use "root" como a senha. Lembre-se tambm se o programa de instalao no pediu que voc cadastrasse uma senha. Se pediu, voc deve t-la anotado em algum lugar. Se voc simplesmente no consegue entrar, pode ser um problema. Primeiro, consulte a documentao de sua distribuio; o nome de usurio e senha que voc deve usar deve estar gravado nela em algum lugar. Eles tambm podem ter sido fornecidos a voc durante o processo de instalao, ou estar sendo mostrados na mensagem de login. Uma causa pode ser um problema na instalao do programa de login do Linux e arquivos de inicializao. Voc pode ter que reinstalar (ao menos partes) o Linux, ou reinicializar sua mdia de instalao para tentar resolver o problema manualmente.

15.4.4

Problemas usando o sistema

Se for bem sucedido ao entrar no sistema, voc ver o prompt do shell (como "#", ou "$") e pode passear alegremente por ele. No entanto, podem aparecer alguns problemas iniciais no uso do mesmo. O problema de configurao mais comum o de permisses incorretas de arquivos ou diretrios. Isso pode causar a mensagem de erro "shell-init: permission denied" aps o login (de fato, em qualquer momento que voc vir a mensagem "permission denied", voc pode estar certo de que se trata de um problema de permisses). Em muitos casos, basta simplesmente usar o chmod para corrigir as permisses dos arquivos ou diretrios apropriados. Algumas distribuies Linux, por exemplo, usaram uma vez (incorretamente) o mode 0644 para o diretrio root ( / ). A soluo para esta questo executar o comando "chmod 755 /" como root. No entanto, para executar este comando, voc precisava inicializar da mdia de instalao e montar seu sistema de arquivos manualmente - uma tarefa cabeluda para a maioria dos iniciantes. Usando o sistema, voc pode encontrar problemas com arquivos ou diretrios com permisses incorretas, ou softwares que no funcionam como deveriam. Bem vindo ao mundo Linux! Apesar da maioria das distribuies ser bastante livre de problemas, poucas delas so perfeitas. No pretendemos cobrir todos os problemas aqui. Ao invs disso, ao longo do livro tentamos ajud-lo a resolver muitos desses problemas de configurao mostrando como voc mesmo pode solucion-los. 165

Você também pode gostar