Você está na página 1de 88

Guia de Estudo

LPIC 101
por Luciano Antonio Siqueira

Lanado sob os termos da Gnu Free Documentation License

ndice
Introduo.............................................................................................................................................5 Porque este documento foi escrito?............................................................................................5 Quem se Destina.....................................................................................................................5 Verso Atualizada do Guia.........................................................................................................5 Contribuies..............................................................................................................................5 Informaes de Copyright...........................................................................................................5 Pr-requisitos..............................................................................................................................6 Convenes usadas neste documento.........................................................................................6 Tpico 101: Hardware e Arquitetura....................................................................................................7 Objetivo 1.101.1: Configurao de Atributos Fundamentais de BIOS ..........................................7 Recursos de Hardware................................................................................................................7 Comandos para inspecionar dispositivos....................................................................................8 Objetivo 1.101.3: Configurao de Modems e Placas de som........................................................9 Modems.......................................................................................................................................9 Placas de Som...........................................................................................................................10 Objetivo 1.101.4: Configurao de Dispositivos no IDE............................................................11 Dispositivos SCSI (scuzzy).......................................................................................................11 Objetivo 1.101.5: Configurao de Placas de Expanso Diversas................................................12 Objetivo 1.101.6: Configurao de Dispositivos de Comunicao...............................................12 ISDN.........................................................................................................................................12 DSL...........................................................................................................................................13 Objetivo 1.101.7: Configurao de Dispositivos USB..................................................................13 Tpico 102: Instalao do GNU/Linux e Administrao de Pacotes.................................................15 Objetivo 1.102.1: Criao de Esquemas de Parties de Disco....................................................15 A Partio Swap........................................................................................................................16 Objetivo 1.101.2: O Gerenciador de Boot.....................................................................................16 LILO..........................................................................................................................................16 GRUB........................................................................................................................................18 Dispositivos de Boot Alternativos............................................................................................18 Objetivo 1.102.3: Compilar e Instalar Programas a partir do Cdigo Fonte.................................19 Compresso e Descompresso de Arquivos.............................................................................19 Compilar e Instalar Programas..................................................................................................20 Objetivo 1.102.4: Bibliotecas Compartilhadas..............................................................................21 Objetivo 1.102.5: Administrao de Pacotes Debian (.deb)..........................................................21 Objetivo 1.102.6: Administrao de Pacotes RedHat (.rpm)........................................................21 Modos Maior e Menor..............................................................................................................21 Assinaturas de Pacotes..............................................................................................................22 Integridade do Pacote................................................................................................................23 Arquivos e Diretrios Pertinentes ao rpm.................................................................................23 Exemplos de uso do rpm...........................................................................................................23 Tpico 103: Comandos GNU e Unix ................................................................................................25 Objetivo 1.103.3: Trabalhando na Linha de Comando..................................................................25 Variveis...................................................................................................................................25 Variveis pr-definidas.............................................................................................................26 Variveis especiais....................................................................................................................27 Histrico de comandos..............................................................................................................27 Comandos Seqenciais.............................................................................................................28 Auto-Completar Comandos e Caminhos..................................................................................28 Objetivo 1.103.2: Processar Fluxos de Texto Atravs de Filtros..................................................28 Objetivo 1.103.3: Gerenciamento Bsico de Arquivos.................................................................33 Diretrios e Arquivos................................................................................................................33 Encontrando Arquivos com o Comando find...........................................................................34

Caracteres Coringa (file globbing)............................................................................................35 Objetivo 1.103.4: Fluxos, Canalizao e Redirecionamentos de Sada.........................................36 Redirecionamento.....................................................................................................................36 Canalizao...............................................................................................................................37 Objetivo 1.103.5: Criar, Monitorar e Finalizar Processos.............................................................38 Tarefas em Primeiro e Segundo Plano......................................................................................39 Objetivo 1.103.6: Modificar a Prioridade de Execuo de um Processo......................................40 Objetivo 1.103.7: Procurar em Arquivos de Texto Usando Expresses Regulares......................40 Expresses Regulares e grep.....................................................................................................40 sed.............................................................................................................................................41 Objetivo 1.103.8: Edio Bsica de Arquivos com o vi................................................................42 Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS...................................45 Objetivo 1.104.1:Criao de Parties e Sistemas de Arquivos....................................................45 fdisk...........................................................................................................................................45 Criao de Sistemas de Arquivos..............................................................................................46 Partio Swap............................................................................................................................46 Objetivo 1.104.2: Manuteno da Integridade de Sistemas de Arquivos......................................47 Checando o Sistema de Arquivos.............................................................................................47 Examinando e corrigindo o Sistema de Arquivos.....................................................................47 Uso do Disco.............................................................................................................................47 Objetivo 1.104.3: Controle da Montagem e Desmontagem dos Sistemas de Arquivos................48 /etc/fstab....................................................................................................................................48 mount........................................................................................................................................48 Opes de montagem................................................................................................................48 Objetivo 1.104.4: Administrao de Cotas de Disco.....................................................................49 Objetivo 1.104.5: Controle de Permisses e Acesso Arquivos...................................................50 Permisses Octais.....................................................................................................................51 umask........................................................................................................................................51 suid e sgid..................................................................................................................................52 A Permisso sticky....................................................................................................................52 Permisses Especiais em Formato Octal..................................................................................53 Atributos chattr.........................................................................................................................53 Listas de Controle de Acesso ACL........................................................................................54 Objetivo 1.104.6: Modificar Donos e Grupos de Arquivos...........................................................54 Objetivo 1.104.7: Criar e Alterar Links Simblicos e Links Fsicos.............................................55 Hardlinks (Links Fsicos)..........................................................................................................55 Softlinks (Links Simblicos)....................................................................................................55 Objetivo 1.104.8: Encontrar Arquivos de Sistema e Conhecer sua Localizao Correta.............56 Hierarquia Padro de Sistemas de Arquivos (FHS)..................................................................56 Encontrando Arquivos..............................................................................................................57 Tpico 110: O Sistema de Janelas X..................................................................................................59 Objetivo 1.110.1: Instalar e Configurar o X11R6.........................................................................59 Compatibilidade de Hardware..................................................................................................59 Instalando o X11R6..................................................................................................................59 Configurando o X11R6.............................................................................................................59 Ajustes da Configurao...........................................................................................................60 Sees de XF86Config e xorg.conf..........................................................................................60 Fontes........................................................................................................................................62 Instalar fontes Xft......................................................................................................................62 Instalar fontes Core...................................................................................................................62 Servidor de Fontes xfs...............................................................................................................63 Objetivo 1.110.2: Configurar o Gerenciador de Display...............................................................63 xdm............................................................................................................................................64 gdm............................................................................................................................................65

kdm............................................................................................................................................65 Objetivo 1.110.4: Instalar e Personalizar um Ambiente de Gerenciador de Janelas.....................65 Menus........................................................................................................................................65 Emulador de Terminal..............................................................................................................66 Comportamento de Teclado e Mouse.......................................................................................66 Bibliotecas Adicionais de Aplicativos......................................................................................67 DISPLAY Remoto....................................................................................................................67 Apndice 1..........................................................................................................................................69 Objetivos detalhados para o exame 101........................................................................................69 Exam 101: Detailed Objectives.....................................................................................................69 Topic 101: Hardware & Architecture.......................................................................................69 Topic 102: Linux Installation & Package Management...........................................................71 Topic: 103 GNU & Unix Commands.......................................................................................74 Topic 104: Devices, Linux Filesystems, Filesystem Hierarchy Standard................................77 Topic 110: The X Window System...........................................................................................80 Apndice 2..........................................................................................................................................83 GNU Free Documentation License................................................................................................83

Introduo
Porque este documento foi escrito?
Este material foi escrito quando da minha prpria preparao para os exames da certificao LPI nvel 1. Depois de terminado, considerei que poderia ser til para outras pessoas que buscam a certificao e sentem falta de material especfico em portugus. O exame para obteno do certificado dividido em duas provas, 101 e 102. Este volume especfico para a prova 101 e foi escrito tendo como referncia os objetivos detalhados para prova 101 fornecidos pelo prprio LPI. A lista dos objetivos detalhados para o exame 101 pode ser conferida no primeiro apndice do presente volume. Mais informaes sobre o LPI e suas certificaes em http://www.lpi.org/. Todo material contido neste guia foi basicamente retirado de HOWTOs, pginas de manual de programas e demais documentos disponveis atravs do Linux Documentation Project. Outra importante fonte foi o livro Linux System Administration 1, lanado pelo LinuxIT, disponvel em http://savannah.nongnu.org/projects/lpi-manuals/.

Quem se Destina
O presente material destina-se todos que desejam obter a certificao Linux LPI nvel 1. No entanto, o guia tambm poder ser til a quem no pretende obter a certificao, mas interessa-se em aprofundar seus conhecimentos em administrao de sistemas GNU/Linux.

Verso Atualizada do Guia


Verses atualizadas deste guia podem ser obtidas em http://lcnsqr.byethost15.com/.

Contribuies
Todos leitores so convidados a contribuir para o guia. Sugestes para aprofundar os tpicos e exerccios para cada objetivo sero muito bem vindos. Caso identifique informaes incorretas, erros de ortografia ou outros equvocos, informe o autor: <lcnsqr em yahoocombr>

Informaes de Copyright
Copyright (c) Luciano Antonio Siqueira. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Leia The GNU Manifesto se voc quiser saber porqu essa licena foi escolhida para esse material. O guia foi escrito com todo esforo para garantir a confiabilidade das informaes contidas. No entanto, as informaes aqui contidas so oferecidas sem qualquer garantia, expressa ou implcita. O responsvel pelo material aqui apresentado no se responsabiliza por possveis danos causados ou alegao do gnero em relao este livro. Tampouco a leitura deste guia garantia de sucesso na obteno da certificao LPI nvel 1.

Introduo Os logotipos, marcas registradas e smbolos usados neste livro so de propriedade de seus respectivos proprietrios.

Pr-requisitos
Para melhor utilizao deste guia, presume-se que o leitor j esteja familiarizado com o sistema GNU/Linux. Portanto, os assuntos so abordados de maneira direta, com objetivo de serem apenas referncia rpida para posterior estudo e exerccio mais aprofundados. O material foi escrito e testado num computador rodando Linux Slackware 10.2.

Convenes usadas neste documento


Comandos, opes de comandos, caminhos para arquivos/diretrios, sadas de programas e informaes tiradas de telas de terminal em geral so apresentados com fonte de tamanho fixo: Exemplo de tabela de rotas mostradas com o comando route:
Kernel IP routing table Destination Gateway 200.228.60.0 0.0.0.0 127.0.0.0 0.0.0.0 0.0.0.0 200.228.60.1 Genmask 255.255.255.0 255.0.0.0 0.0.0.0 Flags U U UG Metric 0 0 0 Ref 0 0 0 Use 0 0 0 Iface eth0 lo eth0

Argumentos de comandos so geralmente mostrados em itlico, significando que devem ser substitudos por valor apropriado: shutdown [opo] horrio [mensagem] Tambm so mostrados em itlico nomes e termos especficos ao tema: Projetos GNU geralmente incluem documentaes como FAQ, Readme, ChangeLog e Guia de usurio/administrador. Podem estar no formato ASCII, HTML, LateX ou postscript. Estes arquivos podem ser encontrados em /usr/share/doc, em diretrios correspondentes aos programas. Termos em negrito so usados quando introduzidos ou muito relevantes para o assunto: Uma conta de usurio pode ser apagada com o comando userdel. A opo -r assegura que o diretrio pessoal do usurio tambm seja apagado.

Tpico 101: Hardware e Arquitetura


Objetivo 1.101.1: Configurao de Atributos Fundamentais de BIOS
Peso: 1

Recursos de Hardware
O hardware bsico do sistema configurado atravs do utilitrio de configurao de BIOS, que pode ser acessado no incio do boot da mquina. Atravs deste utilitrio, possvel liberar e bloquear perifricos integrados, ativar proteo bsica contra erros (proteo bsica contra vrus e S.M.A.R.T.) e configurar endereos I/O, IRQ e DMA.

IRQ: Requisio de Interrupo do dispositivo para a CPU, que interrompe a atividade em andamento e processa a instruo enviada pelo dispositivo. I/O: Endereo especfico no mapa de memria do sistema. A CPU ir se comunicar com o dispositivo lendo e escrevendo neste endereo. DMA: Canal que permite certos dispositivos acesso direto memria sem intermdio da CPU.

Recursos padro utilizados por dispositivos comuns: Dispositivo /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 /dev/lp0 /dev/lp1 Placa de Som 0x03f8 0x02f8 0x03e8 0x02e8 0x378 0x278 0x220 Porta I/O 4 3 4 3 7 5 IRQ

comum que algumas mquinas, como servidores dedicados, sejam acessados apenas remotamente e no tenham um teclado conectado. Em caso de algum problema que faa a mquina desligar, como interrupo no fornecimento de energia, importante que a mquina reinicie e volte a operar normalmente. Alguns BIOS procuram por um teclado e interrompem o boot caso no o encontrem. Para esse tipo de mquina sem teclado, imprescindvel que o BIOS esteja configurado para no checar por teclado durante o boot. O kernel do Linux armazena informaes sobre recursos de dispositivos no diretrio /proc, nos arquivos:

/proc/dma /proc/interrupts /proc/ioports /proc/pci

Tpico 101: Hardware e Arquitetura Trecho exemplo de /proc/ioports:


0000-001f 0020-0021 0040-0043 0050-0053 0060-006f 0070-0077 0080-008f 00a0-00a1 00c0-00df 00f0-00ff 0170-0177 01f0-01f7 0376-0376 0378-037a 03c0-03df 03f6-03f6 03f8-03ff (...) : : : : : : : : : : : : : : : : : dma1 pic1 timer0 timer1 keyboard rtc dma page reg pic2 dma2 fpu ide1 ide0 ide1 parport0 vesafb ide0 serial

Comandos para inspecionar dispositivos


lspci Lista informaes de chipset dos componentes PCI. Com a opo -v lista I/O e IRQ dos dispositivos. Exemplo de lspci:
# lspci -v (...) 00:0f.1 Communication controller: C-Media Electronics Inc CM8738 (rev 10) Subsystem: C-Media Electronics Inc CM8738 Flags: medium devsel, IRQ 9 I/O ports at dc80 [size=64] Capabilities: [40] Power Management version 2 01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 630/730 PCI/AGP VGA Display Adapter (rev 20) (prog-if 00 [VGA]) Subsystem: Silicon Integrated Systems [SiS] 630/730 PCI/AGP VGA Display Adapter Flags: 66Mhz, medium devsel BIST result: 00 Memory at e0000000 (32-bit, prefetchable) [size=128M] Memory at efee0000 (32-bit, non-prefetchable) [size=128K] I/O ports at cc80 [size=128] Expansion ROM at <unassigned> [disabled] Capabilities: [40] Power Management version 1 Capabilities: [50] AGP version 2.0

Dmesg Mostra as mensagens do kernel, da identificao do hardware em diante. Essa informao est disponvel em /var/log/dmesg e /var/log/messages. Exemplo de dmesg:

Tpico 101: Hardware e Arquitetura


# dmesg (...) ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A parport0: PC-style at 0x378 (0x778) [PCSPP(,...)] parport0: irq 7 detected lp0: using parport0 (polling). io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered Floppy drive(s): fd0 is 1.44M (...)

Objetivo 1.101.3: Configurao de Modems e Placas de som


Peso: 1

Modems
Para utilizar um modem externo, tudo que precisa ser considerado a porta serial a qual ele est conectado. Se o modem for PCI interno, precisar-se- saber qual a porta I/O e a interrupo utilizadas pelo mesmo. Isso pode ser conseguido com o comando lspci -v. Para configurar a porta serial do modem interno, usa-se o comando setserial. Para checar se uma porta serial est em uso, usa-se setserial -g dispositivo. Checando portas serias com setserial:
# setserial /dev/ttyS0, /dev/ttyS1, /dev/ttyS2, /dev/ttyS3, -g /dev/ttyS[0123] UART: 16550A, Port: 0x03f8, IRQ: 4 UART: unknown, Port: 0x02f8, IRQ: 3 UART: unknown, Port: 0x03e8, IRQ: 4 UART: unknown, Port: 0x02e8, IRQ: 3

No caso do exemplo, apenas a primeira porta serial (/dev/ttyS0) est em uso. s demais podem ser atribudos os valores de recursos do modem conseguidos atravs do comando lspci -v. Por exemplo, se os valores relativos ao modem forem I/O 0xdc80 e IRQ 9 pode-se atribuir esses valores porta /dev/ttyS3, que est livre:
# setserial /dev/ttyS3 port 0xdc80 irq 9 autoconfig

e cria-se um link simblico /dev/modem para /dev/ttyS3:


# ln -s /dev/ttyS3 /dev/modem

O comando setserial tambm usado para controlar a velocidade da porta serial. Usar /dev/ttyS3 a 115kb:
# setserial /dev/ttyS3 spd_vhi

Argumentos setserial de velocidade: spd_hi 56kb quando solicitado for 38.4 spd_vhi 9

Tpico 101: Hardware e Arquitetura 115kb quando solicitado for 38.4 spd_shi 230kb quando solicitado for 38.4 spd_warp 460kb quando solicitado for 38.4 spd_cust Usar um divisor diferente quando solicitado for 38.4. A velocidade ser o valor do argumento baud_base dividido pelo valor do argumento divisor. spd_normal 38.4kb quando solicitado for 38.4 A configurao do modem para fazer ligaes dial-up pode ser feita atravs do utilitrio wvdial ou do minicom. O script wvdialconf busca por um modem nas portas seriais e USB automaticamente e gera o arquivo /etc/wvdial.conf. Editando este arquivo com as informaes sobre o provedor de internet, a ligao feita com o wvdial:
# wvdial <nome do provedor>

No minicom, os processos de configurao, discagem e autenticao so feitos manualmente, na janela do terminal do programa. Para configurar o modem, o minicom deve ser iniciado no modo de configurao:
# minicom -s

