Buscar

101 alkalinux

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 89 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 89 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 89 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Guia de Estudo
LPIC – 101
por Luciano Antonio Siqueira
Lançado sob os termos da
Gnu Free Documentation License
Índice
Introdução................................................................................................................................................5
Porque este documento foi escrito?...............................................................................................5
À Quem se Destina........................................................................................................................5
Versão Atualizada do Guia............................................................................................................5
Contribuições.................................................................................................................................5
Informações de Copyright.............................................................................................................5
Pré-requisitos.................................................................................................................................6
Convenções usadas neste documento............................................................................................6
Tópico 101: Hardware e Arquitetura.......................................................................................................7
Objetivo 1.101.1: Configuração de Atributos Fundamentais de BIOS .............................................7
Recursos de Hardware...................................................................................................................7
Comandos para inspecionar dispositivos.......................................................................................8
Objetivo 1.101.3: Configuração de Modems e Placas de som...........................................................9
Modems.........................................................................................................................................9
Placas de Som..............................................................................................................................10
Objetivo 1.101.4: Configuração de Dispositivos não IDE...............................................................11
Dispositivos SCSI (scuzzy).........................................................................................................11
Objetivo 1.101.5: Configuração de Placas de Expansão Diversas...................................................12
Objetivo 1.101.6: Configuração de Dispositivos de Comunicação..................................................12
ISDN............................................................................................................................................12
DSL..............................................................................................................................................13
Objetivo 1.101.7: Configuração de Dispositivos USB.....................................................................13
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes....................................................15
Objetivo 1.102.1: Criação de Esquemas de Partições de Disco.......................................................15
A Partição 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 Código Fonte....................................19
Compressão e Descompressão de Arquivos................................................................................19
Compilar e Instalar Programas....................................................................................................20
Objetivo 1.102.4: Bibliotecas Compartilhadas.................................................................................21
Objetivo 1.102.5: Administração de Pacotes Debian (.deb).............................................................21
Objetivo 1.102.6: Administração de Pacotes RedHat (.rpm)...........................................................21
Modos Maior e Menor.................................................................................................................21
Assinaturas de Pacotes.................................................................................................................22
Integridade do Pacote...................................................................................................................23
Arquivos e Diretórios Pertinentes ao rpm....................................................................................23
Exemplos de uso do rpm..............................................................................................................23
Tópico 103: Comandos GNU e Unix ...................................................................................................25
Objetivo 1.103.3: Trabalhando na Linha de Comando.....................................................................25
Variáveis......................................................................................................................................25
Variáveis pré-definidas................................................................................................................26
Variáveis especiais.......................................................................................................................27
Histórico de comandos.................................................................................................................27
Comandos Seqüenciais................................................................................................................28
Auto-Completar Comandos e Caminhos.....................................................................................28
Objetivo 1.103.2: Processar Fluxos de Texto Através de Filtros.....................................................28
Objetivo 1.103.3: Gerenciamento Básico de Arquivos....................................................................33
Diretórios e Arquivos..................................................................................................................33
Encontrando Arquivos com o Comando find..............................................................................34
Caracteres Coringa (file globbing)..............................................................................................35
Objetivo 1.103.4: Fluxos, Canalização e Redirecionamentos de Saída............................................36
Redirecionamento........................................................................................................................36
Canalização..................................................................................................................................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 Execução de um Processo.........................................40
Objetivo 1.103.7: Procurar em Arquivos de Texto Usando Expressões Regulares..........................40Expressões Regulares e grep........................................................................................................40
sed................................................................................................................................................41
Objetivo 1.103.8: Edição Básica de Arquivos com o vi...................................................................42
Tópico 104: Dispositivos, Sistemas de Arquivos GNU/Linux e Padrão FHS......................................45
Objetivo 1.104.1:Criação de Partições e Sistemas de Arquivos.......................................................45
fdisk.............................................................................................................................................45
Criação de Sistemas de Arquivos................................................................................................46
Partição Swap..............................................................................................................................46
Objetivo 1.104.2: Manutenção 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
Opções de montagem...................................................................................................................48
Objetivo 1.104.4: Administração de Cotas de Disco........................................................................49
Objetivo 1.104.5: Controle de Permissões e Acesso à Arquivos......................................................50
Permissões Octais........................................................................................................................51
umask...........................................................................................................................................51
suid e sgid....................................................................................................................................52
A Permissão sticky......................................................................................................................52
Permissões 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 Simbólicos e Links Físicos................................................55
Hardlinks (Links Físicos).............................................................................................................55
Softlinks (Links Simbólicos).......................................................................................................55
Objetivo 1.104.8: Encontrar Arquivos de Sistema e Conhecer sua Localização Correta.................56
Hierarquia Padrão de Sistemas de Arquivos (FHS).....................................................................56
Encontrando Arquivos.................................................................................................................57
Tópico 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 Configuração..............................................................................................................60
Seções 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
Apêndice 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.............................................................................................80Apêndice 2.............................................................................................................................................83
GNU Free Documentation License..................................................................................................83
Introdução
Porque este documento foi escrito?
Este material foi escrito quando da minha própria preparação para os exames da certificação LPI nível 
1. Depois de terminado, considerei que poderia ser útil para outras pessoas que buscam a certificação 
e sentem falta de material específico em português. O exame para obtenção do certificado é dividido 
em duas provas, 101 e 102. Este volume é específico para a prova 101 e foi escrito tendo como 
referência os objetivos detalhados para prova 101 fornecidos pelo próprio LPI. A lista dos objetivos 
detalhados para o exame 101 pode ser conferida no primeiro apêndice do presente volume. Mais 
informações sobre o LPI e suas certificações em http://www.lpi.org/.
Todo material contido neste guia foi basicamente retirado de HOWTOs, páginas de manual de 
programas e demais documentos disponíveis através do Linux Documentation Project. Outra 
importante fonte foi o livro Linux System Administration 1, lançado pelo LinuxIT, disponível em 
http://savannah.nongnu.org/projects/lpi-manuals/.
À Quem se Destina
O presente material destina-se à todos que desejam obter a certificação Linux LPI nível 1. No entanto, 
o guia também poderá ser útil a quem não pretende obter a certificação, mas interessa-se em 
aprofundar seus conhecimentos em administração de sistemas GNU/Linux.
Versão Atualizada do Guia
Versões atualizadas deste guia podem ser obtidas em http://lcnsqr.byethost15.com/.
Contribuições
Todos leitores são convidados a contribuir para o guia. Sugestões para aprofundar os tópicos e 
exercícios para cada objetivo serão muito bem vindos. 
Caso identifique informações incorretas, erros de ortografia ou outros equívocos, informe o autor: 
<lcnsqr em yahoo·com·br >
Informações 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 licença foi escolhida para esse material. 
O guia foi escrito com todo esforço para garantir a confiabilidade das informações contidas. No 
entanto, as informações aqui contidas são oferecidas sem qualquer garantia, expressa ou implícita. O 
responsável pelo material aqui apresentado não se responsabiliza por possíveis danos causados ou 
alegação do gênero em relação à este livro. Tampouco a leitura deste guia é garantia de sucesso na 
obtenção da certificação LPI nível 1. 
5
Introdução
Os logotipos, marcas registradas e símbolos usados neste livro são de propriedade de seus respectivos 
proprietários. 
Pré-requisitos
Para melhor utilização deste guia, presume-se que o leitor já esteja familiarizado com o sistema 
GNU/Linux. Portanto, os assuntos são abordados de maneira direta, com objetivo de serem apenas 
referência rápida para posterior estudo e exercício mais aprofundados. O material foi escrito e testado 
num computador rodando Linux Slackware 10.2.
Convenções usadas neste documento
Comandos, opções de comandos, caminhos para arquivos/diretórios, saídas de programas e 
informações tiradas de telas de terminal em geral são apresentados com fonte de tamanho fixo:
Exemplo de tabela de rotas mostradas com o comando route:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
200.228.60.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 200.228.60.1 0.0.0.0 UG 0 0 0 eth0
Argumentos de comandos são geralmente mostrados em itálico, significando que devem ser 
substituídos por valor apropriado:
shutdown [opção] horário [mensagem]
Também são mostrados em itálico nomes e termos específicos ao tema:
“Projetos GNU geralmente incluem documentações como FAQ, Readme, ChangeLog e Guia de 
usuário/administrador. Podem estar no formato ASCII, HTML, LateX ou postscript. Estes arquivos 
podem ser encontrados em /usr/share/doc, em diretórios correspondentes aos programas.”
Termos em negrito são usados quando introduzidos ou muito relevantes para o assunto:
“Uma conta de usuário pode ser apagada com o comando userdel. A opção -r assegura que o 
diretório pessoal do usuário também seja apagado.”
6
Tópico 101: Hardware e Arquitetura
Objetivo 1.101.1: Configuração de Atributos Fundamentais de 
BIOS 
Peso: 1
Recursos de Hardware
O hardware básico do sistema é configurado através do utilitário de configuração de BIOS, que pode 
ser acessado no início do boot da máquina. Através deste utilitário, é possível liberar e bloquear 
periféricos integrados, ativar proteção básica contra erros (proteção básica contra vírus e S.M.A.R.T.) 
e configurar endereços I/O, IRQ e DMA.
✔ IRQ: Requisição de Interrupção do dispositivo para a CPU, que interrompe a atividade em 
andamento e processa a instrução enviada pelo dispositivo.
✔ I/O: Endereço específico no mapa de memória do sistema. A CPU irá se comunicar com o 
dispositivo lendo e escrevendo neste endereço.
✔ DMA: Canal que permite à certos dispositivos acesso direto à memória sem intermédio da 
CPU.
Recursos padrão utilizados por dispositivos comuns:
Dispositivo Porta I/O IRQ
/dev/ttyS0 0x03f8 4
/dev/ttyS1 0x02f8 3
/dev/ttyS2 0x03e8 4
/dev/ttyS3 0x02e8 3
/dev/lp0 0x378 7
/dev/lp1 0x278 5
Placa de Som 0x220 -
É comum que algumas máquinas, como servidores dedicados, sejam acessados apenas remotamente e 
não tenham um teclado conectado. Em caso de algum problema que faça a máquina desligar, como 
interrupção no fornecimento de energia, é importante que a máquina reinicie e volte a operar 
normalmente. Alguns BIOS procuram por um teclado e interrompem o boot caso não o encontrem. 
Para esse tipo de máquina sem teclado, é imprescindível que o BIOS esteja configurado para não 
checar por teclado durante o boot.
O kernel do Linux armazena informações sobre recursos de dispositivos no diretório /proc, nos 
arquivos:
✔ /proc/dma
✔ /proc/interrupts
✔ /proc/ioports
✔ /proc/pci
7
Tópico 101: Hardware e Arquitetura
Trecho exemplo de /proc/ioports:
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-006f : keyboard
0070-0077 : rtc
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
0376-0376 : ide1
0378-037a : parport0
03c0-03df : vesafb
03f6-03f6 : ide0
03f8-03ff : serial
(...)
Comandos para inspecionar dispositivos
lspci
Lista informações de chipset dos componentes PCI. Com a opção -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 identificação do hardware em diante. Essa informação está 
disponível em /var/log/dmesg e /var/log/messages.
Exemplo de dmesg:
8
Tópico 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: Configuração 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 interrupção 
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 -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
No caso do exemplo, apenas a primeira porta serial (/dev/ttyS0) está em uso. Às demais podem 
ser atribuídos os valores de recursos do modem conseguidos através 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 simbólico /dev/modem para /dev/ttyS3:
# ln -s /dev/ttyS3 /dev/modem
O comando setserial também é 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
Tópico 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 configuração do modem para fazer ligações dial-up pode ser feita através do utilitário 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 informações sobre o provedor de 
internet, a ligação é feita com o wvdial:
# wvdial <nome do provedor>
No minicom, os processos de configuração, discagem e autenticação são feitos manualmente, na 
janela do terminal do programa. Para configurar o modem, o minicom deve ser iniciado no modo de 
configuração:
# minicom -s
Diferente do wvdial, o minicom não executa o pppd automaticamente, cabendo ao usuário fazê-
lo para criar a interface de rede e à ela um número IP. Esses procedimentos serão abordados mais 
profundamente no no tópico 112 do exame 102, objetivo 1.112.4: Configurar o GNU/Linux com um 
cliente PPP.
Se não foi possível a comunicação com o modem através desses procedimentos e o modem está 
devidamente conectado à máquina, muito provavelmente trata-se de um winmodem. Winmodems são 
dispositivos dependentes de software adicional muitas vezes desenvolvido exclusivamente para 
plataforma MS-Windows®. Dessa forma, se esse software específico não estiver disponível também 
para GNU/Linux, o modem não 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 não pôde ser encontrado dessa forma, toda a saída de dmesg e lspci pode ser 
consultada para procurar o dispositivo correspondente ao áudio.
Identificada a placa, é possível carregar o módulo correspondente, seja ele OSS ou ALSA. A entrada 
em /etc/modules.conf referente ao primeiro dispositivo de áudio encontrado é sound-slot-
10
Tópico 101: Hardware e Arquitetura
0. Para carregar automaticamente a placa através do /etc/modules.conf, adicione neste 
arquivo a linha
alias sound-slot-0 <nome do módulo>
Informações mais aprofundadas sobre a instalação e carregamento de módulos do kernel serão 
abordadas no tópico 105 do exame 102: Kernel.
Objetivo 1.101.4: Configuração de Dispositivos não 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 são identificados através de um conjunto de três números chamado SCSI_ID: 
1. O Canal SCSI. Cada adaptador SCSI suporta um canal de dados no qual são anexados os 
dispositivos SCSI. São numerados a partir de zero.
2. O ID do dispositivo. A cada dispositivo é atribuído um número ID único alterável através 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 número lógico da unidade (LUN). É usado para determinar diferentes dispositivos dentro 
de um mesmo alvo SCSI. Pode indicar uma partição em um disco ou um dispositivo de fita 
específico em um dispositivo multi-fita. Hoje não é muito utilizado pois adaptadores SCSI 
estão mais baratos e podem comportar mais alvos por barramento.
Todos dispositivos SCSI são 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 informações 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 padrão, 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 
máquina.
11
Tópico 101: Hardware e Arquitetura
Objetivo 1.101.5: Configuração de Placas de Expansão 
Diversas
Peso: 3
A configuração de placas de expansão diversas engloba os aspectos abordados nos objetivos 
anteriores, mais um conhecimento mais sólido sobre coldplug, hotplug e inspeção de hardware.
Em linhas gerais, coldplug significa a impossibilidade de se conectar dispositivo sem a necessidade 
de desligar a máquina. Exemplos de dispositivos coldplug são placas PCI, ISA e dispositivos IDE. Na 
maioria dos computadores, CPU e pentes de memória são coldplug. Porém, alguns servidores de alta 
performance suportam hotplug para esses componentes.
Hotplug é o sistema que permite conectar novos dispositivos à máquina em funcionamento e usá-los 
imediatamente, como no caso de dispositivos USB. O sistema Hotplug foi incorporado ao núcleo 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, através da opção CONFIG_HOTPLUG. Dessa forma, 
haverá o arquivo /proc/sys/kernel/hotplug contendo o caminho para o programa hotplug 
(normalmente em /sbin/hotplug).A ação 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 são 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 máquina ser ligada.
Objetivo 1.101.6: Configuração de Dispositivos de 
Comunicação
Peso: 1
ISDN
Há várias maneiras de se usar ISDN no GNU/Linux. A mais simples é empregar um dispositivo ISDN 
externo que disca, autentica e abre a sessão sozinho, disponibilizando a conexão pela interface 
ethernet. Se o computador está ligado diretamente à conexão ISDN, é necessário 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 porém pouco eficiente.
Outra maneira mais eficiente de usar uma linha ISDN é usar um adaptador (PCI, ISA, PCCARD) 
conectado diretamente ao barramento da máquina. O utilitário isdn4linux incorpora muitos dos 
percalços de uma conexão ISDN e a estabelece com se fosse uma interface de rede convencional.
12
Tópico 101: Hardware e Arquitetura
DSL
Como na conexão ISDN, o mais simples é que um dispositivo DSL externo estabeleça a conexão e aja 
como um roteador para a máquina. 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 
conexão para DSL é o pppoe.
Objetivo 1.101.7: Configuração de Dispositivos USB
Peso: 1
Dispositivos para interface USB (Universal Serial Bus) são divididos em classes: 
✔ Display Devices
✔ Communication Devices
✔ Audio Devices
✔ Mass Storage Devices 
✔ Human Interface Devices (HID)
A porta USB é operada por um controlador (Host Controller): 
✔ OHCI (compaq)
✔ UHCI (intel)
✔ EHCI (USB v2.0)
Uma vez conectados, os dispositivos USB podem ser inspecionados com o comando lsusb.
# lsusb 
Bus 002 Device 003: ID 05a9:a511 OmniVision Technologies, Inc. OV511+ WebCam
Bus 002 Device 002: ID 0f2d:9308 ViPower, Inc. 
Bus 002 Device 001: ID 0000:0000 
Bus 001 Device 001: ID 0000:0000
As informações detalhadas sobre os dispositivos USB conectadas são armazenadas no arquivo 
/proc/bus/usb/devices.
O controle dos dispositivos USB é feito pelo hotplug. Etapas executadas quando uma câmera USB é 
conectada ao computador:
1. Os módulos USB do kernel identificam o evento USB e a ID vendor:product
2. Esses dados são passados para /sbin/hotplug (ou outro, se o indicado em 
/proc/sys/kernel/hotplug não for o padrão)
3. O agente USB respectivo (/etc/hotplug/usb.agent) associa o dispositivo ao produto 
correspondente. A relação entre dispositivo e módulo consta no arquivo 
/etc/hotplug/usb.distmap.
O primeiro estágio envolve procedimentos do kernel, enquanto o segundo e terceiro estágio envolvem 
o mecanismo do hotplug. O mapa USB correto precisa estar disponível para iniciar corretamente o 
dispositivo.
13
Tópico 102: Instalação do GNU/Linux e 
Administração de Pacotes
Objetivo 1.102.1: Criação de Esquemas de Partições 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 diretório, chamado ponto de montagem. Para o usuário, os 
recursos aparecem como uma árvore de diretórios e subdiretórios.
A raiz da árvore de diretórios é representada por uma barra “ / ”. É necessariamente o primeiro 
diretório a ter um dispositivo anexado. Depois de montada a raiz, os diretórios contidos neste 
dispositivo poderão ser pontos de montagem para outros dispositivos.
Processo de montagem:
1. O carregador de boot carrega o kernel e transmite as informações sobre a localização do 
dispositivo raiz.
2. Os demais dispositivos são montados conforme as instruções encontradas em /etc/fstab.
Etapas da criação do layout de disco:
✔ Criar partições de tamanho específico
✔ Escolher o sistema de arquivos
✔ Determinar um ponto de montagem para cada partição
Duas partições é o mínimo exigido em sistemas GNU/Linux, uma que será a raiz “ / ” e outra que 
será a partição de troca swap. Muitas vezes, pode haver um terceira partição pequena, no início do 
disco, apenas para armazenar o kernel e o carregador de boot secundário. Fora essas, não há regras 
inflexíveis quanto à criação de partições, devendo ser avaliado o melhor esquema para a função que o 
sistema desempenhará.
A partição raiz deve ser do tipo Linux Native, cujo código é 83 (0x83). Tudo no sistema poderá 
existir diretamente no dispositivo raiz. No entanto, certos tipos de arquivos são processados de formas 
bem distintas de outros arquivos. Em certos casos, é interessante criar uma partição distinta para certo 
diretório, principalmente em servidores que são muito exigidos. Essa estratégia também impede que 
os dados no disco se fragmentem muito.
Outra questão é o backup. Enquanto certos arquivos não necessitam de backup, outros exigem-no. 
Mesmo dentre os quais é realizado o backup, alguns são pouco alterados durante um determinado 
período enquanto que outros são constantemente alterados ou criados. A criação de partições 
diferentes para cada diretório que comporte um tipo distinto de arquivos facilita as operações de 
criação e recuperação de backup.
Sugestões de diretórios que podem estar em outros dispositivos/partições:
/var
Este diretório contém os as filas de email e impressão, que são muito manipuladas. Há 
também os arquivos de log, cujo conteúdo está em constante alteração e crescimento.
/usr
Programas, códigos fonte e documentação. O ciclo de alteração desses arquivos é longo.
15
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
/tmp
Espaço temporário utilizado por programas. Uma partição distinta para /tmp impedirá que 
dados temporários ocupem todo o espaço no diretório raiz, causando travamento do sistema. 
Não necessita de backup.
/home
Diretórios pessoais do usuário. Uma partição distinta ajuda a limitar o espaço disponível para 
usuários comuns.
/boot
Ponto de montagem para a partição do kernel e do carregador de boot. Necessário apenas caso 
o sistema exija que o kernel esteja antes do cilindro 1024 do disco.
A Partição Swap
Uma partição é swap é identificada pelo código 82 (0x82), atribuído quando da sua criação. 
Geralmente, a partição swap é do mesmo tamanho que o montante de memória RAM no sistema. Para 
servidores, esses número pode ser maior. Uma partição swap muito maior que isso provavelmente não 
terá o espaço excedente utilizado. É possível haver mais de uma partição de swap.
É preferível criar partições de swap nos dispositivos mais rápidos, se possível em dispositivos 
distintos daqueles que têm seus dados muito acessados pelo sistema.
Também é possível criar grandes arquivos como área de swap, o que é geralmente feito em situações 
emergenciais, quando o sistema ameaça ficar sem memória disponível:
# dd if=/dev/zero of=emerg.swp bs=1024k count=32
32+0 registros de entrada
32+0 registros de saída
# 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 Size Used 
Priority
/dev/hda2 partition 160640 39760 -1
/root/emerg.swp file 32760 0 -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 
contém a tabela de partições e o carregadorde boot. Terminado os procedimentos da BIOS, o 
carregador de boot é disparado, que por sua vez procura na tabela de partições uma partição ativa e 
carrega o primeiro setor dessa partição.
LILO
O LILO (Linux Loader) é dividido em três componentes:
✔ lilo – o carregador propriamente. É instalado na MBR e carrega o boot loader de segundo 
estágio, geralmente localizado em /boot/boot.b
16
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
✔ /etc/lilo.conf – arquivo de configuração para o lilo. Principais opções em 
/etc/lilo.conf:
➢ boot – Onde o lilo deve ser instalado. Geralmente na MBR, em /dev/hda.
➢ install – O carregador de segundo estágio (/boot/boot.b é o padrão).
➢ prompt – Oferece ao usuário a escolha do SO a iniciar.
➢ default – Rótulo do dispositivo iniciado por padrão. Se não houver, o primeiro listado em 
/etc/lilo.conf será escolhido.
➢ timeout – Associado a prompt, especifica a espera em décimos de segundo.
➢ image ou other – kernel ou dispositivo a ser carregado (usar “other” para outros 
sistemas). No início do processo de boot, apenas os primeiros 1024 cilindros do disco 
estarão acessíveis ao carregador de boot. Portanto, é importante certificar-se de que a 
partição contendo o kernel (geralmente pequena, montada em /boot) esteja abaixo deste 
limite de 1024 cilindros)
➢ label – Rótulo para a imagem de kernel
➢ root – localização do dispositivo contendo o sistema de arquivos raiz.
➢ read-only – monta a raiz como somente leitura, para o fsck agir apropriadamente
➢ append – passa parâmetros para componentes compilados estaticamente no kernel
➢ linear/lba32 – obriga o lilo a ler o disco usando endereçamento de bloco linear. A opção 
“linear” é geralmente usada para discos muito grandes e “lba32” para permitir que o lilo 
leia além dos primeiros 1024 cilindros do disco. Essas opções não são aconselháveis.
➢ message – especifica um arquivo contendo uma mensagem a ser mostrada no painel de 
boot do lilo.
➢ delay – tempo de espera para que o usuário invoque o prompt, caso este não for invocado 
automaticamente.
➢ vga – valor numérico especificando as preferências visuais do terminal
✔ /sbin/lilo – O utilitário que lê as configurações em /etc/lilo.conf e instala o 
carregador de boot. Deve ser executado toda vez que uma alteração 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
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
GRUB
O grub (Grand Unified Bootloader) é uma alternativa ao lilo. Também é instalado na MBR; pelo 
comando /sbin/grub ou pelo /sbin/grub-install, que obtém as instruções de 
/boot/grub/grub.conf.
Principais seções de /boot/grub/grub.conf:
✔ global
➢ default – imagem de boot padrão (começa por 0)
➢ timeout – tempo de espera para iniciar o boot, em segundos
✔ imagem
➢ title – nome para a imagem
➢ root – localização do carregador de segundo estágio e do kernel (hd0,0 = /dev/hda)
➢ kernel – caminho para o kernel à partir de root
➢ ro – read-only
➢ initrd – caminho para a imagem initrd
Diferente do lilo, o comando grub-install não precisa ser executado toda vez que forem 
feitas alterações 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 
inacessível. Mesmo com a maioria dos Kernels atuais não mais cabendo num disquete, ainda assim é 
possível 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
É necessário criar um arquivo de configuração do lilo alternativo, como /boot/lilo.floppy, 
contendo as informações necessárias para criação do disquete de boot:
boot = /dev/fd0 # O dispositivo de disquete
map = /mnt/floppy/map
compact
image = /boot/vmlinuz # Substituir para o kernel do sistema
 root = /dev/hda3 # Substituir para a partição raiz do sistema
 read-only
