138

Apostila gnulinux modulo_1__introducao

  • Upload
    tiago

  • View
    17

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Apostila gnulinux modulo_1__introducao
Page 2: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Licenciamento de Uso

Este documento é propriedade intelectual © 2002 do Centro de Computação da Unicamp edistribuído sob os seguintes termos:

1. As apostilas publicadas pelo Centro de Computação da Unicamp podem ser reproduzidas edistribuídas no todo ou em parte, em qualquer meio físico ou eletrônico, desde que ostermos desta licença sejam obedecidos, e que esta licença ou referência a ela seja exibidana reprodução.

2. Qualquer publicação na forma impressa deve obrigatoriamente citar, nas páginas externas,sua origem e atribuições de direito autoral (o Centro de Computação da Unicamp e seu(s)autor(es)).

3. Todas as traduções e trabalhos derivados ou agregados incorporando qualquer informaçãocontida neste documento devem ser regidas por estas mesmas normas de distribuição edireitos autorais. Ou seja, não é permitido produzir um trabalho derivado desta obra eimpor restrições à sua distribuição. O Centro de Computação da Unicamp deveobrigatoriamente ser notificado ([email protected]) de tais trabalhos comvista ao aperfeiçoamento e incorporação de melhorias aos originais.

Adicionalmente, devem ser observadas as seguintes restrições:• A versão modificada deve ser identificada como tal• O responsável pelas modificações deve ser identificado e as modificações datadas• Reconhecimento da fonte original do documento• A localização do documento original deve ser citada• Versões modificadas não contam com o endosso dos autores originais a menos que

autorização para tal seja fornecida por escrito.

A licença de uso e redistribuição deste material é oferecida sem nenhuma garantia de qualquertipo, expressa ou implícita, quanto a sua adequação a qualquer finalidade. O Centro deComputação da Unicamp não assume qualquer responsabilidade sobre o uso das informaçõescontidas neste material.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 2

Page 3: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Nota do Autor

Este documento é uma “sistematização” de capítulos criados por mim, emconjunto com outros documentos de outras pessoas que desenvolveram ótimosmateriais, dicas e artigos relacionados ao GNU/Linux, e que os disponibilizaramlivremente. A lista destes documentos que tive como base para a criação destetreinamento, encontra-se no capítulo “Bibliografia”. Gostaria que esse documento fosseencarado como uma sistematização de documentos disponibilizados livremente e queserão utilizados com o propósito de realizar treinamentos de GNU/Linux para quem aindanão o conhece muito bem, mas que tem a curiosidade ou necessidade de aprender. Estedocumento é livre, e os fontes estão disponibilizados para download no site do Centro deComputação da Unicamp http://www.ccuec.unicamp.br.

Obrigado e bom proveito.Fabio da Silva Santos

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 3

Page 4: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Índice

1. Introdução ao GNU/Linux.................................................................................................71.1 O que é GNU/Linux?........................................................................................81.2 História...........................................................................................................81.3 Algumas características.................................................................................91.4 O GNU/Linux e as distribuições....................................................................111.5 Sou novo usuário GNU/Linux, qual distribuição devo usar?..........................131.6 Entendendo o Software Livre?......................................................................161.7 Patentes de Software...................................................................................18

2. Instalação......................................................................................................................192.1 Antes da Instalação......................................................................................202.2 Instalação do Sistema Básico.......................................................................202.3 Configuração do Sistema..............................................................................45

3. Utilizando o sistema GNU/Linux.....................................................................................573.1 Os gerenciadores de janelas........................................................................583.2 Terminal Virtual (console)............................................................................613.3 Comandos básicos – nível 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 Partições..........................................................................................................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 - Identificação de Discos e Partições..............................................................71 4.4 - Pontos de Montagem....................................................................................72

5. Arquivos e Diretórios.....................................................................................................735.1 – Arquivos......................................................................................................745.2 – Tipo de Arquivos.........................................................................................745.3 – Nomes de Arquivos.....................................................................................765.4 – Diretórios....................................................................................................765.5 – Estrutura de Diretórios................................................................................765.6 – Caminhos....................................................................................................845.7 – Notações de Diretórios do Sistema.............................................................84

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 4

Page 5: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

6. Utilizando o interpretador de comandos (shell).............................................................856.1 – O interpretador de comandos.....................................................................866.2 – Aviso de comando (prompt)........................................................................876.3 – Curingas (Wildcards)...................................................................................876.4 – Direcionadores............................................................................................906.5 – Alias............................................................................................................946.6 – Histórico dos comandos..............................................................................946.7 – Editor de textos “vi”...................................................................................956.8 – Comandos Básicos – nível 2........................................................................97

6.8.1 – history............................................................................................976.8.2 – tee.................................................................................................976.8.3 – grep...............................................................................................986.8.4 – cat..................................................................................................986.8.5 – tac................................................................................................1006.8.6 – wc................................................................................................1006.8.7 – find (utilização básica).................................................................1016.8.8 – more............................................................................................1026.8.9 – less..............................................................................................1036.8.10 – touch..........................................................................................1046.8.11 – ln................................................................................................105

7. Gerenciamento de Pacotes..........................................................................................1077.1 – O que são pacotes?...................................................................................1087.2 – Os pacotes Debian....................................................................................1097.3 – Ferramentas de Gerenciamento de Pacotes.............................................110

8. Aplicativos para GNU/linux..........................................................................................1258.1 – Suítes de Escritórios.................................................................................1268.2 – Internet.....................................................................................................1268.3 – Multimídia.................................................................................................1298.4 – Gráficos.....................................................................................................1318.5 – Desktop Publishing (DTP)..........................................................................1318.6 – Visualizadores de Imagem........................................................................1328.7 – Emuladores...............................................................................................1328.8 – Editores de Texto......................................................................................1338.9 – Desenvolvimento......................................................................................1338.10 – Terminais Gráficos..................................................................................1348.11 – Onde procurar softwares para GNU/Linux..............................................135

9. Bibliografia...................................................................................................................137

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 5

Page 6: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 6

Page 7: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Capítulo 1

Introdução ao GNU/LinuxIntrodução ao GNU/Linux

Neste capítulo o usuário compreenderá o que é o GNU/Linux, suahistória, características, noções sobre distribuições, e umaintrodução do que é software livre.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 7

Page 8: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

1.1 - O que é GNU/Linux?

Em uma definição mais abrangente do que é GNU/Linux, podemos dizer que é umsistema operacional de código-fonte aberto, e que é distribuído gratuitamente pelainternet. Tecnicamente falando, o GNU/Linux é um kernel. O Termo Kernel (ou núcleo)propriamente refere-se ao sistema de software que representa a camada mais baixa deinterface com o hardware, sendo o responsável por gerenciar os recursos do sistemacomputacional como um todo. É no kernel que estão definidas funções para operaçõescom periféricos (mouse, impressora, disco, interface serial/interface paralela),gerenciamento de memória, entre outros. Resumidamente, o kernel é um conjunto deprogramas que fornece aos programas de usuários (aplicativos), uma interface parautilizar os recursos do sistema.

Sistemas completos construídos em torno do kernel do GNU/Linux (maisconhecidos como “Distribuições GNU/Linux”) usam o sistema GNU que oferece uma shell(interpretador de comandos, como o bash), utilitários (por exemplo, o whoami, quemostra quem é o usuário autenticado no momento, o find, comando para pesquisararquivos em uma hierarquia de diretórios), bibliotecas (glibc), compiladores (compiladorC GCC), editores de texto (Emacs), e outros tipo de ferramentas. Por essa razão, RichardM. Stallman, criador do Projeto GNU, pede aos usuários que se refiram ao sistema comoGNU/Linux. Além do sistema GNU, um Sistema GNU/Linux completo pode conter outrossoftwares como o XOrg ou XFree86 (servidores gráficos), Apache (servidor web) ,PostgreSQL e MySQL (banco de dados), KDE e GNOME (gerenciadores de janelas),Mozilla FireFox (navegador web), Mozilla Thunderbird e Evolution (leitores de e-mails),entre outros softwares livres (e as vezes não-livres) desenvolvidos por indivíduos egrupos ao redor do mundo.

1.2 - História

O kernel do GNU/Linux foi originalmente desenvolvido como passatempo por LinusTorvalds, um estudante de computação da Universidade de Helsinki, na Finlândia. Suainspiração foi uma pequena versão do Unix desenvolvida por Andrew Tannenbaunchamado Minix. Ele queria um sistema operacional que fosse semelhante ao Unix, comtodas as suas funcionalidades e , ainda, que pudesse utilizá-lo num PC. A partir dessaidéia, Linus começou a trabalhar nesse que seria o futuro kernel do sistema operacionalque hoje é chamado de GNU/Linux. Isso tudo aconteceu em meados de 1991, e em 5 deoutubro deste mesmo ano, a seguinte mensagem circulou na UseNet:

“...Como eu mencionei há um mês, estou trabalhando em uma versão free deum sistema semelhante ao Minix para computadores AT-386. Ele já alcançou oestágio de ser usável (embora possa não ser dependendo do que você fazer), epretendo distribuir o código-fonte. É apenas a versão 0.02, mas já conseguirodar nele o BASH, GCC, GNU-make, GNU-sed, compress, etc.”

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 8

Page 9: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Esta mensagem era assinada por Linus Torvalds, e ninguém adivinharia que elaestaria marcando o início de um movimento que, em menos de 10 anos, já superavatrinta milhões de seguidores, e que hoje se tornou um dos sistemas operacionais maisutilizados no mundo em servidores (e agora a caminho do mundos dos desktops!),graças ao seu sistema colaborativo de desenvolvimento, de ajuda aos usuários, e dedivulgação por parte dos adeptos de um sistema operacional livre, que aos poucos põefim ao monópolio tecnológico imposto por grandes empresas de software, principalmentepela Microsoft (líder no mercado de sistemas operacionais para desktops), que oprime odesenvolvimento do conhecimento tecnológico de países “emergentes” como Brasil, quedá um grande exemplo adontando preferencialmente as soluções em software livre comapoio do governo federal, como mostra o projeto de lei do Senado Número 330, DE 2003,Altera a redação do art. 45 da Lei número 8.666:

“5o. Somente será realizada licitação ou contratação direta, com base noinciso II do art. 24, para aquisição de programas de informática quando aautoridade competente acolher, em despacho motivado, parecer técnico queconclua pela ausência de programas abertos gratuitos, capazes de supriradequadamente as necessidade da Administração.”

Portanto, adotar preferencialmente soluções livres é dar um voto de confiançapara que todas as pessoas possam ter a oportunidade e a opção de participarem dainclusão digital, a qual corre em grande velocidade mundo a fora, e no caso do Brasil,com software livre, sendo através de empresas, escolas, telecentros, e qualquerinstituição que necessite de recursos de informática para auxiliar em seus serviçosrotineiros.

1.3 - Algumas Características

Neste item estão descritas algumas das muitas características do GNU/Linux, asquais são muito vantajosas em relação à outros sistemas operacionais:

✔ É livre e desenvolvido voluntariamente por programadores experientes, hackers econtribuidores espalhados ao redor do mundo, que tem como objetivo, a contribuiçãopara a melhoria e crescimento deste sistema operacional;

✔ Não é requerida uma licença para uso. O GNU/Linux é licenciado de acordo com ostermos da GPL (GNU Public Licence);

✔ Não precisa de um processador potente para funcionar. O sistema roda bem emcomputadores 386SX 25MHz com 4MB de RAM (sem rodar o sistema X, que érecomendado 8MB de RAM), sendo um 386SX com 2MB de RAM e 40MB de discorígido para uma instalação básica e funcional;

✔ Por ser um sistema operacional de código aberto, você pode ver o que código-fontefaz e adaptá-lo as suas necessidades ou de sua empresa. Esta característica é umasegurança a mais para empresas e outros que não querem ter seus dados roubados

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 9

Page 10: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

(você não sabe o que um sistema operacional sem código-fonte aberto faz narealidade enquanto está processando um programa);

✔ Multitarefa e multiusuário;✔ 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 fragmentação efazendo um poderoso sistema para aplicações exigentes e gravações intensivas;

✔ Roda aplicações Microsoft Windows através do WINE;✔ Não há a necessidade de reiniciar o sistema após modificar a configuração de

qualquer periférico ou parâmetro de rede. Somente é necessário reiniciar o sistema nocaso de uma instalação interna de um novo periférico ou falha em algum hardware(queima do processador, placa-mãe, etc.);

✔ Modularização – O GNU/Linux somente carrega para a memória o que é usado duranteo processamento, liberando totalmente a memória assim que o programa oudispositivo é finalizado;

✔ Devido a modularização, os drivers dos periféricos e recursos do sistema podem sercarregados e removidos completamente da memória RAM a qualquer momento;

✔ Os drivers (módulos) ocupam pouco espaço quando carregados na memória RAM(cerca de 6KB para a placa de rede NE2000, por exemplo);

✔ Consultores técnicos especializados no suporte ao sistema espalhados por todo omundo;

✔ Na parte dos desktops, possui gerenciadores de janelas amigáveis e que já podem seconsiderar alternativa ao Microsoft Windows, como por exemplo o KDE, GNOME eXPDE;

✔ Possui uma porção significativa de aplicativos para os mais diversos fins para usuáriosmais leigos, como por exemplo, aplicativos de escritórios, navegadores web e leitoresde e-mail;

Analisando algumas das características do sistema GNU/Linux, podemos concluirque ele já está maduro e estável para ser utilizado no mercado e em instituições depesquisas de diversos seguimentos, como já acontece nos dias de hoje, tendo comoparceiros e incentivadores, grandes empresas como IBM e Novell, além de instituiçõesde ensino superior como por exemplo a Unicamp e UNIVATES, e órgãosgovernamentais como a Prefeitura de Monique na Alemanha, Metrô de São Paulo,os Governos do Estado do Paraná e do Rio Grande do Sul (os quais são os maioresincentivadores), Prefeitura de Rio das Ostras-RJ e o Governo Federal.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 10

Page 11: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

1.4 - O GNU/Linux e as Distribuições

Logo que Linus Torvalds passou a disponibilizar o GNU/Linux, ele apenasdisponibilizava o kernel com alguns comandos básicos. O próprio usuário devia arrumaros outros programas, compilá-los e configurá-los. Até para um hacker isto não é nadafácil.

Para nos poupar deste trabalho de montar um sistema do zero, como faziam ospioneiros, temos hoje as distribuições, que nada mais são do que grandes pacotes desoftware que trazem instaladores, documentações e outras facilidades, que poupam ousuário de tarefas mais espinhosas de instalação e configuração do sistema.

Embora seja possível desenvolver sua própria distribuição GNU/Linux do zero,compilando o Kernel e adicionando um a um os programas desejados, é muito maissimples colocar um CD na bandeja, responder a algumas perguntas e se deparar com umsistema configurado, pronto para usar.

Entre as distribuições mais conhecidas, estão: SuSe, Conectiva/Mandriva, Fedora,Gentoo, Debian, Slackware, Kurumin e Knoppix. As diferenças básicas entre elas estãoem como são organizados e pré-configurados os aplicativos, instaladores e ferramentasde configuração disponibilizadas para auxiliar na administração do sistema GNU/Linux.Outras diferenças entre as distribuições estão nos seus sistemas de empacotamento,que podem ser o RPM, DEB ou TGZ, em alguns casos a estrutura de diretórios, quenormalmente seguem o padrão LSB (Linux Standard Base) que usa o FHS (FilesystemHierarchy Standard), e a versão da biblioteca básica, glibc (biblioteca que contém asfuncões básicas para o funcionamento do sistema operacional GNU/Linux). Umailustração de como são compostas as distrubuições encontra-se na figura 1.1.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 11

Page 12: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 1.1 – Ilustração de como são compostas as distribuições.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 12

Page 13: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

1.5 - Sou novo usuário GNU/Linux, qual distribuição devo usar?

Este é o grande problema em existir várias distribuições, qual usar? O primeiropasso é pesquisar discussões em fóruns e sites sobre GNU/Linux e pedir auxílio. Depoisanalisar a pesquisa. Porém, tome cuidado, pois normalmente o usuário fica desapontadocom a primeira distribuição escolhida. Por isso, é bom escolher a distribuição que maistenha afinidade com você, e para que isso ocorra, deve-se experimentar váriasdistribuições e escolher aquela que mais lhe agradou. O problema é que o usuário nãovai querer instalar várias distribuições para achar aquela que fará sentir-se confortável,pois é muito trabalho, e o usuário novo teria dificuldade. Para estas pessoas a indicação éprocurar por distribuições de mais fácil manipulação (considerando que varia pelo gostoda pessoa). Abaixo encontram-se descrições mais detalhada das distribuições maisconhecidas:

✔ SuSe : Distribuição alemã, adquirida pela americana Novell, que vem sedestacando pelo seu grande crescimento no mercado corporativo, sendo adistribuição que mais cresce atualmente nesse setor. O SuSE Linux sempre sedestacou por ter o melhor suporte a hardware dentre as distribuiçõesexistentes, isso graças à inclusão de drivers não-livres (gratuitos ou pagos) comseu sistema operacional. O SuSE possui uma ferramenta muito versátil, o YAST,através da qual é possível configurar todo o sistema, além de gerenciar osprogramas instalados, tudo ao alcance do mouse. A união dessa facilidade comoótimo suporte comercial vem fazendo do SuSE uma das melhores alternativaspara grandes empresas, que não podem abrir mão de suporte técnicoespecializado e sempre à mão.

✔ Red Hat :Lançada oficialmente em novembro de 1994, a Red Hat foi a empresapioneira no ramo de GNU/Linux, tornando-se rapidamente a maior empresa domundo a trabalhar exclusivamente com o sistema operacional livre. Ainda hoje,a Red Hat é a distribuição mais utilizada no mundo, e muitas outrasdistribuições famosas como SuSe e Mandriva são derivadas dela. Pioneira nouso de ferramentas para configuração e manutenção do sistema, o Red Hat foi eainda é usado principalmente em servidores, a contragosto de muitos quedizem que seu desempenho não é lá dos melhores, apesar da extremafacilidade do gerenciamento do sistema, fornecida pelas ferramentas incluídasna distribuição. No atual modelo de negócios, a Red Hat está desenvolvendosomente soluções para empresas, através de distribuições fechadas, nãodisponíveis para download.

✔ Fedora : Quando a Red Hat decidiu mudar seu modelo de negócios e trabalharapenas com soluções para o mercado corporativo, deixou de disponibilizar a suadistribuição para download sob uma licença de Software Livre. Isso causou umacerta revolta na comunidade, que alegava que a Red Hat a estava traindo.Temendo retaliação e boicote, a Red Hat decidiu criar uma versão livre de seu

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 13

Page 14: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

sistema operacional, voltado para o desktop, e disponibilizá-la abertamente paradownload. Chamado Fedora, o projeto alcançou um grande sucesso, eatualmente é utilizado por um número expressivo de usuários ao redor domundo. Por possuir as mesmas ferramentas do Red Hat, a migração dosusuários aconteceu de forma tranquila e nem um pouco traumática. O Fedora émantido pela comunidade, e gerenciado pela Red Hat. Atualmente ele está naversão Core 4.

✔ Conectiva (Mandriva) : A primeira distribuição GNU/Linux nacional criada em1995. Baseada no Red Hat, o Conectiva Linux destacou-se graças ao ótimosuporte ao hardware omumente usado no Brasil e aos seus programadores quedesenvolveram diversas ferramentas utilizadas posteriormente por muitasdistribuições, como o gerenciador de pacotes Synaptic e o APT for RPM, umaadaptação do APT do Debian para sistemas baseados no Red Hat. A Conectivatornou-se rapidamente a maior empresa de Linux da América Latina, tendo sidorecentemente adquirida pela francesa MandrakeLinux, tornando-se adistribuição Mandriva. A Conectiva sempre disponibilizou os seus produtos sob alicença GPL, exceto as versões para empresas do seu sistema operacional.

✔ Mandrake (Mandriva) : Distribuição francesa baseada no Red Hat, que com otempo tomou características próprias e assumiu um sucesso que tornou aMandrakelinux a maior empresa do ramo de Linux na Europa. O principal trunfodo Mandrake é a facilidade de uso. Tudo é simples de fazer, desde a instalaçãodo sistema até a sua configuração, instalação de novos itens de hardware egerenciamento dos programas instalados. Suporta vários idiomas, incluindo oportuguês brasileiro, e possui muitos serviços para usuários, como o MandrakeClub, onde o membro recebe as últimas atualizações sobre segurança,softwares, e outros, de forma rápida e automatizada. Recentemente, aMandrakelinux comprou a brasileira Conectiva, tornando-se também a maiorempresa do ramo de Linux da América Latina, e lançando a nova distribuição, oMandriva.

✔ Slackware : Mais antiga das distribuições, criada em abril de 1993 peloirlandês, Patrick Volkerding, o Slackware é uma distribuição tradicionalista,voltada para usuários que conhecem o sistema e sabem o que estão fazendo. Oobjetivo de Patrick é fornecer um ambiente mais parecido possível com umsistema UNIX padrão, mantendo a simplicidade e oferecendo total controle parao administrador. Além disso, o Slackware é a única distribuição que não aplicapatches (pacotes de correção e modificações) nos seus pacotes, ficando essatarefa a cargo do usuário, se assim achar necessário. O melhor uso doSlackware é em servidores dedicados, geralmente estáticos no sentido de nãorequererem atualizações constantes de software, e onde o sistema sejaadministrado por uma pessoa apenas, que sabe muito bem o que está fazendo.O Slackware tem a fama de ser uma distribuição difícil e sem muitos recursos. Écomum os iniciantes enfrentaram problemas com a configuração do servidorgráfico.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 14