Diferente do wvdial, o minicom no executa o pppd automaticamente, cabendo ao usurio faz-lo para criar a interface de rede e ela um nmero IP. Esses procedimentos sero abordados mais profundamente no no tpico 112 do exame 102, objetivo 1.112.4: Configurar o GNU/Linux com um cliente PPP. Se no foi possvel a comunicao com o modem atravs desses procedimentos e o modem est devidamente conectado mquina, muito provavelmente trata-se de um winmodem. Winmodems so dispositivos dependentes de software adicional muitas vezes desenvolvido exclusivamente para plataforma MS-Windows. Dessa forma, se esse software especfico no estiver disponvel tambm para GNU/Linux, o modem no funcionar.

Placas de Som
H dois tipos principais de suporte a placas de som no GNU/Linux, OSS (Open Sound System) e ALSA (Advanced Linux Sound Architeture). Para encontrar o dispositivo de som:
# lspci | grep -i audio 00:0f.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)

Caso o dispositivo no pde ser encontrado dessa forma, toda a sada de dmesg e lspci pode ser consultada para procurar o dispositivo correspondente ao udio. Identificada a placa, possvel carregar o mdulo correspondente, seja ele OSS ou ALSA. A entrada em /etc/modules.conf referente ao primeiro dispositivo de udio encontrado 10

Tpico 101: Hardware e Arquitetura sound-slot-0. Para carregar automaticamente a placa atravs do /etc/modules.conf, adicione neste arquivo a linha
alias sound-slot-0 <nome do mdulo>

Informaes mais aprofundadas sobre a instalao e carregamento de mdulos do kernel sero abordadas no tpico 105 do exame 102: Kernel.

Objetivo 1.101.4: Configurao de Dispositivos no IDE


Peso: 1

Dispositivos SCSI (scuzzy)


H dois tipos de dispositivos SCSI:

8 bit: 8 dispositivos incluindo o controlador. 16 bit: 16 dispositivos incluindo o controlador.

Dispositivos SCSI so identificados atravs de um conjunto de trs nmeros chamado SCSI_ID: 1. O Canal SCSI. Cada adaptador SCSI suporta um canal de dados no qual so anexados os dispositivos SCSI. So numerados a partir de zero. 2. O ID do dispositivo. A cada dispositivo atribudo um nmero ID nico altervel atravs de jumpers. A gama de IDs vai de 0 a 7 em controladores de 8 bit e de 0 a 15 em controladores de 16 bit. O ID do controlador costuma ser 7. 3. O nmero lgico da unidade (LUN). usado para determinar diferentes dispositivos dentro de um mesmo alvo SCSI. Pode indicar uma partio em um disco ou um dispositivo de fita especfico em um dispositivo multi-fita. Hoje no muito utilizado pois adaptadores SCSI esto mais baratos e podem comportar mais alvos por barramento. Todos dispositivos SCSI so listados em /proc/scsi/scsi:
# cat /proc/scsi/scsi Attached devices: Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: HL-DT-ST Model: RW/DVD GCC-4521B Rev: 1.00 Type: CD-ROM ANSI SCSI revision: 02

O comando scsi_info usa as informaes deste arquivo para mostrar o SCSI_ID e o modelo do dispositivo solicitado:
# scsi_info /dev/scd0 SCSI_ID="0,0,0" HOST="1" MODEL="HL-DT-ST RW/DVD GCC-4521B" FW_REV="1.00"

Por padro, o dispositivo SCSI de boot o de ID 0, o que pode ser alterado na BIOS SCSI. Se existirem tanto dispositivos SCSI quanto IDE, a ordem do boot precisa ser especificada na BIOS da mquina.

11

Tpico 101: Hardware e Arquitetura

Objetivo 1.101.5: Configurao de Placas de Expanso Diversas


Peso: 3 A configurao de placas de expanso diversas engloba os aspectos abordados nos objetivos anteriores, mais um conhecimento mais slido sobre coldplug, hotplug e inspeo de hardware. Em linhas gerais, coldplug significa a impossibilidade de se conectar dispositivo sem a necessidade de desligar a mquina. Exemplos de dispositivos coldplug so placas PCI, ISA e dispositivos IDE. Na maioria dos computadores, CPU e pentes de memria so coldplug. Porm, alguns servidores de alta performance suportam hotplug para esses componentes. Hotplug o sistema que permite conectar novos dispositivos mquina em funcionamento e uslos imediatamente, como no caso de dispositivos USB. O sistema Hotplug foi incorporado ao ncleo do modelo de driver do kernel 2.6, assim qualquer barramento ou classe pode disparar eventos hotplug quando um dispositivo conectado ou desconectado. Assim que um dispositivo conectado ou desconectado, o hotplug dispara um evento correspondente, geralmente trabalhando junto do sub-sistema udev, que atualiza os os arquivos de dispositivos em /dev. O hotplug precisa estar liberado no kernel, atravs da opo CONFIG_HOTPLUG. Dessa forma, haver o arquivo /proc/sys/kernel/hotplug contendo o caminho para o programa hotplug (normalmente em /sbin/hotplug). A ao tomada pelo hotplug depender do nome do agente passado pelo kernel (nomes de agentes podem ser usb, pci, net, etc.). Para cada agente existe um script correspondente em /etc/hoplug/, que se encarrega de configurar corretamente o dispositivo no sistema. Mesmo alguns dispositivos coldplug so configurados pelo sistema hotplug. Na hora do boot, o script /etc/init.d/hotplug (ou /etc/rc.d/rc.hotplug no slackware) dispara os agentes em /etc/hotplug/ para configurar aqueles dispositivos presentes antes da mquina ser ligada.

Objetivo 1.101.6: Configurao de Dispositivos de Comunicao


Peso: 1

ISDN
H vrias maneiras de se usar ISDN no GNU/Linux. A mais simples empregar um dispositivo ISDN externo que disca, autentica e abre a sesso sozinho, disponibilizando a conexo pela interface ethernet. Se o computador est ligado diretamente conexo ISDN, necessrio um dispositivo chamado Terminal Adapter (TA). Em TAs conectados porta serial e em alguns dispositivos USB, aparecer uma interface de comandos AT exatamente como se o TA fosse um modem. simples porm pouco eficiente. Outra maneira mais eficiente de usar uma linha ISDN usar um adaptador (PCI, ISA, PCCARD) conectado diretamente ao barramento da mquina. O utilitrio isdn4linux incorpora muitos dos percalos de uma conexo ISDN e a estabelece com se fosse uma interface de rede convencional.

12

Tpico 101: Hardware e Arquitetura

DSL
Como na conexo ISDN, o mais simples que um dispositivo DSL externo estabelea a conexo e aja como um roteador para a mquina. Se voc possui um modem DSL e seu provedor usa PPPoE (Point to Point Protocol over Ethernet) voc precisar de um cliente PPPoE. Neste caso, a ferramenta de conexo para DSL o pppoe.

Objetivo 1.101.7: Configurao de Dispositivos USB


Peso: 1 Dispositivos para interface USB (Universal Serial Bus) so divididos em classes:

Display Devices Communication Devices Audio Devices Mass Storage Devices Human Interface Devices (HID) OHCI (compaq) UHCI (intel) EHCI (USB v2.0)

A porta USB operada por um controlador (Host Controller):


Uma vez conectados, os dispositivos USB podem ser inspecionados com o comando lsusb.
# lsusb Bus 002 Bus 002 Bus 002 Bus 001 Device Device Device Device 003: 002: 001: 001: ID ID ID ID 05a9:a511 OmniVision Technologies, Inc. OV511+ WebCam 0f2d:9308 ViPower, Inc. 0000:0000 0000:0000

As informaes detalhadas sobre os dispositivos USB conectadas so armazenadas no arquivo /proc/bus/usb/devices. O controle dos dispositivos USB feito pelo hotplug. Etapas executadas quando uma cmera USB conectada ao computador: 1. Os mdulos USB do kernel identificam o evento USB e a ID vendor:product 2. Esses dados so passados para /sbin/hotplug (ou outro, se o indicado em /proc/sys/kernel/hotplug no for o padro) 3. O agente USB respectivo (/etc/hotplug/usb.agent) associa o dispositivo ao produto correspondente. A relao entre dispositivo e mdulo consta no arquivo /etc/hotplug/usb.distmap. O primeiro estgio envolve procedimentos do kernel, enquanto o segundo e terceiro estgio envolvem o mecanismo do hotplug. O mapa USB correto precisa estar disponvel para iniciar corretamente o dispositivo.

13

Tpico 102: Instalao do GNU/Linux e Administrao de Pacotes


Objetivo 1.102.1: Criao de Esquemas de Parties de Disco
Peso: 5 Para acessar recursos em disco o sistema utiliza um mecanismo chamado montagem. Em sistemas UNIX, significa anexar um disco a um diretrio, chamado ponto de montagem. Para o usurio, os recursos aparecem como uma rvore de diretrios e subdiretrios. A raiz da rvore de diretrios representada por uma barra / . necessariamente o primeiro diretrio a ter um dispositivo anexado. Depois de montada a raiz, os diretrios contidos neste dispositivo podero ser pontos de montagem para outros dispositivos. Processo de montagem: 1. O carregador de boot carrega o kernel e transmite as informaes sobre a localizao do dispositivo raiz. 2. Os demais dispositivos so montados conforme as instrues encontradas em /etc/fstab. Etapas da criao do layout de disco:

Criar parties de tamanho especfico Escolher o sistema de arquivos Determinar um ponto de montagem para cada partio

Duas parties o mnimo exigido em sistemas GNU/Linux, uma que ser a raiz / e outra que ser a partio de troca swap. Muitas vezes, pode haver um terceira partio pequena, no incio do disco, apenas para armazenar o kernel e o carregador de boot secundrio. Fora essas, no h regras inflexveis quanto criao de parties, devendo ser avaliado o melhor esquema para a funo que o sistema desempenhar. A partio raiz deve ser do tipo Linux Native, cujo cdigo 83 (0x83). Tudo no sistema poder existir diretamente no dispositivo raiz. No entanto, certos tipos de arquivos so processados de formas bem distintas de outros arquivos. Em certos casos, interessante criar uma partio distinta para certo diretrio, principalmente em servidores que so muito exigidos. Essa estratgia tambm impede que os dados no disco se fragmentem muito. Outra questo o backup. Enquanto certos arquivos no necessitam de backup, outros exigem-no. Mesmo dentre os quais realizado o backup, alguns so pouco alterados durante um determinado perodo enquanto que outros so constantemente alterados ou criados. A criao de parties diferentes para cada diretrio que comporte um tipo distinto de arquivos facilita as operaes de criao e recuperao de backup. Sugestes de diretrios que podem estar em outros dispositivos/parties: /var Este diretrio contm os as filas de email e impresso, que so muito manipuladas. H tambm os arquivos de log, cujo contedo est em constante alterao e crescimento. /usr 15

Tpico 102: Instalao do GNU/Linux e Administrao de Pacotes Programas, cdigos fonte e documentao. O ciclo de alterao desses arquivos longo. /tmp Espao temporrio utilizado por programas. Uma partio distinta para /tmp impedir que dados temporrios ocupem todo o espao no diretrio raiz, causando travamento do sistema. No necessita de backup. /home Diretrios pessoais do usurio. Uma partio distinta ajuda a limitar o espao disponvel para usurios comuns. /boot Ponto de montagem para a partio do kernel e do carregador de boot. Necessrio apenas caso o sistema exija que o kernel esteja antes do cilindro 1024 do disco.

A Partio Swap
Uma partio swap identificada pelo cdigo 82 (0x82), atribudo quando da sua criao. Geralmente, a partio swap do mesmo tamanho que o montante de memria RAM no sistema. Para servidores, esses nmero pode ser maior. Uma partio swap muito maior que isso provavelmente no ter o espao excedente utilizado. possvel haver mais de uma partio de swap. prefervel criar parties de swap nos dispositivos mais rpidos, se possvel em dispositivos distintos daqueles que tm seus dados muito acessados pelo sistema. Tambm possvel criar grandes arquivos como rea de swap, o que geralmente feito em situaes emergenciais, quando o sistema ameaa ficar sem memria disponvel:
# dd if=/dev/zero of=emerg.swp bs=1024k count=32 32+0 registros de entrada 32+0 registros de sada # mkswap emerg.swp Setting up swapspace version 1, size = 33550 kB no label, UUID=543baaad-d660-4a5d-881d-fb7f1485b992 # swapon emerg.swp # cat /proc/swaps Filename Type Priority /dev/hda2 partition /root/emerg.swp file

Size 160640 32760

Used 39760 0 -1 -2

Objetivo 1.101.2: O Gerenciador de Boot


Peso: 1 A MBR (Master Boot Record) ocupa o primeiro setor do disco (512 bytes). Este primeiro setor contm a tabela de parties e o carregador de boot. Terminado os procedimentos da BIOS, o carregador de boot disparado, que por sua vez procura na tabela de parties uma partio ativa e carrega o primeiro setor dessa partio.

LILO
O LILO (Linux Loader) dividido em trs componentes: 16

Tpico 102: Instalao do GNU/Linux e Administrao de Pacotes

lilo o carregador propriamente. instalado na MBR e carrega o boot loader de segundo estgio, geralmente localizado em /boot/boot.b /etc/lilo.conf arquivo de configurao para o lilo. Principais opes em /etc/lilo.conf:

boot Onde o lilo deve ser instalado. Geralmente na MBR, em /dev/hda. install O carregador de segundo estgio (/boot/boot.b o padro). prompt Oferece ao usurio a escolha do SO a iniciar. default Rtulo do dispositivo iniciado por padro. Se no houver, o primeiro listado em /etc/lilo.conf ser escolhido. timeout Associado a prompt, especifica a espera em dcimos de segundo. image ou other kernel ou dispositivo a ser carregado (usar other para outros sistemas). No incio do processo de boot, apenas os primeiros 1024 cilindros do disco estaro acessveis ao carregador de boot. Portanto, importante certificar-se de que a partio contendo o kernel (geralmente pequena, montada em /boot) esteja abaixo deste limite de 1024 cilindros) label Rtulo para a imagem de kernel root localizao do dispositivo contendo o sistema de arquivos raiz. read-only monta a raiz como somente leitura, para o fsck agir apropriadamente append passa parmetros para componentes compilados estaticamente no kernel linear/lba32 obriga o lilo a ler o disco usando endereamento de bloco linear. A opo linear geralmente usada para discos muito grandes e lba32 para permitir que o lilo leia alm dos primeiros 1024 cilindros do disco. Essas opes no so aconselhveis. message especifica um arquivo contendo uma mensagem a ser mostrada no painel de boot do lilo. delay tempo de espera para que o usurio invoque o prompt, caso este no for invocado automaticamente. vga valor numrico especificando as preferncias visuais do terminal

/sbin/lilo O utilitrio que l as configuraes em /etc/lilo.conf e instala o carregador de boot. Deve ser executado toda vez que uma alterao for feita ao /etc/lilo.conf

Exemplo de /etc/lilo.conf:
boot = /dev/hda message = /boot/boot_message.txt delay = 4 timeout = 110 vga = 788 image = /boot/vmlinuz root = /dev/hda3 label = Linux read-only other = /dev/hda1 label = Windows table = /dev/hda

17

Tpico 102: Instalao do GNU/Linux e Administrao de Pacotes

GRUB
O grub (Grand Unified Bootloader) uma alternativa ao lilo. Tambm instalado na MBR; pelo comando /sbin/grub ou pelo /sbin/grub-install, que obtm as instrues de /boot/grub/grub.conf. Principais sees de /boot/grub/grub.conf:

global

default imagem de boot padro (comea por 0) timeout tempo de espera para iniciar o boot, em segundos title nome para a imagem root localizao do carregador de segundo estgio e do kernel (hd0,0 = /dev/hda) kernel caminho para o kernel partir de root ro read-only initrd caminho para a imagem initrd

imagem

Diferente do lilo, o comando grub-install no precisa ser executado toda vez que forem feitas alteraes ao arquivo /boot/grup/grub.conf. Uma vez instalado, o carregador de boot do grub l o arquivo /boot/grub/grub.conf diretamente.

Dispositivos de Boot Alternativos


Um disquete de boot ser importante caso a MBR do disco tenha sido alterada e o sistema esteja inacessvel. Mesmo com a maioria dos Kernels atuais no mais cabendo num disquete, ainda assim possvel criar um disquete de boot com o lilo. Primeiro, o disquete dever ser formatado e ter um sistema de arquivos:
# fdformat /dev/fd0h1440

Usando o sistema de arquivos minix:


# mkfs -t minix /dev/fd0

Montando o disquete:
# mount /dev/fd0 /mnt/floppy

necessrio criar um arquivo de configurao do lilo alternativo, como /boot/lilo.floppy, contendo as informaes necessrias para criao do disquete de boot:
boot = /dev/fd0 map = /mnt/floppy/map compact image = /boot/vmlinuz root = /dev/hda3 read-only # O dispositivo de disquete # Substituir para o kernel do sistema # Substituir para a partio raiz do sistema

Agora o lilo pode ser instalado no disquete, usando o arquivo de configurao criado:
# lilo -C /boot/lilo.floppy

Desmontar o disquete:

18

Tpico 102: Instalao do GNU/Linux e Administrao de Pacotes


# umount /mnt/floppy

O disquete de boot est pronto. importante lembrar que disquetes de boot criados dessa forma s funcionaram na prpria mquina onde foram feitos. Caso sejam feitas alteraes no kernel ou localizao da partio raiz, as configuraes devero ser adequadas e o lilo reinstalado no disquete. A maioria das distribuies GNU/Linux fornece Cds de boot para instalao do sistema. Esses mesmos Cds podem ser usados para acessar e dar boot num sistema j instalado e que possa estar inacessvel por uma falha do carregador de boot. Para iniciar um sistema j instalado, os seguintes parmetros so passados no prompt de boot:
boot: linux root=/dev/hda3 noinitrd ro

Onde linux o nome do kernel e /dev/hda3 a partio raiz. J dentro do sistema, possvel reinstalar o carregador de boot. Geralmente ser necessrio alterar a seqncia dos dispositivos de boot no BIOS da mquina sempre que um dispositivo de boot alternativo for utilizado. Para fazer o backup da MBR, basta copiar os primeiros 512kb do disco, o que pode ser feito usando o comando dd:
# dd if=/dev/hda of=mbr.backup bs=1k count=512

Este backup pode ser guardado num disquete e depois restaurado para a MBR:
# dd if=mbr.backup of=/dev/hda

Objetivo 1.102.3: Compilar e Instalar Programas a partir do Cdigo Fonte


Peso: 5

Compresso e Descompresso de Arquivos