Agora o lilo pode ser instalado no disquete, usando o arquivo de configuração criado:
# lilo -C /boot/lilo.floppy
Desmontar o disquete:
18
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
# umount /mnt/floppy
O disquete de boot está pronto. É importante lembrar que disquetes de boot criados dessa forma só 
funcionaram na própria máquina onde foram feitos. Caso sejam feitas alterações no kernel ou 
localização da partição raiz, as configurações deverão ser adequadas e o lilo reinstalado no disquete.
A maioria das distribuições GNU/Linux fornece Cds de boot para instalação do sistema. Esses 
mesmos Cds podem ser usados para acessar e dar boot num sistema já instalado e que possa estar 
inacessível por uma falha do carregador de boot. Para iniciar um sistema já instalado, os seguintes 
parâmetros são passados no prompt de boot:
boot: linux root=/dev/hda3 noinitrd ro
Onde “linux” é o nome do kernel e “/dev/hda3” é a partição raiz. Já dentro do sistema, é 
possível reinstalar o carregador de boot.
Geralmente será necessário alterar a seqüência dos dispositivos de boot no BIOS da máquina 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 
Código Fonte
Peso: 5
Compressão e Descompressão de Arquivos
A maioria dos programas distribuídos em código fonte apresentam-se na forma de arquivos tar (tape 
archiver) comprimidos. Arquivos tar são vários arquivos aglutinados em um só, o que facilitaa 
distribuição.
Tipos de compactação:
Compressão Descompressão Descompressão “cat” Extensão
compress uncompress zcat .Z
gzip gunzip zcat .gz
gzip2 bunzip2 bzcat .bz2
Os comandos zcat e bzcat descomprimem para a saída padrão, ou seja, jogam o conteúdo 
descomprimido na tela do terminal. Detalhes sobre o que é a saída padrão e como utilizá-la no tópico 
103, objetivo 1.103.4: Usar fluxos, canalização e redirecionamentos.
Essas ferramentas de compressão não concatenam arquivos, por isso são utilizadas junto com o 
comando tar. Para facilitar esse procedimento, a compressão e descompressão podem ser feitas 
diretamente pelo comando tar, através dos argumentos:
✔ Z → compress
19
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
✔ z → gzip
✔ j → bzip2
Criar um arquivo tar “programa.tar.bz2” contendo o diretório ./programa/ e seu conteúdo, 
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 criação de arquivo, x extração de arquivo e f o 
nome do arquivo.
Compilar e Instalar Programas
O primeiro passo para instalar um programa em código fonte distribuído no formato tar é extraí-lo:
$ tar xjvf sylpheed-2.0.4.tar.bz2
Este comando criará o diretório ./sylpheed-2.0.4/, contendo o código fonte do programa e as 
ferramentas de configuração.
A configuração pré-compilação é feita dentro desse diretório, por um script chamado configure. 
Este script coleta informações sobre a arquitetura do sistema, caminhos de comandos, bibliotecas 
compartilhadas, características de funcionamento do programa, etc.
Em geral, o configure pode ser invocado sem argumentos na forma:
$ ./configure
Uma opção bastanteutilizada é --prefix , que informa em qual diretório base o programa deverá 
ser instalado. Por exemplo:
$ ./configure --prefix=/opt
Indica que o diretório base da instalação será /opt. O script configure possui muitas opções de 
personalização da instalação. A lista descritiva completa das opções pode ser vista usando
$ ./configure --help 
As informações coletadas pelo script configure são armazenadas em um arquivo no mesmo diretório 
chamado makefile. Este arquivo pode ser editado para alterar as opções de instalação, como a 
variável prefix, que desempenha a mesma função do argumento --prefix do script configure, e 
outras variáveis que indicam a localização de bibliotecas, comandos, características do programa, etc.
Terminada a configuração, o programa pode ser compilado através do comando make. Make criará 
as bibliotecas e arquivos executáveis conforme as opções existentes no makefile. Após o término 
da compilação, que pode levar algum tempo dependendo do tamanho e tipo do programa, o programa 
está pronto para ser instalado
# make install
Se o diretório base de instalação não estiver no diretório pessoal do usuário, esse comando deverá ser 
executado com permissões de super usuário (root). Mesmo estando o diretório base de instalação fora 
do diretório pessoal do usuário, é recomendado executar ./configure e make como usuário 
comum.
20
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
Objetivo 1.102.4: Bibliotecas Compartilhadas
Peso: 3
Funções comuns e compartilhadas por diferentes programas são armazenadas em bibliotecas. Durante 
a compilação de um programa, essas bibliotecas específicas são ligadas ao programa que as usará.
A ligação pode ser estática ou dinâmica, ou seja, as funções da biblioteca poderão estar embutidas 
no programa compilado ou apenas mapeadas para a biblioteca externa. Programas estáticos não 
dependem de arquivos externos e programas dinâmicos são menores e poupam recursos da máquina.
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 são /lib e 
/usr/lib. Para acrescentar um diretório 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 após as alterações em /etc/ld.so.conf, é utilizado o 
comando ldconfig. A execução do ldconfig é fundamental para que as alterações 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 à variável de ambiente LD_LIBRARY_PATH
# export LD_LIBRARY_PATH=/usr/local/lib
Esse método, porém, garante apenas o acesso temporário do ld.so ao diretório em questão. Não 
funcionará fora do escopo da variável de ambiente e quando a variável deixar de existir, mas é um 
método útil para usuários sem permissão para atualizar o /etc/ld.so.cache ou para execução 
pontual de programas.
Objetivo 1.102.5: Administração de Pacotes Debian (.deb)
Peso: 8
Objetivo ainda não abordado. Maiores detalhes sobre administração de pacotes debian em 
http://www.debian.org/doc/manuals/reference/ch-package.pt-br.html.
Objetivo 1.102.6: Administração de Pacotes RedHat (.rpm)
Peso: 8
A maioria dos pacotes rpm é nomeada no formato:
nome-versão-release.arquitetura.rpm
Modos Maior e Menor
Algumas abreviações de opções são parecidas mas realizam diferentes ações dependendo de sua 
posição na linha de comando. A distinção é feita a partir da primeira opção da esquerda para a direita. 
21
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
O primeiro argumento passado ao comando rpm é chamada argumento modo maior. As demais são 
as opções de modo menor.
Opções 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, permissões, tipo,integridade, etc.
-q → Ou --query. Investiga pacotes e arquivos
-e → Ou --erase. Desinstala o pacote
Opções de modo menor para o rpm
a → Aplica em todos pacotes instalados
c → Com “q” lista arquivos de configuração
d → Com “q” lista arquivos de documentação
f → Com “q” verifica qual pacote instalou o arquivo referido
h → Mostra progresso visual da instalação
i → Com “q” lista informações sobre o pacote
l → Com “q” lista todos arquivos e diretórios do pacote
p → Com “q” indica que a investigação é realizada no arquivo .rpm
v → Modo descritivo
Outras opções
--nodeps
Instala o pacote sem checar as dependências
--force
Força a instalação/atualização
--test
Mostra como seria a instalação mas não instala
--requires
Com “q”, mostra as exigências para o pacote especificado
--whatrequires
Com “q”, mostra quais dependem do pacote especificado
Assinaturas de Pacotes
É possível checar a assinatura de todo pacote distribuído como parte de um projeto. Se a distribuição 
for Fedora, por exemplo, as chaves são incorporadas ao banco de dados do rpm com o comando
# rpm --import /usr/share/rhn/RPM-GPG-KEY-FEDORA
22
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
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 opção -V. A opção -Va checa todos os pacotes. A 
análise é feita tendo como referência os arquivos originais do pacote.
Significado dos caracteres retornados pela verificação:
. → Teste bem sucedido
? → O teste não pôde ser realizado
S → O tamanho do arquivo mudou
M → A permissão ou o tipo do arquivo mudou
5 → A soma MD5 do arquivo é diferente
D → O dispositivo foi modificado
L → O link simbólico foi modificado
U → O dono do arquivo mudou
G → O grupo do arquivo mudou
T → A data do arquivo mudou
Arquivos e Diretórios Pertinentes ao rpm
/etc/rpmrc
É o arquivo de configuração do rpm e do rpmbuild. Contém informações sobre a arquitetura 
do sistema e os caminhos para macros e diretórios utilizados no manejo de pacotes. Este 
arquivo é também encontrado em /usr/lib/rpm/
/usr/lib/rpm/*
Diretório contendo as macros necessárias para o manejo de pacotes.
/var/lib/rpm/
Diretório onde se situam as bases de dados do rpm
Exemplos de uso do rpm
Instalar um pacote:
# rpm -ivh xyz.rpm
Instalar todos pacotes iniciados por xyz
# rpm -ivh xyz*
Atualizar um pacote:
# rpm -Uvh xyz.rpm
23
Tópico 102: Instalação do GNU/Linux e Administração de Pacotes
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
Tópico 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 usuário root) indica que está pronto para receber instruções.
O shell é o ambiente que faz o intermédio entre o usuário e os recursos do computador, como um 
ambiente de programação em tempo real para executar tarefas. O shell padrão no GNU/Linux é o 
bash (Born Again Shell). Os procedimentos aqui mostrados se referem ao bash.
As instruções do shell geralmente seguem o formato: comando [opções] {argumentos}
Alguns comandos embutidos do shell:
alias
Cria um codinome para um comando, no formato
$ alias codinome='nome_do_programa --opções'
É útil para facilitar a entrada de comandos recorrentes que levam muitos argumentos. Usar alias 
sem argumentos mostra quais aliases existem e seus conteúdos.
exec
O comando iniciado através de execnão 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 diretórios contidos na variável de ambiente PATH. Se o programa encontra-se no diretório de 
trabalho atual e fora dos diretório contidos em PATH, ele precisará ser invocado começando por ./ :
$ ./programa_local
Variáveis
As variáveis usadas no shell são semelhantes às usadas em linguagens de programação. Nomes de 
variáveis são limitadas a caracteres alfanuméricos.
Criar/Modificar uma variável (espaços não devem ser usados):
$ nome_da_variável=valor_da_variável
O valor de uma variável é retornado acrescentando “$” ao seu nome:
$ echo $nome_da_variável
valor_da_variável
Há dois tipos de variáveis: locais e exportadas
Locais
Acessível apenas no shell atual.
Exportadas
Acessível no shell e pelos processos iniciados neste shell.
25
Tópico 103: Comandos GNU e Unix 
Todas as variáveis são listadas usando o comando set. Para ver apenas as variáveis 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 variável pode ser acessada por qualquer processo ou shell, é chamada de variável global.
Variáveis pré-definidas
DISPLAY
Usado pelo X para saber onde executar os aplicativos clientes
HISTFILE
Caminho para o histórico de comandos do usuário (geralmente $HOME/.bash_history)
HOME
Caminho para o diretório pessoal do usuário
LOGNAME
O nome que o usuário usou para entrar no sistema
PATH
Lista de diretórios nos quais programas serão procurados caso tenham sido solicitados sem o 
caminho completo ou relativo
PWD
O diretório atual
26
Tópico 103: Comandos GNU e Unix 
SHELL
O shell utilizado (neste caso, /bin/bash)
TERM
O tipo de emulador de terminal utilizado
Variáveis especiais
$! → PID do último processo filho
$$ → PID do shell atual
$? → Retorna 0 se o último comando foi bem sucedido, caso contrário retorna 1
~ → Corresponde ao diretório pessoal do usuário atual
~alaor → Corresponde ao diretório pessoal do usuário chamado “alaor”
Histórico de comandos
Para mostrar o histórico de comandos digitados pelo usuário atual, usa-se o comando history. 
History é um comando embutido do bash.
É possível usar atalhos no estilo do emacs para listar o histórico:
Ctrl+p → Linha anterior
Ctrl+n → Próxima linha
Ctrl+b → Volta um caracter
Ctrl+f → Avança um caracter
Ctrl+a → Começo da linha
Ctrl+e → Fim da linha
Outros atalhos:
!! → roda o último comando
!a → roda o último comando que começa pela letra “a”
!2 → roda o comando na 2ª posição do histórico
!-2 → roda o penúltimo comando
^termo1^termo2 → roda o último comando substituindo “termo1” por “termo2”
O arquivo ~/.profile contém personalizações do bash para o usuário, como aliases e variáveis 
particulares.
Exemplo de entrada em ~/.profile :
alias ls='ls --color'
Dessa forma, o alias para ls será permanente.
27
Tópico 103: Comandos GNU e Unix 
Comandos Seqüenciais
Executar três comandos em seqüência, 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 não foi bem sucedido (se retornou diferente de 0):
$ comando1 || comando2 || comando3
Auto-Completar Comandos e Caminhos
Um recurso que agiliza a digitação 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 Através de Filtros
Peso: 6
Este objetivo se relaciona principalmente ao uso das ferramentas do pacote GNU textutils. São 
comando Unix padrão, utilizados para modificar sequências de texto.
cat
É usado para mostrar o conteúdo de arquivos
$ cat /etc/issue
Welcome to \s \r (\l)
Também pode ser usado como um editor de texto rudimentar
$ cat > texto_simples
texto simples
criado com cat
<Ctrl+d> encerra a entrada de texto
Opções comuns do cat:
-n → Numera as linhas
-b → Numera apenas linhas que não estejam em branco
-A → Mostra quebra de linhas
tac
Tem a mesma função do cat, mas mostra o conteúdo de trás para frente:
$ tac texto_simples
criado com cat
texto simples
28
Tópico 103: Comandos GNU e Unix 
head
Mostra o começo de arquivos. Por padrão, as 10 primeiras linhas são mostradas. A quantidade de 
linhas a serem mostradas é indicada pela opção -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 opção -c especifica o número de caracteres (bytes) a serem mostrados no lugar de linhas:
$ head -c 5 /etc/passwd
root:
tail
Mostra o final de arquivos. Por padrão, as 10 últimas linhas são mostradas. A quantidade de linhas a 
serem mostradas é indicada pela opção -n :
$ tail -n 1 texto_simples
criado com cat
A opção -c especifica o número 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 opção -f (de follow). O sinal “+” indica que a leitura deve ser feita a partir da linha 
de número especificado após o “+”:
$ tail +35 /etc/group
console::101:
messagebus:x:102:
haldaemon:x:103:haldaemon
wc
Conta linhas, palavras ou caracteres, com as opções -l, -w e -c respectivamente. Quando usado sem 
argumentos, mostra esses três valores na sequência.
$ 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 não estejam em branco
$ nl texto_simples 
 1 texto simples
 2 criado com cat
expand
Substitui espaços de tabulação (TABs) por espaços simples, mantendo a mesma distância aparente.
Contar os caracteres de /etc/fstab e comparar ao mesmo arquivo filtrado por expand:
29
Tópico 103: Comandos GNU e Unix 
$ wc -c /etc/fstab 
773 /etc/fstab
$ expand /etc/fstab | wc -c 
820
unexpand
Substitui dois ou mais espaços simples por espaços de tabulação (TABs).
hexdump
Mostra arquivos binários. A opção -C torna a saída mais legível, mostrando a coluna de endereço 
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 começo do arquivo /bin/cat:
$ hexdump -C /bin/cat | head
00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 03 00 01 00 00 00 70 8b 04 08 34 00 00 00 |........p...4...|
00000020 90 39 00 00 00 00 00 00 34 00 20 00 07 00 28 00 |.9......4. ...(.|
00000030 19 00 18 00 06 00 00 00 34 00 00 00 34 80 04 08 |........4...4...|
00000040 34 80 04 08 e0 00 00 00 e0 00 00 00 05 00 00 00 |4...à...à.......|
00000050 04 00 00 00 03 00 00 00 14 01 00 00 14 81 04 08 |................|
00000060 14 81 04 08 13 00 00 00 13 00 00 00 04 00 00 00 |................|
00000070 01 00 00 00 01 00 00 00 00 00 00 00 00 80 04 08 |................|00000080 00 80 04 08 cd 35 00 00 cd 35 00 00 05 00 00 00 |....Í5..Í5......|
00000090 00 10 00 00 01 00 00 00 d0 35 00 00 d0 c5 04 08 |........Ð5..ÐÅ..|
A palavra “ELF” no início da coluna ASCII indica que este é um arquivo executável no formato elf – 
Executable and Linkable Format.
split
Divide um arquivo em arquivos menores seguindo critérios como tamanho ou número de linhas. A 
opção -l indica o número de linhas de cada parte do arquivo dividido. A opção -b indica qual o 
tamanho de cada parte. Um prefixo para as partes pode ser indicado após 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 conteúdo idêntico ao do arquivo original.
uniq
Mostra o conteúdo de arquivos suprimindo linhas seqüenciais repetidas.
cut
Delimita um arquivo em colunas, em determinado número de caracteres ou por posição de campo.
Mostrar caracteres da posição 1 à 5 de cada linha:
30
Tópico 103: Comandos GNU e Unix 
$ cut -c 1-5 /etc/group
root:
bin::
daemo
sys::
adm::
(...)
Para separar por campo, usa-se a opção -d para especificar o caracter que delimita os campos e -f 
para informar a posição do campo.
Mostrar os campos da posição 1 e 3 do arquivo /etc/group, campos que estão 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 opção --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 número 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
Tópico 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
$ join -1 1 -2 1 arq1 arq2
1 a1 x1 a2 x2
2 b1 y1 b2 y2
3 c1 z1 c2 z2
A primeira coluna do resultado é o campo que foi relacionado, seguido das linhas correspondentes. É 
possível delimitar quais campos mostrar, com a opção -o. Essa opção deve ser escrita no formato 
N.M, onde N é o número correspondente ao arquivo e M o número correspondente ao campo deste 
arquivo. O campo de relação também pode ser referido por 0.
Exemplo: Fazer a mesma relação 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 opção -n ordena numericamente e -r inverte o resultado.
$ sort texto_simples 
criado com cat
texto simples
fmt
Formata para determinado número de caracteres por linha. O padrão é 75.
-w → indica o número de caracteres por linha
-s → quebra linhas grandes mas não as preenche
-u → um espaço entre palavras e dois espaços entre sentenças.
pr
Divide o arquivo para impressão. O padrão é 66 linhas por 72 caracteres de largura, modificados por 
-l e -w respectivamente.
tr
Converte caracteres. O comando tr lê apenas diretamente via stdin. 
Conversão simples de um único caracter:
$ cat texto_simples | tr ' ' '.'
texto.simples
criado.com.cat
Converter letras minúsculas para maiúsculas:
32
Tópico 103: Comandos GNU e Unix 
$ cat texto_simples | tr 'a-z' 'A-Z'
TEXTO SIMPLES
CRIADO COM CAT
Objetivo 1.103.3: Gerenciamento Básico de Arquivos
Peso: 3
Diretórios e Arquivos
Arquivos podem ser acessados tanto por seu caminho absoluto quanto seu caminho relativo. 
Caminhos absolutos são aqueles iniciados pela barra da raiz ( / ), e caminhos relativos são aqueles 
que tomam por referência o diretório atual. O ponto “.” refere-se ao diretório atual, e “..” refere-se 
ao diretório contendo o diretório atual.
O comando ls é usado para listar arquivos e conteúdo de um diretório. A opção -l exibe detalhes 
sobre o(s) arquivo(s), -s mostra o tamanho em kilobytes e -d mostra o diretório, e não seu conteúdo.
Exemplo de saída de ls -l:
$ ls -l /etc/X11/xinit/
total 20
-rw-r--r-- 1 root root 321 2006-01-14 17:33 README.Xmodmap
lrwxrwxrwx 1 root root 15 2006-03-20 22:31 xinitrc -> xinitrc.fluxbox
-rwxr-xr-x 1 root root 556 2003-03-16 19:59 xinitrc.blackbox
-rwxr-xr-x 1 root root 560 2006-03-07 03:32 xinitrc.fluxbox
-rwxr-xr-x 1 root root 799 2006-01-14 17:30 xinitrc.twm
-rwxr-xr-x 1 root root 788 2005-07-21 15:27 xinitrc.wmaker
A primeira coluna mostra o tipo e as permissões do arquivo, a segunda coluna mostra o número de 
links físicos (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 sétima mostram a data e a hora da 
última modificação do arquivo e a oitava coluna mostra o nome do arquivo. Se o arquivo for um link 
simbólico, uma seta mostra o arquivo para o qual ele aponta.
O comando cp é utilizado para copiar arquivos. Suas opções principais são:
-i → Modo interativo. Pergunta antes de sobrescrever um arquivo.
-p → Copia também os atributos do arquivo original.
-r → Copiar recursivamente o conteúdo do diretório de origem.
É importante saber que quando copiando um diretório recursivamente, o uso da barra “/” no final do 
diretório de origem fará com que apenas o conteúdo do diretório seja copiado/movido para o destino e 
o não uso da barra fará com que o diretório de origem e seu conteúdo sejam copiados no destino.
Exemplo de cp:
$ cp tux.xcf icons/
Copia o arquivo “tux.xcf” para o diretório “icons” no diretório atual.
O comando mv move e renomeia arquivos. Usado com a opção -i pede por confirmação antes de 
sobrescrever um arquivo de destino.
Exemplo de mv:
33
Tópico 103: Comandos GNU e Unix 
$ mv imagem.jpg ../fotos/
Move o arquivo “imagem.jpg” para o diretório “fotos” que está no mesmo diretório onde está 
contido o diretório atual (um nível acima).
Para alterar a data de um arquivo, utiliza-se o comando touch. Usado sem argumentos, touch 
altera a data e a hora de criação e modificação de um arquivo para os valores atuais do sistema. Para 
alterar apenas a data de modificação, usa-se a opção -m, e para alterar apenas a data de acesso, usa-se 
a opção -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 diretório atual é o pwd. O comando cd muda para o diretório 
especificado ou vai para o diretório pessoal quando nenhum diretório for especificado.
O comando mkdir cria diretórios. Para criar uma árvore de diretórios recursivamente, usa-se a opção 
-p:
$ mkdir -p caminho/completo/para/dir
Para alterar as permissões do diretório no ato da criação, as mesmas são transmitidas ao mkdir com 
a opção -m.
Criar diretório 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/
Diretórios vazios podem ser apagados pelo comando rmdir. Para apagar uma árvore de diretórios 
vazios, usa-se a opção -p.
Para apagar diretórios com conteúdo, usa-se rm -r, e para forçar a remoção, a opção -f é utilizada.
Encontrando Arquivos com o Comando find
Sintaxe do find:
find diretório critério [-exec comando {} \;]
O argumento diretório indica onde o find deve iniciar a busca e critério pode ser o nomedo arquivo 
/diretório a ser procurado e/ou uma regra para a busca.
Critérios comuns para o find:
-type
Tipo do arquivo (d para diretório, f para arquivo comum e l para link)
-name nome
Nome do arquivo
-user usuário
Dono do arquivo
34
Tópico 103: Comandos GNU e Unix 
-atime -/+n
Data de último acesso ao arquivo, menor ou maior que n. n corresponde a n*24 horas.
-ctime -/+n
Data de criação do arquivo, menor ou maior que n. n corresponde a n*24 horas.
-mtime -/+n
Data de modificação 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 criação do arquivo, menor ou maior que n. n corresponde a minutos.
-mmin -/+n
Data de modificação 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 permissão mode
-perm -modo
O arquivo procurado tem todos as permissões listadas em mode
-perm +modo
O arquivo procurado tem qualquer das permissões 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 operações com arquivos e diretórios permitem o uso de caracteres coringa, que são padrões de 
substituição de caracteres.
O caracter “ * ” substitui qualquer seqüência de caracteres:
$ ls /etc/host*
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/hosts.equiv
O caracter “ ? ” substitui apenas um caractere:
35
Tópico 103: Comandos GNU e Unix 
$ 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 vírgula:
$ ls /dev/{hda,fd0}
/dev/fd0 /dev/hda
O uso de exclamação antes de um coringa o exclui da operação:
$ ls /dev/fd[!01]
/dev/fd2 /dev/fd3
Coringas precedidos de barra invertida “ \ ” não desempenham função substitutiva:
$ ls /dev/fd\[\!01\]
ls: /dev/fd[!01]: Arquivo ou diretório não encontrado
Entre aspas duplas, apenas os caracteres especiais “|”, “/” e “$” têm efeito. Entre aspas simples 
apenas o caracter especial “\” tem efeito.
Objetivo 1.103.4: Fluxos, Canalização e Redirecionamentos de 
Saída
Peso: 5
Processos Unix geralmente abrem três descritores padrão de arquivos, que os permitem processar 
entrada e saída de dados. Estes descritores podem ser redirecionados de e para outros arquivos ou 
processos. Por padrão, o descritor de entrada (stdin) é o teclado e os descritores de saída padrão 
(stdout) e saída de erro (stderr) são a tela do computador. Os valores numéricos para esses descritores 
são 0 para stdin, 1 para stdout e 2 para stderr. Os descritores também podem ser acessados através dos 
dispositivos virtuais /dev/stdin, /dev/stdout e /dev/stderr.
O fluxo dos dados para redirecionamentos e canalizações numa linha de comando vai da esquerda 
para a direita.
Redirecionamento
Para redirecionar a saída padrão de um comando para um arquivo, utiliza-se o símbolo “>” após 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 conteúdo 
existente, usa-se “>>”.
Para redirecionar o conteúdo de um arquivo para a entrada padrão 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 não lê arquivos diretamente:
$ tr ' ' '-' < clone_texto_simples 
texto-simples
criado-com-cat
O conteúdo redirecionado por padrão é o de stdout. Para especifar stderr usa-se 2>. Para redirecionar 
36
Tópico 103: Comandos GNU e Unix 
ambos simultaneamente, usa-se &>.
Canalização
É possível enviar a saída de um comando para a entrada de outro comando simultaneamente, 
utilizando o caracter de canalização “|”. É preciso que o programa de origem dos dados os direcione 
para a saída padrão. Isso varia para cada programa, e geralmente se dá passando o argumento de 
destino como um traço “-” ou simplesmente ocultando o argumento de saída. Da mesma forma, 
alguns programas precisam que seja especificada a origem dos dados através de stdin. Todas essas 
informações podem ser obtidas consultando o manual do programa.
Exemplo: Extrair a terceira música de um CD com o programa cdparanoia canalizando o áudio 
através do programa oggenc para armazenar a música no formato Ogg Vorbis.
$ cdparanoia -d /dev/cdrom 3 - | oggenc - -o 03.ogg
Por fim, é possível redirecionar simultaneamente a saída tanto para um arquivo quanto para stdout, 
através do comando tee. Para tal, canaliza-se a saída do comando para o comando tee e a este um 
nome de arquivo para armazenar a saída:
$ cat /etc/passwd | tee cópia_passwd
O conteúdo de /etc/passwd será mostrado na tela e copiado no arquivo cópia_passwd.
É possível também usar a saída 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 17:35 /usr/X11R6/lib
drwxr-xr-x 2 root root 712 2006-03-17 12:26 /usr/i486-slackware-linux/lib
drwxr-xr-x 2 root root 688 2005-10-29 22:53 /usr/lib/qt/lib
drwxr-xr-x 16 root root 7272 2006-03-21 02:49 /usr/local/lib
Resultado idêntico é conseguido usando $():
$ ls -dl $(cat /etc/ld.so.conf)
drwxr-xr-x 5 root root 7464 2006-01-14 17:35 /usr/X11R6/lib
drwxr-xr-x 2 root root 712 2006-03-17 12:26 /usr/i486-slackware-linux/lib
drwxr-xr-x 2 root root 688 2005-10-29 22:53 /usr/lib/qt/lib
drwxr-xr-x 16 root root 7272 2006-03-21 02:49 /usr/local/lib
O comando xargs desempenha função parecida, passando os dados que recebe via stdin como 
argumento para um segundo comando.
Exemplo do xargs acompanhando a execução do find:
$ 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.
37
Tópico 103: Comandos GNU e Unix 
Objetivo 1.103.5: Criar, Monitorar e Finalizar Processos
Peso: 5
Em linhas gerais, um processo é um programa em execução. Cada processo possui um número único 
de identificação chamado PID. Este número 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 genealógica (processos filhos ligados aos respectivos 
processos pais).
Opções comuns:
-p → Inclui PIDs dos processos.
-h → Lista apenas os processos do usuário atual.
ps
Mostra os processos de maneira detalhada.
Opções comuns:
ux → Mostra todos processos do usuário.
aux → Mostra todos processos no sistema.
-u → Mostra apenas processos cujo dono seja o indicado pela opção -u.
-g → Mostra apenas processos cujo grupo seja o indicado pela opção -g.
top
Monitora continuamente os processos, mostrando informações como uso de memória e CPU de cada

Outros materiais