Page 15: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Debian : O Debian foi criado por Ian Murdock em 1993, inicialmentepatrocinado pelo projeto GNU da Free Software Fundation. Hoje, os projetistasdo Debian entendem-no como um descendente direto do Projeto GNU. ODebian atualmente inclui mais de 8250 pacotes de software, facilmenteinstaláveis através de uma ferramenta chamada APT. Esses pacotes são em suamaioria softwares livres disponibilizados sob a licença GPL. Alguns deles não sãolivres, mas ainda assim gratuitos. Você pode encontrar uma lista e descriçõesdos pacotes atualmente disponíveis no Debian em qualquer um dos seus sitesmirrors (espelhos). Um diferencial do Debian sobre as demais distribuições éque ele é o único sistema que não é mantido, supervisionado ou patrocinado poralguém ou alguma organização. Todo o sistema, incluindo suas ferramentas e ospacotes que utiliza são mantidos por diversos desenvolvedores ao redor domundo. Mas nem por isso o processo de desenvolvimento do Debian édesorganizado, muito pelo contrário, é um dos processos mais organizados quese conhece. As pessoas que se candidatam a serem mantenedores do sistemapassam por testes dificílimos, ficam um longo período em experiência e, seaprovados, têm de assinar um termo de responsabilidade onde secomprometem a garantir a continuidade do sistema operacional, zelando pelaqualidade e segurança de tudo o que passar por suas mãos. Prega-se que oDebian é a distribuição mais testada do mundo, e isso é de fato verdade. Oprocesso de inclusão de um recurso no sistema ou um pacote no repositório émuito rígido, o que garante uma confiabilidade total na integridade e segurançado sistema.

✔ Gentoo : Criado por Daniel Robins, o Gentoo é uma distribuição que pode serdefinida como um “Linux From Scratch automatizado”. A instalação é feitasegundo os mesmo princípios de uma instalação de GNU/Linux a partir do zero,com todos os pacotes sendo compilados um a um, incluindo o kernel. Adiferença é que o Gentoo permite automatizar essas tarefas, através de umsistema de gerenciamento de pacotes, o Portage, que busca e baixa o pacote daInternet, compila-o e instala-o automaticamente, de acordo com asconfigurações feitas pelo usuário. O Gentoo possui arquivos de configuraçãopróprios que definem as opções que devem ser utilizadas pelo compilador, deforma a otimizar os pacotes para uso na máquina local. Quando bemconfigurado, o Portage acaba produzindo um sistema onde o desempenho é oponto mais marcante. Outro ponto de destaque o Gentoo é a rica documentaçãodisponível em seu site oficial. Mesmo usuário de outras distribuições podem sebeneficiar de documentos que tratam de assuntos fundamentais comoparticionamento, formatação e sistema de arquivos, muitos desses documentosjá traduzidos pela comunidade brasileira do Gentoo.

✔ Knoppix : Distribuição criada por Laus Knooper que oferece a possibilidade derodar o sistema a partir do CD-ROM. O Knoppix é muito popular, sendo muitoutilizado para demonstrações do GNU/Linux, uma vez que pode-se rodar umsistema completo, repleto de aplicativos, a partir de um CD, sem necessidadede instalação.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 15

Page 16: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Kurumin : Distribuição nacional criada por Carlos Eduardo Morimoto. O Kuruminé baseado no Knoppix, tendo sobre esse a vantagem de ser adaptado àrealidade do usuário brasileiro, com ferramentas de instalação de hardwaresmuito comuns no Brasil, como modems e outros dispositivos. Por ser baseado noKnoppix, o Kurumin também roda a partir do CD, e pode ser rapidamenteinstalado no computador.

✔ Debian-BR-CDD : Este projeto é uma iniciativa da comunidade brasileiraDebian-BR para adaptar a distribuição Debian à realidade do usuário brasileiro.Seu grande apelo está na facilidade de instalação e no belo aspecto visual. ODebian-BR-CDD 1.0 pre5 utiliza o GNOME como gerenciador de janelas padrão,inclui uma excelente documentação para o usuário iniciante e um link para abriro canal de IRC #debian-br-cdd, onde é possível tirar dúvidas e relatar bugsdiretamente para os desenvolvedores do sistema.

✔ Muriqui Linux : Esse projeto é mantido e desenvolvido pelo Instituto Doctumde Educação e Tecnologia. Trata-se de uma distribuição baseada no Debian (umtipo de CDD, Custom Debian Distribution), com o diferencial de estarcompletamente traduzido para o português brasileiro, e pelo fato de ele vir como instalador Anaconda, o mesmo usado em distribuições como o Red Hat e oFedora. Isso o torna um sistema Debian muito fácil de instalar. O nome dadistribuição foi baseada no nome de um macaco, considerado o maior daamérica latina, que só existe em alguns poucos lugares do Brasil. É umadistribuição nova, mas que pode se tornar sucesso em um futuro próximo.

✔ Ubuntu : Desenvolvido na África do Sul, o Ubuntu tem feito muito sucessodesde o seu lançamento, graças às suas ferramentas que tornam muito práticoo uso do sistema, e também pelo seu visual caprichado, utilizando X.org comoservidor gráfico padrão.

1.6 - Entendendo o Software Livre

“Software Livre” é uma questão de liberdade, não de preço. Para entender oconceito, deve-se pensar em “liberdade de expressão”, e não em “almoço grátis”.“Software Livre” refere-se a liberdade dos usuários executarem, copiarem, distribuírem,estudarem, modificarem e aperfeiçoarem o software. Mais precisamente, ele se refere aquatro tipos de liberdade, para os usuários de software:

✔ A liberdade de executar o programa, para qualquer propósito (Liberdade número 0 –zero);

✔ A liberdade de estudar como o programa funciona, e adaptá-lo para as suasnecessidades (Liberdade número 1). Acesso ao código-fonte é um pré-requisito paraesta liberdade;

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 16

Page 17: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ A liberdade de redistribuir cópias de modo que você possa ajudar ao próximo(Liberdade número 2);

✔ A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modoque toda a comunidade se beneficie (Liberdade número 3). Acesso ao código-fonte éum pré-requisito para esta liberdade;

Um programa é software livre se os usuários tem todas estas liberdades. Portanto,você deve ser livre para redistribuir cópias, seja com ou sem modificações, seja de graçaou cobrando uma taxa pela distribuição, para qualquer um em qualquer lugar. Serlivre para fazer essas coisas significa (entre outras coisas) que você não tem que pedirou pagar pela permissão. Você deve também ter a liberdade de fazer modificações eusá-las privativamente no seu trabalho ou lazer, sem nem mesmo mencionar que elasexistem. Se você publicar as modificações, você não deve ser obrigado a avisar aninguém em particular, ou de nenhum modo em especial.

“Software Livre” não significa “não-comercial”. Um programa livre deve estardisponível para uso comercial, desenvolvimento comercial, e distribuição comercial. Odesenvolvimento comercial de software livre não é incomum; tais softwares livrescomerciais são muito importantes. Portanto, você pode ter pago para receber cópias desoftware livres, ou você pode ter obtidos cópias sem nenhum custo. Masindependentemente de como você obteve a sua cópias, você sempre tem a liberdade decopiar e modificar o software, ou mesmo vender cópias, VOCÊ É LIVRE PARA ISSO.

“Softwares livres“ distribuídos pelo licença GPL (GNU Public Licence) seguem umconceito conhecido como Copyleft, um trocadilho com o termo Copyright, quetraduzindo literalmente significa “deixamos copiar”, que é o que garante a liberdade dosusuários de modificarem e distribuírem sua modificações. Ou seja, um software livre semCopyleft pode ser tornado proprietário por um usuário. Já um software protegido por umalicença que ofereça Copyleft deverá, se distribuído, ser distribuído sob a mesma licença,ou seja, repassando seus direitos. Em todo caso, não é necessário redistribuir umsoftware livre modificado.

O movimento do “Software Livre” foi criado em 1984 por Richard Stallman, umpesquisador do MIT (Massachusetts Insitute Technology), que não era a favor de grandesempresas de software imporem restrições aos usuários com o uso do contrato delicenças de software. Desde então, criou o projeto GNU (GNU is not UNIX), fundando aFree Software Foundation (FSF).

A licença mais conhecida no mundo do software livre é a GPL (GNU PublicLicence), que é uma das licenças que garantem todas essas liberdades listadas ecomentadas acima, porém, existem outros tipos de licenças de software que sãosemelhantes, mas não iguais à GPL, como por exemplo a BSD, Creative Commons, entreoutras.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 17

Page 18: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

1.7 - Patentes de Software

Outro motivo importante que justifica a adoção do Software Livre são as chamadaspatentes de software. Imagine que uma empresa patenteasse o duplo-clique, porexemplo, e passasse a exigir que qualquer um que utilizasse esse recurso em seussoftwares tivessem que pagar por isso. E se tudo o que for criado na área de software forpatenteado, e tivemos que pagar para utilizar esses recursos, como poderá haverdesenvolvimento, no futuro? Somente as grandes companhias poderão desenvolversoftware, e eles terão de ser pagos.

Imagine que terrível seria se todos os programas que você utiliza em seucomputador lhe custassem alguns dólares. Isso tornaria os programas mais caros que opróprio computador, o que inibiria a aquisição de computadores pelos menosfavorecidos. O que acontece então é a estagnação total, e o domínio do conhecimentopelas grandes companhias.

Existe uma grande movimentação por parte dos Estados Unidos para que o seusistema de patentes seja implementado nos outros países. Recentemente, issoaconteceu na União Européia, a contragosto de muitos. No Brasil e outros países daAmérica Latina tal sistema de patentes não existe, o que nos assegura uma certaliberdade no uso de tecnologias de software patenteadas pelas empresas americanas.Entretanto, é preciso ter consciência da importância de não impôr qualquer sistema deproteção ao direito intelectual que venha a inibir a disseminação do conhecimento e odesenvolvimento tecnológico, o que nos deixaria à mercê da vontade das grandescompanhias americanas, que não estão nem um pouco interessadas no desenvolvimentotecnológico e na disseminação do conhecimento, mas tão somente em encher os bolsosàs custas de usuários sem acesso à informação, escravos de seus programas fechados eseus Service Packs.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 18

Page 19: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Capítulo 2

Instalação do GNU/LinuxInstalação do GNU/Linux

Neste capítulo o usuário compreenderá como é organizada umainstalação do GNU/Linux independente da sua distribuição, e oque é necessário saber antes e durante a instalação para se teruma sistema enxuto e funcional.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 19

Page 20: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

2.1 – Antes da Instalação

A instalação de um sistema GNU/Linux não é uma tarefa difícil como muitosusuários pensam, ela é apenas um processo mais detalhado e customizável do que, porexemplo, a instalação de um sistema Microsoft Windows. Para que este procedimentoseja bem sucedido, é indicado seguir algumas dicas básicas:

1. Antes da instalação, verifique se existe outro sistema operacionalinstalado na máquina;

2. Caso exista outro sistema operacional (normalmente o MicrosoftWindows) que esteja ocupando o espaço disponível em disco, énecessário fazer um redimensionamento para que o GNU/Linux possa serinstalado;

3. Faça um backup de todos os seus arquivos mais importantes e execute aferramenta de desfragmentação de discos antes de realizar oredimensionamento (Apenas no caso de existir outro sistema operacionalna máquina);

4. Mesmo que os instaladores possuam o recurso de detecção automáticade hardware, sempre tenha em mãos a listagem de hardware da suamáquina (monitor, placa de vídeo, placa de rede, placa de fax modem,disco rígido SCSI, etc.), pois nem todos os instaladores possuem umabrangente banco de dados de drivers;

5. Dê preferência à instalação via boot no CD-ROM, que é a mais comum e amais simples disponível até o momento;

6. Em muitos casos, a máquina está localizada dentro de uma rede interna,então peça ao administrador da rede as seguintes informações:

✔ Endereço IP da máquina;✔ Nome da máquina;✔ Gateway;✔ Servidores de Nomes (DNS);✔ domínio;

7. Tenha em mãos os cd's da sua distribuição GNU/Linux (Pode-se instalarum sistema através da rede, NFS, FTP ou HTTP, com um boot pelodisquete ou mesmo pelo CD);

2.2 – Instalação do Sistema Básico

Independente de existirem diversas distribuições, que possuem seus própriossistemas de instalação, cada qual com suas características individuais, o processo deinstalação do GNU/Linux, no geral, segue um padrão, o qual pode-se resumir da seguinteforma:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 20

Page 21: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Normalmente uma instalação de GNU/Linux possui estas características, porém,como existem diversas distribuições com seus próprios instaladores, algumas destasetapas podem não existir, podem fazer parte de outro item do instalador, ou mesmopodem ser executadas sem aparecerem visualmente para o usuário.

A distribuição utilizada como base para o curso é o Debian GNU/Linux 3.1, ouDebian “Sarge”. Esta distribuição é desenvolvida e atualizada através do esforço devoluntários espalhados ao redor do mundo, seguindo o estilo de desenvolvimentoGNU/Linux. Por este motivo, foi adotada como a distribuição oficial do projeto GNU.Apesar da sua instalação ser inteiramente em modo texto, pode-se instalar um sistemacompleto com uma enorme facilidade e rapidez. Sua instalação é dividida nas seguintesetapas:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 21

✔ Tipo de instalação (modo texto, gráfico, expert, etc.)

✔ Detecção de hardware

✔ Seleção do idioma

✔ Seleção do layout do teclado

✔ Seleção e configuração do mouse

✔ Perfis de instalação

✔ Configurar rede

✔ Particionamento de disco

✔ Instalação de pacotes

✔ Configurar o modo gráfico

✔ Monitor

✔ Placa de vídeo

✔ Nº de cores / resolução

✔ Configuração do fuso horário

✔ Configuração de usuários e senhas

✔ Configuração do gerenciador de inicialização(bootloader)

✔ Disco de inicialização

✔ Finalização da instalação

Page 22: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

A partir de agora, vamos detalhar o processo de instalação do Debian GNU/Linux3.1 “Sarge”, passo-a-passo, com apresentação das telas que fazem parte do instalador.Lembrando que as opções selecionadas fazem parte dos exemplos deste curso.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 22

✔ Tipo de instalação (linux26, expert, etc.)

✔ Seleção do idioma

✔ Seleção 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 Básico

✔ Instalar o GRUB em um disco rígido

✔ Configuração do fuso horário

✔ Configurar usuários e senhas

✔ Configurar o APT (repositório de pacotes)

✔ Seleção dos perfis de instalação

✔ Configurar o modo gráfico

✔ Monitor

✔ Placa de vídeo

✔ Nº de cores / resolução

✔ Configurar o EXIM

✔ Finalização da Configuração e da Instalação

✔ Inicialização do Modo Gráfico

Page 23: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Tipo de instalação (linux26, expert, etc.)

A figura 2.2.1 mostra a tela de apresentação do instalador, logo após ainicialização do computador pela mídia de instalação do Debian GNU/Linux Sarge. Estapode ser adquirida em um dos mirrors oficiais, que encontram-se espalhados pelomundo, e listados em http://www.debian.org/CD/http-ftp/ . Precisa-se apenas do CD 1para realizar uma instalação funcional e enxuta.

Figura 2.2.1 – Primeira tela de apresentação do instalador.

Pressionando a tecla F1, podemos visualizar um menu com diversar informaçõessobre a instalação e sobre o Projeto Debian GNU/Linux. Utilize o método de instalação“linux26” (figura 2.2.2).

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 23

Page 24: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 2.2.2 – Menu de opções do instalador.

✔ Seleção do Idioma

Nesta etapa, faz-se a seleção do idioma usado no processo de instalação (figura2.2.3). Selecione a opção “Portuguese (Brazil) - Português do Brasil”.

Figura 2.2.3 – Seleção do idioma.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 24

Page 25: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Seleção do layout do teclado

Escolha o layout do teclado que você está usando (figura 2.2.4). O instalador teoferece a opção mais comum, baseada na sua escolha do idioma, mas obviamente, vocêpode mudar se desejar. Selecione a opção “Português Brasileiro (layout ABNT2)”.

Figura 2.2.4 – Escolha do layout do teclado.

✔ Detectar e montar CD-ROM

O instalador executa a detecção do CD-ROM (figura 2.2.5) para poder carregar namemória os componentes necessários ao seu funcionamento (figuras 2.2.6 e figura2.2.7).

Figura 2.2.5 – Detecção do CD-ROM.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 25

Page 26: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 2.2.6 – Lendo os componentes do instalador no CD-ROM.

Figura 2.2.7 – Carregando na memória os componentes do instalador.

✔ Configurar Rede

A detecção do hardware de rede é feita automáticamente (figura 2.2.8), e se amáquina faz parte de uma rede, o instalador tenta realizar a configuração automática viaDHCP (figura 2.2.9). Caso contrário, será exibida uma mensagem de erro (figura 2.2.10)e o menu de opções da configuração de rede. Selecione a opção “Configurar a RedeManualmente” (figura 2.2.11).

Figura 2.2.8 – Detectando o hardware de rede.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 26

Page 27: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 2.2.9 – Configuração de rede via DHCP.

Figura 2.2.10 – Mensagem de erro exibida por não achar nenhum servidor DHCP.

Figura 2.2.11 – Menu de opções da Configuração de Rede.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 27

Page 28: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

As informações de rede como endereço IP (figura 2.2.12), máscara de rede (figura2.2.13), gateway (figura 2.2.14), servidores de nomes, ou DNS (figura 2.2.15), nome damáquina (figura 2.2.16) e domínio da rede(figura 2.2.17), serão necessárias nesta etapada instalação.

Figura 2.2.12 – Endereço IP.

Figura 2.2.13 – Máscara de Rede.

Figura 2.2.14 – Gateway.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 28

Page 29: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 2.2.15 – Servidores de Nomes, ou DNS.

Figura 2.2.16 – Nome da Máquina.

Figura 2.2.17 - Domínio da rede.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 29

Page 30: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Detectar Discos e outros Hardwares

Nesta etapa é feita a detecção dos disco e outros hardwares relacionados (figura2.2.18).

Figura 2.2.18 – Detecção de de discos e outros hardware relacionados.

✔ Particionar Discos

Após realizar a detecção automática dos discos, o instalador inicializa oparticionador (figura 2.2.19) e exibe um menu onde é listado todos discos detectados(figura 2.2.20). Selecione a opção “Editar manualmente a tabela de particões”.

Figura 2.2.19 – Iniciando o particionador.

Figura 2.2.20 – Menu do particionador.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 30

Page 31: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Como neste custo já existem partições configuradas, formatadas e montadas, vocêirá inicialmente removê-las para aprender como realizar o processo de particionamentode discos. Selecione a primeira partição (swap)(figura 2.2.21), e na próxima tela (figura2.2.22), selecione a opção “Remover a partição”.

Figura 2.2.21 – Selecione a primeira partição para remoção.

Figura 2.2.22 – Selecione a opção “Remover a partição”.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 31

Page 32: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

O particionador irá atualizar a tabela de partições da máquina (figura 2.2.23), edepois voltará novamente ao menu onde estão listadas todas as partições configuradasno(s) respectivo(s) disco(s) (figura 2.2.24). Repita a operação anterior com a segundapartição (reiserfs), selecionando-a, e na próxima tela, escolhendo a opção “Remover apartição” (figura 2.2.25).

Figura 2.2.23 – Atualizando a tabela de partições.

Figura 2.2.24 – Menu do particionador.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 32

Page 33: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 2.2.25 – Selecione a opção “Remover a partição”.

Novamente é apresentado o menu do particionador, com a tabela departições sem nenhuma configuração. Nesta instalação será utilizado um esquema departicionamento básico, indicado para iniciantes. Siga as orientações enumeradas paracriar as partições. Cada item contém a referência das telas exibidas durante oparticionamento para que o usuário possa localizar-se durante a execução dosprocedimentos.

1. Selecione a área do disco que contenha espaço livre para criar as partições(figura 2.2.26):

Figura 2.2.26 – Selecionar área do disco para particionar.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 33

Page 34: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

2. Primeiramente, cria-se uma partição de SWAP (Área de troca) para o sistema.Selecione a opção “Criar uma nova partição” (figura 2.2.27):

Figura 2.2.27 – Criar uma partição de SWAP.

3. Coloque neste campo o valor “128 MB“ (Entre os valores “128” e “MB” coloqueum espaço em branco) (figura 2.2.28):

Figura 2.2.28 – informando o valor do tamanho da partição de SWAP.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 34

Page 35: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

4. Selecione a opção “Primária” (figura 2.2.29):

Figura 2.2.29 – Tipo de partição.

5. Selecione a opção “Início” (figura 2.2.30):

Figura 2.2.30 – Posicionamento da partição de SWAP no disco.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 35

Page 36: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

6. Selecione o item “Usar como” para selecionar o tipo de sistema de arquivospara esta partição (figura 2.2.31):

Figura 2.2.31 – Informações sobre a partição.

7. Para a criação de uma partição de SWAP, seleciona-se a opção “Área de Troca”(figura 2.2.32):

Figura 2.2.32 – Selecionando o tipo de sistema de arquivos.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 36

Page 37: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

8. Nesta etapa, o instalador exibe a configuração da partição recém-criada.Selecione a opção “Finalizar a configuração da partição” para confirmar acriação da partição de SWAP (figura 2.2.33):

Figura 2.2.33 – Confirmação da criação da partição de SWAP.

9. O instalador volta a exibir o menu do particionador, com a nova partição deSWAP sendo exibida. Agora cria-se a partição principal, o qual será instalado osistema operacional. Novamente selecione a área do disco que contenha espaçolivre para criar as partições (figura 2.2.34):

Figura 2.2.34 – Selecionar espaço livre para criação a partição principal.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 37

Page 38: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

10. Selecione a opção “Criar uma nova partição” (figura 2.2.35):

Figura 2.2.35 – Criar uma nova partição.

11. Coloque neste campo o valor “5 GB“ (Entre os valores “5” e “GB” coloque umespaço em branco) (figura 2.2.36):

Figura 2.2.36 – Informando o valor do tamanho da partição principal.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 38

Page 39: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

12. Selecione a opção “Primária” (figura 2.2.37):

Figura 2.2.37 – Tipo de partição.