A maioria dos programas distribudos em cdigo fonte apresentam-se na forma de arquivos tar (tape archiver) comprimidos. Arquivos tar so vrios arquivos aglutinados em um s, o que facilitaa distribuio. Tipos de compactao: Compresso compress gzip gzip2 Descompresso uncompress gunzip bunzip2 Descompresso cat zcat zcat bzcat .Z .gz .bz2 Extenso

Os comandos zcat e bzcat descomprimem para a sada padro, ou seja, jogam o contedo descomprimido na tela do terminal. Detalhes sobre o que a sada padro e como utiliz-la no tpico 103, objetivo 1.103.4: Usar fluxos, canalizao e redirecionamentos. Essas ferramentas de compresso no concatenam arquivos, por isso so utilizadas junto com o comando tar. Para facilitar esse procedimento, a compresso e descompresso podem ser feitas diretamente pelo comando tar, atravs dos argumentos:

Z compress

19

Tpico 102: Instalao do GNU/Linux e Administrao de Pacotes


z gzip j bzip2

Criar um arquivo tar programa.tar.bz2 contendo o diretrio ./programa/ e seu contedo, compactando com bzip2:
$ tar cjf programa.tar.bz2 ./programa/

Extrair esse arquivo:


$ tar xjf programa.tar.bz2

Como mostrado no exemplo, o argumento c indica criao de arquivo, x extrao de arquivo e f o nome do arquivo.

Compilar e Instalar Programas


O primeiro passo para instalar um programa em cdigo fonte distribudo no formato tar extra-lo:
$ tar xjvf sylpheed-2.0.4.tar.bz2

Este comando criar o diretrio ./sylpheed-2.0.4/, contendo o cdigo fonte do programa e as ferramentas de configurao. A configurao pr-compilao feita dentro desse diretrio, por um script chamado configure. Este script coleta informaes sobre a arquitetura do sistema, caminhos de comandos, bibliotecas compartilhadas, caractersticas de funcionamento do programa, etc. Em geral, o configure pode ser invocado sem argumentos na forma:
$ ./configure

Uma opo bastante utilizada --prefix , que informa em qual diretrio base o programa dever ser instalado. Por exemplo:
$ ./configure --prefix=/opt

Indica que o diretrio base da instalao ser /opt. O script configure possui muitas opes de personalizao da instalao. A lista descritiva completa das opes pode ser vista usando
$ ./configure --help

As informaes coletadas pelo script configure so armazenadas em um arquivo no mesmo diretrio chamado makefile. Este arquivo pode ser editado para alterar as opes de instalao, como a varivel prefix, que desempenha a mesma funo do argumento --prefix do script configure, e outras variveis que indicam a localizao de bibliotecas, comandos, caractersticas do programa, etc. Terminada a configurao, o programa pode ser compilado atravs do comando make. Make criar as bibliotecas e arquivos executveis conforme as opes existentes no makefile. Aps o trmino da compilao, que pode levar algum tempo dependendo do tamanho e tipo do programa, o programa est pronto para ser instalado
# make install

Se o diretrio base de instalao no estiver no diretrio pessoal do usurio, esse comando dever ser executado com permisses de super usurio (root). Mesmo estando o diretrio base de instalao fora do diretrio pessoal do usurio, recomendado executar ./configure e make como usurio comum. 20

Tpico 102: Instalao do GNU/Linux e Administrao de Pacotes

Objetivo 1.102.4: Bibliotecas Compartilhadas


Peso: 3 Funes comuns e compartilhadas por diferentes programas so armazenadas em bibliotecas. Durante a compilao de um programa, essas bibliotecas especficas so ligadas ao programa que as usar. A ligao pode ser esttica ou dinmica, ou seja, as funes da biblioteca podero estar embutidas no programa compilado ou apenas mapeadas para a biblioteca externa. Programas estticos no dependem de arquivos externos e programas dinmicos so menores e poupam recursos da mquina. O programa encarregado de carregar a biblioteca e ligar ao programa que dela depende o ld.so. Para que o ld.so possa localizar a biblioteca da qual um programa depende, esta dever estar mapeada em /etc/ld.so.cache. As localidades comuns de bibliotecas de sistema so /lib e /usr/lib. Para acrescentar um diretrio ao ld.so.cache, o arquivo /etc/ld.so.conf usado: Exemplo de /etc/ld.so.conf
/usr/local/lib /usr/X11R6/lib /usr/i486-slackware-linux/lib /usr/lib/qt/lib

Para atualizar o /etc/ld.so.cache aps as alteraes em /etc/ld.so.conf, utilizado o comando ldconfig. A execuo do ldconfig fundamental para que as alteraes em /etc/ld.so.conf repercutam no funcionamento do ld.so. Outra maneira de deixar uma localidade de biblioteca ao alcance do ld.so adicionar seu o respectivo caminho varivel de ambiente LD_LIBRARY_PATH
# export LD_LIBRARY_PATH=/usr/local/lib

Esse mtodo, porm, garante apenas o acesso temporrio do ld.so ao diretrio em questo. No funcionar fora do escopo da varivel de ambiente e quando a varivel deixar de existir, mas um mtodo til para usurios sem permisso para atualizar o /etc/ld.so.cache ou para execuo pontual de programas.

Objetivo 1.102.5: Administrao de Pacotes Debian (.deb)


Peso: 8 Objetivo ainda no abordado. Maiores detalhes sobre administrao de pacotes debian em http://www.debian.org/doc/manuals/reference/ch-package.pt-br.html.

Objetivo 1.102.6: Administrao de Pacotes RedHat (.rpm)


Peso: 8 A maioria dos pacotes rpm nomeada no formato: nome-verso-release.arquitetura.rpm

21

Tpico 102: Instalao do GNU/Linux e Administrao de Pacotes

Modos Maior e Menor


Algumas abreviaes de opes so parecidas mas realizam diferentes aes dependendo de sua posio na linha de comando. A distino feita a partir da primeira opo da esquerda para a direita. O primeiro argumento passado ao comando rpm chamada argumento modo maior. As demais so as opes de modo menor. Opes de modo maior para o rpm: -i Ou --install. Instala o pacote -U Ou --update. Atualiza ou instala o pacote -F Ou --freshen. Atualiza o pacote apenas se o mesmo estiver instalado -V Ou --verify. Verifica o tamanho, MDB, permisses, tipo,integridade, etc. -q Ou --query. Investiga pacotes e arquivos -e Ou --erase. Desinstala o pacote Opes de modo menor para o rpm a Aplica em todos pacotes instalados c Com q lista arquivos de configurao d Com q lista arquivos de documentao f Com q verifica qual pacote instalou o arquivo referido h Mostra progresso visual da instalao i Com q lista informaes sobre o pacote l Com q lista todos arquivos e diretrios do pacote p Com q indica que a investigao realizada no arquivo .rpm v Modo descritivo Outras opes --nodeps Instala o pacote sem checar as dependncias --force Fora a instalao/atualizao --test Mostra como seria a instalao mas no instala --requires Com q, mostra as exigncias para o pacote especificado --whatrequires Com q, mostra quais dependem do pacote especificado

22

Tpico 102: Instalao do GNU/Linux e Administrao de Pacotes

Assinaturas de Pacotes
possvel checar a assinatura de todo pacote distribudo como parte de um projeto. Se a distribuio for Fedora, por exemplo, as chaves so incorporadas ao banco de dados do rpm com o comando
# rpm --import /usr/share/rhn/RPM-GPG-KEY-FEDORA

Assim, todo pacote copiado do servidor fedora pode ser checado:


# rpm --checksig <nome do pacote>

Integridade do Pacote
A integridade do pacote checada usando a opo -V. A opo -Va checa todos os pacotes. A anlise feita tendo como referncia os arquivos originais do pacote. Significado dos caracteres retornados pela verificao: . Teste bem sucedido ? O teste no pde ser realizado S O tamanho do arquivo mudou M A permisso ou o tipo do arquivo mudou 5 A soma MD5 do arquivo diferente D O dispositivo foi modificado L O link simblico foi modificado U O dono do arquivo mudou G O grupo do arquivo mudou T A data do arquivo mudou

Arquivos e Diretrios Pertinentes ao rpm


