Documente Academic
Documente Profesional
Documente Cultură
Licenciamento de Uso Este documento propriedade intelectual 2002 do Centro de Computao da Unicamp e distribudo sob os seguintes termos: 1. As apostilas publicadas pelo Centro de Computao da Unicamp podem ser reproduzidas e distribudas no todo ou em parte, em qualquer meio fsico ou eletrnico, desde que os termos desta licena sejam obedecidos, e que esta licena ou referncia a ela seja exibida na reproduo. 2. Qualquer publicao na forma impressa deve obrigatoriamente citar, nas pginas externas, sua origem e atribuies de direito autoral (o Centro de Computao da Unicamp e seu(s) autor(es)). 3. Todas as tradues e trabalhos derivados ou agregados incorporando qualquer informao contida neste documento devem ser regidas por estas mesmas normas de distribuio e direitos autorais. Ou seja, no permitido produzir um trabalho derivado desta obra e impor restries sua distribuio. O Centro de Computao da Unicamp deve obrigatoriamente ser notificado (treinamentos@ccuec.unicamp.br) de tais trabalhos com vista ao aperfeioamento e incorporao de melhorias aos originais. Adicionalmente, devem ser observadas as seguintes restries: A verso modificada deve ser identificada como tal O responsvel pelas modificaes deve ser identificado e as modificaes datadas Reconhecimento da fonte original do documento A localizao do documento original deve ser citada Verses modificadas no contam com o endosso dos autores originais a menos que autorizao para tal seja fornecida por escrito. A licena de uso e redistribuio deste material oferecida sem nenhuma garantia de qualquer tipo, expressa ou implcita, quanto a sua adequao a qualquer finalidade. O Centro de Computao da Unicamp no assume qualquer responsabilidade sobre o uso das informaes contidas neste material.
Nota do Autor
Este documento uma sistematizao de captulos criados por mim, em conjunto com outros documentos de outras pessoas que desenvolveram timos materiais, dicas e artigos relacionados ao GNU/Linux, e que os disponibilizaram livremente. A lista destes documentos que tive como base para a criao deste treinamento, encontra-se no captulo Bibliografia. Gostaria que esse documento fosse encarado como uma sistematizao de documentos disponibilizados livremente e que sero utilizados com o propsito de realizar treinamentos de GNU/Linux para quem ainda no o conhece muito bem, mas que tem a curiosidade ou necessidade de aprender. Este documento livre, e os fontes esto disponibilizados para download no site do Centro de Computao da Unicamp http://www.ccuec.unicamp.br. Obrigado e bom proveito. Fabio da Silva Santos
ndice
1. Introduo ao GNU/Linux.................................................................................................7 1.1 O que GNU/Linux?........................................................................................8 1.2 Histria...........................................................................................................8 1.3 Algumas caractersticas.................................................................................9 1.4 O GNU/Linux e as distribuies....................................................................11 1.5 Sou novo usurio GNU/Linux, qual distribuio devo usar?..........................13 1.6 Entendendo o Software Livre?......................................................................16 1.7 Patentes de Software...................................................................................18 2. Instalao......................................................................................................................19 2.1 Antes da Instalao......................................................................................20 2.2 Instalao do Sistema Bsico.......................................................................20 2.3 Configurao do Sistema..............................................................................45 3. Utilizando o sistema GNU/Linux.....................................................................................57 3.1 Os gerenciadores de janelas........................................................................58 3.2 Terminal Virtual (console)............................................................................61 3.3 Comandos bsicos nvel 1...........................................................................62 3.3.1 ls......................................................................................................62 3.3.2 mkdir................................................................................................63 3.3.3 rmdir................................................................................................63 3.3.4 rm....................................................................................................63 3.3.5 cd.....................................................................................................64 3.3.6 pwd..................................................................................................64 3.3.7 clear.................................................................................................65 3.3.8 man..................................................................................................65 3.3.9 apropos............................................................................................65 4. Sistemas de Arquivos....................................................................................................67 4.1 Parties..........................................................................................................68 4.2 Sistemas de Arquivos......................................................................................68 4.2.1 EXT2................................................................................................69 4.2.2 Journaling........................................................................................69 4.2.3 EXT3................................................................................................69 4.2.4 ReiserFS..........................................................................................70 4.2.5 JFS...................................................................................................70 4.2.6 XFS..................................................................................................70 4.2.7 SWAP..............................................................................................70 4.2.8 Qual Sistema de Arquivos devo Utilizar?.......................................71 4.3 - Identificao de Discos e Parties..............................................................71 4.4 - Pontos de Montagem....................................................................................72 5. Arquivos e Diretrios.....................................................................................................73 5.1 Arquivos......................................................................................................74 5.2 Tipo de Arquivos.........................................................................................74 5.3 Nomes de Arquivos.....................................................................................76 5.4 Diretrios....................................................................................................76 5.5 Estrutura de Diretrios................................................................................76 5.6 Caminhos....................................................................................................84 5.7 Notaes de Diretrios do Sistema.............................................................84
Diretoria de Transferncia Tecnolgica Centro de Computao Unicamp 4
6. Utilizando o interpretador de comandos (shell).............................................................85 6.1 O interpretador de comandos.....................................................................86 6.2 Aviso de comando (prompt)........................................................................87 6.3 Curingas (Wildcards)...................................................................................87 6.4 Direcionadores............................................................................................90 6.5 Alias............................................................................................................94 6.6 Histrico dos comandos..............................................................................94 6.7 Editor de textos vi...................................................................................95 6.8 Comandos Bsicos nvel 2........................................................................97 6.8.1 history............................................................................................97 6.8.2 tee.................................................................................................97 6.8.3 grep...............................................................................................98 6.8.4 cat..................................................................................................98 6.8.5 tac................................................................................................100 6.8.6 wc................................................................................................100 6.8.7 find (utilizao bsica).................................................................101 6.8.8 more............................................................................................102 6.8.9 less..............................................................................................103 6.8.10 touch..........................................................................................104 6.8.11 ln................................................................................................105 7. Gerenciamento de Pacotes..........................................................................................107 7.1 O que so pacotes?...................................................................................108 7.2 Os pacotes Debian....................................................................................109 7.3 Ferramentas de Gerenciamento de Pacotes.............................................110 8. Aplicativos para GNU/linux..........................................................................................125 8.1 Sutes de Escritrios.................................................................................126 8.2 Internet.....................................................................................................126 8.3 Multimdia.................................................................................................129 8.4 Grficos.....................................................................................................131 8.5 Desktop Publishing (DTP)..........................................................................131 8.6 Visualizadores de Imagem........................................................................132 8.7 Emuladores...............................................................................................132 8.8 Editores de Texto......................................................................................133 8.9 Desenvolvimento......................................................................................133 8.10 Terminais Grficos..................................................................................134 8.11 Onde procurar softwares para GNU/Linux..............................................135 9. Bibliografia...................................................................................................................137
Captulo 1
Introduo ao GNU/Linux
Neste captulo o usurio compreender o que o GNU/Linux, sua histria, caractersticas, noes sobre distribuies, e uma introduo do que software livre.
1.2 - Histria
O kernel do GNU/Linux foi originalmente desenvolvido como passatempo por Linus Torvalds, um estudante de computao da Universidade de Helsinki, na Finlndia. Sua inspirao foi uma pequena verso do Unix desenvolvida por Andrew Tannenbaun chamado Minix. Ele queria um sistema operacional que fosse semelhante ao Unix, com todas as suas funcionalidades e , ainda, que pudesse utiliz-lo num PC. A partir dessa idia, Linus comeou a trabalhar nesse que seria o futuro kernel do sistema operacional que hoje chamado de GNU/Linux. Isso tudo aconteceu em meados de 1991, e em 5 de outubro deste mesmo ano, a seguinte mensagem circulou na UseNet: ...Como eu mencionei h um ms, estou trabalhando em uma verso free de um sistema semelhante ao Minix para computadores AT-386. Ele j alcanou o estgio de ser usvel (embora possa no ser dependendo do que voc fazer), e pretendo distribuir o cdigo-fonte. apenas a verso 0.02, mas j consegui rodar nele o BASH, GCC, GNU-make, GNU-sed, compress, etc.
Diretoria de Transferncia Tecnolgica Centro de Computao Unicamp 8
Esta mensagem era assinada por Linus Torvalds, e ningum adivinharia que ela estaria marcando o incio de um movimento que, em menos de 10 anos, j superava trinta milhes de seguidores, e que hoje se tornou um dos sistemas operacionais mais utilizados no mundo em servidores (e agora a caminho do mundos dos desktops!), graas ao seu sistema colaborativo de desenvolvimento, de ajuda aos usurios, e de divulgao por parte dos adeptos de um sistema operacional livre, que aos poucos pe fim ao monpolio tecnolgico imposto por grandes empresas de software, principalmente pela Microsoft (lder no mercado de sistemas operacionais para desktops), que oprime o desenvolvimento do conhecimento tecnolgico de pases emergentes como Brasil, que d um grande exemplo adontando preferencialmente as solues em software livre com apoio do governo federal, como mostra o projeto de lei do Senado Nmero 330, DE 2003, Altera a redao do art. 45 da Lei nmero 8.666: 5o. Somente ser realizada licitao ou contratao direta, com base no inciso II do art. 24, para aquisio de programas de informtica quando a autoridade competente acolher, em despacho motivado, parecer tcnico que conclua pela ausncia de programas abertos gratuitos, capazes de suprir adequadamente as necessidade da Administrao. Portanto, adotar preferencialmente solues livres dar um voto de confiana para que todas as pessoas possam ter a oportunidade e a opo de participarem da incluso digital, a qual corre em grande velocidade mundo a fora, e no caso do Brasil, com software livre, sendo atravs de empresas, escolas, telecentros, e qualquer instituio que necessite de recursos de informtica para auxiliar em seus servios rotineiros.
(voc no sabe o que um sistema operacional sem cdigo-fonte aberto faz na realidade enquanto est processando um programa); Multitarefa e multiusurio; Convive sem nenhum conflito com outros sistemas operacionais (DOS, Microsoft Windows, OS/2, etc), no mesmo computador; Acessa corretamente discos formatados pelo DOS, Microsoft Windows, Novell, OS/2, NTFS, MAC, SunOS, Amiga, etc; Os sistemas de arquivos que podem ser usados com o GNU/Linux como EXT2, EXT3, ReiserFS, etc, organizam os arquivos de forma inteligente evitando fragmentao e fazendo um poderoso sistema para aplicaes exigentes e gravaes intensivas; Roda aplicaes Microsoft Windows atravs do WINE; No h a necessidade de reiniciar o sistema aps modificar a configurao de qualquer perifrico ou parmetro de rede. Somente necessrio reiniciar o sistema no caso de uma instalao interna de um novo perifrico ou falha em algum hardware (queima do processador, placa-me, etc.); Modularizao O GNU/Linux somente carrega para a memria o que usado durante o processamento, liberando totalmente a memria assim que o programa ou dispositivo finalizado; Devido a modularizao, os drivers dos perifricos e recursos do sistema podem ser carregados e removidos completamente da memria RAM a qualquer momento; Os drivers (mdulos) ocupam pouco espao quando carregados na memria RAM (cerca de 6KB para a placa de rede NE2000, por exemplo); Consultores tcnicos especializados no suporte ao sistema espalhados por todo o mundo; Na parte dos desktops, possui gerenciadores de janelas amigveis e que j podem se considerar alternativa ao Microsoft Windows, como por exemplo o KDE, GNOME e XPDE; Possui uma poro significativa de aplicativos para os mais diversos fins para usurios mais leigos, como por exemplo, aplicativos de escritrios, navegadores web e leitores de e-mail;
Analisando algumas das caractersticas do sistema GNU/Linux, podemos concluir que ele j est maduro e estvel para ser utilizado no mercado e em instituies de pesquisas de diversos seguimentos, como j acontece nos dias de hoje, tendo como parceiros e incentivadores, grandes empresas como IBM e Novell, alm de instituies de ensino superior como por exemplo a Unicamp e UNIVATES, e rgos governamentais como a Prefeitura de Monique na Alemanha, Metr de So Paulo, os Governos do Estado do Paran e do Rio Grande do Sul (os quais so os maiores incentivadores), Prefeitura de Rio das Ostras-RJ e o Governo Federal.
10
11
sistema operacional, voltado para o desktop, e disponibiliz-la abertamente para download. Chamado Fedora, o projeto alcanou um grande sucesso, e atualmente utilizado por um nmero expressivo de usurios ao redor do mundo. Por possuir as mesmas ferramentas do Red Hat, a migrao dos usurios aconteceu de forma tranquila e nem um pouco traumtica. O Fedora mantido pela comunidade, e gerenciado pela Red Hat. Atualmente ele est na verso Core 4.
Conectiva (Mandriva) : A primeira distribuio GNU/Linux nacional criada em 1995. Baseada no Red Hat, o Conectiva Linux destacou-se graas ao timo suporte ao hardware omumente usado no Brasil e aos seus programadores que desenvolveram diversas ferramentas utilizadas posteriormente por muitas distribuies, como o gerenciador de pacotes Synaptic e o APT for RPM, uma adaptao do APT do Debian para sistemas baseados no Red Hat. A Conectiva tornou-se rapidamente a maior empresa de Linux da Amrica Latina, tendo sido recentemente adquirida pela francesa MandrakeLinux, tornando-se a distribuio Mandriva. A Conectiva sempre disponibilizou os seus produtos sob a licena GPL, exceto as verses para empresas do seu sistema operacional. Mandrake (Mandriva) : Distribuio francesa baseada no Red Hat, que com o tempo tomou caractersticas prprias e assumiu um sucesso que tornou a Mandrakelinux a maior empresa do ramo de Linux na Europa. O principal trunfo do Mandrake a facilidade de uso. Tudo simples de fazer, desde a instalao do sistema at a sua configurao, instalao de novos itens de hardware e gerenciamento dos programas instalados. Suporta vrios idiomas, incluindo o portugus brasileiro, e possui muitos servios para usurios, como o Mandrake Club, onde o membro recebe as ltimas atualizaes sobre segurana, softwares, e outros, de forma rpida e automatizada. Recentemente, a Mandrakelinux comprou a brasileira Conectiva, tornando-se tambm a maior empresa do ramo de Linux da Amrica Latina, e lanando a nova distribuio, o Mandriva. Slackware : Mais antiga das distribuies, criada em abril de 1993 pelo irlands, Patrick Volkerding, o Slackware uma distribuio tradicionalista, voltada para usurios que conhecem o sistema e sabem o que esto fazendo. O objetivo de Patrick fornecer um ambiente mais parecido possvel com um sistema UNIX padro, mantendo a simplicidade e oferecendo total controle para o administrador. Alm disso, o Slackware a nica distribuio que no aplica patches (pacotes de correo e modificaes) nos seus pacotes, ficando essa tarefa a cargo do usurio, se assim achar necessrio. O melhor uso do Slackware em servidores dedicados, geralmente estticos no sentido de no requererem atualizaes constantes de software, e onde o sistema seja administrado por uma pessoa apenas, que sabe muito bem o que est fazendo. O Slackware tem a fama de ser uma distribuio difcil e sem muitos recursos. comum os iniciantes enfrentaram problemas com a configurao do servidor grfico.
14
Debian : O Debian foi criado por Ian Murdock em 1993, inicialmente patrocinado pelo projeto GNU da Free Software Fundation. Hoje, os projetistas do Debian entendem-no como um descendente direto do Projeto GNU. O Debian atualmente inclui mais de 8250 pacotes de software, facilmente instalveis atravs de uma ferramenta chamada APT. Esses pacotes so em sua maioria softwares livres disponibilizados sob a licena GPL. Alguns deles no so livres, mas ainda assim gratuitos. Voc pode encontrar uma lista e descries dos pacotes atualmente disponveis no Debian em qualquer um dos seus sites mirrors (espelhos). Um diferencial do Debian sobre as demais distribuies que ele o nico sistema que no mantido, supervisionado ou patrocinado por algum ou alguma organizao. Todo o sistema, incluindo suas ferramentas e os pacotes que utiliza so mantidos por diversos desenvolvedores ao redor do mundo. Mas nem por isso o processo de desenvolvimento do Debian desorganizado, muito pelo contrrio, um dos processos mais organizados que se conhece. As pessoas que se candidatam a serem mantenedores do sistema passam por testes dificlimos, ficam um longo perodo em experincia e, se aprovados, tm de assinar um termo de responsabilidade onde se comprometem a garantir a continuidade do sistema operacional, zelando pela qualidade e segurana de tudo o que passar por suas mos. Prega-se que o Debian a distribuio mais testada do mundo, e isso de fato verdade. O processo de incluso de um recurso no sistema ou um pacote no repositrio muito rgido, o que garante uma confiabilidade total na integridade e segurana do sistema. Gentoo : Criado por Daniel Robins, o Gentoo uma distribuio que pode ser definida como um Linux From Scratch automatizado. A instalao feita segundo os mesmo princpios de uma instalao de GNU/Linux a partir do zero, com todos os pacotes sendo compilados um a um, incluindo o kernel. A diferena que o Gentoo permite automatizar essas tarefas, atravs de um sistema de gerenciamento de pacotes, o Portage, que busca e baixa o pacote da Internet, compila-o e instala-o automaticamente, de acordo com as configuraes feitas pelo usurio. O Gentoo possui arquivos de configurao prprios que definem as opes que devem ser utilizadas pelo compilador, de forma a otimizar os pacotes para uso na mquina local. Quando bem configurado, o Portage acaba produzindo um sistema onde o desempenho o ponto mais marcante. Outro ponto de destaque o Gentoo a rica documentao disponvel em seu site oficial. Mesmo usurio de outras distribuies podem se beneficiar de documentos que tratam de assuntos fundamentais como particionamento, formatao e sistema de arquivos, muitos desses documentos j traduzidos pela comunidade brasileira do Gentoo. Knoppix : Distribuio criada por Laus Knooper que oferece a possibilidade de rodar o sistema a partir do CD-ROM. O Knoppix muito popular, sendo muito utilizado para demonstraes do GNU/Linux, uma vez que pode-se rodar um sistema completo, repleto de aplicativos, a partir de um CD, sem necessidade de instalao.
15
Kurumin : Distribuio nacional criada por Carlos Eduardo Morimoto. O Kurumin baseado no Knoppix, tendo sobre esse a vantagem de ser adaptado realidade do usurio brasileiro, com ferramentas de instalao de hardwares muito comuns no Brasil, como modems e outros dispositivos. Por ser baseado no Knoppix, o Kurumin tambm roda a partir do CD, e pode ser rapidamente instalado no computador. Debian-BR-CDD : Este projeto uma iniciativa da comunidade brasileira Debian-BR para adaptar a distribuio Debian realidade do usurio brasileiro. Seu grande apelo est na facilidade de instalao e no belo aspecto visual. O Debian-BR-CDD 1.0 pre5 utiliza o GNOME como gerenciador de janelas padro, inclui uma excelente documentao para o usurio iniciante e um link para abrir o canal de IRC #debian-br-cdd, onde possvel tirar dvidas e relatar bugs diretamente para os desenvolvedores do sistema. Muriqui Linux : Esse projeto mantido e desenvolvido pelo Instituto Doctum de Educao e Tecnologia. Trata-se de uma distribuio baseada no Debian (um tipo de CDD, Custom Debian Distribution), com o diferencial de estar completamente traduzido para o portugus brasileiro, e pelo fato de ele vir com o instalador Anaconda, o mesmo usado em distribuies como o Red Hat e o Fedora. Isso o torna um sistema Debian muito fcil de instalar. O nome da distribuio foi baseada no nome de um macaco, considerado o maior da amrica latina, que s existe em alguns poucos lugares do Brasil. uma distribuio nova, mas que pode se tornar sucesso em um futuro prximo. Ubuntu : Desenvolvido na frica do Sul, o Ubuntu tem feito muito sucesso desde o seu lanamento, graas s suas ferramentas que tornam muito prtico o uso do sistema, e tambm pelo seu visual caprichado, utilizando X.org como servidor grfico padro.
A liberdade de redistribuir cpias de modo que voc possa ajudar ao prximo (Liberdade nmero 2); A liberdade de aperfeioar o programa, e liberar os seus aperfeioamentos, de modo que toda a comunidade se beneficie (Liberdade nmero 3). Acesso ao cdigo-fonte um pr-requisito para esta liberdade;
Um programa software livre se os usurios tem todas estas liberdades. Portanto, voc deve ser livre para redistribuir cpias, seja com ou sem modificaes, seja de graa ou cobrando uma taxa pela distribuio, para qualquer um em qualquer lugar. Ser livre para fazer essas coisas significa (entre outras coisas) que voc no tem que pedir ou pagar pela permisso. Voc deve tambm ter a liberdade de fazer modificaes e us-las privativamente no seu trabalho ou lazer, sem nem mesmo mencionar que elas existem. Se voc publicar as modificaes, voc no deve ser obrigado a avisar a ningum em particular, ou de nenhum modo em especial. Software Livre no significa no-comercial. Um programa livre deve estar disponvel para uso comercial, desenvolvimento comercial, e distribuio comercial. O desenvolvimento comercial de software livre no incomum; tais softwares livres comerciais so muito importantes. Portanto, voc pode ter pago para receber cpias de software livres, ou voc pode ter obtidos cpias sem nenhum custo. Mas independentemente de como voc obteve a sua cpias, voc sempre tem a liberdade de copiar e modificar o software, ou mesmo vender cpias, VOC LIVRE PARA ISSO. Softwares livres distribudos pelo licena GPL (GNU Public Licence) seguem um conceito conhecido como Copyleft, um trocadilho com o termo Copyright, que traduzindo literalmente significa deixamos copiar, que o que garante a liberdade dos usurios de modificarem e distriburem sua modificaes. Ou seja, um software livre sem Copyleft pode ser tornado proprietrio por um usurio. J um software protegido por uma licena que oferea Copyleft dever, se distribudo, ser distribudo sob a mesma licena, ou seja, repassando seus direitos. Em todo caso, no necessrio redistribuir um software livre modificado. O movimento do Software Livre foi criado em 1984 por Richard Stallman, um pesquisador do MIT (Massachusetts Insitute Technology), que no era a favor de grandes empresas de software imporem restries aos usurios com o uso do contrato de licenas de software. Desde ento, criou o projeto GNU (GNU is not UNIX), fundando a Free Software Foundation (FSF). A licena mais conhecida no mundo do software livre a GPL (GNU Public Licence), que uma das licenas que garantem todas essas liberdades listadas e comentadas acima, porm, existem outros tipos de licenas de software que so semelhantes, mas no iguais GPL, como por exemplo a BSD, Creative Commons, entre outras.
17
18
Captulo 2
Instalao do GNU/Linux
Neste captulo o usurio compreender como organizada uma instalao do GNU/Linux independente da sua distribuio, e o que necessrio saber antes e durante a instalao para se ter uma sistema enxuto e funcional.
19
Tipo de instalao (modo texto, grfico, expert, etc.) Deteco de hardware Seleo do idioma Seleo do layout do teclado Seleo e configurao do mouse Perfis de instalao Configurar rede Particionamento de disco Instalao de pacotes Configurar o modo grfico
Configurao do fuso horrio Configurao de usurios e senhas Configurao do gerenciador de inicializao (bootloader) Disco de inicializao Finalizao da instalao
Normalmente uma instalao de GNU/Linux possui estas caractersticas, porm, como existem diversas distribuies com seus prprios instaladores, algumas destas etapas podem no existir, podem fazer parte de outro item do instalador, ou mesmo podem ser executadas sem aparecerem visualmente para o usurio. A distribuio utilizada como base para o curso o Debian GNU/Linux 3.1, ou Debian Sarge. Esta distribuio desenvolvida e atualizada atravs do esforo de voluntrios espalhados ao redor do mundo, seguindo o estilo de desenvolvimento GNU/Linux. Por este motivo, foi adotada como a distribuio oficial do projeto GNU. Apesar da sua instalao ser inteiramente em modo texto, pode-se instalar um sistema completo com uma enorme facilidade e rapidez. Sua instalao dividida nas seguintes etapas:
Diretoria de Transferncia Tecnolgica Centro de Computao Unicamp 21
Tipo de instalao (linux26, expert, etc.) Seleo do idioma Seleo do layout do teclado Detectar e montar CD-ROM Carregar componentes do instalador Detectar hardware de rede Configurar rede Detectar discos e outros hardwares Particionar disco Instalar Sistema Bsico Instalar o GRUB em um disco rgido Configurao do fuso horrio Configurar usurios e senhas Configurar o APT (repositrio de pacotes) Seleo dos perfis de instalao Configurar o modo grfico
A partir de agora, vamos detalhar o processo de instalao do Debian GNU/Linux 3.1 Sarge, passo-a-passo, com apresentao das telas que fazem parte do instalador. Lembrando que as opes selecionadas fazem parte dos exemplos deste curso.
22
A figura 2.2.1 mostra a tela de apresentao do instalador, logo aps a inicializao do computador pela mdia de instalao do Debian GNU/Linux Sarge. Esta pode ser adquirida em um dos mirrors oficiais, que encontram-se espalhados pelo mundo, e listados em http://www.debian.org/CD/http-ftp/ . Precisa-se apenas do CD 1 para realizar uma instalao funcional e enxuta.
Pressionando a tecla F1, podemos visualizar um menu com diversar informaes sobre a instalao e sobre o Projeto Debian GNU/Linux. Utilize o mtodo de instalao linux26 (figura 2.2.2).
23
Seleo do Idioma
Nesta etapa, faz-se a seleo do idioma usado no processo de instalao (figura 2.2.3). Selecione a opo Portuguese (Brazil) - Portugus do Brasil.
Escolha o layout do teclado que voc est usando (figura 2.2.4). O instalador te oferece a opo mais comum, baseada na sua escolha do idioma, mas obviamente, voc pode mudar se desejar. Selecione a opo Portugus Brasileiro (layout ABNT2).
O instalador executa a deteco do CD-ROM (figura 2.2.5) para poder carregar na memria os componentes necessrios ao seu funcionamento (figuras 2.2.6 e figura 2.2.7).
25
Configurar Rede
A deteco do hardware de rede feita automticamente (figura 2.2.8), e se a mquina faz parte de uma rede, o instalador tenta realizar a configurao automtica via DHCP (figura 2.2.9). Caso contrrio, ser exibida uma mensagem de erro (figura 2.2.10) e o menu de opes da configurao de rede. Selecione a opo Configurar a Rede Manualmente (figura 2.2.11).
Figura 2.2.10 Mensagem de erro exibida por no achar nenhum servidor DHCP.
As informaes de rede como endereo IP (figura 2.2.12), mscara de rede (figura 2.2.13), gateway (figura 2.2.14), servidores de nomes, ou DNS (figura 2.2.15), nome da mquina (figura 2.2.16) e domnio da rede(figura 2.2.17), sero necessrias nesta etapa da instalao.
28
Nesta etapa feita a deteco dos disco e outros hardwares relacionados (figura 2.2.18).
Particionar Discos
Aps realizar a deteco automtica dos discos, o instalador inicializa o particionador (figura 2.2.19) e exibe um menu onde listado todos discos detectados (figura 2.2.20). Selecione a opo Editar manualmente a tabela de partices.
Como neste custo j existem parties configuradas, formatadas e montadas, voc ir inicialmente remov-las para aprender como realizar o processo de particionamento de discos. Selecione a primeira partio (swap)(figura 2.2.21), e na prxima tela (figura 2.2.22), selecione a opo Remover a partio.
31
O particionador ir atualizar a tabela de parties da mquina (figura 2.2.23), e depois voltar novamente ao menu onde esto listadas todas as parties configuradas no(s) respectivo(s) disco(s) (figura 2.2.24). Repita a operao anterior com a segunda partio (reiserfs), selecionando-a, e na prxima tela, escolhendo a opo Remover a partio (figura 2.2.25).
32
Figura 2.2.25 Selecione a opo Remover a partio. Novamente apresentado o menu do particionador, com a tabela de parties sem nenhuma configurao. Nesta instalao ser utilizado um esquema de particionamento bsico, indicado para iniciantes. Siga as orientaes enumeradas para criar as parties. Cada item contm a referncia das telas exibidas durante o particionamento para que o usurio possa localizar-se durante a execuo dos procedimentos. 1. Selecione a rea do disco que contenha espao livre para criar as parties (figura 2.2.26):
2. Primeiramente, cria-se uma partio de SWAP (rea de troca) para o sistema. Selecione a opo Criar uma nova partio (figura 2.2.27):
3. Coloque neste campo o valor 128 MB (Entre os valores 128 e MB coloque um espao em branco) (figura 2.2.28):
34
35
6. Selecione o item Usar como para selecionar o tipo de sistema de arquivos para esta partio (figura 2.2.31):
7. Para a criao de uma partio de SWAP, seleciona-se a opo rea de Troca (figura 2.2.32):
8. Nesta etapa, o instalador exibe a configurao da partio recm-criada. Selecione a opo Finalizar a configurao da partio para confirmar a criao da partio de SWAP (figura 2.2.33):
Figura 2.2.33 Confirmao da criao da partio de SWAP. 9. O instalador volta a exibir o menu do particionador, com a nova partio de SWAP sendo exibida. Agora cria-se a partio principal, o qual ser instalado o sistema operacional. Novamente selecione a rea do disco que contenha espao livre para criar as parties (figura 2.2.34):
11. Coloque neste campo o valor 5 GB (Entre os valores 5 e GB coloque um espao em branco) (figura 2.2.36):
38
39
14. Selecione o item Usar como para selecionar o tipo de sistema de arquivos para esta partio (figura 2.2.39):
15. Para a nossa partio principal, selecione o item sistema de arquivo com journaling ReiserFS (figura 2.2.40):
16. Escolhido o tipo de sistemas de arquivos, selecione o item Flag Inicializvel, (figura 2.2.41) para tornar a nossa partio inicializvel (ligado):
17. Aps estas configuraes, Selecione a opo Finalizar a configurao da partio (figura 2.2.42):
18. Ser exibida a configurao da sua tabela de parties (figura 2.2.43). Selecione a opo Finalizar o particionamento e gravar as mudanas no disco:
19. Confirme a gravao da tabela de parties, selecionando a opo Sim (Figura 2.2.44):
20. Aps a confirmao anterior, o instalador ir formatar as parties recmcriadas (figura 2.2.45):
A instalao do sistema bsico feita logo aps a formatao das parties (figura 2.2.46):
Figura 2.2.46 Instalao do sistema bsico. Terminada a instalao do sistema bsico, o instalador pede a confirmao para instalar o gerenciador de inicializao GRUB (figura 2.2.47):
Figura 2.2.48 Executando a instalao do GRUB. Agora o instalador realiza as ltimas configuraes desta primeira etapa (figura 2.2.49), e exibe uma mensagem notificando a finalizao da instalao (figura 2.2.50). O CD ser ejetado da bandeja e o computador ser reinicializado para a prxima etapa que a configurao do sistema
44
Configurao do Fuso
Selecione a configurao de fuso horrio para o seu computador (figuras 2.3.3 e 2.3.4):
46
Nesta parte da configurao, sero configuradas as informaes dos usurios que normalmente utilizam a mquina. Basicamente, tm-se dois usurio no sistema, o usurio para tarefas administrativas, o root, e um usurio para utilizao geral, o qual daremos o nome de curso. Para o usurio administrativo (root), a configurao pede a sua senha (figura 2.3.5) e a confirmao para esta senha (figura 2.3.6):
47
Para o usurio de utilizao geral (curso), a configurao pede o seu nome completo (figura 2.3.7), seu username (figura 2.3.8), sua senha (figura 2.3.9) e a confirmao para esta senha (figuras 2.3.10):
48
Deve-se escolher o mtodo que o APT (A ferramenta de gerenciamento de pacotes do Debian GNU/Linux) dever utilizar para acessar o repositrio de pacotes Debian. possvel instalar estes pacotes atravs de um CD-ROM, FTP, HTTP, ou diretamente do sistema de arquivos. Utilize a opo cdrom (figura 2.3.11) para o repositrio de pacotes, o qual ser examinado e preparado (figura 2.3.12) para selecionar os perfis de instalao.
49
Nesta etapa a seleo de perfis requerida pela configurao do sistema. Como visto, existem perfis para os mais variados usos para serem instalados (figura 2.3.13). Selecione as opes Ambiente Desktop e Servidor Web, as quais sero suficientes para as tarefas propostas:
Logo aps a instalao dos pacotes dos perfis selecionados, o instalador inicia a configurao do modo grfico. Como indicado no incio do captulo, tenha em mos as informaes de hardware relacionados ao modo grfico (monitor, placa de vdeo, etc.) e selecione-o no menu de opes. Primeiramente, ser pedido o modelo da sua placa de vdeo. No nosso caso, selecione i810 (figura 2.3.14). A deteco automtica do mouse (figura 2.3.15) e do monitor (2.3.16) sero, respectivamente, pedidos em seguida:
Se o seu monitor for do tipo LCD, selecione a opo abaixo (figura 2.3.17):
Figura 2.3.17 Se o seu monitor dor do tipo LCD, selecione esta opo.
A mensagem exibida na figura 2.3.18 informa os tipo de opes que o instalador disponibiliza para a configurao do seu monitor. Na figura 2.3.19 estas opo so exibidas. A opo Medium ser utilizada nesta instalao, porm, se voc for um usurio mais avanado ou seu monitor precise de configuraes mais aprofundadas, escolha a opo Advanced. No caso de ser um usurio muito iniciante, escolha a opo Simple:
Diretoria de Transferncia Tecnolgica Centro de Computao Unicamp 52
Figura 2.3.19 Selecione a opo Medium. Na figura 2.3.20, o instalador exibe o menu de opes para configurar o modo de exibio do seu monitor. Neste caso selecione a opo 800x600 @ 60Hz, que a resoluo do monitor que est sendo utilizado. Porm, no caso de realizar a instalao do Debian GNU/Linux em outra mquina, selecione a opo que mais adequada para o seu monitor.
53
54
A ltima parte da instalao a configurao do EXIM, o MTA (servidor de emails padro do Debian). Se voc pretende usar o sendmail ou o postfix, selecione a opo sem configurao no momento (figura 2.3.21) e no configure o EXIM. Selecione esta opo, pois neste momento este recurso no ser utilizado.
Figura 2.3.21 Sem configurao para o EXIM no momento. Mesmo o instalador pedindo a confirmao para configurar o servidor de mensagens (figura 2.3.22), selecione a opo Sim. Na prxima tela, o instalador pergunta para qual conta de usurio as mensagens sero postadas (figura 2.3.23). Como no configuramos o servidor de mensagens, selecione Ok, para ento ser exibida a tela que finaliza a instalao do nosso sistema Debian GNU/Linux (figura 2.3.24).
55
Figura 2.3.24 Fim da instalao do Debian GNU/Linux Pronto! Agora o seu sistema Debian GNU/Linux est instalado. O servidor grfico ser inicializado e uma tela para a autenticao aparece para o uso do gerenciador de janelas. Utilize a conta de usurio recm-criada, e bom uso!
56
Captulo 3
Utilizando o GNU/Linux
Neste captulo o usurio acessa e utiliza pela primeira vez o GNU/Linux, aprende o que um gerenciador de janelas, e utiliza os recursos mais bsico do sistema.
57
Figura 3.1.1 Ilustrao do esquema de atuao dos aplicativos grficos. No universo do software livre, existem vrios tipos de gerenciadores de janelas disponveis, que entre os mais conhecidos, podem-se citar: KDE : K Desktop Environment, ou simplesmente KDE, um ambiente grfico muito difundido no mundo GNU/Linux, pois apresenta um conjunto de aplicativos consistentes para usurios e programadores, alm de uma aparncia agradvel e modo de operao bastante familiar. Alm do gerenciador de janelas, fazem parte do projeto KDE inmeros aplicativos para gerenciamento de arquivos, controle de dispositivos, acesso compartilhamentos de rede, gerenciamento do sistema, acesso a Internet, alm da sute de escritrio KOffice, o pacote KDevelop para desenvolvimento de aplicativos grficos, o editor de pginas para a Internet Quanta, e muito mais. O KDE utiliza a biblioteca grfica QT, mantida pelos desenvolvedores do KDE e muito utilizada para a construo de interfaces
58
grficas para aplicativos. Um dos pontos contra para o KDE o seu elevado consumo de recursos de sistema, principalmente de memria RAM, o que o torna inutilizvel em mquina que no tenha pelo menos 128 MB de memria disponvel.
GNOME : O GNOME, assim como o KDE, constitudo por um gerenciador de janelas, e diversos aplicativos para o usurio, como gerenciador de arquivos, navegador de Internet, aplicativos para gerenciamento e configurao do sistema, navegao pela rede, jogos, etc. Alm de aplicativos para desenvolvimento de aplicaes. O GNOME utiliza a biblioteca grfica GTK+, muito utilizada por outros aplicativos, como o GIMP e o editor de pginas para a Internet Bluefish. Uma grande vantagem do GNOME sobre outros gerenciadores de janelas o seu sistema de atualizao dinmica das configuraes, que permite que qualquer configurao entre em vigor imediatamente sua seleo, sem a necessidade de clicar em um boto "Aplicar" ou de reinicar o ambiente grfico, como acontece na maioria dos gerenciadores de janelas, incluindo o KDE. Enlightenment : O Enlightenment um super gerenciador de janelas altamente personalizvel, bonito e com muitos efeitos visuais. O projeto Enlightenment produz, alm do ambiente grfico, diversas bibliotecas grficas, como Imlib, FNLib e Imlib2, que so hoje utilizadas por muitos programas, inclusive outros ambientes grficos, como o fluxbox. Blackbox : O Blackbox um gerenciador de janelas minimalista, muito leve e pequeno. Ao contrrio de outros gerenciadores de janelas mais poderosos, ele no inclui nenhum outro aplicativo, motivo pelo qual ele to pequeno (alguns poucos KB). Sua configurao toda feita atravs da edio de arquivos de texto, o que no nem um pouco prtico, mas tem l as suas vantagens. Graas sua velocidade, o Blackbox muito apreciado por usurios avanados, que no gostam de dispender processamento e memria para rodar um ambiente com o KDE, GNOME ou Enlightenment. O Blackbox, quando em conjunto com outros pequenos mini-aplicativos, torna-se um gerenciador de janelas muito bonito. Fluxbox : Baseado no Blackbox, o Fluxbox contm mais recursos que aquele, como suavizador de fontes e suporte nativo a transparncias, sem deixar de ser igualmente leve e simples. O Fluxbox muito apreciado entre seus usurios, graas perfeita unio entre beleza e leveza deste excelente gerenciador de janelas. O suporte a cones no desktop fornecido por programas externos. Outro recurso muito interessante o suporte aos chamados docks, popularizados no WindowMaker. Windowmaker : Criado pelo brasileiro Alfredo Kojima, um gerenciador de janelas que, ao contrrio do KDE e GNOME, que se assemelham as interfaces do Microsoft Windows, tem uma proposta bastante diferente. O objetivo principal
59
que gerenciar abertura e manipulao de janelas acontece de forma muito rpida e eficiente. O consumo de memria bem pequeno. Ele ainda possui uma facilidade de possuir atalhos para programas, sem prejudicar o consumo de memria do computador. Existem outras dezenas de tipos de gerenciadores de janelas, como o Twm, Icewm, Xfce, AfterStep, entre outros. A escolha do seu gerenciador de janelas pessoal, depende muito do gosto de cada pessoa e dos recursos que deseja utilizar. Como mencionado, o gerenciador de janelas padro do Debian GNU/Linux o GNOME (figura 3.1.2). Ele no apenas um simples gerenciador de janelas, e sim, um desktop completo, com diversos aplicativos de diferentes tipos disponveis para a sua utilizao (figura 3.1.3). Atravs do gerenciador de pacotes APT e Synapitc (verso grfica do APT), podemos instalar e atualizar facilmente os aplicativos disponveis, aumentando o nmero de ferramentas para o seu desktop.
60
Para um administrador de sistemas, esta ferramenta fundamental, pois muitas tarefas so feitas no modo texto, alterando arquivos de configurao, executando comandos manualmente, verificando os processos que esto carregados na memria, entre outros. Para executar um terminal virtual partir do GNOME, clique no cone que indicado pela figura 3.1.4.
cone para
executar o terminal virtual Figura 3.1.4 cone do terminal virtual
Opes:
- l : escreve no formato de colunas simples. - i : procede a sada para o arquivo pelo seu nmero serial (inode). - R : lista os diretrios encontrados recursivamente. - h : mostra o tamanho dos arquivos em KB, MB, GB. - a : lista todos os arquivos inclusive os ocultos. - F : insere um caracter aps arquivos executveis ('*'), diretrios ('/'), sockets ('=') e pipe ('|'). Seu uso til para identificar de forma fcil tipos de arquivos nas listagens de diretrios.
Exemplo:
$ ls / bin cdrom boot dev
etc home
initrd initrd.img
lib media
mnt opt
proc root
sbin srv
sys tmp
usr var
vmlinuz
62
Opes:
- p : cria toda a estrutura de diretrios passada como parmetro. --verbose : imprime uma mensagem para cada diretrio criado.
Exemplo:
$ mkdir teste
Opes: - p : remove a estrutura de diretrios passadas como parmetro, porm, o ltimo diretrio passado como parmetro deve estar vazio. -- verbose : imprime uma mensagem para cada diretrio apagado.
Exemplo:
$ rmdir teste
3.3.4- rm : alm de remover diretrios e estrutura de diretrios, tem como funo principal remover arquivos. Sintaxe:
$ rm <opes> <diretrio> <ou arquivo>
63
Opes: - i : pergunta antes de remover, esta ativada por padro. - v : mostra os arquivos/diretrios na medida que so removidos - r : usado para remover arquivos em sub-diretrios. Esta opo tambm pode ser usada para remover sub-diretrios. - f : remove os arquivos sem perguntar.
Exemplo:
$ rm arquivo.txt $ rm -r teste2
3.3.5- cd : muda o diretrio de trabalho atual. Caso no seja especificado nenhum diretrio, muda para o diretrio pessoal do usurio. Sintaxe:
$ cd <diretrio>
Exemplo:
$ cd teste2
Exemplo:
$ pwd /home/curso/teste2
64
3.3.7- clear : limpa o contedo do terminal e posiciona o cursos no incio da tela. Sintaxe:
$ clear
3.3.8- man : este comando exibe as pginas de manual do comando ou programa passado como parmetro. Elas trazem uma descrio bsica desta comando ou programa e detalhes sobre o funcionamento de uma determinada opo. Uma pgina de manual visualizada na forma de texto nico com rolagem vertical. Tambm documenta parmetros usados em alguns arquivos de configurao. Sintaxe:
$ man <comando ou programa>
Opes de navegao: q : sai da pgina de manual. f ou PageDown : rola 25 linhas abaixo w ou PageUp : rola 25 linhas acima k ou seta para cima : rola uma linha acima. e ou seta para baixo : rola uma linha abaixo. p ou g : Incio da pgina. h : ajuda sobre as opes da pgina de manual. s : salva a pgina de manual em formato texto no arquivo especificado. Exemplo:
$ man bash
3.3.9- apropos : procura por comandos atravs da descrio. til quando precisamos fazer alguma coisa mas no sabemos qual comando usar. Ele faz sua pesquisa nas pginas de manual existentes no sistema e lista os comandos/programas que atendem a consulta. Sintaxe:
$ apropos <comando ou programa>
65
Exemplo:
$ apropos bash bash (1) - GNU Bourne-Again Shell bash-builtins (7) - bash built-in commands, see bash(1) bashbug (1) - report a bug in bash builtins (7) - bash built-in commands, see bash(1) checkbashisms (1) - check for bashisms in /bin/sh scripts gst-complete-0.8 (1) - do bash completion for gst-launch command-lines ispellconfig (8) - Bash script to select a new ispell default dictionary. rbash (1) - restricted bash, see bash(1) update-ispell-dictionary (8) - Bash script to select a new ispell default dictionary.
Alm dos comandos man e apropos, voc pode conseguir mais informaes sobre os comandos ou programas atravs dos comandos info e help. Outra maneira de conseguir informaes mais rpidas sobre os parmetros que o comando suporta utilizando o parmetro -help. Exemplo:
$ mkdir --help Usage: mkdir [OPTION] DIRECTORY... Create the DIRECTORY(ies), if they do not already exist. Argumentos obrigatrios para opes longas tambm o so para opes curtas -m, --mode=MODE set permission mode (as in chmod), not rwxrwxrwx - umask -p, --parents no error if existing, make parent directories as needed -v, --verbose print a message for each created directory --help display this help and exit --version output version information and exit Comunicar `bugs' para <bug-coreutils@gnu.org>.
66
Captulo 4
Sistema de Arquivos
Neste captulo o usurio compreender as noes tericas de como funcionam as parties e os sistema de arquivos suportados pelo GNU/Linux.
67
4.1- Parties
So divises existentes no disco rgido que marcam onde comea e onde termina um sistema de arquivos. Por causa destas divises, ns podemos usar mais de um sistema operacional no mesmo computador (como o GNU/Linux, Microsoft Windows e DOS), ou dividir o disco rgido em uma ou mais partes para ser usado por um nico sistema operacional. Uma partio de disco no interfere em outras parties existentes, por estarem em reas distintas no disco rgido. Para particionar (dividir) o disco rgido em uma ou mais partes necessrio o uso de um programa de particionamento. Os programas mais conhecidos para particionamento de discos no GNU/Linux so fdisk, cfdisk, Parted e o Disk Druid. Informaes importantes para a criao e utilizao das parties: Para gravar os dados, o disco rgido precisa ser particionado (usando o cfdisk ou outro particionador), deve-se escolher o tipo da partio, e depois tal partio deve ser formatada com o um tipo de sistema de arquivos. Aps criada e formatada, a partio ser identificada como um dispositivo no diretrio /dev e dever ser montada para permitir seu uso no sistema; Quando se apaga uma partio, voc estar apagando TODOS os arquivos existentes nela; Em sistemas novos, comum encontrar o Microsoft Windows instalado em uma partio que consome TODO o espao do disco rgido. Uma soluo para instalar o GNU/Linux apagar esta partio e criar trs com tamanhos menores (uma para o Microsft Windows, uma para o GNU/Linux e outra para a Memria Virtual do Linux (SWAP);
68
4.2.1 EXT2
Logo que foi inventado, o GNU/Linux utilizava o sistema de arquivos Minix (e conseqentemente uma partio Minix) para o armazenamento de arquivos. Com a evoluo do desenvolvimento, foi criado o padro EXT (Extended Filesystem) e logo evoluiu para o EXT2 (Second Extended Filesystem) que, apesar de obsoleto, ainda o usado hoje em dia. Ele rpido, no se fragmenta to facilmente pois permite a localizao do melhor lugar onde o arquivo se encaixa no disco, etc. Isto til para grandes ambientes multiusurio onde vrias pessoas gravam/apagam arquivos o tempo todo.
4.2.2 Journaling
O sistema de journaling grava qualquer operao que ser feita no disco em uma rea especial chamada journal, assim se acontecer algum problema durante a operao de disco, ele pode voltar ao estado anterior do arquivo, ou finalizar a operao. Desta forma, o journal acrescenta ao sistema de arquivos o suporte a alta disponibilidade e maior tolerncia a falhas. Aps uma falha de energia, por exemplo, o journal analisado durante a montagem do sistema de arquivos e todas as operaes que estavam sendo feitas no disco so verificadas. Dependendo do estado da operao, elas podem ser desfeitas ou finalizadas. O retorno do servidor praticamente imediato (sem precisar a enorme espera da execuo do fsck em parties maiores que 10Gb), garantindo o rpido retorno dos servios da mquina. Outra situao que pode ser evitada com inconsistncias no sistema de arquivos do servidor aps a situao acima, fazendo o servidor ficar em estado single user e esperando pela interveno do administrador. Alguns tipos de sistema de arquivos utilizam este recurso atualmente, como por exemplo, o EXT3 e o ReiserFS.
4.2.3 EXT3
O sistema de arquivos EXT3 faz parte da nova gerao extended file system do GNU/Linux, sendo que seu maior benefcio o suporte a journaling. O uso deste sistema de arquivos comparado ao EXT2, na maioria dos casos, melhora o desempenho do sistema de arquivos atravs da gravao seqencial dos dados na rea de metadados e acesso mhash a sua rvore de diretrios. A estrutura da partio EXT3 semelhante a EXT2, o journaling feito em um arquivo chamado .journal que fica oculto pelo cdigo EXT3 na partio (desta forma ele no poder ser apagado, comprometendo o funcionamento do sistema). A estrutura idntica da partio EXT3 com a EXT2 torna mais fcil a manuteno do sistema, j que todas as ferramentas para recuperao EXT2 funcionaro sem problemas.
69
4.2.4 ReiserFS
O ReiserFS um sistema desenvolvido especialmente para o GNU/Linux, muito confivel e surpreendentemente rpido, e em muitos casos, mais rpido at mesmo que sistemas sem suporte a journaling. O ReiserFS, por no utilizar blocos de tamanho fixo, mas ajustar seu tamanho de acordo com o arquivo, evita os problemas de desperdcio de espao comuns em outros sistemas de arquivos. Possui suporte a arquivos maiores que 2 GB e o acesso a rvore de diretrios muito mais rpido. Utiliza uma eficiente estrutura de dados chamada balanced tree (rvore equilibrada), que trata toda a partio como se fosse uma nica tabela de banco de dados contendo diretrios, arquivos e arquivos de meta-data, o que aumenta muito o desempenho de aplicativos que trabalham com arquivos pequenos, porque estes so lidos de uma s vez, em apenas um ciclo de I/O do HD. Sua verso 3 no trabalha perfeitamente com o sistema de arquivos de rede NFS (Network File System). Existem alguns patches para resolver o problema, mas eles no o resolvem completamente. O criador do ReiserFS Hans Reiser. Atualmente o projeto patrocinado pela SuSE e mantido pela empresa NameSys. Aguarda-se o lanamento oficial da verso 4 do ReiserFS, o Reiser4, que foi totalmente reescrito e possui um desempenho superior da verso 3.
4.2.5 JFS
Criado pela IBM para uso em servidores corporativos, teve seu cdigo liberado. O sistema de arquivos JFS tambm usa a estrutura I-node para armazenar a localizao dos blocos de cada arquivo nas estruturas fsicas do disco. A verso JFS2 armazena esses Inodes em uma rvore binria para acelerar o acesso a essas informaes. Esses blocos podem variar de 512 a 4096 bytes, e a alocao dos I-nodes feita conforme vai sendo necessrio.
4.2.6 XFS
Desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o cdigo fonte, o XFS possui vrios patches e alguns bugs, mas um sistema de arquivos muito rpido na gravao e possui um desfragmentador para arquivos.
memria. Por este motivo a partio SWAP tambm chamada de rea de troca ou memria virtual. A velocidade em que os dados so movidos da memria RAM para a partio muito alta.
/dev/hda1 | ||| | |||_ Nmero que identifica o nmero da partio no disco rgido. | || | ||_ Letra que identifica o disco rgido (a=primeiro, b=segundo, etc...). | | | |_ Sigla que identifica o tipo do disco rgido (hd=ide, sd=SCSI, xd=XT). | |_ Diretrio onde so armazenados os dispositivos existentes no sistema.
71
/dev/fd0 - Primeira unidade de disquetes. /dev/fd1 - Segunda unidade de disquetes. /dev/hda - Primeiro HD na primeira controladora IDE do micro (primary master). /dev/hda1 - Primeira partio do primeiro HD IDE. /dev/hdb - Segundo HD na primeira controladora IDE do micro (primary slave). /dev/hdb1 - Primeira partio do segundo HD IDE. /dev/sda - Primeiro HD na primeira controladora SCSI. /dev/sda1 - Primeira partio do primeiro HD SCSI. /dev/sdb - Segundo HD na primeira controladora SCSI. /dev/sdb1 - Primeira partio do segundo HD SCSI. /dev/sr0 - Primeiro CD-ROM SCSI. /dev/sr1 - Segundo CD-ROM SCSI. /dev/xda - Primeiro HD XT. /dev/xdb - Segundo HD XT.
As letras de identificao de discos rgidos podem ir alm de hdb, em algumas mquinas, por exemplo, a unidade de CD-ROM podem estar localizada em /dev/hdg (Primeiro disco - quarta controladora IDE). importante entender como os discos e parties so identificados no sistema, pois ser necessrio usar os parmetros corretos para mont-los.
72
Captulo 5
Arquivos e Diretrios
Neste captulo o usurio aprender como os arquivos so tratados pelo GNU/Linux, seus tipos e a estrutura de diretrios padro do sistema.
73
5.1- Arquivos
Nos sistemas *NIX, tudo o que pode ser manipulado pelo sistema operacional representado sob a forma de arquivo, incluindo a diretrios, dispositivos e processos. O arquivo a estrutura mais bsica e mais importante em um sistema GNU/Linux. O GNU/Linux segue o padro POSIX, o mesmo utilizado por outros sistemas operacionais derivados do UNIX. Dessa forma, conhecendo o GNU/Linux voc no ter dificuldades em operar outros sistemas como HPUX, FreeBSD, Solaris, etc., que assim como o GNU/Linux so baseados no UNIX. Tambm devido ao grande nmero de distribuies GNU/Linux que existem, foram determinados padres sobre a sua estrutura e a forma dele manipular os arquivos. Esses padres constituem a Linux Standard Base, ou simplesmente LSB. A LSB contm todas as especificaes que um sistema GNU/Linux deve adotar, para manter um nvel de compatibilidade entre diferentes distribuies. Costuma-se definir arquivo como o lugar onde gravamos nossos dados. Em outros sistemas operacionais feita uma distino entre arquivos, diretrios, dispositivos e outros componentes do sistema. No GNU/Linux, entretanto, tudo aquilo que pode ser manipulado pelo sistema tratado como arquivo. Mas, se tudo arquivo, como o sistema operacional faz a distino entre arquivo regular, diretrio, dispositivo, processo, etc? Muito simples: todo arquivo tem o que chamado cabealho, que contm informaes como: tipo, tamanho, data de acesso, modificao, etc. Atravs desse cabealho o GNU/Linux sabe ento quando se trata de arquivo regular, diretrio, dispositivo, e assim por diante.
Binrios: Arquivos binrios so compostos por bits 1 e 0 e s podem ser interpretados pelo sistema operacional, sendo incompreensveis por ns humanos. Se um arquivo binrio for aberto por um editor de textos, sero exibidos vrios smbolos estranhos. Arquivos de msica, vdeos, imagens e bibliotecas so exemplos de arquivos binrios;
74
Texto: Arquivos do tipo texto so compostos por informaes em forma de texto, que podem ser entendidas pelo usurio comum. Arquivos desse tipo no necessariamente contm texto propriamente dito. Quando se diz que um arquivo do tipo texto, estamos querendo dizer que se o abrirmos num editor de texto, sero exibidos informaes legveis.
Diretrios: Os diretrios so utilizados para separar um grupos de arquivos. Um diretrio pode conter arquivos e outros diretrios, que sero chamados subdiretrios; Dispositivos: Todo componente de hardware instalvel chamado dispositivo. Placas de vdeo, som, rede, drives de CD-ROM, tudo o que se liga na interface USB, memria RAM, so dispositivos. Os dispositivos podem ser:
De Bloco: Dispositivos de bloco utilizam buffer para leitura/gravao. Geralmente so unidades de disco, como HD's, CD's, etc; De Caracter: Esses dispositivos no utilizam buffer para leitura/gravao. A maioria dos dispositivos PCI e outros dispositivos como impressoras, mouse, etc. so do tipo caracter;
Pipes: Utilizados pelos processos do sistema para comunicarem-se entre si; Sockets : Utilizados nos processos de comunicao em rede; Links: So atalhos. Servem para fazer referncia a outro arquivo localizado em outro local. Podem ser de dois tipos:
Simblicos: Fazem referncia ao arquivo atravs de seu endereo lgico no disco ou memria. So os links mais comuns; Absolutos: Fazem referncia ao arquivo atravs do seu endereo fsico no disco rgido.
Arquivos podem conter diferentes tipos de informaes. Cada tipo de informao requer um mtodo especfico de trabalho. Assim, um arquivo de imagem no pode ser lido por um programa de reproduo de udio, porque os dados de um arquivo de imagem so organizados de forma totalmente diferente da de um arquivo de udio, e o programa em questo s capaz de lidar com arquivos de udio. Tendo isso em vista, necessrio que o sistema operacional e os demais programas possam diferenciar os diversos tipos de arquivos disponveis, para evitar que um programa tente manipular um tipo de arquivo que no suporta. O GNU/Linux faz essa diferenciao atravs da leitura do cabealho do arquivo. Assim, a extenso do arquivo geralmente no importa para o sistema operacional, mas usada to somente para fcil identificao do usurio, motivo pelo qual muito comum encontrarmos arquivos sem extenso no GNU/Linux.
75
5.4- Diretrios
Os diretrios, como voc deve saber, contm arquivos ou outros diretrios. Todo sistema operacional possui o que chamado rvore de diretrios, que uma estrutura bsica de diretrios principais com seus respectivos subdiretrios. No GNU/Linux a rvore de diretrios particularmente muito bem organizada, e os arquivos so divididos em categorias. Assim, arquivos executveis (programas) so agrupados num determinado diretrio, enquanto bibliotecas so arquivados em outro, e arquivos temporrios em outro, e assim por diante. Isso garante uma boa organizao do sistema e traz tambm uma grande praticidade, como vocs podero ver mais adiante.
em termos de organizao e segurana, voc no obrigado a concentrar seus arquivos dentro do seu diretrio de usurio. Nada impede que voc autentique-se como root, crie uma pasta /arquivos, abra o menu de permisses para que seu usurio geral tenha permisso para acess-la e a utilize para guardar seus arquivos, por exemplo. Mas, as diferenas no param por a. Para onde vo os programas que so instalados se no existe uma pasta central como a C:\Arquivos de programas? E para onde vo os arquivos de configurao se o GNU/Linux no possui nada semelhante ao registro do Microsoft Windows? Veremos isso neste captulo, mas a primeira coisa com que voc precisa se habituar que no GNU/Linux os discos e parties no aparecem necessariamente como unidades diferentes, como o C:\, D:\, e E:\ no Microsoft Windows. Tudo faz parte de um nico diretrio, chamado diretrio raiz, ou '/'. Dentro deste diretrio temos no apenas todas as parties de disco, mas tambm o CD-ROM, drive de disquete e outros dispositivos. Dentro da estrutura do sistema de arquivos, cada um dos diretrios possui uma funo especfica, como vemos na lista abaixo.
/-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|--
bin boot dev etc home lib media mnt opt proc root sbin srv sys tmp usr var
77
/boot : Este diretrios contm tudo que necessrio para carregar o sistema, exceto
os arquivos de configurao. Contm arquivos estticos relacionados inicializao do sistema, como o Kernel, e o boot-loader GRUB ou LILO.
/dev : Contm arquivos de dispositivos de entrada e sada (I/O) como por exemplo,
o CD-ROM (/dev/cdrom), o disquete (/dev/fd0), e o HD (/dev/hda). Todo o mapeamento para o hardware do sistema ser encontrado neste diretrio.
registro do Microsoft Windows. A vantagem que enquanto o registro uma espcie de caixa preta, os scripts do diretrio /etc so desenvolvidos justamente para facilitar a edio manual. verdade que na maioria dos casos isto no necessrio, mas a possibilidade continua a. Os arquivos recebem o nome dos programas seguidos geralmente da extenso .conf. Normalmente no contm binrios.
/etc/network : Contm os arquivos de configurao de rede. /etc/skel : Contm os arquivos que sero gravados no diretrio pessoal
de um novo usurio.
portanto, necessitem de bibliotecas separadas, podem existir uma ou mais variantes do diretrio /lib. Isso comumente utilizado para fornecer suporte a 64 bits ou 32 bits em sistemas que suportam mltiplos formatos de binrios, mas requerem bibliotecas com o mesmo nome. Neste caso, /lib32 e /lib64 seriam os diretrios de bibliotecas, e /lib seria um link para um deles.
Diretoria de Transferncia Tecnolgica Centro de Computao Unicamp 78
montagem para mdias removveis, como por exemplo disquetes, drives CD-ROM, ZIP drives, gravadores de CD/DVD, dispositivos USB, etc.
montagem para sistemas de arquivos temporrios, que podem ser parties de outros sistemas operacionais da mquina, como por exemplo, um sistemas de arquivos FAT32 ou NTFS do Microsoft Windows.
podem existir subdiretrios que abrigam os arquivos estticos destas aplicaes, tendo cada subdiretrio um nome que descreva o pacote de software contido nele. Podem existir os subdiretrios /opt/bin, /opt/doc, /opt/include, /opt/info, /opt/lib e /opt/man, os quais so reservados para uso do administrador do sistema local.
usurio root pode ser determinado por preferncias, porm /root a sua localizao padro.
recuperar e reparar o sistema, complementando os comandos encontrados em /bin. Comandos como getty, reboot, shutdown, ifconfig e fdisk so encontrados neste diretrio.
/srv : Este diretrio contm os arquivos de aplicaes como Apache, FTP e CVS. Ainda
pouco usado por ter sido implementado nas verses mais recentes do FHS.
/tmp : Este diretrio utilizado para arquivos temporrios gerados por programas,
podendo estar no disco rgido ou na memria RAM. Os programas no devem assumir que quaisquer arquivos ou diretrios em /tmp sejam preservados entre execues dos mesmos. Recomenda-se que o contedo de /tmp seja apagado sempre que o sistema for inicializado (padro).
79
diretrio principal de comandos executveis no sistema. Executveis de programas como python, perl, clear e gcc encontran-se neste diretrio.
que no so indicados para serem executados diretamente por usurios ou shell scripts. Podem existir subdiretrios em /usr/lib, os quais so utilizados por aplicaes, de forma que todos os dados dependentes da arquitetura usados exclusivamente pela aplicao, devem estar dentro destes subdiretrios.
sistemas, quando instala softwares localmente. Necessita ficar a salvo de ser sobrescrito quando o software do sistema atualizado. Pode ser usado por programas e dados que so compartilhveis entre um grupo de mquinas. Tambm possui subdiretrios importantes ao sistema:
/usr/local/bin : Binrios (executveis) locais. /usr/local/games: Executveis de jogos. /usr/local/include : Arquivos de cabealho (header) C. /usr/local/lib : Bibliotecas locais. /usr/local/man : pginas de manual online locais. /usr/local/sbin : Binrios (executveis) de sistema locais. /usr/local/share : Hierarquia local independente da
arquitetura.
independem da arquitetura. Este diretrio indicado para ser compartilhvel entre todas as plataformas de arquitetura de um dado sistema operacional. Ele tambm contm subdiretrios importantes ao sistema, e os principais so:
80
/usr/share/dict : Lista de palavras (opcional). /usr/share/doc : Arquivos de documentao (opcional). /usr/share/games : Arquivos de dados estticos para
/usr/games (opcional).
/usr/share/sgml : Dados de SGML e XML (opcional). /usr/share/terminfo : Diretrios para o banco de dados
de terminfo (opcional)
/var: Este diretrio contm arquivos de dados variveis. Inclui arquivos e diretrios
em fila de execuo, dados de ordem administrativa e de login, alm de arquivos temporrios e transitrios. Algumas partes de /var no so compartilhveis entre diferentes sistemas. Por exemplo, /var/log, /var/lock e /var/run. outras partes podem ser compartilhadas, notadamente em /var/mail, /var/cache/man, /var/cache/fonts e /var/spool/news. Ele tambm contm subdiretrios importantes ao sistema, e os principais so:
Informao sobre o estado so dados que o programa modifica enquanto est rodando, e que pertencem a uma mquina especfica. Os seguintes diretrios podem estar contidos nele:
editores de texto. Por exemplo, o Emacs guarda este tipo de informao em /var/lib/emacs/lock.
manager) (opcional). Como o Debian utiliza o GDM (GNOME Display Manager) como padro, este diretrio trocado por /var/lib/gdm.
/var/lock : Contm em sua estrutura os arquivos de bloqueio. /var/log : Contm uma miscelnea de arquivos de agenda (logs). A
maioria dos logs de sistema e de aplicaes so escritos neste diretrio ou em seus subdiretrios.
82
usurio.
/var/log/messages : Mensagens do sistema syslogd. /var/log/wtmp : Registro dos os acessos dos usurios.
posterior. /var/spool tradicionalmente utilizado para a informao local de mquina que enviada para processamento posterior. No geral, estes dados so apagados aps terem sido processados. Ele pode conter o seguintes subdiretrios:
5.6 Caminhos
Como em todo sistema de arquivos de qualquer sistema operacional, a referncia a um arquivo/diretrio deve ser feita atravs do seu caminho. Um caminho formado da seguinte forma: [diretrio raiz] [diretrio 1] [diretrio 2]...[diretrio n] [arquivo]. Cada um desses itens so separados por um smbolo, que varia de acordo com o sistema operacional. No GNU/Linux, o diretrio raiz chama-se / (barra), e o smbolo utilizado para separar os itens a / tambm. Um exemplo de caminho seria: /home/curso/doc/linux/gnu.sxw Um caminho informa onde podemos encontrar um arquivo ou diretrio. No caso acima, podemos interpretar esse comando da seguinte forma: o arquivo gnu.sxw est dentro do diretrio linux, que est dentro do diretrio doc, que est dentro do diretrio curso, que est dentro do diretrio home, que est no diretrio raiz / . Outra forma de interpretao seria: para acessar o arquivo gnu.sxw, a partir do diretrio raiz / , acesse o diretrio home, depois o diretrio curso, depois o diretrio doc, e depois o diretrio linux. O arquivo estar l.
: Ao referir-se ao diretrio ~ (til), o sistema entende como o diretrio pessoal do usurio, ou seja, /home/[usurio], onde [usurio] o nome de login do usurio atual. Dessa forma, se voc estiver logado como curso, o diretrio ~/img ser interpretado como /home/curso/img.
: O kernel Linux armazena um histrico dos diretrios que acessamos. O - (hfen) refere-se ao ltimo diretrio acessado.
: O smbolo . (ponto) refere-se ao diretrio atual, ou seja, aquele em que estamos trabalhando; : O .. (ponto ponto) refere-se ao diretrio acima do qual estamos. Por exemplo, considerando o diretrio /home/curso, o diretrio acima de curso /home, e o diretrio acima de /home /.
..
84
Captulo 6
85
Interativa : os comandos so digitados no prompt e passados ao interpretador de comandos um a um. Neste modo, o computador depende do usurio para executar uma tarefa, ou o prximo comando. No-interativa : so usados scripts, ou seja, arquivos criados pelo usurio com uma sequncia de comandos definidos por este, que seguem uma determinada lgica, para executar determinada tarefa que precisa ser automatizada.
O bash um interpretador de comandos muito customizvel, e para exemplificar uma pequena poro desta ferramenta, podemos destacar um de seus recursos mais teis, que o de completar os nomes dos arquivos. Isto feito pressionando a tecla TAB. Por exemplo, se o usurio digitar:
$ ls tes<TAB>
O bash localizar todos os arquivos que iniciam com tes e completar o restante do nome. Caso o bash encontre mais de uma expresso que satisfaa a pesquisa, ou nenhuma, emitido um beep. Se o usurio pressionar novamente a tecla <TAB>, o bash listar as diversas possibilidades que satisfazem a pesquisa. Este recurso tambm funciona sem problemas para comandos internos.
86
Exemplo:
$ ls /home/curso/teste/*.txt teste10.txt teste1.txt teste3.txt teste11.txt teste2.txt teste4.txt
teste5.txt teste6.txt
testeA.txt testeB.txt
testeC.txt testeD.txt
testeE.txt testeF.txt
teste3.txt teste4.txt
teste5.txt teste6.txt
testeA.txt testeB.txt
testeC.txt testeD.txt
testeE.txt
teste3.txt teste4.txt
teste5.txt teste6.txt
testeA.txt testeB.txt
testeC.txt testeD.txt
testeE.txt
Lista todos os arquivos que tiverem o prefixo teste e terminarem com a string txt.
$ ls *5* teste5.txt
87
Exemplo:
$ ls teste?.txt teste1.txt teste3.txt teste4.txt teste6.txt
teste5.txt testeB.txt
testeA.txt testeD.txt
testeC.txt testeF.txt
testeE.txt teste2.txt
Lista todos os arquivos que tiverem um nico caracter depois da string teste, e que tiverem a extenso .txt.
$ ls teste??.txt teste10.txt teste11.txt
Lista todos os arquivos que tiverem dois caracteres depois da string teste, e que tiverem a extenso .txt.
$ ls /bin/?? /bin/cp /bin/dd /bin/df /bin/ed /bin/ln /bin/ls /bin/mt /bin/mv /bin/ps /bin/sh /bin/su
/bin/rm
Lista todos os arquivos que tiverem nome com apenas dois caracteres no diretrio /bin.
$ ls /etc/???.conf /etc/fam.conf /etc/ntp.conf /etc/xmp.conf
/etc/pam.conf
/etc/ucf.conf
/etc/vnc.conf
Lista todos os arquivos que tiverem nome com trs caracteres e a extenso .conf no diretrio /etc.
- O curinga "[...]" define um padro que casa com o conjunto de caracteres entre "[" e "]". O conjunto ainda pode conter intervalos de caracteres, como por exemplo "1-2" ou "a-z" e tambm caracteres que no podem fazer parte do conjunto, indicados por "^" ou "!".
[]
Exemplo:
$ ls teste[0-9].txt teste1.txt teste2.txt
teste3.txt
teste4.txt
teste5.txt
teste6.txt
Lista todos os arquivos que tiverem o intervalo de nmero de 0 at 9 entre o prefixo teste, com a extenso .txt.
$ ls teste[5-9].txt teste5.txt teste6.txt
Lista todos os arquivos que tiverem o intervalo de nmero de 5 at 9 entre o prefixo teste, com a extenso .txt.
88
teste3.txt
teste4.txt
teste5.txt
teste6.txt
Lista todos os arquivos que tiverem o intervalo de nmero de 0 at 9 entre o prefixo teste, com a extenso .txt.
$ ls teste[A-Z].txt testeA.txt testeB.txt
testeC.txt
testeD.txt
testeE.txt
testeF.txt
Lista todos os arquivos que tiverem o intervalo de A at Z entre o prefixo teste, com a extenso .txt.
$ ls teste[B-D].txt testeB.txt testeC.txt
testeD.txt
Lista todos os arquivos que tiverem o intervalo de B at D entre o prefixo teste, com a extenso .txt.
$ ls [a-z][0-9]* t1.txt t2.txt t3.txt
Lista todos os arquivos que tiverem em seu nome na primeira posio um caracter no intervalo de a z, e na segunda posio um nmero no intervalo de 0 9, com qualquer sufixo ou extenso.
$ ls t[a-d,0-9]*.txt t1.txt t2.txt t3.txt
ta1.txt
ta2.txt
Lista todos os arquivos que tiverem o prefixo t, seguido por um caracter no intervalo de a d, ou um nmero no intervalo de 0 9, e que tenham qualquer valor antes de .txt.
$ ls teste[0-9][^0-9]* teste1.txt teste2.txt
teste3.txt
teste4.txt
teste5.txt
teste6.txt
Lista todos os arquivos que tiverem o prefixo teste, seguido por um nmero no intervalo de 0 9, e que no contenham um outro nmero na sequncia, com qualquer extenso. o carater ^ significa negao.
- O curinga "{...}" define um padro que casa com o conjunto de caracteres entre "{" e "}", separados por vrgula.
{}
Exemplo:
$ ls teste{[0-9],[A-Z]}.txt teste1.txt teste3.txt teste5.txt teste4.txt teste6.txt testeB.txt
testeA.txt testeD.txt
testeC.txt testeF.txt
testeE.txt teste2.txt
Lista todos os arquivos que tiverem o prefixo teste, seguido por um conjunto composto por um nmero no intervalo de 0 9, ou, caracteres no intervalo de A Z, e que terminam com a extenso .txt.
89
$ ls teste*.{txt,log} teste10.txt teste1.log teste2.log testeD.txt testeF.txt teste11.txt testeA.txt testeC.txt testeE.txt
teste4.txt teste2.txt
teste6.txt teste3.txt
testeB.txt teste5.txt
Lista todos os arquivos que tiverem o prefixo teste, seguido por qualquer conjunto de caracteres, e que contenham as extenses .txt ou .log.
6.4- Direcionadores
Uma boa parte dos programas executados no terminal possuem alguma sada. Essas sadas so enviadas por padro para o terminal, sendo impressas na tela. Assim, consideremos o exemplo abaixo:
$ ls teste[0-9].txt teste1.txt teste2.txt
teste3.txt
teste4.txt
teste5.txt
teste6.txt
teste3.txt
teste4.txt
teste5.txt teste6.txt
A entrada foi enviada pelo teclado (stdin), e a sada foi enviada para o terminal, que a sada padro (stdout). Mas ento, o que fazer se o usurio quiser gravar a sada do comando ls em um arquivo de texto, por exemplo? Para isso existem os direcionadores de fluxo, de grande utilidade no GNU/Linux e essenciais para a realizao de diversas tarefas de manuteno do sistema. Direcionadores de fluxo fazem o que o nome sugere: direcionam o fluxo da sada dos programas, enviando-as para locais diferentes da sada padro. Esses locais podem ser arquivos, dispositivos, processos e outros programas. O direcionadores utilizados no GNU/Linux so: O Direcionador > : O direcionador > envia a sada padro de um comando para um arquivo. Caso o arquivo exista, o seu contedo substitudo. Veja ento a sada do comando ls que utilizou-se agora pouco:
teste3.txt
teste4.txt
teste5.txt
teste6.txt
Para gravar essa lista em um arquivo chamado ls_out, utiliza-se o direcionador, da seguinte forma:
90
Agora, nada impresso no terminal. Por que? Porque a sada foi direcionada para o arquivo ls_out. Veja o contedo desse arquivo com o comando cat, que concatena e envia arquivos para a sada padro:
$ cat ls_out teste1.txt teste2.txt teste3.txt teste4.txt teste5.txt teste6.txt
O Direcionador 2> : Uma restrio ao uso do direcionador > que ele no funciona para mensagens de erro (stderr). No exemplo abaixo, usa-se o comando ls, e como parmetro, um diretrio que no existe:
Observe que mesmo usando o direcionador >, a mensagem de erro foi exibida. Se o usurio visualizar o contedo do arquivo ls_out, ver que nada foi gravado. Para gravar as mensagens de erro, deve-se usar o direcionador 2>:
$ ls dir_fantasma 2> ls_out
Agora sim, nenhuma mensagem de erro foi exibida na tela, porque ela foi enviada para o arquivo ls_out, como pode-se verificar:
$ cat ls_out ls: dir_fantasma: Arquivo ou diretrio no encontrado
O Direcionador &> : Podemos usar os direcionadores > e 2> em conjunto, para gerar um arquivo com a sada padro e outro com a sada de erros, dessa forma:
O comando acima pede para listar todos os arquivos que contenham o nome teste, seguido por um intervalo de 0 9, com a extenso .txt, e o contedo do diretrio dir_fantasma. Ao ver o contedo dos arquivos ls_out e ls_error, tm-se:
Diretoria de Transferncia Tecnolgica Centro de Computao Unicamp 91
$ cat ls_out teste1.txt teste2.txt teste3.txt teste4.txt teste5.txt teste6.txt $ cat ls_error ls: dir_fantasma: Arquivo ou diretrio no encontrado
Mas, e se for necessrio gravar todas as mensagens em um arquivo apenas? Para isso existe o direcionador &>, que direciona tanto as mensagens padro quanto as mensagens de erro para um arquivo. Repetindo o teste anterior:
$ ls teste[0-9].txt dir_fantasma &> ls_out
Os Direcionadores >>, 2>> e &>> : Todos os direcionadores acima citados substituem o contedo do arquivo caso ele j exista. Se voc quiser gravar a sada de vrios comandos num mesmo arquivo, ento precisar adicionar o contedo ao arquivo ao invs de substitui-lo. Para fazer isso, usa-se >> ao invs de >, >>, 2>> e &>>. O Direcionador < : Direciona a entrada padro de arquivo/dispositivo para um comando. Este direcionador faz o contrrio de < , enviando os dados para a entrada padro, que no caso, o comando. Por exemplo:
$ cat < ls_out ls: dir_fantasma: Arquivo ou diretrio no encontrado teste1.txt teste2.txt teste3.txt teste4.txt teste5.txt teste6.txt
Voc pode usar o comando acima para enviar o contedo do arquivo ls_out ao comando cat, que mostrar seu contedo. claro que o mesmo resultado pode ser obtido com cat teste.txt, mas este exemplo serviu para mostrar a funcionalidade do <.
Diretoria de Transferncia Tecnolgica Centro de Computao Unicamp 92
O Direcionador << : O direcionador << utilizado para marcar o fim de exibio de um bloco. Um dos usos mais freqentes desse direcionador em conjunto com o comando cat. O comando abaixo termina o comando cat quando for digitada a palavra "fim".
cat << fim > arq_teste Meu nome Fabio Santos e estou ministrando o Curso GNU/Linux Mdulo 1 - Introduo.. ele tem a durao de 24 horas.... Este teste com o comando cat em conjunto com o direcionador "<<" fim
Neste exemplo, o direcionador << foi usado para enviar o texto digitado para o arquivo arq_teste, logo que a palavra fim foi inserida ao texto.
O Direcionador | (pipe) : O direcionador | , tambm conhecido como pipe (duto, cano), utilizado para direcionar a sada de um comando para outro comando, e utilizado todo o tempo para a realizao de diversos tipos de tarefas e procedimentos. Um dos usos mais comuns do | com os comandos ls e more, para ver o contedo de um diretrio, quando este no cabe na tela, como o diretrio /usr/bin, por exemplo. Para que se possa ver todos os arquivos, direciona-se a sada do ls para o more, que faz a paginao do contedo:
$ ls /usr/bin | more 411toppm 822-date a2p aaxine abcde abiword AbiWord-2.2 --Mais--
Agora, basta pressionar Enter para rolar a lista, de forma que podemos ver todos os arquivos. Pode-se utilizar o pipe para contar o nmero de linhas de um arquivo, em conjunto com os comandos cat e wc:
$ cat /etc/profile | wc -l 24
O comando wc utilizado para contar nmero de linhas, palavras e bytes do fluxo, que neste caso, um arquivo texto. Um outro exemplo em conjunto com o gerenciador de pacotes apt, e com o comando grep, que utilizado para selecionar linhas que contm uma determinada expresso. Por exemplo, para procurar os pacotes relacionados documentao do bash shell, utiliza-se a seguinte linha de comando:
93
$ apt-cache search bash | grep doc bash-doc - Documentation and examples for the The GNU Bourne Again SHell bash3-doc - Documentation and examples for the The GNU Bourne Again SHell optcomplete-common - common scripts and documentation for python-optcomplete
6.5- Alias
Permite criar um apelido a um comando ou programa. Por exemplo, se voc quiser otimizar o nome do comando ls -lh para ver uma listagem longa e com todos os atributos dos arquivos, voc pode usar o comando alias para facilitar as coisas digitando:
$ alias lista='ls -lh'
Detalhe: (no se esquea da meia aspa 'para identificar o comando'). Agora quando voc digitar lista, a listagem ser mostrada de forma completa. Para apagar uma alias, utilize o comando unalias:
$ unalias lista
!132 : executa o comando de nmero 132 do histrico. !-2 : executa o penltimo comando. !! : executa o comando anterior (equivale a !-1). !gr : executa o ltimo comando comeando com as letras "gr".
94
i : habilita a insero de textos no arquivo. a : permite a insero de textos depois do cursor. A : permite a insero de textos no final da linha onde encontra-se o cursor. o : Insere uma linha abaixo da linha corrente. O : Insere uma linha acima da linha corrente. W : Move o cursor para o incio da prxima palavra, ignorando a pontuao. w : Move o cursor para o incio da prxima palavra, sem ignorar a pontuao. B : Move o cursor para o incio da palavra anterior, ignorando a pontuao. b : Move o cursor para o incio da prxima palavra, sem ignorar a pontuao. <num>G : Move o cursor para a linha indicada pelo nmero <num>. G : Move o cursor para a ltima linha do arquivo. gg : Move o cursor para a primeira linha do arquivo. /<texto> : Procura dentro do arquivo pelo texo informado. n : repete o ltimo comando / realizado. N : repete o ltimo comando / realizado, porm, na direo reversa. <CTRL>+G : Mostra as informaes sobre o arquivo, como seu nome, nmero da linha corrente, e total de linhas. dw : Exclui uma palavra, da posio do cursor, at o seu final. dd : Exclui a linha onde o cursor est posicionado. D : Exclui o texto que est sob o cursor ate o final da linha. $ : Move o cursor para o final da linha corrente. 0 : Move o cursor para o incio da linha corrente. R : Substitui o texto corrente. cw : Substitui a palavra corrente. cc : Exclui a linha corrente e habilita o modo de insero.
95
C : Substitui o restante da linha corrente, a partir da posio do cursor. u : desfaz a ltima modificao. U : Desfaz todas as modificaes feitas na linha corrente (desde que o cursor no tenha mudade de linha). J : Une a linha corrente prxima. yw : copia uma palavra. dw : cortar uma palavra. Y : Copia a linha corrente. S : Cortar a linha corrente. P : Cola o contedo da rea de transferncia. V : Seleo visual. <ESC> : Alterna para o modo comando. :w : Salva o arquivo atual. :w novo_arquivo.txt : Salva o arquivo atual com o nome novo_arquivo.txt. :q : Sai do vi e no salva as alteraes. :q! : Fora a sada do vi sem salvar as alteraes. :wq : salva o arquivo atual e sai do vi. :r nome_do_arquivo.txt : Insere o contedo de nome_do_arquivo.txt no arquivo atual :r! ps : Insere a sada do comando ps no arquivo atual. :set number : exibe o nmero de linhas do arquivos atual. :set nonumber : desabilita a visualizao do nmero de linhas. :s/teste/teste1 : substitui a primeira ocorrncia de teste por teste1 na linha corrente. :s/teste/teste1/g : substitui todas as ocorrncias de teste por teste1 na linha corrente. :%s/teste/teste1 : Substitui a primeira ocorrncia da palavra teste por teste1 em cada linha, no arquivo inteiro. :%s/teste/teste1/g : Substitui todas as ocorrncias da palavra teste por teste1, no arquivo inteiro. :%s/teste/teste1/gc : Substitui todas as ocorrncias da palavra teste por teste1, no arquivo inteiro, pedindo confirmao.
96
6.8.1. history : Exibe na sada padro o histrico de todos os comandos digitados pelo usurio. Esta listagem tambm pode ser consultada no aqruivo .bash_history. Sintaxe:
$ history
6.8.2. tee : Envia o resultado de um comando para a sada padro (tela) e para um arquivo ao mesmo tempo. Este comando deve ser usado com o pipe "|". Sintaxe:
$ <comando> | tee <arquivo de sada>
Opes:
Exemplo:
$ ls -lh | tee lista.txt total 0 -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste10.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste11.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste1.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste2.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste3.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste43.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste4.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste5.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste6.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste7.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste8.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste9.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 testeA.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:35 testeB.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:35 testeC.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:35 testeD.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:35 testeE.txt
97
6.8.3. grep : Procura por um texto dentro de um arquivo(s) ou no dispositivo de entrada padro. Sintaxe:
$ grep <expresso> <arquivo> <opes>
Opes: Exemplo:
A [nmero] : Mostra o [nmero] de linhas aps a linha encontrada. B [nmero] : Mostra o [nmero] de linhas antes a linha encontrada. n : Mostra o nmero de cada linha encontrada. i : Ignora diferenas entre minsculas e maisculas.
$ cat lista.txt | grep 15:35 -rw-r--r-- 1 fabio fabio 0 2005-06-14 -rw-r--r-- 1 fabio fabio 0 2005-06-14 -rw-r--r-- 1 fabio fabio 0 2005-06-14 -rw-r--r-- 1 fabio fabio 0 2005-06-14
0 0 0 0
Exibe a sada do comando ps, que lista todos os processo que esto rodando na mquina, e no exemplo acima, todos os processo que contm a string bash. 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.
6.8.4. cat : Imprime o contedo de arquivos na sada padro (exibe na tela). Com o uso de direcionadores, podemos us-lo para unir diferentes arquivos em um s, dentre outra funes. Sintaxe:
$ cat <opes> <arquivo>
98
Opes: - b : Numera as linhas, com exceo das linhas em branco. - E : Mostra um $ para indicar fim de linha. - n : Numera todas as linhas, incluindo as em branco. - s : No mostra mais do que uma linha em branco. Se houver duas ou mais linhas em branco consecutivas, elas so truncadas e apenas uma mostrada. - T : Substitui tabulaes pelos caracteres ^I. - v : Substitui os caracteres no imprimveis por smbolos, exceto tabulaes e final de linha.
Exemplo:
$ cat lista.txt -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio
0 0 0 0
Exibe todas as linhas do arquivo lista.txt, este o exemplo mais simples da utilizao deste comando.
$ cat ls_new ls_log -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio
fabio fabio fabio fabio fabio fabio fabio fabio fabio fabio
0 0 0 0 0 0 0 0 0 0
2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15
14:03 14:03 14:03 14:03 14:03 14:02 14:02 14:02 14:02 14:02
teste1.new teste2.new teste3.new teste4.new teste5.new teste1.log teste2.log teste3.log teste4.log teste5.log
Exibe a sada o contedo dos arquivos ls_new e ls_log, que contm respectivamente, a sada do comando ls -lh *.new e ls -lh *.log.
$ cat ls_new ls_log $ cat lista_lognew -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio > lista_lognew fabio fabio fabio fabio fabio fabio fabio fabio fabio fabio 0 0 0 0 0 0 0 0 0 0 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 14:03 14:03 14:03 14:03 14:03 14:02 14:02 14:02 14:02 14:02 teste1.new teste2.new teste3.new teste4.new teste5.new teste1.log teste2.log teste3.log teste4.log teste5.log
Primeiramente redireciona o contedo do exemplo anterior para o arquivo lista_lognew, e depois, exibe seu contedo.
99
O comando cat tambm trabalha na juno de contedos de arquivos binrios. Por exemplo, se voc quiser concatenar duas msicas sem precisar. O comando cat trabalha com arquivos texto. Use o comando zcat para ver diretamente arquivos compactados com gzip.
6.8.5. tac : Faz o mesmo que o cat, mas exibe o arquivo pela ordem inversa, ou seja, comeando pela ltima linha e terminando com a primeira. Sintaxe:
$ tac <arquivo>
Exemplo:
$ tac lista_lognew -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio
fabio fabio fabio fabio fabio fabio fabio fabio fabio fabio
0 0 0 0 0 0 0 0 0 0
2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15 2005-06-15
14:02 14:02 14:02 14:02 14:02 14:03 14:03 14:03 14:03 14:03
teste5.log teste4.log teste3.log teste2.log teste1.log teste5.new teste4.new teste3.new teste2.new teste1.new
Exibe todas as linhas do arquivo lista.txt, este o exemplo mais simples da utilizao deste comando.
6.8.6. wc : Conta o nmero de linhas, palavras, caracteres e bytes nos arquivos. Se as opes forem omitidas, o wc mostra a quantidade de linhas, palavras, e bytes.
Sintaxe:
$ wc <opes> <arquivo>
100
Opes:
c : Exibe apenas o nmero de bytes. m : Exibe apenas o nmero de caracteres. l : Exibe apenas o nmero de linhas. L : Exibe o comprimento, em caracteres, da maior linha do arquivo. w : Exibe o nmero de palavras encontradas.
Exemplo:
$ wc lista_lognew 10 80 560 lista_lognew
6.8.7. find (utilizao bsica) : Procura por arquivos/diretrios no disco. O find pode procurar arquivos atravs de seus atributos, atravs do uso de opes. Sintaxe:
$ find <arquivo/diretrio> <opes/expresses>
Opes:
-name : Procura arquivos cujo nome coincida com a expresso digitada. -type [tipo]: Procura por arquivos que sejam de um tipo especfico. b : Dispositivos de bloco. c : Dispositivos de caractere. d : Diretrio. p : Duto nomeado (FIFO). f : Arquivo regular. l : Link simblico. s : Socket.
Exemplo:
$ find teste[A-Z].txt testeA.txt testeB.txt testeC.txt testeD.txt testeE.txt
Sem informar um diretrio para pesquisa, faz uma busca dentro diretrio atual.
Diretoria de Transferncia Tecnolgica Centro de Computao Unicamp 101
$ find /etc/ -name ???.conf /etc/gdm/gdm.conf /etc/fam.conf /etc/pam.conf /etc/ucf.conf /etc/dbus-1/system.d/hal.conf /etc/esound/esd.conf /etc/sane.d/ibm.conf /etc/sane.d/v4l.conf /etc/sane.d/pie.conf /etc/sane.d/leo.conf /etc/sane.d/nec.conf /etc/sane.d/u12.conf /etc/sane.d/dll.conf /etc/sane.d/dmc.conf /etc/sane.d/net.conf /etc/apache2/mods-available/ssl.conf
Faz um busca no diretrio /etc, por arquivos que contenham apenas 3 letras em seu nome, e que tenha a extenso .conf.
6.8.8. 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, ele 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>
Exemplo:
$ more /etc/adduser.conf # /etc/adduser.conf: `adduser' configuration. # See adduser(8) and adduser.conf(5) for full documentation. # The DSHELL variable specifies the default login shell on your # system. DSHELL=/bin/bash # The DHOME variable specifies the directory containing users' home # directories. DHOME=/home # If GROUPHOMES is "yes", then the home directories will be created as # /home/groupname/user. GROUPHOMES=no # If LETTERHOMES is "yes", then the created home directories will have # an extra directory - the first letter of the user name. For example: --Mais--(50%)
$ ls -lh | more total 24K -rw-r--r-- 1 fabio -rw-r--r-- 1 root -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio --Mais--
fabio 560 2005-06-15 14:10 lista_lognew root 2,1K 2005-06-17 12:34 lista_pag fabio 968 2005-06-15 11:34 lista.txt fabio 280 2005-06-15 14:03 ls_log fabio 280 2005-06-15 14:03 ls_new fabio 0 2005-06-14 15:34 teste10.txt fabio 0 2005-06-14 15:34 teste11.txt fabio 0 2005-06-15 14:02 teste1.log fabio 0 2005-06-15 14:03 teste1.new fabio 0 2005-06-14 15:34 teste1.txt
Faz a paginao da sada do comando ls. Para visualizar diretamente arquivos texto compactados pelo utilitrio gzip (arquivos .gz), use o comando zmore.
6.8.9. less : Permite fazer a paginao de arquivos ou da entrada padro. Ele 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>
Exemplo:
$ less /etc/adduser.conf # /etc/adduser.conf: `adduser' configuration. # See adduser(8) and adduser.conf(5) for full documentation. # The DSHELL variable specifies the default login shell on your # system. DSHELL=/bin/bash # The DHOME variable specifies the directory containing users' home # directories. DHOME=/home # If GROUPHOMES is "yes", then the home directories will be created as # /home/groupname/user. GROUPHOMES=no # If LETTERHOMES is "yes", then the created home directories will have # an extra directory - the first letter of the user name. For example: :
$ ls -lh | less total 24K -rw-r--r-- 1 fabio -rw-r--r-- 1 root -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio :
fabio 560 2005-06-15 14:10 lista_lognew root 2,1K 2005-06-17 12:34 lista_pag fabio 968 2005-06-15 11:34 lista.txt fabio 280 2005-06-15 14:03 ls_log fabio 280 2005-06-15 14:03 ls_new fabio 0 2005-06-14 15:34 teste10.txt fabio 0 2005-06-14 15:34 teste11.txt fabio 0 2005-06-15 14:02 teste1.log fabio 0 2005-06-15 14:03 teste1.new fabio 0 2005-06-14 15:34 teste1.txt
Faz a paginao da sada do comando ls. Para visualizar diretamente arquivos texto compactados pelo utilitrio gzip (arquivos .gz), use o comando zless.
6.8.10. touch : Muda a data e hora que um arquivo foi criado. Tambm pode ser usado para criar arquivos vazios. Caso o touch seja usado com arquivos que no existam, por padro ele ir cri-los. Sintaxe:
$ touch <opes> <arquivo>
Opes:
-a : Modifica apenas a data do ltima acesso. -c: No cria arquivos, caso eles no existam. -m : modifica apenas a data de modificao. -t : Usa meses (MM), dias (DD), horas (hh), minutos (mm) e opcionalmente o ano e segundos para modificao do(s) arquivo(s) ao invs da data e hora atual.
Exemplo:
$ ls -lh teste1.txt -rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste1.txt $ touch teste1.txt $ ls -lh teste1.txt -rw-r--r-- 1 fabio fabio 0 2005-06-20 14:16 teste1.txt
Supondo que o arquivo teste1.txt tenha como ltima modificao, a data 14/06/2005 s 15:34. utilizando o comando touch sem nenhum parmetro, o arquivo automaticamente fica com a data atual, como sendo a sua data de ltima modificao.
104
$ touch -t 200302111030.11 teste1.txt $ ls -lh teste1.txt -rw-r--r-- 1 fabio fabio 0 2003-02-11 10:30 teste1.txt $ touch -t 200404151430 teste1.txt -rw-r--r-- 1 fabio fabio 0 2004-04-15 14:30 teste1.txt
Neste exemplo, utiliza-se a opo -t para o comando touch gravar uma data especfica no arquivo. No exemplo acima, o arquivo teste1.txt ter como data de ltima modificao, a data 15/04/2004 s 14:30.
Opes: -s : Cria um link simblico. Usado para criar ligaes com o arquivo/diretrio de destino. -v: Exibe o nome de cada link antes de cri-lo.
Exemplo:
$ ln -s teste1.txt teste1.documento $ ls -lh teste1* -rw-r--r-- 1 fabio fabio 0 2005-06-14 -rw-r--r-- 1 fabio fabio 0 2005-06-14 lrwxrwxrwx 1 fabio fabio 10 2005-06-20 -rw-r--r-- 1 fabio fabio 0 2005-06-15 -rw-r--r-- 1 fabio fabio 0 2005-06-15 -rw-r--r-- 1 fabio fabio 0 2004-04-15
Neste exemplo, foi criado um link simblico para o arquivo teste1.txt com o nome de teste1.documento.
105
$ ln -s -v teste1.txt teste1.documento criar link simblico `teste1.docs' to `teste1.txt' $ ls -lh teste1* -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio lrwxrwxrwx 1 fabio lrwxrwxrwx 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio -rw-r--r-- 1 fabio
fabio 0 2005-06-14 15:34 teste10.txt fabio 0 2005-06-14 15:34 teste11.txt fabio 10 2005-06-20 17:00 teste1.docs -> teste1.txt fabio 10 2005-06-20 16:30 teste1.documento -> teste1.txt fabio 0 2005-06-15 14:02 teste1.log fabio 0 2005-06-15 14:03 teste1.new fabio 0 2004-04-15 14:30 teste1.txt
Neste exemplo, foi criado um link simblico para o arquivo teste1.txt com o nome de teste1.docs, exemplificando a sada com a opo -v.
$ ln /etc/passwd $ ln /etc/passwd passwd_curso $ ls -lh pass* -rw-r--r-- 3 root root 1,2K 2005-06-17 11:31 passwd -rw-r--r-- 3 root root 1,2K 2005-06-17 11:31 passwd_curso
Neste exemplo, foram criados dois links absolutos, um para o arquivo /etc/passwd no diretrio atual com mesmo nome, e outro com o nome de passwd_curso, mas os dois referenciam o mesmo arquivo.
106
Captulo 7
Gerenciamento de Pacotes
Neste captulo o usurio compreender como gerenciamento de pacotes no Debian GNU/Linux. feito o
107
Compilao: Compilar significa transformar o cdigo-fonte de um programa em arquivos binrios, isto , que podem ser executados e utilizados pelo sistema operacional. Cpia: Uma vez compilados, os arquivos precisam ser copiados para os diretrios corretos, para poder funcionar adequadamente. Nesse processo, alguns diretrios precisam ser criados, eventualmente. Configurao: Depois de compilar e copiar, necessrio configurar o programa e o sistema operacional, para que no hajam conflitos e tudo possa funcionar corretamente.
O processo natural no nem um pouco animador. Instalar todos os programas do sistema operacional seguindo esse mtodo leva muito tempo, e a chance de ocorrer algum erro muito grande. Pensando nisso, os mantenedores dos pacotes de cada distribuio fazem por voc o processo de compilao e configurao dos programas, e juntam tudo em um s arquivo, chamado pacote. Esse pacote, ser interpretado pela ferramenta de gerenciamento de pacotes, que o instalar automaticamente, com apenas um comando. Abaixo, encontra-se a listagem dos tipos de pacotes e seus respectivos gerenciadores de algumas distribuies listadas no captulo 1:
108
[foo]_[verso]-[reviso]_[arquitetura].deb
Onde: foo : Nome dado ao pacote; verso : A verso do pacote; reviso : Muitas vezes o mantenedor pode fazer alteraes na mesma verso de um pacote. Nesses casos, so lanadas as revises, como em 2.2-1, 2.2-2, 2.2-3, onde todos so pacotes da verso 2.2, mas de revises diferentes; arquitetura : A arquitetura de hardware para a qual o pacote foi compilado.
109
dpkg
O dpkg o principal programa de gerenciamento de pacotes do Debian. Todas as outras ferramentas utilizam-no para instalar, remover e configurar os pacotes no sistema. A sintaxe de uso do dpkg a seguinte:
Algumas opes so usadas com o nome do pacote, outras so usadas com o nome do arquivo .deb. As principais so:
--info: Exibe as informaes sobre o pacote especificado, tais como descrio, verso, dependncias, mantenedor, etc. -i, --install: Instala o pacote no sistema, desde que ele no possua nenhuma dependncia no resolvida. --unpack: Apenas extrai os arquivos do pacote, copiando-os para os locais corretos, mas no faz a configurao. Isso pode deixar o programa no utilizvel, pois ele pode precisar ser configurado, o que, nesse caso, no feito. --configure: Configura o pacote desempacotado atravs do unpack. -r, --remove: Remove um pacote, mantendo os arquivos de configurao. A importncia de se manter os arquivos de configurao que, no caso da reinstalao do pacote, as configuraes no sero perdidas, permitindo usar o programa como se ele nunca tivesse sido removido. --purge: Remove um pacote e tambm os seus arquivos de configurao. S use essa opo quando tiver certeza de que deseja acabar com qualquer vestgio do pacote em questo, geralmente quando ele realmente no for mais necessrio; -l, --list: Lista o estado de instalao do pacote. til para saber se um pacote est instalado, ou se apresenta algum problema, como dependncias quebradas ou se est desconfigurado; --get-selections [arquivo]: Exibe uma lista com os pacotes do sistema, bem como o seu estado; -L, --list-files: Exibe os arquivos instalados pelo pacote selecionado; -S, --search [padro]: Procura pelo padro informado na lista de arquivos instalados pelo pacote; -s : Exibe o status do pacote selecionado.
110
Exemplos:
$ dpkg -i opera_8.01-20050615.5-shared-qt_en_sarge_i386.deb Selecionando pacote previamente no selecionado opera. (Lendo banco de dados ... 91345 arquivos e diretrios atualmente instalados.) Descompactando opera (de opera_8.01-20050615.5-shared-qt_en_sarge_i386.deb) ... Instalando opera (8.01-20050615.5) ...
111
$ dpkg -l opera Desejado=U=Desconhecido/Instalar/Remover/aPagar/H=Manter | status=No/Instalado/arquiv.-Config./U=Descomp./Falhou-config/H=semi-inst. |/ Erro?=(nenhum)/H=Mantido/precisa-Reinst./X=os dois problemas (status,Erro: maisculas=ruim) ||/ Nome Verso Descrio +++-===============-==============-============================================ ||/ Nome Verso Descrio +++-=========================-=========================================================================================== ii opera 8.01-20050615.5 The Opera Web Browser
Caso no seja passado o nome do pacote no uso a opo -l, o dpkg lista a situao de todos os pacotes. Neste caso utilizou-se o direcionador | para que a listagem tenha quebra de pgina.
Diretoria de Transferncia Tecnolgica Centro de Computao Unicamp 112
Utilizando o dpkg com esta opo, ele direcionar para o arquivo lista-pkg.txt, a listagem de todos os pacotes instalados em seu sistema operacional, com seus respectivos estados de instalao.
$ dpkg -L nerolinux /. /usr /usr/bin /usr/bin/nero /usr/lib /usr/lib/libCDCopy.so /usr/lib/libNeroAPI.so /usr/lib/libNeroASPI.so /usr/lib/libNeroCDR.so /usr/lib/libNeroErr.so /usr/lib/libNeroSCSI.so /usr/lib/libNewTrf.so /usr/share /usr/share/nero /usr/share/nero/CDROM.CFG /usr/share/nero/DosBootImage.ima /usr/share/nero/Nero.txt /usr/share/nero/desktop /usr/share/nero/desktop/NeroLINUX.template /usr/share/nero/docs /usr/share/nero/docs/EULA /usr/share/nero/docs/Manual.pdf /usr/share/nero/libCDROM.so /usr/share/nero/libFATImporter.so /usr/share/nero/libGenCueSheet.so /usr/share/nero/libGenFAT.so /usr/share/nero/libGenHFS.so /usr/share/nero/libGenHyb.so /usr/share/nero/libGenISO.so /usr/share/nero/libGenUDF.so /usr/share/nero/libGenerator.so /usr/share/nero/libISOFS.so /usr/share/nero/libImage.so /usr/share/nero/libImageGen.so /usr/share/nero/libMmc.so /usr/share/nero/libNRPrimeraComposer.so /usr/share/nero/libNeroRobo.so /usr/share/nero/libUDFImporter.so /usr/share/nero/pixmaps /usr/share/nero/pixmaps/nero.png
113
$ dpkg -S nero nerolinux: /usr/share/nero/libGenUDF.so nerolinux: /usr/share/nero/docs/Manual.pdf nerolinux: /usr/share/nero/libGenHFS.so nerolinux: /usr/share/nero/pixmaps/nero.png nerolinux: /usr/share/nero/desktop/NeroLINUX.template nerolinux: /usr/bin/nero nerolinux: /usr/share/nero/libMmc.so nerolinux: /usr/share/nero/libNeroRobo.so nerolinux: /usr/share/nero/DosBootImage.ima kdebase-data: /usr/share/wallpapers/seaofconero.jpg nerolinux: /usr/share/nero/libGenFAT.so nerolinux: /usr/share/nero/libImage.so nerolinux: /usr/share/nero/docs nerolinux: /usr/share/nero/libNRPrimeraComposer.so nerolinux: /usr/share/nero/libGenHyb.so nerolinux: /usr/share/nero/libCDROM.so nerolinux: /usr/share/nero/libImageGen.so nerolinux: /usr/share/nero nerolinux: /usr/share/nero/libGenCueSheet.so nerolinux: /usr/share/nero/libGenerator.so nerolinux: /usr/share/nero/libUDFImporter.so nerolinux: /usr/share/nero/docs/EULA nerolinux: /usr/share/nero/desktop nerolinux: /usr/share/nero/libISOFS.so nerolinux: /usr/share/nero/pixmaps nerolinux: /usr/share/nero/Nero.txt nerolinux: /usr/share/nero/libFATImporter.so nerolinux: /usr/share/nero/libGenISO.so nerolinux: /usr/share/nero/CDROM.CFG
114
$ dpkg -s opera Package: opera Status: install ok installed Priority: optional Section: non-free/web Installed-Size: 9508 Maintainer: Christian Westgaard <christian.westgaard@opera.com> Architecture: i386 Version: 8.01-20050615.5 Replaces: opera-static Provides: opera-static, www-browser Depends: libc6 (>= 2.1.3), xlib6g (>= 3.3.6) | xlibs, libqt3c102-mt Recommends: libmotif (>= 2) | lesstif2, libaspell15 Conflicts: opera-static Conffiles: /etc/opera6rc 731c625736b38d6caf899c3c3b1cb490 /etc/opera6rc.fixed 9025d2d3e4549b0bf2c3ee3a65c3749a Description: The Opera Web Browser Welcome to the Opera Web browser. It is smaller, faster, customizable, powerful, yet user-friendly. Opera eliminates sluggish performance, HTML standard violations, desktop domination, and instability. This robust Web browser lets you navigate the Web at incredible speed and offers you the best Internet experience. The binaries were built on a RedHat-9.0 (shrike) installation using gcc-3.2.2.
APT
O APT (Advanced Packaging Tool) uma avanada interface para o sistema de gerenciamento de pacotes Debian, consistindo de vrios programas cujos nomes tipicamente comeam com 'apt-'. O apt-get, apt-cache e o apt-cdrom so ferramentas de linha de comando para gerenciar pacotes. Eles tambm funcionam como programas back-end para outras ferramentas, como o dselect e o aptitude. O APT trabalha procurando os pacotes nos repositrios Debian, baixando-os e instalando-os automaticamente ao comando do usurio, resolvendo automaticamente dependncias e conflitos. Alm de instalar, o APT tambm permite remover e pesquisar pacotes. Configurando o APT Para utilizar o APT necessrio, antes de mais nada, configur-lo. A primeira coisa a ser fazer escolher um repositrio de pacotes do Debian, de onde os pacotes sero baixados. Essa informao ser adicionada no arquivo /etc/apt/sources.list. Neste arquivo ficam listadas as fontes de pacotes do Debian, que podem ser:
115
Cada uma das linhas corresponde a uma fonte utilizada pelo APT. As linhas comentadas com um # no sero utilizadas. Cada linha formada da seguinte forma:
<pacote> <URI> <distribuio> <sees>
Sendo:
pacote: Os repositrios do Debian contm, alm dos binrios .deb, os fontes de alguns pacotes, que podem ser baixados com o APT. Para configurar o APT para baixar os pacotes .deb, colocamos deb, para baixar os fontes, colocamos deb-src. URI: A localizao principal dos arquivos. O APT pode buscar pacotes de diversos locais, utilizando os seguintes protocolos: file:/ - arquivos gravados localmente, no HD; cdrom:/ - CD-ROM oficial de alguma verso do Debian; http:// - servidor de arquivos HTTP (Internet); ftp:// - servidor de arquivos FTP (Internet); copy:/ - o mesmo que o protocolo file:/, com a diferena de que os arquivos so copiados para o diretrio de cache, ao invs de serem usados diretamente a partir de seu local original; rsh, ssh - pode-se ainda utilizar conexo a um computador remoto utilizando uma conexo segura via SSH ou RSH;
116
distribuio: Os pacotes do Debian so separados em categorias, de acordo com seu estgio de estabilidade. Aqui, deve-se especificar qual categoria de pacotes se deseja utilizar. As categorias so:
stable: pacotes exaustivamente testados, considerados estveis, porm as vezes antigos; testing: pacotes em fase de testes, mais recentes que os pacotes da stable; unstable: verses mais recente dos pacotes Debian; verses do Debian: existem ainda, as verses com os pacotes oficiais das verses do Debian. Para acess-las, basta utilizar o codinome das distribuies, como woody, sarge ou sid; outras: existem muitos repositrios no-oficiais do Debian que utilizam outras notaes de distribuies.
main: seo principal, contendo somente pacotes de Software Livre; non-free: pacotes que no so Software Livre, porm gratuitos; contrib: pacotes que so Software Livre, mas que precisam de alguns pacotes da seo non-free para funcionarem.
Pode-se ver que ela configura o APT para baixar pacotes .deb. Se quiser configurar o APT para baixar cdigos-fontes, basta trocar deb por deb-src:
deb-src http://ftp.unicamp.br/pub/debian/ unstable main contrib non-free
Neste caso, ele baixa pacotes da distribuio unstable. Se estiver utilizando o Debian num servidor, interessante baixar os pacotes da verso stable. Para isso, basta trocar unstable por stable:
deb http://ftp.unicamp.br/pub/debian/ stable main contrib non-free
O APT vai procurar pacotes em todas as sees, ou seja, main, contrib e non-free. Se voc desejar apenas Software Livre no seu sistema, vamos deixar apenas a seo main configurada, removendo as sees non-free e contrib:
deb http://ftp.unicamp.br/pub/debian/ stable main
117
Adicionando um CD-ROM Debian no sources.list Para utilizar pacotes de um CD-ROM Debian, utilizaremos a ferramenta apt-cdrom. Basta colocar o CD contendo os pacotes Debian na unidade, e digitar o seguinte comando:
$ apt-cdrom add
O CD ser analisado e, se forem achados pacotes Debian nele, ser criada automaticamente uma entrada no sources.list, como essa:
deb cdrom:[Debian GNU/Linux testing _Sarge_ - Official Snapshot i386 Binary-1 (20050226)]/ unstable contrib main
Adicionando um repositrio remoto no sources.list Um mtodo muito til de configurar as entradas do sources.list atravs da ferramenta apt-setup. Trata-se de uma interface que permite ao usurio adicionar novas entradas para o sources.list de modo rpido e fcil. O apt-setup oferece uma lista de repositrio oficiais Debian, organizados por pas. Pode-se utilizar o apt-setup para adicionar CD-ROM's Debian e repositrios locais (protocolos file:/ e copy:/) ao sources.list. Sua sintaxe simple:
$ apt-setup
Atualizando a Lista de Pacotes Uma vez configurado o sources.list, o APT j pode ser utilizado para baixar e instalar os pacotes. A primeira coisa a se fazer atualizar o APT, baixando a lista de pacotes disponveis. Para isso, usare-se o seguinte comando:
$ apt-get update Atingido http://security.debian.org stable/updates/main Packages Atingido http://security.debian.org stable/updates/main Release Atingido http://security.debian.org stable/updates/contrib Packages Atingido http://security.debian.org stable/updates/contrib Release Atingido ftp://ftp.nerim.net stable/main Packages Atingido ftp://ftp.nerim.net stable/main Release Atingido ftp://ftp2.fr.postgresql.org sarge/pgadmin Packages Atingido ftp://ftp2.fr.postgresql.org sarge/pgadmin Release Atingido ftp://ftp.br.debian.org stable/main Packages Atingido ftp://ftp.br.debian.org stable/main Release Atingido ftp://ftp.br.debian.org stable/main Sources Atingido ftp://ftp.br.debian.org stable/main Release Lendo Lista de Pacotes... Pronto
118
Instalando pacotes com o APT Agora, pode-se instalar os pacotes facilmente, utilizando o apt-get, da seguinte forma:
$ apt-get install <pacotes>
Nesse procedimento, o APT procura na lista de pacotes (gerada atravs do comando apt-get update) pelo pacote vncserver. Uma vez encontrado, ele verifica se a verso disponvel para instalao mais nova que a verso instalada. Se for, ele verifica se existem dependncias, ou seja, se existe algum pacote necessrio para o vncserver funcionar. Se existir, ele insere esses pacotes na lista de instalao. Depois disso, ele exibe a lista dos pacotes que sero instalados. O APT ainda mostra uma lista de pacotes sugeridos. Os pacotes sugeridos so aqueles que fornecem alguma funcionalidade extra ao pacote selecionado para instalao. Por fim, o APT exibe a lista dos pacotes que sero instalados, e mostra o resumo da instalao, especificando quantos pacotes sero instalados, atualizados, removidos e no atualizados, e qual o tamanho do download que precisa ser feito. Se algum pacote alm dos que voc especificou precisar ser instalado, o APT pedir a confirmao antes de iniciar a instalao. Para confirmar, digite s ou pressione Enter. Os pacotes so baixados e instalados, automaticamente.
Obtendo:1 ftp://ftp.br.debian.org stable/main vnc-common 3.3.7-7 [60,4kB] Obtendo:2 ftp://ftp.br.debian.org stable/main vncserver 3.3.7-7 [492kB] Baixados 553kB em 3s (144kB/s) Selecionando pacote previamente no selecionado vnc-common. (Lendo banco de dados ... 91447 arquivos e diretrios atualmente instalados.) Descompactando vnc-common (de .../vnc-common_3.3.7-7_i386.deb) ... Selecionando pacote previamente no selecionado vncserver. Descompactando vncserver (de .../vncserver_3.3.7-7_i386.deb) ... Instalando vnc-common (3.3.7-7) ... Instalando vncserver (3.3.7-7) ...
119
Removendo pacotes com o APT Pode-se remover pacotes facilmente, utilizando o apt-get, da seguinte forma:
$ apt-get remove <pacotes>
O procedimento aqui parecido. Primeiro, o APT procura na lista de pacotes para ver se existe um pacote instalado com o nome informado. Se existir, ele procura na lista de dependncias, para ver se existe algum outro pacote que precisa do pacote informado para funcionar. Depois disso, o APT informa o nmero de pacotes que sero removidos. Depois, exibe a quantidade de espao em disco que ser liberado. O APT solicita a confirmao para realizar a desinstalao. Para confirmar, digita-se <s> ou pressiona-se Enter.
(Lendo banco de dados ... 91475 arquivos e diretrios atualmente instalados.) Removendo vncserver ...
A remoo feita automaticamente. Nesse processo no so removidos os arquivos de configurao utilizados pelos programas. Dessa forma, se voc quiser reinstalar o programa futuramente, ele estar configurado, da mesma forma como estava antes de voc remov-lo. Se voc quiser remover completamente o pacote, incluindo os arquivos de configurao, utilize o parmetro -purge.
Procurando Pacotes O Debian possui em seu repositrio milhares de pacotes. Seria muito complicado se voc precisasse saber antecipadamente o nome do pacote que deseja instalar ou remover. Por isso mesmo, o APT conta com uma ferramenta para localizar pacotes e exibir informaes sobre eles: o apt-cache. Para listar os pacotes que correspondem a determinadas palavras-chave, utilizamos o parmetro search, da seguinte forma:
120
Por exemplo, vamos procurar os pacotes de impresso do GIMP, utilizando as palavraschave gimp e print:
$ apt-cache search gimp print cinepaint - motion picture image painting and retouching tool cupsys-driver-gimpprint - Gimp-Print printer drivers for CUPS cupsys-driver-gimpprint-data - Gimp-Print printer drivers for CUPS escputil - A maintenance utility for Epson Stylus printers foomatic-db - linuxprinting.org printer support - database foomatic-db-engine - linuxprinting.org printer support - programs foomatic-db-gimp-print - linuxprinting.org printer support - database for GimpPrint printer drivers gimpprint-doc - Users' Guide for Gimp-Print and CUPS gimpprint-locales - Locale data files for Gimp-Print gpaint - GNU Paint - a small, easy to use paint program for GNOME ijsgimpprint - Inkjet Server - Ghostscript driver for Gimp-Print libgimpprint1 - The Gimp-Print printer driver library libgimpprint1-dev - Development files for the Gimp-Print library libgimpprint1-doc - Documentation for the Gimp-Print printer driver library libijs-0.35 - IJS raster image transport protocol: shared library libijs-dev - IJS raster image transport protocol: development files xsane - GTK+-based X11 frontend for SANE (Scanner Access Now Easy) xsane-common - GTK+-based X11 frontend for SANE (Scanner Access Now Easy)
Para exibir informaes mais detalhadas sobre um programa, podemos utilizar os parmetros show e showpkg. Vejamos, por exemplo, as informaes detalhadas do pacote gimp:
121
$ apt-cache show gimp Package: gimp Priority: optional Section: graphics Installed-Size: 8156 Maintainer: Ari Pollak <ari@debian.org> Architecture: i386 Version: 2.2.6-1 Replaces: gimp1.2 (<< 1.2.5-1), gimp1.3, gimp-nonfree, gimp-data (<< 2.0.2-4) Provides: gimp2.0, gimp-nonfree Depends: wget, gimp-data (= 2.2.6-1), aalib1 (>= 1.2), libart-2.0-2 (>= 2.3.16), libatk1.0-0 (>= 1.7.2), libc6 (>= 2.3.2.ds1-4), libexif10, libexpat1 (>= 1.95.8), libfontconfig1 (>= 2.3.0), libfreetype6 (>= 2.1.7), libgimp2.0 (>= 2.2.0+rel), libgimpprint1 (>= 4.2.7), libglib2.0-0 (>= 2.6.0), libgtk2.0-0 (>= 2.6.0), libice6 | xlibs (>> 4.1.0), libjpeg62, liblcms1 (>= 1.08-1), libmng1 (>= 1.0.3-1), libpango1.0-0 (>= 1.8.1), libpng12-0 (>= 1.2.8rel), libsm6 | xlibs (>> 4.1.0), libtiff4, libwmf0.2-7 (>= 0.2.8.3), libx11-6 | xlibs (>> 4.1.0), libxmu6 | xlibs (>> 4.1.0), libxpm4 | xlibs (>> 4.1.0), libxt6 | xlibs (>> 4.1.0), zlib1g (>= 1:1.2.1) Recommends: gimp-svg Suggests: gimp-help-en | gimp-help, gimp-python, libgimp-perl, gimp-data-extras, libasound2 (>= 1.0.0) Conflicts: gimp1.2 (<< 1.2.5-1), gimp1.3, gimp-nonfree, gimp-data (<< 2.0.2-4) Filename: pool/main/g/gimp/gimp_2.2.6-1_i386.deb Size: 3087226 MD5sum: 18d0bfa32ea03ac1de835bf3a2122a99 Description: The GNU Image Manipulation Program The GIMP lets you draw, paint, edit images, and much more! GIMP includes the functionality and plug-ins of other famous image editing and processing programs. If you'd like to use a MIDI device as an input controller in GIMP, install libasound2 and read the how-to at /usr/share/doc/gimp/README.MIDI Task: desktop
A diferena entre show e showpkg que show mostra detalhes relativos ao pacote, como descrio, mantenedor, etc., enquanto showpkg exibe informaes referentes s dependncias simples e reversas do pacote.
Atualizando o Sistema O APT possui um recurso que permite atualizar todos os pacotes instalados no sistema. Isso pode ser feito utilizando as opes upgrade e dist-upgrade do apt-get:
$ apt-get upgrade $ apt-get dist-upgrade
A diferena entre o upgrade e o dist-upgrade est no mecanismo de resoluo de dependncias, que mais aprimorado quando se usa o dist-upgrade, e que o recomendado. Pode-se usar o dpkg para marcar os pacotes que no devem ser
Diretoria de Transferncia Tecnolgica Centro de Computao Unicamp 122
atualizados em hiptese alguma. Esse recurso til para evitar a atualizao de componentes importantes do sistema, cujas atualizaes podem ser instveis, ou no caso de programas que tenham sido instalados manualmente.
Limpando o Cache de Pacotes Os pacotes baixados da Internet pelo APT ficam armazenados no diretrio /var/cache/apt/archives, para serem usados no caso de reinstalao. Esses pacotes ocupam espao em disco, que muitas vezes pode no ser um recurso disponvel. Por isso, o apt-get conta com duas opes para limpeza de cache: clean e autoclean. O clean apaga todos os pacotes do diretrio /var/cache/apt/archives. Seu uso simples:
$ apt-get clean
J o autoclean apaga apenas os pacotes que possuem verses mais novas disponveis para download. recomendvel utilizar o autoclean sempre aps fazer a atualizao da lista de pacotes do APT (apt-get update).
123
124
Captulo 8
125
Este captulo foi colocado neste curso para as pessoas que nunca utilizaram o GNU/Linux, e que querem conhecer softwares equivalentes em seu uso dirio no Microsoft Windows. Alguns usurio tm uma surpresa enorme com a evoluo dos aplicativos desenvolvidos para GNU/Linux.
OpenOffice.org : Desenvolvido a partir do cdigo-fonte do StarOffice, cedido pela Sun Microsystems comunidade, o OpenOffice.org hoje se no a melhor, a mais difundida sute de escritrios livre do mercado, muito poderosa, com todos os recursos esperados de uma sute de escritrios completa. Fazem parte da sute os softwares Writer (editor de textos), Calc (planilha eletrnica), Draw (desenho vetorial), Impress (apresentao de slides) e Math (frmulas matemticas). Para a verso 2.0, ainda em fase de testes, foi incorporado um software de banco de dados, o Base. Koffice : O KOffice a sute de escritrios do KDE, bastante completa e bem mais leve que o OpenOffice.org, ideal para uso em mquinas mais modestas e por aqueles usurios que utilizam to somente os recursos bsicos de uma sute de escritrios.
8.2- Internet
Navegadores (Browsers) Mozilla Firefox : Desenvolvido pela Fundao Mozilla, o Mozilla Firefox um browser leve, poderoso, fcil de usar e com vrios recursos. Possui verses para GNU/Linux, Windows e MacOS. Entre os seus recursos esto a navegao por abas, pesquisa inteligente, controles avanados de privacidade e segurana, acelerador de downloads, suporte a temas para personalizar a aparncia e a extenses que fornecem todo tipo de funcionalidades extras para o navegador. Konqueror : O Konqueror o navegador padro do KDE. Tambm funciona como gerenciador de arquivos, o que lhe confere uma grande praticidade. Seus recursos incluem suporte a abas e aos plugins para Mozilla/Netscape.
126
Epiphany : Navegador padro do ambiente GNOME, desenvolvido sobre a engine Gecko, a mesma usada pelo Mozilla. As verses novas permitem adicionar recursos ao navegador em forma de extenses. Infelizmente ele no compatvel com as extenses do Firefox. Lynx : Navegador para modo texto, incrivelmente leve, ideal para testes de acesso a sites e acesso a servios configurveis via Web. Extremamente simples, o lynx no suporta cores e outros recursos como renderizao de tabelas e frames. Links : O links um navegador em modo texto como o lynx, porm com alguns recursos adicionais, como renderizao de tabelas, suporte a frames, download em background e suporte a cores. Existe ainda uma verso modificada do links, chamada links2, que fornece a esse navegador o suporte a imagens e mouse atravs de framebuffer.
Clientes de E-Mail Mozilla Thunderbird : O Mozilla Thunderbird um cliente de email seguro e verstil, extremamente poderoso. Entre os seus recursos, um grande destaque o seu filtro anti-SPAM inteligente, que analisa as mensagens classificadas como SPAM, de modo que, com o passar do tempo, o filtro se a auto-aperfeioa, ficando cada vez mais eficiente. Outros recursos importantes so os de segurana, como S/MIME, assinatura digital, criptografia de mensagens, suporte para certificados e dispositivos de segurana. Alm de todos os recursos bsicos de todos os clientes de email, o Mozilla Thunderbird suporta feeds RSS, filtros avanados de mensagens e extenses, que lhe incorporam todo tipo de funcionalidades extras. Evolution : Desenvolvido pela Ximian, empresa de Miguel de Icaza recentemente adquirida pela Novell, o Evolution um cliente de email to ou mais poderoso que o Mozilla Thunderbird, rpido, seguro, fcil de usar, altamente configurvel e totalmente integrado ao sistema (se o ambiente grfico em uso for o GNOME). Suas novas verses possuem suporte a servidores Microsoft Exchange e Novell Groupwise. Mutt : O Mutt um cliente de email em modo texto pra *NIX. Extremamente leve pelo fato de no utilizar interface grfica, mas nem por isso limitado. O Mutt extremamente poderoso. Sua interface, ao contrrio do que se possa esperar de um programa em modo texto, bastante intuitiva, e entre seus recursos esto a visualizao de emails por threads, recurso muito til para quem faz parte de vrios listas de discusso (comum entre usurios de GNU/Linux).
127
Mensagens Instantneas GAIM : O GAIM muito popular entre os usurios de GNU/Linux, pela sua praticidade, velocidade e estabilidade. Utilizando a biblioteca grfica GTK, o Gaim oferece suporte a 7 protocolos diferentes: AIM/ICQ, Gadu-Gadu, GroupWise, IRC, Jabber, MSN, Napster e Yahoo, alm de suportar conexes mltiplas, o que permite, entre outras coisas, que todas as pessoas que utilizam o computador possam estar conectadas ao mesmo tempo. Outro ponto muito interessante o excelente controle de privacidade, onde pode-se determinar facilmente quais as pessoas que podem conversar com voc, alm do excelente nmero de recursos de personalizao da exibio de informaes, temas para personalizar sua aparncia e plugins que lhe adicionam recursos. GAIM-vv : O GAIM-vv uma verso do Gaim com suporte a udio e vdeo, no suportados pelo Gaim original. Kopete : Outro programa de mensagens instantneas muito popular, o Kopete, assim como o Gaim, possui suporte a diversos protocolos e conexes mltiplas. A diferena maior est na interface, na localizao das opes e nos recursos. aMSN : Esse poderoso aplicativo um clone do MSN Messenger da Microsoft, muito similar tanto na aparncia quanto nos recursos. Suporta apenas o protocolo MSN, e possui suporte a temas para personalizar a aparncia e plugins para adicionar recursos. Xchat : Excelente cliente de IRC, com diversas ferramentas para a utilizao desse protocolo de comunicao to difundido, tais como lista de servidores, busca de canais, notificao de amigos, gerenciador de transferncia de arquivos, mltiplas conexes, alm de uma interface muito bela, com suporte a transparncias e plugins/scripts. Irssi : Cliente de IRC para modo texto, extremamente leve e verstil. Um dos seus recursos mais teis o suporte ao bash completion, que completa o caminho de diretrios e arquivos automaticamente atravs do uso da tecla TAB, muito til na hora de enviar arquivos.
128
8.3- Multimdia
Reprodutores (Players) XMMS : O X Multimedia System um clone do popular Winamp para Windows, sendo muito compatvel com esse, suportando suas skins e alguns de seus plugins. A princpio, o XMMS reproduz apenas udio, mas existem plugins que permitem que ele reproduza vdeo. Xine : O Xine um reprodutor multimdia poderoso, altamente personalizvel, utilizado principalmente para reproduo de vdeos. Seus recursos incluem seleo de drivers de udio e vdeo, configurao de subttulos, efeitos de vdeo, suporte a TV, entre tantos outros. Kaffeine : O Kaffeine um frontend para outros reprodutores multimdia (o padro o Xine), feito para o KDE. Entre seus recursos adicionais esto a integrao a browsers, permitindo reproduzir streamings criados para o Windows Media Player. Amarok : Reprodutor para o KDE, extremamente poderoso, utiliza um banco de dados MySQL ou SQLite para armazenar seus dados. Sua playlist inteligente analisa as preferncias musicais do usurio, e reproduz seqencialmente as msicas no seu estilo preferido. Outro recurso interessante a busca por capas, que procura na Internet pela capa do lbum a que cada msica pertence, para que seja exibido durante a reproduo. Sua aparncia totalmente personalizvel atravs de skins, e possui suporte a plugins que lhe incorporam recursos adicionais.
Conversores RipperX : O RipperX um excelente programa para converter udio de CD para formato digital, com suporte a CDDB, que procura na Internet informaes sob o lbum a ser convertido, como artista e nomes das faixas. O RipperX utiliza o cdparanoia para extrair as msicas dos CD's, e depois convert-as para o formato escolhido (MP3, Ogg Vorbis, WMA, WAV) atravs do codec apropriado. Grip : Como o RipperX, o Grip utiliza o cdparanoia para extrair as msicas do CD, possui suporte a CDDB e suporta diversos formatos de udio. As diferenas maiores ficam por conta da interface. Avidemux : Esse , sem dvida, um dos mais poderosos conversores multimdia que se conhece. Leve e verstil, o avidemux pode converter
129
entre formatos de udio e vdeo. Possui suporte a extrao de udio e vdeo de DVD's, pode extrair udio de arquivos de vdeo, possui diversos filtros, inclusive suporte a legendas, ajuste de volume, controle de cor, desentrelace e recursos bsicos de edio.
Editores Ardour : O Ardour um software de edio de udio profissional, extremamente poderoso, com suporte a mltiplas pistas e diversos filtros de efeitos. Protux : Criado por brasileiros e hoje mantido por desenvolvedores de todo o mundo, o Protux um software de edio de udio profissional, desenvolvido por profissionais como engenheiros de som, que incluem no Protux os recursos que precisam, o que o tornou uma alternativa muito superior maioria das solues proprietrias da categoria, como o SoundForge, da Sony. Rosegarden : Editor de MIDI profissioal, multipista, muito verstil e poderoso, possui os recursos esperados de um sequencer e editor de msicas. Cinelerra : O Cinelerra um editor de vdeo profissional, que mistura recursos encontrados em softwares comerciais como o Premiere e o AfterEffects, da Adobe. Possui suporte a mltiplas pistas de udio e vdeo, transies e efeitos, pr-visualizao, mscara, camadas e filtros de udio. Desenvolvido para uso profissional, o Cinelerra trabalha apenas com vdeos em alta resoluo nos sistemas NTSC, PAL ou HDTV e nos formatos DV ou sem compresso, o que exige um grande espao em disco e uma grande quantidade de memria RAM disponvel. O Cinelerra pode se comunicar com dispositivos como placas de captura de vdeo e recepo de TV, alm de cmeras digitais e outros dispositivos FireWire (IEEE 1394). Um ponto de destaque o suporte a clustering, que permite utilizar vrios computadores para processar simultaneamente as tarefas de renderizao de vdeo, acelerando muito esse processo sem a necessidade de investir muito em hardware poderoso. Kino : O Kino um software profissional de editorao de DVD's, permitindo a gerao de estruturas complexas, com menus avanados, mltiplas faixas de udio, legendas, etc. O Kino trabalha com o formato DV, nos sistemas NTSC e PAL, e tem suporte a dispositivos de captura de vdeo.
130
8.4- Grficos
The GIMP : O GNU Image Manipulator Program um dos softwares livres de maior destaque, graas ao seu grande poder, que o tornam uma alternativa real ao onipotente Photoshop, da Adobe. Dentre os seus recursos, merecem destaque os seus filtros extremamente poderosos, alm do Script-fu, que permite criar rapidamente botes, animaes e todo tipo de efeito para uso em layouts de pginas para a Web. Sodipodi : Excelente software de desenho vetorial, cuja interface parecida com a do GIMP, dividida em vrias janelas. O Sodipodi conta com as principais ferramentas para desenho, como bzier e formas prontas, sendo uma boa alternativa para o CorelDRAW, para trabalhos que no sejam extremamente complexos. Inkscape : Outro software de desenho vetorial que utiliza o mesmo engine do sodipodi. A diferena principal est na interface, que no caso do Inkscape unificada, com todas as janelas de ferramentas dispostas em uma nica janela. OpenOffice.org Draw : Incluso na sute OpenOffice.org, o Draw o software de desenho mais poderoso dentre os softwares livres disponveis para GNU/Linux, contendo todos os recursos bsicos de desenho, alm de outras ferramentas para a criao de formas de texto avanadas.
Scribus : Uma das reas ainda pouco explorada no GNU/Linux o DTP (Desktop Publishing), onde encontramos o Scribus, um software poderoso que pode tranqilamente substituir o j conhecido (e extinto) Adobe PageMaker.
131
Eog : Eye of Gnome, o visualizador de imagens do GNOME. Possui funes bsicas de visualizao. Gthumb : Visualizador de imagens poderoso, parecido com o ACDSee. Possui visualizao de thumbnails, slideshow, rotao de imagens, etc. Tudo que se precisa de um visualizador de imagens. XV : Esse um visualizador de imagens independente de plataforma, bastante leve. Display : Esse programa faz parte do ImageMagick, leve e de uso simples.
8.7- Emuladores
DosEmu : Emulador que permite rodar aplicaes para DOS sob o GNU/Linux. Wine : O Wine permite rodar aplicativos para Windows no GNU/Linux, funcionando para uma grande quantidade de softwares comerciais como Office, Photoshop, Dreamweaver, Flash e para uma quantidade ainda maior de jogos, entre eles o popular Counter Strike, que roda perfeitamente no GNU/Linux atravs do Wine. Cedega : O Cedega um projeto derivado do Wine especialmente para jogos. Pode-se usar uma verso GPL do Cedega, ou ento assinar o servio da Transgaming, que d assistncia necessria para rodar praticamente qualquer jogo no GNU/Linux atravs desse emulador.
132
Gedit : Editor de texto do GNOME, que vem sendo desenvolvido com a tecnologia GTK+. Apresenta uma interface grfica amigvel, suporte a abas como o Mozilla Firefox, simples de usar, alm de suporte a realce de cdigo de vrias linguagens de programao. Kate : Editor de texto que acompanha o KDE, utiliza a biblioteca grfica QT. Seus recursos so mais focados para programao em si, no sendo muito diferentes dos do Gedit. Vi/Vim : O VI um dos editores de texto mais antigos. Independente de plataforma, ele encontrado em quase todos os sistemas *NIX. um editor de texto para console, ento no h a necessidade de se usar um ambiente grfico. Ele um pouco confuso para quem utiliza o programa pela primeira vez, visto que todos as operaes so iniciadas a partir de uma seqncia de teclas. usado tanto para editar um simples texto como para programar. Torna-se muito prtico uma vez que sistemas GNU/Linux armazenam as suas configuraes em arquivos de texto que podem, facilmente, ser editados pelo VI. O VIM (abreviatura de vi improved) uma variao do vi com alguns recursos extras. O uso do vim igual ao do vi, exceto pelas funes adicionais no encontradas neste. Para aqueles que no abrem mo de uma interface grfica, h um frontend para o vi/vim, chamado Gvim. Construdo em GTK, oferece um conforto a mais para os usurios inexperientes. Pico : Outro editor de texto para console, mais simples de utilizar. Seus comandos so feitos pela tecla CTRL+<letra>, sendo que h um menu na parte inferior da tela, com algumas teclas de atalho mais usadas.
8.9- Desenvolvimento
Quanta Plus : O Quanta Plus o aplicativo de desenvolvimento Web do KDE, com todos os recursos principais necessrios para o webmaster desenvolver desde sites simples em HTML at complexos sistemas Web em PHP. Bluefish : To ou mais poderoso que o Quanta, o Bluefish utiliza a biblioteca grfica GTK, possui suporte a diversas linguagens, alm de ferramentas para configurao de CSS e acesso a banco de dados MySQL.
133
Eclipse : IDE para desenvolvimento em Java, que oferece com amplos e inovadores recursos de produtividade como refactoring, gerao de cdigo e muitos outros auxlios. Sua interface grfica prpria, o que lhe confere uma interface com o usurio muito rica de componentes grficos sem abrir mo do desempenho, e possui suporte a plugins que lhe conferem todo tipo de funcionalidades extras. Anjuta : Anjuta uma IDE para desenvolvimento em C/C++, com muitos recursos e suporte a integrao com softwares para RAD, como o Glade. Glade : Ferramenta para RAD (Rapid Application Development), que permite desenvolver facilmente aplicativos grficos para a biblioteca GTK. Utiliza vrias linguagens, entre elas Python. Seus cdigos so gravados em arquivos XML, o que permite a fcil integrao com outros aplicativos de desenvolvimento, como o anjuta. Outro recurso interessante a gerao do cdigo em linguagem C que realiza a chamada dos componentes grficos GTK. jEdit : O jEdit uma IDE de desenvolvimento para mais de 130 linguagens, suportando destaque de sintaxe para todas elas. Desenvolvido em Java, ele roda em MacOS, OS/2, UNIX, VMS e Windows. Seu forte o suporte a macros e plugins, desenvolvidos pelos seus usurios e disponibilizados no site oficial do jEdit, que agilizam o desenvolvimento dos aplicativos.
Gnome-Terminal : Terminal do GNOME, muito customizvel, transparncias e efeitos diversos, entretanto um pouco pesado.
com
Konsole : Terminal do KDE. Possui os mesmos recursos do Gnome-Terminal. Xterm : O terminal mais simples e minimalista, o terminal que acompanha o Xfree86 e X.org. No possui muitos recursos, sendo o seu grande atrativo a velocidade de abertura, ideal para mquinas modestas e para usurios que costumam abrir um grande nmero de janelas de terminal simultaneamente. Aterm : O terminal usado pelo AfterStep, muito popular entre os usurios por permitir a completa personalizao, com transparncias, cores de fundo, etc. Eterm : Terminal do Enlightment, possui alguns recursos semelhantes ao Aterm. RXVT : Outro terminal minimalista. Como o Xterm, ele presente na maior parte das distribuies.
134
SourceForge : Pense em um local onde milhares de desenvolvedores de Software Livre tm liberdade para desenvolver seus projetos sem se preocupar com hospedagem, criando uma comunidade de desenvolvimento. Pois bem, esse projeto existe e se chama Souceforge http://sourceforge.net. Mas o que o SourceForge? Pois bem, o SourceForge uma pgina que incentiva a criao de comunidades de desenvolvimento de Software Livre. Essas comunidades recebem, gratuitamente, servios de hospedagem, frum, bugzilla, enfim, tudo que um projeto de software precisa para crescer. Para se ter uma idia, existem cerca de 100.000 projetos somente nesse site. Alguns deles so bem conhecidos, outros nem tanto. Qualquer projeto cuja home page seja http://NOME.sourceforge.net um dos membros dessa comunidade. No h apenas software para GNU/Linux no SourceForge. Esto presentes tambm softwares para MacOS, Windows, *NIX, etc. claro, s podem fazer parte dessa comunidade projetos de Software Livre, publicados sob a licena GPL ou alguma outra aceita pelo projeto. Esse um dos lugares onde se pode achar software livre de boa qualidade, ou criar um projeto prprio e usufruir das regalias oferecidas pelo SourceForge.
FreshMeat : Outro lugar parecido com esse o FreshMeat http://freshmeat.net, que tambm conta com uma grande quantidade de softwares. Se voc for ver a lista de projetos mais populares, ver grandes projetos, como o Mplayer, o MySQL, etc. Um diferencial do FreshMeat a seo de temas http://themes.freshmeat.net, com temas para gerenciadores de janelas.
135
136
Captulo 9
Bibliografia
137
Apostila do Curso de Linux do Artur de Paula Coutinho http://geocities.yahoo.com.br/arturpc Guia Bozo Linux - Davidson Rodrigues Paulo http://guiabozolinux.sourceforge.net/ Guia Foca Linux - Gleydson Maziolli da Silva http://focalinux.cipsga.org.br/ Site do Bruno Torres http://www.brunotorres.net/ Google - :-) http://www.google.com.br Documentao da Debian-BR-CDD http://cdd.debian-br.org/project/ Dicas-L http://www.dicas-l.unicamp.br
Outros Link: CIPSGA http://www.cipsga.org.br BR-Linux http://www.br-linux.org Viva o Linux http://www.vivaolinux.com.br Free Software Foundation - http://www.fsf.org/ Projeto GNU http://www.gnu.org Linux Security http://www.linuxsecurity.com.br/ Guia do hardware http://www.guiadohardware.net CodigoLivre.org - http://codigolivre.org.br/ Debian-BR - http://www.debianbrasil.org/ SuSe - http://www.novell.com/linux/suse/ RedHat - http://www.redhat.com/ Projeto Fedora - http://www.redhat.com/fedora/ Conectiva (Mandriva) - http://www.conectiva.com.br/cpub/pt/principal/index.php Ubuntu Linux - http://www.ubuntulinux.org/ Mandrake (Mandriva) - http://www.mandrivalinux.com Slackware http://www.slackware.com Projeto Debian - http://www.debian.org/ Gentoo Linux http://www.gentoo.org Knoppix - http://www.knoppix.org/ Kurumin Linux - http://www.guiadohardware.net/linux/kurumin/ Muriqui Linux - http://www.muriquilinux.com.br/
138