13. Selecione a opção “Início” (figura 2.2.38):

Figura 2.2.38 – Posicionamento da partição principal no disco.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 39

Page 40: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

14. Selecione o item “Usar como” para selecionar o tipo de sistema de arquivospara esta partição (figura 2.2.39):

Figura 2.2.39 - Informações sobre a partição.

15. Para a nossa partição principal, selecione o item “sistema de arquivo comjournaling ReiserFS” (figura 2.2.40):

Figura 2.2.40 - Selecionando o tipo de sistema de arquivos.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 40

Page 41: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

16. Escolhido o tipo de sistemas de arquivos, selecione o item “FlagInicializável”, (figura 2.2.41) para tornar a nossa partição inicializável(“ligado”):

Figura 2.2.41– Tornar a partição principal inicializável

17. Após estas configurações, Selecione a opção “Finalizar a configuração dapartição” (figura 2.2.42):

Figura 2.2.42- Confirmação da criação da partição principal.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 41

Page 42: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

18. Será exibida a configuração da sua tabela de partições (figura 2.2.43).Selecione a opção “Finalizar o particionamento e gravar as mudanças nodisco”:

Figura 2.2.43 – Finalizar o particionamento.

19. Confirme a gravação da tabela de partições, selecionando a opção “Sim”(Figura 2.2.44):

Figura 2.2.44 – Confirmar a gravação da tabela de partições.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 42

Page 43: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

20. Após a confirmação anterior, o instalador irá formatar as partições recém-criadas (figura 2.2.45):

Figura 2.2.45 – Formatando as partições.

✔ Instalação do Sistema Básico

A instalação do sistema básico é feita logo após a formatação das partições (figura2.2.46):

Figura 2.2.46 – Instalação do sistema básico.

Terminada a instalação do sistema básico, o instalador pede a confirmação parainstalar o gerenciador de inicialização GRUB (figura 2.2.47):

Figura 2.2.47 - Instalar o gerenciador de inicialização GRUB.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 43

Page 44: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

21. Executa-se a instalação do GRUB na MBR (figura 2.2.48):

Figura 2.2.48 – Executando a instalação do GRUB.

Agora o instalador realiza as últimas configurações desta primeira etapa (figura2.2.49), e exibe uma mensagem notificando a finalização da instalação (figura 2.2.50). OCD será ejetado da bandeja e o computador será reinicializado para a próxima etapa queé a configuração do sistema

Figura 2.2.49 – Finalizando a instalação.

Figura 2.2.50 – Instalação Finalizada.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 44

Page 45: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

2.3 - Configuração do Sistema

A configuração do sistema GNU/Linux é iniciada após a instalação do sistemabásico (figura 2.3.2). Agora será feita as configurações mais específicas do sistema, e ainstalação de pacotes de acordo com o uso da máquina. Mesmo que na mesma máquinaexista outro sistema operacional instalado, o novo gerenciador de inicialização será oGRUB, e a sua interface padrão tem a configuração como a da figura 2.3.1:

Figura 2.3.1 – Tela inicial do GRUB.

Figura 2.3.2 - Tela de boas vindas do configurador Debian.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 45

Page 46: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Configuração do Fuso

Selecione a configuração de fuso horário para o seu computador (figuras 2.3.3 e2.3.4):

Figura 2.3.3 – Selecionando o fuso horário.

Figura 2.3.4 - Selecionando o fuso horário.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 46

Page 47: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Configurar usuário e senha

Nesta parte da configuração, serão configuradas as informações dos usuários quenormalmente utilizam a máquina. Basicamente, têm-se dois usuário no sistema, ousuário para tarefas administrativas, o “root”, e um usuário para utilização geral, o qualdaremos o nome de “curso”. Para o usuário administrativo (root), a configuração pede asua senha (figura 2.3.5) e a confirmação para esta senha (figura 2.3.6):

Figura 2.3.5 – Senha para usuário administrativo.

Figura 2.3.6 – Confirmação para senha do usuário administrativo.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 47

Page 48: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Para o usuário de utilização geral (curso), a configuração pede o seu nomecompleto (figura 2.3.7), seu username (figura 2.3.8), sua senha (figura 2.3.9) e aconfirmação para esta senha (figuras 2.3.10):

Figura 2.3.7 – Nome completo do usuário de utilização geral.

Figura 2.3.8 – Username para o usuário de utilização geral.

Figura 2.3.9 – Senha para o usuário de utilização geral.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 48

Page 49: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 2.3.10 – Confirmação da senha para o usuário de utilização geral.

✔ Configurar repositório de pacotes (APT)

Deve-se escolher o método que o APT (A ferramenta de gerenciamento depacotes do Debian GNU/Linux) deverá utilizar para acessar o repositório de pacotesDebian. É possível instalar estes pacotes através de um CD-ROM, FTP, HTTP, oudiretamente do sistema de arquivos. Utilize a opção “cdrom” (figura 2.3.11) para orepositório de pacotes, o qual será examinado e preparado (figura 2.3.12) paraselecionar os perfis de instalação.

Figura 2.3.11 – Selecione o repositório de pacotes do Debian GNU/Linux.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 49

Page 50: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 2.3.12 – Examinando e preparando as informações do repositório.

✔ Seleção dos Perfis de Instalação

Nesta etapa a seleção de perfis é requerida pela configuração do sistema. Comovisto, existem perfis para os mais variados usos para serem instalados (figura 2.3.13).Selecione as opções “Ambiente Desktop” e “Servidor Web”, as quais serão suficientespara as tarefas propostas:

Figura 2.3.13 – Menu dos perfis de instalação.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 50

Page 51: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Configurar o modo gráfico

Logo após a instalação dos pacotes dos perfis selecionados, o instalador inicia aconfiguração do modo gráfico. Como indicado no início do capítulo, tenha em mãos asinformações de hardware relacionados ao modo gráfico (monitor, placa de vídeo, etc.) eselecione-o no menu de opções. Primeiramente, será pedido o modelo da sua placa devídeo. No nosso caso, selecione “i810” (figura 2.3.14). A detecção automática do mouse(figura 2.3.15) e do monitor (2.3.16) serão, respectivamente, pedidos em seguida:

Figura 2.3.14 – Selecionando a placa de vídeo.

Figura 2.3.15 – Detecção do mouse.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 51

Page 52: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 2.3.16 – Detectar o monitor.

Se o seu monitor for do tipo LCD, selecione a opção abaixo (figura 2.3.17):

Figura 2.3.17 – Se o seu monitor dor do tipo LCD, selecione esta opção.

A mensagem exibida na figura 2.3.18 informa os tipo de opções que o instaladordisponibiliza para a configuração do seu monitor. Na figura 2.3.19 estas opção sãoexibidas. A opção “Medium” será utilizada nesta instalação, porém, se você for umusuário mais avançado ou seu monitor precise de configurações mais aprofundadas,escolha a opção “Advanced”. No caso de ser um usuário muito iniciante, escolha a opção“Simple”:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 52

Page 53: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 2.3.18 – Informações iniciais para configurar o monitor.

Figura 2.3.19 – Selecione a opção “Medium”.

Na figura 2.3.20, o instalador exibe o menu de opções para configurar o modo deexibição do seu monitor. Neste caso selecione a opção “800x600 @ 60Hz”, que é aresolução do monitor que está sendo utilizado. Porém, no caso de realizar a instalação doDebian GNU/Linux em outra máquina, selecione a opção que mais adequada para o seumonitor.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 53

Page 54: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 2.3.20 – Selecionando o modo de exibição para o monitor.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 54

Page 55: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Configurar o servidor de mensagens

A última parte da instalação é a configuração do EXIM, o MTA (servidor de emailspadrão do Debian). Se você pretende usar o sendmail ou o postfix, selecione a opção“sem configuração no momento” (figura 2.3.21) e não configure o EXIM. Selecione estaopção, pois neste momento este recurso não será utilizado.

Figura 2.3.21 – Sem configuração para o EXIM no momento.

Mesmo o instalador pedindo a confirmação para configurar o servidor demensagens (figura 2.3.22), selecione a opção “Sim”. Na próxima tela, o instaladorpergunta para qual conta de usuário as mensagens serão postadas (figura 2.3.23). Comonão configuramos o servidor de mensagens, selecione “Ok”, para então ser exibida a telaque finaliza a instalação do nosso sistema Debian GNU/Linux (figura 2.3.24).

Figura 2.3.22 – Confirmação para configurar o EXIM.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 55

Page 56: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 2.3.23 – Selecione a opção “Ok”, pois o EXIM não foi configurado.

Figura 2.3.24 – Fim da instalação do Debian GNU/Linux

Pronto! Agora o seu sistema Debian GNU/Linux está instalado. O servidor gráficoserá inicializado e uma tela para a autenticação aparece para o uso do gerenciador dejanelas. Utilize a conta de usuário recém-criada, e bom uso!

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 56

Page 57: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Capítulo 3

Utilizando o GNU/LinuxUtilizando o GNU/Linux

Neste capítulo o usuário acessa e utiliza pela primeira vez oGNU/Linux, aprende o que é um gerenciador de janelas, e utilizaos recursos mais básico do sistema.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 57

Page 58: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

3.1 - Os gerenciadores de janelas

O gerenciador de janelas é o programa que controla a aparência da aplicação. Eleatua entre o servidor X (servidor gráfico) e a aplicação (figura 3.1.1) .

Figura 3.1.1 – Ilustração do esquema de atuação dos aplicativos gráficos.

No universo do software livre, existem vários tipos de gerenciadores de janelasdisponíveis, que entre os mais conhecidos, podem-se citar:

✔ KDE : K Desktop Environment, ou simplesmente KDE, é um ambiente gráficomuito difundido no mundo GNU/Linux, pois apresenta um conjunto de aplicativosconsistentes para usuários e programadores, além de uma aparência agradávele modo de operação bastante familiar. Além do gerenciador de janelas, fazemparte do projeto KDE inúmeros aplicativos para gerenciamento de arquivos,controle de dispositivos, acesso à compartilhamentos de rede, gerenciamentodo sistema, acesso a Internet, além da suíte de escritório KOffice, o pacoteKDevelop para desenvolvimento de aplicativos gráficos, o editor de páginas paraa Internet Quanta, e muito mais. O KDE utiliza a biblioteca gráfica QT, mantidapelos desenvolvedores do KDE e muito utilizada para a construção de interfaces

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 58

Page 59: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

gráficas para aplicativos. Um dos pontos contra para o KDE é o seu elevadoconsumo de recursos de sistema, principalmente de memória RAM, o que otorna inutilizável em máquina que não tenha pelo menos 128 MB de memóriadisponível.

✔ GNOME : O GNOME, assim como o KDE, é constituído por um gerenciador dejanelas, e diversos aplicativos para o usuário, como gerenciador de arquivos,navegador de Internet, aplicativos para gerenciamento e configuração dosistema, navegação pela rede, jogos, etc. Além de aplicativos paradesenvolvimento de aplicações. O GNOME utiliza a biblioteca gráfica GTK+,muito utilizada por outros aplicativos, como o GIMP e o editor de páginas para aInternet Bluefish. Uma grande vantagem do GNOME sobre outros gerenciadoresde janelas é o seu sistema de atualização dinâmica das configurações, quepermite que qualquer configuração entre em vigor imediatamente à suaseleção, sem a necessidade de clicar em um botão "Aplicar" ou de reinicar oambiente gráfico, como acontece na maioria dos gerenciadores de janelas,incluindo o KDE.

✔ Enlightenment : O Enlightenment é um super gerenciador de janelasaltamente personalizável, bonito e com muitos efeitos visuais. O projetoEnlightenment produz, além do ambiente gráfico, diversas bibliotecas gráficas,como Imlib, FNLib e Imlib2, que são hoje utilizadas por muitos programas,inclusive outros ambientes gráficos, como o fluxbox.

✔ Blackbox : O Blackbox é um gerenciador de janelas minimalista, muito leve epequeno. Ao contrário de outros gerenciadores de janelas mais poderosos, elenão inclui nenhum outro aplicativo, motivo pelo qual ele é tão pequeno (algunspoucos KB). Sua configuração é toda feita através da edição de arquivos detexto, o que não é nem um pouco prático, mas tem lá as suas vantagens. Graçasà sua velocidade, o Blackbox é muito apreciado por usuários avançados, quenão gostam de dispender processamento e memória para rodar um ambientecom o KDE, GNOME ou Enlightenment. O Blackbox, quando em conjunto comoutros pequenos mini-aplicativos, torna-se um gerenciador de janelas muitobonito.

✔ Fluxbox : Baseado no Blackbox, o Fluxbox contém mais recursos que aquele,como suavizador de fontes e suporte nativo a transparências, sem deixar de serigualmente leve e simples. O Fluxbox é muito apreciado entre seus usuários,graças à perfeita união entre beleza e leveza deste excelente gerenciador dejanelas. 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 dejanelas que, ao contrário do KDE e GNOME, que se assemelham as interfaces doMicrosoft Windows, tem uma proposta bastante diferente. O objetivo principal

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 59

Page 60: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

que é gerenciar abertura e manipulação de janelas acontece de forma muitorápida e eficiente. O consumo de memória é bem pequeno. Ele ainda possuiuma facilidade de possuir atalhos para programas, sem prejudicar o consumo dememória 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. Comomencionado, o gerenciador de janelas padrão do Debian GNU/Linux é o GNOME (figura3.1.2). Ele não é apenas um simples gerenciador de janelas, e sim, um desktopcompleto, com diversos aplicativos de diferentes tipos disponíveis para a sua utilização(figura 3.1.3). Através do gerenciador de pacotes APT e Synapitc (versão gráfica do APT),podemos instalar e atualizar facilmente os aplicativos disponíveis, aumentando o númerode ferramentas para o seu desktop.

Figura 3.1.2 – Gerenciador de janelas GNOME.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 60

Page 61: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Figura 3.1.3 – Menu dos aplicativos disponíveis.

3.2 - Terminal Virtual (console)

Terminal (ou console) é o teclado e a tela conectados em seu computador. OGNU/Linux faz uso de sua característica multi-usuária usando terminais virtuais. Umterminal virtual é uma segunda sessão de trabalho completamente independente deoutras, que pode ser acessada no computador local ou remotamente, através deaplicativos de acesso remoto como o SSH, telnet, rlogin, etc.

No GNU/Linux em modo texto, você pode acessar outros terminais virtuaissegurando a tecla ALT e pressionando F1 a F6. Cada tecla de função corresponde a umnúmero de terminal do 1 ao 6 (o sétimo é usado por padrão pelo modo gráfico). OGNU/Linux possui mais de 63 terminais virtuais, mas apenas 6 estão disponíveisinicialmente por motivos de economia de memória RAM. Se você estiver usando o modográfico, você deve segurar as teclas CTRL+ALT enquanto pressiona uma das teclas de F1a F6.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 61

Page 62: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Para um administrador de sistemas, esta ferramenta é fundamental, pois muitastarefas são feitas no modo texto, alterando arquivos de configuração, executandocomandos manualmente, verificando os processos que estão carregados na memória,entre outros. Para executar um terminal virtual à partir do GNOME, clique no ícone que éindicado pela figura 3.1.4.

Figura 3.1.4 – ícone do terminal virtual

3.3 - Comandos básicos – nível 1

Neste item serão listados os comandos básicos para que você comece a interagircom o interpretador de comandos bash.

3.3.1 - ls : lista conteúdos de diretórios.

Sintaxe:

$ ls <opções>

Opções:• - l : escreve no formato de colunas simples.• - i : procede a saída para o arquivo pelo seu número serial (inode).• - R : lista os diretórios encontrados recursivamente.• - h : mostra o tamanho dos arquivos em KB, MB, GB.• - a : lista todos os arquivos inclusive os ocultos.• - F : insere um caracter após arquivos executáveis ('*'), diretórios ('/'), sockets

('=') e pipe ('|'). Seu uso é útil para identificar de forma fácil tipos de arquivosnas listagens de diretórios.

Exemplo:

$ ls /bin cdrom etc initrd lib mnt proc sbin sys usr vmlinuzboot dev home initrd.img media opt root srv tmp var

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 62

     Ícone para executar o terminal virtual

Page 63: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

3.3.2 - mkdir : cria diretórios.

Sintaxe:

$ mkdir <opções> <diretório>

Opções:• - p : cria toda a estrutura de diretórios passada como parâmetro.• --verbose : imprime uma mensagem para cada diretório criado.

Exemplo:

$ mkdir teste

3.3.3 - rmdir : remove diretórios vazios.

Sintaxe:

$ rmdir <opções> <diretório>

Opções:• - p : remove a estrutura de diretórios passadas como parâmetro, porém, o

último diretório passado como parâmetro deve estar vazio.• -- verbose : imprime uma mensagem para cada diretório apagado.

Exemplo:

$ rmdir teste

3.3.4 - rm : além de remover diretórios e estrutura de diretórios, tem como funçãoprincipal remover arquivos.

Sintaxe:

$ rm <opções> <diretório> <ou arquivo>

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 63

Page 64: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Opções:• - i : pergunta antes de remover, esta é ativada por padrão.• - v : mostra os arquivos/diretórios na medida que são removidos• - r : usado para remover arquivos em sub-diretórios. Esta opção também pode

ser usada para remover sub-diretórios.• - f : remove os arquivos sem perguntar.

Exemplo:

$ rm arquivo.txt

$ rm -r teste2

3.3.5 - cd : muda o diretório de trabalho atual. Caso não seja especificado nenhumdiretório, muda para o diretório pessoal do usuário.

Sintaxe:

$ cd <diretório>

Exemplo:

$ cd teste2

3.3.6 - pwd : mostra o nome e caminho do diretório atual.

Sintaxe:

$ pwd

Exemplo:

$ pwd/home/curso/teste2

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 64

Page 65: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

3.3.7 - clear : limpa o conteúdo do terminal e posiciona o cursos no início da tela.

Sintaxe:

$ clear

3.3.8 - man : este comando exibe as páginas de manual do comando ou programapassado como parâmetro. Elas trazem uma descrição básica desta comando ouprograma e detalhes sobre o funcionamento de uma determinada opção. Uma páginade manual é visualizada na forma de texto único com rolagem vertical. Tambémdocumenta parâmetros usados em alguns arquivos de configuração.

Sintaxe:

$ man <comando ou programa>

Opções de navegação:• q : sai da página 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 : Início da página.• h : ajuda sobre as opções da página de manual.• s : salva a página de manual em formato texto no arquivo especificado.

Exemplo:

$ man bash

3.3.9 - apropos : procura por comandos através da descrição. É útil quando precisamosfazer alguma coisa mas não sabemos qual comando usar. Ele faz sua pesquisa naspáginas de manual existentes no sistema e lista os comandos/programas queatendem a consulta.

Sintaxe:

$ apropos <comando ou programa>

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 65

Page 66: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Exemplo:

$ apropos bashbash (1) - GNU Bourne-Again Shellbash-builtins (7) - bash built-in commands, see bash(1)bashbug (1) - report a bug in bashbuiltins (7) - bash built-in commands, see bash(1)checkbashisms (1) - check for bashisms in /bin/sh scriptsgst-complete-0.8 (1) - do bash completion for gst-launch command-linesispellconfig (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 defaultdictionary.

Além dos comandos man e apropos, você pode conseguir mais informações sobreos comandos ou programas através dos comandos info e help. Outra maneira deconseguir informações mais rápidas sobre os parâmetros que o comando suporta éutilizando o parâmetro –-help.

Exemplo:

$ mkdir --helpUsage: mkdir [OPTION] DIRECTORY...Create the DIRECTORY(ies), if they do not already exist.

Argumentos obrigatórios para opções longas também o são para opções 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 <[email protected]>.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 66

Page 67: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Capítulo 4

Sistema de ArquivosSistema de Arquivos

Neste capítulo o usuário compreenderá as noções teóricas decomo funcionam as partições e os sistema de arquivossuportados pelo GNU/Linux.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 67

Page 68: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

4.1 - Partições

São divisões existentes no disco rígido que marcam onde começa e onde terminaum sistema de arquivos. Por causa destas divisões, nós podemos usar mais de umsistema operacional no mesmo computador (como o GNU/Linux, Microsoft Windows eDOS), ou dividir o disco rígido em uma ou mais partes para ser usado por um únicosistema operacional. Uma partição de disco não interfere em outras partições existentes,por estarem em áreas distintas no disco rígido.

Para particionar (dividir) o disco rígido em uma ou mais partes é necessário o usode um programa de particionamento. Os programas mais conhecidos paraparticionamento de discos no GNU/Linux são fdisk, cfdisk, Parted e o Disk Druid.Informações importantes para a criação e utilização das partições:

✔ Para gravar os dados, o disco rígido precisa ser particionado (usando o cfdisk ououtro particionador), deve-se escolher o tipo da partição, e depois tal partição deveser formatada com o um tipo de sistema de arquivos. Após criada e formatada, apartição será identificada como um dispositivo no diretório /dev e deverá sermontada para permitir seu uso no sistema;

✔ Quando se apaga uma partição, você estará apagando TODOS os arquivosexistentes nela;

✔ Em sistemas novos, é comum encontrar o Microsoft Windows instalado em umapartição que consome TODO o espaço do disco rígido. Uma solução para instalar oGNU/Linux é apagar esta partição e criar três com tamanhos menores (uma para oMicrosft Windows, uma para o GNU/Linux e outra para a Memória Virtual do Linux(SWAP);

4.2 - Sistema de Arquivos

Um sistema de arquivos é o método e a estrutura que um sistema operacionalutiliza para administrar a forma que os arquivos estão organizados em um disco oupartição. É criado durante a formatação da partição de disco. Após a formatação, toda aestrutura para leitura e gravação de arquivos e diretórios pelo sistema operacionalestará pronta para ser usada. Normalmente este passo é feito durante a instalação desua distribuição GNU/Linux. Cada sistema de arquivos tem uma característica emparticular mas seu propósito é o mesmo: Oferecer ao sistema operacional a estruturanecessária para ler/gravar os arquivos e diretórios. Entre os sistemas de arquivosexistentes pode-se citar:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 68

Page 69: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

4.2.1 – EXT2

Logo que foi inventado, o GNU/Linux utilizava o sistema de arquivos Minix (econseqüentemente uma partição Minix) para o armazenamento de arquivos. Com aevolução do desenvolvimento, foi criado o padrão EXT (Extended Filesystem) e logoevoluiu para o EXT2 (Second Extended Filesystem) que, apesar de obsoleto, ainda é ousado hoje em dia. Ele é rápido, não se fragmenta tão facilmente pois permite alocalização do melhor lugar onde o arquivo se encaixa no disco, etc. Isto é útil paragrandes ambientes multiusuário onde várias pessoas gravam/apagam arquivos o tempotodo.

4.2.2 – Journaling

O sistema de journaling grava qualquer operação que será feita no disco em umaárea especial chamada journal, assim se acontecer algum problema durante a operaçãode disco, ele pode voltar ao estado anterior do arquivo, ou finalizar a operação. Destaforma, o journal acrescenta ao sistema de arquivos o suporte a alta disponibilidade emaior tolerância a falhas. Após uma falha de energia, por exemplo, o journal é analisadodurante a montagem do sistema de arquivos e todas as operações que estavam sendofeitas no disco são verificadas.

Dependendo do estado da operação, elas podem ser desfeitas ou finalizadas. Oretorno do servidor é praticamente imediato (sem precisar a enorme espera da execuçãodo fsck em partições maiores que 10Gb), garantindo o rápido retorno dos serviços damáquina. Outra situação que pode ser evitada é com inconsistências no sistema dearquivos do servidor após a situação acima, fazendo o servidor ficar em estado singleuser e esperando pela intervenção do administrador. Alguns tipos de sistema de arquivosutilizam este recurso atualmente, como por exemplo, o EXT3 e o ReiserFS.

4.2.3 – EXT3

O sistema de arquivos EXT3 faz parte da nova geração extended file system doGNU/Linux, sendo que seu maior benefício é o suporte a journaling. O uso deste sistemade arquivos comparado ao EXT2, na maioria dos casos, melhora o desempenho dosistema de arquivos através da gravação seqüencial dos dados na área de metadados eacesso mhash a sua árvore de diretórios.

A estrutura da partição EXT3 é semelhante a EXT2, o journaling é feito em umarquivo chamado .journal que fica oculto pelo código EXT3 na partição (desta forma elenão poderá ser apagado, comprometendo o funcionamento do sistema). A estruturaidêntica da partição EXT3 com a EXT2 torna mais fácil a manutenção do sistema, já quetodas as ferramentas para recuperação EXT2 funcionarão sem problemas.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 69

Page 70: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

4.2.4 – ReiserFS

O ReiserFS é um sistema desenvolvido especialmente para o GNU/Linux, muitoconfiável e surpreendentemente rápido, e em muitos casos, mais rápido até mesmo quesistemas sem suporte a journaling. O ReiserFS, por não utilizar blocos de tamanho fixo,mas ajustar seu tamanho de acordo com o arquivo, evita os problemas de desperdício deespaço comuns em outros sistemas de arquivos. Possui suporte a arquivos maiores que 2GB e o acesso a árvore de diretórios é muito mais rápido. Utiliza uma eficiente estruturade dados chamada balanced tree (árvore equilibrada), que trata toda a partição como sefosse uma única tabela de banco de dados contendo diretórios, arquivos e arquivos demeta-data, o que aumenta muito o desempenho de aplicativos que trabalham comarquivos pequenos, porque estes são lidos de uma só vez, em apenas um ciclo de I/O doHD. Sua versão 3 não trabalha perfeitamente com o sistema de arquivos de rede NFS(Network File System). Existem alguns patches para resolver o problema, mas eles não oresolvem completamente. O criador do ReiserFS é Hans Reiser. Atualmente o projeto épatrocinado pela SuSE e mantido pela empresa NameSys. Aguarda-se o lançamentooficial da versão 4 do ReiserFS, o Reiser4, que foi totalmente reescrito e possui umdesempenho superior à da versão 3.

4.2.5 – JFS

Criado pela IBM para uso em servidores corporativos, teve seu código liberado. Osistema de arquivos JFS também usa a estrutura I-node para armazenar a localização dosblocos de cada arquivo nas estruturas físicas do disco. A versão JFS2 armazena esses I-nodes em uma árvore binária para acelerar o acesso a essas informações. Esses blocospodem variar de 512 a 4096 bytes, e a alocação dos I-nodes é feita conforme vai sendonecessário.

4.2.6 – XFS

Desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizadoo código fonte, o XFS possui vários patches e alguns bugs, mas é um sistema de arquivosmuito rápido na gravação e possui um desfragmentador para arquivos.

4.2.7 – SWAP (Memórial Virtual)

Este tipo de partição é usada para oferecer o suporte a memória virtual aoGNU/Linux em adição a memória RAM instalada no sistema. Somente os dados namemória RAM são processados pelo processador, por ser mais rápida.

Desta forma, quando você está executando um programa e a memória RAMcomeça a encher, o GNU/Linux move automaticamente os dados que não estão sendousados para a partição SWAP, e libera a memória RAM para continuar carregando osdados necessários pelo programa que está sendo carregado. Quando os dados movidospara a partição SWAP são solicitados, o GNU/Linux move os dados da partição SWAP para a

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 70

Page 71: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

memória. Por este motivo a partição SWAP também é chamada de área de troca oumemória virtual. A velocidade em que os dados são movidos da memória RAM para apartição é muito alta.

4.2.8 – Qual Sistema de Arquivos devo Utilizar?

Falar qual sistema de arquivos você deve usar é uma missão quase impossível, écomo falar de distribuições GNU/Linux: alguém que adora o Slackware com certeza só vairecomendar o Slackware, e alguém que adora o Debian com certeza só vai recomendar oDebian, e assim por diante. Em se tratando de sistemas de arquivos, a recomendação é que você escolha, entre osque possuem os recursos que você precisa, aquele que apresentar o melhordesempenho.

Nesse caso, a menos que você vá utilizar NFS, o sistema de arquivos mais indicadoé o ReiserFS, que possui comprovadamente um desempenho muito superior ao de outrossistemas de arquivos. Se for utilizar NFS, uma vez que existe o problema decompatibilidade do ReiserFS, pode-se utilizar o XFS, ou o EXT3.

4.3 - Identificação de Discos e Partições

No GNU/Linux, os dispositivos existentes em seu computador (como discos rígidos,disquetes, tela, portas de impressora, modem, etc) são identificados por um arquivo nodiretório /dev. A identificação de discos rígidos no GNU/Linux é feita da seguinte forma:

/dev/hda1 | ||| | |||_ Número que identifica o número da partição no disco rígido. | || | ||_ Letra que identifica o disco rígido (a=primeiro, b=segundo, etc...). | | | |_ Sigla que identifica o tipo do disco rígido (hd=ide, sd=SCSI, xd=XT). | |_ Diretório onde são armazenados os dispositivos existentes no sistema.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 71

Page 72: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Abaixo algumas identificações de discos e partições em sistemas Linux:

✔ /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 partição do primeiro HD IDE. ✔ /dev/hdb - Segundo HD na primeira controladora IDE do micro (primary slave). ✔ /dev/hdb1 - Primeira partição do segundo HD IDE. ✔ /dev/sda - Primeiro HD na primeira controladora SCSI. ✔ /dev/sda1 - Primeira partição do primeiro HD SCSI. ✔ /dev/sdb - Segundo HD na primeira controladora SCSI. ✔ /dev/sdb1 - Primeira partição 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 identificação de discos rígidos podem ir além de hdb, em algumasmáquinas, por exemplo, a unidade de CD-ROM podem estar localizada em /dev/hdg(Primeiro disco - quarta controladora IDE). É importante entender como os discos epartições são identificados no sistema, pois será necessário usar os parâmetros corretospara montá-los.

4.4 - Pontos de montagem

Antes de um sistema de arquivos poder ser utilizado, ele necessita ser montado. Osistema operacional executa diversas verificações para estar seguro de que tudo estáfuncionando bem. Uma vez que todos os arquivos no GNU/Linux estão em uma únicaárvore de diretórios, a operação de montagem fará com que o novo sistema de arquivospareça um subdiretório existente em algum sistema de arquivos já montado.

Como será visto em outro curso, o comando para montagem de um sistema dearquivos possui dois argumentos. O primeiro é o arquivo de dispositivo correspondenteao disco ou partição que contenha o sistema de arquivos. O segundo é o diretório sob oqual ele será montado. Por exemplo, após a execução do comando, dizemos então que /dev/hda2 está montado em /mnt/backup.

Para utilizar estes sistemas de arquivos, pode-se acessar estes diretóriosexatamente da mesma forma que qualquer outro, como veremos mais adiante. Éimportante ressaltar a diferença entre o dispositivo /dev/hda e o o diretório montado /mnt/backup. Enquanto o primeiro dá acesso aos dados brutos do disco, ilegíveis pelosusuários e apenas pelo kernel, o segundo permite o acesso aos dados legíveis pelosusuários, como arquivos e diretórios dos mais diversos fins. O diretório montado échamado ponto de montagem.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 72

Page 73: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Capítulo 5

Arquivos e DiretóriosArquivos e Diretórios

Neste capítulo o usuário aprenderá como os arquivos sãotratados pelo GNU/Linux, seus tipos e a estrutura de diretóriospadrão do sistema.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 73

Page 74: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

5.1 - Arquivos

Nos sistemas *NIX, tudo o que pode ser manipulado pelo sistema operacional érepresentado sob a forma de arquivo, incluindo aí diretórios, dispositivos e processos. Oarquivo é a estrutura mais básica e mais importante em um sistema GNU/Linux.

O GNU/Linux segue o padrão POSIX, o mesmo utilizado por outros sistemasoperacionais derivados do UNIX. Dessa forma, conhecendo o GNU/Linux você não terádificuldades em operar outros sistemas como HPUX, FreeBSD, Solaris, etc., que assimcomo o GNU/Linux são baseados no UNIX.

Também devido ao grande número de distribuições GNU/Linux que existem, foramdeterminados padrões sobre a sua estrutura e a forma dele manipular os arquivos. Essespadrões constituem a Linux Standard Base, ou simplesmente LSB. A LSB contém todas asespecificações que um sistema GNU/Linux deve adotar, para manter um nível decompatibilidade entre diferentes distribuições.

Costuma-se definir arquivo como o lugar onde gravamos nossos dados. Em outrossistemas operacionais é feita uma distinção entre arquivos, diretórios, dispositivos eoutros componentes do sistema. No GNU/Linux, entretanto, tudo aquilo que pode sermanipulado pelo sistema é tratado como arquivo.

Mas, se tudo é arquivo, como o sistema operacional faz a distinção entre arquivoregular, diretório, dispositivo, processo, etc? Muito simples: todo arquivo tem o que échamado cabeçalho, que contém informações como: tipo, tamanho, data de acesso,modificação, etc. Através desse cabeçalho o GNU/Linux sabe então quando se trata dearquivo regular, diretório, dispositivo, e assim por diante.

5.2 - Tipos de Arquivos

Os tipos de arquivos existentes num sistema GNU/Linux são os seguintes:

✔ Arquivo regular : Tipo comum que contém dados somente. Os arquivos regularespodem ser dos mais variados tipos, guardando os mais diferentes tipos deinformações. Existem arquivos de áudio, vídeo, imagem, texto, etc. Os arquivos sedividem em 2 (duas) categorias principais:

✔ Binários : Arquivos binários são compostos por bits 1 e 0 e só podem serinterpretados pelo sistema operacional, sendo incompreensíveis por nóshumanos. Se um arquivo binário for aberto por um editor de textos, serãoexibidos vários símbolos estranhos. Arquivos de música, vídeos, imagens ebibliotecas são exemplos de arquivos binários;

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 74

Page 75: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Texto : Arquivos do tipo texto são compostos por informações em forma detexto, que podem ser entendidas pelo usuário comum. Arquivos desse tiponão necessariamente contém texto propriamente dito. Quando se diz queum arquivo é do tipo texto, estamos querendo dizer que se o abrirmos numeditor de texto, serão exibidos informações legíveis.

✔ Diretórios : Os diretórios são utilizados para separar um grupos de arquivos. Umdiretório pode conter arquivos e outros diretórios, que serão chamadossubdiretórios;

✔ Dispositivos : Todo componente de hardware instalável é chamado dispositivo.Placas de vídeo, som, rede, drives de CD-ROM, tudo o que se liga na interface USB,memória RAM, são dispositivos. Os dispositivos podem ser:

✔ De Bloco : Dispositivos de bloco utilizam buffer para leitura/gravação.Geralmente são unidades de disco, como HD's, CD's, etc;

✔ De Caracter : Esses dispositivos não utilizam buffer para leitura/gravação. Amaioria dos dispositivos PCI e outros dispositivos como impressoras, mouse,etc. são do tipo caracter;

✔ Pipes : Utilizados pelos processos do sistema para comunicarem-se entre si;

✔ Sockets : Utilizados nos processos de comunicação em rede;

✔ Links : São atalhos. Servem para fazer referância a outro arquivo localizado emoutro local. Podem ser de dois tipos:

✔ Simbólicos : Fazem referência ao arquivo através de seu endereço lógico nodisco ou memória. São os links mais comuns;

✔ Absolutos : Fazem referência ao arquivo através do seu endereço físico nodisco rígido.

Arquivos podem conter diferentes tipos de informações. Cada tipo de informaçãorequer um método específico de trabalho. Assim, um arquivo de imagem não pode serlido por um programa de reprodução de áudio, porque os dados de um arquivo deimagem são organizados de forma totalmente diferente da de um arquivo de áudio, e oprograma em questão só é capaz de lidar com arquivos de áudio.

Tendo isso em vista, é necessário que o sistema operacional e os demaisprogramas possam diferenciar os diversos tipos de arquivos disponíveis, para evitar queum programa tente manipular um tipo de arquivo que não suporta. O GNU/Linux faz essa diferenciação através da leitura do cabeçalho do arquivo. Assim, aextensão do arquivo geralmente não importa para o sistema operacional, mas é usadatão somente para fácil identificação do usuário, motivo pelo qual é muito comumencontrarmos arquivos sem extensão no GNU/Linux.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 75

Page 76: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

5.3 - Nomes de Arquivos

Os nomes de arquivos no GNU/Linux podem ter até 255 caracteres, podendoutilizar espaços e acentos. Há exceção somente quanto ao uso dos caracteres especiais'/', '\', '|', ' " ', '*', '?', '<', '>', '!', '(', ')', '`'.

Um ponto muito importante que deve ser frisado é que o GNU/Linux é casesensitive, ou seja, diferencia letras maiúsculas de minúsculas. Sendo assim, os arquivosfile.iso e File.iso são diferentes para o GNU/Linux. Então, quando referir-se a umarquivo, tenha a certeza de escrever com a capitulação correta.

Os arquivos também podem ser ocultos, que contém um ponto '.' antes do seunome, e normalmente aparecem no diretório pessoal de cada usuário, como por exemploo arquivo '.bash_profile' .

5.4 - Diretórios

Os diretórios, como você deve saber, contém arquivos ou outros diretórios. Todosistema operacional possui o que é chamado árvore de diretórios, que é uma estruturabásica de diretórios principais com seus respectivos subdiretórios.

No GNU/Linux a árvore de diretórios é particularmente muito bem organizada, e osarquivos são divididos em categorias. Assim, arquivos executáveis (programas) sãoagrupados num determinado diretório, enquanto bibliotecas são arquivados em outro, earquivos temporários em outro, e assim por diante. Isso garante uma boa organização dosistema e traz também uma grande praticidade, como vocês poderão ver mais adiante.

5.5 – Estrutura de Diretórios

Os sistemas GNU/Linux possuem um padrão rígido e específico a respeito daorganização hierárquica dos diretórios, definido pela Filesystem Hierarquy Standard, ousimplesmente FHS, constante da LSB, que diferem totalmente da estrutura de diretóriosdo Microsoft Windows. Basicamente, no Microsoft Windows temos os arquivos do sistemaconcentrados nas pastas C:\Windows e C:\Arquivos de programas e você pode criar eorganizar suas pastas da forma que quiser. No GNU/Linux é basicamente o contrário. Odiretório raiz está tomado pelas pastas do sistema e espera-se que você armazene seusarquivos pessoais dentro da sua pasta no diretório /home. Nada impede que você criemais pastas no diretório raiz para armazenar seus arquivos. Apesar de ser recomendável

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 76

Page 77: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

em termos de organização e segurança, você não é obrigado a concentrar seus arquivosdentro do seu diretório de usuário. Nada impede que você autentique-se como root, crieuma pasta /arquivos, abra o menu de permissões para que seu usuário geral tenhapermissão para acessá-la e a utilize para guardar seus arquivos, por exemplo.

Mas, as diferenças não param por aí. Para onde vão os programas que sãoinstalados se não existe uma pasta central como a C:\Arquivos de programas? E paraonde vão os arquivos de configuração se o GNU/Linux não possui nada semelhante aoregistro do Microsoft Windows? Veremos isso neste capítulo, mas a primeira coisa comque você precisa se habituar é que no GNU/Linux os discos e partições não aparecemnecessariamente como unidades diferentes, como o C:\, D:\, e E:\  no MicrosoftWindows. Tudo faz parte de um único diretório, chamado diretório raiz, ou '/'. Dentrodeste diretório temos não apenas todas as partições de disco, mas também o CD-ROM,drive de disquete e outros dispositivos. Dentro da estrutura do sistema de arquivos, cadaum dos diretórios possui uma função específica, como vemos na lista abaixo.

/-- |-- bin |-- boot |-- dev |-- etc |-- home |-- lib |-- media |-- mnt |-- opt |-- proc |-- root |-- sbin |-- srv |-- sys |-- tmp |-- usr |-- var

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 77

Page 78: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ /bin : Contém arquivos executáveis (binários) de comandos essenciais pertencentesao sistema e que são usados com frequência pelos usuários e pelo administrador dosistema, como por exemplo: su, tar, pwd, rm, cat, cp, entre outros.

✔ /boot : Este diretórios contém tudo que é necessário para carregar o sistema, excetoos arquivos de configuração. Contém arquivos estáticos relacionados à inicialização dosistema, como o Kernel, e o boot-loader GRUB ou LILO.

✔ /dev : Contém arquivos de dispositivos de entrada e saída (I/O) como por exemplo,o CD-ROM (/dev/cdrom), o disquete (/dev/fd0), e o HD (/dev/hda). Todo omapeamento para o hardware do sistema será encontrado neste diretório.

✔ /etc : Contém os arquivos de configuração do sistema, substituindo de certa forma oregistro do Microsoft Windows. A vantagem é que enquanto o registro é uma espéciede caixa preta, os scripts do diretório /etc são desenvolvidos justamente para facilitara edição manual. É verdade que na maioria dos casos isto não é necessário, mas apossibilidade continua aí. Os arquivos recebem o nome dos programas seguidosgeralmente da extensão .conf. Normalmente não contém binários.

✔ /etc/network : Contém os arquivos de configuração de rede.

✔ /etc/skel : Contém os arquivos que serão gravados no diretório pessoalde um novo usuário.

✔ /etc/X11 : Contém os arquivos de configuração do servidor gráfico.

✔ /home : Este diretório é nitidamente um sistema de arquivos específico dos usuárioslocais, sendo a localização sugerida para os diretórios locais dos usuários. Suaestrutura pode diferir de máquina para máquina. Em sistemas pequenos, cadadiretório de usuário é um dos subdiretórios debaixo do /home, como por exemplo: /home/curso, /home/curso2, etc. Em sistemas maiores, (principalmente quando osdiretórios do /home são compartilhados entre várias máquina via rede) é útilsubdividir os diretórios locais. A subdivisão pode ser implementada utilizandosubdiretórios tais como /home/apoio, /home/desenvolvimento, etc.

✔ /lib : Este diretório contém aquelas bibliotecas compartilhadas que são necessáriaspara inicializar o sistema e executar comandos no sistema de arquivos raiz, maisespecificamente os comandos contidos em /bin e /sbin. Pode conter tambémmódulos do kernel, localizados em /lib/modules.

✔ /lib<nome> : Em sistemas que suportam mais de um formato de binários, eportanto, necessitem de bibliotecas separadas, podem existir uma ou mais variantesdo diretório /lib. Isso é comumente utilizado para fornecer suporte a 64 bits ou 32bits em sistemas que suportam múltiplos formatos de binários, mas requerembibliotecas com o mesmo nome. Neste caso, /lib32 e /lib64 seriam os diretórios debibliotecas, e /lib seria um link para um deles.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 78

Page 79: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ /media : Este diretório contém os subdiretórios que são utilizados como pontos demontagem para mídias removíveis, como por exemplo disquetes, drives CD-ROM, ZIPdrives, gravadores de CD/DVD, dispositivos USB, etc.

✔ /mnt : Este diretório contém os subdiretórios que são utilizados como pontos demontagem para sistemas de arquivos temporários, que podem ser partições de outrossistemas operacionais da máquina, como por exemplo, um sistemas de arquivosFAT32 ou NTFS do Microsoft Windows.

✔ /opt : Este diretório é reservado para a instalação de aplicativos adicionais. Nelepodem existir subdiretórios que abrigam os arquivos estáticos destas aplicações,tendo cada subdiretório um nome que descreva o pacote de software contido nele.Podem existir os subdiretórios /opt/bin, /opt/doc, /opt/include, /opt/info,/opt/lib e /opt/man, os quais são reservados para uso do administrador do sistemalocal.

✔ /proc : Este diretório é um sistema de arquivos virtual utilizado para manipularinformações de processos do sistema. É recomendada sua utilização para oarmazenamento e obtenção de informações de processos, assim como outrasinformações do Kernel ou da memória.

✔ /root : Este é um diretório opcional no GNU/Linux. O diretório local da conta dousuário root pode ser determinado por preferências, porém /root é a sua localizaçãopadrão.

✔ /sbin : Este diretório contém comandos essenciais para inicializar, restaurar,recuperar e reparar o sistema, complementando os comandos encontrados em /bin.Comandos como getty, reboot, shutdown, ifconfig e fdisk são encontrados nestediretório.

✔ /srv : Este diretório contém os arquivos de aplicações como Apache, FTP e CVS. Aindapouco usado por ter sido implementado nas versões mais recentes do FHS.

✔ /tmp : Este diretório é utilizado para arquivos temporários gerados por programas,podendo estar no disco rígido ou na memória RAM. Os programas não devem assumirque quaisquer arquivos ou diretórios em /tmp sejam preservados entre execuções dosmesmos. Recomenda-se que o conteúdo de /tmp seja apagado sempre que o sistemafor inicializado (padrão).

✔ /usr : O diretório /usr é a segunda maior seção do sistema de arquivos. /usr écompartilhável e somente de leitura. Isto significa que o /usr pode ser compartilhadoentre várias máquinas que utiliza GNU/Linux. Suas subdivisões consistem na seguinteestrutura:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 79

Page 80: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ /usr/bin : Contém a maioria dos comandos dos usuários. Este é odiretório principal de comandos executáveis no sistema. Executáveis deprogramas como python, perl, clear e gcc encontran-se neste diretório.

✔ /usr/include : Contém todos os arquivos de cabeçalhos (headers) deuso geral do sistema para programação em linguagem C/C++.

✔ /usr/lib : Contém arquivos-objeto, bibliotecas de programas internosque não são indicados para serem executados diretamente por usuáriosou shell scripts. Podem existir subdiretórios em /usr/lib, os quais sãoutilizados por aplicações, de forma que todos os dados dependentes daarquitetura usados exclusivamente pela aplicação, devem estar dentrodestes subdiretórios.

✔ /usr/local : Este subdiretório existe para o uso do administrador desistemas, quando instala softwares localmente. Necessita ficar a salvo deser sobrescrito quando o software do sistema é atualizado. Pode serusado por programas e dados que são compartilháveis entre um grupo demáquinas. Também possui subdiretórios importantes ao sistema:

✔ /usr/local/bin : Binários (executáveis) locais.

✔ /usr/local/games: Executáveis de jogos.

✔ /usr/local/include : Arquivos de cabeçalho (header) C.

✔ /usr/local/lib : Bibliotecas locais.

✔ /usr/local/man : páginas de manual online locais.

✔ /usr/local/sbin : Binários (executáveis) de sistema locais.

✔ /usr/local/share : Hierarquia local independente daarquitetura.

✔ /usr/local/src : código-fonte local.

✔ /usr/sbin : Contém alguns binários (executáveis) não essenciais usadosexclusivamente pelo administrador do sistema.

✔ /usr/share : Contém arquivos de dados somente leitura queindependem da arquitetura. Este diretório é indicado para sercompartilhável entre todas as plataformas de arquitetura de um dadosistema operacional. Ele também contém subdiretórios importantes aosistema, e os principais são:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 80

Page 81: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ /usr/share/man : Páginas de manual online.

✔ /usr/share/misc : Miscelânea de dados independentes daarquitetura.

✔ /usr/share/dict : Lista de palavras (opcional).

✔ /usr/share/doc : Arquivos de documentação (opcional).

✔ /usr/share/games : Arquivos de dados estáticos para /usr/games (opcional).

✔ /usr/share/info : Diretório primário do sistema GNU Info(opcional).

✔ /usr/share/locale : Informações de Locale (opcional).

✔ /usr/share/nls : Catálogo de mensagens para NLS(suporte à língua nativa) (opcional).

✔ /usr/share/sgml : Dados de SGML e XML (opcional).

✔ /usr/share/terminfo : Diretórios para o banco de dadosde terminfo (opcional)

✔ /usr/share/zoneinfo : Informação e configuração parazoneinfo (opcional).

✔ /usr/lib<nome> : Tem o mesmo papel de /usr/lib para um formatode binário (executável) alternativo.

✔ /usr/src : Contém o código-fonte do kernel do GNU/Linux. Qualqueroutro código-fonte não local também deve localizar-se neste diretório.

✔ /var: Este diretório contém arquivos de dados variáveis. Inclui arquivos e diretóriosem fila de execução, dados de ordem administrativa e de login, além de arquivostemporários e transitórios. Algumas partes de /var não são compartilháveis entrediferentes sistemas. Por exemplo, /var/log, /var/lock e /var/run. outras partespodem ser compartilhadas, notadamente em /var/mail, /var/cache/man, /var/cache/fonts e /var/spool/news. Ele também contém subdiretórios importantesao sistema, e os principais são:

✔ /var/account : Este diretório mantém o log dos processos ativos e osdados compostos de uso dos processos (opcional).

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 81

Page 82: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ /var/cache : Este diretórios é indicado para armazenar dados deaplicações em cache. Pode conter os seguintes subdiretórios:

✔ /var/cache/fonts : Fontes geradas localmente (opcional).

✔ /var/cache/man : Páginas de manual formatadaslocalmente (opcional).

✔ /var/cache/<pacote> : dados de cache de um pacoteespecífico.

✔ /var/crash : Este diretório contém depósitos de sistemas quebrados(crashed).

✔ /var/games : Este diretório contém quaisquer dados variáveisrelacionados a jogos que estão em /usr (opcional).

✔ /var/lib : Contém informações sobre o estado das aplicações.Informação sobre o estado são dados que o programa modifica enquantoestá rodando, e que pertencem a uma máquina específica. Os seguintesdiretórios podem estar contidos nele:

✔ /var/lib/misc : Dados de estado de aplicações(miscelânea).

✔ /var/lib/hwclock : Contém o arquivo adjtime, que possuias informações de data e hora do sistema (opcional). Nadistribuição Debian este arquivo fica no diretório /etc.

✔ /var/lib/<editor> : Arquivos de backup e estado deeditores de texto. Por exemplo, o Emacs guarda este tipo deinformação em /var/lib/emacs/lock.

✔ /var/lib/<pacote> : Dados de estado para pacotes esubsistemas (opcional).

✔ /var/lib/xdm : Dados variáveis do Xdm (X displaymanager) (opcional). Como o Debian utiliza o GDM (GNOMEDisplay Manager) como padrão, este diretório é trocado por /var/lib/gdm.

✔ /var/lock : Contém em sua estrutura os arquivos de bloqueio.

✔ /var/log : Contém uma miscelânea de arquivos de agenda (logs). Amaioria dos logs de sistema e de aplicações são escritos neste diretórioou em seus subdiretórios.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 82

Page 83: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ /var/log/lastlog : Registro do último acesso de cadausuário.

✔ /var/log/messages : Mensagens do sistema syslogd.

✔ /var/log/wtmp : Registro dos os acessos dos usuários.

✔ /var/mail : Contém as caixas postais de e-mails dos usuários, que sãoarquivos no formato mailbox do UNIX, com o nome do usuário.

✔ /var/opt : Contém dados variáveis para os aplicativos instalados em /opt. Cada aplicativo instalado em /opt que necessite, deve criar umsubdiretório em /var/opt, no qual ficarão seus dados variáveis.

✔ /var/run : Contém arquivos variáveis em tempo de execução, cominformações de sistema, descrevendo-o desde que foi inicializado.Geralmente os arquivos neste subdiretório devem ser deletados(removidos ou truncados) ao começar o processo de inicialização.

✔ /var/spool : Subdiretório de fila de trabalhos para processamentoposterior. /var/spool é tradicionalmente utilizado para a informaçãolocal de máquina que é enviada para processamento posterior. No geral,estes dados são apagados após terem sido processados. Ele pode contero seguintes subdiretórios:

✔ /var/spool/lpd : Diretório de dados para impressora(opcional).

✔ /var/spool/mqueue : Fila de saída de e-mail (opcional).

✔ /var/spool/news : Diretório de dados de notícias(opcional).

✔ /var/spool/rwho : Arquivos rwhod (opcional).

✔ /var/spool/uucp : Diretório de dados do UUCP (opcional).

✔ /var/tmp : Contém arquivos temporários que são preservados entrereinicializações do sistema. O subdiretório /var/tmp é disponibilizadopara programas que requerem arquivos ou diretórios temporários quedevem ser preservados entre reinicializações do sistema. Portanto, osdados armazenados em /var/tmp são mais persistentes que aquelesarmazenados em /tmp.

✔ /var/yp : Contém dados variáveis para o Sistema de Informações deRede (NIS), também conhecido como Sun Yellow Pages (YP).

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 83

Page 84: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

5.6 – Caminhos

Como em todo sistema de arquivos de qualquer sistema operacional, a referênciaa um arquivo/diretório deve ser feita através do seu caminho. Um caminho é formado daseguinte forma: [diretório raiz] [diretório 1] [diretório 2]...[diretório n][arquivo]. Cada um desses itens são separados por um símbolo, que varia de acordocom o sistema operacional. No GNU/Linux, o diretório raiz chama-se / (barra), e osímbolo utilizado para separar os itens é a / também. Um exemplo de caminho seria:

/home/curso/doc/linux/gnu.sxw

Um caminho informa onde podemos encontrar um arquivo ou diretório. No casoacima, podemos interpretar esse comando da seguinte forma: o arquivo gnu.sxw estádentro do diretório linux, que está dentro do diretório doc, que está dentro do diretóriocurso, que está dentro do diretório home, que está no diretório raiz / .

Outra forma de interpretação seria: para acessar o arquivo gnu.sxw, a partir dodiretório raiz / , acesse o diretório home, depois o diretório curso, depois o diretóriodoc, e depois o diretório linux. O arquivo estará lá.

5.7 – Notações de diretórios do sistema

Alguns diretórios possuem notações especiais, algo que poderíamos chamar de"atalho" para o acesso. Veja abaixo a lista dessas notações:

✔ ~ : Ao referir-se ao diretório ~ (til), o sistema entende como o diretório pessoaldo usuário, ou seja, /home/[usuário], onde [usuário] é o nome de login dousuário atual. Dessa forma, se você estiver logado como curso, o diretório~/img será interpretado como /home/curso/img.

✔ - : O kernel Linux armazena um histórico dos diretórios que acessamos. O - (hífen) refere-se ao último diretório acessado.

✔ . : O símbolo . (ponto) refere-se ao diretório atual, ou seja, aquele em queestamos trabalhando;

✔ .. : O .. (ponto ponto) refere-se ao diretório acima do qual estamos. Porexemplo, considerando o diretório /home/curso, o diretório acima de curso é /home, e o diretório acima de /home é /.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 84

Page 85: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Capítulo 6

Utilizando o Interpretador deUtilizando o Interpretador decomandos (shell)comandos (shell)

Neste capítulo o usuário compreenderá o que é e para que serveum interpretador de comandos, conhecendo seus recursos maisutilizados.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 85

Page 86: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

6.1 - O interpretador de comandos

Também conhecido como shell, é o programa responsável em interpretar asinstruções enviadas pelo usuário ao sistema operacional (kernel), como por exemplo,criação e remoção de diretórios, listagem de diretórios, criação e remoção de arquivos,etc. É a principal ligação entre o usuário, os programas, e o kernel. Ele executa oscomando lidos do dispositivo de entrada padrão (teclado) ou de um arquivo executável. OGNU/Linux possui diversos tipos de interpretadores de comando, e entre eles, os demaior destaque são o bash (Bourbe Again Shell), csh (C Shell), tcsh (Turbo C Shell), ksh(The Korn Shell). Entre eles, o mais usado é o bash. Os comando podem ser enviados deduas maneiras para o interpretador:

✔ Interativa : os comandos são digitados no prompt e passados ao interpretadorde comandos um a um. Neste modo, o computador depende do usuário paraexecutar uma tarefa, ou o próximo comando.

✔ Não-interativa : são usados scripts, ou seja, arquivos criados pelo usuário comuma sequência de comandos definidos por este, que seguem uma determinadalógica, para executar determinada tarefa que precisa ser automatizada.

O bash é um interpretador de comandos muito customizável, e para exemplificaruma pequena porção 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 usuário digitar:

$ ls tes<TAB>

O bash localizará todos os arquivos que iniciam com “tes” e completará o restantedo nome. Caso o bash encontre mais de uma expressão que satisfaça a pesquisa, ounenhuma, é emitido um beep. Se o usuário pressionar novamente a tecla <TAB>, o bashlistará as diversas possibilidades que satisfazem a pesquisa. Este recurso tambémfunciona sem problemas para comandos internos.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 86

Page 87: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

6.2 - Aviso de comando (prompt)

Aviso de comando (prompt), é a linha mostrada na tela para digitação decomandos que serão passados ao interpretador de comandos para a sua execução. Aposição onde o comando será digitado é marcado por um traço piscante chamado cursor.Tanto em shells texto como em gráficos é necessário o uso do cursor para sabermosonde iniciar a digitação de textos e nos orientarmos quanto a posição na tela. O aviso decomando do usuário root é identicado pela caractere “#” (tralha, cerquilha), e o aviso decomando de usuários é identificado pelo caractere “$”. Isto é padrão em sistemas Unix.

6.3 - Curingas (Wildcards)

Curingas (ou referência global) é um recurso usado para especificar e potencializarpesquisas feitas para um ou mais arquivos ou diretórios do sistema de uma só vez. Esteé um recurso permite que você faça a filtragem do que será listado, copiado, apagado,etc. São usados 4 tipos de curingas no GNU/Linux:

✔ * - Faz referência a qualquer nome completo/restante, qualquer número de vezes,de um arquivo/diretório.

Exemplo:

$ ls /home/curso/teste/*.txtteste10.txt teste1.txt teste3.txt teste5.txt testeA.txt testeC.txt testeE.txtteste11.txt teste2.txt teste4.txt teste6.txt testeB.txt testeD.txt testeF.txt

Lista todos os arquivos que tiverem a extensão .txt no diretório /home/curso/teste.

$ ls teste*teste10.txt teste1.txt teste3.txt teste5.txt testeA.txt testeC.txt testeE.txtteste11.txt teste2.txt teste4.txt teste6.txt testeB.txt testeD.txt

Lista todos os arquivos que tiverem o prefixo teste.

$ ls teste*txtteste10.txt teste1.txt teste3.txt teste5.txt testeA.txt testeC.txt testeE.txtteste11.txt teste2.txt teste4.txt teste6.txt testeB.txt testeD.txt

Lista todos os arquivos que tiverem o prefixo teste e terminarem com a string txt.

$ ls *5*teste5.txt

Lista todos os arquivos que tiverem string 5.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 87

Page 88: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ ? - Faz referência a um caracter em uma posição específica.

Exemplo:

$ ls teste?.txtteste1.txt teste3.txt teste5.txt testeA.txt testeC.txt testeE.txt teste2.txtteste4.txt teste6.txt testeB.txt testeD.txt testeF.txt

Lista todos os arquivos que tiverem um único caracter depois da string teste, e quetiverem a extensão .txt.

$ ls teste??.txtteste10.txt teste11.txt

Lista todos os arquivos que tiverem dois caracteres depois da string teste, e que tiverema extensão .txt.

$ ls /bin/??/bin/cp /bin/dd /bin/df /bin/ed /bin/ln /bin/ls /bin/mt /bin/mv /bin/ps /bin/rm/bin/sh /bin/su

Lista todos os arquivos que tiverem nome com apenas dois caracteres no diretório /bin.

$ ls /etc/???.conf/etc/fam.conf /etc/ntp.conf /etc/pam.conf /etc/ucf.conf /etc/vnc.conf /etc/xmp.conf

Lista todos os arquivos que tiverem nome com três caracteres e a extensão .conf nodiretório /etc.

✔ [] - O curinga "[...]" define um padrão que casa com o conjunto de caracteresentre "[" e "]". O conjunto ainda pode conter intervalos de caracteres, como porexemplo "1-2" ou "a-z" e também caracteres que não podem fazer parte do conjunto,indicados por "^" ou "!".

Exemplo:

$ ls teste[0-9].txtteste1.txt teste2.txt teste3.txt teste4.txt teste5.txt teste6.txt

Lista todos os arquivos que tiverem o intervalo de número de 0 até 9 entre o prefixoteste, com a extensão .txt.

$ ls teste[5-9].txtteste5.txt teste6.txt

Lista todos os arquivos que tiverem o intervalo de número de 5 até 9 entre o prefixoteste, com a extensão .txt.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 88

Page 89: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ ls teste[0-9].txtteste1.txt teste2.txt teste3.txt teste4.txt teste5.txt teste6.txt

Lista todos os arquivos que tiverem o intervalo de número de 0 até 9 entre o prefixoteste, com a extensão .txt.

$ ls teste[A-Z].txttesteA.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 aextensão .txt.

$ ls teste[B-D].txttesteB.txt testeC.txt testeD.txt

Lista todos os arquivos que tiverem o intervalo de B até D entre o prefixo teste, com aextensão .txt.

$ ls [a-z][0-9]*t1.txt t2.txt t3.txt

Lista todos os arquivos que tiverem em seu nome na primeira posição um caracter nointervalo de a à z, e na segunda posição um número no intervalo de 0 à 9, com qualquersufixo ou extensão.

$ ls t[a-d,0-9]*.txtt1.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 número 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 número no intervalode 0 à 9, e que não contenham um outro número na sequência, com qualquer extensão.o carater ^ significa negação.

✔ {} - O curinga "{...}" define um padrão que casa com o conjunto de caracteresentre "{" e "}", separados por vírgula.

Exemplo:

$ ls teste{[0-9],[A-Z]}.txtteste1.txt teste3.txt teste5.txt testeA.txt testeC.txt testeE.txt teste2.txtteste4.txt teste6.txt testeB.txt testeD.txt testeF.txt

Lista todos os arquivos que tiverem o prefixo teste, seguido por um conjunto compostopor um número no intervalo de 0 à 9, ou, caracteres no intervalo de A à Z, e queterminam com a extensão .txt.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 89

Page 90: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ ls teste*.{txt,log}teste10.txt teste1.log teste2.log teste3.log teste4.txt teste6.txt testeB.txttesteD.txt testeF.txt teste11.txt teste1.txt teste2.txt teste3.txt teste5.txttesteA.txt testeC.txt testeE.txt teste.log

Lista todos os arquivos que tiverem o prefixo teste, seguido por qualquer conjunto decaracteres, e que contenham as extensões .txt ou .log.

6.4 - Direcionadores

Uma boa parte dos programas executados no terminal possuem alguma saída.Essas saídas são enviadas por padrão para o terminal, sendo impressas na tela. Assim,consideremos o exemplo abaixo:

$ ls teste[0-9].txtteste1.txt teste2.txt teste3.txt teste4.txt teste5.txt teste6.txt

Nesse caso, têm-se:

✔ entrada: ls teste[0-9].txt✔ saída: teste1.txt teste2.txt teste3.txt teste4.txt teste5.txt teste6.txt

A entrada foi enviada pelo teclado (stdin), e a saída foi enviada para o terminal,que é a saída padrão (stdout). Mas então, o que fazer se o usuário quiser gravar a saídado comando ls em um arquivo de texto, por exemplo? Para isso existem osdirecionadores de fluxo, de grande utilidade no GNU/Linux e essenciais para a realizaçãode diversas tarefas de manutenção do sistema. Direcionadores de fluxo fazem o que onome sugere: direcionam o fluxo da saída dos programas, enviando-as para locaisdiferentes da saída padrão. Esses locais podem ser arquivos, dispositivos, processos eoutros programas. O direcionadores utilizados no GNU/Linux são:

✔ O Direcionador > : O direcionador > envia a saída padrão de um comando para umarquivo. Caso o arquivo exista, o seu conteúdo é substituído. Veja então a saída docomando ls que utilizou-se agora à pouco:

$ ls teste[0-9].txtteste1.txt teste2.txt teste3.txt teste4.txt teste5.txt teste6.txt

Para gravar essa lista em um arquivo chamado ls_out, utiliza-se o direcionador, daseguinte forma:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 90

Page 91: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ ls teste[0-9].txt > ls_out

Agora, nada é impresso no terminal. Por que? Porque a saída foi direcionada para oarquivo ls_out. Veja o conteúdo desse arquivo com o comando cat, que concatena eenvia arquivos para a saída padrão:

$ cat ls_outteste1.txtteste2.txtteste3.txtteste4.txtteste5.txtteste6.txt

Como visto, o conteúdo do arquivo ls_out é exatamente a saída do comando ls.

✔ O Direcionador 2 > : Uma restrição ao uso do direcionador > é que ele não funcionapara mensagens de erro (stderr). No exemplo abaixo, usa-se o comando ls, e comoparâmetro, um diretório que não existe:

$ ls dir_fantasma > ls_outls: dir_fantasma: Arquivo ou diretório não encontrado

Observe que mesmo usando o direcionador >, a mensagem de erro foi exibida. Se ousuário visualizar o conteúdo do arquivo ls_out, verá que nada foi gravado. Para gravaras 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 oarquivo ls_out, como pode-se verificar:

$ cat ls_outls: dir_fantasma: Arquivo ou diretório não encontrado

✔ O Direcionador & > : Podemos usar os direcionadores > e 2> em conjunto, para gerarum arquivo com a saída padrão e outro com a saída de erros, dessa forma:

$ ls teste[0-9].txt dir_fantasma > ls_out 2> ls_error

O comando acima pede para listar todos os arquivos que contenham o nome teste,seguido por um intervalo de 0 à 9, com a extensão .txt, e o conteúdo do diretóriodir_fantasma. Ao ver o conteúdo dos arquivos ls_out e ls_error, têm-se:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 91

Page 92: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ cat ls_outteste1.txtteste2.txtteste3.txtteste4.txtteste5.txtteste6.txt

$ cat ls_errorls: dir_fantasma: Arquivo ou diretório não encontrado

Mas, e se for necessário gravar todas as mensagens em um arquivo apenas? Para issoexiste o direcionador &>, que direciona tanto as mensagens padrão quanto as mensagensde erro para um arquivo. Repetindo o teste anterior:

$ ls teste[0-9].txt dir_fantasma &> ls_out

Nenhuma mensagem é exibida no terminal, e o conteúdo do arquivo ls_out é o seguinte:

$ cat ls_outls: dir_fantasma: Arquivo ou diretório não encontradoteste1.txtteste2.txtteste3.txtteste4.txtteste5.txtteste6.txt

Como visto, têm-se tanto a saída normal quanto as mensagens de erro.

✔ Os Direcionadores >>, 2>> e &>> : Todos os direcionadores acima citadossubstituem o conteúdo do arquivo caso ele já exista. Se você quiser gravar a saída devários comandos num mesmo arquivo, então precisará adicionar o conteúdo ao arquivoao invés de substitui-lo. Para fazer isso, usa-se >> ao invés de >, >>, 2>> e &>>.

✔ O Direcionador < : Direciona a entrada padrão de arquivo/dispositivo para umcomando. Este direcionador faz o contrário de < , enviando os dados para a entradapadrão, que no caso, é o comando. Por exemplo:

$ cat < ls_outls: dir_fantasma: Arquivo ou diretório não encontradoteste1.txtteste2.txtteste3.txtteste4.txtteste5.txtteste6.txt

Você pode usar o comando acima para enviar o conteúdo do arquivo ls_out ao comandocat, que mostrará seu conteúdo. É claro que o mesmo resultado pode ser obtido com catteste.txt, mas este exemplo serviu para mostrar a funcionalidade do <.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 92

Page 93: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ O Direcionador << : O direcionador << é utilizado para marcar o fim de exibição deum bloco. Um dos usos mais freqüentes desse direcionador é em conjunto com ocomando 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 Módulo 1 - Introdução..> ele tem a duração 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 arquivoarq_teste, logo que a palavra “fim” foi inserida ao texto.

✔ O Direcionador | (pipe) : O direcionador | , também conhecido como pipe (duto,cano), é utilizado para direcionar a saída de um comando para outro comando, eutilizado todo o tempo para a realização de diversos tipos de tarefas e procedimentos.Um dos usos mais comuns do | é com os comandos ls e more, para ver o conteúdo deum diretório, quando este não cabe na tela, como o diretório /usr/bin, por exemplo.Para que se possa ver todos os arquivos, direciona-se a saída do ls para o more, quefaz a paginação do conteúdo:

$ ls /usr/bin | more411toppm822-datea2paaxineabcdeabiwordAbiWord-2.2--Mais--

Agora, basta pressionar Enter para rolar a lista, de forma que podemos ver todos osarquivos. Pode-se utilizar o pipe para contar o número de linhas de um arquivo, emconjunto com os comandos cat e wc:

$ cat /etc/profile | wc -l24

O comando wc é utilizado para contar número de linhas, palavras e bytes do fluxo, queneste caso, é um arquivo texto. Um outro exemplo é em conjunto com o gerenciador depacotes apt, e com o comando grep, que é utilizado para selecionar linhas que contémuma determinada expressão. Por exemplo, para procurar os pacotes relacionados àdocumentação do bash shell, utiliza-se a seguinte linha de comando:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 93

Page 94: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ apt-cache search bash | grep docbash-doc - Documentation and examples for the The GNU Bourne Again SHellbash3-doc - Documentation and examples for the The GNU Bourne Again SHelloptcomplete-common - common scripts and documentation for python-optcomplete

6.5 - Alias

Permite criar um apelido a um comando ou programa. Por exemplo, se você quiserotimizar o nome do comando ls -lh para ver uma listagem longa e com todos osatributos dos arquivos, você pode usar o comando alias para facilitar as coisasdigitando:

$ alias lista='ls -lh'

Detalhe: (não se esqueça da meia aspa 'para identificar o comando'). Agora quandovocê digitar lista, a listagem será mostrada de forma completa. Para apagar uma alias,utilize o comando unalias:

$ unalias lista

6.6 - Histórico dos comandos

Todos os comandos executados em uma sessão são memorizados pelo shell, epodem ser consultados e novamente executados quando desejado. Para consultar ohistórico basta executar o comando history. Os comandos que são digitados sãoarmazenados dentro do arquivo .bash_history que está no diretório de trabalho dosusuários. Os comandos de uso do histórico começam sempre pelo sinal "!" . Vejamos osmais comuns:

✔ !132 : executa o comando de número 132 do histórico. ✔ !-2 : executa o penúltimo comando. ✔ !! : executa o comando anterior (equivale a !-1). ✔ !gr : executa o último comando começando com as letras "gr".

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 94

Page 95: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

6.7 - Editor de textos “vi”

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, entãonão há a necessidade de se usar um ambiente gráfico. Ele é um pouco confuso paraquem utiliza o programa pela primeira vez, visto que todas as operações são iniciadas apartir de uma seqüência de teclas. O vim (abreviatura de vi improved) é uma variaçãodo vi com alguns recursos extras. O uso do vim é igual ao do vi, exceto pelas funçõesadicionais não encontradas neste. As principais opções do vi são:

✔ i : habilita a inserção de textos no arquivo.

✔ a : permite a inserção de textos depois do cursor.

✔ A : permite a inserção 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 início da próxima palavra, ignorando a pontuação.

✔ w : Move o cursor para o início da próxima palavra, sem ignorar a pontuação.

✔ B : Move o cursor para o início da palavra anterior, ignorando a pontuação.

✔ b : Move o cursor para o início da próxima palavra, sem ignorar a pontuação.

✔ <num>G : Move o cursor para a linha indicada pelo número <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, porém, na direção reversa.

✔ <CTRL>+G : Mostra as informações sobre o arquivo, como seu nome, número dalinha corrente, e total de linhas.

✔ dw : Exclui uma palavra, da posição 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 início da linha corrente.

✔ R : Substitui o texto corrente.

✔ cw : Substitui a palavra corrente.

✔ cc : Exclui a linha corrente e habilita o modo de inserção.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 95

Page 96: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ C : Substitui o restante da linha corrente, a partir da posição do cursor.

✔ u : desfaz a última modificação.

✔ U : Desfaz todas as modificações feitas na linha corrente (desde que o cursornão tenha mudade de linha).

✔ J : Une a linha corrente à próxima.

✔ yw : copia uma palavra.

✔ dw : cortar uma palavra.

✔ Y : Copia a linha corrente.

✔ S : Cortar a linha corrente.

✔ P : Cola o conteúdo da área de transferência.

✔ V : Seleção 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 não salva as alterações.

✔ :q! : Força a saída do vi sem salvar as alterações.

✔ :wq : salva o arquivo atual e sai do vi.

✔ :r nome_do_arquivo.txt : Insere o conteúdo de nome_do_arquivo.txt noarquivo atual

✔ :r! ps : Insere a saída do comando ps no arquivo atual.

✔ :set number : exibe o número de linhas do arquivos atual.

✔ :set nonumber : desabilita a visualização do número de linhas.

✔ :s/teste/teste1 : substitui a primeira ocorrência de teste por teste1 na linhacorrente.

✔ :s/teste/teste1/g : substitui todas as ocorrências de teste por teste1 nalinha corrente.

✔ :%s/teste/teste1 : Substitui a primeira ocorrência da palavra teste porteste1 em cada linha, no arquivo inteiro.

✔ :%s/teste/teste1/g : Substitui todas as ocorrências da palavra teste porteste1, no arquivo inteiro.

✔ :%s/teste/teste1/gc : Substitui todas as ocorrências da palavra teste porteste1, no arquivo inteiro, pedindo confirmação.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 96

Page 97: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

6.8 - Comandos básicos – nível 2

6.8.1. history : Exibe na saída padrão o histórico de todos os comandos digitados pelousuário. Esta listagem também pode ser consultada no aqruivo .bash_history.

Sintaxe:

$ history

6.8.2. tee : Envia o resultado de um comando para a saída padrão (tela) e para umarquivo ao mesmo tempo. Este comando deve ser usado com o pipe "|".

Sintaxe:

$ <comando> | tee <arquivo de saída>

Opções:• - a : acrescenta ao arquivo ao invés de sobrescrevê-lo.

Exemplo:

$ ls -lh | tee lista.txttotal 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

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 97

Page 98: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

6.8.3. grep : Procura por um texto dentro de um arquivo(s) ou no dispositivo deentrada padrão.

Sintaxe:

$ grep <expressão> <arquivo> <opções>

Opções:• - A [número] : Mostra o [número] de linhas após a linha encontrada.• - B [número] : Mostra o [número] de linhas antes a linha encontrada.• - n : Mostra o número de cada linha encontrada.• - i : Ignora diferenças entre minúsculas e maiúsculas.

Exemplo:

$ cat lista.txt | grep 15:35-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

Exibe todas as linhas do arquivo lista.txt que contém a string 15:35.

$ ps -ef | grep bashfabio 4978 4976 0 11:17 pts/0 00:00:00 bashroot 4982 4978 0 11:17 pts/0 00:00:00 bashfabio 5713 4976 0 17:09 pts/1 00:00:00 bashfabio 5726 5713 0 17:11 pts/1 00:00:00 grep bash

Exibe a saída do comando ps, que lista todos os processo que estão rodando na máquina,e no exemplo acima, todos os processo que contém a string bash.

O grep faz sua pesquisa em arquivos texto. Use o comando zgrep para pesquisardiretamente em arquivos compactados com gzip, os comandos e opções são asmesmas.

6.8.4. cat : Imprime o conteúdo de arquivos na saída padrão (exibe na tela). Com ouso de direcionadores, podemos usá-lo para unir diferentes arquivos em um só,dentre outra funções.

Sintaxe:

$ cat <opções> <arquivo>

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 98

Page 99: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Opções:• - b : Numera as linhas, com exceção das linhas em branco.• - E : Mostra um $ para indicar fim de linha.• - n : Numera todas as linhas, incluindo as em branco.• - s : Não mostra mais do que uma linha em branco. Se houver duas ou mais

linhas em branco consecutivas, elas são truncadas e apenas uma é mostrada.• - T : Substitui tabulações pelos caracteres ^I.• - v : Substitui os caracteres não imprimíveis por símbolos, exceto tabulações e

final de linha.

Exemplo:

$ cat lista.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

Exibe todas as linhas do arquivo lista.txt, este é o exemplo mais simples da utilizaçãodeste comando.

$ cat ls_new ls_log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste1.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste2.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste3.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste4.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste5.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste1.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste2.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste3.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste4.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste5.log

Exibe a saída o conteúdo dos arquivos ls_new e ls_log, que contém respectivamente, asaída do comando ls -lh *.new e ls -lh *.log.

$ cat ls_new ls_log > lista_lognew$ cat lista_lognew-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste1.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste2.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste3.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste4.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste5.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste1.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste2.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste3.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste4.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste5.log

Primeiramente redireciona o conteúdo do exemplo anterior para o arquivo lista_lognew,e depois, exibe seu conteúdo.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 99

Page 100: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ cat musica_1.mp3 musica_2.mp3 > junta_musica.mp3

O comando cat também trabalha na junção de conteúdos de arquivos binários. Porexemplo, se você quiser concatenar duas músicas sem precisar.

O comando cat trabalha com arquivos texto. Use o comando zcat para ver diretamentearquivos compactados com gzip.

6.8.5. tac : Faz o mesmo que o cat, mas exibe o arquivo pela ordem inversa, ou seja,começando pela última linha e terminando com a primeira.

Sintaxe:

$ tac <arquivo>

Exemplo:

$ tac lista_lognew-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste5.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste4.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste3.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste2.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste1.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste5.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste4.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste3.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste2.new-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste1.new

Exibe todas as linhas do arquivo lista.txt, este é o exemplo mais simples da utilizaçãodeste comando.

6.8.6. wc : Conta o número de linhas, palavras, caracteres e bytes nos arquivos. Se asopções forem omitidas, o wc mostra a quantidade de linhas, palavras, e bytes.

Sintaxe:

$ wc <opções> <arquivo>

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 100

Page 101: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Opções:• - c : Exibe apenas o número de bytes.• - m : Exibe apenas o número de caracteres.• - l : Exibe apenas o número de linhas.• - L : Exibe o comprimento, em caracteres, da maior linha do arquivo.• - w : Exibe o número de palavras encontradas.

Exemplo:

$ wc lista_lognew10 80 560 lista_lognew

Se as opções forem omitidas, o wc mostra a quantidade de linhas, palavras, e bytes.

$ wc -w lista_lognew80 lista_lognew

Exibe apenas o número de palavras.

6.8.7. find (utilização básica) : Procura por arquivos/diretórios no disco. O find podeprocurar arquivos através de seus atributos, através do uso de opções.

Sintaxe:

$ find <arquivo/diretório> <opções/expressões>

Opções:• -name : Procura arquivos cujo nome coincida com a expressão digitada.• -type [tipo]: Procura por arquivos que sejam de um tipo específico.

• b : Dispositivos de bloco.• c : Dispositivos de caractere.• d : Diretório. • p : Duto nomeado (FIFO). • f : Arquivo regular.• l : Link simbólico.• s : Socket.

Exemplo:

$ find teste[A-Z].txttesteA.txttesteB.txttesteC.txttesteD.txttesteE.txt

Sem informar um diretório para pesquisa, faz uma busca dentro diretório atual.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 101

Page 102: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ 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 diretório /etc, por arquivos que contenham apenas 3 letras em seunome, e que tenha a extensão .conf.

6.8.8. more : Permite fazer a paginação de arquivos ou da entrada padrão. Ocomando more pode ser usado como comando para leitura de arquivos que ocupemmais de uma tela. Quando toda a tela é ocupada, ele efetua uma pausa e permiteque você pressione <ENTER> ou <espaço> para continuar avançando no arquivo sendovisualizado. 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%)

Faz a paginação do arquivo /etc/adduser.conf.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 102

Page 103: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ ls -lh | moretotal 24K-rw-r--r-- 1 fabio fabio 560 2005-06-15 14:10 lista_lognew-rw-r--r-- 1 root root 2,1K 2005-06-17 12:34 lista_pag-rw-r--r-- 1 fabio fabio 968 2005-06-15 11:34 lista.txt-rw-r--r-- 1 fabio fabio 280 2005-06-15 14:03 ls_log-rw-r--r-- 1 fabio fabio 280 2005-06-15 14:03 ls_new-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-15 14:02 teste1.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste1.new-rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste1.txt--Mais--

Faz a paginação da saída do comando ls.

Para visualizar diretamente arquivos texto compactados pelo utilitário gzip (arquivos .gz), use o comando zmore.

6.8.9. less : Permite fazer a paginação de arquivos ou da entrada padrão. Ele pode serusado como comando para leitura de arquivos que ocupem mais de uma tela. Quandotoda a tela é ocupada, o less efetua uma pausa (semelhante ao more) e permite quevocê pressione <seta para cima> e <seta para baixo> ou <PgUP>/<PgDown> parafazer o rolamento da página. 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::

Faz a paginação do arquivo /etc/adduser.conf.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 103

Page 104: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ ls -lh | lesstotal 24K-rw-r--r-- 1 fabio fabio 560 2005-06-15 14:10 lista_lognew-rw-r--r-- 1 root root 2,1K 2005-06-17 12:34 lista_pag-rw-r--r-- 1 fabio fabio 968 2005-06-15 11:34 lista.txt-rw-r--r-- 1 fabio fabio 280 2005-06-15 14:03 ls_log-rw-r--r-- 1 fabio fabio 280 2005-06-15 14:03 ls_new-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-15 14:02 teste1.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste1.new-rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste1.txt:

Faz a paginação da saída do comando ls.

Para visualizar diretamente arquivos texto compactados pelo utilitário gzip (arquivos .gz), use o comando zless.

6.8.10. touch : Muda a data e hora que um arquivo foi criado. Também pode serusado para criar arquivos vazios. Caso o touch seja usado com arquivos que nãoexistam, por padrão ele irá criá-los.

Sintaxe:

$ touch <opções> <arquivo>

Opções:• -a : Modifica apenas a data do última acesso.• -c: Não cria arquivos, caso eles não existam.• -m : modifica apenas a data de modificação.• -t : Usa meses (MM), dias (DD), horas (hh), minutos (mm) e opcionalmente o ano

e segundos para modificação do(s) arquivo(s) ao invés 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 modificação, a data 14/06/2005às 15:34. utilizando o comando touch sem nenhum parâmetro, o arquivoautomaticamente fica com a data atual, como sendo a sua data de última modificação.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 104

Page 105: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ 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 opção -t para o comando touch gravar uma data específicano arquivo. No exemplo acima, o arquivo teste1.txt terá como data de últimamodificação, a data 15/04/2004 às 14:30.

6.8.11. ln : Utilizado para criar links, simbólicos ou absolutos.

Sintaxe:

$ ln <opções> <origem> <destino>

Opções:• -s : Cria um link simbólico. Usado para criar ligações com o arquivo/diretório 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 15:34 teste10.txt-rw-r--r-- 1 fabio fabio 0 2005-06-14 15:34 teste11.txtlrwxrwxrwx 1 fabio fabio 10 2005-06-20 16:30 teste1.documento -> teste1.txt-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste1.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste1.new-rw-r--r-- 1 fabio fabio 0 2004-04-15 14:30 teste1.txt

Neste exemplo, foi criado um link simbólico para o arquivo teste1.txt com o nome deteste1.documento.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 105

Page 106: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ ln -s -v teste1.txt teste1.documentocriar link simbólico `teste1.docs' to `teste1.txt'

$ ls -lh teste1*-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.txtlrwxrwxrwx 1 fabio fabio 10 2005-06-20 17:00 teste1.docs -> teste1.txtlrwxrwxrwx 1 fabio fabio 10 2005-06-20 16:30 teste1.documento -> teste1.txt-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:02 teste1.log-rw-r--r-- 1 fabio fabio 0 2005-06-15 14:03 teste1.new-rw-r--r-- 1 fabio fabio 0 2004-04-15 14:30 teste1.txt

Neste exemplo, foi criado um link simbólico para o arquivo teste1.txt com o nome deteste1.docs, exemplificando a saída com a opção -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 nodiretório atual com mesmo nome, e outro com o nome de passwd_curso, mas os doisreferenciam o mesmo arquivo.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 106

Page 107: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Capítulo 7

Gerenciamento de PacotesGerenciamento de Pacotes

Neste capítulo o usuário compreenderá como é feito ogerenciamento de pacotes no Debian GNU/Linux.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 107

Page 108: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

7.1 - O que são pacotes?

Um programa é constituído por vários arquivos, incluindo: aplicativos, arquivos deconfiguração, bibliotecas, imagens e documentos. O processo natural de instalação deum programa consiste então em 3 etapas:

✔ Compilação : Compilar significa transformar o código-fonte de um programa emarquivos binários, isto é, que podem ser executados e utilizados pelo sistemaoperacional.

✔ Cópia : Uma vez compilados, os arquivos precisam ser copiados para os diretórioscorretos, para poder funcionar adequadamente. Nesse processo, alguns diretóriosprecisam ser criados, eventualmente.

✔ Configuração : Depois de compilar e copiar, é necessário configurar o programa eo sistema operacional, para que não hajam conflitos e tudo possa funcionarcorretamente.

O processo natural não é nem um pouco animador. Instalar todos os programas dosistema operacional seguindo esse método leva muito tempo, e a chance de ocorreralgum erro é muito grande. Pensando nisso, os mantenedores dos pacotes de cadadistribuição fazem por você o processo de compilação e configuração dos programas, ejuntam tudo em um só arquivo, chamado pacote. Esse pacote, será interpretado pelaferramenta de gerenciamento de pacotes, que o instalará automaticamente, com apenasum comando. Abaixo, encontra-se a listagem dos tipos de pacotes e seus respectivosgerenciadores de algumas distribuições listadas no capítulo 1:

Distribuição Tipo de Pacote Gerenciador

SuSe RPM YaST

Red Hat RPM APT, YUM

Fedora RPM APT, YUM

Slackware TGZ pkgtool

Debian DEB APT

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 108

Page 109: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

7.2 - Os pacotes Debian

O Debian utiliza o formato DEB para os seus pacotes pré-compilados. Muitospacotes (mais de 8000) são mantidos pela equipe de desenvolvedores Debian, eencontram-se disponíveis em diversos repositórios oficiais espalhados ao redor domundo. Programas que não possuem pacotes DEB devem ser instalados a partir docódigo-fonte. É possível gerar pacotes DEB manualmente através da ferramenta dpkg-deb ou através de utilitários que automatizam essa tarefa, como o checkinstall. Osnomes dos pacotes são geralmente formados da seguinte maneira:

[foo]_[versão]-[revisão]_[arquitetura].deb

Onde:

✔ foo : Nome dado ao pacote; ✔ versão : A versão do pacote; ✔ revisão : Muitas vezes o mantenedor pode fazer alterações na mesma versão de

um pacote. Nesses casos, são lançadas as revisões, como em 2.2-1, 2.2-2, 2.2-3,onde todos são pacotes da versão 2.2, mas de revisões diferentes;

✔ arquitetura : A arquitetura de hardware para a qual o pacote foi compilado.

Alguns exemplos de nomes de pacotes:

✔ ladccad_0.4.0-4_i386.deb ✔ inkscape_0.41-2_i386.deb ✔ rsync_2.6.4-6_i386.deb✔ mysql-server-4.1_4.1.11a-4_i386.deb✔ openoffice.org-bin_1.1.3-9_i386.deb

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 109

Page 110: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

7.3 - Ferramentas de Gerenciamento de pacotes

✔ dpkg

O dpkg é o principal programa de gerenciamento de pacotes do Debian. Todas asoutras ferramentas utilizam-no para instalar, remover e configurar os pacotes nosistema. A sintaxe de uso do dpkg é a seguinte:

dpkg <opções> <pacote>

Algumas opções são usadas com o nome do pacote, outras são usadas com o nome doarquivo .deb. As principais são:

✔ --info: Exibe as informações sobre o pacote especificado, tais como descrição,versão, dependências, mantenedor, etc.

✔ -i, --install : Instala o pacote no sistema, desde que ele não possua nenhumadependência não resolvida.

✔ --unpack : Apenas extrai os arquivos do pacote, copiando-os para os locaiscorretos, mas não faz a configuração. Isso pode deixar o programa não utilizável,pois ele pode precisar ser configurado, o que, nesse caso, não é feito.

✔ --configure : Configura o pacote desempacotado através do –unpack. ✔ -r, --remove : Remove um pacote, mantendo os arquivos de configuração. A

importância de se manter os arquivos de configuração é que, no caso dareinstalação do pacote, as configurações não serão perdidas, permitindo usar oprograma como se ele nunca tivesse sido removido.

✔ --purge : Remove um pacote e também os seus arquivos de configuração. Só useessa opção quando tiver certeza de que deseja acabar com qualquer vestígio dopacote em questão, geralmente quando ele realmente não for mais necessário;

✔ -l , --list: Lista o estado de instalação do pacote. Útil para saber se um pacote estáinstalado, ou se apresenta algum problema, como dependências quebradas ou seestá desconfigurado;

✔ --get-selections [arquivo] : Exibe uma lista com os pacotes do sistema, bemcomo o seu estado;

✔ -L , --list-files: Exibe os arquivos instalados pelo pacote selecionado; ✔ -S , --search [padrão]: Procura pelo padrão informado na lista de arquivos

instalados pelo pacote;✔ -s : Exibe o status do pacote selecionado.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 110

Page 111: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Exemplos:

$ dpkg -i opera_8.01-20050615.5-shared-qt_en_sarge_i386.debSelecionando pacote previamente não selecionado opera.(Lendo banco de dados ... 91345 arquivos e diretórios atualmente instalados.)Descompactando opera (de opera_8.01-20050615.5-shared-qt_en_sarge_i386.deb) ...Instalando opera (8.01-20050615.5) ...

Instala o pacote do navegador Opera no sistema operacional.

$ dpkg --info opera_8.01-20050615.5-shared-qt_en_sarge_i386.deb novo pacote debian, versão 2.0. tamanho 4257754 bytes: arquivo de controle= 4241 bytes. 34 bytes, 2 linhas conffiles 826 bytes, 20 linhas control 5932 bytes, 85 linhas md5sums 1654 bytes, 55 linhas * postinst #!/bin/sh 1068 bytes, 38 linhas * postrm #!/bin/sh 1011 bytes, 40 linhas * prerm #!/bin/sh Package: opera Version: 8.01-20050615.5 Section: non-free/web Priority: optional Architecture: i386 Depends: libc6 (>= 2.1.3), xlib6g (>= 3.3.6) | xlibs, libqt3c102-mt Recommends: libmotif (>= 2) | lesstif2, libaspell15 Conflicts: opera-static Replaces: opera-static Provides: opera-static, www-browser Installed-Size: 9508 Maintainer: Christian Westgaard <[email protected]> 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.

Exibe as informações do pacote do navegador Opera.

$ dpkg -r opera(Lendo banco de dados ... 91447 arquivos e diretórios atualmente instalados.)Removendo opera ...

Remove o programa do sistema operacional.

$ dpkg --purge opera(Lendo banco de dados ... 91447 arquivos e diretórios atualmente instalados.)Removendo opera ...Apagando arquivos de configuração de opera ...

Remove o programa e todos os seus arquivos de configuração.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 111

Page 112: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ dpkg -l operaDesejado=U=Desconhecido/Instalar/Remover/aPagar/H=Manter| status=Não/Instalado/arquiv.-Config./U=Descomp./Falhou-config/H=semi-inst.|/ Erro?=(nenhum)/H=Mantido/precisa-Reinst./X=os dois problemas (status,Erro:maiúsculas=ruim)||/ Nome Versão Descrição+++-===============-==============-============================================||/ Nome Versão Descrição+++-=========================-=========================-==================================================================ii opera 8.01-20050615.5 The Opera Web Browser

Lista o estado do pacote do navegador Opera.

$ dpkg -l |lessDesejado=U=Desconhecido/Instalar/Remover/aPagar/H=Manter| status=Não/Instalado/arquiv.-Config./U=Descomp./Falhou-config/H=semi-inst.|/ Erro?=(nenhum)/H=Mantido/precisa-Reinst./X=os dois problemas (status,Erro:maiúsculas=ruim)||/ Nome Versão Descrição+++-===============-==============-============================================||/ Nome Versão Descrição+++-==============-==============-============================================ii aalib1 1.4p5-22 ascii art libraryii adduser 3.63 Add and remove users and groupsii akode 3.3.2-1 akode arts pluginii apache2-common 2.0.54-4 next generation, scalable, extendable web seii apache2-mpm-pr 2.0.54-4 traditional model for Apache2ii apache2-utils 2.0.54-4 utility programs for webserversii apt 0.5.28.6 Advanced front-end for dpkgii apt-utils 0.5.28.6 APT utility programsii aptitude 0.2.15.9-2 terminal-based apt frontendii ardour-doc 0.9beta28-1 Ardour documentationii ardour-gtk 0.9beta28-1 digital audio workstation (graphical gtk intii ardour-session 0.9beta28-1 Ardour session collaboration toolii ark 3.3.2-1 KDE archiving toolii arts 1.3.2-3 Analog Realtime Synthesizer (aRts) metapackaii artsbuilder 3.3.2-1 Arts synthesizer designerii at 3.1.8-11 Delayed job execution and batch processingii avidemux 2.0.40-0.0 a small editing software for avi (especiallyii base-config 2.53.10 Debian base system configuratorii base-files 3.1.2 Debian base system miscellaneous filesii base-passwd 3.5.9 Debian base system master password and groupii bash 2.05b-26 The GNU Bourne Again SHellii bc 1.06-15 The GNU bc arbitrary precision calculator laii bin86 0.16.14-1.2 16-bit x86 assembler and loaderii bind9-host 9.2.4-1 Version of 'host' bundled with BIND 9.Xii binutils 2.15-6 The GNU assembler, linker and binary utilitiii bison 1.875d-1 A parser generator that is compatible with Yii bittorrent 3.4.2-3sarge0. Scatter-gather network file transferii blop 0.2.8-1 Bandlimited wavetable-based oscillator plugi:

Caso não seja passado o nome do pacote no uso a opção -l, o dpkg lista a situação detodos os pacotes. Neste caso utilizou-se o direcionador | para que a listagem tenhaquebra de página.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 112

Page 113: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ dpkg --get-selections > lista-pkg.txt

Utilizando o dpkg com esta opção, ele direcionará para o arquivo lista-pkg.txt, alistagem de todos os pacotes instalados em seu sistema operacional, com seusrespectivos estados de instalação.

$ 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

Lista os arquivos instalados pelo pacote.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 113

Page 114: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ dpkg -S neronerolinux: /usr/share/nero/libGenUDF.sonerolinux: /usr/share/nero/docs/Manual.pdfnerolinux: /usr/share/nero/libGenHFS.sonerolinux: /usr/share/nero/pixmaps/nero.pngnerolinux: /usr/share/nero/desktop/NeroLINUX.templatenerolinux: /usr/bin/neronerolinux: /usr/share/nero/libMmc.sonerolinux: /usr/share/nero/libNeroRobo.sonerolinux: /usr/share/nero/DosBootImage.imakdebase-data: /usr/share/wallpapers/seaofconero.jpgnerolinux: /usr/share/nero/libGenFAT.sonerolinux: /usr/share/nero/libImage.sonerolinux: /usr/share/nero/docsnerolinux: /usr/share/nero/libNRPrimeraComposer.sonerolinux: /usr/share/nero/libGenHyb.sonerolinux: /usr/share/nero/libCDROM.sonerolinux: /usr/share/nero/libImageGen.sonerolinux: /usr/share/neronerolinux: /usr/share/nero/libGenCueSheet.sonerolinux: /usr/share/nero/libGenerator.sonerolinux: /usr/share/nero/libUDFImporter.sonerolinux: /usr/share/nero/docs/EULAnerolinux: /usr/share/nero/desktopnerolinux: /usr/share/nero/libISOFS.sonerolinux: /usr/share/nero/pixmapsnerolinux: /usr/share/nero/Nero.txtnerolinux: /usr/share/nero/libFATImporter.sonerolinux: /usr/share/nero/libGenISO.sonerolinux: /usr/share/nero/CDROM.CFG

Realiza uma pesquisa parecida com a do exemplo anterior.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 114

Page 115: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ dpkg -s operaPackage: operaStatus: install ok installedPriority: optionalSection: non-free/webInstalled-Size: 9508Maintainer: Christian Westgaard <[email protected]>Architecture: i386Version: 8.01-20050615.5Replaces: opera-staticProvides: opera-static, www-browserDepends: libc6 (>= 2.1.3), xlib6g (>= 3.3.6) | xlibs, libqt3c102-mtRecommends: libmotif (>= 2) | lesstif2, libaspell15Conflicts: opera-staticConffiles: /etc/opera6rc 731c625736b38d6caf899c3c3b1cb490 /etc/opera6rc.fixed 9025d2d3e4549b0bf2c3ee3a65c3749aDescription: 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.

Exibe o estado do pacote.

✔ APT

O APT (Advanced Packaging Tool) é uma avançada interface para o sistema degerenciamento de pacotes Debian, consistindo de vários programas cujos nomestipicamente começam com 'apt-'. O apt-get, apt-cache e o apt-cdrom são ferramentasde linha de comando para gerenciar pacotes. Eles também funcionam como programasback-end para outras ferramentas, como o dselect e o aptitude. O APT trabalhaprocurando os pacotes nos repositórios Debian, baixando-os e instalando-osautomaticamente ao comando do usuário, resolvendo automaticamente dependências econflitos. Além de instalar, o APT também permite remover e pesquisar pacotes.

Configurando o APT

Para utilizar o APT é necessário, antes de mais nada, configurá-lo. A primeira coisaa ser fazer é escolher um repositório de pacotes do Debian, de onde os pacotes serãobaixados. Essa informação será adicionada no arquivo /etc/apt/sources.list. Nestearquivo ficam listadas as fontes de pacotes do Debian, que podem ser:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 115

Page 116: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ CD-ROM's do Debian ✔ repositórios FTP ✔ repositórios HTTP ✔ repositórios locais

Veja um exemplo de conteúdo do sources.list:

# deb file:///cdrom/ sarge main# deb cdrom:[Debian GNU/Linux 3.1 r0 _Sarge_ - Official i386 Binary-1 (20050605)]/unstable contrib main# deb http://cdd.debian-br.org/debian-br-cdd/ 1.0 main

# Utilizado para os pacotes da distribuiçãodeb http://ftp.unicamp.br/pub/debian/ stable main contrib non-freedeb-src http://ftp.unicamp.br/pub/debian/ stable main contrib non-free

# Utilizado para o pacote pgadmin3deb ftp://ftp2.fr.postgresql.org/postgresql/pgadmin3/release/debian sarge pgadmin

# Utilizado para o pacote mplayer e w32codecsdeb ftp://ftp.nerim.net/debian-marillat/ stable main

deb http://security.debian.org/ stable/updates main contrib

Cada uma das linhas corresponde a uma fonte utilizada pelo APT. As linhas comentadascom um # não serão utilizadas. Cada linha é formada da seguinte forma:

<pacote> <URI> <distribuição> <seções>

Sendo:

✔ pacote: Os repositórios do Debian contém, além dos binários .deb, os fontes dealguns pacotes, que podem ser baixados com o APT. Para configurar o APT parabaixar os pacotes .deb, colocamos deb, para baixar os fontes, colocamos deb-src.

✔ URI: A localização principal dos arquivos. O APT pode buscar pacotes de diversoslocais, utilizando os seguintes protocolos:

✔ file:/ - arquivos gravados localmente, no HD; ✔ cdrom:/ - CD-ROM oficial de alguma versão do Debian; ✔ http:// - servidor de arquivos HTTP (Internet); ✔ ftp:// - servidor de arquivos FTP (Internet); ✔ copy:/ - o mesmo que o protocolo file:/, com a diferença de que os

arquivos são copiados para o diretório de cache, ao invés de serem usadosdiretamente a partir de seu local original;

✔ rsh, ssh - pode-se ainda utilizar conexão a um computador remotoutilizando uma conexão segura via SSH ou RSH;

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 116

Page 117: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ distribuição: Os pacotes do Debian são separados em categorias, de acordo comseu estágio de estabilidade. Aqui, deve-se especificar qual categoria de pacotes sedeseja utilizar. As categorias são:

✔ stable: pacotes exaustivamente testados, considerados estáveis, porém asvezes antigos;

✔ testing: pacotes em fase de testes, mais recentes que os pacotes dastable;

✔ unstable: versões mais recente dos pacotes Debian; ✔ versões do Debian: existem ainda, as versões com os pacotes oficiais das

versões do Debian. Para acessá-las, basta utilizar o codinome dasdistribuições, como woody, sarge ou sid;

✔ outras: existem muitos repositórios não-oficiais do Debian que utilizamoutras notações de distribuições.

✔ seções: Nos repositórios oficiais existem 3 seções de pacotes, a saber:

✔ main: seção principal, contendo somente pacotes de Software Livre; ✔ non-free: pacotes que não são Software Livre, porém gratuitos; ✔ contrib: pacotes que são Software Livre, mas que precisam de alguns

pacotes da seção non-free para funcionarem.

Assim, considere a seguinte linha:

deb http://ftp.unicamp.br/pub/debian/ unstable main contrib non-free

Pode-se ver que ela configura o APT para baixar pacotes .deb. Se quiser configurar o APTpara baixar códigos-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 distribuição unstable. Se estiver utilizando o Debiannum servidor, é interessante baixar os pacotes da versão stable. Para isso, basta trocarunstable por stable:

deb http://ftp.unicamp.br/pub/debian/ stable main contrib non-free

O APT vai procurar pacotes em todas as seções, ou seja, main, contrib e non-free. Sevocê desejar apenas Software Livre no seu sistema, vamos deixar apenas a seção mainconfigurada, removendo as seções non-free e contrib:

deb http://ftp.unicamp.br/pub/debian/ stable main

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 117

Page 118: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

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

$ apt-cdrom add

O CD será analisado e, se forem achados pacotes Debian nele, será criadaautomaticamente 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 repositório remoto no sources.list

Um método muito útil de configurar as entradas do sources.list é através daferramenta apt-setup. Trata-se de uma interface que permite ao usuário adicionarnovas entradas para o sources.list de modo rápido e fácil. O apt-setup oferece umalista de repositório oficiais Debian, organizados por país. Pode-se utilizar o apt-setuppara adicionar CD-ROM's Debian e repositórios locais (protocolos file:/ e copy:/) aosources.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 einstalar os pacotes. A primeira coisa a se fazer é atualizar o APT, baixando a lista depacotes disponíveis. Para isso, usare-se o seguinte comando:

$ apt-get updateAtingido http://security.debian.org stable/updates/main PackagesAtingido http://security.debian.org stable/updates/main ReleaseAtingido http://security.debian.org stable/updates/contrib PackagesAtingido http://security.debian.org stable/updates/contrib ReleaseAtingido ftp://ftp.nerim.net stable/main PackagesAtingido ftp://ftp.nerim.net stable/main ReleaseAtingido ftp://ftp2.fr.postgresql.org sarge/pgadmin PackagesAtingido ftp://ftp2.fr.postgresql.org sarge/pgadmin ReleaseAtingido ftp://ftp.br.debian.org stable/main PackagesAtingido ftp://ftp.br.debian.org stable/main ReleaseAtingido ftp://ftp.br.debian.org stable/main SourcesAtingido ftp://ftp.br.debian.org stable/main ReleaseLendo Lista de Pacotes... Pronto

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 118

Page 119: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Instalando pacotes com o APT

Agora, pode-se instalar os pacotes facilmente, utilizando o apt-get, da seguinteforma:

$ apt-get install <pacotes>

Para instalar, por exemplo, o vncserver, utilizamos:

$ apt-get install vncserverLendo Lista de Pacotes... ProntoConstruindo Árvore de Dependências... ProntoOs pacotes extra a seguir serão instalados: vnc-commonPacotes sugeridos : xvncviewer vnc-javaOs NOVOS pacotes a seguir serão instalados: vnc-common vncserver0 pacotes atualizados, 2 pacotes novos instalados, 0 a serem removidos e 0 nãoatualizados.É preciso fazer o download de 553kB de arquivos.Depois de desempacotamento, 1303kB adicionais de espaço em disco serão usados.Quer continuar? [S/n]

Nesse procedimento, o APT procura na lista de pacotes (gerada através docomando apt-get update) pelo pacote vncserver. Uma vez encontrado, ele verifica se aversão disponível para instalação é mais nova que a versão instalada. Se for, ele verificase existem dependências, ou seja, se existe algum pacote necessário para o vncserverfuncionar. Se existir, ele insere esses pacotes na lista de instalação. Depois disso, eleexibe a lista dos pacotes que serão instalados. O APT ainda mostra uma lista de pacotessugeridos. Os pacotes sugeridos são aqueles que fornecem alguma funcionalidade extraao pacote selecionado para instalação. Por fim, o APT exibe a lista dos pacotes que serãoinstalados, e mostra o resumo da instalação, especificando quantos pacotes serãoinstalados, atualizados, removidos e não atualizados, e qual o tamanho do download queprecisa ser feito. Se algum pacote além dos que você especificou precisar ser instalado,o APT pedirá a confirmação antes de iniciar a instalação. Para confirmar, digite s oupressione Enter. Os pacotes são 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 não selecionado vnc-common.(Lendo banco de dados ... 91447 arquivos e diretórios atualmente instalados.)Descompactando vnc-common (de .../vnc-common_3.3.7-7_i386.deb) ...Selecionando pacote previamente não 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) ...

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 119

Page 120: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Removendo pacotes com o APT

Pode-se remover pacotes facilmente, utilizando o apt-get, da seguinte forma:

$ apt-get remove <pacotes>

Para remover, por exemplo, o vncserver, utilizamos:

$ apt-get remove vncserverLendo Lista de Pacotes... ProntoConstruindo Árvore de Dependências... ProntoOs pacotes a seguir serão REMOVIDOS: vncserver0 pacotes atualizados, 0 pacotes novos instalados, 1 a serem removidos e 0 nãoatualizados.É preciso fazer o download de 0B de arquivos.Depois de desempacotar, 1163kB de espaço em disco serão liberados.Quer continuar? [S/n]

O procedimento aqui é parecido. Primeiro, o APT procura na lista de pacotes paraver se existe um pacote instalado com o nome informado. Se existir, ele procura na listade dependências, para ver se existe algum outro pacote que precisa do pacote informadopara funcionar. Depois disso, o APT informa o número de pacotes que serão removidos.Depois, exibe a quantidade de espaço em disco que será liberado. O APT solicita aconfirmação para realizar a desinstalação. Para confirmar, digita-se <s> ou pressiona-seEnter.

(Lendo banco de dados ... 91475 arquivos e diretórios atualmente instalados.)Removendo vncserver ...

A remoção é feita automaticamente. Nesse processo não são removidos osarquivos de configuração utilizados pelos programas. Dessa forma, se você quiserreinstalar o programa futuramente, ele estará configurado, da mesma forma comoestava antes de você removê-lo. Se você quiser remover completamente o pacote,incluindo os arquivos de configuração, utilize o parâmetro –-purge.

$ apt-get remove -–purge vncserver

Procurando Pacotes

O Debian possui em seu repositório milhares de pacotes. Seria muito complicadose você precisasse saber antecipadamente o nome do pacote que deseja instalar ouremover. Por isso mesmo, o APT conta com uma ferramenta para localizar pacotes eexibir informações sobre eles: o apt-cache. Para listar os pacotes que correspondem adeterminadas palavras-chave, utilizamos o parâmetro search, da seguinte forma:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 120

Page 121: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ apt-cache search <palavras-chave>

Por exemplo, vamos procurar os pacotes de impressão do GIMP, utilizando as palavras-chave gimp e print:

$ apt-cache search gimp printcinepaint - motion picture image painting and retouching toolcupsys-driver-gimpprint - Gimp-Print printer drivers for CUPScupsys-driver-gimpprint-data - Gimp-Print printer drivers for CUPSescputil - A maintenance utility for Epson Stylus printersfoomatic-db - linuxprinting.org printer support - databasefoomatic-db-engine - linuxprinting.org printer support - programsfoomatic-db-gimp-print - linuxprinting.org printer support - database for Gimp-Print printer driversgimpprint-doc - Users' Guide for Gimp-Print and CUPSgimpprint-locales - Locale data files for Gimp-Printgpaint - GNU Paint - a small, easy to use paint program for GNOMEijsgimpprint - Inkjet Server - Ghostscript driver for Gimp-Printlibgimpprint1 - The Gimp-Print printer driver librarylibgimpprint1-dev - Development files for the Gimp-Print librarylibgimpprint1-doc - Documentation for the Gimp-Print printer driver librarylibijs-0.35 - IJS raster image transport protocol: shared librarylibijs-dev - IJS raster image transport protocol: development filesxsane - GTK+-based X11 frontend for SANE (Scanner Access Now Easy)xsane-common - GTK+-based X11 frontend for SANE (Scanner Access Now Easy)

Para exibir informações mais detalhadas sobre um programa, podemos utilizar osparâmetros show e showpkg. Vejamos, por exemplo, as informações detalhadas dopacote gimp:

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 121

Page 122: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

$ apt-cache show gimpPackage: gimpPriority: optionalSection: graphicsInstalled-Size: 8156Maintainer: Ari Pollak <[email protected]>Architecture: i386Version: 2.2.6-1Replaces: gimp1.2 (<< 1.2.5-1), gimp1.3, gimp-nonfree, gimp-data (<< 2.0.2-4)Provides: gimp2.0, gimp-nonfreeDepends: 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-svgSuggests: 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.debSize: 3087226MD5sum: 18d0bfa32ea03ac1de835bf3a2122a99Description: 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.MIDITask: desktop

A diferença entre show e showpkg é que show mostra detalhes relativos ao pacote,como descrição, mantenedor, etc., enquanto showpkg exibe informações referentes àsdependências 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 opções upgrade e dist-upgrade do apt-get:

$ apt-get upgrade

$ apt-get dist-upgrade

A diferença entre o upgrade e o dist-upgrade está no mecanismo de resolução dedependências, que é mais aprimorado quando se usa o dist-upgrade, e que é orecomendado. Pode-se usar o dpkg para marcar os pacotes que não devem ser

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 122

Page 123: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

atualizados em hipótese alguma. Esse recurso é útil para evitar a atualização decomponentes importantes do sistema, cujas atualizações podem ser instáveis, ou nocaso de programas que tenham sido instalados manualmente.

Limpando o Cache de Pacotes

Os pacotes baixados da Internet pelo APT ficam armazenados no diretório /var/cache/apt/archives, para serem usados no caso de reinstalação. Esses pacotesocupam espaço em disco, que muitas vezes pode não ser um recurso disponível. Porisso, o apt-get conta com duas opções para limpeza de cache: clean e autoclean. Oclean apaga todos os pacotes do diretório /var/cache/apt/archives. Seu uso ésimples:

$ apt-get clean

Já o autoclean apaga apenas os pacotes que possuem versões mais novas disponíveispara download. É recomendável utilizar o autoclean sempre após fazer a atualização dalista de pacotes do APT (apt-get update).

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 123

Page 124: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 124

Page 125: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Capítulo 8

Aplicativos para GNU/LinuxAplicativos para GNU/Linux

Neste capítulo o usuário conhecerá alguns aplicativos que podemser úteis para o uso diário no GNU/Linux.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 125

Page 126: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Este capítulo foi colocado neste curso para as pessoas que nunca utilizaram oGNU/Linux, e que querem conhecer softwares equivalentes em seu uso diário noMicrosoft Windows. Alguns usuário têm uma surpresa enorme com a evolução dosaplicativos desenvolvidos para GNU/Linux.

8.1 - Suítes de Escritórios

✔ OpenOffice.org : Desenvolvido a partir do código-fonte do StarOffice, cedidopela Sun Microsystems à comunidade, o OpenOffice.org é hoje se não a melhor,a mais difundida suíte de escritórios livre do mercado, muito poderosa, comtodos os recursos esperados de uma suíte de escritórios completa. Fazem parteda suíte os softwares Writer (editor de textos), Calc (planilha eletrônica), Draw(desenho vetorial), Impress (apresentação de slides) e Math (fórmulasmatemáticas). Para a versão 2.0, ainda em fase de testes, foi incorporado umsoftware de banco de dados, o Base.

✔ Koffice : O KOffice é a suíte de escritórios do KDE, bastante completa e bemmais leve que o OpenOffice.org, ideal para uso em máquinas mais modestas epor aqueles usuários que utilizam tão somente os recursos básicos de uma suítede escritórios.

8.2 - Internet

✔ Navegadores (Browsers)

✔ Mozilla Firefox : Desenvolvido pela Fundação Mozilla, o Mozilla Firefox éum browser leve, poderoso, fácil de usar e com vários recursos. Possuiversões para GNU/Linux, Windows e MacOS. Entre os seus recursos estãoa navegação por abas, pesquisa inteligente, controles avançados deprivacidade e segurança, acelerador de downloads, suporte a temas parapersonalizar a aparência e a extensões que fornecem todo tipo defuncionalidades extras para o navegador.

✔ Konqueror : O Konqueror é o navegador padrão do KDE. Tambémfunciona como gerenciador de arquivos, o que lhe confere uma grandepraticidade. Seus recursos incluem suporte a abas e aos plugins paraMozilla/Netscape.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 126

Page 127: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Epiphany : Navegador padrão do ambiente GNOME, desenvolvido sobrea engine Gecko, a mesma usada pelo Mozilla. As versões novas permitemadicionar recursos ao navegador em forma de extensões. Infelizmente elenão é compatível com as extensões do Firefox.

✔ Lynx : Navegador para modo texto, incrivelmente leve, ideal para testesde acesso a sites e acesso a serviços configuráveis via Web.Extremamente simples, o lynx não suporta cores e outros recursos comorenderização de tabelas e frames.

✔ Links : O links é um navegador em modo texto como o lynx, porém comalguns recursos adicionais, como renderização de tabelas, suporte aframes, download em background e suporte a cores. Existe ainda umaversão modificada do links, chamada links2, que fornece a essenavegador o suporte a imagens e mouse através de framebuffer.

✔ Clientes de E-Mail

✔ Mozilla Thunderbird : O Mozilla Thunderbird é um cliente de emailseguro e versátil, extremamente poderoso. Entre os seus recursos, umgrande destaque é o seu filtro anti-SPAM inteligente, que analisa asmensagens classificadas como SPAM, de modo que, com o passar dotempo, o filtro se a auto-aperfeiçoa, ficando cada vez mais eficiente.Outros recursos importantes são os de segurança, como S/MIME,assinatura digital, criptografia de mensagens, suporte para certificados edispositivos de segurança. Além de todos os recursos básicos de todos osclientes de email, o Mozilla Thunderbird suporta feeds RSS, filtrosavançados de mensagens e extensões, que lhe incorporam todo tipo defuncionalidades extras.

✔ Evolution : Desenvolvido pela Ximian, empresa de Miguel de Icazarecentemente adquirida pela Novell, o Evolution é um cliente de email tãoou mais poderoso que o Mozilla Thunderbird, rápido, seguro, fácil de usar,altamente configurável e totalmente integrado ao sistema (se o ambientegráfico em uso for o GNOME). Suas novas versões possuem suporte aservidores Microsoft Exchange e Novell Groupwise.

✔ Mutt : O Mutt é um cliente de email em modo texto pra *NIX.Extremamente leve pelo fato de não utilizar interface gráfica, mas nempor isso limitado. O Mutt é extremamente poderoso. Sua interface, aocontrário do que se possa esperar de um programa em modo texto, ébastante intuitiva, e entre seus recursos estão a visualização de emailspor threads, recurso muito útil para quem faz parte de vários listas dediscussão (comum entre usuários de GNU/Linux).

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 127

Page 128: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Mensagens Instantâneas

✔ GAIM : O GAIM é muito popular entre os usuários de GNU/Linux, pela suapraticidade, velocidade e estabilidade. Utilizando a biblioteca gráfica GTK,o Gaim oferece suporte a 7 protocolos diferentes: AIM/ICQ, Gadu-Gadu,GroupWise, IRC, Jabber, MSN, Napster e Yahoo, além de suportarconexões múltiplas, o que permite, entre outras coisas, que todas aspessoas que utilizam o computador possam estar conectadas ao mesmotempo. Outro ponto muito interessante é o excelente controle deprivacidade, onde pode-se determinar facilmente quais as pessoas quepodem conversar com você, além do excelente número de recursos depersonalização da exibição de informações, temas para personalizar suaaparência e plugins que lhe adicionam recursos.

✔ GAIM-vv : O GAIM-vv é uma versão do Gaim com suporte a áudio e vídeo,não suportados pelo Gaim original.

✔ Kopete : Outro programa de mensagens instantâneas muito popular, oKopete, assim como o Gaim, possui suporte a diversos protocolos econexões múltiplas. A diferença maior está na interface, na localizaçãodas opções e nos recursos.

✔ aMSN : Esse poderoso aplicativo é um clone do MSN Messenger daMicrosoft, muito similar tanto na aparência quanto nos recursos. Suportaapenas o protocolo MSN, e possui suporte a temas para personalizar aaparência e plugins para adicionar recursos.

✔ Xchat : Excelente cliente de IRC, com diversas ferramentas para autilização desse protocolo de comunicação tão difundido, tais como listade servidores, busca de canais, notificação de amigos, gerenciador detransferência de arquivos, múltiplas conexões, além de uma interfacemuito bela, com suporte a transparências e plugins/scripts.

✔ Irssi : Cliente de IRC para modo texto, extremamente leve e versátil. Umdos seus recursos mais úteis é o suporte ao bash completion, quecompleta o caminho de diretórios e arquivos automaticamente através douso da tecla TAB, muito útil na hora de enviar arquivos.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 128

Page 129: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

8.3 - Multimídia

✔ Reprodutores (Players)

✔ XMMS : O X Multimedia System é um clone do popular Winamp paraWindows, sendo muito compatível com esse, suportando suas skins ealguns de seus plugins. A princípio, o XMMS reproduz apenas áudio, masexistem plugins que permitem que ele reproduza vídeo.

✔ Xine : O Xine é um reprodutor multimídia poderoso, altamentepersonalizável, utilizado principalmente para reprodução de vídeos. Seusrecursos incluem seleção de drivers de áudio e vídeo, configuração desubtítulos, efeitos de vídeo, suporte a TV, entre tantos outros.

✔ Kaffeine : O Kaffeine é um frontend para outros reprodutores multimídia(o padrão é o Xine), feito para o KDE. Entre seus recursos adicionais estãoa integração a browsers, permitindo reproduzir streamings criados para oWindows Media Player.

✔ Amarok : Reprodutor para o KDE, extremamente poderoso, utiliza umbanco de dados MySQL ou SQLite para armazenar seus dados. Sua playlistinteligente analisa as preferências musicais do usuário, e reproduzseqüencialmente as músicas no seu estilo preferido. Outro recursointeressante é a busca por capas, que procura na Internet pela capa doálbum a que cada música pertence, para que seja exibido durante areprodução. Sua aparência é totalmente personalizável através de skins,e possui suporte a plugins que lhe incorporam recursos adicionais.

✔ Conversores

✔ RipperX : O RipperX é um excelente programa para converter áudio deCD para formato digital, com suporte a CDDB, que procura na Internetinformações sob o álbum a ser convertido, como artista e nomes dasfaixas. O RipperX utiliza o cdparanoia para extrair as músicas dos CD's, edepois convertê-as para o formato escolhido (MP3, Ogg Vorbis, WMA,WAV) através do codec apropriado.

✔ Grip : Como o RipperX, o Grip utiliza o cdparanoia para extrair as músicasdo CD, possui suporte a CDDB e suporta diversos formatos de áudio. Asdiferenças maiores ficam por conta da interface.

✔ Avidemux : Esse é, sem dúvida, um dos mais poderosos conversoresmultimídia que se conhece. Leve e versátil, o avidemux pode converter

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 129

Page 130: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

entre formatos de áudio e vídeo. Possui suporte a extração de áudio evídeo de DVD's, pode extrair áudio de arquivos de vídeo, possui diversosfiltros, inclusive suporte a legendas, ajuste de volume, controle de cor,desentrelace e recursos básicos de edição.

✔ Editores

✔ Ardour : O Ardour é um software de edição de áudio profissional,extremamente poderoso, com suporte a múltiplas pistas e diversos filtrosde efeitos.

✔ Protux : Criado por brasileiros e hoje mantido por desenvolvedores detodo o mundo, o Protux é um software de edição de áudio profissional,desenvolvido por profissionais como engenheiros de som, que incluem noProtux os recursos que precisam, o que o tornou uma alternativa muitosuperior à maioria das soluções proprietárias da categoria, como oSoundForge, da Sony.

✔ Rosegarden : Editor de MIDI profissioal, multipista, muito versátil epoderoso, possui os recursos esperados de um sequencer e editor demúsicas.

✔ Cinelerra : O Cinelerra é um editor de vídeo profissional, que misturarecursos encontrados em softwares comerciais como o Premiere e oAfterEffects, da Adobe. Possui suporte a múltiplas pistas de áudio e vídeo,transições e efeitos, pré-visualização, máscara, camadas e filtros deáudio. Desenvolvido para uso profissional, o Cinelerra trabalha apenascom vídeos em alta resolução nos sistemas NTSC, PAL ou HDTV e nosformatos DV ou sem compressão, o que exige um grande espaço emdisco e uma grande quantidade de memória RAM disponível. O Cinelerrapode se comunicar com dispositivos como placas de captura de vídeo erecepção de TV, além de câmeras digitais e outros dispositivos FireWire(IEEE 1394). Um ponto de destaque é o suporte a clustering, que permiteutilizar vários computadores para processar simultaneamente as tarefasde renderização de vídeo, acelerando muito esse processo sem anecessidade de investir muito em hardware poderoso.

✔ Kino : O Kino é um software profissional de editoração de DVD's,permitindo a geração de estruturas complexas, com menus avançados,múltiplas faixas de áudio, legendas, etc. O Kino trabalha com o formatoDV, nos sistemas NTSC e PAL, e tem suporte a dispositivos de captura devídeo.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 130

Page 131: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

8.4 - Gráficos

✔ The GIMP : O GNU Image Manipulator Program é um dos softwares livres demaior destaque, graças ao seu grande poder, que o tornam uma alternativa realao onipotente Photoshop, da Adobe. Dentre os seus recursos, merecemdestaque os seus filtros extremamente poderosos, além do Script-fu, quepermite criar rapidamente botões, animações e todo tipo de efeito para uso emlayouts de páginas para a Web.

✔ Sodipodi : Excelente software de desenho vetorial, cuja interface é parecidacom a do GIMP, dividida em várias janelas. O Sodipodi conta com as principaisferramentas para desenho, como bézier e formas prontas, sendo uma boaalternativa para o CorelDRAW, para trabalhos que não sejam extremamentecomplexos.

✔ Inkscape : Outro software de desenho vetorial que utiliza o mesmo engine dosodipodi. A diferença 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 suíte OpenOffice.org, o Draw é o softwarede desenho mais poderoso dentre os softwares livres disponíveis paraGNU/Linux, contendo todos os recursos básicos de desenho, além de outrasferramentas para a criação de formas de texto avançadas.

8.5 - Desktop Publishing (DTP)

✔ Scribus : Uma das áreas ainda pouco explorada no GNU/Linux é o DTP (DesktopPublishing), onde encontramos o Scribus, um software poderoso que podetranqüilamente substituir o já conhecido (e extinto) Adobe PageMaker.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 131

Page 132: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

8.6 - Visualizadores de Imagem

✔ Eog : Eye of Gnome, é o visualizador de imagens do GNOME. Possui funçõesbásicas de visualização.

✔ Gthumb : Visualizador de imagens poderoso, parecido com o ACDSee. Possuivisualização de thumbnails, slideshow, rotação de imagens, etc. Tudo que seprecisa de um visualizador de imagens.

✔ XV : Esse é um visualizador de imagens independente de plataforma, bastanteleve.

✔ Display : Esse programa faz parte do ImageMagick, leve e de uso simples.

8.7 - Emuladores

✔ DosEmu : Emulador que permite rodar aplicações 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/Linuxatravés do Wine.

✔ Cedega : O Cedega é um projeto derivado do Wine especialmente para jogos.Pode-se usar uma versão GPL do Cedega, ou então assinar o serviço daTransgaming, que dá assistência necessária para rodar praticamente qualquerjogo no GNU/Linux através desse emulador.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 132

Page 133: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

8.8 - Editores de Texto

✔ Gedit : Editor de texto do GNOME, que vem sendo desenvolvido com atecnologia GTK+. Apresenta uma interface gráfica amigável, suporte a abascomo o Mozilla Firefox, simples de usar, além de suporte a realce de código devárias linguagens de programação.

✔ Kate : Editor de texto que acompanha o KDE, utiliza a biblioteca gráfica QT.Seus recursos são mais focados para programação em si, não sendo muitodiferentes dos do Gedit.

✔ Vi/Vim : O VI é um dos editores de texto mais antigos. Independente deplataforma, ele é encontrado em quase todos os sistemas *NIX. É um editor detexto para console, então não há a necessidade de se usar um ambiente gráfico.Ele é um pouco confuso para quem utiliza o programa pela primeira vez, vistoque todos as operações são iniciadas a partir de uma seqüência de teclas. Éusado tanto para editar um simples texto como para programar. Torna-se muitoprático uma vez que sistemas GNU/Linux armazenam as suas configurações emarquivos de texto que podem, facilmente, ser editados pelo VI. O VIM(abreviatura de vi improved) é uma variação do vi com alguns recursos extras.O uso do vim é igual ao do vi, exceto pelas funções adicionais não encontradasneste. Para aqueles que não abrem mão de uma interface gráfica, há umfrontend para o vi/vim, chamado Gvim. Construído em GTK, oferece um confortoa mais para os usuários inexperientes.

✔ Pico : Outro editor de texto para console, mais simples de utilizar. Seuscomandos são feitos pela tecla CTRL+<letra>, sendo que há um menu na parteinferior 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 necessários para o webmaster desenvolverdesde sites simples em HTML até complexos sistemas Web em PHP.

✔ Bluefish : Tão ou mais poderoso que o Quanta, o Bluefish utiliza a bibliotecagráfica GTK, possui suporte a diversas linguagens, além de ferramentas paraconfiguração de CSS e acesso a banco de dados MySQL.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 133

Page 134: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Eclipse : IDE para desenvolvimento em Java, que oferece com amplos einovadores recursos de produtividade como refactoring, geração de código emuitos outros auxílios. Sua interface gráfica é própria, o que lhe confere umainterface com o usuário muito rica de componentes gráficos sem abrir mão dodesempenho, e possui suporte a plugins que lhe conferem todo tipo defuncionalidades extras.

✔ Anjuta : Anjuta é uma IDE para desenvolvimento em C/C++, com muitosrecursos e suporte a integração com softwares para RAD, como o Glade.

✔ Glade : Ferramenta para RAD (Rapid Application Development), que permitedesenvolver facilmente aplicativos gráficos para a biblioteca GTK. Utiliza váriaslinguagens, entre elas Python. Seus códigos são gravados em arquivos XML, oque permite a fácil integração com outros aplicativos de desenvolvimento, comoo anjuta. Outro recurso interessante é a geração do código em linguagem C querealiza a chamada dos componentes gráficos GTK.

✔ jEdit : O jEdit é uma IDE de desenvolvimento para mais de 130 linguagens,suportando destaque de sintaxe para todas elas. Desenvolvido em Java, ele rodaem MacOS, OS/2, UNIX, VMS e Windows. Seu forte é o suporte a macros eplugins, desenvolvidos pelos seus usuários e disponibilizados no site oficial dojEdit, que agilizam o desenvolvimento dos aplicativos.

8.10 - Terminais Gráficos

✔ Gnome-Terminal : Terminal do GNOME, muito customizável, comtransparências e efeitos diversos, entretanto um pouco pesado.

✔ Konsole : Terminal do KDE. Possui os mesmos recursos do Gnome-Terminal.

✔ Xterm : O terminal mais simples e minimalista, é o terminal que acompanha oXfree86 e X.org. Não possui muitos recursos, sendo o seu grande atrativo avelocidade de abertura, ideal para máquinas modestas e para usuários quecostumam abrir um grande número de janelas de terminal simultaneamente.

✔ Aterm : O terminal usado pelo AfterStep, muito popular entre os usuários porpermitir a completa personalização, com transparências, cores de fundo, etc.

✔ Eterm : Terminal do Enlightment, possui alguns recursos semelhantes aoAterm.

✔ RXVT : Outro terminal minimalista. Como o Xterm, ele é presente na maiorparte das distribuições.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 134

Page 135: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

8.11 - Onde procurar softwares para GNU/Linux

✔ SourceForge : Pense em um local onde milhares de desenvolvedores deSoftware Livre têm liberdade para desenvolver seus projetos sem se preocuparcom hospedagem, criando uma comunidade de desenvolvimento. Pois bem,esse projeto existe e se chama Souceforge http://sourceforge.net. Mas o que é oSourceForge? Pois bem, o SourceForge é uma página que incentiva a criação decomunidades de desenvolvimento de Software Livre. Essas comunidadesrecebem, gratuitamente, serviços de hospedagem, fórum, bugzilla, enfim, tudoque um projeto de software precisa para crescer. Para se ter uma idéia, existemcerca de 100.000 projetos somente nesse site. Alguns deles são bemconhecidos, outros nem tanto. Qualquer projeto cuja home page sejahttp://NOME.sourceforge.net é um dos membros dessa comunidade. Não háapenas software para GNU/Linux no SourceForge. Estão presentes tambémsoftwares para MacOS, Windows, *NIX, etc. É claro, só podem fazer parte dessacomunidade projetos de Software Livre, publicados sob a licença GPL ou algumaoutra aceita pelo projeto. Esse é um dos lugares onde se pode achar softwarelivre de boa qualidade, ou criar um projeto próprio e usufruir das regaliasoferecidas pelo SourceForge.

✔ FreshMeat : Outro lugar parecido com esse é o FreshMeat http://freshmeat.net,que também conta com uma grande quantidade de softwares. Se você for ver alista de projetos mais populares, verá grandes projetos, como o Mplayer, oMySQL, etc. Um diferencial do FreshMeat é a seção de temashttp://themes.freshmeat.net, com temas para gerenciadores de janelas.

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 135

Page 136: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 136

Page 137: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

Capítulo 9

BibliografiaBibliografia

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 137

Page 138: Apostila gnulinux modulo_1__introducao

GNU/Linux - módulo 1 - Introdução

✔ Apostila do Curso de Linux do Artur de Paula Coutinhohttp://geocities.yahoo.com.br/arturpc

✔ Guia Bozo Linux - Davidson Rodrigues Paulohttp://guiabozolinux.sourceforge.net/

✔ Guia Foca Linux - Gleydson Maziolli da Silvahttp://focalinux.cipsga.org.br/

✔ Site do Bruno Torreshttp://www.brunotorres.net/

✔ Google - :-)http://www.google.com.br

✔ Documentação da Debian-BR-CDDhttp://cdd.debian-br.org/project/

✔ Dicas-Lhttp://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/

Diretoria de Transferência Tecnológica – Centro de Computação – Unicamp 138