/etc/rpmrc o arquivo de configurao do rpm e do rpmbuild. Contm informaes sobre a arquitetura do sistema e os caminhos para macros e diretrios utilizados no manejo de pacotes. Este arquivo tambm encontrado em /usr/lib/rpm/ /usr/lib/rpm/* Diretrio contendo as macros necessrias para o manejo de pacotes. /var/lib/rpm/ Diretrio onde se situam as bases de dados do rpm

Exemplos de uso do rpm


Instalar um pacote:
# rpm -ivh xyz.rpm

23

Tpico 102: Instalao do GNU/Linux e Administrao de Pacotes Instalar todos pacotes iniciados por xyz
# rpm -ivh xyz*

Atualizar um pacote:
# rpm -Uvh xyz.rpm

Desinstalar pacote chamado xyz


# rpm -e xyz

Mostra os arquivos contidos no pacote


# rpm -qlp xyz.rpm

Mostra que pacote instalou o arquivo abc.efg


# rpm -qf abc.efg

24

Tpico 103: Comandos GNU e Unix


Objetivo 1.103.3: Trabalhando na Linha de Comando
Peso: 5 A maneira mais direta de interagir com o computador usando a linha de comando. O prompt do shell (terminando em $ ou # para o usurio root) indica que est pronto para receber instrues. O shell o ambiente que faz o intermdio entre o usurio e os recursos do computador, como um ambiente de programao em tempo real para executar tarefas. O shell padro no GNU/Linux o bash (Born Again Shell). Os procedimentos aqui mostrados se referem ao bash. As instrues do shell geralmente seguem o formato: comando [opes] {argumentos} Alguns comandos embutidos do shell: alias Cria um codinome para um comando, no formato
$ alias codinome='nome_do_programa --opes'

til para facilitar a entrada de comandos recorrentes que levam muitos argumentos. Usar alias sem argumentos mostra quais aliases existem e seus contedos. exec O comando iniciado atravs de exec no se torna um processo filho do shell, mas toma seu lugar. Dessa forma, o shell finalizado quando o comando terminar. O shell interpreta a primeira palavra na linha de comando como um comando. O caminho completo ou relativo para o comando precisa ser fornecido, a menos que o comando esteja localizado em um dos diretrios contidos na varivel de ambiente PATH. Se o programa encontra-se no diretrio de trabalho atual e fora dos diretrio contidos em PATH, ele precisar ser invocado comeando por ./ :
$ ./programa_local

Variveis
As variveis usadas no shell so semelhantes s usadas em linguagens de programao. Nomes de variveis so limitadas a caracteres alfanumricos. Criar/Modificar uma varivel (espaos no devem ser usados):
$ nome_da_varivel=valor_da_varivel

O valor de uma varivel retornado acrescentando $ ao seu nome:


$ echo $nome_da_varivel valor_da_varivel

H dois tipos de variveis: locais e exportadas Locais Acessvel apenas no shell atual. Exportadas

25

Tpico 103: Comandos GNU e Unix Acessvel no shell e pelos processos iniciados neste shell. Todas as variveis so listadas usando o comando set. Para ver apenas as variveis exportadas, usa-se env. Exemplo de set:
# set (...) OSTYPE=linux-gnu PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bi n PIPESTATUS=([0]="0") PPID=16226 PS1='\u@\h:\w\$ PS2='> ' PS4='+ ' PWD=/root QTDIR=/usr/lib/qt SHELL=/bin/bash (..)

Exemplo de env:
# env (...) PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bi n LC_COLLATE=C PWD=/root INPUTRC=/etc/inputrc JAVA_HOME=/usr/lib/java LANG=pt_BR (...)

Se uma varivel pode ser acessada por qualquer processo ou shell, chamada de varivel global.

Variveis pr-definidas
DISPLAY Usado pelo X para saber onde executar os aplicativos clientes HISTFILE Caminho para o histrico de comandos do usurio (geralmente $HOME/.bash_history) HOME Caminho para o diretrio pessoal do usurio LOGNAME O nome que o usurio usou para entrar no sistema PATH Lista de diretrios nos quais programas sero procurados caso tenham sido solicitados sem o caminho completo ou relativo PWD 26

Tpico 103: Comandos GNU e Unix O diretrio atual SHELL O shell utilizado (neste caso, /bin/bash) TERM O tipo de emulador de terminal utilizado

Variveis especiais
$! PID do ltimo processo filho $$ PID do shell atual $? Retorna 0 se o ltimo comando foi bem sucedido, caso contrrio retorna 1 ~ Corresponde ao diretrio pessoal do usurio atual ~alaor Corresponde ao diretrio pessoal do usurio chamado alaor

Histrico de comandos
Para mostrar o histrico de comandos digitados pelo usurio atual, usa-se o comando history. History um comando embutido do bash. possvel usar atalhos no estilo do emacs para listar o histrico: Ctrl+p Linha anterior Ctrl+n Prxima linha Ctrl+b Volta um caracter Ctrl+f Avana um caracter Ctrl+a Comeo da linha Ctrl+e Fim da linha Outros atalhos: !! roda o ltimo comando !a roda o ltimo comando que comea pela letra a !2 roda o comando na 2 posio do histrico !-2 roda o penltimo comando ^termo1^termo2 roda o ltimo comando substituindo termo1 por termo2 O arquivo ~/.profile contm personalizaes do bash para o usurio, como aliases e variveis particulares. Exemplo de entrada em ~/.profile :
alias ls='ls --color'

Dessa forma, o alias para ls ser permanente.

27

Tpico 103: Comandos GNU e Unix

Comandos Seqenciais
Executar trs comandos em seqncia, independente do resultado de cada um:
$ Comando1 ; comando2 ; comando3

Executar o comando seguinte apenas se o anterior foi bem sucedido (se retornou 0):
$ comando1 && comando2 && comando3

Executar o comando seguinte apenas se o anterior no foi bem sucedido (se retornou diferente de 0):
$ comando1 || comando2 || comando3

Auto-Completar Comandos e Caminhos


Um recurso que agiliza a digitao de comando e caminhos existentes., utilizando a tecla TAB. Exemplo: Comando whatis
$ wha<TAB> $ whatis

Exemplo: caminho /etc/X11/twm


$ ls /e<TAB>/X<TAB>/t<TAB> $ ls /etc/X11/twm/

Objetivo 1.103.2: Processar Fluxos de Texto Atravs de Filtros


Peso: 6 Este objetivo se relaciona principalmente ao uso das ferramentas do pacote GNU textutils. So comando Unix padro, utilizados para modificar sequncias de texto. cat usado para mostrar o contedo de arquivos
$ cat /etc/issue Welcome to \s \r (\l)

Tambm pode ser usado como um editor de texto rudimentar


$ cat > texto_simples texto simples criado com cat <Ctrl+d> encerra a entrada de texto

Opes comuns do cat: -n Numera as linhas -b Numera apenas linhas que no estejam em branco -A Mostra quebra de linhas tac Tem a mesma funo do cat, mas mostra o contedo de trs para frente:

28

Tpico 103: Comandos GNU e Unix


$ tac texto_simples criado com cat texto simples

head Mostra o comeo de arquivos. Por padro, as 10 primeiras linhas so mostradas. A quantidade de linhas a serem mostradas indicada pela opo -n :
$ head -n 5 /etc/passwd root:x:0:0::/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: adm:x:3:4:adm:/var/log: lp:x:4:7:lp:/var/spool/lpd:

A opo -c especifica o nmero de caracteres (bytes) a serem mostrados no lugar de linhas:


$ head -c 5 /etc/passwd root:

tail Mostra o final de arquivos. Por padro, as 10 ltimas linhas so mostradas. A quantidade de linhas a serem mostradas indicada pela opo -n :
$ tail -n 1 texto_simples criado com cat

A opo -c especifica o nmero de caracteres (bytes) a serem mostrados no lugar de linhas. A para que o fim do arquivo seja mostrado continuamente, a medida que mais texto adicionado au final do mesmo, usa-se a opo -f (de follow). O sinal + indica que a leitura deve ser feita a partir da linha de nmero especificado aps o +:
$ tail +35 /etc/group console::101: messagebus:x:102: haldaemon:x:103:haldaemon

wc Conta linhas, palavras ou caracteres, com as opes -l, -w e -c respectivamente. Quando usado sem argumentos, mostra esses trs valores na sequncia.
$ wc texto_simples 2 5 29 texto_simples $ wc -l texto_simples 2 texto_simples $ wc -w texto_simples 5 texto_simples $ wc -c texto_simples 29 texto_simples

nl Numera linhas, como cat -b. O argumento -ba faz numerar todas as linhas. O argumento -bt apenas as que no estejam em branco
$ nl texto_simples 1 texto simples 2 criado com cat

expand 29

Tpico 103: Comandos GNU e Unix Substitui espaos de tabulao (TABs) por espaos simples, mantendo a mesma distncia aparente. Contar os caracteres de /etc/fstab e comparar ao mesmo arquivo filtrado por expand:
$ wc -c /etc/fstab 773 /etc/fstab $ expand /etc/fstab | wc -c 820

unexpand Substitui dois ou mais espaos simples por espaos de tabulao (TABs). hexdump Mostra arquivos binrios. A opo -C torna a sada mais legvel, mostrando a coluna de endereo hexadecimal, seguida pela coluna dos dados do arquivo (valores hexadecimais sequenciais separados a cada dois bytes) e por ltimo a coluna que mostra esses mesmos bytes no formato ASCII. Examinando o comeo do arquivo /bin/cat:
$ hexdump 00000000 00000010 00000020 00000030 00000040 00000050 00000060 00000070 00000080 00000090 -C 7f 02 90 19 34 04 14 01 00 00 /bin/cat 45 4c 46 00 03 00 39 00 00 00 18 00 80 04 08 00 00 00 81 04 08 00 00 00 80 04 08 10 00 00 | head 01 01 01 01 00 00 00 00 00 06 00 00 e0 00 00 03 00 00 13 00 00 01 00 00 cd 35 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 70 34 34 e0 14 13 00 cd d0 00 8b 00 00 00 01 00 00 35 35 00 04 20 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 34 07 34 05 14 04 00 05 d0 00 00 00 80 00 81 00 80 00 c5 00 00 28 04 00 04 00 04 00 04 00 00 00 08 00 08 00 08 00 08 |.ELF............| |........p...4...| |.9......4. ...(.| |........4...4...| |4.............| |................| |................| |................| |....5..5......| |........5....|

A palavra ELF no incio da coluna ASCII indica que este um arquivo executvel no formato elf Executable and Linkable Format. split Divide um arquivo em arquivos menores seguindo critrios como tamanho ou nmero de linhas. A opo -l indica o nmero de linhas de cada parte do arquivo dividido. A opo -b indica qual o tamanho de cada parte. Um prefixo para as partes pode ser indicado aps o nome do arquivo a ser divido: Dividir um arquivo em partes de 1024Kb usando o prefixo parte_:
$ split -b 1024k arquivo original parte_

Esse comando criar arquivos chamados parte_aa, parte_ab, parte_ac, etc. Para concatenar novamente o arquivo, usa-se cat:
$ cat parte_* > nome do arquivo

Ser criado um arquivo de contedo idntico ao do arquivo original. uniq Mostra o contedo de arquivos suprimindo linhas seqenciais repetidas. cut Delimita um arquivo em colunas, em determinado nmero de caracteres ou por posio de campo. 30

Tpico 103: Comandos GNU e Unix Mostrar caracteres da posio 1 5 de cada linha:
$ cut -c 1-5 /etc/group root: bin:: daemo sys:: adm:: (...)

Para separar por campo, usa-se a opo -d para especificar o caracter que delimita os campos e -f para informar a posio do campo. Mostrar os campos da posio 1 e 3 do arquivo /etc/group, campos que esto separados por ::
$ cut -d ':' -f 1,3 /etc/group root:0 bin:1 daemon:2 sys:3 adm:4 (...)

Para mostrar outro delimitador no lugar do original, usa-se a opo --output-delimiter:


$ cut -d ':' -f 1,3 /etc/group --output-delimiter ' = ' root = 0 bin = 1 daemon = 2 sys = 3 adm = 4 (...)

paste Concatena arquivos lado a lado.


$ paste texto_simples texto_simples texto simples texto simples criado com cat criado com cat

join Similar ao paste, mas trabalha especificando campos, no formato join -1 CAMPO -2 CAMPO arquivo um arquivo dois Onde CAMPO o nmero indicando qual campo nos respectivos arquivos (primeiro e segundo) deve ser correlacionado. Exemplo: Relacionar as linhas de arq2 cujo primeiro campo (coluna 1) seja igual ao primeiro campo de arq2:

31

Tpico 103: Comandos GNU e Unix


arq1: 1 a1 x1 2 b1 y1 3 c1 z1 arq2: 1 a2 x2 2 b2 y2 3 c2 z2 $ 1 2 3 join -1 1 -2 1 arq1 arq2 a1 x1 a2 x2 b1 y1 b2 y2 c1 z1 c2 z2

A primeira coluna do resultado o campo que foi relacionado, seguido das linhas correspondentes. possvel delimitar quais campos mostrar, com a opo -o. Essa opo deve ser escrita no formato N.M, onde N o nmero correspondente ao arquivo e M o nmero correspondente ao campo deste arquivo. O campo de relao tambm pode ser referido por 0. Exemplo: Fazer a mesma relao do exemplo anterior, mostrando apenas o primeiro campo de arq1 e apenas o segundo de arq2:
$ join -1 1 -2 1 -o '1.2 2.3' arq1 arq2 a1 x2 b1 y2 c1 z2

sort Ordena alfabeticamente. Com a opo -n ordena numericamente e -r inverte o resultado.


$ sort texto_simples criado com cat texto simples

fmt Formata para determinado nmero de caracteres por linha. O padro 75. -w indica o nmero de caracteres por linha -s quebra linhas grandes mas no as preenche -u um espao entre palavras e dois espaos entre sentenas. pr Divide o arquivo para impresso. O padro 66 linhas por 72 caracteres de largura, modificados por -l e -w respectivamente. tr Converte caracteres. O comando tr l apenas diretamente via stdin. Converso simples de um nico caracter:
$ cat texto_simples | tr ' ' '.' texto.simples criado.com.cat

Converter letras minsculas para maisculas: 32

Tpico 103: Comandos GNU e Unix


$ cat texto_simples | tr 'a-z' 'A-Z' TEXTO SIMPLES CRIADO COM CAT

Objetivo 1.103.3: Gerenciamento Bsico de Arquivos


Peso: 3

Diretrios e Arquivos
Arquivos podem ser acessados tanto por seu caminho absoluto quanto seu caminho relativo. Caminhos absolutos so aqueles iniciados pela barra da raiz ( / ), e caminhos relativos so aqueles que tomam por referncia o diretrio atual. O ponto . refere-se ao diretrio atual, e .. referese ao diretrio contendo o diretrio atual. O comando ls usado para listar arquivos e contedo de um diretrio. A opo -l exibe detalhes sobre o(s) arquivo(s), -s mostra o tamanho em kilobytes e -d mostra o diretrio, e no seu contedo. Exemplo de sada de ls -l:
$ ls -l /etc/X11/xinit/ total 20 -rw-r--r-- 1 root root lrwxrwxrwx 1 root root -rwxr-xr-x 1 root root -rwxr-xr-x 1 root root -rwxr-xr-x 1 root root -rwxr-xr-x 1 root root

321 15 556 560 799 788

2006-01-14 2006-03-20 2003-03-16 2006-03-07 2006-01-14 2005-07-21

17:33 22:31 19:59 03:32 17:30 15:27

README.Xmodmap xinitrc -> xinitrc.fluxbox xinitrc.blackbox xinitrc.fluxbox xinitrc.twm xinitrc.wmaker

A primeira coluna mostra o tipo e as permisses do arquivo, a segunda coluna mostra o nmero de links fsicos (hard links) para o arquivo, a terceira e a quarta mostram o dono e o grupo aos quais o arquivo pertence, a quinta mostra o tamanho em bytes, a sexta e a stima mostram a data e a hora da ltima modificao do arquivo e a oitava coluna mostra o nome do arquivo. Se o arquivo for um link simblico, uma seta mostra o arquivo para o qual ele aponta. O comando cp utilizado para copiar arquivos. Suas opes principais so: -i Modo interativo. Pergunta antes de sobrescrever um arquivo. -p Copia tambm os atributos do arquivo original. -r Copiar recursivamente o contedo do diretrio de origem. importante saber que quando copiando um diretrio recursivamente, o uso da barra / no final do diretrio de origem far com que apenas o contedo do diretrio seja copiado/movido para o destino e o no uso da barra far com que o diretrio de origem e seu contedo sejam copiados no destino. Exemplo de cp:
$ cp tux.xcf icons/

Copia o arquivo tux.xcf para o diretrio icons no diretrio atual. O comando mv move e renomeia arquivos. Usado com a opo -i pede por confirmao antes de sobrescrever um arquivo de destino. 33

Tpico 103: Comandos GNU e Unix Exemplo de mv:


$ mv imagem.jpg ../fotos/

Move o arquivo imagem.jpg para o diretrio fotos que est no mesmo diretrio onde est contido o diretrio atual (um nvel acima). Para alterar a data de um arquivo, utiliza-se o comando touch. Usado sem argumentos, touch altera a data e a hora de criao e modificao de um arquivo para os valores atuais do sistema. Para alterar apenas a data de modificao, usa-se a opo -m, e para alterar apenas a data de acesso, usase a opo -a. O argumento passado com -t usa outro valor de tempo: Mudar a data e hora para janeiro, 01 00:01
$ touch -t '01010001' texto_simples $ ls -l texto_simples -rw-r--r-- 1 luciano users 29 2006-01-01 00:01 texto_simples

No bash, o comando para retornar o diretrio atual o pwd. O comando cd muda para o diretrio especificado ou vai para o diretrio pessoal quando nenhum diretrio for especificado. O comando mkdir cria diretrios. Para criar uma rvore de diretrios recursivamente, usa-se a opo -p:
$ mkdir -p caminho/completo/para/dir

Para alterar as permisses do diretrio no ato da criao, as mesmas so transmitidas ao mkdir com a opo -m. Criar diretrio sem qualquer tipo de acesso para o grupo ou outros:
$ mkdir -m 700 exclusivo $ ls -ld exclusivo/ drwx------ 2 luciano users 48 2006-03-20 21:42 exclusivo/

Diretrios vazios podem ser apagados pelo comando rmdir. Para apagar uma rvore de diretrios vazios, usa-se a opo -p. Para apagar diretrios com contedo, usa-se rm -r, e para forar a remoo, a opo -f utilizada.

Encontrando Arquivos com o Comando find


Sintaxe do find: find diretrio critrio [-exec comando {} \;] O argumento diretrio indica onde o find deve iniciar a busca e critrio pode ser o nome do arquivo /diretrio a ser procurado e/ou uma regra para a busca. Critrios comuns para o find: -type Tipo do arquivo (d para diretrio, f para arquivo comum e l para link) -name nome Nome do arquivo 34

Tpico 103: Comandos GNU e Unix -user usurio Dono do arquivo -atime -/+n Data de ltimo acesso ao arquivo, menor ou maior que n. n corresponde a n*24 horas. -ctime -/+n Data de criao do arquivo, menor ou maior que n. n corresponde a n*24 horas. -mtime -/+n Data de modificao do arquivo, menor ou maior que n. n corresponde a n*24 horas. -amin -/+n Data de ltimo acesso ao arquivo, menor ou maior que n. n corresponde a minutos. -cmin -/+n Data de criao do arquivo, menor ou maior que n. n corresponde a minutos. -mmin -/+n Data de modificao do arquivo, menor ou maior que n. n corresponde a minutos. -newer arquivo O arquivo procurado foi criado/modificado mais recentemente que arquivo. -perm modo O arquivo procurado tem permisso mode -perm -modo O arquivo procurado tem todos as permisses listadas em mode -perm +modo O arquivo procurado tem qualquer das permisses listadas em mode Exemplo: Encontrar todos os arquivos do tipo link em /usr/lib criados h menos de 24 horas:
$ find /usr/lib -type l -ctime -1 /usr/lib/libssl.so /usr/lib/libcrypto.so /usr/lib/libssl.so.0 /usr/lib/libcrypto.so.0

Caracteres Coringa (file globbing)


As operaes com arquivos e diretrios permitem o uso de caracteres coringa, que so padres de substituio de caracteres. O caracter * substitui qualquer seqncia de caracteres:

35

Tpico 103: Comandos GNU e Unix


$ ls /etc/host* /etc/host.conf /etc/hosts /etc/hosts.allow /etc/hosts.deny /etc/hosts.equiv

O caracter ? substitui apenas um caractere:


$ ls /dev/fd? /dev/fd0 /dev/fd1 /dev/fd2 /dev/fd3

O uso de colchetes [] indica uma lista de caracteres:


$ ls /dev/hd[abc] /dev/hda /dev/hdb /dev/hdc

Chaves {} indicam uma lista de termos separados por vrgula:


$ ls /dev/{hda,fd0} /dev/fd0 /dev/hda

O uso de exclamao antes de um coringa o exclui da operao:


$ ls /dev/fd[!01] /dev/fd2 /dev/fd3

Coringas precedidos de barra invertida \ no desempenham funo substitutiva:


$ ls /dev/fd\[\!01\] ls: /dev/fd[!01]: Arquivo ou diretrio no encontrado

Entre aspas duplas, apenas os caracteres especiais |, / e $ tm efeito. Entre aspas simples apenas o caracter especial \ tem efeito.

Objetivo 1.103.4: Fluxos, Canalizao e Redirecionamentos de Sada


Peso: 5 Processos Unix geralmente abrem trs descritores padro de arquivos, que os permitem processar entrada e sada de dados. Estes descritores podem ser redirecionados de e para outros arquivos ou processos. Por padro, o descritor de entrada (stdin) o teclado e os descritores de sada padro (stdout) e sada de erro (stderr) so a tela do computador. Os valores numricos para esses descritores so 0 para stdin, 1 para stdout e 2 para stderr. Os descritores tambm podem ser acessados atravs dos dispositivos virtuais /dev/stdin, /dev/stdout e /dev/stderr. O fluxo dos dados para redirecionamentos e canalizaes numa linha de comando vai da esquerda para a direita.

Redirecionamento
Para redirecionar a sada padro de um comando para um arquivo, utiliza-se o smbolo > aps o mesmo, que deve indicar o arquivo a ser criado com os dados referidos:
$ cat texto_simples > clone_texto_simples

Se o arquivo existir previamente, ser sobrescrito. Para adicionar os valores sem apagar o contedo existente, usa-se >>. 36

Tpico 103: Comandos GNU e Unix Para redirecionar o contedo de um arquivo para a entrada padro de um comando, usa-se <. Neste caso, o fluxo dos dados segue da direita para a esquerda. especialmente til para utilizar com comandos como o tr que no l arquivos diretamente:
$ tr ' ' '-' < clone_texto_simples texto-simples criado-com-cat

O contedo redirecionado por padro o de stdout. Para especifar stderr usa-se 2>. Para redirecionar ambos simultaneamente, usa-se &>.

Canalizao
possvel enviar a sada de um comando para a entrada de outro comando simultaneamente, utilizando o caracter de canalizao |. preciso que o programa de origem dos dados os direcione para a sada padro. Isso varia para cada programa, e geralmente se d passando o argumento de destino como um trao - ou simplesmente ocultando o argumento de sada. Da mesma forma, alguns programas precisam que seja especificada a origem dos dados atravs de stdin. Todas essas informaes podem ser obtidas consultando o manual do programa. Exemplo: Extrair a terceira msica de um CD com o programa cdparanoia canalizando o udio atravs do programa oggenc para armazenar a msica no formato Ogg Vorbis.
$ cdparanoia -d /dev/cdrom 3 - | oggenc - -o 03.ogg

Por fim, possvel redirecionar simultaneamente a sada tanto para um arquivo quanto para stdout, atravs do comando tee. Para tal, canaliza-se a sada do comando para o comando tee e a este um nome de arquivo para armazenar a sada:
$ cat /etc/passwd | tee cpia_passwd

O contedo de /etc/passwd ser mostrado na tela e copiado no arquivo cpia_passwd. possvel tambm usar a sada de um comando como argumento para outro, usando aspas invertidas:
$ ls -dl `cat /etc/ld.so.conf` drwxr-xr-x 5 root root 7464 2006-01-14 drwxr-xr-x 2 root root 712 2006-03-17 drwxr-xr-x 2 root root 688 2005-10-29 drwxr-xr-x 16 root root 7272 2006-03-21 17:35 12:26 22:53 02:49 /usr/X11R6/lib /usr/i486-slackware-linux/lib /usr/lib/qt/lib /usr/local/lib

Resultado idntico conseguido usando $():


$ ls -dl $(cat drwxr-xr-x 5 drwxr-xr-x 2 drwxr-xr-x 2 drwxr-xr-x 16 /etc/ld.so.conf) root root 7464 2006-01-14 root root 712 2006-03-17 root root 688 2005-10-29 root root 7272 2006-03-21 17:35 12:26 22:53 02:49 /usr/X11R6/lib /usr/i486-slackware-linux/lib /usr/lib/qt/lib /usr/local/lib

O comando xargs desempenha funo parecida, passando os dados que recebe via stdin como argumento para um segundo comando. Exemplo do xargs acompanhando a execuo do find:

37

Tpico 103: Comandos GNU e Unix


$ find /usr/X11R6/bin/ -name 'xt*' | xargs ls -l -rwxr-xr-x 1 root bin 268928 2006-01-14 17:35 /usr/X11R6/bin/xterm -rwxr-xr-x 1 root bin 13076 2006-01-14 17:35 /usr/X11R6/bin/xtrapchar -rwxr-xr-x 1 root bin 6536 2006-01-14 17:35 /usr/X11R6/bin/xtrapin -rwxr-xr-x 1 root bin 4320 2006-01-14 17:35 /usr/X11R6/bin/xtrapinfo -rwxr-xr-x 1 root bin 7704 2006-01-14 17:35 /usr/X11R6/bin/xtrapout -rwxr-xr-x 1 root bin 5880 2006-01-14 17:35 /usr/X11R6/bin/xtrapproto -rwxr-xr-x 1 root bin 4196 2006-01-14 17:35 /usr/X11R6/bin/xtrapreset -rwxr-xr-x 1 root bin 5856 2006-01-14 17:35 /usr/X11R6/bin/xtrapstats

Neste exemplo, xargs tomou cada caminho passado por find e repassou como argumento para o comando ls -l.

Objetivo 1.103.5: Criar, Monitorar e Finalizar Processos


Peso: 5 Em linhas gerais, um processo um programa em execuo. Cada processo possui um nmero nico de identificao chamado PID. Este nmero pode ser usado para mudar a prioridade de um processo ou para finaliz-lo. O processo que inicia um outro processo chamado o processo pai (parent process) do segundo, assim como o segundo chamado processo filho (child process) do primeiro. pstree Mostra processos ativos em formato de rvore genealgica (processos filhos ligados aos respectivos processos pais). Opes comuns: -p Inclui PIDs dos processos. -h Lista apenas os processos do usurio atual. ps Mostra os processos de maneira detalhada. Opes comuns: ux Mostra todos processos do usurio. aux Mostra todos processos no sistema. -u Mostra apenas processos cujo dono seja o indicado pela opo -u. -g Mostra apenas processos cujo grupo seja o indicado pela opo -g. top Monitora continuamente os processos, mostrando informaes como uso de memria e CPU de cada processo. A tecla h fornece ajuda sobre o uso do programa. Pode ser usado para alterar a prioridade de um processo pidof Retorna o nmero PID para o programa solicitado, se o programa estiver em execuo. PID do daemon crond:

38

Tpico 103: Comandos GNU e Unix


# pidof crond 2404

kill Envia sinais de controle para processos. O sinal padro quando nenhum sinal informado SIGTERM, de valor numrico 15, que pede ao programa em questo para finalizar. O processo no necessariamente obedece ao sinal, a menos que o sinal seja SIGKILL. Em alguns casos, o sinal SIGHUP pode ser interpretado como ordem para o processo reler seu(s) arquivo(s) de configurao. Exemplo de kill:
# kill -SIGTERM 4902

Envia o sinal SIGTERM para o processo de PID 4902 Sinais comuns: SIGHUP Termina ou reinicia o processo. Valor numrico 1. SIGINT Interrompe o processo, igual a Ctrl+c. Valor numrico: 2. SIGQUIT Fecha o processo. Valor numrico: 3. SIGKILL Fora a finalizao o processo. Valor numrico: 9. SIGTERM Pede ao processo para finalizar. Valor numrico: 15. killall Tem funo igual a de kill, porm usa o nome do processo no lugar do PID. Com a opo -l lista os sinais possveis.
# killall -SIGHUP cupsd

Neste exemplo, o daemon cupsd ir reler seus arquivos de configurao.

Tarefas em Primeiro e Segundo Plano


Aps iniciado um programa no shell, este na maioria das vezes assumir o controle de stdin e stdout, ou seja, ficar em primeiro plano. Para interromper o programa e voltar ao prompt do shell, usa-se a combinao de teclas Ctrl+z. Feito isso, para continuar a execuo do programa em segundo plano, ou seja, mantendo o prompt do bash em primeiro plano, usa-se o comando bg (background). Para continuar a execuo do programa em primeiro plano usa-se o comando fg (foreground).

39

Tpico 103: Comandos GNU e Unix


$ ogg123 -q 03-geraldo_vandr-fica_mal_com_deus.ogg

Ctrl+z pressionado
[1]+ Stopped ogg123 -q 03-geraldo_vandr-fica_mal_com_deus.ogg $ bg 1 [1]+ ogg123 -q 03-geraldo_vandr-fica_mal_com_deus.ogg & $

O nmero mostrado antes do comando identifica a tarefa. Este nmero passado para fg e bg para especificar a tarefa desejada. Se houver apenas uma tarefa na sesso atual, fg e bg podem ser usados sem argumentos. Para usar o nome do programa no lugar de seu nmero de tarefa, basta preced-lo por %?:
$ bg %?ogg123

O comando jobs lista as tarefas existentes na sesso atual do bash. especialmente til quando h mais de uma tarefa em andamento. possvel iniciar programas diretamente em segundo plano, adicionando o smbolo & ao seu final.
$ ogg123 -q 10-geraldo_vandr-berimbau.ogg & [2] 5375

Os nmeros mostrados correspondem ao nmero da tarefa e ao PID, respectivamente. O nmero de uma tarefa pode ser usado como argumento do comando kill desde que precedido do smbolo %:
$ kill %2

Quando um usurio sai do sistema, um sinal SIGHUP enviado a todos os processos ele pertencentes. Para que esse sinal no interrompa o processo do usurio aps este sair do sistema, o comando deve ser invocado atravs do nohup:
$ nohup wget ftp://transferncia/muito/demorada.tar.bz2 & nohup: appending output to `nohup.out'

As sadas stdout e stderr sero redirecionadas para o arquivo nohup.out, criado no mesmo diretrio em que o comando foi executado.

Objetivo 1.103.6: Modificar a Prioridade de Execuo de um Processo


Peso: 3 Nmeros nice (NI) so usados para alterar a prioridade de CPU e balancear seu uso num ambiente multiusurio. Todo processo comum iniciado com uma prioridade padro (0). Nmeros nice vo de 19 (menor prioridade) a -20 (prioridade maior). Apenas o super-usurio (root) pode diminuir um nmero nice de um processo para abaixo de zero. possvel iniciar um comando com uma prioridade diferente da padro atravs do comando nice. Por padro, nice muda a prioridade para 10.
$ nice -n 15 tar czf home_backup.tar.gz /home

Inicia o comando tar com nmero nice de prioridade 15. Para alterar a prioridade de um processo em andamento, o renice usado. A opo -p indica o 40

Tpico 103: Comandos GNU e Unix PID do processo em questo.


# renice -10 -p 2997 2997: prioridade antiga = 0; prioridade nova = -10

As opes -g e -u permitem alterar todos processos do grupo ou do usurio, respectivamente.


# renice +5 -g users

Neste exemplo, todos os processos de usurios do grupo users tiveram suas prioridades (nmero nice) alteradas para +5. Prioridades podem ser modificadas interativamente atravs do programa top. Quando na tela de processos, basta apertar a tecla r e indicar o nmero PID do processo.

Objetivo 1.103.7: Procurar em Arquivos de Texto Usando Expresses Regulares


Peso: 3

Expresses Regulares e grep


Expresses regulares so elementos de texto, palavras chave e modificadores que formam um padro, usado para encontrar e opcionalmente alterar um padro correspondente. Muitos programas suportam o uso de expresses regulares. O comando grep o mais comum para realizar buscas por expresses regulares em textos. Caracteres especiais em expresses regulares: ^ Comeo de linha $ Fim de linha . Qualquer caracter * Qualquer seqncia de zero ou mais caracteres [] Qualquer caracter que esteja presente nos colchetes Exemplos - Mostra apenas as linhas que comeam com o caracter # do arquivo /etc/lilo.conf.
$ grep '^#' /etc/lilo.conf

Mostra linhas de /etc/lilo.conf que contenham o termo hda ou hdb:


$ grep 'hda[ab]' /etc/lilo.conf

Mais opes de grep: -c Conta as linhas contendo o padro. -i Ignora a diferena entra maisculas ou minsculas. -f Usa a expresso regular contida no arquivo indicado por essa opo. -n Procurar somente na linha indicada por essa opo. -v Mostra todas as linhas exceto a que corresponder ao padro. 41

Tpico 103: Comandos GNU e Unix Exemplo: Mostrar apenas linhas contendo caracteres (inverter a busca por linhas que no possuam caracteres
$ grep -v '^$' /etc/lilo.conf

sed
O comando sed mais utilizado para procurar e substituir padres em textos, mostrando o resultado em stdout. Sintaxe do sed: sed [opes] comando e expresso regular [arquivo original] No sed, a expresso regular fica circunscrita entre barras /. Exemplo:
$ sed -e '/^#/d' /etc/lilo.conf

Mostra o arquivo /etc/lilo.conf sem linhas comeadas por # (linhas de comentrio). A letra d ao lado da expresso regular um comando sed que indica a excluso de linhas contendo o respectivo padro. Exemplo: substituir o termo hda por sdb:
$ sed -e 's/hda/sdb/g' /etc/lilo.conf

Exemplo: Entre as linhas 14 e 21,substituir a palavra runlevel por rl:


$ sed -n -e '14,21s/runlevel/rl/p' /etc/inittab # These are the default rls in Slackware: # 2 = unused (but configured the same as rl 3) # 3 = multiuser mode (default Slackware rl) # 5 = unused (but configured the same as rl 3)

Devido a opo -n, as linhas que no contm a expresso regular no foram mostradas. Opes comuns de sed: -e Executa a expresso e comando a seguir. -f L expresses e comandos do arquivo indicado pela opo. -n No mostrar as linhas que no correspondam a expresso. Comandos comuns do sed: s Substituir. d Apagar a linha. r Insere o contedo do arquivo indicado na ocorrncia da expresso. w Escreve a sada no arquivo indicado. g Substitui todas ocorrncias da expresso na linha atual.

Objetivo 1.103.8: Edio Bsica de Arquivos com o vi


Peso: 1 42

Tpico 103: Comandos GNU e Unix Na maioria das distribuies o vi o editor de textos padro. O vi localiza-se em /bin. H trs modos bsicos no vi: Modo de comando o modo inicial do vi. Serve para navegao e edio. Geralmente, os comandos so letras nicas. Se precedido por nmero, o comando ser repetido correspondentemente ao valor desse nmero. Modo de ltima linha ou coluna Acessvel ao apertar a tecla : no modo de comando. Usado para fazer buscas, salvar, sair, executar comandos no shell, alterar configuraes do vi, etc. Para retornar ao modo de comando, usa-se o comando visual. Modo de insero A maneira mais comum de entrar no modo de insero apertando a tecla i ou a. o modo mais intuitivo, usado para digitar texto no documento. A tecla ESC sai do modo de insero e volta para o modo de comando. Algumas teclas comuns usadas no modo de comando: 0 , $ Incio e fim de linha 1G , G Incio e fim de documento b , e Incio e fim de palavra ( , ) Incio e fim de sentena { , } Incio e fim de pargrafo w, W Pular palavra e pular palavra contando com a pontuao h,j,k,l Esquerda, abaixo, acima, direita / , ? Busca para frente e para trs i Entra no modo de insero na posio atual do cursor a, A Entra no modo de insero depois do cursor ou no fim da linha o, O Adiciona linha e entra no modo de insero depois ou antes do cursor s, S Apaga item ou linha e entra no modo de insero c Modifica um item atravs de insero de texto r Substitui um nico caracter x Apaga um nico caracter y, yy Copia um item ou toda linha p, P Cola o contedo copiado depois ou antes do cursor u Desfazer ZZ Fecha e salva se necessrio ZQ Fecha e no salva Comandos do modo de ltima linha ou coluna 43

Tpico 103: Comandos GNU e Unix :! Chama um comando do shell :quit ou :q Fecha :quit! ou :q! Fecha sem gravar :wq Salva e fecha :exit ou :x ou :e Fecha e grava se necessrio :visual Volta para o modo de comando

44

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS


Objetivo 1.104.1:Criao de Parties e Sistemas de Arquivos
Peso: 3 Discos IDE podem conter at 4 parties fsicas, das quais uma pode ser estendida. A partio estendida pode ser dividida em parties lgicas. Pode haver um mximo de 46 parties num disco IDE e 16 num disco SCSI.

fdisk
O fdisk o programa padro para manipular parties no GNU/Linux. Com a opo -l lista os dispositivos e as parties existentes:
# fdisk -l Disk /dev/hda: 10.0 GB, 10005037568 bytes 255 heads, 63 sectors/track, 1216 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Dispositivo Boot /dev/hda1 * /dev/hda2 /dev/hda3 /dev/hda4 Start 1 154 174 783 End 153 173 782 1216 Blocks Id System 1228941 b W95 FAT32 160650 82 Linux swap 4891792+ 83 Linux 3486105 83 Linux

Disk /dev/hdb: 2111 MB, 2111864832 bytes 64 heads, 63 sectors/track, 1023 cylinders Units = cilindros of 4032 * 512 = 2064384 bytes Dispositivo Boot /dev/hdb1 Start 1 End 1023 Blocks 2062336+ c Id System W95 FAT32 (LBA)

Para manipular parties, o fdisk deve ser inciado tendo como argumento o dispositivo em questo:
# fdisk /dev/hda

Uma vez dentro do fdisk, certas letras correspondero a comandos. Alguns comandos bastante utilizados: p Lista as parties n Cria uma nova partio interativamente t Muda a identificao da partio d Apaga uma partio q Sai do fdisk sem gravar as alteraes w Sai do fdisk e grava as alteraes m Mostra a ajuda de comandos Por padro, o fdisk cria novas parties identificadas como parties nativas de GNU/Linux, cujo 45

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS cdigo hexadecimal 83 (0x83). O cdigo de identificao de parties do tipo swap 82 (0x82).

Criao de Sistemas de Arquivos


Durante muito tempo o sistema de arquivos mais utilizado no GNU/Linux foi o ext2 (second extended). No entanto, hoje muito se usa sistemas de arquivos journalling, como o ext3 e o ReiserFS. Por padro, o ext2 consiste em blocos de 1024 bytes. H trs tipos de blocos. Superblocks Repetem-se a cada 8193 blocos. Contm informaes sobre o tamanho dos blocos, inodes livres, data da ltima montagem, etc. inodes Indicadores para os blocos de dados. O 12 primeiros blocos de dados aps o inode so acessados sequencialmente. Se os dados excederem 12 blocos, blocos inode indiretos agem como espelho. Cada inode tem 256 bytes e contm a informao de usurio, grupo, permisses e data referente aos dados associados. Blocos de dados Os blocos que contm os arquivos e diretrios propriamente ditos. A diferena para um sistema de arquivos journalling que um sistema com essa capacidade registra de antemo todas alteraes que ir realizar no disco. Dessa forma, erros de gravao (normalmente ocasionados por queda de energia ou desligamento incorreto) podem ser mais facilmente diagnosticados e sanados. possvel fazer a converso de ext2 para ext3 sem perda de dados. O comando mkfs cria sistemas de arquivos em parties. A opo -t indica o tipo do sistema de arquivos: Criar uma partio ext2 na partio /dev/hda3:
# mkfs -t ext2 /dev/hda3

H tambm comandos especficos para cada sistema de arquivos: mkfs.ext2, mke2fs, mkfs.ext3, mkfs.xfs, mkreiserfs, mkdosfs e mkfs.vfat.

Partio Swap
Aps a partio swap ser criada pelo fdisk, ela precisa ser formatada com o comando mkswap: Formata como swap a partio /dev/hda2:
# mkswap /dev/hda2

Aps criada e formatada, uma partio swap precisa ser ativada para ser usada como memria swap. O comando swapon -a ativa todas parties swap que constarem em /etc/fstab. As entradas referentes parties swap em /etc/fstab no tm ponto de montagem. Exemplo de entrada de partio swap em /etc/fstab:
/dev/hda2 swap swap defaults 0 0

Normalmente, todas as parties swap contidas em /ect/fstab so ativadas pelos scripts de inicializao do sistema. Para ativar ou desativar essa partio manual manualmente, usa-se 46

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS swapon /dev/hda2 ou swapoff /dev/hda2, respectivamente. Informaes sobre parties swap ativas so armazenadas em /proc/swaps. Exemplo de /proc/swaps:
Filename /dev/hda2 Type partition Size 160640 Used 32632 Priority -1

Objetivo 1.104.2: Manuteno da Integridade de Sistemas de Arquivos


Peso: 3

Checando o Sistema de Arquivos


O comando fsck deve ser executado em parties que apresentarem erros ou em dispositivos que foram desligados incorretamente. A partio dever estar desmontada ou montada como somenteleitura (ro) para a verificao. Como o comando mkfs, o fsck possui a opo -t para especificar o tipo do sistema de arquivos e um comando especfico para cada partio: fsck.ext2 ou e2fsck, fsck.ext3, fsck.xfs, reiserfsck e dosfsck.

Examinando e corrigindo o Sistema de Arquivos


debugfs Depurador interativo de sistemas de arquivos. Examina sistemas ext2 e ext3. Muda diretrios, examina dados de inodes, apaga arquivos, cria links, mostra o log de journalling ext3, etc. usado em casos extremos, geralmente aps o fsck ter falhado. dumpe2fs Mostra informaes de grupo de blocos e de superblocks. tune2fs Configura parmetros ajustveis em sistemas de arquivos ext2, como rtulo e limites de montagem antes de checar automaticamente.

Uso do Disco
df Mostra o espao disponvel em cada dispositivo. A anlise feita diretamente no dispositivo. Por padro, mostra o espao em unidades de 1kb. A opo -h usa medidas apropriadas para tornar a sada mais inteligvel. du Mostra o espao ocupado. Sem argumentos, mostra o uso de cada diretrio no sistema. Um diretrio especfico pode ser indicado atravs da opo -s. A opo -h usa medidas apropriadas para tornar a sada mais inteligvel.

47

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS

Objetivo 1.104.3: Controle da Montagem e Desmontagem dos Sistemas de Arquivos


Peso: 3

/etc/fstab
Durante os procedimentos de carregamento do sistema, o arquivo /etc/fstab que determina os pontos de montagem dos dispositivos. Cada linha corresponde a um dispositivo, contendo os seguintes termos separados por tabulaes ou espaos: 1. Dispositvo 2. Ponto de montagem (swap se for uma partio de swap) 3. Tipo de sistema de arquivos 4. Opes 5. Dump (0 ou 1). Determina se dispositivo dever ser considerado pelo comando dump. Se ausente, 0 considerado. 6. fsck (1 ou 2). Determina a ordem da checagem feita pelo fsck durante o boot. Para a partio raiz (/), deve ser 1. Se ausente, 0 presumido e a checagem no ser feita no boot. Para permitir que usurios comuns montem e desmontem dispositivos geralmente, o caso de dispositivos removveis deve-se incluir a opo users para o respectivo dispositivo. Exemplo:
/dev/cdrom /mnt/cdrom auto noauto,users,ro 0 0

A palavra auto na posio referente ao sistema de arquivos indica que o sistema de arquivos deve ser identificado automaticamente.

mount
O comando mount usado sem argumentos mostra os dispositivos montados e outros detalhes, como ponto de montagem e tipo do sistema de arquivos. Tambm usado para montar dispositivos manualmente:
# mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom

O comando do exemplo monta o dispositivo /dev/cdrom contendo mdia com sistema de arquivos iso9660 no diretrio /mnt/cdrom, com permisso somente-leitura (ro). Para montar manualmente um dispositivo que conste em /etc/fstab, basta fornecer para o comando mount a localizao do dispositivo ou do diretrio alvo. Para desmontar um dispositivo, o comando umount utilizado tendo como argumento o dispositivo ou o diretrio alvo a ser desmontado. Usado com a opo -a, mount monta todos os dispositivos em /etc/fstab (exceto os marcados com a opo noauto).

Opes de montagem
As opes de montagem so as mesmas para /etc/fstab e para mount diretamente. Se mais de uma opo for fornecida, devero ser separadas por vrgula. 48

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS rw ou ro Gravvel ou somente leitura noauto No montado automaticamente users O dispositivo poder ser montado e desmontado por usurios comuns user Apenas quem montou ter permisso de desmontar owner As permisses do dispositivo montado se adequaro ao usurio que o montou usrquota Habilita o uso de quotas de disco para usurio grpquota Habilita o uso de quotas de disco para grupo remount Remonta um dispositivo montado com outras opes. til para remontar um dispositivo como somente leitura, por exemplo.

Objetivo 1.104.4: Administrao de Cotas de Disco


Peso: 3 Para habilitar o controle de cotas de disco, necessrio que o kernel suporte essa funo e incluir a opo usrquota ou grpquota em /etc/fstab. Para que a opo recm adicionada tenha efeito, necessrio remontar o dispositivo. Para gerar a tabela de estatsticas de uso do sistema de arquivos, deve ser executado o quotacheck -a, o que normalmente feito pelos scripts de inicializao. Para criar as configuraes de cota para usurios e grupos, usa-se o comando edquota. A opo -u altera as configuraes de cota para o usurio especificado da mesma forma que -g altera para o grupo especificado. O editor padro do sistema (geralmente o vi) usado para essa tarefa. Essas configuraes so armazenadas no diretrio alvo onde a partio em questo foi montada, nos arquivos aquota.user e aquota.group. Nestes arquivos possvel especificar limites como espao e inodes para o usurio ou grupo. Para que as cotas passem a ser monitoradas e controladas, deve-se executar o comando quota -a. Assim a os limites para cada usurio sero comparados tabela de estatsticas de cotas, at que um dos limites seja alcanado e o usurio no disponha de mais espao. possvel tambm estabelecer um perodo em que o usurio ser avisado de que seu limite foi alcanado, atravs do comando edquota com a opo -ta, de uma maneira semelhante a forma de configurar os limites. Para que o usurio acompanha o status de sua cota, basta executar o comando quota sem argumentos. O super-usurio pode gerar relatrios de cota dos sistemas de arquivos com o comando 49

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS repquota -a.

Objetivo 1.104.5: Controle de Permisses e Acesso Arquivos


Peso: 5 H trs nveis de permisso para arquivos e diretrios: usurio dono do arquivo (u), grupo dono do arquivo (g) e outros (o). Exemplo de permisses de arquivos:
$ ls -l /etc/X11/xdm/ total 80 -rwxr-xr-x 1 root root 385 2006-01-14 17:30 -rwxr-xr-x 1 root root 244 2006-01-14 17:30 -r--r--r-- 1 root root 3618 2006-01-14 17:30 -rwxr-xr-x 1 root root 191 2006-01-14 17:30 -r--r--r-- 1 root root 2559 2006-01-14 17:30 -r--r--r-- 1 root root 487 2005-09-12 02:56 -rwxr-xr-x 1 root root 4697 2006-01-14 17:33 -rwxr-xr-x 1 root root 4545 2005-09-12 03:01 -rwxr-xr-x 1 root root 471 2006-01-14 17:33 -rwxr-xr-x 1 root root 145 2006-01-14 17:30 -rwxr-xr-x 1 root root 189 2006-01-14 17:30 -rwxr-xr-x 1 root root 303 2006-01-14 17:30 lrwxrwxrwx 1 root root 20 2006-03-19 09:36 -rwxr-xr-x 1 root root 14696 2006-01-14 17:35 drwxr-xr-x 2 root root 104 2006-01-14 17:30 -r--r--r-- 1 root root 1533 2006-01-14 17:30

GiveConsole TakeConsole Xaccess Xreset Xresources Xservers Xsession Xsession.orig Xsetup_0 Xsetup_0.orig Xstartup Xwilling authdir -> ../../../var/lib/xdm chooser pixmaps xdm-config

A primeira letra representa o tipo do arquivo, podendo ser: d diretrio l link simblico c dispositivo especial de caracteres p canal fifo s socket - arquivo convencional As demais letras so divididas em grupos de trs, determinando as permisses para o dono do arquivo, o grupo do arquivo e demais usurios, respectivamente. As permisses so alteradas com o comando chmod, podendo ser leitura (r), escrita (w) e execuo (x). Exemplo: O grupo que pertence o arquivo texto_simples ter apenas acesso de leitura ao mesmo e para os demais usurio ser retirado a permisso de leitura:
$ chmod g=r,o-r texto_simples

Inclui permisso de escrita para o grupo do arquivo texto_simples:


$ chmod g+w texto_simples

Apesar de possurem o mesmo modelo de permisses, arquivos e diretrios reagem de maneiras 50

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS diferentes. Em diretrios, a permisso r permite acessar o contedo do diretrio, a permisso w permite criar arquivos dentro do diretrio, e x permite listar o contedo do diretrio.

Permisses Octais
Permisses podem ser manejadas mais eficientemente atravs de um formato numrico, chamado octal. O nmero octal consiste numa seqncia dgitos, cada um representando as permisses para o usurio, grupo e outros, nessa ordem. Permisses octais (numricas) e suas permisses correspondentes: Dgito 0 1 2 3 4 5 6 7 Assim, o comando:
$ chmod 0664 texto_simples

Leitura sim sim sim sim sim sim sim sim

Escrita sim sim sim sim

Execuo

Mudar as permisses do arquivo texto_simples para -rw-rw-r--, ou seja, leitura e escrita para o usurio, leitura e escrita para o grupo e somente leitura para outros. Para mudar recursivamente todo os arquivos dentro de um diretrio especificado, utiliza-se o chmod com a opo -R.

umask
umask o filtro de permisses para criao de arquivos. As permisses para novos arquivos criados so aplicadas calculando as permisses padro do sistema (0666 para arquivos e 0777 para diretrios) menos as permisses umask. umask sem argumentos mostra a mscara atual de criao de arquivos. Para mudar, basta fornecer a nova mscara como argumento. Em sistemas onde os grupos iniciais dos usurios so particulares, a mscara poder ser 002, o que subtrair das permisses padro do sistema a permisso 2 (w escrita), na categoria outros (o). Dessa forma, os arquivos sero criados com as permisses 0664. Em sistemas onde o grupo inicial de todos os usurios o grupo users, a mscara poder ser 0022, o que subtrair das permisses padro do sistema a permisso 2 (w escrita), nas categoria grupo (g) e outros (o). Dessa forma, os arquivos sero criados com as permisses 0644, limitando a permisso de escrita apenas ao usurio dono do arquivo.

51

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS

suid e sgid
Todos processos so vinculados ao usurio que os iniciou. Dessa forma, um programa pode trabalhar com um arquivo apenas at onde as permisses deste arquivo permitem ao usurio. Algumas tarefas, no entanto, exigem que um usurio altere ou acesse arquivos aos quais no tem a permisso necessria. Por exemplo, alterar a prpria senha exige que o arquivo /etc/passwd seja alterado e as permisses de /etc/passwd s permitem escrita ao usurio dono (root):
$ ls -l /etc/passwd -rw-r--r-- 1 root root 814 2006-03-15 14:04 /etc/passwd

Para contornar essa condio, existe um bit de permisso especial chamado suid. Arquivos executveis que possuam a permisso suid sero executados em nome do dono do arquivo, e no em nome de quem os executou. A permisso suid representada pela letra s, no campo referente ao dono do arquivo (u):
$ ls -l /usr/bin/passwd -rws--x--x 1 root bin 37880 2004-06-21 16:20 /usr/bin/passwd

Exemplo: Incluir o modo suid a um arquivo executvel:


$ chmod u+s meu_programa

De maneira semelhante, a permisso sgid atua em diretrios. A permisso sgid uma permisso de grupo, portanto aparece no campo de permisses referente ao grupo. Num diretrio com a permisso sgid, todos os arquivos criados pertencero ao grupo do diretrio em questo, o que especialmente til em diretrios com o qual trabalham um grupo de usurios pertencentes ao mesmo grupo. Exemplo: Tornar um diretrio sgid:
$ chmod g+s dir_do_grupo/

Quando habilitadas, as permisses suid e sgid fazem aparecer a letra s no lugar da letra x nas permisses de dono do arquivo e grupo do arquivo, respectivamente. Se a permisso de execuo tambm existir, aparecer a letra s em minsculo. Se apenas as permisses suid e sgid existirem, aparecer a letra S em maisculo.

A Permisso sticky
O inconveniente em usar diretrios compartilhados que um usurio poderia apagar algum ou todo o contedo inadvertidamente. Para evitar que isso acontea, existe o modo de permisso stick, que inibe usurios de apagarem arquivos que no tenham sido criados por eles mesmos. o caso do diretrio /tmp:
$ ls -ld /tmp drwxrwxrwt 21 root root 1312 2006-03-23 22:51 /tmp

A letra t nas permisses para demais usurios demonstra o uso da permisso sticky. Se apenas a permisso sticky existir, aparecer a letra T maiscula. Exemplo: Usar a permisso sticky no diretrio comunitario
$ chmod o+t comunitario/

52

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS

Permisses Especiais em Formato Octal


Como as opes convencionais, as permisses especiais tambm podem ser manipuladas em formato octal (numrico). A permisso especial o primeiro dos quatro dgitos da opo no formato octal. dgito 0 1 2 3 4 5 6 7 sim sim sim sim suid sim sim sim sim sgid sim sim sim sim sticky

Atributos chattr
possvel estabelecer algumas regras para o tratamento de arquivos em sistemas do tipo ext2, os chamados atributos do arquivo. Para listar esses atributos, usa-se o comando lsattr. Para alterar esses atributos, usa-se o comando chattr. Cada atributo especificado por uma letra precedida do sinal +, - ou =, que adiciona, retira ou torna exclusivo o atributo no arquivo/diretrio especificado. Atributo A a No modifica a data de acesso O arquivo no poder ter seu contedo sobregravado. Apenas o superusurio ou um programa capacitado por CAP_LINUX_IMMUTABLE podero alterar essa opo. O kernel automaticamente comprime os dados para gravar e descomprime para ler Um diretrio com essa funo grava imediatamente os dados ao disco, como se a opo de montagem dirsync fosse aplicada a um subconjunto de arquivos Essa opo exclui o arquivo de um backup via dump No poder ser alterado, apagado ou renomeado. Nenhum link poder t-lo como alvo. Apenas o superusurio ou um programa capacitado por CAP_LINUX_IMMUTABLE podero alterar essa opo. Todos os dados sero gravados ao jornal ext3 antes de serem propriamente gravados Se o arquivo for apagado, todos seus blocos so zerados no disco Alteraes no arquivo so gravadas imediatamente no disco Aps a remoo do arquivo, o contedo do arquivo preservado, 53 Descrio

c D

d i

j s S u

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS Atributo possibilitando recuperao. Os atributos c, s e u no so de fato suportados. Exemplo: Atribuir i ao arquivo texto_simples
$ chattr +i texto_simples

Descrio

Listas de Controle de Acesso ACL


Listas de controle de acesso (ACL) so usadas para obter maior controle sobre permisses de acesso arquivos e diretrios. Uma ACL consiste em um conjunto de entradas, que determinam condies de acesso para um usurio em particular ou um grupo de usurios, permisses de leitura, escrita e execuo/leitura. Uma entrada ACL contm o tipo da entrada, opcionalmente um argumento para o tipo e as permisses. Tipos de entrada: OCL_USER_OBJ Permisses para o dono do arquivo ACL_USER Permisses para os usurios especificados pelo argumento ACL_GROUP_OBJ Permisses de acesso para o grupo do arquivo ACL_GROUP Permisses para os grupos especificados pelo argumento ACL_MASK As maiores permisses possveis para ACL_USER, ACL_GROUP_OBJ e ACL_GROUP ACL_OTHER Permisses para processos que no se encaixem em nenhum dos outros itens. Exemplo de ACL textual:
user::rwuser:lisa:rwgroup::r-group:toolies:rwmask::r-other::r--

As permisses ACL tem correspondncia com o modelo convencional de permisses. As permisses para o dono do arquivo correspondem entrada ACL_USER_OBJ. As permisses para o grupo do arquivo correspondem entrada ACL_GROUP_OBJ, somente se no houver ACL_MASK. Se a ACL contiver uma entrada ACL_MASK, as permisses para o grupo do arquivo correspondero entrada ACL_MASK. Permisses para demais usurios corresponde m ACL_OTHER. 54

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS

Objetivo 1.104.6: Modificar Donos e Grupos de Arquivos


Peso: 1 Para alterar dono e grupo de arquivos e diretrios, usa-se chown e chgrp. O primeiro argumento um nome vlido de usurio ou grupo e o segundo o arquivo/diretrio para alterar. Apenas o superusurio pode usar o comando chown, mas qualquer usurio pode usar chgrp em seus arquivos/diretrios. Mudar dono de arquivo:
# chown luciano texto_simples

Mudar grupo de arquivo:


$ chgrp users texto_simples

Para alterar usurio e grupo simultaneamente:


# chown luciano.users texto_simples

Tanto chown quanto chgrp possuem a opo -R, para alterar contedos de diretrios recursivamente.

Objetivo 1.104.7: Criar e Alterar Links Simblicos e Links Fsicos


Peso: 1

Hardlinks (Links Fsicos)


Hardlinks so um ou mais nomes que um inode do sistema de arquivos pode ter. Todo arquivo criado , necessariamente, um hardlink para seu inode correspondente. O mesmo s ser apagado aps seu ltimo hardlink remanescente ser apagado e nenhum programa estar mantendo o arquivo aberto. Novos hardlinks so criados usando o comando ln:
$ ln texto_simples outro_texto_simples

A opo -i do ls mostra o nmero inode dos arquivos:


$ ls -i texto_simples outro_texto_simples 55412 outro_texto_simples 55412 texto_simples

Ambos texto_simples e outro_texto_simples so hardlinks para o mesmo inode 55412. Hardlinks para o mesmo inode possuem mesma permisso, donos tamanho e data, pois essas permisses so registradas diretamente nos inodes.
$ ls -l texto_simples -rw-r--r-- 2 luciano users 29 2006-01-01 00:01 texto_simples

O nmero 2 na segunda coluna de informaes demonstra que h 2 hardlinks para o inode correspondente texto_simples. Hardlinks s podem ser criados dentro de um mesmo sistema de arquivos. No possvel criar hardlinks para diretrios. Os arquivos especiais . e .. so hardlinks para diretrio criados exclusivamente pelo prprio sistema.

55

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS

Softlinks (Links Simblicos)


Links simblicos apontam para um caminho, ou mais especificamente, para um hardlink. Links simblicos podem apontar para qualquer alvo, inclusive em outros e diferentes sistemas de arquivos. Para criar um link simblico, usa-se ln com a opo -s.
$ ln -s texto_simples link_texto_simples

Detalhes do link:
$ ls -l mais_texto_simples lrwxrwxrwx 1 luciano users 13 2006-03-24 05:11 mais_texto_simples -> texto_simples

Um link indicado pela letra l no incio das permisses, que neste caso so sempre rwxrwxrwx. O tamanho do arquivo de link exatamente a quantidade de bytes (caracteres) do caminho alvo. A seta ao lado do nome do link simblico indica o caminho alvo. Um link simblico para um caminho relativo ser quebrado se o alvo ou o prprio link for movido. Um link simblico para um caminho absoluto s ser quebrado se o alvo for movido ou apagado. Para atualizar a informao de alvo de um link simblico existente, recria-se o link com a opo -f. Funes comuns para links simblicos so indicar caminhos longos freqentemente usados, criar nomes mais simples para executveis e nomes adicionais para bibliotecas de sistema.

Objetivo 1.104.8: Encontrar Arquivos de Sistema e Conhecer sua Localizao Correta


Peso: 5

Hierarquia Padro de Sistemas de Arquivos (FHS)


O FHS (do ingls: Filesystem Hierarchy Standard) o padro de diretrios base adotado pela maioria da distribuies GNU/Linux. Cada diretrio serve a um propsito, sendo divididos entre os que devem existir no dispositivo/partio raiz e os que podem ser pontos de montagem para outras parties e/ou dispositivos. Devem existir no dispositivo/partio raiz (/): /bin e /sbin Contm os programas necessrios para carregar o sistema e comandos especiais. /etc Arquivos de configurao especficos da mquina. /lib Bibliotecas compartilhadas pelo programas em /bin e /sbin e mdulos do kernel. /mnt Pontos de montagem para outras parties ou dispositivos

56

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS /proc Armazena informaes do kernel em tempo de execuo Podem ser pontos de montagem para outras parties e/ou dispositivos: /boot Kernel e mapas do sistema e os carregadores de boot de segundo estgio /home Os diretrios dos usurios /root Diretrio do superusurio /tmp Arquivos temporrios /usr Contedo para uso dos usurios. Programas, bibliotecas, documentos, etc. /usr/local e /opt Programa adicionais. Tambm podem conter as bibliotecas necessrias para os programas adicionais. /var/www e /var/ftp Pginas HTML e diretrios para FTP annimo. /var Dados de programas como configuraes variantes e logs. Contm diretrio compartilhados (ex: /var/spool/mail) e no compartilhados (ex: /var/log)

Encontrando Arquivos
find find diretrio critrio [-exec comando {} \;] O argumento diretrio indica onde o find deve iniciar a busca e critrio pode ser o nome do arquivo /diretrio a ser procurado e/ou uma regra para a busca. Critrios comuns para o find: -type Tipo do arquivo (d para diretrio, f para arquivo comum e l para link) -name nome Nome do arquivo -user usurio Dono do arquivo -atime -/+n 57

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS Data de ltimo acesso ao arquivo, menor ou maior que n. n corresponde a n*24 horas. -ctime -/+n Data de criao do arquivo, menor ou maior que n. n corresponde a n*24 horas. -mtime -/+n Data de modificao do arquivo, menor ou maior que n. n corresponde a n*24 horas. -amin -/+n Data de ltimo acesso ao arquivo, menor ou maior que n. n corresponde a minutos. -cmin -/+n Data de criao do arquivo, menor ou maior que n. n corresponde a minutos. -mmin -/+n Data de modificao do arquivo, menor ou maior que n. n corresponde a minutos. -newer arquivo O arquivo procurado foi criado/modificado mais recentemente que arquivo. -perm modo O arquivo procurado tem permisso mode. -perm -modo O arquivo procurado tem todos as permisses listadas em mode. -perm +modo O arquivo procurado tem qualquer das permisses listadas em mode. locate Atravs do locate, todo caminho de arquivo ou diretrio contendo a expresso fornecida como argumento ser mostrado. A busca significativamente mais rpida em relao ao find pois o locate realiza a busca no seu banco de dados - /var/lib/slocate/slocate.db e no diretamente no disco. Esse banco de dados precisa ser sempre atualizado atravs do comando updatedb, o que geralmente feito por um agendamento cron dirio, mas que pode ser executado manualmente. O arquivo de configurao para o updatedb o /etc/updatedb.conf. Nele constam informao como que diretrios e sistemas de arquivos ignorar na atualizao do banco de dados. Exemplo de /etc/updatedb.conf:
# /etc/updatedb.conf: slocate configuration file PRUNEFS="devpts NFS nfs afs proc smbfs autofs iso9660 udf" PRUNEPATHS="/dev /proc /sys /tmp /usr/tmp /var/tmp /afs /net /mnt" export PRUNEFS export PRUNEPATHS

prunefs indica quais tipos de sistemas de arquivos ignorar. prunepaths indica quais diretrios ignorar. which Usado para retornar o caminho completo para o programa fornecido. Realiza a busca apenas nos 58

Tpico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padro FHS diretrios definidos na varivel de ambiente PATH. whereis Retorna os caminhos para o arquivo executvel, cdigo fonte e pgina manual referente ao comando solicitado, se houverem.

59

Tpico 110: O Sistema de Janelas X


Objetivo 1.110.1: Instalar e Configurar o X11R6
Peso: 5 Existem basicamente duas opes para o X11R6: Xfree86 e X.Org. Em termos prticos, no h diferena entre eles, apenas em alguns detalhes de arquitetura e configurao. O X11R6 o ambiente grfico de janelas no GNU/Linux.

Compatibilidade de Hardware
O primeiro passo antes de usar o X11R6 verificar a compatibilidade de hardware. Em http://www.xfree86.org/4.1.0/Status.html pode ser encontrada a lista de dispositivos compatveis. Ainda que o dispositivo no seja totalmente compatvel, possvel utiliz-lo no modo VESA Framebuffer, se o mesmos suportar (a grande maioria dos dispositivos aceita esse modo).

Instalando o X11R6
O mais comum que o X11R6 j venha instalado junto com a distribuio. Para instalar manualmente, os pacotes binrios podem ser encontrados em ftp://ftp.xfree86.org/pub/XFree86/4.1.0/binaries/, em subdiretrios correspondentes a arquitetura desejada (axp=alpha, ix86=Intel 80x86) e verso da biblioteca Gnu C. Para auxiliar no processo de instalao, h o script Xinstall.sh, disponvel no diretrio common do servidor servidor FTP. Verificar quais binrios adequados:
$ sh Xinstall.sh -check

Os arquivos de instalao fundamentais so Xbin.tgz, Xlib.tgz, Xman.tgz, Xdoc.tgz, Xfnts.tgz, Xfenc.tgz, Xetc.tgz, Xvar.tgz, Xserv.tgz e Xmod.tgz. Os arquivos devem ser descompactados em /usr/X11R6. O diretrio /usr/X11R6/bin deve constar na varivel PATH e o diretrio /usr/X11R6/lib deve constar no cache de bibliotecas do ls.so.

Configurando o X11R6
Configurar o X11R6 significa criar um arquivo /etc/X11/XF86Config ou /etc/X11/xorg.conf, que deve conter informaes sobre caminhos para arquivos de sistema, mouse, teclado, monitor e dispositivo de vdeo. Ferramentas de configurao para o XFree86 XFree86 -autoconfig Configura o servidor X automaticamente. Se bem sucedido, ser possvel mover o cursor do mouse na tela. Ctrl+Alt+backspace fecha a sesso do X. O arquivo de configurao ainda no foi escrito por essa ferramenta. XFree86 -configure Alternativa ao anterior xf86cfg 61

Tpico 110: O Sistema de Janelas X Se no ocorrerem problemas, uma sesso X ser iniciada com uma janela de configurao mostrando o diagrama de configurao do servidor X. xf86config Interface interativa de texto para entrar as informaes de configurao manualmente. Ferramentas de Configurao para o X.Org X -configure O servidor X carrega cada mdulo de dispositivo, testa o driver e salva o resultado para o arquivo xorg.conf.new no diretrio do usurio (provavelmente /root) xorgcfg Se no ocorrerem problemas, uma sesso X ser iniciada com uma janela de configurao mostrando o diagrama de configurao do servidor X. xorgconfig Interface interativa de texto para entrar as informaes de configurao manualmente.

Ajustes da Configurao
Aps configurar o servidor X, pode ser necessrio corrigir o posicionamento da tela. Para isso, existe o aplicativo xvidtune. Atravs de uma interface interativa, possvel reposicionar a tela. Encontrada a posio adequada, os valores retornados no terminal virtual devem ser includos como opo Modeline, na seo Monitor do arquivo /etc/X11/XF86Config ou /etc/X11/xorg.conf. Outro item que pode precisar ser includo manualmente o funcionamento da roda do mouse. Na seo referente ao mouse em /etc/X11/XF86Config ou /etc/X11/xorg.conf. incluir a opo ZaxisMapping, como no exemplo:
Section "InputDevice" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/mouse" Option "ZAxisMapping" "4 5" EndSection

Sees de XF86Config e xorg.conf


Os arquivos de configurao XF86Config e xorg.conf so divididos em sees no formato:
Section "nome da seo" Item_1 "Valor item 1" Item_2 "Valor item 2" ... EndSection

Nomes das sees: Files Caminhos para alguns arquivos necessrios ao servidor X. Itens podem ser FontPath, RGBPath e ModulePath. O item mais importante FontPath, que determina as localizaes das fontes no sistema. 62

Tpico 110: O Sistema de Janelas X ServerFlags Opes globais para o servidor X, no formato Option Nome Valor. Module Carregamento dinmico de mdulos. Load nome do mdulo. InputDevice Dispositivos de entrada. Deve haver uma seo InputDevice para cada dispositivo. Os itens obrigatrios nessa seo so Identifier e Driver. Identifier um nome nico para identificao do dispositivo. Os valores mais comuns para Driver so Keyboard e Mouse. Outros itens so opcionais e so descritos com Option. Option CorePointer indica que o dispositivo o apontador (mouse) primrio. Option CoreKeyboard indica que o dispositivo o teclado primrio. O caminho para o dispositivo indicado com Option Device /dev/xxx. Device Dispositivo de vdeo. Vrias sees Device podem indicar vrios dispositivos de vdeo, e deve haver ao menos um. Os itens obrigatrios nessa seo so Identifier e Driver. Identifier um nome nico para identificao do dispositivo. Driver especifica o drive do dispositivo de vdeo, disponveis em /usr/X11R6/lib/modules/drivers/. Outros itens comuns so BusID (ex.: Option BusID PCI:1:0:0) e VideoRam (Ex.: Option VideoRam 8192). Monitor O arquivo de configurao pode ter vrias sees Monitor. Deveria haver pelo menos uma, mas se no houver uma padro ser criada. A nica opo obrigatria Identifier. Outras opes so UseModes, HorizSync, VertRefresh e ModeLine. Modes Modos de tela disponveis para monitor. No obrigatria. Screen Agrega dispositivo e monitor. Pode haver mais de uma seo Screen. Apenas as opes Identifier e Device (indicando um dispositivo de vdeo de uma seo Device existente) so obrigatrias. Display (Subseo de screen) A subseo Display define, entre outras coisas, que resoluo usar para cada profundidade de cor. ServerLayout Agrega as sees Screen e InputDevice para formar uma configurao completa do servidor X. DRI Seo opcional que fornece informao sobre a Infraestrutura de Renderizao Direta (DRI). Para que usurios comuns possam utilizar o DRI, incluir o item Mode 0666 nesta seo. 63

Tpico 110: O Sistema de Janelas X Vendor Informaes e configuraes personalizadas

Fontes
H dois sistemas de fontes, Core e Xft. No sistema Core as fontes so manipuladas no servidor e no sistema Xft no cliente. O sistema Xft mais avanado e permite usar fontes Type1, OpenType, TrueType, Speedo e CID, com suporte a anti-aliasing (cantos arredondados). O X.Org inclui suporte nativo ao sistema Xft.

Instalar fontes Xft


Para instalar fontes para o sistema Xft basta copi-las para um dos diretrios de fontes padro /usr/X11R6/lib/X11/lib/fonts/*, /usr/share/fonts/* - ou para o diretrio .fonts/ no diretrio pessoal. O cache de fontes precisa ser atualizado para que a nova fonte possa ser usada, o que ser feito automaticamente quando o X iniciar uma sesso. A atualizao manual feita atravs do comando fc-cache. O alguns comportamento das funes do Xft pode ser alterado atravs do arquivos de configurao global /etc/fonts/fonts.conf ou no arquivo de configuraes por usurio .fonts.conf, no diretrio pessoal. Para os programas que no usam fontes por Xft por padro, o recurso *faceName em $HOME/.Xresources especifica um nome de fonte para usar atravs do Xft. Exemplo:
XTerm*faceName: Courier

O programa xterm usar a fonte Courier atravs de Xft.

Instalar fontes Core


Instalar fontes pelo sistema Core requer duas etapas: Criar o diretrio com os arquivos das fontes e arquivos ndice e em seguida incluir o diretrio em questo caminho de fontes do sistema. Para cada tipo de fonte, a instalao se d de uma forma: Fontes Bitmap (.bdf) Esse tipo de fonte precisa primeiro ser convertido para o formato .pcf, atravs do comando bdftopcf. As fontes convertidas podem ser convertidas com o comando gzip. O diretrio padro para esse tipo de fonte /usr/X11R6/lib/X11/fonts/75dpi. Aps copiadas as fontes para o diretrio, o comando mkfontdir dever ser executado dentro do diretrio. Fontes escalonveis (Type1, Speedo, TrueType, etc) O procedimento semelhante ao das fontes Bitmap, exceto pelo fato de que fontes escalonveis no precisam ser convertidas e de que o comando mkfontscale precisa ser executado antes de mkfontdir. Os diretrios respectivos tambm se encontram em /usr/X11R6/lib/X11/fonts. A segunda etapa incluir cada diretrio entre os diretrios de fontes de servidor X. Isso pode ser feito de maneira temporria, com o comando xset:

64

Tpico 110: O Sistema de Janelas X


# xset fp+ /diretrio/para/as/fontes # xset fp rehash

Os diretrios de fonte atualmente em uso podem ser listados com xset -q. Para que os novos diretrios se tornem diretrios de fontes permanentes, devem ser includos na seo Files do arquivo de configurao /etc/X11/XF86Config ou /etc/X11/xorg.conf, como itens FontPath.

Servidor de Fontes xfs


O servidor de fontes xfs pode rodar como daemon ou tarefa comum, e fornece fontes atravs da rede ou mesmo no host local. Iniciar o xfs como daemon:
# xfs -daemon

O arquivo de configurao padro para o xfs /usr/X11R6/lib/X11/fs/config, cujas opes mais comuns so: client-limit Limite de clientes conectados esses servidor de fontes alternate-servers Outros servidores de fontes catalogue Caminhos dos diretrios contendo as fontes para serem fornecidas pelo xfs. port Porta tcp que o xfs usar para esperar por pedidos de conexo. Padro: 7100. Para que as fontes sejam solicitadas ao daemon do xfs, o endereo do host servidor de fontes precisa ser includo como item FontPath da seo Files de /etc/X11/xorg.conf ou /etc/X11/XF86Config: Se o servidor de fontes for o host local:
FontPath unix/:7100

Se o servidor de fontes for o host chamado slackware, atravs de uma conexo TCP/IP:
FontPath tcp/slackware:7100

Objetivo 1.110.2: Configurar o Gerenciador de Display


Peso: 3 Muitas distribuies GNU/Linux j entram no login grfico por padro. Outras usam o login em texto. Esse comportamento pode ser modificado atravs do arquivo /etc/inittab, alterando runlevel inicial. O runlevel padro para login em texto 3 (multi-usurio). Para login grfico 5 (ou 4 para o slackware). Login em texto:
id:3:initdefault:

65

Tpico 110: O Sistema de Janelas X Login grfico:


id:5:initdefault:

O login grfico passar ento a ser controlado por um gerenciador de display. H trs Gerenciadores de Display principais:

xdm Padro do X gdm Gnome kdm Kde /etc/X11/xdm/* /etc/X11/gdm/* /etc/X11/kdm/*

Os respectivos arquivos de configurao encontram-se em:


xdm
O xdm faz parte dos programas do sistema de janelas X. O arquivo de configurao principal o xdm-config. O caminho do programa /usr/bin/xdm. Alm de permitir o login local, tambm permite que o login seja realizado atravs da rede. Para tanto, usado o protocolo XDMCP ( desativado por padro). O xdm precisa estar rodando (o que j acontece caso o runlevel do sistema seja 5) e configurado adequadamente para responder pedidos de login. O host remoto, atravs do comando X -query nome_do_servidor, solicitar o pedido de conexo. Arquivos de configurao /etc/X11/xdm/Xresources A aparncia do xdm pode ser modificada atravs deste arquivo. Fontes, cores e mensagens pode ser includas ou alteradas. Exemplo de contedo:
xlogin*borderwidth:3 xlogin*greeting:Bem vindo ao login grfico xlogin*namePrompt:login:\040 xlogin*greetColor:blue xlogin*foreground:black xlogin*background:white

/etc/X11/xdm/Xsetup_0 Script executado antes do login, com permisso de super-usurio (root). Usado para definir cores/imagens de fundo e disparar aplicativos. /etc/X11/xdm/Xservers Mapeia um display para um host. Geralmente contm apenas a indicao para o display local:
:0 local /usr/X11R6/bin/X

Pode tambm ser usado para automaticamente enviar requerimento de login para hosts remotos rodando o X. O servidor X ocupar primeiro /dev/tty livre. /etc/X11/xdm/Xaccess Controla o acesso remoto via XDMCP. possvel estabelecer regras para pedidos de conexo remotos. 66

Tpico 110: O Sistema de Janelas X Trecho exemplo de Xaccess:


* * CHOOSER BROADCAST

A primeira linha indica que qualquer host poder requisitar login na mquina. A segunda linha indica que qualquer host (*) pode solicitar mquina local uma lista de possveis servidores (que estejam rodando o xdm) para conexo, que ser obtida atravs de chamadas BROADCAST na rede. /etc/X11/xdm/xdm-config Arquivos que agrega os demais arquivos de configurao do xdm. Libera ou bloqueia o login remoto via XDMCP. Para bloquear, basta que exista a linha:
DisplayManager.requestPort: 0

Assim, o xdm no esperar por pedidos de conexo diretos ou indiretos. As condies e maneiras de usar o gdm e kdm so praticamentes iguais s do xdm, salvo alguns detalhes.

gdm
O executvel do gdm encontra-se em /usr/bin/gdm. O arquivos de configurao so Sessions , gdm.conf e Init/Default, que corresponde ao Xresources. O arquivo gdm.conf controla a maioria das funes do xdm.

kdm
Os arquivos do kdm muitas vezes esto em /usr/share/config/kdm. O executvel /usr/bin/kdm. Sua configurao em muito parecida com a do xdm, sendo o arquivo kdmrc o principal.

Objetivo 1.110.4: Instalar e Personalizar um Ambiente de Gerenciador de Janelas


Peso: 5 O gerenciador de janelas a interface entre o usurio e o servidor X. praticamente impossvel utilizar o ambiente grfico sem um gerenciador de janelas. O procedimento mais comum para iniciar uma sesso do X atravs do comando startx, que chama o script xinit. O script xinit tem dentre suas funes iniciar o servidor X e programas clientes. O gerenciador de janelas o principal desses clientes. H o script xinit padro, localizado em /etc/X11/xinit/xinitrc, mas o mais comum cada usurio ter seu script xinit personalizado, ~/.xinitrc.

Menus
Uma das funes de um gerenciador de janelas fornecer menus de acesso programas (menu root) e controle de janelas (menu window). O menu root acessado clicando na rea de trabalho, o menu window clicando na barra ou no boto do ttulo da janela. A configurao dos menus varia para cada gerenciador de janelas. De uma forma geral, arquivos de configurao de menus tm seu contedo disposto de forma hierrquica, discriminando o tipo do 67

Tpico 110: O Sistema de Janelas X item, o nome do item e o valor. Exemplo do arquivo de menu do gerenciador de janelas Windowmaker, /etc/X11/WindowMaker/WMRootMenu:
("Applications", ("Info", ("Info Panel", INFO_PANEL), ("Legal", LEGAL_PANEL), ("System Console", EXEC, "xconsole"), ("System Load", SHEXEC, "xosview || xload"), ("Process List", EXEC, "xterm -e top"), ("Manual Browser", EXEC, "xman") ), ("Run...", SHEXEC, "%a(Run,Type command to run:)"), ("XTerm", EXEC, "xterm -sb"), ("Mozilla Firefox", EXEC, "firefox"), ...

Emulador de Terminal
O emulador de terminal um programa que permite interagir com o shell como num terminal de texto convencional. O emulador de terminal mais comum o xterm. H alternativas interessantes como o rxvt que mais leve que o xterm e o aterm que possui mais opes de configurao. Os padres de aparncia e comportamento do xterm so determinados no arquivo /etc/X11/app-defaults/XTerm. Essas caractersticas podem ser alteradas atravs de argumentos para o xterm ou atravs dos arquivos ~/.Xresources ou ~/.Xdefaults. Exemplo de ~/.Xresources:
XTerm*font: -misc-fixed-*-*-*-*-18-*-*-*-*-*-iso8859-1 XTerm*foreground: grey70 XTerm*background: black XTerm*visualBell: true

Nesse exemplo alterada a fonte, as cores de fundo e de letra e o bipe de sistema inibido para dar lugar a uma sinalizao visual. Para que essas alteraes tenham efeito, necessrio aglutinar as configuraes ao banco de dados de recursos do servidor X. Essa tarefa realizada automaticamente (se houver alteraes no arquivo) toda vez que o X inicia ou manualmente, com o comando:
$ xrdb -merge ~/.Xresources

H ferramentas que auxiliam a criao de arquivos de recursos, no s para o emulador de terminal, mas para uma variedade de outros programas: xwininfo Retorna informaes sobre uma janela, inclusive informaes de posio e tamanho. editres Permite testar as configuraes e posteriormente salv-las num arquivo.

Comportamento de Teclado e Mouse


A resposta para eventos de teclado e mouse pode ser alterada modificando o arquivo Xmodmap. O 68

Tpico 110: O Sistema de Janelas X arquivo global /etc/X11/xinit/.Xmodmap (ultrapassado) e para o usurio ~/.Xmodmap. Este arquivo deve ser passado ao programa xmodmap para alterar as respostas a eventos. Exemplos de .Xmodmap: Inverter os botes do mouse:
pointer = 3 2 1

Definir tecla Delete:


keycode 107 = Delete

O comando xev auxilia no entendimento e uso de eventos de mouse e teclado. xev abre uma janela que mostrar no emulador de terminal os cdigos associados ao evento recebido na janela.

Bibliotecas Adicionais de Aplicativos


Muitos programas do ambiente grfico exigem bibliotecas adicionais, como os programas criados com a biblioteca GTK (Gimp Tool Kit) ou QT. Essas dependncias podem ser verificadas com o comando ldd, da mesma maneira usada em programas de terminal. Uma vez instaladas as dependncias pendentes nos locais apropriados (localizveis pelo ld.so), os programas funcionaro.

DISPLAY Remoto
Em ambientes de rede, possvel redirecionar a janela de um programa para ser mostrada e controlada em um outro host da rede. A varivel de ambiente DISPLAY determina onde as janelas de programas sero mostradas e controladas. A varivel DISPLAY possui o seguinte formato: hostname:displaynumber.screennumber Em estaes de trabalho convencionais onde o usurio est logado ao prprio host local e s h um conjunto de monitor e teclado/mouse, a varivel DISPLAY :0.0, o que significa que os programas sero mostrados e controlados no nico display (entendido como o conjunto monitor/teclado/mouse) no host local. Displaynumber e screennumber so teis, por exemplo, para operar com monitores adicionais instalados no host. Se o usurio est logado no servidor por uma estao remota chamada debian, atravs de uma conexo XDMCP (login remoto via xdm), a varivel DISPLAY para este usurio dever ser debian:0.0, de forma que os programas executados por ele (programas oriundos do servidor) sejam mostrados e controlados na estao remota. Por segurana, apenas o usurio e no mesmo host que iniciou a sesso X poder abrir programas no respectivo display, a menos que outros usurios/hosts sejam autorizados a faz-lo. Essa exclusividade garantida atravs do MIT-MAGIC-COOKIE-1, um cookie que gerado toda vez que uma sesso X inicia e armazenado em ~/.Xauthority. A maneira mais convencional de se autorizar outros a acessar um mesmo display usando o comando xhost, que libera/bloqueia o acesso para outros usurios/hosts ao display local: Permitir a outros usurio no host local acessarem o display:

69

Tpico 110: O Sistema de Janelas X


# xhost +local:

Permitir que usurios na estao remota redhat acessem o display local:


# xhost +redhat

Agora, basta mudar a varivel DISPLAY na estao redhat para redirecionar a sada e o controle de programas para o display local. Supondo o host local chamar-se slackware, o seguinte comando poderia ser executado na estao redhat:
# export DISPLAY=slackware:0.0

Para bloquear retirar a permisso da estao, substitui-se o sinal + por -:


xhost -redhat

Ao super-usurio (root) o acesso a um display no mesmo host estar garantido ao passo que existir a varivel de ambiente XAUTHORITY apontando o caminho para o arquivo .Xauthority do usurio que iniciou a sesso do X.

70

Apndice 1
Objetivos detalhados para o exame 101
Estes so os objetivos oficiais para o exame 101, disponveis atravs do site http://www.lpi.org/. A opo por deixar os objetivos em ingls para ater-se ao formato original, visto que os objetivos oficiais so publicados apenas nesse idioma.

Exam 101: Detailed Objectives


This is a required exam for LPI certification Level 1. It covers basic system administration skills that are common across all distributions of Linux. IMPORTANT INFORMATION: These are the current 101 objectives, which are valid effective 2006-01-01. The 101 exams which are delivered through test centrers all over the world, will reflect these updated objectives for English in early 2006 and all other languages by late 2006/early 2007. Candidates should be prepared to take exams based upon these objectives after 1Q2006. Each objective is assigned a weighting value. The weights range roughly from 1 to 10 and indicate the relative importance of each objective. Objectives with higher weights will be covered in the exam with more questions. Maintainer: Dimitrios "Taki" Bogiatzoules, Product Developer Last modification: 2005-12-31

Topic 101: Hardware & Architecture

1.101.1 Configure Fundamental BIOS Settings Comment this objective! Weight: 1 Description: Candidates should be able to configure fundamental system hardware by making the correct settings in the system BIOS in x86 based hardware. Key knowledge area(s): Enable and disable integrated peripherals. Configure systems with or without external peripherals such as keyboards. Correctly set IRQ, DMA and I/O addresses for all BIOS administrated ports and settings for error handling. The following is a partial list of the used files, terms and utilities: /proc/ioports /proc/interrupts /proc/dma /proc/pci

1.101.3 Configure Modem and Sound cards Comment this objective! Weight: 1 Description: Candidates should be able to configure modem and soundcard settings. Key knowledge area(s): Ensure devices meet compatibility requirements (particularly that the modem is not an 71

Apndice 1 unsupported win-modem). Verify that correct resources are used by the cards. Configure modem for outbound dial-up. Set serial port speeds. The following is a partial list of the used files, terms and utilities: /proc/dma /proc/interrupts /proc/ioports /proc/pci lspci lsusb

1.101.4 Setup non-IDE Devices Comment this objective! Weight: 1 Description: Candidates should be able to configure non-IDE devices as SCSI, SATA, USB drives using the special BIOS as well as the necessary Linux tools. Key knowledge area(s): Differentiate between the various types of non-IDE devices. Manipulate BIOS to detect used and available SCSI IDs. Set the correct hardware ID for different devices, especially the boot device. Configure BIOS settings to control the boot sequence when both non-IDE and IDE devices are present . The following is a partial list of the used files, terms and utilities: SCSI ID /proc/scsi/ scsi_info

1.101.5 Setup different PC expansion cards Comment this objective! Weight: 3 Description: Candidates should be able to configure various cards for the various expansion slots. Key knowledge area(s): Know the differences between coldplug and hotplug devices. Determine hardware recources for devices. The following is a partial list of the used files, terms and utilities: The appropriate subdirectories of /proc hotplug configuration files, terms and utilities lspci lsusb

1.101.6 Configure Communication Devices Comment this objective! Weight: 1 Description: Candidates should be able to install and configure different internal and

72

Apndice 1 external communication devices like modems, ISDN adapters and DSL modems. Key knowledge area(s): Verification of compatibility requirements (such as the modem is not a winmodem). Correctly set IRQs, DMAs and I/O Ports of the cards to avoid conflicts between devices. Load and configure suitable device drivers. Set serial port speed. Setup modem for outbound PPP connections. The following is a partial list of the used files, terms and utilities: /proc/dma /proc/interrupts /proc/ioports setserial

1.101.7 Configure USB devices Comment this objective! Weight: 1 Description: Candidates should be able to activate USB support, use and configure different USB devices. Key knowledge area(s): Identify and load the correct USB driver module. Demonstrate knowledge of the USB layer architecture and the modules used in the different layers. The following is a partial list of the used files, terms and utilities: lspci xHCI modules lsusb /etc/usbmgr/ usbmodules /etc/hotplug udev configuration files, utilities and documentation

Topic 102: Linux Installation & Package Management

1.102.1 Design hard disk layout Comment this objective! Weight: 5 Description: Candidates should be able to design a disk partitioning scheme for a Linux system. Key knowledge area(s): Allocate filesystems and swap space to separate partitions or disks. Tailor the design to the intended use of the system. Ensure the /boot partition conforms to the BIOS requirements for booting. The following is a partial list of the used files, terms and utilities: / (root) filesystem /var filesystem 73

Apndice 1 /home filesystem swap space mount points partitions

1.102.2 Install a boot manager Comment this objective! Weight: 1 Description: Candidates should be able to select, install and configure a boot manager. Key knowledge area(s): Providing alternative boot locations and backup boot options (for example, using a boot floppy or a bootable CDROM). Install and configure a boot loader such as GRUB or LILO. Interact with the boot loader. The following is a partial list of the used files, terms and utilities: /boot/grub/grub.conf /boot/grub/menu.lst grub-install MBR superblock first stage boot loader /etc/lilo.conf lilo

1.102.3 Make and install programs from source Comment this objective! Weight: 5 Description: Candidates should be able to build and install an executable program from source. This objective includes being able to unpack a file of sources. Candidates should be able to make simple customizations to the Makefile, for example changing paths or adding extra include directories, either in the raw Makefile or using the configure tools. Key knowledge area(s): Unpack a file of sources using typical compression utilities. Make simple customizations to Makefile such as changing paths or adding extra include directories. Apply parameters to a configure script. Know where sourses are stored by default. Compile a RPM oder DPKG software package using sources. The following is a partial list of the used files, terms and utilities: RPM and DPKG commands /usr/src/ gunzip gzip bzip2 tar configure

74

Apndice 1 make

1.102.4 Manage shared libraries Comment this objective! Weight: 3 Description: Candidates should be able to determine the shared libraries that executable programs depend on and install them when necessary. Key knowledge area(s): Identify shared libraries. Identify the typical locations of system libraries. Load shared libraries. The following is a partial list of the used files, terms and utilities: ldd ldconfig /etc/ld.so.conf LD_LIBRARY_PATH

1.102.5 Use Debian package management Comment this objective! Weight: 8 Description: Candidates should be able to perform package management using the Debian package tools. Key knowledge area(s): Install, upgrade and uninstall Debian binary packages. Find packages containing specific files or libraries which may or may not be installed. Obtain package information like version, content, dependencies, package integrity and installation status (whether or not the package is installed). The following is a partial list of the used files, terms and utilities: unpack configure /etc/dpkg/dpkg.cfg /var/lib/dpkg/* /etc/apt/apt.conf /etc/apt/sources.list dpkg dselect dpkg-reconfigure apt-get alien

1.102.6 Use Red Hat Package Manager (RPM) Comment this objective! Weight: 8 Description: Candidates should be able to perform package management using RPM based tools. Key knowledge area(s): 75

Apndice 1 Install, re-install, upgrade and remove RPM packages. Obtain information on RPM packages such as version, status, dependencies, integrity and signatures. Determine what files a package provides, as well as find which package a specific file comes from. The following is a partial list of the used files, terms and utilities: /etc/rpmrc /usr/lib/rpm/* rpm grep

Topic: 103 GNU & Unix Commands

1.103.1 Work on the command line Comment this objective! Weight: 5 Description: Candidates should be able to interact with shells and commands using the command line. The objective assumes the bash shell. Key knowledge area(s): Use single shell commands and one line command sequences to perform basic tasks on the command line. Use and modify the shell environment including defining, referencing and exporting environment variables. Use and edit command history. Invoke commands inside and outside the defined path. Use commands recursively through a directory tree. The following is a partial list of the used files, terms and utilities: . bash echo env exec export pwd set unset ~/.bash_history ~/.profile

1.103.2 Process text streams using filters Comment this objective! Weight: 6 Description: Candidates should should be able to apply filters to text streams. Key knowledge area(s): Send text files and output streams through text utility filters to modify the output using standard UNIX commands found in the GNU textutils package.

76

Apndice 1 The following is a partial list of the used files, terms and utilities: cat cut expand fmt head hexdump join nl paste pr sed sort split tac tail tr unexpand uniq wc

1.103.3 Perform basic file management Comment this objective! Weight: 3 Description: Candidates should be able to use the basic Linux commands to manage files and directories. Key knowledge area(s): Copy, move and remove files and directories individually. Copy multiple files and directories recursively. Remove files and directories recursively. Use simple and advanced wildcard specifications in commands. Using find to locate and act on files based on type, size, or time. The following is a partial list of the used files, terms and utilities: cp find mkdir mv ls rm rmdir touch file globbing

1.103.4 Use streams, pipes and redirects Comment this objective! Weight: 5 Description: Candidates should be able to redirect streams and connect them in order to 77

Apndice 1 efficiently process textual data. Tasks include redirecting standard input, standard output and standard error, piping the output of one command to the input of another command, using the output of one command as arguments to another command and sending output to both stdout and a file. Key knowledge area(s): Redirecting standard input, standard output and standard error. Pipe the output of one command to the input of another command. Use the output of one command as arguments to another command. Send output to both stdout and a file. The following is a partial list of the used files, terms and utilities: tee xargs < << > >> | ` ` (back ticks)

1.103.5 Create, monitor and kill processes Comment this objective! Weight: 5 Description: Candidates should be able to perform basic process management. Key knowledge area(s): Run jobs in the foreground and background. Start a process that will run without being associated to a terminal. Signal a program to continue running after logout. Monitor active processes. Select and sort processes for display. Send signals to processes. Kill processes including processes that did not terminate correctly after an X session has closed The following is a partial list of the used files, terms and utilities: & bg fg jobs kill nohup ps top killall

1.103.6 Modify process execution priorities Comment this objective! Weight: 3 Description: Candidates should should be able to manage process execution priorities.

78

Apndice 1 Key knowledge area(s): Know the default priority of a job that is created. Run a program with higher or lower priority than the default.. Change the priority of a running process. The following is a partial list of the used files, terms and utilities: nice ps renice top

1.103.7 Search text files using regular expressions Comment this objective! Weight: 3 Description: Candidates should be able to manipulate files and text data using regular expressions. This objective includes creating simple regular expressions containing several notational elements. It also includes using regular expression tools to perform searches through a filesystem or file content. Key knowledge area(s): Create simple regular expressions containing several notational elements. Use regular expression tools to perform searches through a filesystem or file content. The following is a partial list of the used files, terms and utilities: grep sed

1.103.8 Perform basic file editing operations using vi Comment this objective! Weight: 1 Description: Candidates should be able to edit text files using vi. This objective includes vi navigation, basic vi modes, inserting, editing, deleting, copying and finding text. Key knowledge area(s): Navigate a document using vi. Use basic vi modes (Command, Insert, Replace). Insert, edit, delete, copy and find text. The following is a partial list of the used files, terms and utilities: vi /, ? h,j,k,l G, H, L i, c, d, dd, p, o, a ZZ, :w!, :q!, :e! :!

Topic 104: Devices, Linux Filesystems, Filesystem Hierarchy Standard

1.104.1 Create partitions and filesystems Comment this objective! 79

Apndice 1 Weight: 3 Description: Candidates should be able to configure disk partitions and then create filesystems on media such as hard disks. This includes the handling of swap partitions. Key knowledge area(s): Use various mkfs commands to set up partitions and create various filesystems, including ext2, ext3, reiserfs, vfat and xfs. The following is a partial list of the used files, terms and utilities: fdisk mkfs mkswap

1.104.2 Maintain the integrity of filesystems Comment this objective! Weight: 3 Description: Candidates should be able to maintain a standard filesystem, as well as the extra data associated with a journaling filesystem. Key knowledge area(s): Verify the integrity of filesystems. Monitor free space and inodes. Repair simple filesystem problems. The following is a partial list of the used files, terms and utilities: du df fsck e2fsck mke2fs debugfs dumpe2fs tune2fs

1.104.3 Control mounting and unmounting filesystems Comment this objective! Weight: 3 Description: Candidates should be able to configure the mounting of a filesystem. Key knowledge area(s): Manually mount and unmount filesystems. Configure filesystem mounting on bootup. Configure user mountable removeable filesystems such as tape drives, floppies and CDROMs. The following is a partial list of the used files, terms and utilities: /etc/fstab mount umount

1.104.4 Managing disk quota

80

Apndice 1 Comment this objective! Weight: 3 Description: Candidates should be able to manage disk quotas for users. Key knowledge area(s): Set up a disk quota for a filesystem. Edit, check and generate user quota reports. The following is a partial list of the used files, terms and utilities: quota edquota repquota quotaon

1.104.5 Use file permissions to control access to files Comment this objective! Weight: 5 Description: Candidates should be able to control file access through the proper use of permissions. Key knowledge area(s): Manage access permissions on regular and special files as well as directories. Use access modes such as suid, sgid and the sticky bit to maintain security. Use the group field to grant file access to workgroups. Basic knowledge of ACL. Know how to change the default file creation mode of the shell. The following is a partial list of the used files, terms and utilities: chmod umask chattr (where applicable)

1.104.6 Manage file ownership Comment this objective! Weight: 1 Description: Candidates should be able to control user and group ownership of files. This objective includes the ability to change the user and group owner of a file as well as the default group owner for new files. Key knowledge area(s): Manage access permissions on regular and special files as well as directories. Use the group field to grant file access to workgroups. The following is a partial list of the used files, terms and utilities: chmod chown chgrp

1.104.7 Create and change hard and symbolic links Comment this objective! Weight: 1

81

Apndice 1 Description: Candidates should be able to create and manage hard and symbolic links to a file. Key knowledge area(s): Create links. Identify hard and/or softlinks. Copying versus linking files. Use links to support system administration tasks. The following is a partial list of the used files, terms and utilities: ln

1.104.8 Find system files and place files in the correct location Comment this objective! Weight: 5 Description: Candidates should be thouroughly familiar with the Filesystem Hierarchy Standard (FHS), including typical file locations and directory classifications. Key knowledge area(s): Understand the correct locations of files under the FHS. Find files and commands on a Linux system. Know the location and propose of impotant file and directories as defind in the FHS. The following is a partial list of the used files, terms and utilities: find locate slocate updatedb whereis which /etc/updatedb.conf

Topic 110: The X Window System

1.110.1 Install & Configure X11 Comment this objective! Weight: 5 Description: Candidates should be able to install and configure X and an X font server. Key knowledge area(s): Verify that the video card and monitor are supported by an X server. Customize and tune X for the videocard and monitor. Install and configure an X font server. Install fonts. Manually edit the X Window configuration file. The following is a partial list of the used files, terms and utilities: xorgcfg xorgconfig /etc/X11/xorg.conf XF86Setup xf86config

82

Apndice 1 xvidtune /etc/X11/XF86Config .Xresources

1.110.2 Setup a display manager Comment this objective! Weight: 3 Description: Candidates should be able setup and customize a display manager. This objective covers the display managers XDM (X Display Manger), GDM (Gnome Display Manager) and KDM (KDE Display Manager). Key knowledge area(s): Turn the display manager on or off. Change the display manager greeting. Change default color depth for the display manager. Configure display managers for use by X-stations. The following is a partial list of the used files, terms and utilities: /etc/inittab /etc/X11/xdm/* /etc/X11/kdm/* /etc/X11/gdm/*

1.110.4 Install & Customize a Window Manager Environment Comment this objective! Weight: 5 Description: Candidates should be able to customize a system-wide desktop environment and/or window manager. Key knowledge area(s): Demonstrate an understanding of customization procedures for window manager menus and/or desktop panel menus. Select and configuring the desired x-terminal (xterm, rxvt, aterm etc.). Verify and resolve library dependency issues for X applications. Export the X-display to a client workstation. The following is a partial list of the used files, terms and utilities: .xinitrc .Xdefaults xhost DISPLAY environment variable

83

Apndice 2
GNU Free Documentation License
GNU Free Documentation License Version 1.2, November 2002 Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject

85

Apndice 2
(or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition.

86

Apndice 2
The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the

87

Apndice 2
Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section.

88

Apndice 2
O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements". 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this

89

Apndice 2
License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such

90

Apndice 2
parties remain in full compliance. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

91

Você também pode gostar