Вы находитесь на странице: 1из 242

Linux Essentials

450

www.4linux.com.br

-2

Sumrio
Captulo 1
Introduo ao infnito............................................................................................................... 10
1.1. Objetivos ...................................................................................................................... 10
1.2. Introduo terica.........................................................................................................10
1.3. Distribuies GNU/Linux ............................................................................................. 12
1.4. Caractersticas de Algumas Distribuies ................................................................... 15
1.4.1. RedHat ...............................................................................................................................16
1.4.2. Suse..................................................................................................................................... 16
1.4.3. Mandriva............................................................................................................................. 16
1.4.4. Slackware............................................................................................................................ 17
1.4.5. Debian................................................................................................................................. 17
1.4.6. Ubuntu.................................................................................................................................17
1.4.7. Fedora .................................................................................................................................18
1.4.8. OpenSuse ............................................................................................................................18
1.4.9. Knoppix................................................................................................................................18
1.4.10. Gentoo .............................................................................................................................. 19

1.5. Exerccios Tericos ...................................................................................................... 19


Captulo 2
Primeiros Passos...................................................................................................................... 21
2.1. Objetivos ...................................................................................................................... 21
2.2. Introduo terica.........................................................................................................22
2.3. Introduo ao Shell...................................................................................................... 23
2.4. Terminal Virtual ........................................................................................................... 24
2.5. Logon ........................................................................................................................... 25
2.6. Histrico de comandos ................................................................................................. 25
2.7. Logout .......................................................................................................................... 26
2.8. Desligando o Computador ............................................................................................ 26
2.9. Reiniciando o Computador ...........................................................................................27
2.10. Prtica Dirigida .......................................................................................................... 28
2.11. Exerccio Terico.........................................................................................................29
Captulo 3
FHS, Hierarquia dos Diretrios .............................................................................................. 31
3.1. Objetivos ...................................................................................................................... 31
3.2. Introduo terica.........................................................................................................32
3.3. Estrutura de Diretrios GNU/Linux ............................................................................. 33

-3
3.4. Diretrio Recomendado ............................................................................................... 37
3.5. O diretrio /sys ............................................................................................................. 37
3.6. Diretrios Opcionais..................................................................................................... 37
3.7. Comandos de Movimentao ....................................................................................... 38
3.8. Prtica Dirigida ............................................................................................................ 39
3.9. Exerccio Terico ..........................................................................................................41
3.10. Laboratrio .................................................................................................................43
Captulo 4
Aprendendo comandos do GNU/Linux .................................................................................... 45
4.1. Objetivos ...................................................................................................................... 45
4.2. Introduo terica.........................................................................................................45
4.2.1. Explorando o sistema ......................................................................................................... 46

4.3. O comando ls ................................................................................................................46


4.3.1. Curingas ............................................................................................................................. 48
4.3.2. Usando curingas no Shell ................................................................................................... 49

4.4. Criao, movimentao, cpia e remoo de arquivos e diretrios .............................50


4.5. Prtica Dirigida ............................................................................................................ 53
4.6. Exerccio Terico ..........................................................................................................55
4.7. Laboratrio ...................................................................................................................56
Captulo 5
Comandos teis de linha de comando...................................................................................... 57
5.1. Objetivos ...................................................................................................................... 57
5.2. Introduo terica.........................................................................................................58
5.3. Trabalhando com entrada e sada de dados .................................................................58
5.4. Comandos para paginao e visualizao de arquivos.................................................59
5.4.1. Mostrando o contedo e/ou concatenando ......................................................................... 59
5.4.2. Controlar o fuxo: more e less .............................................................................................60
5.4.3. Pores especfcas: head e tail ......................................................................................... 60
5.4.4. Contagem: wc ..................................................................................................................... 61
5.4.5. Classifcao: sort ...............................................................................................................62
5.4.6. Mostrar algo: echo ..............................................................................................................62

5.5. Filtragem .....................................................................................................................63


5.5.1. Filtrar colunas: cut ............................................................................................................. 64
5.5.2. Determinando o tipo de arquivo: fle .................................................................................. 65

5.6. Administrativos............................................................................................................. 65
5.6.1. Espao em Disco..................................................................................................................65
5.6.2. Defnindo tamanho dos objetos............................................................................................66
5.6.3. Mostrar o uso de memria RAM: free ................................................................................ 67
5.6.4. Mostrar e/ou ajustar a data do sistema: date ..................................................................... 67

-4
5.6.5. Mostrar por quanto tempo o computador est ligado: uptime ........................................... 68
5.6.6. Mostrar informaes sobre o sistema: uname .................................................................... 68
5.6.7. Diferena entre arquivos: dif ............................................................................................. 69
5.6.8. Tempo de execuo de um programa: time......................................................................... 69
5.6.9. Localizao no sistema: fnd ............................................................................................... 69
5.6.10. Localizao usando base de dados: locate ........................................................................72

5.7. Mais e mais comandos.................................................................................................. 72


5.8. Prtica Dirigida ............................................................................................................ 73
5.9. Exerccios Tericos ...................................................................................................... 78
5.10. Laboratrio .................................................................................................................79
Captulo 6
Conhecendo a Documentao ................................................................................................. 80
6.1. Objetivos ...................................................................................................................... 80
6.2. Introduo terica ........................................................................................................81
6.3. Formas de Documentao ............................................................................................ 82
6.3.1. How-to's ..............................................................................................................................82
6.3.2. Manuais .............................................................................................................................. 82
6.3.3. Documentao .................................................................................................................... 83

6.4. Comandos de ajuda ...................................................................................................... 83


6.4.1. Comando help ..................................................................................................................... 83
6.4.2. Comando man ..................................................................................................................... 84
6.4.3. Comando apropos ............................................................................................................... 86
6.4.4. Comando whatis ................................................................................................................. 87
6.4.5. Comando info ......................................................................................................................88

6.5. Alternativas para consulta ........................................................................................... 88


6.6. Comando whereis .........................................................................................................90
6.7. Comando which ............................................................................................................ 90
6.8. Prtica Dirigida ............................................................................................................ 91
6.9. Conhecendo a Origem .................................................................................................. 92
6.10. Exerccios Tericos .................................................................................................... 93
6.11. Laboratrio .................................................................................................................94
Captulo 7
Editores de texto ..................................................................................................................... 95
7.1. Objetivos ...................................................................................................................... 95
7.2. Introduo terica.........................................................................................................96
7.3. Editor Nano .................................................................................................................. 96
7.4. Editor Vim .................................................................................................................... 98
7.5. Prtica Dirigida ............................................................................................................ 99
7.5.1. Testando as funcionalidades do Vim ................................................................................. 100

-5

Teste os comandos de Edio..................................................................................................... 100

7.6. Exerccio Terico ........................................................................................................102


7.7. Laboratrio .................................................................................................................104
Captulo 8
Introduo a Redes ............................................................................................................... 105
8.1. Objetivos .................................................................................................................... 105
8.2. Introduo terica ....................................................................................................106
8.3. Entendendo o IP ......................................................................................................... 106
8.4. Entendendo o gateway da rede .................................................................................110
8.5. O servidor DNS .......................................................................................................... 110
8.6. Arp e RARP ................................................................................................................111
8.7. Confgurando a Rede ..................................................................................................111
8.7.1. Confgurando IP e Mscara .............................................................................................. 111
8.7.2. Confgurando o gateway ................................................................................................... 113
8.7.3. Confgurao dos DNS Servers ........................................................................................ 113
8.7.4. Confgurao esttica de rede .......................................................................................... 114

8.8. Arquivo Hosts .............................................................................................................115


8.9. Comando hostname ....................................................................................................115
8.10. O arquivo nsswitch.conf ........................................................................................... 116
8.11. Ferramentas de consulta...........................................................................................116
8.12. Prtica Dirigida ........................................................................................................ 117
8.13. Exerccio Terico ......................................................................................................121
8.14. Laboratrio ...............................................................................................................122
Captulo 9
Manipulando Hardware e Dispositivos ................................................................................. 123
9.1. Objetivos .................................................................................................................... 123
9.2. Introduo terica.......................................................................................................124
9.2.1. Explorando o /dev ............................................................................................................. 124

9.3. Dispositivos de armazenamento .................................................................................126


9.4. Devices, UUID e Labels ..............................................................................................129
9.4.1. Usando os dispositivos de armazenamento ..................................................................... 131

9.5. Criando Parties no HD ............................................................................................132


9.5.1. Particionamento com FDISK .............................................................................................133
9.5.2. Particionamento com CFDISK .......................................................................................... 134

9.6. Aplicando um Filesystem ........................................................................................... 135


9.7. Arquivos de Informaes de Filesystems.................................................................... 136
9.8. Confguraes de Teclado no Console ........................................................................138

-6
9.9. Prtica Dirigida 1 ....................................................................................................... 138
9.10. Para aprofundar o assunto ...................................................................................... 139
9.11. Prtica Dirigida 2 ..................................................................................................... 139
9.12. Exerccios Tericos .................................................................................................. 142
9.13. Laboratrio ...............................................................................................................143
Captulo 10
Instalao Linux em Desktop ................................................................................................ 144
10.1. Objetivos .................................................................................................................. 144
10.2. Introduo terica.....................................................................................................145
10.3. Perfl da instalao: ................................................................................................. 145
10.3.1. Telas de Instalao ......................................................................................................... 146

Captulo 11
Instalando, removendo e
atualizando programas ..........................................................................................................167
11.1. Objetivos .................................................................................................................. 167
11.2. O que um pacote? ..................................................................................................168
11.3. Mas o que um gerenciador de pacotes? ................................................................ 168
11.4. Gerenciamento de pacotes ....................................................................................... 170
11.5. Espelhos e o arquivo /etc/apt/sources.list ................................................................ 171
11.6. Instalao, Remoo e Atualizao .......................................................................... 172
11.7. Consultas de Pacotes ............................................................................................... 172
11.8. Atualizao via Internet ........................................................................................... 172
11.9. Gerenciamento de pacotes em distros baseadas em rpm. ....................................... 173
11.9.1. Instalando pacotes: .........................................................................................................173
11.9.2. Removendo pacotes: ....................................................................................................... 173

11.10. Exerccio Terico ....................................................................................................174


Captulo 12
Servidor X ............................................................................................................................. 176
12.1. Objetivos .................................................................................................................. 176
12.2. Introduo terica ....................................................................................................177
12.3. Confgurando o suporte Interface Grfca ............................................................177
12.4. Varivel de Ambiente DISPLAY ................................................................................ 178
12.5. Window Managers ....................................................................................................179
12.6. Display Managers ....................................................................................................180
12.7. Protocolo XDMCP .....................................................................................................180
12.8. Xnest ........................................................................................................................ 180
12.9. Prtica Dirigida ....................................................................................................... 181

-7
12.9.1. Instalao e Confgurao do Servidor X ........................................................................181
12.9.2. Instalando um Window Manager .................................................................................... 184
12.9.3. Display Managers ........................................................................................................... 185
12.9.4. Servidor X Remoto ..........................................................................................................187

12.10. Exerccios ............................................................................................................... 188


Captulo 13
Administrao de Usurios ................................................................................................... 189
13.1. Objetivos .................................................................................................................. 189
13.2. Introduo terica....................................................................................................190
13.3. Permisses ............................................................................................................... 191
13.3.1. Exemplos de permisses .................................................................................................194

13.4. Registro de usurios no sistema ............................................................................. 194


13.4.1. Arquivo /etc/passwd ........................................................................................................195
13.4.2. Arquivo /etc/shadow ....................................................................................................... 196

13.5. Levantamento de informaes dos usurios ............................................................ 197


13.5.1. Chage ..............................................................................................................................197
13.5.2. Comando id .....................................................................................................................198
13.5.3. Comando fnger .............................................................................................................. 198
13.5.4. Comando users .............................................................................................................. 198
13.5.5. Comando who ................................................................................................................. 199

13.6. Comando w ...............................................................................................................199


13.7. Criando Usurios .................................................................................................... 199
13.7.1. Comando adduser ........................................................................................................... 199

13.8. Adicionar um usurio a outro grupo ........................................................................ 200


13.8.1. Comando gpasswd .......................................................................................................... 200

13.9. Modifcando usurios ............................................................................................... 201


13.9.1. Comando passwd ............................................................................................................ 201
13.9.2. Comando usermod .......................................................................................................... 201

13.10. Alterao do Dono e Grupo .................................................................................... 202


13.11. Removendo usurios .............................................................................................. 203
13.12. Umask ................................................................................................................... 203
13.13. Permisses Especiais ............................................................................................. 204
13.14. Prtica Dirigida ..................................................................................................... 206
13.15. Exerccios Tericos ................................................................................................ 209
13.16. Laboratrio .............................................................................................................211
Captulo 14
Administrao da Shell ......................................................................................................... 212
14.1. Objetivos .................................................................................................................. 212
14.2. Introduo terica.....................................................................................................213

-8
14.3. O que uma shell? ................................................................................................... 213
14.4. Variveis em Shell .................................................................................................... 213
14.4.1. Variveis Locais e de Ambiente (globais) ....................................................................... 214

14.5. Alias ..........................................................................................................................215


14.5.1. Arquivos de Login ........................................................................................................... 215
14.5.2. Arquivos /etc/issue e /etc/motd .......................................................................................216

14.6. Tipos de shell ........................................................................................................... 217


14.7. Prtica Dirigida ....................................................................................................... 218
14.8. Exerccio Terico ......................................................................................................221
14.9. Laboratrio ...............................................................................................................222
Captulo 15
Compactadores, Empacotadores e Procedimentos de Backup .............................................223
15.1. Objetivos .................................................................................................................. 223
15.2. Introduo terica....................................................................................................224
15.3. O empacotador cpio ................................................................................................ 226
15.4. Compactadores GZIP e BZIP2 ..................................................................................226
15.5. Falando de Backup ................................................................................................... 227
15.5.1. O comando dd .................................................................................................................228

15.6. Prtica Dirigida ........................................................................................................ 228


15.6.1. gzip e bzip2 com arquivos de texto puro ........................................................................ 229
15.6.2. gzip e bzip2 com arquivos binrios ................................................................................ 231
15.6.3. Trabalhando com o tar ....................................................................................................232

15.7. Exerccios Tericos .................................................................................................. 234


Captulo 16
Agendamento de Tarefas .......................................................................................................235
16.1. Objetivos .................................................................................................................. 235
16.2. Introduo terica ....................................................................................................236
16.3. Prtica Dirigida ........................................................................................................ 237
16.3.1. Agendamento de Tarefas com AT ................................................................................... 237
16.3.2. Agendando Tarefas com o CRON ....................................................................................239

16.4. Exerccios Tericos .................................................................................................. 241


REFERNCIAS
BIBLIOGRFICAS.................................................................................................................. 242

Captulo 1 Introduo ao infinito - 9

ndice de tabelas
ndice de Figuras

Captulo 1 Introduo ao infinito - 10

Captulo 1
Introduo ao infnito

1.1. Objetivos
Descobrir o que GNU/Linux;
Entender a flosofa do Software Livre;
Conhecer um pouco da histria;
Entender o que so Distribuies.

Captulo 1 Introduo ao infinito - 11

1.2. Introduo terica


Utilizar um sistema GNU/Linux muito mais do que optar por uma soluo
isenta de custos de licena. usufruir de uma flosofa que antecedeu o software
proprietrio, e que permitiu, por exemplo, que a Internet crescesse de forma livre
como a conhecemos hoje. Como usurio de Software Livre, precisamos compreender
um pouco mais sobre essa ideologia e como ela promoveu o surgimento das vrias
distribuies.
O sistema GNU/Linux frequentemente chamado apenas pelo seu segundo
nome: Linux. Entretanto, essa designao no faz justia a todos os desenvolvedores
que vm construindo o sistema operacional como um todo.
GNU, que um acrnimo recursivo de GNU's not Unix. Trata-se, de um grupo
que foi fundado em 1984 por seu idealizador, Richard Stallman, com o intuito de criar
um sistema operacional Unix-like desprovido de amarras e travas ao seu uso. Os
desenvolvedores GNU criaram uma srie de programas bsicos para um sistema
operacional funcional, como editores de texto e compiladores. Entretanto, havia um
pedao de cdigo essencial, que ainda no tinha sido criado: o kernel.
Em 1991, um jovem fnlands chamado Linus Torvalds disponibilizou para o
mundo a primeira verso do Linux, um kernel Unix-like. A partir desse ponto, foi
possvel unir o kernel Linux com os softwares GNU, originando o sistema operacional
que chamamos de GNU/Linux.
O mundo GNU/Linux no apenas um conjunto de programas. Ele traz
consigo uma flosofa de Mundo Livre e colaborativo, no qual as pessoas podem
utilizar esses softwares irrestritamete, acima de tudo, aprender com eles, uma vez
que seu cdigo fonte deve ser disponvel a todos que queiram melhor-lo ou apenas
aprender com ele. Para que esse mundo continue livre, Richard Stallman fundou a
FSF - Free Software Foundation, que criou e mantm a licena GNU GPL GNU General Public License. Esta licena defne, de modo simplifcado, que o
Software deve respeitar quatro princpios bsicos, aqui chamados de liberdades.
So elas:

liberdade 0 - liberdade para rodar o programa para quaisquer propsitos;


liberdade 1 - liberdade para estudar como o programa trabalha e adapt-lo
s suas necessidades. Ter acesso ao cdigo fonte essencial para isso;

Captulo 1 Introduo ao infinito - 12


liberdade 2 - liberdade de redistribuir cpias de forma que voc possa
ajudar outras pessoas;
liberdade 3 - liberdade para melhorar o programa e disponibilizar as
melhorias para o pblico, de forma que toda a comunidade possa se
benefciar. Ter acesso ao cdigo fonte essencial tambm para isso.

Aps a criao dessa licena, vrias outras, baseadas nos preceitos flosfcos
de Copyleft, foram criadas com o objetivo de defender a liberdade do conhecimento,
informao e do cdigo aberto. Abaixo podemos ver alguns exemplos:

GFDL - GNU Free Documentation Licence (www.gnu.org/copyleft/fdl.html);


OPL - Open Publication License (http://www.opencontent.org/openpub/);
CC - Creative Commons (http://creativecommons.org/about/licenses);
BSD - Berkeley Software Distribution
(http://www.freebsd.org/copyright/license.html);
SPL - Sun Public Licence (http://java.sun.com/spl.html);

Atualmente a GPL est disponvel em trs verses, GPLv1, GPLv2 e GPLv3.


Fique por dentro de suas diferenas em: http://www.gnu.org/licenses/gpl.html
Para mais informaes a respeito do kernel - Linux - podem ser obtidas no site
ofcial de seus mantenedores: http://www.kernel.org
Informaes sobre os projetos GNU e FSF podem ser obtidas nos seus
respectivos sites:
http://www.gnu.org
http://www.fsf.org

Captulo 1 Introduo ao infinito - 13

1.3. Distribuies GNU/Linux

Voc j deve ter ouvido falar em Debian, RedHat, Slackware, Suse, Conectiva,
Mandrake, Ubuntu dentre outras. Mas, o que realmente isso? O que so todos
esses nomes? Essas so distribuies GNU/Linux. Uma distribuio nada mais do
que o kernel Linux, softwares GNU e outros aplicativos que so desenvolvidos por
outras comunidades ou grupos, reunidos em um sistema operacional que tem
peculiaridades que o diferencia de outros sistemas operacionais GNU/Linux, fazendoos nicos.
Mas, por que existem tantas distribuies? Justamente porque se voc no se
identifca com nenhuma delas, voc livre para fazer a sua prpria. Por exemplo, em
1993, um rapaz chamado Patrick Volkerding, juntou o kernel e vrios outros
aplicativos em uma distribuio chamada Slackware, que foi a primeira a ser
distribuda em CD. A partir desse ponto, foram surgindo diversas outras distribuies
que de alguma forma diferiam da flosofa do Slackware: como Debian ou RedHat.

Captulo 1 Introduo ao infinito - 14

Ilustrao 1: Linha de tempo GNU/Linux


Atualmente existem centenas de distribuies, algumas mais famosas que
outras. Em sua maioria, as distribuies GNU/Linux so mantidas por grandes
comunidades de colaboradores, entretanto, h outras que so mantidas por
empresas. Dessa forma, podemos dividir as distros, abreviao bastante utilizada
na comunidade e que se refere s distribuies, em duas categorias bsicas:
Livres
Corporativas

Captulo 1 Introduo ao infinito - 15


Distribuies Livres - mantidas por comunidades de colaboradores sem fns
lucrativos. Exemplos so: Debian, Slackware, Gentoo, Knoppix e CentOS, entre
outras de menor importncia.
Distribuies Corporativas - mantidas por empresas que vendem o suporte
ao seu sistema. Exemplos: RedHat, Ubuntu, Suse e Mandriva.
Neste ponto vale ressaltar o fato de que o produto vendido pelas empresas
que comercializam sistemas GNU/Linux, so na verdade, os servios relacionados ao
sistema operacional, como suporte tcnico, garantias e treinamentos, ou seja, o
expertise do sistema. Ento, de fato, no h produto algum sendo vendido, apenas
os servios relacionados aos softwares agregados na distribuio GNU/Linux.
a liberdade do software, garantida pela licena GPL, que perpetua o
respeito dos direitos defnidos pela FSF. Isso porque, pela defnio de Software
Livre, nunca, em hiptese alguma, permitido que o cdigo fonte seja negado ao
cliente, ao receptor do Software. Assim, por mais que uma empresa queira utilizar
mecanismos pouco ticos para fazer o seu prprio sistema GNU/Linux, enquanto ela
estiver utilizando softwares licenciados sob a licena GPL, ela ser obrigada a
distribuir o cdigo fonte dos programas.
Dentro do conjunto de Distribuies Livres, podemos dividi-las novamente em
duas outras categorias:
Convencionais
Live

Distribuies Convencionais - So distribudas da forma tradicional, ou


seja, uma ou mais mdias que so utilizadas para instalar o sistema no disco rgido;
Distribuies Live - So distribudas em mdias com o intuito de rodarem a
partir delas, sem a necessidade de serem instaladas no HD. As distribuies Live
fcaram famosas pois tm a inteno de fornecer um sistema GNU/Linux totalmente
funcional, de forma fcil e sem colocar em risco o sistema operacional original da
mquina. O fator que favoreceu essa abordagem que, em uma distribuio Live
praticamente todos os componentes j vm confgurados, funcionando e com
interfaces agradveis aos usurios fnais. Exemplos desse tipo de distribuio so o
Knoppix, do qual se originaram diversas outras como o Kurumin ou Kalango,
que so verses traduzidas e adaptadas realidade brasileira.

Captulo 1 Introduo ao infinito - 16


Para entender um pouco mais sobre distribuies, necessrio lembrar de
mais duas caractersticas:
From scratch
Provenientes (Baseadas)

Distribuies From Scratch - So desenvolvidas do zero, ou seja, utilizam


um

kernel

Linux,

alguns

programas

GNU

grande

maioria

das

suas

particularidades desenvolvida especifcamente para ela. Exemplos:


Debian ;
RedHat;
Gentoo;
Slackware;

Distribuies Provenientes (Baseadas) - Aproveitam ferramentas e bases


j desenvolvidas por outras distribuies. Distribuies baseadas usam distribuies
From Scratch para alcanar seus objetivos mais rpido, dando maior ateno

ao

propsito da distribuio. Exemplos: Ubuntu, DreamLinux, Kubuntu, Kurumin, Slax e


BrDesktop, dentre outras.

1.4. Caractersticas de Algumas Distribuies


Neste captulo vamos mostrar algumas das caractersticas das principais
distribuies GNU/Linux disponveis no mercado. Pode-se encontrar uma lista das
distribuies existentes, bem como suas estatsticas de download, no site:
http://distrowatch.com

Captulo 1 Introduo ao infinito - 17


1.4.1. RedHat
Distribuio: corporativa;
Descrio: Primeira distribuio corporativa a ser criada. Muito utilizada
nas empresas por oferecer suporte tcnico e ter seu sistema compatvel com
as principais tecnologias disponveis;
Interface padro: GNOME;
Sistema de pacote: RPM - RedHat Package Manager;
Site ofcial: http://www.redhat.com

1.4.2. Suse
Distribuio: corporativa;
Descrio: Comprada pela Novell em 2003, a principal concorrente da
RedHat. Atua no meio corporativo tanto em servidores quanto em
desktops. Assim como a RedHat, possui parcerias com diversas empresas,
a fm de manter seu sistema compatvel com produtos de terceiros;
Interface padro: GNOME;
Sistema de pacote: baseado em RPM, porm no segue o formato da
RedHat risca, tendo implementado algumas variaes;
Site ofcial: http://www.novell.com/linux

1.4.3. Mandriva
Distribuio: corporativa;
Descrio: Originada da fuso da francesa Mandrake e a brasileira
Conectiva, especializada em servios e projetos embarcados. uma
distribuio especializada em criar ambientes amigveis aos usurios;
Interface padro: KDE;
Sistema de pacote: RPM;
Site ofcial: http://www.mandriva.com

Captulo 1 Introduo ao infinito - 18


1.4.4. Slackware
Distribuio: livre;
Descrio: Primeira distribuio GNU/Linux a ser distribuda em CD,
considerada como sendo a primeira de todas as distribuies. Organizada
por seu criador Patrick Volkerding, caracteriza-se por sua flosofa de ser a
mais Unix-like do mundo GNU/Linux.
Interface padro: KDE;
Sistema de pacote: tgz;
Site ofcial: http://www.slackware.com

1.4.5. Debian
Distribuio: livre;
Descrio: Criada com o intuito de prover um sistema operacional
totalmente livre e gratuito, foi uma das primeiras distribuies GNU/Linux a
serem criadas. Atualmente uma das maiores distribuies e a que mais
gerou outras. Por seu compromisso com a liberdade e gratuidade, a
distribuio mais utilizada em rgos pblicos e governos;
Interface padro: GNOME;
Sistema de pacote: DEB - Debian Package;
Site ofcial: http://www.debian.org

1.4.6. Ubuntu
Distribuio: livre (convencional e Live);
Descrio: Com seu slogan Linux for Human Beings- voltada para o
usurio fnal, apesar de ter verso para servidores. Patrocinada pelo
milionrio Mark Shuttleworth, atualmente a maior distribuio em nmero
de downloads.
Interface padro: GNOME ou KDE (para Kubuntu);
Sistema de pacote: DEB - Debian Package;
Site ofcial: http://www.ubuntu.com

Captulo 1 Introduo ao infinito - 19


1.4.7. Fedora
Distribuio: livre;
Descrio: Mantida pela RedHat, serve de teste para o carro chefe da
empresa, o RedHat Enterprise.
Interface padro: GNOME;
Sistema de pacote: RPM - RedHat Package Manager;
Site ofcial: http://fedora.redhat.com

1.4.8. OpenSuse
Distribuio: livre;
Descrio: Patrocinada pela Novell, baseia-se no Suse Linux.
Interface padro: GNOME ou KDE;
Sistema de pacote: RPM;
Site ofcial: http://en.opensuse.org

1.4.9. Knoppix
Distribuio: livre (Live);
Descrio: Distribuio Live que popularizou distribuies do gnero,
devido sua ferramenta de remasterizao que facilitou o processo de
gerar novas distribuies;
Interface padro: KDE;
Sistema de pacote: DEB;
Site ofcial: http://www.knoppix.org

Captulo 1 Introduo ao infinito - 20


1.4.10. Gentoo
Distribuio: livre (Live);
Descrio: Todos os programas so compilados na prpria mquina. As
principais vantagens so a performance e a personalizao conforme as
necessidades do usurio. A principal desvantagem o trabalho e tempo
necessrios a sua instalao.
Interface padro: A escolha do usurio;
Sistema de pacote: Emerge, cdigo fonte;
Site ofcial: http://www.gentoo.org

1.5. Exerccios Tericos


1) Quais so as liberdades bsicas idealizadas por Richard Stallman?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

2) O que Linux e quem o seu criador?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

3) O que uma distribuio GNU/Linux?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

4) O que GPL?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 1 Introduo ao infinito - 21


5) Qual a fnalidade das licenas que defendem o Copyleft?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

6) Software Livre o mesmo que software grtis?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

7) Qual foi a primeira distribuio disponibilizada em CD?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

8) Qual a diferena entre uma distro live e convencional?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

9) Como funciona o processo de desenvolvimento de uma distribuio


GNU/Linux?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 1 Introduo ao infinito - 22

Captulo 2
Primeiros Passos

2.1. Objetivos
Entender a estrutura do sistema operacional;
Descobrir as funcionalidades do Shell;
Executar os primeiros comandos no sistema.

Captulo 2 Primeiros Passos - 23

2.2. Introduo terica


A fgura abaixo procura demonstrar como o sistema operacional GNU/Linux
se organiza em layers - camadas. Verifque:

Ilustrao 2: Estrutura do Sistema

importante entender cada uma dessas camadas para compreender o


conjunto que chamamos de Sistema Operacional.
Vamos descrever cada uma delas:
Hardware - Dispositivos que esto disponveis para o uso do sistema, tais
como cd-rom, placa de rede, controladora SCSI entre outros;
Kernel - O ncleo do sistema operacional, essa layer quem faz todas as
interaes com o hardware da mquina, interpretando requisies feitas
pelas camadas acima desta;
Sistema Operacional - Essa layer tem como funo auxiliar e abrigar
todos os aplicativos das camadas superiores. Segundo Linus Torvalds essa
layer no deve ser notada pelo usurio fnal;
ttyN - Terminais Virtuais onde so executados os comandos e defnidas as
confguraes. As tty's interpretam os comandos dados por um humano e
convertem os mesmos para uma linguagem que a mquina entenda;
DM - A layer de Display Manager responsvel por gerenciar os
logins - validao de usurios - na interface grfca e escolher o tipo de
ambiente grfco que deve ser executado;

Captulo 2 Primeiros Passos - 24


Desktop Environment - Mais conhecido como Ambiente de Trabalho,
responsvel por abrigar todos os programas que necessitam de um
ambiente grfco para funcionar.

2.3. Introduo ao Shell


No Mundo GNU/Linux, utilizamos o Shell, que funciona como interpretador
de comandos. Ele a interface entre o usurio e o kernel do sistema e por meio
dele, podemos digitar os comandos. O Shell padro do GNU/Linux o Bash.
Entretanto existem tambm outras interfaces, como, por exemplo, csh, tcsh,
ksh e zsh.
O kernel a parte mais prxima do hardware do computador. o ncleo do
Sistema Operacional. Se seu GNU/Linux estiver com problemas, no chute seu
computador, a culpa no dele.
O local onde o comando ser digitado marcado por um trao piscante na
tela, chamado de cursor. Tanto em Shell texto como em Shell grfco
necessrio o uso do cursor para saber onde devemos iniciar a digitao de textos e
nos orientarmos quanto posio na tela.
Popularmente conhecido como linha de comando, o Shell interpreta a ao
do usurio atravs das instrues digitadas. Estas instrues podero ser executadas
por dois nveis de usurios, com permisses diferentes. So eles:
Super usurio: Popularmente conhecido como root. No se engane,
root no de raiz, da lngua inglesa. O usurio root o administrador do
sistema, e seu diretrio (pasta) padro o /root, diferentemente dos
demais usurios que fcam dentro de /home. No prximo captulo
falaremos mais sobre a estrutura de diretrios do GNU/Linux. O Shell de
um usurio root se diferencia do Shell de um usurio comum, pois antes
do cursor, ele identifcado com # (jogo-da-velha).
Usurio comum: qualquer usurio do sistema que no seja root e no
tenha poderes administrativos no sistema. Como j havamos dito
anteriormente, o diretrio padro para os usurios o /home. Antes do
cursor, o Shell de um usurio comum identifcado com $ (cifro).
Existem muitas funcionalidades no Shell, uma delas retornar comandos
que j foram digitados anteriormente. Para fazer isso s pressionar as teclas seta

Captulo 2 Primeiros Passos - 25


para cima e seta para baixo para ter acesso ao histrico de comandos. Inclusive o
nome do programa responsvel por manter essa lista history.
Outra funcionalidade muito utilizada, serve para rolar a nossa tela de modo
que possamos ir para cima ou para baixo, parecido com o scroll Para rolarmos a
tela para cima, segura-se a tecla Shift e pressionamos o Page Up. Para rolarmos
a tela para baixo, segura-se a tecla Shift e pressionamos o Page Down. Isto til
para ver textos que rolaram rapidamente para cima e saram do nosso campo de
viso.
A execuo de comandos com poderes administrativos, exige que o nvel do
usurio comum seja alterado. Uma das formas de fazer isso utilizando o comando
su - Super User. Veja sua descrio abaixo:
su - Para usar o comando su necessrio ter o password do
administrador. Uma vez que o nvel tenha sido mudado ser possvel
executar qualquer comado com poderes de root.
Utilizao do comando su:
$ su

2.4. Terminal Virtual


Terminal ou console, so o teclado e o monitor conectados em seu
computador. O GNU/Linux faz uso de sua caracterstica multi-usurio, ou seja,
suporta vrios usurios conectados ao mesmo tempo, usando os terminais virtuais.
Um terminal virtual uma segunda seo de trabalho completamente independente
de outras e que pode ser acessado no computador local ou remotamente, utilizando
os programas telnet, rsh, rlogin, rdesktop, vnc, ssh, etc. Nos dias de hoje,
o acesso remoto muito importante. A qualquer distncia que se esteja do cliente,
possvel atend-lo.
No GNU/Linux possvel, em modo texto, acessar outros terminais virtuais,
segurando a tecla ALT e pressionando uma das teclas de F1 at F6. Cada tecla tem
funo correspondente a um nmero de terminal do 1 ao 6. Esse o comportamento
padro - default, e pode ser mudado (o stimo, por default, usado pelo
ambiente grfco - Xorg).

Captulo 2 Primeiros Passos - 26


O GNU/Linux possui mais de 63 terminais virtuais, mas deles, apenas 6 esto
disponveis, inicialmente por motivos de economia de memria RAM. Se voc
estiver usando o modo grfco, deve segurar Ctrl + Alt enquanto pressiona uma
tecla de atalho de F1 a F6.
Um exemplo prtico: se voc estiver utilizando o sistema no terminal 1,
pressione Ctrl + Alt + F2, e veja na primeira linha nome e verso do sistema
operacional, nome da mquina e o terminal no qual voc est. Voc pode utilizar
quantos terminais quiser, do F1 ao F6 (inclusive utilizando o X) e pode fcar
saltando de terminal para terminal.

2.5. Logon
Logon a entrada do usurio, seja root ou comum, onde deve ser digitado
seu nome de usurio e logo depois sua senha. Caso voc digite algo de forma errada,
ir aparecer uma mensagem de erro e voc no ser logado autenticado - no
sistema.
importante perceber que quando se digita a senha, no aparece nenhum
retorno, como os famosos asteriscos. O objetivo evitar que um observador mais
curioso seja capaz de contar quantos caracteres sua senha possui.

2.6. Histrico de comandos


O terminal do GNU/Linux permite que voc guarde 500 comandos por padro,
assim no necessrio redigitar o comando sempre que precisar dele novamente.
$ history

2.7. Logout
Logout a sada do sistema. Ela feita por um dos comandos abaixo:
$ logout
$ exit
$ <CTRL>+D
ou quando o sistema reiniciado ou desligado.

Captulo 2 Primeiros Passos - 27

2.8. Desligando o Computador


Para desligar o computador,

pode-se utilizar um dos comandos abaixo,

sempre que se esteja com o nvel de usurio root:


# shutdown -h now
# halt
# poweroff
A palavra halt vem do comando em assembly chamado HTL, que quer
dizer parada de processamento. Assim, o GNU/Linux fnalizar os programas e
gravar os dados remanescentes na memria no disco rgido. Quando for mostrada a
mensagem power down, pressione o boto POWER em seu gabinete para desligar
a alimentao de energia do computador. Nunca desligue o computador diretamente
sem utilizar um dos comandos shutdown, halt ou powerof, pois podem ocorrer
perdas de dados ou falhas no sistema de arquivos de seu disco rgido, devido a
programas abertos e dados ainda no gravados no disco. Os comandos halt e
powerof disparam uma srie de procedimentos, como encerramento de servios e
desligamento de sistemas de arquivos, que so executados antes da mquina ser
desligada.
Em computadores mais modernos o comando halt desliga completamente o
computador, no sendo necessrio pressionar o boto Power.
Salve seus trabalhos para no correr o risco de perd-los durante o
desligamento do computador. E se puder, tenha um Nobreak.
O comando shutdown tem a seguinte sintaxe:
# shutdown <ao> <tempo>
Onde:
ao - o que voc quer fazer, cujas opes so:
-h para desligar
-r para reiniciar.

tempo - tempo em minutos que voc deseja para comear a executar a


ao.

Captulo 2 Primeiros Passos - 28


Exemplo, desligar agora:
# shutdown -h now ou -h 0
Desligar daqui a 12 minutos:
# shutdown -h 12

2.9. Reiniciando o Computador


Reiniciar quer dizer Iniciar novamente o sistema. No recomendvel
desligar e ligar constantemente o Computador pelo boto ON/OFF ou RESET.
Por isso, existem recursos para reiniciar o sistema sem desligar o computador. No
GNU/Linux voc pode usar o comando reboot, shutdown -r now ou pressionar
simultaneamente as teclas Ctrl + Alt + Del para reiniciar o sistema de forma
segura. Observaes:
Salve seus trabalhos.
Utilize comandos e no o boto liga/desliga.
Prefra um dos mtodos de reinicializao explicados acima e use o boto
reset somente em ltimo caso.

Reiniciar agora:
# shutdown -r now
Reiniciar daqui a 5 minutos:
# shutdown -r 5

Captulo 2 Primeiros Passos - 29

2.10. Prtica Dirigida


A seguir, vamos testar algumas funcionalidades da linha de comando. No
necessrio se preocupar em decor-los, com o passar do tempo, pegamos um pouco
mais de prtica:
Pressione a tecla Back Space para apagar um caractere esquerda do
cursor;
Pressione a tecla Delete para apagar o caractere direita do cursor;
Pressione a tecla Home para ir ao comeo da linha de comando;
Pressione a tecla End para ir ao fnal da linha de comando;
Pressione as teclas Ctrl + A para mover o cursor para o incio da linha de
comandos;
Pressione as teclas Ctrl + E para mover o cursor para o fm da linha de
comandos;
Pressione as teclas Ctrl + U para apagar o que estiver esquerda do
cursor. O contedo apagado copiado e pode ser colado com Ctrl + y;
Pressione as teclas Ctrl + K para apagar o que estiver direita do cursor.
O contedo apagado copiado e pode ser colado com Ctrl + y;
Pressione as teclas Ctrl + l para limpar a tela e manter a linha de
comando na primeira linha. Mas se voc der um Shift + Page Up voc
ainda consegue enxergar o contedo. O Ctrl + l um atalho para o
comando clear;
Pressione as teclas Ctrl + c para abrir uma nova linha de comando, na
posio atual do cursor;
Pressione as teclas Ctrl + d para sair do Shell. Este equivalente ao
comando exit;
Pressione as teclas Ctrl + R para procurar x letra relacionada ao ltimo
comando digitado que tinha x letra como contedo do comando.
Coloque o computador para desligar em 1 minuto:
# shutdown -h 1
Ligue o micro e faa o login:
Usurio: aluno
Senha: 123456

Captulo 2 Primeiros Passos - 30


Coloque o computador para reiniciar em 1 minuto:
$ shutdown -r 1
Deu erro. Por que?

Eleve seus poderes no sistema, vire root atravs do comando:


$ su
password: 123456
E agora, voc consegue reiniciar a mquina:
# shutdown -r now

2.11. Exerccio Terico


1) Voc precisa desligar a mquina, mas algum est usando sua impressora
e isso o impede de dar o boot imediatamente. Sabendo que o trabalho de
impresso termina no mximo em 5 minutos, qual comando voc usaria
para desligar a mquina daqui a 10 minutos?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

2) Voc precisa enviar um aviso para seus 150 usurios logados, mas sem
desligar ou reiniciar a mquina. Como voc faria?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

3) correto afrmar que quase todos os programas grfcos so provenientes


de um comando?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 2 Primeiros Passos - 31

4) Cite qual a principal funo do terminal de comandos?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

5) Qual a quantidade de terminais que esto disponveis no sistema


operacional Debian GNU/Linux?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 2 Primeiros Passos - 32

Captulo 3
FHS, Hierarquia dos Diretrios

3.1. Objetivos
Entender o que FHS;
Conhecer a estrutura de diretrios do sistema;
Conhecer alguns diretrios especiais e suas determinadas fnalidades.

Captulo 3 FHS, Hierarquia dos Diretrios - 33

3.2. Introduo terica


Quem j teve algum contato com o GNU/Linux, mesmo que superfcial, deve
ter percebido a presena de vrios diretrios (pastas) no sistema. Entretanto, eles
esto organizados seguindo o padro POSIX, com o qual voc pode no estar muito
familiarizado. Neste captulo, vamos conhecer a organizao, e explorar a estrutura
de diretrios de um sistema GNU/Linux.
Desde que o GNU/Linux foi criado, muito se tem feito para seguir um padro
em relao estrutura de diretrios. O primeiro esforo para padronizao de
sistemas de arquivos para o GNU/Linux foi o FSSTND - Filesystem Standard,
lanado no ano de 1994.
Cada diretrio do sistema tem seus respectivos arquivos que so armazenados
conforme regras defnidas pela FHS - Filesystem Hierarchy Standard ou
Hierarquia Padro do Sistema de Arquivos, que defne que tipo de arquivo
deve ser guardado em cada diretrio. Isso muito importante, pois o padro ajuda a
manter compatibilidade entre as distribuies existentes no mercado, permitindo que
qualquer software escrito para o GNU/Linux seja executado em qualquer distribuio
desenvolvida de acordo com os padres FHS.
Atualmente, o FHS est na sua verso 2.3, e mantido pelo Free Standard
Group", uma organizao sem fns lucrativos formada por grandes empresas como
HP, IBM, RedHat e Dell.
vital entender bem sobre a FHS para prova, atravs dela que ns
devemos fazer nossas atividades com o GNU/Linux em nosso dia-a-dia.

3.3. Estrutura de Diretrios GNU/Linux


A estrutura de diretrios tambm conhecida como rvore de Diretrios
porque tem a forma de uma rvore. Mas, antes de estudarmos a estrutura de
diretrios, temos que entender o que so diretrios.
Um diretrio o local onde os arquivos so guardados no sistema. O objetivo
organizar os diferentes arquivos e programas. Pense nos diretrios como sendo as
gavetas de um armrio. Cada gaveta guarda, normalmente, um tipo diferente de

Captulo 3 FHS, Hierarquia dos Diretrios - 34


roupa, enquanto cada diretrio guarda um certo tipo especfco de arquivo.
O arquivo pode ser um texto, uma imagem, planilha, etc. Os arquivos devem
ser identifcados por nomes para que sejam localizados por quem deseja utiliz-los.
Um detalhe importante a ser observado que o GNU/Linux segue o padro
POSIX que case sensitive, isto , ele diferencia letras maisculas e minsculas
nos arquivos e diretrios.
Sendo assim, um arquivo chamado Arquivo diferente de um outro
chamado ARQUIVO e diferente de um terceiro, chamado arquivo. Inteligente
isso, no ?
A rvore de diretrios do GNU/Linux tem a seguinte estrutura:
/
bin

cdrom

boot

dev

etc
home

lib

mnt

media

opt

proc
sbin

root

var

srv

tmp

sys
usr

Da estrutura mostrada acima, o FHS determina que um sistema GNU/Linux


deve conter obrigatoriamente 14 diretrios, especifcados a seguir:
/ (raiz)
Este o principal diretrio do GNU/Linux, e representado por uma /
(barra). no diretrio raiz que fcam todos os demais diretrios do sistema.
Estes diretrios, que vamos conhecer agora, so chamados de subdiretrios
pois esto dentro do diretrio /.
/bin
O diretrio /bin guarda os comandos essenciais para o funcionamento do
sistema.
Esse um diretrio pblico, sendo assim, os comandos que esto nele podem
ser utilizados por qualquer usurio do sistema. Entre os comandos, esto:
bash;
ls;
echo;
cp;

Captulo 3 FHS, Hierarquia dos Diretrios - 35


/boot
No diretrio /boot esto os arquivos estticos necessrios inicializao do
sistema, e o gerenciador de boot.
O gerenciador de boot um programa que carrega o sistema operacional
e/ou permite escolher qual ser iniciado.

/dev
No diretrio /dev fcam todos os arquivos de dispositivos. O GNU/Linux faz a
comunicao com os perifricos por meio de links especiais que fcam armazenados
nesse diretrio, facilitando assim o acesso aos mesmos.

/etc
No diretrio /etc esto os arquivos de confgurao do sistema. Nesse
diretrio vamos encontrar vrios arquivos de confgurao, tais como: scripts de
inicializao do sistema, tabela do sistema de arquivos, confgurao padro para
logins dos usurios, etc.

/lib
No diretrio /lib esto as bibliotecas compartilhadas e mdulos do kernel.
As bibliotecas so funes que podem ser utilizadas por vrios programas.

/media
Ponto de montagem para dispositivos removveis, tais como:
cd;
dvd;
disquete;
pendrive;
cmera digital;

Captulo 3 FHS, Hierarquia dos Diretrios - 36


Fique atento: Agora o diretrio /media faz parte ofcialmente das provas
da LPI.

/mnt
Este diretrio utilizado para montagem temporria de sistemas de arquivos,
tais como compartilhamentos de arquivos entre Windows e GNU/Linux, GNU/Linux
e GNU/Linux, etc.

/opt
Normalmente, utilizado por programas proprietrios ou que no fazem parte
ofcialmente da distribuio.

/sbin
O diretrio /sbin guarda os comandos utilizados para inicializar, reparar,
restaurar e/ou recuperar o sistema. Isso quer dizer que esse diretrio tambm de
comandos essenciais, mas os mesmos so utilizados apenas pelo usurio root.
Entre os comandos esto:
halt
ifconfg
init
iptables

/srv
Diretrio para dados de servios fornecidos pelo sistema, cuja aplicao de
alcance geral, ou seja, os dados no so especfcos de um usurio.
Por exemplo:
/srv/www (servidor web)
/srv/ftp (servidor ftp)

Captulo 3 FHS, Hierarquia dos Diretrios - 37


/tmp
Diretrio para armazenamento de arquivos temporrios. utilizado
principalmente para guardar pequenas informaes que precisam estar em algum
lugar at que a operao seja completada, como o caso de um download.
Enquanto no for concludo, o arquivo fca registrado em /tmp, e, assim que
fnalizado, encaminhado para o local correto.

/usr
O diretrio /usr contm programas que no so essenciais ao sistema e que
seguem o padro GNU/Linux, como, por exemplo, navegadores, gerenciadores de
janelas, etc.

O diretrio /usr portvel. Perceba que dentro dele, existe praticamente


uma outra arvore de diretrios independente da primeira, contendo, lib,
bin e sbin, dentre outros.

/var
O diretrio /var contm arquivos de dados variveis. Por padro, os
programas que geram arquivos de registro para consulta, mais conhecidos como
logs, fcam armazenados nesse diretrio. Alm do og, os arquivos que esto
aguardando em flas, tambm fcam localizados em /var/spool.
Os principais arquivos que se utilizam do diretrio /var so:
mensagens de e-mail;
arquivos a serem impressos;

3.4. Diretrio Recomendado


/proc
O /proc um diretrio virtual, mantido pelo kernel, onde encontramos a
confgurao atual do sistema, dados estatsticos, dispositivos j montados,
interrupes, endereos e estados das portas fsicas, dados sobre as redes, etc.
Aqui, temos subdiretrios com o nome que corresponde ao PID - Process
ID de cada processo.

Captulo 3 FHS, Hierarquia dos Diretrios - 38


Dentro deles, vamos encontrar diversos arquivos texto contendo vrias
informaes sobre o respectivo processo em execuo.

3.5. O diretrio /sys


Pode-se dizer que esse diretrio um primo do diretrio /proc. Dentro do
diretrio /sys podemos encontrar quase o mesmo contedo do /proc, mas de uma
forma bem mais organizada para ns administradores.
Esse diretrio est presente desde a verso 2.6 do kernel e traz novas
funcionalidades no que diz respeito a dispositivos PnP.

3.6. Diretrios Opcionais


Os diretrios /root e /home podem estar disponveis no sistema, mas no
precisam obrigatoriamente possuir este nome.
Por exemplo, o diretrio /home poderia se chamar /casa, que no causaria
nenhum impacto na estrutura do sistema.

/home
O /home contm os diretrios pessoais dos usurios cadastrados no
sistema.
/root
Diretrio pessoal do super usurio root.
O root o administrador do sistema, pode alterar as confguraes do
sistema, confgurar interfaces de rede, manipular usurios e grupos, alterar a
prioridade dos processos, entre outras.
Dica: Utilize uma conta de usurio normal em vez da conta root para operar
seu sistema.

Uma razo para evitar usar privilgios root regularmente, a facilidade


de se cometer danos irreparveis; alm do que, voc pode ser enganado e
rodar um programa Cavalo de Tria (programa que obtm poderes do
super usurio) comprometendo a segurana do seu sistema sem que voc
saiba.

Captulo 3 FHS, Hierarquia dos Diretrios - 39

3.7. Comandos de Movimentao


Vamos aprender agora alguns
movimentao dentro do sistema.

comandos

essenciais

para

nossa

O comando pwd exibe o diretrio corrente. Ele muito til quando estamos
navegando pelo sistema e no lembramos qual o diretrio atual.
# pwd
O comando cd utilizado para mudar o diretrio atual de onde o usurio
est. Ir para o diretrio home do usurio logado:
# cd
# cd ~
Ir para o incio da rvore de diretrios, ou seja, o diretrio /:
# cd /
Ir para um diretrio especfco:
# cd /etc
Sobe um nvel na rvore de diretrios:
# cd ..
Retorna ao diretrio anterior:
# cd Entra em um diretrio especfco:
# cd /usr/include/X11
Sobe 2 nveis da rvore de diretrios:
# cd ../../

Ateno! Note a diferena entre caminhos absolutos e relativos:


Absolutos: /etc/ppp; /usr/share/doc; /lib/modules
Relativos: etc/ppp; ../doc; ../../usr;

Captulo 3 FHS, Hierarquia dos Diretrios - 40


Fique esperto para conhecer as diferenas entre o . e o .. e o que eles
representam para o sistema. Os comandos de movimentao muitas vezes
so grandes alvos nas provas, uma boa interpretao desses comandos
pode ser necessria, pois voc pode precisar deles para resolver uma
questo maior.

3.8. Prtica Dirigida


Atravs dos comandos: cd e pwd, navegue no sistema afm de explorar
alguns diretrios.
1) Verifcar o diretrio atual:
$ pwd

2) Ir para o incio da rvore de diretrios, ou seja, o diretrio / :


$ cd /

3) Ir para o diretrio home do usurio logado:


$ cd
$ cd ~

4) Ir para o diretrio /usr/share:


$ cd /usr/share

5) Subir um nvel na rvore de diretrios:


$ cd ..

6) Retornar ao diretrio anterior:


$ cd -

Captulo 3 FHS, Hierarquia dos Diretrios - 41


7) Entre no diretrio /var:
$ cd /var

8) Entre no diretrio /etc e veja o resultado do comando pwd:


$ cd /etc
$ pwd

9) Utilize o comando cd .., para voltar um nvel na hierarquia:


$ cd ..

10)
Descubra em qual diretrio voc est atravs do comando
pwd:
$ pwd

11)
Utilize o comando cd ~, para voltar para seu diretrio
pessoal:
$ cd ~

12)
Descubra em qual diretrio voc est atravs do comando
pwd:
$ pwd

13)
Utilize o comando cd -, para voltar ao ultimo diretrio
acessado:
$ cd -

14)
Descubra em qual diretrio voc est atravs do comando
pwd:
$ pwd

Captulo 3 FHS, Hierarquia dos Diretrios - 42

3.9. Exerccio Terico


1) Explore os diretrios abaixo, e escreva qual a funo de cada um deles.
Justifque:
a) bin
_____________________________________________________________________________
_____________________________________________________________________________
b) boot
_____________________________________________________________________________
_____________________________________________________________________________
c) dev
_____________________________________________________________________________
_____________________________________________________________________________
d) etc
_____________________________________________________________________________
_____________________________________________________________________________
e) home
_____________________________________________________________________________
_____________________________________________________________________________
f) lib
_____________________________________________________________________________
_____________________________________________________________________________
g)media
_____________________________________________________________________________
_____________________________________________________________________________
h) mnt
_____________________________________________________________________________
_____________________________________________________________________________
i) var
_____________________________________________________________________________
_____________________________________________________________________________
j) opt
_____________________________________________________________________________
_____________________________________________________________________________
k) proc
_____________________________________________________________________________
_____________________________________________________________________________
l) root
_____________________________________________________________________________

Captulo 3 FHS, Hierarquia dos Diretrios - 43


m) sbin
_____________________________________________________________________________
_____________________________________________________________________________
n) srv
_____________________________________________________________________________
_____________________________________________________________________________
o) tmp
_____________________________________________________________________________
_____________________________________________________________________________
p) usr
_____________________________________________________________________________
_____________________________________________________________________________

2) Qual a fnalidade do comando pwd?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

3) Descreva a funo de cada um dos comandos abaixo:


a) cd _____________________________________________________________________________
_____________________________________________________________________________
b) cd ~
_____________________________________________________________________________
_____________________________________________________________________________
c) cd /
_____________________________________________________________________________
_____________________________________________________________________________
d) cd
_____________________________________________________________________________
_____________________________________________________________________________
e) cd ..
_____________________________________________________________________________
_____________________________________________________________________________
f) cd .
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 3 FHS, Hierarquia dos Diretrios - 44

3.10. Laboratrio
Alem de todos os diretrios listados acima, na raiz do sistema existe um
diretrio chamado lost+found, o que representa esse diretrio?
Veja tambm:
FHS - http://www.pathname.com/fhs/
Free Standard Group - http://www.linux-foundation.org/en/Main_Page

Captulo 3 FHS, Hierarquia dos Diretrios - 45

Captulo 4
Aprendendo comandos do GNU/Linux

4.1. Objetivos
Listar diretrios;
Criar e remover arquivos;
Criar e remover diretrios;
Utilizar os caracteres curingas;
Utilizao de outros comandos que fazem a diferena em nosso dia-a-dia.

Captulo 4 Aprendendo comandos do GNU/Linux - 46

4.2. Introduo terica


Comandos so instrues passadas ao computador para executar uma
determinada tarefa. No mundo *NIX (GNU/Linux,Unix), o conceito de comandos
diferente do padro MS-DOS. Um comando qualquer arquivo executvel, que pode
ser ou no criado pelo usurio.
Uma das tantas vantagens do GNU/Linux a variedade de comandos que ele
oferece, afnal, para quem conhece comandos, a administrao do sistema acaba se
tornando um processo mais rpido.
O Shell o responsvel pela interao entre o usurio e o sistema
operacional, interpretando os comandos.
no Shell que os comandos so executados.

4.2.1. Explorando o sistema

Veremos agora os comandos bsicos para navegao no sistema.


O comando ls utilizado para listar o contedo dos diretrios. Se no for
especifcado nenhum diretrio, ele ir mostrar o contedo daquele onde estamos no
momento.
Lista o contedo do diretrio atual:
# ls

Captulo 4 Aprendendo comandos do GNU/Linux - 47

4.3. O comando ls
O comando ls possui muitos parmetros, veremos aqui as opes mais
utilizadas. A primeira delas o -l que lista os arquivos ou diretrios de uma forma
bem detalhada (quem criou, data de criao, tamanho, dono e grupo ao qual cada um
pertence):
# ls -l /
drwxr-xr-x4 root root 1024 2007-01-15 23:17 boot

Veja que a sada desse comando bem detalhada. Falando sobre os campos,
para o primeiro caractere temos algumas opes:
d => indica que se trata de um diretrio
l => indica que se trata de um link (como se fosse um atalho - tambm
vamos falar sobre ele depois)
- => hfen, indica que se trata de um arquivo
c => indica dispositivo de caractere
b => indica dispositivo de bloco

O campo rwxr-xr-x lista as permisses, enquanto os campos root indicam


quem o usurio e grupo dono desse diretrio que, no nosso caso, o administrador
do sistema, o usurio root. O nmero antes do dono indica o nmero de hard
links, um assunto abordado apenas em cursos mais avanados.
O campo 1024 indica o tamanho do arquivo, e o campo 2007-01-15 23:17
informa a data e hora em que o diretrio foi criado. Finalmente, no ltimo campo
temos o nome do arquivo ou diretrio listado, que, no nosso exemplo, o boot.
Com relao aos diretrios, importante ressaltar que o tamanho mostrado
no corresponde ao espao ocupado pelo diretrio e seus arquivos e subdiretrios.
Esse espao aquele ocupado pela entrada no sistema de arquivos que corresponde
ao diretrio.

Captulo 4 Aprendendo comandos do GNU/Linux - 48


A opo a lista todos arquivos, inclusive os ocultos:
# ls -a /root
..aptitude.bashrc.profile .rnd.ssh.vmware
.. .bash_history .kde .qt root_161206 .viminfo .Xauthority
Veja que, da sada do comando anterior, alguns arquivos so iniciados por .
(ponto). Esses arquivos so ocultos.
No Linux, arquivos e diretrios ocultos so iniciados por um . (ponto).
Listar arquivos de forma recursiva, ou seja, listar tambm os subdiretrios
que esto dentro do diretrio /:
# ls -R /

4.3.1. Curingas

O signifcado da palavra curinga no dicionrio o seguinte: carta de baralho,


que em certos jogos, muda de valor e colocao na sequncia. No sistema GNU/Linux
bem parecida a utilizao desse recurso. Os curingas so utilizados para especifcar
um ou mais arquivos ou diretrios.
Eles podem substituir uma palavra completa ou somente uma letra, seja para
listar, copiar, apagar, etc. So usados trs tipos de curingas no GNU/Linux:

* - Utilizado para um nome completo ou restante de um arquivo/diretrio;


? - Esse curinga pode substituir uma ou mais letras em determinada
posio;
[padro] - utilizado para referncia a uma faixa de caracteres de um
arquivo/diretrio.
[a-z][0-9] - Usado para trabalhar com caracteres de a at z seguidos de
um caractere de 0 at 9.
[a,z][1,0] - Usado para trabalhar com os caracteres a e z seguidos de um
caractere 1 ou 0 naquela posio.
[a-z,1,0] - Faz referncia do intervalo de caracteres de a at z ou 1 ou 0
naquela posio.

Captulo 4 Aprendendo comandos do GNU/Linux - 49


A diferena do mtodo de expanso dos demais, a existncia do arquivo ou
diretrio opcional para resultado fnal. Isto til para a criao de diretrios.
Os 3 tipos de curingas mais utilizados (*,?,[ ]) podem ser usados juntos.
Vejamos alguns exemplos:
Supondo que existam 5 arquivos no diretrio /home/usurio. Podemos listlos assim:
# ls
arq1.txt arq2.txt arq3.txt arq4.new arq5.new
Vamos listar todos os arquivos do diretrio /home/usurio. Podemos usar o
curinga * para visualizar todos os arquivos do diretrio:
# cd /home/usurio
# ls *
arq1.txt arq2.txt arq3.txt arq4.new arq5.new
Para listarmos todos os arquivos do diretrio /home/usurio que tenham
new no nome:
# ls *new*
arq4.new arq5.new

4.3.2. Usando curingas no Shell

Listar todos os arquivos que comeam com qualquer nome e terminam com
.txt:
# ls *.txt
Listar todos os arquivos que comeam com o nome arq, tenham qualquer
caractere no lugar do curinga, e terminem com .txt:
# ls arq?.txt

Para listar todos os arquivos que comeam com o nome arq, tenham
qualquer caractere entre o nmero 1-3 no lugar da 4 letra e terminem com .txt.
Neste caso, se obtm uma fltragem mais exata, pois o curinga especifca qualquer

Captulo 4 Aprendendo comandos do GNU/Linux - 50


caractere naquela posio e [ ] especifca um intervalo de nmeros ou letras que
ser usado:
# ls arq[1-3].txt
Para listar os arquivos arq4.new e arq5.new podemos usar os seguintes
mtodos:
#
#
#
#
#

ls
ls
ls
ls
ls

*.new
*new*
arq?.new
arq[4,5].*
arq[4,5].new
Inode uma estrutura responsvel por conter informaes bsicas sobre
seus arquivos e pastas, como permisses de acesso, identifcao dos donos
dos arquivos, data e hora do ltimo acesso e alteraes, tamanho e o mais
importante: os famosos ponteiros para o arquivo em si. De modo geral, o
INODE a identidade de um arquivo ou diretrio, uma identifcao
nica para ele.
O parmetro -i do ls, permite-nos verifcar a informaes de inodes
por objeto no sistema. Lembre-se dessa opo.

Existem muitas outras

sintaxes possveis para obter o mesmo resultado. A

mais indicada ser sempre aquela que atender necessidade com o menor esforo
possvel. A criatividade nesse momento conta muito. No exemplo anterior, a ltima
forma resulta na busca mais especfca. O que pretendemos mostrar como
visualizar mais de um arquivo de uma s vez. O uso de curingas muito til e pode
ser utilizado em todas as aes do sistema operacional referentes aos arquivos e
diretrios: copiar , apagar, mover e renomear.

Captulo 4 Aprendendo comandos do GNU/Linux - 51

4.4. Criao, movimentao, cpia e remoo de arquivos e


diretrios
Para criar um arquivo, podemos simplesmente abrir um editor de texto e
salv-lo. Mas existem outras formas.
Uma das formas mais simples usando o comando touch:
# touch arquivo

A grande maioria dos comandos bsicos devem fazer parte da sua base
slida de conhecimentos, ela certamente ser necessria para resolver
problemas maiores. O touch alm de criar arquivos, pode mudar alguns
campos da timestamp como hora e tempo.
O comando mkdir utilizado para criar um diretrio no sistema. Um
diretrio uma pasta onde voc guarda seus arquivos. Exemplo:
Criar o diretrio yago:
# mkdir yago
Criar o diretrio 4linux e o subdiretrio alunos:
# mkdir -p 4linux/alunos
A opo -p permite a criao de diretrios de forma recursiva. Para que um
subdiretrio exista, o seu diretrio diretamente superior tem que existir. Portanto a
criao de uma estrutura como /home/notas/2010/maro/semana3 exigiria a
execuo de quatro comandos mkdir.
Algo como:
#
#
#
#

mkdir
mkdir
mkdir
mkdir

/home/notas
/home/notas/2010
/home/notas/2010/janeiro
/home/notas/2010/janeiro/semana3

Captulo 4 Aprendendo comandos do GNU/Linux - 52


A opo -p permite que toda essa estrutura seja criada em uma nica linha.
Assim:
# mkdir -p /home/notas/2010/janeiro/semana3
O comando rm utilizado para apagar arquivos, diretrios e subdiretrios
estejam eles vazios ou no.
Exemplos:
Remover o arquivo teste.txt:
# rm teste.txt
Remover o arquivo yago.txt pedindo confrmao:
# rm -i yago.txt
rm: remove arquivo comum yago.txt? y
A opo -i fora a confrmao para remover o arquivo yago.txt.
Remover o diretrio 4linux:
# rm -r 4linux
A opo -r indica recursividade, ou seja, a remoo dever ser do diretrio
4linux e de todo o seu contedo.
Observao: Muita ateno ao usar o comando rm! Uma vez que os
arquivos e diretrios removidos no podem mais ser recuperados!

O comando rmdir utilizado para remover diretrios vazios.


Exemplos:
Remover o diretrio yago:
# rmdir yago
Para remover o diretrio 4linux e o subdiretrio alunos:
# rmdir -p 4linux/alunos

Captulo 4 Aprendendo comandos do GNU/Linux - 53


O comando cp serve para fazer cpias de arquivos e diretrios. Perceba que
para lidar com diretrios a opo -R tem que ser usada:
#
#
#
#

cp
cp
cp
cp

arquivo-origem arquivo-destino
arquivo-origem caminho/diretrio-destino/
-R diretrio-origem nome-destino
-R diretrio-origem caminho/diretrio-destino/

O comando mv serve tanto para renomear um arquivo quanto para mov-lo:


#
#
#
#

mv
mv
mv
mv

arquivo caminho/diretrio-destino/
arquivo novo-nome
diretrio novo-nome
diretrio caminho/diretrio-destino/

A movimentao de um arquivo uma ao de cpia seguida de uma remoo.


Faz sentido?
Uma opo do comando cp muito til em nosso dia-a-dia a opo -p,
que faz com que a cpia mantenha os meta-dados dos arquivos, ou seja,
no modifca a data e hora de criao, seus donos e nem suas permisses.

4.5. Prtica Dirigida


1) Listar o contedo do diretrio /:
# ls /

2) Listar o contedo do diretrio /root em formato longo:


# ls -l /root/

3) Listar somente o diretrio /boot em formato longo:


# ls -ld /boot/

4) Listar todos os arquivos do diretrio /root, inclusive os ocultos:


# ls -a /root

Captulo 4 Aprendendo comandos do GNU/Linux - 54


5) Listar o contedo do diretrio /boot de forma recursiva:
# ls -R /boot/

6) Criar o diretrio estudo dentro do diretrio /tmp:


# mkdir /tmp/estudo

7) Criar a seguinte estrutura de diretrios: /backup/2010/fevereiro:


# mkdir -p /backup/2010/fevereiro

8) Remover o diretrio /tmp/estudo utilizando o comando rmdir:


# rmdir /tmp/estudo

9) Crie
os
arquivos
estudo.txt
/backup/2010/fevereiro:

alunos.txt

dentro

de

# touch /backup/2010/fevereiro/estudo.txt
# touch /backup/2010/fevereiro/alunos.txt

10)
Entre no diretrio /backup/2010/fevereiro e copie o arquivo
estudo.txt para aula.txt:
# cd /backup/2010/fevereiro
# cp estudo.txt aula.txt

11)
Copie
o
diretrio
/backup/2010/janeiro:

/backup/2010/fevereiro

para

# cp -R /backup/2010/fevereiro /backup/2010/janeiro

12)
Remova
o
arquivo
/backup/2010/fevereiro:
# cd /backup/2010/fevereiro
# rm estudo.txt

estudo.txt

do

diretrio

Captulo 4 Aprendendo comandos do GNU/Linux - 55


13)
Renomeie
o
arquivo
/backup/2010/fevereiro:

alunos.txt

do

diretrio

# cd /backup/2010/fevereiro
# mv alunos.txt teste.txt

14)
Mova
o
diretrio
/backup/2010/abril:

/backup/2010/fevereiro

para

# mv /backup/2010/fevereiro /backup/2010/abril

15)
Utilize o comando stat para descobrir algumas informaes
importantes:
# stat /backup

4.6. Exerccio Terico


1) Qual o comando completo a ser executado para criarmos a estrutura de
diretrios /stone/blue/gold?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

2) Qual a funo do comando rmdir?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

3) Por que no devemos executar o comando rm com as opes -r e -f?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 4 Aprendendo comandos do GNU/Linux - 56


4) Qual a opo do comando cp que copiaria arquivos de um diretrio de
forma recursiva?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
____________________________________________________________________________

5) Qual a funo do comando mv?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

6) Qual a funo do comando ln?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

7) Voc um estagirio muito organizado. Ao checar os arquivos do servidor,


percebe que alguns arquivos de confgurao e arquivos de log esto
espalhados no diretrio /root. Quais deveriam ser os diretrios corretos
para armazenar esses arquivos?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

4.7. Laboratrio
1) Liste os arquivos que terminam com a palavra .conf dentro do diretrio
/etc;
2)
letra n.

Busque no diretrio raiz / todos os diretrios que terminem com a

Captulo 4 Aprendendo comandos do GNU/Linux - 57

Captulo 5
Comandos teis de linha de comando

5.1. Objetivos
Conhecer alguns comandos importantes para dominar a tela preta.

Captulo 5 Comandos teis de linha de comando - 58

5.2. Introduo terica


No mundo GNU/Linux, a maioria das operaes so realizadas por meio de
comandos escritos. Em geral, eles permitem um maior controle e fexibilidade de
operaes, alm de poderem ser includos em scripts. Neste captulo iremos
aprender alguns dos comandos bsicos.

5.3. Trabalhando com entrada e sada de dados


Por padro, a entrada de dados e comandos no Shell feita pelo teclado, a
sada destes retornada na tela. Eventuais erros so exibidos na tela tambm.
Os termos geralmente usados so:
Entrada de dados, representada por stdin (Standard Input);
Sada de dados, representada por stdout (Standard Output);
Sada de erros, representada por stderr (Standard Error);
Mas isso pode ser mudado com o uso de caracteres de redirecionamento.

Para mudar sada padro:

> - Redireciona a sada em um arquivo, apagando o seu contedo prexistente;


Exemplo:

#
#
#
#

ls / > tst
cat tst
ls /var > tst
cat tst

>> - Redireciona a sada no fnal de um arquivo, preservando seu contedo


pr-existente;

Captulo 5 Comandos teis de linha de comando - 59


Exemplo:
#
#
#
#

ls / >> tst
cat tst
ls /var >> tst
cat tst

Comandos auxiliares:

| (pipe, pronuncia-se paipe): Serve para canalizar a sada de dados de


um comando para um segundo comando;

5.4. Comandos para paginao e visualizao de arquivos


Quando os arquivos so maiores do que a altura da tela do computador, eles
so mostrados sequencialmente e at seu fnal. Isso ocorre numa velocidade que nos
impede de ler seu contedo. Para esse tipo de situao, usamos os comandos de
paginao. Eles controlam a maneira que os dados de um arquivo so exibidos, seja
permitindo uma navegao elementar ou permitindo atingir pores especfcas do
arquivo.
5.4.1. Mostrando o contedo e/ou concatenando

O comando cat pode ser utilizado para mostrar o contedo de um arquivo.


Por exemplo, o comando abaixo mostra o contedo do arquivo teste.dat.
# cat teste.dat
Mas o comando cat pode ser utilizado tambm para concatenao de
arquivos. No primeiro exemplo abaixo, mostrado na tela o contedo dos arquivos
teste.dat

aux.dat.

No

segundo

exemplo,

usamos

operador

de

redirecionamento da sada padro, de modo que a sada do comando cat seja


gravada no arquivo tudo.dat.
# cat teste.dat aux.dat
# cat teste.dat aux.dat > tudo.dat

Captulo 5 Comandos teis de linha de comando - 60


De forma anloga, o comando tac tambm serve para mostrar o contedo e
concatenar arquivos. Porm, ele mostra o contedo de forma reversa, linha a linha.
Em outras palavras, ele imprime primeiro a ltima linha do arquivo especifcado, e
fnaliza imprimindo a primeira. O exemplo abaixo, mostra o uso do tac.
# tac teste.dat

5.4.2. Controlar o fuxo: more e less

Para que a leitura de um arquivo grande na linha de comando seja possvel


podemos usar um editor de textos como o vi ou emacs. Contudo, para uma
leitura rpida na linha de comando podemos usar os comandos more ou less. O
comando more permite a leitura contnua de um arquivo. Sempre que a tela
preenchida, o comando more espera por uma ao do usurio para mostrar mais
contedo.
Pressionando a tecla ENTER' uma linha a mais mostrada, pressionando a
barra de espaos uma nova pgina mostrada. No possvel retornar (subir),
usando o comando more.
# more /var/log/syslog
O comando less mais sofsticado e permite ir e voltar na leitura de um
arquivo.
# less /var/log/syslog

5.4.3. Pores especfcas: head e tail

Frequentemente queremos ter acesso a pores especfcas de um arquivo. s


vezes queremos apenas as linhas iniciais ou as linhas fnais. E s vezes, queremos um
pedao defnido do arquivo. Para essas necessidades, usamos os comandos head
para ler pores superiores de um arquivo e tail para ler pores inferiores. Para
ler as 10 primeiras linhas de um arquivo, podemos usar o comando head.

Captulo 5 Comandos teis de linha de comando - 61


Exemplo:
# head /var/log/syslog
Para ler as 10 ltimas linhas de um arquivo, podemos usar:
# tail /var/log/syslog
Os comandos podem ser combinados usando o | (l-se paipe). Por exemplo,
para ler o pedao entre as linhas 20 e 40 de um arquivo, podemos usar:
# head -n 40 /var/log/syslog | tail -n 21
O comando acima l as 40 primeiras linhas do arquivo /var/log/syslog que
so passadas para o comando tail, que retorna as 20 ltimas linhas deste intervalo
(as 20 ltimas das 40 primeiras = da linha n20 linha n40).

Apesar de parecerem simples, os comandos head e tail fornecem


opes de valiosa utilidade. Um grande exemplo usar a opo -f no
tail para verifcar logs em tempo real.

5.4.4. Contagem: wc

Grande parte dos arquivos de confgurao e de dados usa uma linha por
registro.

contagem

destas

linhas

pode

nos

fornecer

informaes

muito

interessantes.
Por exemplo, a sada abaixo:
# wc /etc/passwd
Indica que o arquivo contm 32 linhas, 49 blocos (palavras) e 1528 caracteres.
Caso seja necessrio apenas o nmero de linhas, o comando wc pode ser
usado com o parmetro -l, como abaixo:
# wc -l /etc/passwd
Outros parmetros possveis so o -w para blocos (palavras) e o -c para
caracteres.

Captulo 5 Comandos teis de linha de comando - 62


5.4.5. Classifcao: sort

Para diversas aes como eliminao de itens repetidos e rpida visualizao


de nomes interessante que possamos classifcar um arquivo texto ou a sada de um
comando. Na linha de comando, os arquivos textos podem ser classifcados usando o
comando sort.
A sada do comando abaixo no segue a ordem alfabtica:
# cat /etc/passwd
Podemos mostrar a sada classifcada em ordem alfabtica, assim:
# sort /etc/passwd
O comando sort pode ser modifcado usando os parmetros:
-f no considera se as letras esto em caixa alta ou baixa;
-n classifcao numrica;
-r classifca na ordem invertida.

5.4.6. Mostrar algo: echo

O comando echo usado para imprimir algo na tela ou direciona para um


arquivo. Isso bastante til para automao. Na linha de comando o echo til
para inspecionar variveis de ambiente, que so parmetros guardados em memria
e que defnem o ambiente em uso.
Por exemplo, para saber qual a pasta pessoal defnida em $HOME do
usurio atual:
# echo $HOME
Para saber qual o idioma defnido no console:
# echo $LANG

Captulo 5 Comandos teis de linha de comando - 63


Usando o caractere de redirecionamento >, podemos enviar a sada do
comando echo para outro destino:
# echo $LANG > /tmp/teste
# cat /tmp/teste
No exemplo acima, o arquivo /tmp/teste contm o valor da varivel de
ambiente $LANG.

5.5. Filtragem
Uma necessidade constante dos administradores encontrar informaes
dentro dos arquivos. Para ilustrar, podemos localizar o texto bash no arquivo
/etc/passwd:
# grep bash /etc/passwd
root:x:0:0:root:/root:/bin/bash
caio:x:1000:1000:caio,,,:/home/caio:/bin/bash
postgres:x:108:113:PostgreSQL
administrator,,,:/var/lib/postgresql:/bin/bash
jboss:x:1001:1001:JBoss Administrator,,,:/home/jboss:/bin/bash
Outra situao possvel procurar pelas entradas que no possuem bash no
arquivo /etc/passwd. Para isso, usamos o parmetro -v (inVerter), que inverte a
fltragem do comando grep:
# grep -v bash /etc/passwd
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
Outros parmetros do comando grep:
-A [n] Mostra n linhas depois;
-B [n] Mostra n linhas antes;
-h Omite o nome do arquivo nas buscas;
-i Ignora diferena entre maisculas e minsculas;
-n Mostra o nmero de cada linha encontrada;
-v Inverte a busca, encontra apenas as linhas onde o padro no existir.

Captulo 5 Comandos teis de linha de comando - 64


O grep pode ser combinado com a sada de outros comandos com o uso do |
(pipe). Por exemplo, no comando abaixo, o grep fltra as linhas de endereos IP da
sada do comando ifconfg.
# ifconfig | grep end.:
E, a seguir, o grep aplicado para fltrar os ltimos usurios logados no
primeiro terminal (tty1):
# last |grep tty1
root tty1 Thu Feb 22 12:19 - 14:21 (02:01)
root tty1 Thu Feb 22 10:50 - down(00:00)

Alguns outros comando de fltros que tambm podem ser encontrados no


GNU/Linux: egrep, ngrep e pgrep.

5.5.1. Filtrar colunas: cut

O comando cut pode ser muito til para conseguir listagens a partir de
arquivos com separadores de colunas defnidos.
Por exemplo, para conseguir a primeira coluna do arquivo /etc/passwd, cujo
delimitador de colunas o sinal :, podemos usar o comando:
# cut -f1 -d: /etc/passwd
root
daemon
bin

O comando awk um primo do cut, mas possui mais recursos e opes


para expresses regulares. H situaes nas quais o cut no conseguir
resolver o problema, para elas use awk.

Captulo 5 Comandos teis de linha de comando - 65

5.5.2. Determinando o tipo de arquivo: fle

Extenses de arquivos tm apenas a funo de nos auxiliar a nomear os


arquivos, a identifc-los e organiz-los facilmente. No a extenso que determina o
tipo do arquivo, mas sim o seu contedo. Por exemplo, se renomearmos um arquivo
de imagem chamado 4Linux.jpg para 4Linux.html, ele continuar sendo um arquivo
de imagem JPEG.
O comando fle determina o tipo do arquivo analisando o seu contedo. O
exemplo abaixo mostra o uso deste comando:
# file arquivo

5.6. Administrativos
5.6.1. Espao em Disco

O tamanho de cada partio defnido no momento de sua criao. Mas


parece bastante bvio que depois de algum tempo ser necessrio determinar quanto
espao foi consumido pelos arquivos e diretrios e quanto espao livre existe.
O comando que mostra o espao total e o espao utilizado de todas as
parties montadas chama-se df. Uma de suas caractersticas que o clculo dos
espaos sempre uma aproximao para a unidade de medida mais prxima, mais
legvel para o ser humano.
$ df -h <arquivo/diretrio/partio>
Mostra em kilobytes e megabytes:
$ df -k <arquivo, diretrio ou partio>
$ df -m <arquivo, diretrio ou partio>

Captulo 5 Comandos teis de linha de comando - 66


5.6.2. Defnindo tamanho dos objetos

No incomum precisar determinar o tamanho de um arquivo, de uma


partio inteira ou de um diretrio com todo o seu contedo. O comando ls -alh
capaz de informar o tamanho de arquivos, mas no de parties inteiras ou de um
diretrio com todo o seu contedo.
O comando que faz esse trabalho o du. Veja a seguir alguns exemplos de
seu uso.
$ du -h <arquivo, diretrio ou partio>
Aproxima para a unidade de medida mais prxima, mais legvel para o ser
humano.
Mostra em bytes:
$ du -b <arquivo, diretrio ou partio>
Mostra em kilobytes:
$ du -k <arquivo, diretrio ou partio>
Mostra em megabytes:
$ du -m <arquivo, diretrio ou partio>
Mostra a quantidade de links que arquivo/diretrio/partio tem:
$ du -l <arquivo, diretrio ou partio>
Modo silencioso, ou seja, no mostra subdiretrios:
$ du -s <arquivo, diretrio ou partio>

Captulo 5 Comandos teis de linha de comando - 67


5.6.3. Mostrar o uso de memria RAM: free

O comando free mostra o consumo de memria RAM e os detalhes sobre


uso de memria virtual (SWAP):
# free
Mais detalhes:
# free -m
A sada do comando ser alguma coisa parecida com:
total used free shared buffers cached
Mem: 2066856 950944 1115912 038920 342612
-/+ buffers/cache: 569412 1497444
Swap: 570268 0 570268

5.6.4. Mostrar e/ou ajustar a data do sistema: date

O comando date pode ser utilizado para mostrar a data e a hora do sistema,
e tambm para ajust-las. H vrias formas de se utilizar esse comando. A primeira
delas a mais simples:
# date
Esse comando mostra a data e a hora atuais do sistema numa formatao
padro. Pode-se utilizar uma string como parmetro para formatar a sada. O
exemplo abaixo mostra o uso de uma string de formatao e o seu resultado. Mais
informaes sobre as opes de formatao podem ser encontradas nas pginas do
manual do comando - man date.
# date +"%H:%M, %d-%m-%Y"
12:44, 27-06-2007

Captulo 5 Comandos teis de linha de comando - 68


A outra utilidade do comando date ajustar a hora do sistema. Obviamente
isso pode ser feito apenas pelo usurio administrador. A sintaxe :
# date mmddHHMMYYYY
Onde:
mm nmero do ms;
dd dia do ms;
HH hora;
MM minutos;
YYYY ano.;

5.6.5. Mostrar por quanto tempo o computador est ligado: uptime

O comando uptime mostra por quanto tempo o computador est ligado.


Alm disso, mostra informaes sobre o uso do processador:
# uptime
A sada do comando ser algo parecido com:
03:20:37 up 16:35, 3 users, load average: 0.16, 0.27, 0.33

5.6.6. Mostrar informaes sobre o sistema: uname

O comando uname pode ser usado para mostrar informaes sobre a verso
do kernel em uso e a sua arquitetura:
# uname -a
A sada do comando ser algo parecido com:
Linux professor 2.6.18-3-686 #1 SMP Mon Dec 4 16:41:14 UTC 2006 i686
GNU/Linux

Captulo 5 Comandos teis de linha de comando - 69

5.6.7. Diferena entre arquivos: dif

O programa dif nos permite verifcar a diferena entre arquivos e


diretrios. No caso de diretrios, importante o uso da opo -r para assegurar a
comparao de todos os subdiretrios.
# diff arquivo1 arquivo2
# diff -r dir1 dir2

5.6.8. Tempo de execuo de um programa: time

O comando time permite medir o tempo de execuo de um programa. Sua


sintaxe :
# time programa

5.6.9. Localizao no sistema: fnd

O comando fnd procura por arquivos/diretrios no disco. Ele pode procurar


arquivos pela sua data de modifcao, tamanho, etc. O fnd, ao contrrio de outros
programas, usa opes longas por meio de um -.
Sintaxe do comando fnd:
fnd [diretrio] [opes/expresso]

-name [expresso] :
Procura pela [expresso] defnida nos nomes de arquivos e diretrios
processados.
# find /etc -name *.conf

Captulo 5 Comandos teis de linha de comando - 70

-maxdepth [num] :
Limita a recursividade de busca na rvore de diretrios. Por exemplo,
limitando a 1, a busca ser feita apenas no diretrio especifcado e no ir incluir
nenhum subdiretrio.
# find /etc -maxdepth 1 -name *.conf
-amin [num] :
Procura por arquivos que foram acessados [num] minutos atrs. Caso seja
antecedido por -, procura por arquivos que foram acessados entre [num] minutos
atrs e o momento atual.
# find ~ -amin -5
-atime [num] :
Procura por arquivos que foram acessados [num] dias atrs. Caso seja
antecedido por -, procura por arquivos que foram acessados entre [num] dias atrs
e a data atual.
# find ~ -atime -10
-uid [num] :
Procura por arquivos que possuem a identifcao numrica do usurio igual
a [num].
# find / -uid 1000
-user [nome] :
Procura por arquivos que possuem a identifcao de nome do usurio igual a
[nome].
# find / -user aluno
-perm [modo] :
Procura por arquivos que possuem os modos de permisso [modo]. Os [modo]
de permisso podem ser numrico (octal) ou literal.
# find / -perm 644

Captulo 5 Comandos teis de linha de comando - 71


-size [num] :
Procura por arquivos que tenham o tamanho [num]. O tamanho especifcado
em bytes. Voc pode usar os sufxos k, M ou G para representar o tamanho em
Quilobytes, Megabytes ou Gigabytes, respectivamente. O valor de [num] Pode ser
antecedido de + ou - para especifcar um arquivo maior ou menor que [num].
# find / -size +1M
-type [tipo] :
Procura por arquivos do [tipo] especifcado. Os seguintes tipos so aceitos:
b bloco;
c caractere;
d diretrio;
p pipe;
f arquivo regular;
l link simblico;
s socket.
# find /dev -type b
Outros exemplos:
# find / -name grep
Procura no diretrio raiz e nos subdiretrios um arquivo/diretrio chamado
grep.
# find / -name grep -maxdepth 3
Procura

no

diretrio

raiz

nos

subdiretrios

at

nvel,

um

arquivo/diretrio chamado grep.


# find . -size +1000k
Procura no diretrio atual e nos subdiretrios um arquivo com tamanho maior
que 1000 kbytes (1Mbyte).
# find / -mmin -10
Procura no diretrio raiz e nos subdiretrios um arquivo que foi modifcado h
10 minutos atrs ou menos.

Captulo 5 Comandos teis de linha de comando - 72


5.6.10. Localizao usando base de dados: locate

O comando locate um comando rpido de busca de arquivos, porm no


usa busca recursiva na sua rvore de diretrios. Ele utiliza uma base de dados que
criada pelo comando updatedb, para que a busca seja mais rpida. Por padro, a
atualizao da base de dados agendado no cron do sistema para ser executada
diariamente.
Para utiliz-lo, primeiro necessrio criar a sua base de dados usando a
seguinte sintaxe:
# uptadedb
Quando esse comando executado pela primeira vez costuma demorar um
pouco. Isso deve-se a primeira varredura do disco para a criao da primeira base de
dados. Para o comando locate, usamos a seguinte sintaxe:
# locate howto
A sada do comando ser algo parecido com:
/usr/share/doc/python2.4-xml/howto.cls
/usr/share/doc/python2.4-xml/xml-howto.tex.gz
/usr/share/doc/python2.4-xml/xml-howto.txt.gz
/usr/share/vim/vim64/doc/howto.txt

5.7. Mais e mais comandos


awk linguagem de procura de padres e processamento;
logger comando de interface entre a shell e o syslog;
sed editor de texto linha a linha;
seq imprime uma sequencia de nmeros;
sleep insere uma pausa pelo nmero de segundos especifcado;
expand converte tabs em espaos;
unexpand converte espaos em tabs;
join junta a sada de uma arquivo em outro arquivo, jogando na tela;
nl numera as linhas na sada do comando;

Captulo 5 Comandos teis de linha de comando - 73


paste junta os arquivos na sada padro;
split usado para dividir determinado arquivo em partes menores;
tr substitui ou remove os caracteres selecionados da entrada padro para
a sada padro;
uniq remove linhas desnecessrias ou duplicadas, ou seja, ele faz uma
espcie de listagem de cada linha nica do arquivo;
fmt formatador de texto, muito prtico quando precisa-se fazer uma
formatao rpida em algum arquivo;
hexdump converte arquivo para hexadecimal, decimal, ASCII;
od converte arquivo para octal;
xargs poderoso, e muito bom para listagem de arquivos.

Dica LPI: Ateno:


A maioria desses comandos so bastante simples de ser utilizados e
possuem poucos parmetros, entretanto alguns como awk, sed, fnd,
grep, xargs, uniq, join, paste e cut possuem manuais bastante
extensos dada a quantidade de tarefas que podem realizar. Dessa forma a
leitura de suas pginas de man extremamente sugerida.

Os comandos e estrutura de Shell Script aqui citados so utilizados


tambm no RedHat.

5.8. Prtica Dirigida


Inicialmente vamos executar exemplos de funcionamento dos comandos mais
utilizados em Shell Script, aprenderemos Shell Script no treinamento 451.
1) Copie o arquivo passwd do sistema para o diretrio /tmp:
# cp /etc/passwd /tmp

Captulo 5 Comandos teis de linha de comando - 74


2) Entre no diretrio /tmp para iniciarmos os testes:
# cd /tmp

3) Agora, dentro do diretrio /tmp, utilizaremos o awk para


separar o contedo do arquivo passwd utilizando o caracter :
como separador e imprimir na tela o usurio e sua respectiva
shell adicionando a palavra uses entre uma coluna e outra:
# awk -F : '{print $1 " uses " $7}' passwd

4) Use o comando cat para ver o contedo do arquivo passwd:


# cat passwd

5) Com o comando cut vamos realizar um procedimento anlogo ao


do awk; entretanto com este comando s possvel inserir a
palavra uses entre as colunas com uma ajudinha do | e do
comando sed:
# cut -d : -f 1,7 passwd | sed -e s/:/ uses /g

6) Utilizemos o comando date para listar a hora atual do sistema.


Em seguida vamos alter-la e depois modifcar o seu padro de
sada:
# date
# date mmddHHMMYYYY
# date +%Y%m%d-%H%M

7) Determine quanto cada flesystem est utilizando de seu espao.


Depois imprima em formato humam readable, ou seja, que um
humano entende facilmente, utilizando o parmetro -h. Na
sequencia verifque qual a porcentagem de inodes utilizados:
# df
# df -h
# df -i

Captulo 5 Comandos teis de linha de comando - 75

8) A nica forma de determinar quanto espao em disco um diretrio


est ocupando somando o tamanho de todos os arquivos e
arquivos em seus subdiretrios. O comando du realiza essa tarefa:
# du -h

9)

Para imprimir uma mensagem na tela, basta utilizar o comado


echo. Os parmetros -ne fazem com que o echo interprete
caracteres de controle como ;

# echo -ne "Um tab\tseuguido de quebra de linha\n"

10)

Juntando dois arquivos em um:

# echo "1:Debian Sarge:3.1:Stable" > sarge


# echo "1:Debian Etch:4.0:Stable" > etch
# join -t: sarge etch
O comando join (unir), concatena registros de dois arquivos de texto
baseado em ndices comuns entre os registros. No nosso caso o separador de campos
ser o caractere dois-pontos -t:.

11)
O comando paste, junta os arquivos na sada padro.
Diferente do join, ele joga os dois arquivos lado-a-lado.:
# paste sarge etch

Ainda com o paste podemos, usar o parmetro -d de delimitador:


# paste -d@ sarge etch

E tambm, um em baixo do outro, com a opo -s:


# paste -s sarge etch

Captulo 5 Comandos teis de linha de comando - 76


12)
Vamos procurar por arquivos que satisfaam o padro pas*
dentro do diretrio /etc:
# find /etc -name 'pas*'

13)
Realize a procura dentro do arquivo passwd por todas as
linhas que iniciam pelo caracter s:
# grep ^s passwd

14)
Mostre na tela apenas as primeira 15 linhas do arquivo
passwd:
# head -n 15 passwd

15)
O comando split usado para dividir um arquivo em pedaos
menores, muito til quando se tem dois disquetes e um arquivo de 2
Mb:
# cp /var/log/messages .
# split --lines=50 messages
Isso ir gerar X arquivos com 50 linhas cada:
# wc -l x*
Apague todos os arquivos:
# rm -r x*

16)
Vamos verifcar se a linha foi escrita, mostrando as ltimas 15
linhas do respectivo arquivo de log:
# tail -n 15 /var/log/messages
# tail -n 15 /var/log/syslog

Mostre na tela como fcaria o arquivo passwd se substitussemos todos os


caracteres : pelo padro _MU_:
# sed 's/:/_MU_/g' passwd

Captulo 5 Comandos teis de linha de comando - 77


17)
Utilize o comando seq para imprimir a sequncia de
nmeros de 1 a 100 pulando de dois em dois:
# seq 1 2 100

18)

Faa a shell aguardar por dez segundos:

# sleep 10

19)

Ordene as linhas do arquivo passwd:

# sort passwd

20)

Vamos substituir e remover os caracteres do arquivo:

# tr a-z A-Z < /etc/passwd


# tr -d 0 < /etc/passwd

21)

Quantas linhas h no arquivo passwd?

# wc -l passwd

22)

Verifque os usurios que esto logados no sistema:

# who

23)

Vamos agora listar diretrios utilizando o xargs:

# ls / | xargs -n1
# ls / | xargs -n2
# ls / | xargs -n3

Voc percebeu que no primeiro comando ele listou o diretrio, jogando na tela
um nome de cada vez. O segundo comando fara o mesmo s que com dois nomes na
mesma linha, e o terceiro tambm.

Captulo 5 Comandos teis de linha de comando - 78


Outros testes com o xargs:
#
#
#
#

ls / > teste_xargs.txt
cat teste_xargs.txt
cat teste_xargs.txt | xargs -n 2
xargs -n 3 < teste_xargs.txt

24)
#
#
#
#

Comando nl, numera as linhas na sada do comando:

nl /etc/passwd
grep sys /etc/passwd | nl
ls -l /etc | nl
ls -l /etc | tail | nl

5.9. Exerccios Tericos


1) Qual a principal diferena entre os comandos fnd e locate?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

2) Qual a funo do comando tac?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

3) Qual a funo do comando echo?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

4) Qual a diferena entre o comando du e o comando df?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 5 Comandos teis de linha de comando - 79


5) Qual a utilidade do comando time?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

5.10. Laboratrio
1) Obtenha uma lista de usurios a partir do arquivo /etc/passwd, contendo
as colunas referentes ao usurio e seu diretrio pessoal;
2) Obtenha uma lista, classifcada por tamanho, dos arquivos da pasta
/var/log.

Captulo 5 Comandos teis de linha de comando - 80

Captulo 6
Conhecendo a Documentao

6.1. Objetivos
Diferenciar how-to, manual e documentao;
Localizar os meios de ajuda internos do sistema;
Descobrir onde podemos buscar documentao na Internet.

Captulo 6 Conhecendo a Documentao - 81

6.2. Introduo terica


O ritmo de gerao de conhecimento e informao tem sido vertiginoso nos
ltimos cinquenta anos, especialmente na rea tecnolgica. Por isso fundamental
saber onde buscar informaes para manter-se sempre atualizado. Neste captulo,
vamos aprender a consultar as documentaes existentes e como buscar informaes
sobre o que precisamos.
O

Sistema

Operacional

GNU/Linux

possui

uma

vasta

biblioteca

de

documentao. Antes de recorrermos a ajuda de outras pessoas, devemos lembrar


que podemos ter a respostas que precisamos no prprio sistema, bem a nossa frente,
ao teclar de um simples comando. Essa documentao em grande parte dos casos
de extrema qualidade.
O GNU/Linux cresceu porque a comunidade contribui para o sistema e sua
documentao. Essa comunidade no tem medo ou receio de compartilhar
informaes e diponibiliza o que foi desenvolvido no prprio sistema. muito
importante reforar que no Software Livre, as pessoas nunca ocultam seu knowhow, ou seja, voc pode perguntar a vontade, desde que saiba o que e onde
perguntar.
A documentao do GNU/Linux pode ser vista tambm como fonte de
conhecimento, onde pode-se aprender muito sobre cada um dos servios e comandos
disponveis.
Essa ajuda provida por meio dos manuais, as famosas Man Pages.

Toda essa documentao que possumos no sistema GNU/Linux est


disponvel no site: http://www.tldp.org (The Linux Documentation
Project), o site ofcial de documentaes sobre GNU/Linux.
Um diferencial deste site ter a documentao em vrios idiomas e
formatos: pdf, html, txt e outros.
Abaixo vamos comear a nos familiarizar com a documentao existente e as
formas nas quais ela apresentada.

Captulo 6 Conhecendo a Documentao - 82

6.3. Formas de Documentao


Existem diversas formas de se documentar um projeto, dentre elas temos os
How-to's, os manuais e as documentaes.

6.3.1. How-to's

Os How-to's so documentos que focam uma necessidade especfca, como


montar um frewall, instalar uma webcam, confgurar placas de som, confgurar
um servidor web e muitos outros. Normalmente esses documentos so instalados
junto com suas respectivas aplicaes ou podem ter um pacote especfco para a
documentao daquela aplicao. Os how-to's tambm so conhecidos como cookbooks - livro de receitas.
O diretrio de How-to's do GNU/Linux o /usr/share/doc. Se desejamos
saber como confgurar um frewall, podemos consultar os arquivos do diretrio:
# cd /usr/share/doc/iptables/html/
Na Internet existem diversos sites de how-to's para GNU/Linux. Dentre eles
o mais conhecido no Brasil o Viva o Linux, conhecido tambm como VOL:
http://www.vivaolinux.com.br
Muitas vezes o uso de how-to's ou cook-book's, no agrega um bom
conhecimento, pois trata-se somente de uma lista de afazeres para chegar a um
objetivo. Quando o software atualizado, todo aquele conhecimento fca dependente
de um novo how-to.

6.3.2. Manuais

Diferente dos How-to's os manuais no vo te mostrar um passo a passo ou


mesmo te dar uma lista de afazeres. O principal objetivo do manual te mostrar
como as funcionalidades daquele software podem ser usadas. Com o manual o
aprendizado para a utilizao da ferramenta facilitado, j que o mesmo possui
alguns exemplos de usabilidade.

Captulo 6 Conhecendo a Documentao - 83


Esses manuais podem ser encontrados atravs do comando man, o qual
veremos ainda nesse captulo, um pouco mais adiante.

6.3.3. Documentao

A palavra documentao muito intensa. Quando falamos em documentar


uma ferramenta, estamos na realidade abrangendo uma srie de outros itens
importantes, dentre eles os How-to's e os manuais. Com a documentao de um
projeto possvel entender absolutamente tudo sobre o mesmo, ou seja, essa
documentao deve mostrar todas as partes relacionadas ao projeto.
Podemos, por exemplo, citar a documentao de um projeto de rede, onde
deve constar no s documentos como how-to's e manuais, mas sim todas as
especifcaes dos componentes, bem como cabos, switch's e routers dentre
outros detalhes muito importantes.
Como esse tipo de documentao muito especifca, devemos consultar o site
de cada projeto individualmente.

6.4. Comandos de ajuda


Existem diversos comandos de ajuda no GNU/Linux, vamos abordar cada um
deles logo abaixo:

6.4.1. Comando help

O comando help prov ajuda para comandos internos do interpretador de


comandos, ou seja, o comando help fornece ajuda rpida. Ele muito til para
saber quais opes podem ser usadas com os comandos internos do interpretador de
comandos (shell).

Captulo 6 Conhecendo a Documentao - 84


Para visualizar uma ajuda rpida para todos os comandos internos do sistema,
podemos fazer da seguinte forma:
# help
Caso desejemos visualizar a ajuda rpida para somente um comando interno,
usamos esta outra sintaxe:
# help comando
O comando help somente mostra a ajuda para comandos internos.

Para comandos externos, o help aparece como parmetro. Por exemplo:


# sleep --help
Desse modo, caso desejemos visualizar uma ajuda rpida sobre um comando
externo, devemos fazer da seguinte forma:
# [comando] --help
O parmetro --help pode ser utilizado em qualquer comando para ter uma
consulta rpida dos parmetros que ele pode nos oferecer. importante entender
que --help na verdade um parmetro individual de cada comando, logo se um
comando no tiver esse parmetro existem outros meios para se obter ajuda.
No se esquea de estudar as diferenas entre comandos internos e
externos. Saber a funcionalidade de alguns dos comandos internos como
echo e time, entre outros, pode lhe ajudar em desafos maiores.

6.4.2. Comando man

O comando man o responsvel por trazer os manuais mais completos


sobre determinado comando, arquivo de confgurao, bibliotecas, entre outros nos
quais estamos trabalhando.

Captulo 6 Conhecendo a Documentao - 85


Os manuais do sistema so divididos nos seguintes nveis:
man 1 Programas executveis e comandos do Shell;
man 2 Chamadas de sistema (funes providas pelo Kernel);
man 3 Chamadas de bibliotecas (funes como bibliotecas do sistema);
man 4 Arquivos de dispositivo (Localizados normalmente no /dev);
man 5 Arquivos de confgurao e convenes;
man 6 Jogos;
man 7 Variados (incluindo pacotes de macros e convenes);
man 8 Comandos de administrao do sistema (normalmente usado
somente pelo root);
man 9 Rotinas de Kernel.
comum o exame cobrar mais dos nveis 1, 5 e 8 dos manuais! Ento
lembre-se de estudar binrios, arquivos de confgurao e comandos
administrativos.
Sintaxe do comando man:
# man [comando]
ou
# man [seo] [comando]

Essas informaes sobre as sees do comando man podem ser


encontradas em seu prprio manual, digitando o comando man man.
Se for necessrio visualizar o manual do comando passwd, podemos fazer da
seguinte forma:
# man passwd
Para navegar pelo manual, o comando man abre um arquivo que est
compactado na pasta /usr/share/man/man1 para o passwd. Outros nveis de
manuais, dependem do comando ou arquivo.
O passwd conhecido no sistema GNU/Linux como um comando que
adiciona ou modifca a senha do usurio e, tambm, como o arquivo de usurios do
sistema (/etc/passwd).

Captulo 6 Conhecendo a Documentao - 86


Veremos agora o manual do arquivo de usurios passwd:
# man 5 passwd
Podemos consultar quais manuais esto disponveis dentro do prprio
diretrio do man:
# ls /usr/share/man/
Dentro desse diretrio possvel ver todas as divises dos manuais: os nveis,
os idiomas e mais. Todos os nveis de manuais possuem sua determinada introduo
que pode ser vista com o comando:
# man <nvel> intro
Podemos ver os manuais em diversos idiomas diferentes, desde que o pacote
para o idioma escolhido esteja instalado. Se nosso sistema estiver instalado em
portugus, o comando man ir trazer todas os manuais disponveis em portugus.
J se nosso sistema estiver em ingls preciso usar o parmetro -L pt_BR, para
que possamos ver os manuais em nosso idioma:
# man -L pt_BR comando
importante nesse ponto ressaltar que a documentao em nosso idioma
depende de pessoas que ajudam a fazer a traduo para o portugus, se voc quiser
ajudar, acredite, voc ser muito bem vindo. Veja como ajudar com o comando:
# man 7 undocumented
Podemos ver que para visualizar o manual do arquivo de usurio passwd
precisamos informar em qual nvel de manual ele se encontra, pois j existe um
passwd no nvel 1, que o comando, ento ele aparece primeiro quando digitamos
man passwd sem indicar o nvel. Esse manual do arquivo passwd est
compactado na pasta /usr/share/man/man5.

6.4.3. Comando apropos

O comando apropos utilizado quando no se sabe qual documentao


acessar para um determinado assunto, mostrando as man pages que contm a
palavra-chave que foi especifcada.

Captulo 6 Conhecendo a Documentao - 87


A sintaxe utilizada para usar o apropos a seguinte:
# apropos [palavra-chave]
Para localizar as man pages, o comando apropos utiliza um banco de
dados construdo com o comando catman (executado pelo administrador do
sistema, root).
Uma forma equivalente ao apropos usar o comando man juntamente
com a opo -k:
# man -k [palavra-chave]
Para construir o banco de dados do comando apropos devemos executar o
comando abaixo:
# catman

No RedHat, o comando catman foi substitudo pelo makewhatis.

Os comandos apropos e makewhatis utilizam a mesma base de dados,


importante perceber isso.
(catman e makewhatis)
6.4.4. Comando whatis

O comando whatis tem basicamente a mesma funo do comando


apropos, porm as buscas do comando whatis so mais especfcas. O apropos
busca as pginas de manuais e descries de maneira mais genrica. Se digitarmos a
palavra passwd ele nos trar tudo que tiver passwd, seja como nome ou parte do
nome do manual ou na descrio. J o whatis nos trar somente o manual com
nome exato da palavra pesquisada.
seguinte:
# whatis [comando]

A sintaxe utilizada no comando whatis a

Captulo 6 Conhecendo a Documentao - 88


Uma forma equivalente ao whatis usar o comando man juntamente
com a opo -f:
# man -f [palavra-chave]

6.4.5. Comando info

As info pages so como as pginas de manuais, porm so utilizadas com


navegao entre as pginas. Elas so acessadas pelo comando info. Este til
quando j sabemos o nome do comando e s queremos saber qual sua respectiva
funo.
A navegao nas info pages feita atravs de nomes marcados com um *
(hipertextos) que, ao pressionarmos Enter, nos leva at a seo correspondente, e
Backspace volta pgina anterior. Algo parecido com a navegao na Internet.
Podemos tambm navegar pelas pginas com as teclas n (next/prximo);
p (previous/anterior); u (up/sobe um nvel). Para sair do comando info,
basta pressionar a tecla q.
Se for necessrio exibir a lista de todos os manuais de comandos/programas
disponveis, execute o comando abaixo sem nenhum argumento. Assim:
# info

Para exibir as informaes somente de um determinado comando, usaremos a


seguinte sintaxe:
# info [comando]

6.5. Alternativas para consulta


Para obter uma melhor visualizao, duas ferramentas de documentao
foram desenvolvidas:
yelp Ferramenta grfca para visualizao de manuais de aplicativos

Captulo 6 Conhecendo a Documentao - 89


grfcos do GNOME;

xman Front-end para o comando man, que facilita a consulta das


man pages;

Ilustrao 3: xman

Ilustrao 4: Menu do xman

Captulo 6 Conhecendo a Documentao - 90

6.6. Comando whereis


O comando whereis utilizado para mostrar a localizao do binrio do
comando, do arquivo de confgurao (caso exista), e a localizao das pginas de
manuais do determinado comando ou arquivo.
Para visualizarmos a localizao destes dados para um determinado comando
ou arquivo, utilizamos a seguinte sintaxe:
# whereis [comando]
ou
# whereis [arquivo]

6.7. Comando which


O comando which bem semelhante ao comando whereis, entretanto este
s mostra a localizao do binrio do comando.
Para visualizar a localizao do binrio do comando, utilizamos a seguinte
sintaxe:
# which [comando]
O comando which muito usado para abreviaes de comandos em Shell
Script. Podemos testar executando o comando abaixo:
$ lsetc=$(which ls) -la /etc color
$ lsetc

Captulo 6 Conhecendo a Documentao - 91

6.8. Prtica Dirigida


1) Visualize uma ajuda rpida para o comando interno cd:
# help cd

2) Abra o manual do comando man:


# man man

3) Abra o manual do comando ifconfg e veja em qual nvel de


manual ele se encaixa:
# man ifconfig

4) Qual o path (localizao) completo do comando e arquivo


passwd e respectivas pginas de manual?
# whereis passwd

5) Qual o path (localizao) somente do binrio do comando ls?


# which ls
# which source

6) Como visualizamos
comandos?

as

pginas

de

informao

de

todos

os

# info

7) Busque os manuais que possuem a palavra user em suas


descries:
# apropos user

8) Busque os manuais que tenham somente o nome passwd:


# whatis passwd

Captulo 6 Conhecendo a Documentao - 92


9)

Onde podemos encontrar no sistema uma documentao e um


arquivo de exemplo da aplicao apt?

# cd /usr/share/doc/apt

10)

Visualize alguns arquivos de howtodo frewall:

# cd /usr/share/doc/iptables/html/
# w3m NAT-HOWTO.html

6.9. Conhecendo a Origem


Aprendemos, at aqui, como procurar a documentao para nos ajudar

na

resoluo dos problemas e execuo de comandos. Neste captulo veremos o


funcionamento prtico de alguns destes comandos.
1) Execute o comando interno do sistema:
# help type
Como podemos ver, o type um comando interno do sistema.

2) Mais tarde iremos estudar variveis. A varivel que armazena os


caminhos onde sero armazenados todos os comandos externos
do sistema chamado, historicamente, de PATH, para verifcar o
seu contedo, execute:
# echo

$PATH

3) Vamos executar o comando type para vermos as respostas:


# type ls
# type /bin/ls
# type cat

4) Verifque que o comando type, no funciona com arquivos:


# type /etc/passwd

Captulo 6 Conhecendo a Documentao - 93


5) Para verifcar os arquivos, temos o comando fle, que diz qual o
tipo do arquivo:
# file /etc/passwd

6) Mas ele tambm funciona com arquivos binrios:


# file /bin/ls

7) O comando type pode nos indicar o caminho de um binrio, mas


ele no mostrar a existncia de aliases para esse comando. Para
mostrar o caminho do binrio e, tambm, seus aliases devemos
utilizar o comando alias. Veja o exemplo abaixo:
#
#
#
#
#

alias
ls ls='ls
which ls
alias
type ls

--color'

Mais adiante iremos mostrar, com detalhes, como utilizar os aliases do


sistema.

6.10. Exerccios Tericos

1) Quantos so os nveis de manuais existentes? Como eu vejo uma descrio


de cada um deles?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

2) Qual o site ofcial de documentao do sistema GNU/Linux?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 6 Conhecendo a Documentao - 94


3) Como devemos proceder caso no saibamos o nome do comando especfco
para o qual desejamos consultar o manual? Por exemplo, qual comando, em
modo texto, utilizaramos para enviar um e-mail?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

4) Em qual nvel de manual se encaixa o comando ifconfg?


_____________________________________________________________________________
_____________________________________________________________________________

5) Qual o nvel de manual para arquivos de confgurao?


_____________________________________________________________________________
_____________________________________________________________________________

6) Qual a diferena entre how-to, manual e documentao?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

7) Em qual nvel do man se encontra a biblioteca DATE::FORMAT?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

6.11. Laboratrio
1) Gere a base de manuais do sistema;
2) Pesquise em qual nvel de manual se encaixa o shadow;
3) Descubra qual a localizao do comando su;
4) Descubra se source um comando interno ou externo;
5) Tente descobrir se existe no sistema algum manual ou documentao que
fale sobre a hierarquia do sistema de arquivos.

Captulo 6 Conhecendo a Documentao - 95

Captulo 7
Editores de texto

7.1. Objetivos
Conhecer os diversos editores textos;
Explorar o editor de textos nano;
Explorar o editor de textos Vim.

Captulo 7 Editores de texto - 96

7.2. Introduo terica


A grande maioria das confguraes em sistemas GNU/Linux so feitas
editando diretamente arquivos de confgurao em modo texto. Para facilitar essa
tarefa, preciso conhecer alguns editores de texto, dentre eles: vi, vim, nano,
pico, mcedit, ed, e emacs dentre outros:
vi Sem dvida nenhuma o editor mais famoso de todos os tempos,
presente em quase todas as distribuies;
vim Uma verso melhorada do vi, Vim signifca VImpruved e trs
diversas facilidades sem perder os conceitos originais do vi;
nano Editor padro de muitas distribuies como Debian e Ubuntu, esse
editor diferente do vim e muito fcil de ser usado;
pico Muito parecido com o nano, este est presente nas distribuies
Slackware e Gentoo;
mcedit Editor muito fcil e completo que est presente nas distribuies
RedHat e CentOS. Seu grande diferencial a possibilidade da utilizao do
mouse, mesmo no ambiente textual;
ed O editor de textos mais simples no mundo Unix, o ed um editor de
linha para terminais aonde no possvel abrir uma janela de edio;

emacs Poderoso editor de "tudo", o emacs tambm muito conhecido


no mundo GNU/LINUX por fazer muitas coisas diferenciadas de um editor de
texto;

comando

od,

pode

ser

importante

para

prova.

Sua

principal

funcionalidade mostrar a sada de um arquivo em formatos como octal,


ASCII, entre outros.
Neste captulo vamos abordar apenas a utilizao dos editores nano e vim.
Isso porque eles so os mais usados.

7.3. Editor Nano


O nano o editor padro de textos do Debian, e distribuies baseadas
nele. Esse editor muito fcil de ser usado, e sua interface muito intuitiva e

Captulo 7 Editores de texto - 97


agradvel.
Para abrirmos o editor devemos chamar o seguinte comando:
$ nano

Ilustrao 5: Menu do Nano


Ao ser chamado, este editor ir apresentar um tela em branco com um rodap
semelhante a esse:
Vamos analisar essas funes:
Lembrando que ^G igual a Ctrl + G e assim por diante ...

^G Get Help Apresenta uma tela de ajuda para os mais diversos


comandos e uma breve explicao sobre o editor;
^X Exit Sai do editor, lembrando que se o arquivo no estiver salvo, essa
opo ir te pedir para salv-lo;
^O WriteOut Salva ou sobrescreve um arquivo;
^J Justify Justifca o arquivo inteiro;
^R Read File Importa um arquivo;
^W Where Is Procura por uma ocorrncia dentro do arquivo;
^Y Prev Page Move o cursor para pagina anterior;
^V Next Page Move o cursor para prxima pagina;
^K Cut Text Corta a linha em que o cursor est posicionado;
^U UnCut Text Cola a linha recortada na posio atual do cursor
^C Cur Pos Mostra informaes sobre a posio do cursor;
^T To Spell Ativa a correo ortogrfca. necessrio ter o comando
spell instalado para que isso funcione;

Como podemos ver, usar o editor de textos nano, no uma das tarefas mais
difceis no GNU/Linux. Vamos conhecer, agora, o editor Vim.

Captulo 7 Editores de texto - 98


As variveis relacionadas com os editores podem ser valiosas na prova.
Uma delas a prpria varivel EDITOR

EDITOR=nano visudo
EDITOR=vim visudo
Observem que a varivel defne o editor que abrir um programa que chama o
editor padro.
Para defnirmos qual ser o editor padro podemos usar o aplicativo
update-alternatives.
# update-alternatives --config editor

7.4. Editor Vim


O Vi o editor bsico do GNU/Linux, e est disponvel em grande parte das
distribuies do GNU/Linux, mesmo naquelas que vm em apenas um disquete.
Hoje em dia, as distribuies usam uma verso mais completa e com mais
recursos do que o Vi que o Vim VI iMproved. Abaixo podemos ver uma tela do
editor de textos vim:

Captulo 7 Editores de texto - 99


Ao invocar o Vi, este entra direto para o modo visualizao. Para
modifcar o arquivo, usam-se os modos de insero, deleo e de substituio. Para
voltar ao modo de visualizao, sempre se usa a tecla ESC.

Ilustrao 6: Fluxo de Trabalho do vim


A grande maioria dos servios em Unix so confgurados atravs de arquivos
de confgurao, o vim no seria diferente. Seu arquivo de confgurao fca
localizado em /etc/vim/vimrc. Para confgurar o seu editor de textos, basta
descomentar as funcionalidades desejadas, e copiar o arquivo para o seu home
como .vimrc.
$ cp /etc/vim/vimrc ~/.vimrc

7.5. Prtica Dirigida


1) Faa uma cpia de segurana do arquivo /etc/passwd para seu
diretrio home:
$ cp /etc/passwd ~
$ cd

Captulo 7 Editores de texto - 100


2) Vamos testar alguns comandos bsicos do vim:
$ vim passwd
7.5.1. Testando as funcionalidades do Vim

Teste os comandos de Edio


1) Comandos bsicos de insero de texto:
i Insere texto antes do cursor;
a Insere texto depois do cursor;
r Substitui texto no incio da linha onde se encontra o cursor;
A Insere texto no fnal da linha onde se encontra o cursor;
o Adiciona linha abaixo da linha atual;
O Adiciona linha acima da linha atual;
Ctrl + h Apaga o ltimo caractere.

Teste os comandos de Movimentao


2) Comandos bsicos de movimentao:
Ctrl+f Move o cursor para a prxima tela;
Ctrl+b Move o cursor para a tela anterior;
H Move o cursor para a primeira linha da tela;
M Move o cursor para o meio da tela;
L Move o cursor para a ltima linha da tela;
h Move o cursor um caractere esquerda;
j Move o cursor para a prxima linha;
k Move o cursor para linha anterior;
l Move o cursor um caractere direita;
w Move o cursor para o incio da prxima palavra;
W Move o cursor para o incio da prxima palavra, separadas por espao;
b Move o cursor para o incio da palavra anterior;
B Move o cursor para o incio da palavra anterior, separadas por espao;
0(zero) Move o cursor para o incio da linha atual;

Captulo 7 Editores de texto - 101


^ Move o cursor para o primeiro caractere no branco da linha atual;
$ Move o cursor para o fnal da linha atual;
nG Move o cursor para a linha n;
:n Move o cursor para a linha n;
gg Move o cursor para a primeira linha do arquivo;
G Move o cursor para a ltima linha do arquivo.

Escreva um texto e teste os comandos de localizao


3) Comandos bsicos para localizar texto:
/palavra Busca pela palavra ou caractere em todo o texto;
?palavra Move o cursor para a ocorrncia anterior da palavra;
n Repete o ltimo comando / ou ?;
N Repete o ltimo comando / ou ?, na direo reversa;
Ctrl+g Mostra o nome do arquivo, o nmero da linha atual e o total de
linhas.

Teste tambm os comandos de Alterao


4) Comandos bsicos para alterao de texto:
x Deleta o caractere que est sob o cursor;
dw Deleta a palavra, da posio atual do cursor at o fnal;
dd Deleta a linha atual, e copia o contedo para rea de transferncia;
D Deleta a linha a partir da posio atual do cursor at o fnal;
:A,Bd Deleta da linha A at a linha B, copia para rea de transferncia;
rx Substitui o caractere sob o cursor pelo especifcado em x;
u Desfaz a ltima modifcao ;
U Desfaz todas as modifcaes feitas na linha atual;
J Une a linha corrente a prxima;
yy Copia 1 linha para a rea de transferncia;
yNy Copia N linhas para a rea de transferncia;
p Cola o contedo da rea de transferncia;
Np Cola N vezes o contedo da rea de transferncia;

Captulo 7 Editores de texto - 102


cc Apaga o contedo da linha, e copia para rea de transferncia;
cNc Apaga o contedo de N linhas, e copia para rea de transferncia;
:%s/string1/string2/g Substitui "string1" por "string2".

Por fm teste os comandos de execuo


5) Comandos para salvar o texto:
:wq ou :x Salva o arquivo e sai do editor;
:w nome_do_arquivo Salva o arquivo corrente com o nome especifcado;
:w! nome_do_arquivo O mesmo que :w, mas forando sobrescrita;
:q Sai do editor;
:q! Sai do editor sem salvar as alteraes realizadas.

Algumas dicas de vi para a LPI:


:setnumber
:syntax on
:set noai
:set hlsearch
:set background=dark

7.6. Exerccio Terico


1) Como removo as linhas de 40 a 60?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

2) Como vou para o incio do arquivo?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 7 Editores de texto - 103

3) Como apago as 8000 primeiras linhas ?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

4) Como vou para a linha 25 do arquivo?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

5) Qual a sequncia de teclas que apaga 4 linhas, sendo elas a linha atual e
mais 3 linhas abaixo do cursor?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

6) Como fao uma cpia do meu arquivo para o seguinte path:


/tmp/backup?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

7) Como eu copio 5 linhas? E depois, como as colo?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

8) Como eu acho todas as palavras linux dentro do texto?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 7 Editores de texto - 104

9) Substituir todos os /, por @ dentro do arquivo?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

7.7. Laboratrio
1) Crie um arquivo chamado dados_pessoais;
2) Dentro dele, coloque um dado em cada linha: Nome completo, e-mail e um
site de sua preferncia. Grave o arquivo;
3) Agora, modifque algum dado e tente sair do editor sem salvar.;
4) De dentro do Vi, faa uma cpia desse arquivo para um outro chamado
dados_pessoais2;
5) Faa uma cpia da sua linha de e-mail, 5 vezes;
6) Posicione o cursor na primeira linha do arquivo, sem usar as teclas
direcionais;
7) V direto para a linha 3, sem usar as teclas direcionais;
8) V direto para o fnal do arquivo, sem usar as teclas direcionais;
9) Recorte a linha do seu nome e coloque-a no fnal do arquivo;
10)
Apague a linha que tem seu nome e depois tente desfazer a sua
ltima ao;
11)
Faa uma cpia do arquivo /etc/inittab para o seu HOME. ( cp
/etc/inittab ~ ) ;
12)

Ainda no arquivo, entre no modo visual;

13)

Apague as 5 primeiras linhas do arquivo;

14)
Substitua todas as strings init (em minsculo) por INIT (em
maisculo) ;
15)

Localize a string shutdown, usando o mtodo de busca;

16)

Substituir das linhas 22 a 28 a string wait pela string esperar;

17)
Dentro do arquivo, localize todas as palavras respawn e apague
todas elas;
18)

Apague as linhas 19 e 24;

19)

Mova as linhas 35,36,37 e 38 para o fnal do arquivo;

20)

Salve o arquivo, alterando o seu nome, dentro de /root.

Captulo 7 Editores de texto - 105

Captulo 8
Introduo a Redes

8.1. Objetivos
Introduo Terica de redes TCP/IP;
Conceitos bsicos de confguraes de redes Unix;
A importncia de alguns elementos das redes de computadores.

Captulo 8 Introduo a Redes - 106

8.2. Introduo terica


Neste captulo, iremos aprender alguns conceitos de redes que so muito
importantes no nosso dia a dia em TI. Elementos como o endereo IP da mquina e a
mscara de rede, so de fundamental importncia quando lidamos com confgurao
de rede. To importante quanto os itens acima, saber como funciona uma rede,
aprendendo a confgurar seu gateway e defnir seu DNS, alm de descobrir
tcnicas que facilitam a confguraes diria de redes nos nossos sistemas UNIX.
Os protocolos TCP/IP antigamente eram usados como um padro militar
para troca de informaes. Atualmente esses protocolos so o padro mundial para
comunicao de redes de computadores. Inclusive da Internet.
O protocolo TCP - Transmission Control Protocol, orientado a
conexes, transporta informaes por meio de handshaking. Caso algum erro
acontea durante a comunicao ele, automaticamente, reenvia a informao. Esse
protocolo garante o envio das mensagens. Podemos citar alguns servios de rede que
utilizam o protocolo TCP, SMTP, FTP e Telnet. J o protocolo IP - Internet
Protocol descrito pela RFC 791, responsvel por estabelecer o esquema de
endereamento e pela defnio de datagramas.
Apesar da nova vero da LPI ter diminudo os tpicos sobre TCP/IP, ele
ainda est presente na prova, e por isso dar ateno ao modelo OSI, uma
boa idia. O modelo OSI ser estudado com detalhes no treinamento 451.

Acompanhe um pouco mais desse assunto no treinamento 451 da Formao


4Linux. O treinamento 452, mostra a confgurao dos principais servios.

8.3. Entendendo o IP
O endereamento IP, como deve ser chamado, composto por 4 octetos e
uma mscara, que determina quantos endereos so destinados a host e quantos
endereos so destinados a rede.
O GNU/Linux no diferente de outros sistemas operacionais. Para termos
acesso a Internet ou a comunicao em rede tambm precisamos ter nosso nmero

Captulo 8 Introduo a Redes - 107


IP. O nmero IP est presente em todas as mquinas, mesmo nas que no tem
conexo com a Internet.
Isso possvel porque em todo GNU/Linux h uma interface lgica, chamada
loopback (lo) cujo endereo IP 127.0.0.1 e que sempre deve estar devidamente
confgurada.
Nosso endereo de loopback atende tambm por 0.0.0.0

Voc pode estar se perguntando:


Mas por que raios eu poderia querer um servio em uma mquina que no
fala com o mundo externo?".
A resposta simples: voc pode desenvolver suas pginas e sistemas Web e
test-las localmente. Ou mesmo testar a implantao de um servidor de DNS ou um
proxy, antes mesmo de coloc-lo em produo e evitar que seus usurios reclamem
de algo que no funcionou direito. Em resumo, voc pode fazer qualquer coisa que
voc queira e no necessariamente precisa ter contato com o mundo exterior.
Com essa interface confgurada, todo o tipo de servio pode ser ativado na
mquina, desde um simples servidor de ssh at um servidor de DNS, passando
por um servidor de pginas Web, afm de realizar testes antes de coloc-los em
produo.
A Internet totalmente endereada por nmeros IP's, e no depende, isso
mesmo, no depende em momento nenhum de um servidor de DNS para funcionar.
O servio de DNS apenas facilita o nosso acesso a Internet, permitindo que a
navegao seja feita atravs de nomes e no de nmeros. Isso signifca que para
entenderemos como a Internet funciona, precisamos entender como funcionam os
nmeros que ela utiliza os nmeros IP.
Para confgurarmos um nmero IP em nosso computador, precisamos tambm,
confgurar uma Mscara para esse nmero IP. A mascara de rede, tambm
conhecida como netmask, um nmero constitudo por 32 bits, que utilizado
para separar redes, determinando quem host, quem rede e quem broadcast.
Host Um endereo disponibilizado para computadores poderem acessar a
rede;
Rede Um endereo da rede, que com a ajuda da mscara, delimita qual

Captulo 8 Introduo a Redes - 108


o comeo e o fm da rede;
BroadCast Normalmente o ultimo endereo da rede, utilizado para que
uma mquina possa falar com todas as outras.

Ilustrao 7: Entendendo as Mascaras

Sabendo como funciona a mscara de rede necessrio saber que existem


trs classes padro de Redes.

Ilustrao 8: Conhecendo as classes

Ainda compreendendo esses nmeros, importante saber que existem dois


tipos de endereamento IP: Pblicos e Privados.
IP Pblico So endereos vlidos para Internet ;

Captulo 8 Introduo a Redes - 109


IP Privado So endereos invlidos para Internet, podendo somente ser
usados em redes privadas como Lan's ou WLans.

Ilustrao 9: Ip's pblicos e privados

Para entendermos melhor esse conceito preciso entender qual o papel do


NAT nas redes de computadores. O NAT - Network Address Translation uma
tcnica desenvolvida devido aos nmero limitado de endereos IP's (IPv4) disponveis
atualmente.

O crescimento vertiginoso da Internet fez com que o consumo de endereos IP


atingisse nveis crticos. A situao acelerou o desenvolvimento da nova gerao de

Captulo 8 Introduo a Redes - 110


endereamento IP chamado de IPV6, que visa, entre outras caractersticas, oferecer
um nmero praticamente inesgotvel de endereos vlidos para a Internet.
Entretanto o uso mais racional dos endereos IP privados, aliado tcnica de NAT,
adiou a implantao do IPV6.
Se cada um de nossos computadores utiliza-se um nmero IP Pblico, a
quantidade de endereos IP j teria se esgotado e provavelmente j estaramos
utilizando o protocolo IPv6. Vamos descobrir agora os ranges (intervalos) de IP's
que podemos utilizar: os IP's Privados.

8.4. Entendendo o gateway da rede

O gateway da rede um host, que conhece outros hosts, que por sua
vez conhecem outros, e assim por diante. Complicado?
O principal papel do gateway levar os pacotes TCP/IP para outras redes
que os hosts que os originaram, no conhecem. dessa forma que os pacotes saem
de uma rede privada para um rede Wan. Para que os pacotes possam transitar pela
Internet ou mesmo s por uma rede fechada necessrio um gateway. Mesmo em
uma rede local, o gateway a prpria mquina, pois todos os hosts esto
normalmente com a mesma confgurao de IP, ou seja, mesma mscara, mesma
classe de IP, etc.

8.5. O servidor DNS


Nesse ponto muito importante frisar que o servidor de DNS no faz parte
da confgurao essencial de rede, pois para estarmos na Internet, basta termos um
gateway, que a conhea, devidamente confgurado. Lembre-se: a Internet feita
de nmeros.
Usurio Suporte?
Suporte Sim, em que posso ajudar?
Usurio A Internet est fora do ar ... (O cara no consegue acessar o
host orkut.com)
Para resolver esse probleminha basta digitar o comando:

Captulo 8 Introduo a Redes - 111


$ ping 4.2.2.2
Se a resposta for positiva, voc no tem um problema de link, cheque seu
DNS.
Suporte Sr. Usurio, percebi que voc est acessando um site proibido
pela empresa, h algo errado?
Usurio Eu?? .. No, no, tudo bem, a Internet j est normalizada.

8.6. Arp e RARP


Vamos nos aprofundar um pouco mais nas teorias de redes e vamos verifcar
os protocolos ARP e RARP. O protocolo ARP utilizado para converter os
endereos de rede (IP's), para os endereos fsicos das interfaces -

MAC. Um

exemplo clssico de usabilidade identifcar placas com o mesmo MAC Address na


rede. Podemos conhecer todas as mquinas da rede e depois utilizar o comando arp
para descobrir quais endereos IP tem o mesmo MAC Address. J o Rarp faz
exatamente o oposto, transforma endereos fsicos em endereos de rede.

8.7. Confgurando a Rede


A confgurao de rede em um sistema GNU/Linux muito importante pois
esses sistemas so, intrinsecamente, sistemas de rede. Ou seja, mesmo que no haja
nenhum tipo de interface de rede, moldem ou qualquer outro dispositivo de conexo,
ainda assim uma mquina GNU/Linux ser um sistema de rede.
A confgurao da rede baseia-se em trs etapas:
Confgurao do nmero IP e sua mscara de rede;
Confgurao do Gateway;
Confgurao dos servidores DNS.

8.7.1. Confgurando IP e Mscara

Alm da interface lo loopback, podemos confgurar outras interfaces, basta


que elas estejam presentes fsicamente e sejam suportadas pelo kernel. Na maior

Captulo 8 Introduo a Redes - 112


parte dos casos, a interface mais comum acaba sendo a interface eth0 de
ethernet nmero 0, por ser a primeira. Para confgurar e depois visualizar essas
confguraes em nossas interfaces de redes, utilizamos o comando ifconfg.
# ifconfig
A utilizao do comando ifconfg um item essencial para o assunto de
redes. Outro comando que pode ter um bom valor na prova o comando
iwconfg destinado confgurao de interfaces de rede wireless. Esse
comando abordado no treinamento 451 da Formao 4Linux.
Com esse comando possvel descobrir todas as interfaces presentes no
sistema, mas para ter certeza que nenhuma interface est inativa adicionamos o
parmetro -a.
# ifconfig -a
Para atribuir um endereo IP para uma placa de rede utilizamos esta sintaxe:
# ifconfig <interface> <IP>
Exemplo:
# ifconfig eth0 192.168.32.54
Com esse comando estamos atribuindo o endereo IP 192.168.32.54 para a
interface eth0.
O comando ifconfg calcula automaticamente a mscara, mas se voc
precisar confgurar uma mascara diferenciada, voc deve usar o parmetro
netmask, assim:
# ifconfig eth0 192.168.32.54 netmask 255.255.254.0
Para ativar ou desabilitar um placa de rede podemos usar a sintaxe:
# ifconfig eth0 up
# ifconfig eth0 down

Uma boa alternativa para habilitar e desabilitar as placas de redes, seriam


os comando ifup e ifdown.

Captulo 8 Introduo a Redes - 113


8.7.2. Confgurando o gateway

Para que nossos pacotes saibam para onde ir eles precisam conhecer o IP do
gateway da rede. O papel do gateway da rede simples: ele funciona como uma
sada para todos os pacotes daquela rede, para outras redes.
Para confgurar o gateway da nossa rede utilizamos o comando route com
os seguinte parmetros:
# route add default gw IP
Com esse comando possvel confgurar a rota padro de sada da nossa rede.
Para listar todas as rotas traadas, podemos utilizar o comando abaixo:
# route -n
Com ele podemos descobrir se as rotas necessrias para que nossa rede
funcione esto corretas.
Se desejarmos remover a rota padro, devemos utilizar o comando:
# route del default
Esse comando se encarregar de remover a rota padro para a sada da rede,
mas lembre-se que essa rota obrigatria no processo de confgurao de rede.

8.7.3. Confgurao dos DNS Servers

Para no ter que memorizar todos os endereos IP que precisamos acessar, foi
criado um servio de rede chamado DNS. Este faz a traduo de nomes para
endereos IP e vice-versa. Este servio de rede ser melhor detalhado no curso 452
da Formao 4Linux.
Para confgurar os servidores de DNS na mquina local, precisamos editar o
arquivo de confguraes de DNS, chamado resolv.conf localizado em /etc.
# vim /etc/resolv.conf

Captulo 8 Introduo a Redes - 114


Para

que

resoluo

de

nomes

funcione

contedo

do

arquivo

/etc/resolv.conf deve ser parecido com este:


nameserver 201.6.0.100
Com essa sintaxe acabamos de confgurar um servidor de DNS, no caso o DNS
do Virtua.
Os comandos traceroute e tracepath podem ajudar os administradores
a descobrir em que ponto da rede podemos ter um possvel problema.

8.7.4. Confgurao esttica de rede

Tudo que vimos at agora, so confguraes que podem ser atribudas


atravs de linha de comando (confguraes dinmicas). Porm nosso host deve
estar devidamente confgurado para que, por exemplo, aps um boot, a mquina
mantenha as confguraes certas.
Para

que

isso

acontea

temos

que

con fgurar

arquivo

/etc/network/interfaces, assim:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.200.X
netmask 255.255.255.0
broadcast 192.168.200.255
network 192.168.200.0
gateway 192.168.200.254

Os arquivos de confgurao das interfaces de rede esto localizadas em


/etc/sysconfg/networking/devices. A sintaxe diferente e recomenda-se
utilizar o aplicativo netconfg para confgurar a rede.

Captulo 8 Introduo a Redes - 115

8.8. Arquivo Hosts


Podemos tambm confgurar alguns atalhos para alguns endereos de rede.
Esses atalhos fcam localizados dentro do arquivos /etc/hosts.
A sintaxe dele :
IP

apelido

apelido

Exemplo :
192.168.200.254

instrutor professor

Isso facilita nosso trabalho, uma vez que todos esto devidamente apelidados,
no precisamos mais decorar nmeros IP.

8.9. Comando hostname


O comando hostname altera dinamicamente o nome da mquina e deve ser
utilizado da seguinte maneira:
#

hostname NOVONOME
Para alterar o hostname de maneira esttica, devemos editar o arquivo

/etc/hostname:
O comando hostname com sua opo -f (FQDN) mostra qual o Full
Qualify Domain Name da nossa mquina, sempre que formos confgurar
qualquer servio externo em nossa mquina, o FQDN ser a chave.
<hostname>.<domainname>
Um exemplo de confgurao de FQDN seria colocar a linha abaixo no arquivo
/etc/host:
IP FQDN HOSTNAME
200.12.44.211 zeus.criptahacks.ntr.au

zeus

Captulo 8 Introduo a Redes - 116

8.10. O arquivo nsswitch.conf


Presente em /etc o arquivo nsswitch.conf, nos permite confgurar qual
ser a ordem de busca por logins vlidos na estao, ou seja, se a mquina em
questo precisar buscar o login em um servidor LDAP, NIS ou outro meio de
autenticao, nesse arquio que devemos especifcar essa confgurao.
O contedo padro do arquivo /etc/nsswitch.conf este:
passwd:compat
group: compat
shadow:compat
Acima temos a confgurao padro para buscar nos arquivos de senha do
sistema. Mas se precisarmos autenticar em um servidor LDAP a confgurao
fcaria assim:
passwd:files ldap
group: files ldap
shadow:files ldap
Outros valores podem ser aplicados como db e nis.

8.11. Ferramentas de consulta


O comando dig o acrnimo para Domain Information Groper, que
signifca algo como "aquele que busca por informaes de domnio no escuro", e ao
mesmo tempo, a palavra dig, em ingls, signifca literalmente "escavar".
No dig h dezenas de opes e incontveis combinaes entre elas, por isso
consultar o man, e sobretudo, ter um forte domnio do funcionamento do sistema
de nomes de domnio necessrio para domin-lo.
O dig no utiliza a opo search do /etc/resolv.conf, por isso
necessrio utilizar FQDN em todas as buscas.

Captulo 8 Introduo a Redes - 117

8.12. Prtica Dirigida


1) Verifque as confguraes de rede que esto ativas:
# ifconfig

2) Verifque quais rotas esto sendo utilizadas:


# route -n

3) Determine quais so as interfaces de rede esto disponveis:


# ifconfig -a

4) Confgure a interface eth0 manualmente para que utilize um IP


da rede 192.168.200.X com mscara de sub-rede 255.255.255.0,
sendo X o nmero da sua mquina:
# ifconfig eth0 192.168.200.X

5) Verifque as confguraes de rotas:


# route -n

6) Adicione uma rota para o gateway 192.168.200.254:


# route add default gw 192.168.200.254
# route -n

7) Envie um icmp tipo echo-request - ping, para uma outra


mquina da rede:
# ping 192.168.200.Y

8) Se possvel, pingue todas as mquinas da rede utilizando o


endereo de broadcast:
# ping -b 192.168.200.255

Captulo 8 Introduo a Redes - 118


9) Determine os endereos MAC das interfaces que responderam ao
ping:
# arp -n

10)
#
#
#
#

Desative a interface de rede e ative-a novamente:

ifconfig eth0 down


ifconfig
ifconfig eth0 up
ifconfig

11)
Vamos confgurar nossas interfaces de rede editando o arquivo
/etc/network/interfaces:
# vim /etc/network/interfaces

12)
Altere o contedo dele para satisfazer as confguraes da sua
rede:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.200.X
netmask 255.255.255.0
broadcast 192.168.200.255
network 192.168.200.0
gateway 192.168.200.254

13)

Pare o servio de rede e reinicie-o na sequncia:

# invoke-rc.d networking stop


# invoke-rc.d networking start
# ifconfig

Captulo 8 Introduo a Redes - 119


Para iniciar servios no RedHat, recomenda-se utilizar o comando service.
Para iniciar/parar/reiniciar a interface de rede, use o comando service
network start/stop/restart.

14)
Efetue pingues para determinar se voc est conseguindo
ver as outras mquinas da rede e a mquina do instrutor:
# ping -b 192.168.200.255
# ping 192.168.200.254

15)
Agora que j estamos com a rede confgurada vamos tentar
acessar a Internet. Pingue um site a sua escolha:
# ping www.4linux.com.br
Como o comando ping capaz de determinar qual o endereo IP do
servidor www.4linux.com.br?

16)

Confgure o arquivo para um cliente DNS:

# vim /etc/resolv.conf
nameserver 200.204.0.10
nameserver 200.204.0.138

17)
Tente pingar o site novamente e verifque que a resoluo de
nomes est funcionando
# ping www.4linux.com.br

18)
Agora que determinamos quem so nossos servidores de
nomes, podemos confgurar tambm o nosso mini resolvedor de
nomes internos:
# vim /etc/hosts
Esse arquivo deve sempre conter as informaes corretas para o loopback,
caso contrrio, os servios internos podem deixar de funcionar.

Captulo 8 Introduo a Redes - 120


19)

Adicione as linhas apropriadas a esse arquivo:

127.0.0.1 localhost.localdomain localhost


192.168.200.X microX.treinamento.xxx.br microX
192.168.200.254 gateway.treinamento.xxx.br gateway instrutor

20)

Realize testes para ver se esses nomes esto funcionando:

# ping instrutor
# ping localhost

21)

Adicione a seguinte linha ao nosso resolvedor de nomes:

192.168.200.254 www.4linux.com.br 4linux

22)

Pingue o servidor da 4linux:

# ping www.4linux.com.br

23)

Confgure dinamicamente o hostname (nome da mquina):

# hostname

24)
Altere o nome da mquina de microX para maqX, de forma
que a alterao fque permanente:
# vim /etc/hostname

Na RedHat, o hostname fca defnido no arquivo /etc/sysconfg/network.

25)

Verifque qual o domnio ao qual a sua mquina pertence:

# hostname -d

Captulo 8 Introduo a Redes - 121


26)
Verifque qual o FQDN (Fully Qualifed Domain Name) da sua
mquina:
# hostname -f

27)
Para que o novo nome seja estabelecido execute o comando
abaixo, faa logout e depois login, ou reinicie a mquina:
# echo seu_hostname_fqdn_aqui > /proc/sys/kernel/hostname
ou
# shutdown -r now
Pronto, verifque se est OK! Quando a mquina voltar, iremos fazer alguns
teste, e depois fazer nossas consultas DNS.

28) Executando o comando dig:


# dig www
# dig www.4linux.com.br.

29) Agora iremos testar utilizando um endereo de servidor de


nomes:
# dig @200.176.2.10 www.uol.com.br
# dig @4.2.2.2 www.terra.com.br

30) Para que possamos calcular quantos saltos nossa mquina ira
fazer at o host destino:
# traceroute 127.0.0.1
# traceroute www.kernel.org

8.13. Exerccio Terico


1) Qual o papel da mscara na confgurao da rede?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 8 Introduo a Redes - 122

2) Qual o comando que preciso executar para recarregar minhas


confguraes de rede?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

3) Alem do nmero IP 127.0.0.1, qual o outro nmero IP que pode


responder por localhost?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

4) Qual o papel do Gateway na rede?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

5) Onde feita a confgurao do nosso servidor de DNS? Se o mesmo no


estiver corretamente confgurado o que vai acontecer?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

8.14. Laboratrio
1) Confgure sua placa de rede, de acordo com as especifcaes do instrutor;
2) Confgure tambm um segundo endereo IP para essa mesma placa de
rede;
3) Tente pingar os colegas nas duas redes confguradas.

Captulo 8 Introduo a Redes - 123

Captulo 9
Manipulando Hardware e Dispositivos

9.1. Objetivos
Entender o funcionamento do /dev;
Diferenciar devfs de udev;
Compreender o processo de montagem de um dispositivo;
Testar alguns dispositivos presentes em /dev;
Compreender como funciona o particionamento;
Aplicar um sistema de arquivos a uma partio.

Captulo 9 Manipulando Hardware e Dispositivos - 124

9.2. Introduo terica


O ncleo do sistema operacional GNU/Linux, o kernel, se comunica com os
dispositivos de uma maneira muito interessante: praticamente todos os dispositivos
em GNU/Linux so representados por um arquivo correspondente dentro do sistema
de arquivos. Exceo a esta regra so as placas de rede.
Alguns assuntos sobre dispositivos foram retirados da apostila pois foram
considerados ultrapassados, porm os mesmos continuam disponveis em Anexo.
O local onde so armazenadas estas representaes o diretrio /dev. Uma
listagem deste diretrio mostrar uma srie de arquivos, todos eles representando
uma parte do seu computador. A interao com estes arquivos, pelo sistema
operacional GNU/Linux, feito atravs de pedidos e respostas que so enviados e
recebido por esses arquivos especiais.

9.2.1. Explorando o /dev

Uma diferena marcante entre sistemas MS-Windows e Unix-like a forma


de lidar com parties e dispositivos, como unidade de disquete e CD-ROM. Em
sistemas MS-Windows, desde uma partio no disco rgido a um pen drive, o acesso
efetuado utilizando a idia de "unidades" ou drives, como o drive C: ou A: ou
at mesmo uma unidade de rede. Esse tipo de conceito faz com que o usurio fnal
no precise saber o que est por trs do funcionamento desses equipamentos,
simplifcando sua utilizao ao preo da perda do conhecimento.
Em sistemas como GNU/Linux existe o conceito de dispositivos; praticamente
tudo na mquina tratado como sendo um dispositivo e pode ser acessado pelo seu
respectivo arquivo localizado no diretrio /dev. Uma exceo a isso a interface de
rede que tratada diretamente no nvel do kernel, no existindo um dispositivo (no
/dev) associado a ela.
O diretrio /dev consiste de um flesystem (sistema de arquivos) especial e
pode ser de dois tipos: devfs ou udev. O primeiro

mais antigo, tendo sido

substitudo pelo segundo a partir do kernel 2.6.12. Uma das diferenas entre os dois
que no devfs os arquivos de dispositivos so criados uma nica vez, dessa forma,
o diretrio /dev contm os dispositivos para todos os hardwares suportados pelo

Captulo 9 Manipulando Hardware e Dispositivos - 125


Linux, no importando se eles existem de fato na mquina ou no. Com o udev os
dispositivos so criados de acordo com a disponibilidade no sistema. Dessa forma, o
diretrio contm apenas os arquivos de dispositivo para o hardware presentes na
mquina.
O UDEV no "super popula o diretrio /dev do nosso sistema, alm de
nos proporcionar um mtodo de confgurao disponvel em /etc/udev/.
Explorando o diretrio /dev voc ir se deparar com alguns arquivos
especiais, conhecidos como arquivos de dispositivos. Os tipos existentes so:
bloco utilizados para transferncia de dados para hardware de
armazenamento de dados, como discos rgidos;
caracter conhecido tambm como "unbufered"
comunicao com hardware como mice e terminais;

utilizado

para

ffo conhecido tambm como named pipe um dispositivo utilizado para


realizar a comunicao entre dois processos independentes;
socket um dispositivo do tipo socket utilizado para criar um ponto de
comunicao.
Seguindo essa classifcao, os dois tipos mais comuns de serem manipulados
so os de bloco e de caracter; como exemplos deles temos os devices referentes a
dispositivos IDE conectados mquina (/dev/hda1, por exemplo) e o dispositivo
de acesso ao mouse (/dev/psaux, por exemplo).
Outros dispositivos de bloco importantes so os SCSI utilizados no apenas
por discos SCSI mas tambm por dispositivos USB e SATA, uma vez que so
acessados utilizando essa emulao. O nome destes dispositivos do tipo
/dev/sd[letra][nmero] e seguem a mesma lgica dos dispositivos IDE. Dessa
forma, se houver um HD SATA conectado mquina e mais nenhum outro
dispositivo que utilize emulao SCSI, sua localizao ser o device /dev/sda0.
Os nomes dos dispositivos e a maneira como so representados na hierarquia
do diretrio /dev podem ser bastante confusos primeira vista. Com um pouco de
prtica, a nomenclatura usada far sentido.
Um mouse USB representado pelo arquivo /dev/input/mice, que pode ser
traduzido como: dispositivo (DEV) de entrada (INPUT) do tipo apontador
(MICE outro termo para rato, em ingls). Um mouse PS/2 segue uma
nomenclatura

um

pouco

mais

complicada

representada

pelo

arquivo

Captulo 9 Manipulando Hardware e Dispositivos - 126


/dev/psaux, que pode ser interpretado como dispositivo auxiliar na porta PS.
Para alguns dispositivos como o mouse, podemos realmente ver a interao
com o arquivo que representa o dispositivo. No exemplo abaixo, usamos o comando
cat para mostrar o contedo do arquivo de dispositivo de mouse (mexa o mouse
depois de pressionar ENTER, aps os comandos abaixo):
Para mice USB:
#cat /dev/input/mice
Para mice PS/2:
#cat /dev/psaux
As sadas, ilegveis para humanos, representam os dados que o sistema
operacional GNU/Linux usa para avaliar a movimentao, posicionamento e o apertar
de botes do mouse.

9.3. Dispositivos de armazenamento


Ilustrao 10: Placa me

Outro exemplo importante so os dispositivos de armazenamento principais do


seu computador: os discos rgidos. Existem trs tecnologias principais de discos
rgidos: IDE, SATA e SCSI.

Captulo 9 Manipulando Hardware e Dispositivos - 127


Os discos IDE ainda so maioria no mercado, mas a tecnologia vem dando
lugar ao padro SATA. Tanto o padro IDE como o SATA so considerados
econmicos e mais voltados para computadores pessoais ou estaes de trabalho.
Os discos do padro SCSI usam uma tecnologia de acesso mais sofsticada,
so geralmente mais velozes que similares IDE e SATA, alm de mais robustos.
So usados principalmente em servidores e mquinas de alto desempenho.
Os dispositivos IDE so representados na hierarquia do diretrio /dev com
um padro que comea com hd. O disco rgido conectado como mestre na
controladora principal ser designado por hda. J o escravo, nesta mesma
controladora, ser representado por hdb. Analogamente, temos hdc e hdd,
respectivamente para os discos mestre e escravo conectados na controladora
secundria.
Por outro lado, o padro dos dispositivos SATA e SCSI comeam por sd.
Assim sendo, temos sda para o primeiro dispositivo SATA ou SCSI, sdb para o
segundo, e assim por diante. Uma controladora SCSI de 8 bits pode comportar at
7 dispositivos, alm da prpria controladora. Para as de 16 bits, o nmero mximo de
dispositivos 15.
Podemos verifcar o contedo de um disco usando novamente o comando
cat. Para inspecionar o contedo do primeiro disco rgido IDE de um computador,
podemos usar o comando abaixo:
# cat /dev/hda
A sada gerada no parece ter nenhum sentido. Os dados mostrados so
aqueles dados gravados no seu disco. Contudo, esto em uma forma que
compreensvel apenas pelo sistema operacional.
Uma partio uma diviso lgica do seu disco rgido, criada por questes de
organizao, convenincia, fexibilidade ou segurana. Nos sistemas baseados em
representao por letras, um disco rgido IDE pode ser dividido, particionado de
forma a ser visto com as letras C: e D:. No GNU/Linux, esta mesma diviso levaria
aos arquivos representados em /dev/hda1 e /dev/hda2.
Ou seja, a primeira partio do disco hda representada por /dev/hda1 e a
segunda representada por /dev/hda2. Qualquer partio adicional seguir o
mesmo padro.

Captulo 9 Manipulando Hardware e Dispositivos - 128


Assim, para inspecionar o contedo da primeira partio, pode-se usar o
comando abaixo:
# cat /dev/hda1
Para interromper a sada do comando, que pode ser bastante demorada,
pressione a combinao de teclas Ctrl + c (mantenha a tecla Ctrl pressionada e
pressione a letra c). Caso a tela do seu console continue a mostrar caracteres
estranhos, digite reset.

Ilustrao 11: Estrutura das Parties


O ltimo comando mostra uma sada que seres humanos no conseguem
entender. Elas representam a maneira como os dados foram armazenados em
/dev/hda1. Para que o sistema operacional GNU/Linux apresente estes dados de
uma forma mais legvel, necessrio solicitar ao sistema um processo de traduo.
Este processo chamado de montagem de dispositivos.
Ento para que a partio /dev/hda1 seja usada, necessrio montar esta
partio em algum local e acess-lo. Este local, que um diretrio no sistema de
arquivos, chamado de ponto de montagem. Podemos montar um dispositivo de
armazenamento em qualquer diretrio do sistema de arquivos, contudo, existem
algumas convenes:
Dispositivos removveis devem ser montados em /media (em outras pocas
em /mnt).

Captulo 9 Manipulando Hardware e Dispositivos - 129


Exemplos:
Um cdrom convencional, representado por /dev/cdrom ou /dev/hdc,
deve ser montado em /media/cdrom;

Um leitor de disquetes, representado por /dev/fd0, deve ser montado em


/media/foppy;

A grande maioria dos dispositivos de bloco USB, so reconhecidos como


SCSI, e podem ser localizados em /dev/sda;

Um Hd Sata tambm pode ser encontrado em /dev/sda, isso pode variar,


dependendo da porta SATA utilizada.

No caso dos discos rgidos, uma partio montada diretamente na raiz do


sistema de arquivos ou em um diretrio diretamente abaixo da raiz.

9.4. Devices, UUID e Labels


Quando

usamos

dispositivos

seguindo

padres

como

/dev/hda3

ou

/dev/sda5, estamos especifcando um dispositivo que pode vir a receber outro


nome. Portanto se houver alguma modifcao no disco, o sistema no mais
encontrar a partio especifcada pois seu nome foi modifcado. Uma alternativa
inteligente para evitar esse tipo de problema utilizar o mtodo UUID - Universally
Unique Identifer ou o mtodo de Lables.
Para descobrirmos o UUID de nossa partio podemos utilizar dois
aplicativos: vol_id ou blkid
# vol_id -u /dev/sda2
f541a97e-ef19-4e47-b305-b535a75c932a
A opo -u do comando vol_id, nos imprime a UUID referente a uma
determinada partio.

Captulo 9 Manipulando Hardware e Dispositivos - 130


J o comando blkid lista todos os dados relevantes sobre as parties do seu
disco:
# blkid
/dev/sda1: UUID="f541a97e-ef19-4e47-b305-b535a75c932a" TYPE="ext3"
LABEL="MAIN"
/dev/sda3: UUID="7C444A56444A12F6" TYPE="ntfs" LABEL="WIN"
/dev/sda5: TYPE="swap"
/dev/sda6: UUID="69ff8ed5-c09b-49b6-b21d-328e90243efa" TYPE="ext3"
LABEL="HOME"
/dev/sda7: UUID="2c070d34-5c6e-4504-8d4b-9a8fa910548d" TYPE="ext3"
LABEL="STORAGE"
/dev/sda8: UUID="489B-5A22" TYPE="vfat" LABEL="CENTER"
H tambm um outro mtodo de se descobrir essas informaes. Veja o
comando abaixo:
# ls -l /dev/disk/by-uuid/
lrwxrwxrwx 1
9a8fa910548d
lrwxrwxrwx 1
lrwxrwxrwx 1
328e90243efa
lrwxrwxrwx 1
../../sda3
lrwxrwxrwx 1
b535a75c932a

root root 10 2009-03-06


-> ../../sda7
root root 10 2009-03-06
root root 10 2009-03-06
-> ../../sda6
root root 10 2009-03-06

10:41 2c070d34-5c6e-4504-8d4b10:41 489B-5A22 -> ../../sda8


10:41 69ff8ed5-c09b-49b6-b21d10:41 7C444A56444A12F6 ->

root root 10 2009-03-06 10:41 f541a97e-ef19-4e47-b305-> ../../sda1

Mas a resposta gerada no est to amigvel quando as dos outros comandos.

O uso dos mtodos de LABEL ou UUID em conjunto com o arquivo


/etc/fstab nos proporciona uma soluo inteligente para o dia-a-dia e para
nossa prova.

Captulo 9 Manipulando Hardware e Dispositivos - 131

9.4.1. Usando os dispositivos de armazenamento

Para termos acesso a um arquivo armazenado em mdia removvel,


necessrio conectar a mdia removvel ao seu leitor correspondente e montar o
dispositivo adequado.
O comando usado para montar dispositivos mount. Sem o uso de nenhum
parmetro, ele mostra os dispositivos de armazenamento que esto montados em seu
computador junto com a confgurao usada para mont-los.
# mount

Existem muitos comandos para descobrirmos o que temos conectado em


nossas mquinas, dentre eles: lspci, lsusb e lsscsi.
Para montar um dispositivo de armazenamento em seu ponto de montagem, o
comando mount pode ser usado da seguinte forma:
# mount -t <tipo> -o <opes> <dispositivo> <ponto-de-montagem>
Para que seja possvel acessar o contedo de algum dispositivo precisamos de
quatro itens bsicos:
Saber o nome do dispositivo que ser acessado;
Saber o flesystem que ele est utilizando;
Ter um ponto de montagem;
Ter permisso de montagem.
O mtodo mais garantido de encontrar o nome de um dispositivo realizar
uma busca na sada do comando dmesg. Por exemplo, se desejamos determinar
qual o nome do device do CD-ROM, podemos tentar:
# dmesg |grep ATAPI

As informaes providas pelo comando dmesg so providas pelo arquivo


/var/log/messages. Estudaremos Logs do Sistema no treinamento 451.

Captulo 9 Manipulando Hardware e Dispositivos - 132


Uma vez determinado o nome do dispositivo, podemos realizar outra procura
no dmesg, mas agora com o nome do dispositivo, e determinar qual flesystem
ele est utilizando.
Se no existir um ponto de montagem, basta criar um diretrio vazio no local
apropriado, em geral no /media ou /mnt e executar o comando para mont-lo.
Para um cdrom, a sintaxe do comando seria:
# mount -t iso9660 /dev/cdrom /media/cdrom
Na

maioria

dos

ambientes

grfcos,

este

processo

de

montagem

automatizado. A simples insero ou conexo de mdias removveis faz com que elas
sejam montadas e fquem acessveis pelos navegadores de arquivos grfcos.
Para desmontar um dispositivo, o comando usado umount. Neste caso
possvel usar como parmetro o ponto de montagem ou o prprio dispositivo.

Por exemplo:
# umount /media/cdrom
ou de forma equivalente:
# umount /dev/cdrom

Uma alternativa para a montagem aleatria do sistema, utilizar o pacote


autofs

que

nos

prov

toda

uma

estrutura

confgurvel

para

os

dispositivos. Para usar autofs seu sistema precisa usar Kernel 2.6 ou
superior, e ter a partio /dev com udev.

9.5. Criando Parties no HD


Agora que j sabemos como montar um dispositivo precisamos saber como
criar uma partio manualmente. Para isso, h duas ferramentas importantes, que
fazem a mesma coisa, disponveis em sistemas GNU/Linux, so elas: fdisk e
cfdisk.

Captulo 9 Manipulando Hardware e Dispositivos - 133


Conhecer esses particionadores muito importante, anote mais um:
Gparted.

9.5.1. Particionamento com FDISK


O particionador fdisk o mais completo dos particionadores apesar de sua
interface pouco amigvel.
Fazendo a chamada a esse programa podemos ver a seguinte tela inicial:
The number of cylinders for this disk is set to 14593.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
Command (m for help):
Pressionando a tecla m para obtermos um help, veremos a seguinte sada:
Command (m for help): m
Command action
a
toggle a bootable flag
b
edit bsd disklabel
c
toggle the dos compatibility flag
d
delete a partition
l
list known partition types
m
print this menu
n
add a new partition
o
reate a new empty DOS partition table
p
print the partition table
q
quit without saving changes
s
create a new empty Sun disklabel
t
change a partition's system id
u
change display/entry units
v
verify the partition table
w
write table to disk and exit
Para criarmos uma nova partio devemos, antes, ver se temos espao
disponvel para isso, ou seja, precisamos imprimir a tabela de parties utilizando a
letra p. Se houver espao disponvel para a criao de uma nova partio basta
pressionar a letra n e informar o tipo da partio (primria ou estendida) e seu
tamanho.

Captulo 9 Manipulando Hardware e Dispositivos - 134


9.5.2. Particionamento com CFDISK

A ferramenta cfdisk no to completa quanto o comando fdisk, mas


um pouco mais amigvel, ou como se diz em ingls: "user friendly". Para acess-la
basta executar o comando:
# cfdisk /dev/hda
Uma vez executado esse comando, a tela do cfdisk se abrir como mostrado
na fgura:

Ilustrao 12: cfdisk

A utilizao do cfdisk bastante intuitiva, utilizando as setas para cima e


para baixo voc navega pela listagem das parties e, utilizando as setas para a
esquerda e direita, voc navega pelo menu na parte inferior da tela.
Para criar uma nova partio basta selecionar na listagem de parties a linha
que contm espao livre e entrar na opo New no menu inferior. Se ainda for
possvel criar parties primrias surgir a pergunta pelo tipo da partio, caso
contrrio, surgir a pergunta para especifcar quanto espao deve ser destinado para
essa partio.

Captulo 9 Manipulando Hardware e Dispositivos - 135


Aps realizar todas as alteraes, escolha, no menu inferior, a opo Write
para salv-las. Uma pergunta pedindo que voc confrme as alteraes ir aparecer.
Sua resposta deve ser sim ou no com todas as trs letras! Afnal, voc o root e
sabe o que est fazendo.
Criadas as parties precisamos aplicar um flesystem (sistema de
arquivos) para que ela seja usvel pelo sistema operacional.

9.6. Aplicando um Filesystem


Para que possamos gravar informaes de forma estruturada na partio que
acabamos de criar precisamos aplicar um flesystem a ela.
Aplicar um flesystem, no format-la!
Formatar o processo de preparar a mdia magntica, como discos rgidos e
disquetes, para receber informao. Esse tipo de preparo de baixo nvel e consiste
em desenhar as trilhas e setores na mdia em questo. Aplicar o flesystem
signifca criar uma estrutura lgica acima dessas trilhas e setores que permita
organizar seus arquivos em uma estrutura de diretrios e subdiretrios. Apesar das
diferenas tcnicas, os dois processos assemelham-se por apagar todo o contedo da
partio. Portanto cuidado!
Vamos conhecer alguns tipos de FileSystem:
ext2 Um dos primeiros flesystems do linux;
ext3 Evoluo do ext2, mas com a tcnica de Journal;
reiserfs timo sistema de arquivos para arquivos menores que 4Gb;
xfs Usado geralmente em banco de dados, tem suas vantagens com
objetos muito grandes.
As ferramentas de manuteno do xfs conhecidas como xfs-tools, podem
te dar alguns pontos positivos na prova. O pacote referente no Debian se
chama xfsprogs. Estudaremos mais detalhes no treinamento 451.

Captulo 9 Manipulando Hardware e Dispositivos - 136


Para criarmos um flesystem em uma partio, devemos escolher o seu tipo
e utilizar o comando mkfs com a seguinte sintaxe:
#

mkfs -t tipo_do_FS <dispositivo>

Leitura sugerida: man mkfs

O flesystem escolhido

para ser utilizado no device deve ser suportado

pelo kernel. Para consultar quais flesystem so suportados pelo kernel em uso,
basta consultar o arquivo /proc/flesystems. Caso o flesystem desejado no esteja
na lista, pode-se buscar por ele nos repositrios do GNU/Linux para instal-lo e ativlo como mdulo do Kernel (item que estudaremos mais tarde no Treinamento 451).
Dessa forma, podemos exemplifcar a criao de um flesystem em um
dispositivo utilizando o seguinte comando:
# mkfs -t ext3 /dev/hdb1
Aplicado o flesystem, s falta criar o ponto de montagem e montar!

Filesystems podem ser grandes aliados na prova, principalmente no tpico


migrao de flesystems.
Lembre-se da migrao mais comum de flesystems: de ext2 para ext3.

9.7. Arquivos de Informaes de Filesystems


Na seo mount voc aprendeu a montar um dispositivo de forma completa
e manual, entretanto, h um arquivo que facilita a nossa vida: /etc/fstab. Nele
devem estar as informaes a respeito da montagem de todos os flesystems do
sistema, veja um exemplo a seguir:

Captulo 9 Manipulando Hardware e Dispositivos - 137


<file system> <mount point><type> <options> <dump> <pass>
proc
/proc proc defaults
0
0
/dev/hda1
/boot
ext3 defaults 0
1
/dev/hda2
/
ext3 defaults,errors=remount-ro 0 2
/dev/hda3
none swap
sw
0
2
/dev/hda5 /usrext3defaults
0
2
/dev/hda6
/var
ext3 defaults 0 2
/dev/hda7
/tmp
ext3 defaults 0
2
/dev/hda8
/home
ext3 defaults 0
0
UUID=be35a709-c787-4198-a903-d5fdc80ab2f8 /media/chas ext3
relatime,errors=remount-ro 0 1
As informaes que devem estar nesse arquivo, de acordo com o nmero da
coluna, so:
Localizao do flesystem, em geral o device ou endereo de rede;
Ponto de montagem;
Tipo do flesystem: ext3, reiserfs, xfs, etc;
Opes de montagem: defaults = rw, suid, dev, exec, auto, nouser e async.
Ver man mount;
Aceita os valores 0 ou 1 e informa que, havendo um sistema de backup
(dump) confgurado, dever ser feito o seu backup;
Aceita os valores de 0 a 2 e informa que dever ser realizada a checagem
(pass) de integridade do sistema de arquivos. O valor zero desativa a
funcionalidade, o valor 1 deve ser especifcado apenas para o / e o valor 2
deve ser especifcado para quaisquer outros sistemas de arquivos.
Sendo assim, o fstab armazena as informaes dos dispositivos comumente
acessados, como as parties do sistema, discos removveis e alguns dispositivos
USB. Entretanto no mostra informao alguma a respeito de quais dispositivos
esto montados neste exato momento.

Essa

informao

pode

ser

obtida

no

arquivo

/etc/mtab

/proc/mounts. Ambos os arquivos so uma tabela atualizada em

ou

no

tempo

real e que mostra quais dispositivos esto montados e com quais


parmetros.

Captulo 9 Manipulando Hardware e Dispositivos - 138

9.8. Confguraes de Teclado no Console


Imagine que voc instalou uma mquina na sua casa e o seu teclado um
teclado padro brasileiro -- ABNT2 -- e voc chegou ao cliente e ele s possui
teclados com layout americano. Como resolver o problema?
possvel utilizar o comando loadkeys para alterar o layout de teclado
durante a sesso mas, essa alterao ser temporria. Para trocar defnitivamente o
padro

de

layout

do

teclado

da

mquina,

arquivo

em

/etc/console/boottime.kmap.gz deve ser alterado utilizando o comando kbdconfg.


Alm

da

confgurao

apropriada

de

layout

de

teclado,

pode

ser

interessante confgurar o mouse em modo texto a fm de facilitar o trabalho. O


programa chamado gpm ativa o suporte ao mouse em terminais texto.

9.9. Prtica Dirigida 1


1) Altere o layout de teclado para utilizar o padro americano:
# loadkeys -d us
Tente utilizar a tecla .

2) Restaure o layout de teclado para o padro br-abnt2:


# loadkeys -d br-abnt2

Fique atento, na prova do LPI sero cobrados comandos para administrao


de teclados e mouses.
3) Altere o layout de teclado padro do sistema. Voc tem duas
opes:
# kbd-config
# dpkg-reconfigure console-data

Captulo 9 Manipulando Hardware e Dispositivos - 139

9.10. Para aprofundar o assunto


Parmetros de montagem:
# info mount
O arquivo /etc/fstab:
# info fstab

9.11. Prtica Dirigida 2

1) Determine qual o dispositivo associado ao "hd", tanto para o CDROM, quanto para o Disco Rgido:
# dmesg |grep hd

2) Coloque um CD no drive e torne o contedo acessvel no diretrio


/media/cdrom:
# mount -t iso9660 <dispositivo> /media/cdrom

3) Verifque se o dispositivo foi montado:


#
#
#
#

mount
df -h
cat /etc/mtab
cat /proc/mounts

Iremos estudar no treinamento 451 mais sobre o diretrio /proc. Veja por
exemplo, o modelo do nosso processador: # cat /proc/cpuinfo
4) Entre no diretrio e explore o contedo do CD:
# cd /media/cdrom ; ls

Captulo 9 Manipulando Hardware e Dispositivos - 140


5) Desmonte o CD:
# umount /media/cdrom
Deu erro. Por qu?

6) Saia do diretrio /media/cdrom:


# cd

7) Tente desmont-lo novamente:


# umount /media/cdrom
Agora sim!

8) Monte o CD novamente, entre no diretrio do ponto de montagem e,


de dentro dele, abra uma nova shell:
# mount -t iso9660 <dispositivo> /media/cdrom
# cd /media/cdrom
# bash

9) Saia do diretrio e desmonte o CD:


# cd
# umount /media/cdrom
Funcionou. E agora?
Agora que j sabemos montar dispositivos, vamos aprender a cria parties.

10)
Utilizando o particionador cfdisk crie uma nova partio de
swap e uma nova partio linux:
# cfdisk /dev/hda
As novas parties devem ter os seguintes tamanhos:
/dev/hda10 - partio tipo swap com 256MB;
/dev/hda11 - nova partio com 1000;

Captulo 9 Manipulando Hardware e Dispositivos - 141


Espao vazio - no particione.
# cfdisk /dev/hda
Aps criar as novas parties ser necessrio reiniciar a mquina para que a
nova tabela de parties seja ativada. No nosso caso, a verso do Kernel superior
ou igual a 2.6.26, portanto estamos utilizando udev. Apesar disso , mesmo sendo
udev, temos que reiniciar.
Com a tabela de parties atualizadas podemos aplicar os flesystems e
paginar a nova partio de swap.
11)

Prepare a partio de swap:

# mkswap <dispositivo>

12)

Ative essa nova partio de swap:

# swapon <dispositivo>
O flesystem que desejamos aplicar a uma das novas parties etx3. Para
que possamos realizar essa tarefa devemos determinar se o nosso kernel suporta este
flesystem, e se o software necessrio est instalado.

13)
Determine se o ext3 pode ser utilizado, ou seja, se
suportado pelo kernel:
# ls /proc/filesystems

14)
Instalados os softwares, podemos aplicar o ext3 nova
partio:
# mkfs -t ext3 <dispositivo>
Uma vez que o flesystem foi aplicado partio, vamos torn-lo acessvel
por meio do diretrio /backup.

15)

Crie o ponto de montagem /backup:

# mkdir /backup

Captulo 9 Manipulando Hardware e Dispositivos - 142


16)

Teste a montagem do novo flesystem:

# mount -t ext3 <dispositivo> /backup


Verifque se a partio foi montada e se o swap est em uso:
#
#
#
#
#

mount
df -h
cat /etc/mtab
cat /proc/mounts
cat /proc/swaps

Verifque todas as parties criadas na mquina:


# cat /proc/partitions
17)

Crie um arquivo dentro do diretrio /backup:

# touch /backup/README
# echo "Partio de Backup" >> /backup/README

18)
Coloque as entradas no fstab para que o novo swap e a
partio de backup sejam montadas na hora do boot:
<dispositivo>
<dispositivo>

none
swap sw
0 0
/backup ext3 defaults 0 0

O arquivo /etc/fstab criado automaticamente quando o GNU/Linux


instalado, gerando a lista de parties padres a serem carregadas.

9.12. Exerccios Tericos


1) Qual o nome do arquivo de dispositivo que a oitava partio do HD
conectado como slave na segunda controladora IDE? Fornea o
caminho completo para ele.
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 9 Manipulando Hardware e Dispositivos - 143

2) Qual a diferena entre os arquivos /etc/fstab e /etc/mtab?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

3) Qual comando pode ser utilizado para determinar se o mouse est


conectado ao /dev/psaux? Por qu?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

4) Quando o comando mount pode ser executado com sucesso especifcando


apenas o nome do dispositivo ou apenas o ponto de montagem?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

5) Qual deve ser a linha no fstab para que no seja possvel executar um
programa ou script a partir da partio /home?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
6) Quais parmetros dos comandos fdisk e cfdiskpodem ser utilizados
para imprimir na tela a tabela de parties sem entrar no programa
propriamente dito? D os comandos completos como resposta.
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

9.13. Laboratrio
1) Crie um arquivo imagem do CD-ROM;
2) Monte este arquivo imagem;
3) Acesse este sistema de arquivos que voc montou, e veja o seu contedo.

Captulo 9 Manipulando Hardware e Dispositivos - 144

Captulo 10
Instalao Linux em Desktop

10.1. Objetivos

Neste captulo iremos aprender a fazer uma instalao bsica em desktop de


um sistema Debian GNU/Linux.

Captulo 10 Instalao Linux em Desktop - 145

10.2. Introduo terica


Por incrvel que parea, a instalao em um desktop d tanto trabalho
quanto um servidor, pois ser nesse ambiente que voc ir trabalhar com mais
ferramentas. Para instalarmos um GNU/Linux no desktop precisamos saber para
qual fnalidade o sistema ser utilizado. De acordo com a fnalidade deve-se instalar
mais ferramentas grfcas, de multimdia ou de escritrio.

10.3. Perfl da instalao:


Parties - O esquema de particionamento que adotaremos para nosso
desktop necessrio por uma questo de infra-estrutura do laboratrio
didtico. Este esquema dever ser alterado e personalizado conforme cada
caso;
Pacotes - Os pacotes de um desktop so muito relativos, mas como iremos
usar um perfl de desktop domstico, partiremos do princpio de que
teremos um usurio avanado de informtica, com acesso banda larga e
que necessita de pacotes multi-mdia;
Usurios - Por segurana, voc ir defnir um usurio padro, cujo login
ser aluno e a senha 123456;

Ps-Instalao - Para um desktop, o procedimento de ps-instalao a


atualizao do sistema.

Captulo 10 Instalao Linux em Desktop - 146


10.3.1. Telas de Instalao

Insira o CD no drive e reinicie seu computador. Logo, aparecer a tela de


boot. No tecle enter! Siga as orientaes seguintes, passo a passo.
1) Abaixo mostramos a primeira tela que aparecer aps a
inicializao da mquina. No utilizaremos a opo padro de
instalao, mas uma diferente:

Ilustrao 13: Tela inicial

Captulo 10 Instalao Linux em Desktop - 147


2) Para sabermos quais opes existem, selecione help; Acima voc
pode navegar pelas telas de ajuda:

Ilustrao 14: Help


3) Selecione a opo Graphical Install, instalao grfca:

Ilustrao 15: Instalao Grfica

Captulo 10 Instalao Linux em Desktop - 148


4) Logo aps o carregamento da interface grfca, a primeira tela de
instalao sobre o Locale, ou seja, a escolha do idioma padro:

Ilustrao 16: Locale


5) Selecione seu Pas:

Ilustrao 17: Pais

Captulo 10 Instalao Linux em Desktop - 149


6) O prximo passo escolher o layout do teclado:
Preste ateno neste ponto, pois muitos de ns ainda usamos teclados com
layout US international

Ilustrao 18: Layout Teclado


7) Deixe que o sistema detecte o dispositivo de mdia:

Ilustrao 19: Carregando cdrom

Captulo 10 Instalao Linux em Desktop - 150


8) Aps carregar os componentes e detectar o dispositivo de mdia, o
sistema, automaticamente, carrega os componentes necessrios
para a instalao:

Ilustrao 20: Carregando mdulos da instalao


9) Aps o carregamento dos mdulos necessrios, o sistema tentar
confgurar a rede atravs do protocolo dhcp:

Ilustrao 21: Configurao automtica de rede

Captulo 10 Instalao Linux em Desktop - 151

10)

O prximo passo agora inserir o nome da mquina:

Ilustrao 22: Hostname


11)
Logo aps, entre com o domnio:

Ilustrao 23: Domain Name

Captulo 10 Instalao Linux em Desktop - 152


12)
Selecione seu Estado, para que o sistema busque o
melhor servidor NTP para sincronizar a data e hora do sistema:

Ilustrao 24: Timezone - NTP


13)
Na prxima etapa da nossa instalao, temos que particionar
nosso disco. Fique atento na nossa tabela de partio:
Nmero

Tipo

Ponto de
Montagem

Tamanho

Sistema de
Arquivos

Primria

/boot

256MB

ext3

Primria

3GB

Ext3

Primria

/home

10GB

Ext3

Lgica

/usr

10GB

Ext3

Lgica

/var

10GB

Ext3

Lgica

/tmp

1024MB

Ext3

Lgica

/var/log

3GB

Ext3

Lgica

swap

1024MB

swap

10

Lgica

512MB

No Utilizar

11

Lgica

512MB

No Utilizar

12

Lgica

512MB

No Utilizar

13

Lgica

512MB

No Utilizar

14

Lgica

512MB

No Utilizar

Captulo 10 Instalao Linux em Desktop - 153


14)

Selecione particionamento manual:

Ilustrao 25: Particionamento Manual


15)
Para zerar nossa tabela de particionamento, basta selecionar o
disco em questo e con frmar a remoo da tabela de
particionamento antiga:

Ilustrao 26: Tabela de particionamento

Captulo 10 Instalao Linux em Desktop - 154

Ilustrao 27: Nova Partio


Agora com a nossa tabela de parties limpa, sempre que quisermos adicionar
uma partio devemos selecionar o ESPAO LIVRE e seguir os seguintes passos:

Captulo 10 Instalao Linux em Desktop - 155


16)

Indicar o espao a ser usado:

Ilustrao 28: Tamanho


17)
Escolhendo primria ou lgica para a nova partio:

Ilustrao 29: Primria ou Lgica

Captulo 10 Instalao Linux em Desktop - 156


18)

Selecione agora se a partio nova fcar no inicio:

Ilustrao 30: Inicio ou fim


19)
Aps seguir todas essas etapas, a
confguraes da nova parties ir aparecer:

Ilustrao 31: Configurando a nova partio

tela

abaixo

sobre

Captulo 10 Instalao Linux em Desktop - 157


20)
Dentro dessas confguraes selecione o sistema de arquivos a
ser usado:

Ilustrao 32: Sistema de arquivos


21)
Logo aps selecione o ponto de montagem:

Ilustrao 33: Ponto de montagem

Captulo 10 Instalao Linux em Desktop - 158


22)

Confgure agora as opes do /ETC/FSTAB:

Ilustrao 34: Opes do FSTAB


23)
Ao fnal da confgurao de uma partio voc ver listadas as
parties que j foram criadas:

Ilustrao 35: Particionador

Captulo 10 Instalao Linux em Desktop - 159


24)
Nossa prxima etapa fnalizar o particionamento e pedir para
que o sistema grave essas mudanas no disco:

Ilustrao 36: Gravar mudanas no disco


25)
Logo aps o particionamento da mquina, o sistema base ser
automaticamente instalado:

Ilustrao 37: Instalao do Sistema Base

Captulo 10 Instalao Linux em Desktop - 160


26)
Aps a instalao do sistema base hora de confgurar as
credenciais do sistema, insira a senhas para o administrador root:

Ilustrao 38: Senha do admin


27)
A prxima etapa criar um usurio comum para evitar que o
usurio root seja usado de forma indevida:

Ilustrao 39: Nome completo

Captulo 10 Instalao Linux em Desktop - 161

Ilustrao 40: Nome de usurio

28)

Determine a nova senha para esse usurio:

Ilustrao 41: Senha do usurio comum

Captulo 10 Instalao Linux em Desktop - 162


29)
Na prxima etapa da instalao voc tem a possibilidade de
catalogar mais fontes de mdia para obter uma instalao com mais
programas:

Ilustrao 42: Novas medias


30)
Chegou a hora de confgurar os espelhos de rede. Eles so
servidores externos de onde o instalador pode baixar pacotes para
completar a instalao:

Ilustrao 43: Configurar gerenciador de pacotes

Captulo 10 Instalao Linux em Desktop - 163


31)
Aps as confguraes de pacotes o instalador ir atualizar a
ferramenta aptitude para fazer a instalao desejada:

Ilustrao 44: Configurando gerenciador


32)
O instalador ir perguntar sobre o Popularity-contest, que
uma votao pblica que determina quais sero os pacotes do
primeiro CD nas prximas verses do Debian:

Ilustrao 45: Concurso de Popularidade

Captulo 10 Instalao Linux em Desktop - 164


33)
Enfm o programa tasksel ir lhe oferecer os tipos de
instalao disponveis:

Ilustrao 46: Tasksel


34)
Aps a seleo, o sistema ir baixar os pacotes necessrios:

Ilustrao 47: Selecionando pacotes

Captulo 10 Instalao Linux em Desktop - 165


35)

Em seguida, comear a instalao em massa dos softwares:

Ilustrao 48: Instalando pacotes


36)
Quando a instalao acabar, o GRUB deve ser instalado na
MBR Master Boot Record do disco:

Ilustrao 49: Instalao do Grub

Captulo 10 Instalao Linux em Desktop - 166


37)
Parabns por sua nova instalao!!! Agora s tirar o CD do
driver e reiniciar a mquina:

Ilustrao 50: Retirando a mdia


38)
Bem vindo ao seu novo sistema:

Ilustrao 51: novo sistema

Captulo 10 Instalao Linux em Desktop - 167

Captulo 11
Instalando, removendo e
atualizando programas

11.1. Objetivos
Instalar pacotes;
Procurar por pacotes;
Atualizar lista de pacotes disponveis;
Remover pacotes.

Captulo 11 Instalando, removendo e atualizando programas - 168

11.2. O que um pacote?


Os diversos programas para GNU/Linux so distribudos em forma de pacotes
especfcos para cada distribuio. Neste captulo aprenderemos um pouco sobre
esses pacotes e como instal-los e remov-los do sistema.
Pacotes so conjuntos de binrios pr-compilados, bibliotecas, arquivos

de

controle e arquivos de confgurao, que so instalados facilmente no sistema


operacional. Eles podem, eventualmente, conter sistemas de listagem/checagem de
dependncias e scripts para confguraes ps instalao.
Os

pacotes

nos

sistemas

baseados

em

Debian tm

uma extenso

caracterstica: .deb.

J nas distribuies baseadas em RedHat, temos pacotes com a extenso


caracterstica: .rpm.

11.3. Mas o que um gerenciador de pacotes?


Um gerenciador de pacotes um sistema para a instalao, atualizao e
remoo de programas em uma distribuio GNU/Linux. Parece muito simples falar
em instalao de pacotes, mas temos que lembrar que o gerenciador de pacotes
quem faz toda a parte suja para ns.
Um pacote nem sempre depende apenas dele mesmo, ou seja, quando
instalamos um programa, ele pode depender de bibliotecas de udio, vdeo, imagens,
funes e vrios outros programas que precisam estar instalados antes do pacote.
esse elo entre programas que chamamos de dependncias.
O trabalho feito pelo gerenciador de pacotes interpretar a necessidade de
cada um dos pacotes, para que eles possam ser instalados e/ou removidos. Para os
sistemas baseados em Debian, a ferramenta a ser utilizada o aptitude.
J para sistemas baseados em RedHat temos uma ferramenta anloga
chamada yum.

Captulo 11 Instalando, removendo e atualizando programas - 169


Nosso treinamento est baseado na ferramenta aptitude:
# aptitude
Vamos primeiramente utilizar essa ferramenta em seu modo texto, e logo aps
em seu modo visual.
Para descobrirmos o nome correto do pacote que desejamos instalar, podemos
fazer uma busca pelo comando abaixo:
# aptitude search <argumento>

Para buscar uma lista completa de pacotes disponveis para Debian acesse:
http://packages.debian.org

No

RedHat

podemos

aplicar

uma

consulta

executando

yum

search<argumento>

Voltando a falar de dependncias e pacotes, importante entender que os


pacotes no so apenas binrios mgicos, que depois de um comando de instalao
esto prontinhos para funcionar.
A instalao de um pacote depende de vrios pr-requisitos que o prprio
pacote capaz de resolver e/ou indicar ao sistema como resolver. Por exemplo,
queremos instalar o pacote pidgin, um aplicativo de mensagens instantneas. Aps
comunicarmos que queremos instalar esse pacote, o nosso gerenciador de pacotes
verifcar suas dependncias, recomendaes, confitos e/ou apenas sugestes de
tarefas, que devem ser satisfeitas.
A visualizao de todas essas informaes pode ser feita executando o
comando:
# aptitude show <pacote>

Algumas informaes importantes tambm podem ser obtidas com o


comando apt-cache.

Captulo 11 Instalando, removendo e atualizando programas - 170


As dependncias so pacotes que esto diretamente ligados ao pacote que ir
ser instalado, ou seja, so pr-requisitos essenciais. Se um pacote depende de outro,
ambos devem ser instalados pois o programa em questo s ir funcionar se todas
suas dependncias estiverem supridas.
As recomendaes so pacotes que no so essenciais, porm adicionam/tiram
alguma funo que o programa poderia ter. Por exemplo, quando instalamos o pacote
mozilla-browser recomendado tambm a instalao do pacote mozilla-psm, que
d suporte s paginas seguras, mas este ltimo no obrigatrio e, portanto, se no
for instalado no ser um impedimento na instalao do mozilla-browser.
As sugestes so pacotes relacionados com o complemento de funcionalidade.
A instalao desse pacote pode fornecer alguns complementos em relao ao pacote
que est sendo instalado.
Os confitos so pacotes que no podem ser instalados simultaneamente no
sistema.

11.4. Gerenciamento de pacotes


Em distribuies baseadas em Debian, a maneira mais simples de gerenciar os
pacotes de software usando o comando aptitude. Este um front-end para o
sistema APT.
A primeira etapa usar o comando:
# aptitude update
A sada do comando ser algo similar a listagem abaixo. A localizao dos
repositrios poder ser diferente, conforme sua confgurao:
Atingido http://ftp.debian.org lenny Release.gpg
Atingido http://ftp.debian.org lenny/main Translation-pt_BR
Ign http://ftp.debian.org lenny/contrib Translation-pt_BR
Ign http://ftp.debian.org lenny/non-free Translation-pt_BR
Atingido http://ftp.debian.org lenny Release
Ign http://ftp.debian.org lenny/main Packages/DiffIndex
Ign http://ftp.debian.org lenny/contrib Packages/DiffIndex

Captulo 11 Instalando, removendo e atualizando programas - 171


Ign http://ftp.debian.org lenny/non-free Packages/DiffIndex
Atingido http://ftp.debian.org lenny/main Packages
Atingido http://ftp.debian.org lenny/contrib Packages
Atingido http://ftp.debian.org lenny/non-free Packages
Lendo listas de pacotes... Pronto
O comando acima sincroniza a lista de pacotes disponveis para instalao nos
servidores remotos, com uma lista local. A lista local visa acelerar as consultas e
pesquisas. Existem mais de 14.000 pacotes de software disponveis.

11.5. Espelhos e o arquivo /etc/apt/sources.list


Este arquivo contm os locais onde o APT encontrar os pacotes, a verso da
distribuio que ser verifcada (stable, testing, unstable) e a seo que ser copiada
(main, non-free, contrib, non-US). Essas defnies so usadas em um GNU/Linux
Debian.
Segue um exemplo de arquivo de confgurao:
# vi /etc/apt/sources.list
#
# deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 CD Binary1 20090413-00:10]/ lenny main
#deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 CD Binary-1
20090413-00:10]/ lenny main
#deb http://security.debian.org/ lenny/updates main
#deb-src http://security.debian.org/ lenny/updates main
#deb http://volatile.debian.org/debian-volatile lenny/volatile main
#deb-src http://volatile.debian.org/debian-volatile lenny/volatile
main
deb http://ftp.debian.org/debian lenny main contrib non-free
Aps fazer as confguraes ser necessrio fazer um update.
# aptitude update

Captulo 11 Instalando, removendo e atualizando programas - 172

11.6. Instalao, Remoo e Atualizao


Para a instalao de pacotes deve-se usar o comando aptitude com a
instruo install e, em seguida, fornecer o nome do pacote desejado. Por exemplo,
para instalar o programa de navegao em linha de comando lynx, digitamos:
# aptitude install lynx

Para remover um pacote instalado deve-se usar o comando aptitude com a


instruo remove e, em seguida, fornecer o nome do pacote. Por exemplo, para
remover o programa de navegao em linha de comando lynx, digitamos:
# aptitude remove lynx

11.7. Consultas de Pacotes


Imagine que precisamos de um programa que trabalhe com arquivos JPG. O
aptitude pode ser usado para consultar a base de pacotes disponveis relacionados
ao texto jpg.
# aptitude search jpg
Dessa forma, o comando ir retornar todos os programas empacotados que
tiverem alguma relao com arquivos jpg.

11.8. Atualizao via Internet


O sistema pode ser atualizado de tempos em tempos ou por questes de
segurana. Para instalar todas as atualizaes disponveis, usa-se o aptitude com a
instruo safe-upgrade. Dependendo da velocidade de conexo, este processo
pode levar bastante tempo.
# aptitude safe-upgrade

Captulo 11 Instalando, removendo e atualizando programas - 173

11.9. Gerenciamento de pacotes em distros baseadas em rpm.


Nas distros baseadas em RedHat, o gerenciamento de pacotes feito pelo
programa rpm. A RedHat e Fedora disponibilizam tambm a ferramenta
yum, similar em funcionalidade ao aptitude. J o SUSE apresenta a
ferramenta zypper, muito embora nesta distro recomenda-se a utilizao
da ferramenta Yast para gerenciamento de pacotes e confgurao do
sistema. Quando falamos de Mandriva a ferramenta da vez o urpmi.
Obtendo informaes:
Usando o yum para mostrar informaes de pacotes
# yum info pacote
Voc pode usar o yum tambm para buscar pacotes nos repositrios. Todos
os pacotes que contm o padro no nome sero mostrados:
# yum search padro

11.9.1. Instalando pacotes:


Para instalar um pacote diretamente do repositrio:
# yum install pacote

11.9.2. Removendo pacotes:


Para remover um pacote do sistema:
# yum remove pacote

Alem do yum, outro bom gerenciador de meta-pacotes, no RedHat o


urpm.
Estes so os comandos bsicos e principais do yum. Para saber mais,
consulte as man pages desse aplicativo.

Captulo 11 Instalando, removendo e atualizando programas - 174


Na Distribuio Suse, encontramos o gerenciador, chamado YAST.
No yast podemos encontrar muito mais que um simples gerenciador.

Dica LPI: As questes da LPI sobre dpkg, aptitude e rpm tm peso


elevado. Conhea bem estes comandos fazendo o curso 451 da Formao da
4Linux.

11.10. Exerccio Terico


1) O sistema APT responsvel por qual funo no sistema?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

2) Qual a funo do comando aptitude update?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

3) Qual a funo do arquivo /etc/apt/sources.list?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

4) Onde esto os arquivos temporrios que o aptitude armazena para


instalar?
_____________________________________________________________________________
_____________________________________________________________________________
5) Em caso de falta de espao em disco por instalar muitos pacotes, o que
voc faria?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 11 Instalando, removendo e atualizando programas - 175


6) Quais as vantagens e desvantagens de ser ter um pacote instalado pelo
cdigo fonte?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

7) Supondo que seu mirror default esteja inoperante, como voc


contornaria a situao?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 11 Instalando, removendo e atualizando programas - 176

Captulo 12
Servidor X

12.1. Objetivos
Confgurar a interface grfca para os usurios comuns;
Conhecer o arquivo de confgurao do ambiente grfco;
Instalar e confgurar os Display Managers;
Instalar e confgurar os Window Managers;
Abrir novas instncias de janelas de mquinas em rede.

Captulo 12 Servidor X - 177

12.2. Introduo terica


O X Window System, conhecido tambm como servidor X, apenas X ou
X11, um protocolo de rede e vdeo que prov a capacidade de se trabalhar com o
sistema de janelas e que permite as interaes atravs de teclado e mouse. Esse
sistema fornece os meios para o desenvolvimento de interfaces grfcas para
usurios ou GUI - Graphical User Interfaces em sistemas Unix e Unix-like,
como o GNU/Linux.
O

sistema

fornece

apenas

as

ferramentas

que

possibilitam

desenvolvimento de ambientes GUI, como desenhar na tela, mover janelas e


interagir com o mouse e teclado; ele no dita quais sero as decoraes das janelas,
quem faz isso so os chamados WM - Window Managers ou gerenciadores de
janelas. Dessa forma, a cara da parte grfca varia drasticamente de um WM
para outro.
Um conceito bsico do servidor X que ele realmente um servidor como o
prprio nome j indica. Sendo assim, possvel abrir vrias instncias de interface
grfca em uma mesma mquina ou at mesmo em uma mquina remota, graas ao
seu protocolo de rede.

12.3. Confgurando o suporte Interface Grfca


A interface grfca mais utilizada em ambientes UNIX conhecida como X
Window System ou simplesmente X. Essa interface provida pelo pacote Xorg,
que pode ser baixado diretamente no site ofcial http://www.xorg.org ou utilizando
o "aptitude" dos pacotes necessrios.
H basicamente quatro formas de confgurar o servidor X, sendo elas:
Automaticamente:
# dexconfig
Ou manualmente:
# X -configure
No Debian Lenny 5.0, o X tem uma confgurao um pouco menor dado o
fato que todas as confguraes do debconf so aproveitadas para
confgurao do servidor X;

Captulo 12 Servidor X - 178


O arquivo de confgurao do servidor X dividido em sees e cada uma diz
respeito confgurao de um determinado pedao do sistema como um todo. A
estrutura bsica de um desses arquivos a seguinte:

ServerLayout

InputDevice (mouse)

Screen

InputDevice (keyboard)

Files

Modules

InputDevice (mouse)

InputDevice (keyboard)

Screen

Monitor

Displays

Device (video card)

Monitor

Device (video card)

Ou seja, o arquivo composto de vrias sees que defnem qual ser o


comportamento dos dispositivos como teclado, mouse, monitor e placa de vdeo e
algumas outras, que defnem recursos que o servido X ir utilizar, como os mdulos
que sero carregados e os arquivos de fontes, por exemplo.
Alm das sees separadas que defnem o comportamento de algum
componente extra, h outras como ServerLayout e Screen que defnem como o
conjunto de recursos ir operar.

12.4. Varivel de Ambiente DISPLAY


A varivel de ambiente DISPLAY a que defne em que lugar a sada
grfca deve ser mostrada. Com essa varivel defnida possvel at informar ao
sistema que a sada grfca se dar em outro computador na rede. O formato de
defnio dessa varivel o seguinte:
<ip_destino>:<display>.<screen>

Captulo 12 Servidor X - 179


Sendo o <ip_destino> o endereo IP de uma mquina na rede, podendo ser
deixado em branco caso a mquina de destino seja a prpria mquina local. O campo
display refere-se a uma instncia de parte grfca dentro de uma screen. O
campo screen refere-se ao monitor e placa de vdeo na qual a parte grfca ser
exibida.

No se esquea que a varivel que defne o ambiente do usurio a


DISPLAY.

12.5. Window Managers


Um X Window Manager um software que controla basicamente o
posicionamento e a aparncia das janelas dentro do sistema X Window.
Ao contrrio dos sistemas da Apple e Microsoft, que possuem apenas uma
nica aparncia bsica, e que de controle delas, nos sistemas GNU/Linux voc
livre para escolher qual o gerenciador de janelas que ir utilizar.
H um nmero muito grande de gerenciadores de janelas que voc pode
instalar simultaneamente em uma mquina, possibilitando que cada usurio escolha
aquele que mais lhe agrade. Cada gerenciador difere do outro em muitos aspectos,
como nvel de customizao da aparncia e funcionalidades, confgurao dos menus,
meios grfcos para iniciar um software, capacidade de utilizar mltiplos desktops
e, principalmente, na quantidade de recursos que ele exige da mquina.
Algumas das opes de gerenciadores so:
AfterSteps

Blakbox

FluxBox

Evilwn

Enlightenment

FVWM

IceWM

Ion

Kwin(KDE)

Metacity (Gnome)

WMN

SawFish

twm

xfce

OpenClasses(Sun)

Captulo 12 Servidor X - 180

12.6. Display Managers


Os Display Managers so programas que agrupam algumas tarefas como
realizar a validao do usurio local ou remoto (via protocolo XDMCP), alm de
permitir que o usurio selecione, de forma fcil, qual Window Manager ele deseja
utilizar.
Alguns exemplos de Display Managers so o KDM (padro do KDE),
GDM (padro do GNOME) e XDM (padro do servidor X).

12.7. Protocolo XDMCP


O XDMCP - X Display Manager Control Protocol um protocolo de rede
que utiliza a porta 177/udp e utilizado para servir interface grfca para clientes
na rede.
Se um Display Manager estiver com o protocolo XDMCP ativado, basta um
servidor X enviar um pacote de query mquina que est servindo o DM, que
esta responder mquina solicitante enviando a sada grfca do DM para que
algum usurio possa realizar a validao.
Esta uma forma de utilizar a parte grfca de outro computador, em uma
mquina com menos recursos de hardware, pois o processamento de interface
grfca estar ocorrendo na mquina servidora.

12.8. Xnest
Um Xnest uma instncia do servidor X que pode ser utilizada para
receber alguma sada grfca que tenha sido redirecionada a ela utilizando a varivel
DISPLAY. Pode ser utilizada tambm para receber um DM solicitado via
XDMCP.

Captulo 12 Servidor X - 181

12.9. Prtica Dirigida

12.9.1. Instalao e Confgurao do Servidor X

At a verso Sarge do Debian, o servidor X11 utilizado era o XFree86, a


partir da verso Etch, o servidor padro passou a ser o Xorg. Agora estamos
utilizando a verso Lenny.

1) Para instalar o servidor X na verso Sarge do Debian devemos


utilizar o pacote x-window-system e, para o Etch ou Lenny,
devemos utilizar o xserver-xorg:
# aptitude install xserver-xorg
Aps a instalao, vamos testar se a confgurao padro serve para a nossa
mquina.
2) Inicie o servidor X:
# X

Qual o comando que me trs informaes sobre as cores e opes do


Servidor X? R: xwininfo

3) Gere a confgurao de vdeo detectada pelo dexconf:


# dexconf

4) Caso esteja funcionando, timo. De qualquer forma, vamos executar


o procedimento de confgurao:
# X -configure
Esse comando tentar identifcar qual o hardware da sua mquina e gerar
um arquivo de confgurao para ela, gravando esse arquivo no diretrio do
usurio root.

Captulo 12 Servidor X - 182


5) Teste esse novo arquivo de confgurao:
# X -config /root/xorg.conf.new
Para confgurar o Xorg, via dpkg, digite:
# dpkg-reconfigure xserver-xorg

6) Novamente, se funcionar, timo. Caso contrrio, teremos que


realizar os ajustes manualmente, e para isso precisaremos de
algumas informaes como:
placa de vdeo - para determinar qual a nossa placa de vdeo, execute:
# lspci | grep -i VGA
frequncias do monitor - para descobrir quais so as frequncias
suportadas pelo seu monitor voc deve recorrer ao manual do proprietrio
ou buscar pelas especifcaes tcnicas em mecanismos de busca disponveis
na Internet.

7) Vamos visualizar o arquivo de confgurao:


# cat /root/xorg.conf

Um arquivo de confgurao tpico:


Section "InputDevice" (Entrada de Mouse)
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "Device" (Seo que define o nosso hardware de vdeo)
Identifier "Video Card"
Driver "vmware"
EndSection

Captulo 12 Servidor X - 183


Section "Monitor" (Opes de Monitor)
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-51
VertRefresh43-60
EndSection
Section "Screen" (Layout de Screene bits de cores a serem utilizadas)
Identifier "Default Screen"
Device "Video Card"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1024x768" "800x600" "640x480"
EndSubSection

SubSection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice"Generic Keyboard"
InputDevice"Configured Mouse"
EndSection

Leitura sugerida para mais informaes a respeito desse arquivo e suas


opes de confgurao e parmetros: man xorg.conf
Realizadas as alteraes, vamos fazer um novo teste para ver se o servidor
consegue subir.

Captulo 12 Servidor X - 184


8) Teste as confguraes:
# X -config /root/xorg.conf.new
Se as confguraes no funcionarem teremos que ler a mensagem de erro e
tentar identifcar o problema.

9) Funcionando, basta mover os arquivos para o diretrio correto:


# mv /root/xorg.con.new /etc/X11/xorg.conf

10)
Tente os seguintes comandos e diga qual a diferena entre
eles:
# X
# startx

12.9.2. Instalando um Window Manager

No GNU/Linux podemos ter vrios Clientes Grfcos. Depois que o servidor


grfco j est instalado e confgurado, s vamos ter o trabalho de instalar os clientes
grfcos.
1) Instalar o gerenciador de janelas WindowMaker:
# aptitude install wmaker

2) Agora vamos iniciar o nosso cliente grfco que acabamos de


instalar:
# startx

3) Para o prximo teste, vamos instalar outro cliente grfco que


muito utilizado, o KDE:
# aptitude install kdebase

Captulo 12 Servidor X - 185

4) Depois vamos iniciar nosso outro gerenciador de janelas:


# startx
Note que foi utilizado o mesmo comando para iniciar tanto WindowMaker
quanto o KDE: o startx. Isso acontece porque ao instalarmos o KDE
ele se defniu como sendo o WM padro do sistema, mas isso pode ser
alterado.

5) Podemos editar o arquivo /root/.xinitrc para escolhermos qual


cliente grfco ser iniciado quando o usurio root utilizar o
comando startx. Essa confgurao vlida apenas para o usurio
root, pois alteramos o xinitrc da home do root:
# vi /root/.xinitrc
WindowMaker utilize: wmaker;
KDE utilize: startkde.

6) Para que alterao seja vlida para qualquer usurio, devemos


editar o arquivo de confgurao global:
# vi /etc/X11/xinit/xinitrc

7) Lembrando que uma confgurao local, ou seja, o arquivo pessoal


do usurio, prevalece sobre o global, caso o usurio especifque um.
Vamos deixar instalados os pacotes do GNOME e do XFCE:
# aptitude install gnome xfce4

12.9.3. Display Managers

Vimos no tpico anterior como iniciar o nosso cliente grfco utilizando o


comando startx, mas isso nem sempre muito prtico. Para facilitar esse processo,
podemos utilizar os chamados Display Managers.

Captulo 12 Servidor X - 186

1) O gerenciador padro do Xorg o xdm, que j est instalado.


Vamos inici-lo:
# /etc/init.d/xdm start

2) Vamos instalar o kdm, que possui mais recursos:


# aptitude install kdm
Sero feitas algumas perguntas sobre qual ser o seu Display Manager
Default, o kdm ou xdm? Escolha sempre o kdm, pois dessa maneira toda vez
que o seu sistema iniciar, ele vai ativar automaticamente o kdm no terminal 7, por
padro.

3) Para iniciar o kdm igual. Lembrando que o xdm deve estar


parado!
# /etc/init.d/xdm stop
# /etc/init.d/kdm start

4) Se quiser mudar o seu Display Manager padro, basta editar o


seguinte arquivo:
# vi /etc/X11/default-display-manager
/usr/bin/kdm

5) Por fm, vamos


GNOME:

conhecer

outro

DM,

GDM,

# aptitude install gdm

No RedHat o Window Manager Padro o GNOME.

No Xorg o arquivo de confgurao: /etc/X11/xorg.conf.

padro

do

Captulo 12 Servidor X - 187


12.9.4. Servidor X Remoto

O Xterminal um recurso dos servidores grfcos X presentes em todos os


computadores com GNU/Linux. Este recurso possibilita que uma mquina com menor
desempenho possa executar uma aplicao grfca a partir de um servidor, onde toda
a carga de processamento depositada nele, e a nossa estao atua somente como
um terminal.
O Xterminal utiliza o protocolo XDMCP.
Utilizaremos o Display Manager gdm para fazer esse servio. Vamos editar o
arquivo onde ativaremos o XDMCP para o gdm:
# vi /etc/gdm/gdm.conf

1) Localize o bloco [Xdmcp], utilizado para confgurao desse protocolo.


Ao encontrar esse bloco, ative o XDMCP alterando de Enable=false para
Enable=True:
[xdmcp]
Enable=true
Pronto! Basta reiniciar o gdm que ele j estar escutando na porta
177/tcp.

2) Reinicie o gdm:
# /etc/init.d/gdm stop
# /etc/init.d/gdm start

3) Verifque que a port 177/ucp est aberta:


# netstat -nltup |grep 177
# fuser 177/ucp

Captulo 12 Servidor X - 188


4) Em sua mquina, faa uma requisio XDMCP mquina de um
dos colegas, mandando utilizar a screen 1:
# X -query <IP> :1

12.10. Exerccios
1) Qual a varivel que defne para onde vo as sadas grfcas? Como voc
defne que a sada grfca ir para a mquina com endereo IP
192.168.200.200, na screen 1 e display 0?
_____________________________________________________________________________
_____________________________________________________________________________

2) Qual o arquivo que contm o Display Manager que est sendo


utilizado? Como proceder para alter-lo?
_____________________________________________________________________________
_____________________________________________________________________________

3) Qual o caminho do executvel do KDE? E do Gnome?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

4) Qual comando utilizado para confgurar o daemon do XDM?


_____________________________________________________________________________
_____________________________________________________________________________

5) Qual o arquivo de confgurao do GDM? E do servidor Xorg?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

6) Quais so os Windows Managers que voc conhece?


____________________________________________________________________________

Captulo 12 Servidor X - 189

Captulo 13
Administrao de Usurios

13.1. Objetivos
Aprender a gerenciar usurios e grupos;
Conhecer o sistema de permisses;
Conhecer o funcionamento do umask;
Entender as permisses especiais.

Captulo 13 Administrao de Usurios - 190

13.2. Introduo terica


O GNU/Linux um sistema multi-usurio e portanto, possui um esquema de
permisses que prov a privacidade e/ou compartilhamento de arquivos entre
usurios. Na verdade, esse esquema de permisses parte fundamental do sistema.
Neste captulo, iremos aprender sobre ele e tambm como criar e remover contas de
usurios.
Quando comeamos a trabalhar com usurios no sistema GNU/Linux podemos
dividi-los em trs categorias:
Usurio Administrador (Super Usurio): usurio conhecido como root
no sistema. esse usurio que controla todo o sistema e no possui
nenhuma restrio. Mas devemos ter uma certa cautela ao us-lo pois com
qualquer deslize podemos danifcar todo o sistema;
Usurios de Sistema: so aqueles que no precisam logar no sistema,
so utilizados para controlar servios. Esses usurios no devem possuir
senhas nem Shell vlida. Um exemplo desses usurios o www-data que
usado exclusivamente para controlar o servidor web Apache;
Usurios comuns: so utilizados para trabalhar no sistema GNU/Linux. So
contas criadas para aqueles que utilizam ou operam o sistema. sempre
aconselhvel que cada usurio comum ou administrador tenha sua prpria
conta e s utilize a conta root para administrao do sistema.
Tanto para o usurio root, quanto para o usurio comum, sempre
aconselhvel ter uma boa poltica de criao de senhas, para que um possvel invasor
no se aproveite de um usurio com uma senha fraca. At mesmo

um usurio

comum, precisa tomar cuidado com a sua senha, pois esse seria o primeiro passo
para o invasor escalar privilgios no sistema, e virar o usurio administrador root.
Evite usar senhas com datas de aniversrio, casamento e outras datas que so fceis
de serem descobertas. Evite usar palavras listadas em um dicionrio. Uma boa dica
mesclar a senhas com letras maisculas e minsculas, nmeros e caracteres
especiais.
Alguns sistemas GNU/Linux podem ter usurios que chamamos de
administradores. Esses usurios no vm confgurados por padro, eles so
usurios normais mas que possuem alguns privilgios a mais em algumas
aplicaes.

Captulo 13 Administrao de Usurios - 191


Para que os usurios comuns e o root tenham acesso ao sistema e consigam
trabalhar normalmente, so necessrios 5 elementos.
Nome;
Senha;
Diretrio Home;
Shell;
Grupo Primrio;
Devemos ter em mente que um usurio sempre deve estar vinculado a um
grupo, pois isso afeta diretamente a questo de permisses dentro do sistema.

13.3. Permisses
Cada arquivo no sistema possui trs permisses bsicas:
r (4) read para leitura;
w (2) write para escrita;
x (1) execute - para execuo;

A cada permisso atribudo um valor, mostrado entre parnteses, que ser


utilizado para a defnio de permisses.
Alm disso, cada arquivo contm trs conjuntos de permisses, sendo elas:
permisso do dono (u) - user do arquivo;
do grupo (g) - group ao qual o arquivo pertence;
outros (o) - others aqueles que no pertencem ao grupo e no so os
donos do arquivo;

Sendo assim, considere a seguinte sada do comando ls -l, para um arquivo:


-rw-r--r-- 1 root root 0 Jan 15 09:52 arquivo

E para um diretrio:
drwxr-xr-x 2 root root 4096 Jan 15 09:52 diretrio

Captulo 13 Administrao de Usurios - 192


Vamos entender o que essas linhas signifcam. O primeiro caractere pode ser:
- indicando a listagem de um arquivo comum;
d indicando um diretrio;
l indicando um link simblico;
p indicando um pipe nomeado;
s indicando um socket;
c indicando um dispositivo de caractere;
b indicando um dispositivo de bloco.

Os prximos trs conjuntos de trs caracteres indicam as permisses do


usurio dono do arquivo, permisses de grupo e permisses para outros usurios.
Nesses trs conjuntos, se o caractere encontrado for um - (hfen) signifca que a
permisso est ausente, ou seja, no h a respectiva permisso. Se alguma ou todas
as letras (r, w e x) forem encontradas, indicar as permisses que o arquivo tem
permisses defnidas.
Seguindo o conjunto de permisses, h um nmero que indica a quantidade de
links simblicos que o arquivo ou diretrio tem. Aps o nmero de links, vem a
indicao do usurio dono do arquivo, seguido do grupo ao qual ele, o arquivo ou
diretrio, pertence.
A atribuio de permisses realizada utilizando-se o comando chmod. H
duas sintaxes possveis. A primeira delas a literal. Vejamos o exemplo abaixo:
# chmod u+rw arquivo

O parmetro u+rw que defne o esquema de permisses. A primeira letra


indica para qual(is) usurio(s) as permisses esto sendo alteradas. Usamos a letra
u para indicar o prprio dono, g para indicar o grupo, o para outros e ainda a
letra a para indicar todos.
O caractere seguinte poder ser um sinal + para garantir a permisso ou
- para retirar a permisso. Por fm, detalhamos a permisso: A letra r signifca
leitura, w escrita e x execuo, como era de se esperar.

Captulo 13 Administrao de Usurios - 193


Assim, o exemplo anterior garante as permisses de leitura e escrita para o
usurio dono do arquivo. Vejamos mais um exemplo:
# chmod g-w arquivo

Este comando retira a permisso de escrita para os usurios que fazem parte
do mesmo grupo ao qual o arquivo pertence. As demais permisses no so
alteradas.
A segunda sintaxe a forma numrica. Neste caso, o parmetro que defne as
permisses composto de trs nmeros de 0 a 7, que correspondem s permisses
para o usurio dono, para o grupo e para outros. Cada nmero formado pela soma
das permisses atribudas, sendo que execuo vale 1, escrita vale 2 e leitura 4.
A tabela abaixo resume esse esquema:
r (4)

w (2)

x (1)

Total

Permisses

---

--x

-w-

-wx

r--

r-x

rw-

rwx

Vejamos um exemplo:
# chmod 640 arquivo
Neste caso, estamos atribuindo permisso de leitura e escrita 6 (r=4 +
w=2) ao usurio dono, leitura 4 (r=4) ao grupo e 0 (sem permisses) a outros
usurios.
importante observar que quando usamos a forma literal, alteramos apenas o
parmetro especifcado, no alterando as demais permisses. J na forma numrica,
alteramos todas as permisses simultaneamente.

Captulo 13 Administrao de Usurios - 194


13.3.1. Exemplos de permisses

Comando

para

atribuir

permisso

total

um

arquivo

chamado

dontdothis.never:
# chmod 777 dontdothis.never
ou
# chmod a+rwx dontdothis.never
ou
# chmod u+rwx,g+rwx,o+rwx dontdothis.never

No se deve fazer isso em nenhum tipo de arquivo, isso apenas um


exemplo!!!

Comando para retirar a permisso de escrita de todos os usurios do arquivo


noexecute.never:
# chmod a-w noexecute.never
Comando para alterar a permisso padro do arquivo Dori.jad para que
todos os usurios apenas possam l-lo.
# chmod 444 Dori.jad

13.4. Registro de usurios no sistema


H quatro arquivos bsicos que dizem respeito administrao de usurios,
sendo eles:
passwd contm as informaes dos usurios;
shadow contm as informaes das senhas dos usurios;
group contm as informaes dos grupos e usurios que fazem parte
deles;
gshadow contm informaes a respeito das senhas de grupo.

Captulo 13 Administrao de Usurios - 195

Leitura Sugerida, para administrao de usurios:


# passwd man 5 passwd
# shadow man 5 shadow

Leitura Sugerida, para administrao dos grupos:


# group man 5 group
# gshadow man 5 gshadow

13.4.1. Arquivo /etc/passwd

Cada usurio cadastrado no sistema identifcado por uma linha no arquivo


/etc/passwd. Os campos so separados pelo caractere : (dois pontos). O formato
do arquivo /etc/passwd o seguinte:
usurio:x:1000:1000:User da Silva,8111-1234:/home/usurio:/bin/bash
Onde:
Campo 1 Login do usurio;
Campo 2 Referncia da senha do usurio, pois ela fca armazenada em
outro arquivo.
Campo 3 O UID - User Identify o nmero de identifcao do usurio.
Essa identifcao dividida conforme a categoria dos usurios:
UID 0 o nmero do usurio administrador root.
UID de 1 a 999 So os nmeros para usurios de sistema.
UID de 1000 a 65535 So os nmeros para usurios normais.

Essas defnies de usurios de sistema e usurios normais podem variar


nas distribuies, somente o UID 0 padro em todas as distribuies.

Captulo 13 Administrao de Usurios - 196


Campo 4 O GID - Group Identity o nmero de identifcao do grupo
primrio do usurio. Essa identifcao tambm dividida em 3 categorias
como o UID:
GID 0 o nmero do grupo administrador root.
GID de 1 a 999 So os nmeros para grupos de sistema.
GID de 1000 a 65535 So os nmeros para grupos normais.
Campo 5 Comentrios e informaes adicionais sobre o usurio;
Campo 6 Diretrio pessoal;
Campo 7 Shell do usurio;

Usar o comando getent, a maneira certa de se acessar arquivos de


controle no GNU/Linux.

13.4.2. Arquivo /etc/shadow

As senhas dos usurios

fcam armazenadas no arquivo /etc/shadow

conhecido como senhas sombras (shadow passwords). As senhas fcam nele pois
um arquivo mais seguro que o arquivo /etc/passwd. No arquivo /etc/passwd
qualquer usurio poderia visualiz-las e copi-las para outro diretrio ou mquina
remota. J o arquivo /etc/shadow tem suas permisses muito mais restritas, no
permitindo que ele seja copiado e nem visualizado diretamente por um usurio
comum. Isso uma grande ajuda na questo de segurana, pois se as senhas
estivessem no prprio /etc/passwd seria muito fcil para um invasor com usurio
comum, copiar esse arquivo para outro servidor e aplicar uma ferramenta de brute
force para quebrar as senhas.
O suporte a senhas shadow costuma vir ativado por padro em todas as
distribuies. Em algumas delas, se forem instaladas no modo expert, possvel
optar por ativar ou no esse suporte. sempre recomendado deixar as senhas
shadow ativadas.
Caso encontremos algum servidor GNU/Linux sem as senhas shadow
confguradas, podemos utilizar o comando pwconv para ativ-las e pwunconv
para desativ-las.

Captulo 13 Administrao de Usurios - 197


Em relao s senhas shadow e os comandos pwconv e pwunconv,
muitas perguntas podem ser feitas na prova. Fique atento!

O arquivo shadow no trata somente a questo de segurana de senhas. Ele


tambm trata de polticas de contas do usurio, como, por exemplo, por quantos dias
a conta de um usurio vlida? Quando vai expirar? Quando deve ser a troca de
senha? E alguns outros parmetros que podem ser alterados manualmente ou usando
o comando chage.

13.5. Levantamento de informaes dos usurios


13.5.1. Chage

O comando chage confgura algumas caractersticas da senha, como: data


de validade, data de aviso de troca, dentre outras. O Nome do usurio no exemplo
caio, fque atento, porque esse comando muito til em seu dia-a-dia:
# chage -E 03/08/2009 caio
# chage -l caio
Last password change
: Feb 27,
Password expires
: never
Password inactive
: never
Account expires
: Mar 08,
Minimum number of days between password change
Maximum number of days between password change
Number of days of warning before password expires

2009

2009*
: 0
: 99999
: 7

Captulo 13 Administrao de Usurios - 198


13.5.2. Comando id

O comando id mostra as informaes de UID, GID e grupos secundrios


dos usurios. Para ver essas informaes do usurio corrente, fazemos da seguinte
forma:
# id
Para ver as informaes de qualquer outro usurio usamos a seguinte sintaxe:
# id [usurio]

Fique atento, comando como change, id, so cobrados na prova do LPI,


so comando que pertencem a nossa shell: /bin/bash, onde estudaremos
com detalhes no prximo captulo.

13.5.3. Comando fnger

O comando fnger mais amigvel e nos traz maiores informaes como:


Login, Nome, Diretrio home, Shell e os horrios das ltimas autenticaes que
esse usurio realizou.
A sintaxe do comando fnger a seguinte:
# finger [usurio]

13.5.4. Comando users

O comando users mostra de maneira bem simples os usurios que esto


logados no sistema. A sintaxe do comando users a seguinte:
# users

Captulo 13 Administrao de Usurios - 199


13.5.5. Comando who
O comando who mostra quais usurios esto logados na mquina. Traz
informaes adicionais sobre qual terminal est sendo utilizado, o momento e a partir
de qual mquina foi feito o login de cada usurio.
# who

13.6. Comando w
O comando w similar ao who, mas traz tambm informaes sobre o que
cada usurio est fazendo, tanto local quanto remotamente. Esse comando muito
til para ver se no existem conexes indevidas em nosso sistema.
A sintaxe do comando w para visualizar todos os usurios logados a
seguinte:
# w
Para visualizar se somente um usurio est logado a sintaxe a seguinte:
# w [usurio]

13.7. Criando Usurios


13.7.1. Comando adduser

O comando adduser um script customizado que trabalha com o


comando useradd. O adduser bastante utilizado por administradores que
precisam cadastrar usurios no formato tradicional, ou seja, com nome, senha e
grupo defnido.
No caso do RedHat, o comando adduser possui uma sintaxe mais
complexa, equivalente ao useradd do Debian.
Este comando pode ser usado de vrias formas, mas a sintaxe mais utilizada
a seguinte:
# adduser [usurio]

Captulo 13 Administrao de Usurios - 200


Dessa maneira ele adicionar o usurio, j pedindo para defnir sua senha e as
informaes adicionais. Automaticamente, ele j cria um grupo com o mesmo nome
do usurio e copia todos os arquivos que esto no diretrio /etc/skel para o
diretrio home do usurio.
Podemos tambm adicionar usurios atravs do comando useradd, que um
pouco mais complexo e precisa de alguns parmetros a mais:
# useradd teste
Para complementar a seo criando usurios muito interessante olhar o
arquivo /etc/adduser.conf.

13.8. Adicionar um usurio a outro grupo


Um usurio sempre deve pertencer a um grupo primrio, mas pode ser
adicionado a grupos secundrios, normalmente usado dentro de uma estrutura
empresarial onde os usurios precisam pertencer a vrios grupos para terem acessos
a arquivos de outros setores.

13.8.1. Comando gpasswd

O comando gpasswd pode ser utilizado para defnir a senha de um grupo, e


com alguns parmetros pode adicionar ou remover um usurio de um grupo
secundrio. Utilizando a opo -a podemos adicionar um usurio a um grupo
secundrio e a opo -d para remover um usurio de um grupo secundrio.
Para adicionar um usurio em um grupo secundrio a sintaxe a seguinte:
# gpasswd -a [usurio] [grupo]
Para remover um usurio de um grupo secundrio a sintaxe a seguinte:
# gpasswd -d [usurio] [grupo]
Para verifcar todos os grupos aos quais o usurio pertence:
# groups [usurio]

Captulo 13 Administrao de Usurios - 201


Para modifcar grupos do sistema, utilizamos o comando:
# groupmod -n [novo-nome] [nome-grupo]
Cuidado para no executar utilizando o grupo do usurio root, por
exemplo.

13.9. Modifcando usurios


A modifcao de usurios limitada ao usurio root. Iremos aprender aqui
como mudamos alguns parmetros que so necessrios no dia-a-dia, como troca de
senhas, grupos e controle de login.

13.9.1. Comando passwd

Depois do usurio ter sido criado podemos usar alguns comandos para
modifcar sua conta. O primeiro ser o passwd que possibilita adicionar ou
modifcar a senha de um usurio. As sintaxes que podem ser utilizadas nesse
comando esto descritas abaixo.
Para modifcar a senha do usurio corrente:
# passwd

Caso esteja modifcando a senha de um usurio normal, primeiro ser


solicitada a senha corrente para permitir a defnio de uma nova senha.
Isso no acontece com o usurio root, que pode defnir a nova senha
diretamente, tanto para ele quanto para os outros usurios.

Para modifcar a senha de outro usurio:


# passwd [usurio]
13.9.2. Comando usermod

Captulo 13 Administrao de Usurios - 202


Outro comando que pode ser utilizado para modifcar parmetros do usurio
o usermod. Ele possibilita alterar qualquer tipo de informao relativa ao usurio.
Um dos parmetros que pode ser modifcado o grupo primrio, usando-se a opo
-g. Com a opo -G, podemos alterar os grupos secundrios.
A sintaxe para modifcar o grupo primrio de um usurio a seguinte:
# usermod -g [grupo] [usurio]
As alteraes podem ser visualizadas no arquivo /etc/passwd no campo
GID, ou diretamente no arquivo /etc/group.
Para mudarmos o campo de descries dentro do arquivo /etc/passwd,
precisamos usar o comando usermod com a opo -c.
# usermod -c teste kiko
# getent passwd | grep kiko
kiko:x:1000:1000:teste:/home/kiko:/bin/bash

Saber as diferenas entre as opes l e L do usermod pode ser


relevante na prova. Ento aqui vai: A fag l modifca o login de um
determinado usurio enquanto a fag L bloqueia a conta acrescentando
um ! no inicio da linha do usurio no arquivo /etc/passwd.

13.10. Alterao do Dono e Grupo


Como j vimos, cada arquivo e diretrio possui um dono e um grupo. Para
alter-los podemos utilizar os comandos chown e chgrp como nos exemplos a
seguir.
# chown euvaldo planta

Captulo 13 Administrao de Usurios - 203


Esse comando ir alterar o dono atual do arquivo planta para o usurio
euvaldo. Para alterar o grupo basta o seguinte comando:
# chgrp cacho planta
Esse comando ir alterar o grupo atual do arquivo planta para o grupo
cacho.

13.11. Removendo usurios


A remoo de usurios pode ser feita de duas formas. A primeira mantendo
o diretrio home do usurio e a segunda, removendo. aconselhvel que se
remova o diretrio do usurio para que um prximo usurio adicionado ao sistema
no acabe como dono daquele diretrio e tendo acesso a informaes s quais ele
no deveria ter. Isso pode acontecer porque a delegao de UID's sequencial.
Mas para remover o usurio com o seu diretrio, tambm aconselhvel, antes, fazer
um backup de tudo o que aquele usurio possua ou transferir todos os arquivos para
o responsvel.
A sintaxe para remover o usurio e manter o seu diretrio home a seguinte:
# userdel [usurio]
Para remover o usurio e o seu diretrio home, necessrio utilizar a opo
-r da seguinte forma:
# userdel -r [usurio]

13.12. Umask
O umask altera o valor da mscara de criao de arquivos e diretrios. Essa
mscara utilizada para defnir o permissionamento padro de um arquivo ou
diretrio quando ele criado. Para calcular a umask para um diretrio, pegue a
permisso total que um diretrio pode chegar, 777. Subtraia 022 de 777 (esse
o valor padro de umask do sistema).

Captulo 13 Administrao de Usurios - 204


Para calcular a umask para um arquivo, pegue a permisso total que um
objeto pode chegar, que 777. Subtraia 111 de 777 (valores de execuo do
arquivo) e de 022 (valor padro de umask do sistema).
O valor padro da umask fca armazenada no arquivo /etc/profle.
Lembre-se da regra de clculo de umask. Pensar da forma que o sistema
funciona pode te confundir na prova:
Para diretrios: Sempre substituir de 777;
Para arquivos: Verifcar o umask. Se o nmero for impar, subtrair
somente onde temos execuo, em nmeros pares mantemos os nmeros.

13.13. Permisses Especiais


H um conjunto especial de permisses, conhecido tambm como bits
especiais, sendo eles:
Nome

Signifcado

Valor

SUID

Set User Id Bit

SGID

Set Group ID Bit

Sticky Bit

Sticky Bit

O SUID bit atribudo a um arquivo executvel quando desejamos que um


usurio qualquer execute o comando com as permisses do usurio dono do
comando. Se esse comando pertencer ao usurio root um usurio qualquer ir
execut-lo com as permisses de root. Por esse motivo o SUID constitui uma
grande ameaa de segurana e sua utilizao deve ser bastante cautelosa.
O SGID bit geralmente atribuvel a diretrios. Quando um arquivo
criado dentro de um diretrio com SGID bit ativado, o contedo gravado dentro do
diretrio ir herdar o grupo do diretrio e no o grupo do usurio que criou tal
contedo. Este bit especial muito til quando utilizamos diretrios para grupos
de trabalhos e em servidores de arquivos.

Captulo 13 Administrao de Usurios - 205


O Sitcky bit era bastante utilizado para realizar otimizaes de acesso a
contedos, entretanto, a partir da srie 2.6 do kernel do Linux essa tarefa realizada
diretamente pelo kernel. A nica utilidade desse bit, atualmente, fazer diretrios
de utilizao comum a todos os usurios, como no /tmp.
Quando esse bit est ativo em um diretrio, todo contedo criado dentro
dele pertencer ao criador do contedo e por mais que ele atribua a esse contedo
permisses totais para todos os usurios, o nico que poder excluir o arquivo ou
diretrio ser o prprio dono ou o root.
Para atribuirmos esses bits especiais, procedemos da mesma forma que nas
permisses comuns, somando os valores e utilizando o comando chmod, mas agora
utilizando quatro nmeros, o primeiro nmero sendo o bit especial, seguido dos
trs da permisso padro. Por exemplo:
# chmod 4750 programa
Dessa forma os usurios pertencentes ao grupo do arquivo podero executar o
comando programa como se fossem donas dele. Podemos usar como exemplo o
comando passwd.
# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 31640 2008-06-12 20:39 /usr/bin/passwd
Os nossos usurios comuns s podem mudar sua senha pois o comando
passwd est com o bit SUID ativado. Os bits especiais so representados por um
s ou S na visualizao das permisses. Veja o exemplo abaixo:
# chmod 4000 a
# chmod 2000 b
# chmod 1000 c

# ls -l

---S------ 1 caio caio 0 2008-07-21 13:50 a


------S--- 1 caio caio 0 2008-07-21 13:50 b
---------T 1 caio caio 0 2008-07-21 13:50 c

Captulo 13 Administrao de Usurios - 206


O bit especial para o campo de permisses do dono o SUID representado
por s ou S. Para o grupo SGUI tambm representado por s ou S. J o
campo de permisses de outros usurios, o Sticky BIT, representado por t ou
T.
Veja que quando o arquivo ou diretrio no tem permisso de execuo, o
bit especial representado por uma letra S (Upper Case), e quando possuem
uma permisso de execuo, o bit especial apresentado como s (Lower Case). O
mesmo acontece com o Sticky bit, mas com a letra t e T.
# chmod 4100 a
# chmod 2010 b
# chmod 1001 c

# ls -l

total 0
---s------ 1 caio caio 0 2008-07-21 13:50 a
------s--- 1 caio caio 0 2008-07-21 13:50 b
---------t 1 caio caio 0 2008-07-21 13:50 c

Todas as permisses especias que no contiverem execuo so maisculas.


S e T.

13.14. Prtica Dirigida

1) Crie um diretrio chamado temp e dentro dele um arquivo


chamado arq1:
$ mkdir temp
$ touch temp/arq1

Captulo 13 Administrao de Usurios - 207


2) Determine quais so as permisses com as quais eles foram criados:
$ ls -ld temp
$ ls -l temp

3) Altere as permisses do diretrio temp para que o dono no possa


escrever dentro dele:
$ chmod u-w temp

4) Experimente criar mais um arquivo dentro deste diretrio:


$ touch temp/arq2
No funcionou? Claro! Devemos alterar a permisso para que o usurio
possa escrever neste diretrio.

5) Mas desta vez, utilizaremos a forma numrica:


$ chmod 300 temp

6) Vamos acessar o diretrio e ver se o arquivo foi realmente criado:


$ cd temp
$ ls -l

7) Temos que garantir a permisso de leitura tambm. Agora deve


funcionar:
# cd ..
# chmod 700 temp
# ls -l

8) Adicione um novo usurio no sistema:


# adduser aluno

Captulo 13 Administrao de Usurios - 208


9) Visualize o novo usurio no arquivo /etc/passwd:
# cat /etc/passwd

10)
Logue com o novo usurio em outro terminal e veja quais
usurios esto logados no sistema:
$ users

11)
Logado com o novo usurio, visualize informaes completas
sobre ele:
$ finger aluno

12)

Adicione o usurio em um grupo secundrio e visualize isso:

# gpasswd -a aluno audio


# id aluno

13)

Remova o usurio do grupo secundrio e visualize:

# gpasswd -d aluno audio


# id aluno

14)

Logado como root, modifque a senha do usurio:

# passwd aluno

15)
Agora logado como usurio normal, modifque sua prpria
senha:
$ passwd

16)

Modifque o grupo primrio do usurio, logado como root:

# usermod -g users aluno

Captulo 13 Administrao de Usurios - 209


17)

Visualize qual usurio est logado no momento:

18)

Remova o usurio junto com o seu diretrio:

# w

# userdel -r aluno

19)

Vamos agora testar a permisso especial SUID:

$ /sbin/ifconfig eth0:1 192.168.242.21


No funcionou???

20)
Vamos agora aplicar o SUID, logo em seguida, testar como
usurio comum:
# chmod 4755 /sbin/ifconfig
$ /sbin/ifconfig eth0:1 192.168.242.21
Este apenas um exemplo para fns de demonstrao do SUID bit, favor
no aplicar em servidores!

13.15. Exerccios Tericos


1) Qual a importncia de se utilizar senhas sombra (shadow passwords)?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

2) Por que importante um usurio estar vinculado a um grupo primrio?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

3) Quais so as divises de tipos de usurios no sistema GNU/Linux?


_____________________________________________________________________________
_____________________________________________________________________________

Captulo 13 Administrao de Usurios - 210


4) Por que no aconselhvel remover um usurio e manter o seu diretrio
home?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

5) Qual o comando correto para listar o contedo do arquivo /etc/passwd?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

6) Considere os seguintes comandos:


# gpasswd -a teste1 cdrom
# usermod -G cdrom teste1
Explique a diferena entre eles.
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
7) Considere um arquivo com as seguintes permisses e os seguintes
comandos:
-rwxr-xr-x 1 usuario grupo 0 Dec 31 23:59 arquivo
# chmod 644 arquivo
# chmod u+rw,g+r,o+r arquivo
Qual o nmero da permisso original do arquivo? Explique qual efeito
ambos os comandos teriam sobre o arquivo e mostre quais seriam as suas
permisses resultantes.
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 13 Administrao de Usurios - 211


8) Se a umask for igual a 012, qual ser o valor dos arquivos e diretrios
novos que venham a ser criados ?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

13.16. Laboratrio
1) Adicione um usurio chamado aula1 e visualize o contedo dos arquivos
do seu diretrio home;
2) Crie um novo arquivo no diretrio /etc/skel;
3) Agora adicione outro usurio chamado aula2, visualize o contedo dos
arquivos do seu diretrio home e compare com os arquivos do diretrio
home do usurio aula1;
4) Edite o /etc/passwd, modifque o UID do usurio aula1 para 0 e
veja o que acontece;
5) Remova o usurio aula2 do grupo aula2;
6) Remova o usurio aula2 sem remover o seu diretrio home e visualize
as permisses do seu diretrio home;
7) Agora adicione um usurio chamado aula3 e visualize as permisses de
todos os diretrios home.

Captulo 13 Administrao de Usurios - 212

Captulo 14
Administrao da Shell

14.1. Objetivos
Entender o funcionamento do terminal;
Conhecer alguns tipos de shell;
Personalizar o shell;
Localizar os arquivos de confguraes relacionados ao shell.

Captulo 14 Administrao da Shell - 213

14.2. Introduo terica


O principal meio de interao do usurio com um sistema GNU/Linux o
terminal de comandos, tambm conhecido como shell. Neste captulo iremos
aprender como personaliz-la e sua utilizao bsica.

14.3. O que uma shell?


A shell uma camada de acesso ao sistema bsico, o sistema operacional
do computador, que pode ser acessada tanto pelo modo grfco, quanto em modo
texto. A shell pode ser personalizada para atender as necessidade do usurio.
Pode-se defnir um idioma padro, personalizar e automatizar processos. Nos tpicos
a seguir, veremos como fazer essa personalizao.
A fgura abaixo ilustra como podemos posicionar a shell dentro do sistema.

Ilustrao 52: Estrutura da shell

14.4. Variveis em Shell


As variveis da shell tm o mesmo objetivo das variveis que conhecemos na
rea da computao, ou seja, so reas de memria que podem conter dados que
sero utilizados por diversos programas.
Quando estamos falando de variveis em shell no precisamos nos
preocupar em declar-las nem mesmo defnir o seu tipo. Em shell, uma varivel

Captulo 14 Administrao da Shell - 214


defnida simplesmente atribuindo-se um valor a ela. Vejamos um exemplo: Se
defnirmos que ANSWER=42, estaremos armazenando o valor 42 em um
determinado endereo de memria que podemos acessar utilizando o nome que
atribumos a ele, ou seja, ANSWER.
# ANSWER=42
Para acessarmos o endereo de memria atribudo varivel ANSWER, em
shell, devemos utilizar o operador $ (cifro) antes do nome da varivel, ou seja,
se desejarmos mostrar na tela o valor da varivel ANSWER devemos imprimir o
contedo armazenado no endereo de memria $ANSWER:
# echo $ANSWER
Esse tipo de varivel que acabamos de defnir conhecida como escalar e pode
receber valores numricos ou caracteres.

14.4.1. Variveis Locais e de Ambiente (globais)

Quando falamos em variveis em shell temos que ter em mente a diviso


entre variveis locais e de ambiente (ou globais). A diferena entre elas que uma
varivel local tem visibilidade restrita, apenas ao escopo ao qual ela foi defnida, e
uma varivel de ambiente tem visibilidade no s no escopo em que foi defnida mas
tambm em ambientes derivados.
A nica diferena tcnica entre variveis locais e de ambiente a forma de
sua defnio. Para defnir uma varivel local, basta atribuir um valor a um nome de
varivel. Para defnir uma varivel de ambiente o procedimento adiciona o comando
exportantes da defnio. Abaixo mostramos exemplos de defnio de varivel
local e de ambiente:
# LOCAL="sem export na frente"
# export GLOBAL="com export na frente"
Uma vez defnidas as variveis, podemos visualiz-las utilizando os comandos
set e env para variveis locais e de ambiente, respectivamente. Com isso, se
tivssemos defnido as variveis LOCAL e GLOBAL e executssemos o comando
set, veramos as defnies de ambas. Mas, se executssemos o comando env,

Captulo 14 Administrao da Shell - 215


veramos apenas a defnio da varivel GLOBAL.
Variveis de ambiente (as globais) so muito importantes pois defnem

comportamento da shell e de muitos outros programas. Por exemplo, a forma com


que o prompt apresentado ao usurio defno pela varivel global PS1.

Saber o contedo de algumas variveis muito importante, anote o dessa


aqui: HISTSIZE=500. Esta varivel armazena quantos comandos
fcaram salvos no comando: history

14.5. Alias
Um recurso do shell que facilita muito a vida do usurio a defnio de
aliases. Imagine que um usurio gosta de utilizar o comando ls sempre com os
parmetros - -color -h -l''. O que seria dele se toda vez que fosse execut-lo tivesse
que escrever o comando com todos os parmetros?!
Para resolver esse tipo de situao, basta criar um alias para o comando ls
que defna que cada vez que o usurio digitar um simples ls ele ser sucedido pelas
opes defnidas, e o que ser executado ser o comando ls - -color -h -l. Para
criarmos esse alias, basta usarmos o comando abaixo:
# alias ls='ls --color -h -l'
Dessa forma fca fcil criar um comando novo. Por exemplo, um que liste
apenas diretrios:
# alias lsd='ls --color -h -l |grep ^d'
Tanto os aliases quanto as defnies de variveis podem ser efetuadas em
linha de comando ou, para maior comodidade, utilizando arquivos apropriados para
isso.
14.5.1. Arquivos de Login

Quando uma bash executada como uma shell de login interativo ela l
e executa o arquivo /etc/profle, se ele existir. Esse arquivo deve conter as
confguraes gerais que se aplicam a todos os usurios do sistema.

Captulo 14 Administrao da Shell - 216


Aps ler o /etc/profle, ela ir procurar por um dos arquivo:
~/.bash_profle
~/.bash_login
~/.profle
Esses arquivos esto na home do usurio, executando o primeiro que estiver
disponvel e tiver permisso de leitura. Alm desses, executa tambm o arquivo
~/.bashrc. Perceba que esses so arquivos ocultos, pois esto precedidos por um (.)
Quando a bash estiver sendo terminada (usurio fazendo logout), o arquivo
~/.bash_logout ser lido e executado, caso ele exista. Atravs deste arquivo,
podemos automatizar procedimentos como por exemplo limpar a tela ao se
deslogar do sistema.
Quando uma bash chamada mas no uma shell de login, o arquivo
chamado ser apenas o ~/.bashrc.
Sendo assim, para criar aliases ou defnir variveis ou funes que sejam
comuns a todos os usurios, devemos inclu-las no arquivo /etc/profle. Caso o
usurio no queira utilizar o padro do sistema, alter-lo ou adicionar confguraes
pessoais, ele deve utilizar os arquivos ~/.bash_profle, ~/.bash_login, ~/.profle
ou ~/.bashrc para isso.

14.5.2. Arquivos /etc/issue e /etc/motd

Os arquivos /etc/issue e /etc/motd so usados para mostrar mensagens


para os usurios e no interferem na parte operacional do sistema.
A diferena entre o os arquivos /etc/issue e /etc/motd, que o primeiro
exibe uma mensagem para o usurio antes que o mesmo faa login no sistema,
enquanto o segundo exibe uma mensagem aps o usurio se logar no sistema. H
ainda o arquivo /etc/issue.net, que contm a mensagem exibida em logins
remotos.

Captulo 14 Administrao da Shell - 217


Veja um exemplo de /etc/motd do Debian:
# cat /etc/motd
Linux gandalf 2.6.18-4-486 #1 Wed May 9 22:23:40 UTC 2007 i686
The programs included with the Debian GNU/Linux system are free
software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Veja um exemplo de /etc/issue no Debian:


# cat /etc/issue
Debian GNU/Linux 4.0 \n \l
Os caracteres \n e \l no arquivo /etc/issue representam respectivamente
o nome do servidor e do terminal em que o usurio est logado.

14.6. Tipos de shell


Para saber quais shells esto disponveis, basta visualizar o contedo do
arquivo /etc/shells. A maioria das distribuies GNU/Linux traz a bash como
shell padro. Esta uma evoluo do Bourne Shell - /bin/sh, que tem bem
poucos recursos.
Para alterar o shell atual, utilizamos o comando chsh.
Exemplo:
# chsh -s /bin/sh
No prximo login, o shell do usurio ser o sh.
Conhecer um pouco das shells sh e bash pode ser de muita
importncia para prova.

Captulo 14 Administrao da Shell - 218

14.7. Prtica Dirigida


1) Crie uma varivel local LINUX com o valor 4linux em linha de
comando:
# LINUX=4linux

2) Verifque o valor desta varivel:


# echo $LINUX

3) Verifque se a varivel aparece na relao do comando set e do


comando env:
# set | more
# env | more

4) Defna uma varivel global (de ambiente) chamada GNULINUX e


que receba o valor rocks:
# export GNULINUX=rocks

5) Verifque o valor desta varivel:


# echo $GNULINUX

6) Agora, verifque se a varivel aparece na relao dos comandos


set e env:
# set | more
# env | more

7) Execute uma nova bash no mesmo terminal que voc defniu as


variveis:
# bash

Captulo 14 Administrao da Shell - 219


8) Verifque quais variveis esto defnidas:
# set | more
# env | more

9) Saia da bash flha:


# exit

10)

Liste e depois altere o valor da varivel de ambiente PS1:

# echo $PS1
# export PS1="C:\> "

11)

Pssimo! Volte ao normal!

# source /etc/profile

12)

Delete a varivel LINUX da memria:

# unset LINUX

13)
Crie um alias para o comando ls, de forma que as listagens
sejam exibidas coloridas, mostrando o tamanho dos arquivos em
formato human readable.
# alias ls='ls --color=auto -lh'

14)

Remova o alias para o comando ls.

# unalias ls

Fique atento aos alias existentes no sistema e o arquivo de confguro


que os usurios consultam no login: /etc/profles.

Captulo 14 Administrao da Shell - 220


15)
Edite o seu arquivo .bashrc e adicione no fnal do arquivo os
seguintes alias:
# vi
alias
alias
alias

~/.bashrc
ls='ls --color=auto -lh'
c='clear'
cl='ls ; clear'

16)

Teste os alias que acabamos de criar:

# ls
# c
# cl

No funcionou? Claro que no, esses arquivos so lidos apenas uma vez,
quando realizamos o login.

17)
Faa com que os arquivos de ``inicializao'' da bash sejam
lidos novamente:
# source ~/.bashrc

18)
#
#
#
#

Liste todos os alias que esto defnidos:

alias
vi /etc/issue
vi /etc/motd
vi /etc/issue.net

19)

Mude o shell do usurio fulano para /bin/ksh:

# chsh -s /bin/ksh fulano

Captulo 14 Administrao da Shell - 221

14.8. Exerccio Terico


1) O que voc entende por shell?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

2) O que so variveis locais?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

3) O que so variveis globais?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

4) Qual a fnalidade dos arquivos /etc/motd e /etc/issue?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

5) Qual a fnalidade dos arquivos /etc/profle e ~/.bashrc?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

6) Em qual arquivo esto listados os shells disponveis?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 14 Administrao da Shell - 222

14.9. Laboratrio
1) A troca de sistema operacional ocorreu a menos de um ms na empresa
Tab's Org, e os funcionrios ainda esto um pouco confusos sobre os
comandos no GNU/Linux. Para minimizar esse problema, voc resolve criar
novos comandos no sistema visando ajud-los a se acostumarem com o
shell do Linux:
1.1) alias: lista
Sua funo listar o contedo do diretrio atual.

1.2) alias (desafo): infogeral


Sua funo mostrar algumas informaes. A sada desse comando
dever
ser:
Usurio logado:
Voc est em: /etc
Caminho dos executveis no sistema: /usr/local/bin:/usr/bin:/bin:/usr/games
Nome da mquina: trinity
Data: Qua Fev 28 08:02:49 BRT 2007

2) Crie dois alias chamados lf e ldir que listem apenas arquivos,


incluindo arquivos ocultos e liste apenas diretrios, incluindo diretrios
ocultos.

3) Por questes de segurana, altere o contedo dos arquivos de mensagem


de pr-login e de mensagem do dia para que contenham a seguinte
instruo.
===============================
= Este computador / sistema de acesso restrito =
= apenas a pessoas autorizadas. Todas as suas ==
= atividades esto sendo monitoradas e logadas! =
===============================

Captulo 14 Administrao da Shell - 223

Captulo 15
Compactadores, Empacotadores e
Procedimentos de Backup

15.1. Objetivos
Diferenciar compactao de empacotamento;
Compreender os comandos tar e cpio;
Comparar as qualidades do gzip e do bzip2.

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 224

15.2. Introduo terica


A compresso e empacotamento de arquivos e diretrios muito importante
em qualquer sistema computacional. Ambos os procedimentos so necessrios desde
o ponto de vista de distribuio de softwares, de economia de banda, de espao de
armazenamento e de backup do sistema. Veremos neste captulo o principal
programa de empacotamento GNU/Linux e os dois principais compactadores.
A forma mais conhecida de realizar compresso e empacotamento em
ambiente Windows utilizando o programa Winzip. Um programa que zipa um
arquivo, ou diversos arquivos, na realidade est realizando dois procedimentos
distintos: Empacotar e comprimir.
Em ambientes Unix-like, essas duas tarefas so realizadas de forma
logicamente distintas.
O programa tar, cujo nome deriva de tape archiver, realiza a tarefa de
concatenar

todos

os

arquivos

diretrios

preservando

as

informaes

do

flesystem, isto , seus meta-dados.


Criado com propsito de backup em dispositivos de acesso sequencial
(unidades de fta), o tar utilizado hoje em dia como uma ferramenta de
empacotamento, podendo ser utilizado em conjunto com compactadores como gzip
ou bzip2.
A utilizao da ferramenta tar bastante simples e pode ser resumida da
seguinte forma:
$ tar <operaes/opes> f <arquivo_tar> [<arquivos_de_entrada>]

Onde o signifcado dos parmetros so:


<operaes> podem ser:
c criar o arquivo tar;
r adicionar (concatenar) contedo a um arquivo tar;
x extrair o contedo de um arquivo tar;
t listar o contedo de um arquivo tar.

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 225


<opes> podem ser:
v Verbose tar;
z utilizar com compresso gZip, tanto na criao como na extrao de
um arquivo tar;
j utilizar com compresso bzip2, tanto na criao como na extrao de
um arquivo tar;
Z utilizar com compresso compress, tanto na criao como na
extrao de um arquivo tar.

<arquivo_tar> o nome do arquivo tar sob o qual se est trabalhando.


Deve ser precedido pela letra f de fle.

<arquivos_de_entrada> listagem dos arquivos ou diretrios que sero


adicionados ao arquivo tar.

Esquematicamente, a utilizao bsica do comando tar pode ser ilustrada da


seguinte forma:

Ilustrao 53: Fluxo do Tar


Seguindo o flosofa Unix faa apenas uma tarefa, mas faa bem feito, o
tar um programa especialista em empacotar vrios arquivos. Dessa forma,
quando utilizamos os parmetros z ou j estamos na realidade fazendo uma
chamada externa aos comandos gzip e/ou bzip2, especialistas em compresso de
dados.
Podemos ver o header de um arquivo tar utilizando o comando od:
# od -t c arquivo.tar | head -n 30

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 226


Outros programas que trabalham de forma anloga ao tar so o dump e
cpio. Ambos foram criados com a mesma fnalidade, mas so pouco utilizados hoje
em dia, pois no so to versteis quanto o tar.

15.3. O empacotador cpio


Para empacotar com o cpio devemos fazer o seguinte.
# ls | cpio -ov > pacote.cpio
O comando acima empacotar todos os objetos da sada do comando ls.
Para extrair podemos proceder da seguinte forma:
# cpio -iv < pacote.cpio

Para empacotar um diretrio podemos utilizar o comando fnd de apoio :


# fnd . teste/ | cpio -ov > a.cpio

15.4. Compactadores GZIP e BZIP2


Compresso de dados o processo de codifcar a informao de forma que
seja possvel armazen-la em um nmero menor de bits. Por exemplo, se
defnssemos que a palavra compresso passaria a ser abreviada por comp,
estaramos diminuindo o nmero de bits necessrios para armazenar esta apostila.
Entretanto, para que voc pudesse entender o que comp signifca seria
necessrio estar ciente dessa conveno ou seja, do algoritmo de compresso.
H dois tipos bsicos de compresso, aquele em que no h perdas de
informaes e aquele em que elas ocorrem. Obviamente quando o assunto
backup de informaes vitais, devemos utilizar algoritmos sem perdas. J em
arquivos de imagens, vdeos e udio, h casos que podemos nos dar ao luxo de
perdas de informaes em detrimento da qualidade, que em geral praticamente
imperceptvel para os no especialistas da rea.
Os principais programas de compresso que utilizaremos so o bzip2,
gzip, zip e compress. O bzip2 utiliza os algoritmos Burrows-Wheeler

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 227


transform e Hufman coding; j o gzip e o zip utilizam os algoritmos LZ77 e
Hufman coding; o compress utiliza o algoritmo LZW, o mesmo utilizado pelo
formato de imagens gif. Todos esses algoritmos fazem parte do grupo dos
algoritmos que no ocasionam perdas de dados.
A forma de utilizao desses comandos bastante simples. Para o gzip,
bzip2 e compress, basta fornecer o arquivo de entrada que a compresso se dar
no prprio arquivo. Eis uma diferena entre o tar e esses programas. Assim como o
programa zip realiza a tarefa de empacotar e comprimir, ele recebe dois
argumentos, o arquivo de sada e os arquivos de entrada, ou seja, aqueles a serem
empacotados e comprimidos.
Voc deve estar se perguntando, se o zip j realiza o trabalho de empacotar
e comprimir, para que eu utilizaria o comando tar em conjunto com um programa
de compresso? A resposta simples: o zip no armazena os metadados!

15.5. Falando de Backup


Nosso captulo explica muitas coisas sobre compactao e empacotamento de
arquivos, tudo isso extremamente necessrio quando falamos de backup.
Podemos ter tipos de backup diferentes, so eles:
Incremental - O backup incremental visa salvar apenas as diferenas em
relao ao ultimo backup completo, por exemplo: Um backup completo acontece
no domingo. O incremental salvar os dados de domingo para segunda, de domingo
para tera, de domingo para quarta, de domingo para quinta, de domingo para sexta
e de domingo para sbado, ou seja, at chegar no prximo backup completo.
Diferencial - Diferente do incremental, o diferencial, faz apenas os
incrementos, assim gerando um volume menor de dados. Se o backup completo foi
gerado no domingo, ele salva de domingo para segunda, de segunda para tera, de
tera para quarta e assim at o prximo backup completo chegar.
Completo - Visa salvar todos os dados, mesmo o que j foram salvos
anteriormente, assim fazendo um backup completo de todos os objetos em questo.

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 228


15.5.1. O comando dd
O comando dd tem a capacidade de copiar bit a bit uma partio. Segue
um exemplo de seu uso:
# dd if=/dev/hda /dev/hdb
O comando acima efetuar a clonagem do disco hda, para o disco hdb.
Cuidado com o comando dd, qualquer falta de ateno pode danifcar o
sistema, de forma irrecupervel.

15.6. Prtica Dirigida


1) Copie todo o contedo do diretrio /etc para /backup e v para o
/backup:
# cp -rL /etc /backup
# cd /backup

2) Verifque que no possvel compactar um diretrio sem empacotlo antes. Tente com o gzip e com o bzip2:
# gzip etc
# bzip2 etc
Para determinarmos qual o melhor compactador vamos analisar dois tipos
de arquivos: texto puro e binrio. Para isso vamos cri-los.

3) Vamos criar dois arquivos de texto puro. Abra o arquivo texto1 no


editor vim e insira uma linha contento os nmeros de 0 a 9:
# vim texto1
0123456789

4) Ainda dentro do vim, copie essa linha e cole 250.000 vezes:


:1y
250000p

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 229


5) Saia do arquivo salvando as alteraes:
:x

6) Crie uma cpia deste arquivo chamando-a de texto2:


# cp texto1 texto2

7) Vamos criar um par de arquivos binrios para nossos testes.


Utilizaremos como base, o programa aptitude:
# cp /usr/bin/aptitude bin1

8) Vamos duplicar esse arquivo:


# cp bin1 bin2

9) Verifque que criamos quatro arquivos com tamanhos parecidos,


aproximadamente 2.4MB, sendo dois deles binrios e dois texto
puro:
# ls -lh

15.6.1. gzip e bzip2 com arquivos de texto puro

1) Utilize a tabela tab:comparacao1 para anotar os resultados


obtidos nos testes com gzip e bzip em arquivos de texto puro:
Tipo do Arquivo: TEXTO puro
Tamanho Original:
GZIP
Tamanho fnal
Tempo para compactar
Tempo para descompactar

Vamos iniciar os testes com os arquivos texto.

BZIP2

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 230


2) Determine o intervalo de tempo que leva para comprimir o arquivo
texto1 com gzip:
# time gzip texto1

3) Determine o tamanho fnal do arquivo texto1 aps ser comprimido


com gzip:
# ls -lh texto1.gz

4) Determine o intervalo de tempo que leva para descomprimir o


arquivo texto1.gz:
# time gunzip texto1.gz
Vamos repetir os procedimentos utilizando o bzip2.

5) Determine o intervalo de tempo que leva para comprimir o arquivo


texto2 com bzip2:
# time bzip2 texto2

6) Determine o tamanho fnal do arquivo texto2 aps ser comprimido


com bzip2:
# ls -lh texto2.bz2

7) Determine o intervalo de tempo que leva para descomprimir o


arquivo texto2.bz2:
# time bunzip2 texto2.bz2

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 231


15.6.2. gzip e bzip2 com arquivos binrios

1) Utilize a tabela tab:comparacao2 para anotar os resultados


obtidos nos testes com gzip e bzip em arquivos binrios:
Tipo do Arquivo: Binrio
Tamanho Original:
GZIP

BZIP2

Tamanho fnal
Tempo para compactar
Tempo para descompactar

2) Determine o intervalo de tempo que leva para comprimir o arquivo


bin1 com gzip:
# time gzip bin1

3) Determine o tamanho fnal do arquivo bin1 aps ser comprimido


com gzip:
# ls -lh bin1.gz

4) Determine o intervalo de tempo que leva para descomprimir o


arquivo bin1.gz:
# time gunzip bin1.gz

Vamos repetir os procedimentos utilizando o bzip2.

5) Determine o intervalo de tempo que leva para comprimir o arquivo


bin2 com bzip2:
# time bzip2 bin2

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 232


6) Determine o tamanho fnal do arquivo bin2 aps ser comprimido
com bzip2:
# ls -lh bin2.bz2

7) Determine o intervalo de tempo que leva para descomprimir o


arquivo bin2.bz2:
# time bunzip2 bin2.bz2

A utilizao do gzip e bzip2, sero cobrados na prova. Suas utilizaes


com o comando tar, tambm no esto de fora. Outro ponto importante
entender que so muito teis para seu dia-a-dia.

15.6.3. Trabalhando com o tar

1) Dentro do diretrio /backup vamos criar um arquivo ``tar'' cujo


contedo ser o diretrio /backup/etc empacotado. Verifque que o
arquivo foi criado.
# tar cf etc.tar etc
# ls -lh

2) Liste o contedo do arquivo etc.tar:


# tar tf etc.tar

3) Antes de extrair o contedo do arquivo etc.tar, vamos renomear o


diretrio /backup/etc para /backup/etc.orig e verifcar o
contedo do diretrio /backup:
# mkdir /backup/etc
# mv /backup/etc /backup/etc.orig
# ls -lh

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 233


4) Sendo o tar uma ferramenta de backup devemos seguir a regra
nmero 1 de um sistema de backups... ver como se faz para
restaurar um backup. Vamos extrair o arquivo etc.tar:
# tar xf etc.tar

5) Veja que um novo diretrio /backup/etc foi criado a partir do


arquivo etc.tar:
# ls -lh

6) To importante quanto conseguir restaurar um backup que ele


esteja intacto. Sendo assim, verifquemos a integridade dos dados
recuperados comparando-os com os originais:
# diff -r etc.orig etc
Se o comando dif no retornar nada na tela, signifca que ambos os
diretrios e seus contedos esto idnticos.
7) J que estamos realizando um procedimento bastante utilizado para
backup, vamos comparar os espaos em disco utilizados antes e
depois do backup:
# du -hs etc
# ls -lh etc.tar
At o momento aprendemos que os compactadores gzip e bzip2 no
compactam um diretrio recursivamente. Sendo assim, devemos empacotar esse
diretrio e depois comprimi-lo utilizando algum dos programas disponveis.

8) Crie uma cpia de segurana do diretrio /etc utilizando o tar


com compresso gzip:
# tar czf etc.tar.gz etc

9) Crie uma cpia de segurana do diretrio /etc utilizando o tar


com compresso bzip2:
# tar cjf etc.tar.bz2 etc

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 234


10)

Extraia os contedos dos arquivos tar.gz e tar.bz2:

# tar xzf etc.tar.gz


# tar xjf etc.tar.bz2

15.7. Exerccios Tericos


1) Qual a diferena entre empacotar e comprimir?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

2) Quais comandos do GNU/Linux voc conhece que realizam compresso?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
3) Quais comandos do GNU/Linux voc conhece que servem para empacotar
arquivos e diretrios?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 15 Compactadores, Empacotadores e Procedimentos de Backup - 235

Captulo 16
Agendamento de Tarefas

16.1. Objetivos
Entender como funciona o agendamento de tarefas no sistema;
Aprender o funcionamento do cron;
Aprender o funcionamento do at.

Captulo 16 Agendamento de Tarefas - 236

16.2. Introduo terica


A crontab utilizada para agendar comandos que sero executados
periodicamente, ao contrrio do comando at, que executa comandos pontualmente.
H dois tipos de crontab: a de usurios e a do sistema. Ambas so arquivos que
contm tabelas com informao de quando o comando especifcado deve ser
executado, sendo que cada linha corresponde a um nico agendamento.
A crontab gerenciada pelo daemon crond, que a cada um minuto verifca
se h algum agendamento que deve ser executado e, se houver, executa-o.
A crontab dos usurios pode ser acessada pelo comando:
# crontab [-e|-r|-l]
A tabela fca armazenada em arquivos com o nome do usurio dono da tabela,
no diretrio /var/spool/cron/cronjobs. J a crontab do sistema encontrada no
arquivo /etc/crontab e j possui agendamentos para realizar as tarefas que se
encontram nos diretrios /etc/cron.[hourly|daily|weekly|monthly]. Sendo que o
programa chamado run-parts quem executa os referidos agendamentos.
O formato das crontabs dos usurios e do sistema so quase iguais. A
exceo que a crontab do sistema possu um campo a mais, como pode ser visto a
seguir:
crontab (usurios)
# minuto hora dia ms diaDaSemana comando
crontab (sistema)
# minuto hora dia ms diaDaSemana USURIO comando

A nica diferena entre as duas crontabs que na do sistema h um


campo para especifcar qual o usurio que ir executar o comando
agendado.

Alm disso cada campo possui um conjunto de valores vlidos, sendo eles:
minuto: varia de 0-59;
hora: varia de 0-23;

Captulo 16 Agendamento de Tarefas - 237


dia: varia de 1-31;
ms: varia de 1-12;
diaDaSemana: varia de 0-7, sendo que 0 e 7 equivalem ao domingo;
usurio: um usurio vlido no sistema;
comando: o path completo para o comando.

Podemos controlar quais usurios podem acessar ou no o cron. Para


isso basta criar um dos arquivos: /etc/cron.allow ou /etc/cron.deny. A
mesma dica vlida para o comando at: /etc/at.allow ou at.deny.

Considerando o formato j listado, podemos realizar agendamentos utilizando


alguns operadores que facilitam o trabalho. So eles:
vrgula (,)' especifca uma lista de valores, por exemplo: ``1,3,4,7,8'';

hifen (-) especifca um intervalo de valores, por exemplo: 1-15 (de 1 a


15);

asterisco (*) especifca todos os valores possveis;


barra (/) especifca ``pulos'' de valores, por exemplo: se no campo hora
utilizarmos ``*/3'' o comando ser executado as ``0,3,6,9,12,15,18,21''
horas;
Conhecendo a sintaxe bsica das crontabs passemos aos agendamentos.

16.3. Prtica Dirigida


16.3.1. Agendamento de Tarefas com AT

1) Verifque se a data e a hora do sistema esto corretas:


# date
Aps essa verifcao podemos comear a realizar agendamentos.

Captulo 16 Agendamento de Tarefas - 238


2) Agende para 10 minutos no futuro a listagem do diretrio /etc
redirecionando o resultado para um outro arquivo, e depois outro
arquivo contendo a data e a hora em que essa listagem foi
executada:
# at HH:mm MM/DD/YYYY
at> ls --color /etc > /root/etc_list.txt
at> echo $(date +"%H:%m %M/%d/%Y" ) >> /root/gera.txt
at> (Ctrl + d)

3) Agendada esta tarefa, confrme-a listando todos os agendamentos


pendentes:
# atq

4) Vamos explorar o diretrio onde fcam os agendamentos:


# cd /var/spool/cron/atjobs
# ls -la

5) Mostre o contedo dos arquivos contidos nesse diretrio:


# cat (agendamento)
Perceba que no agendamento, temos nossas variveis e o comando.

6) Vamos realizar outro agendamento qualquer, para executar em 15


minutos, para que possamos aprender como apag-lo:
# at HH:mm MM/DD/YYYY
at> echo "Teste" > /tmp/at.out
at> ^d

Liste os agendamentos correntes e verifque que um novo arquivo foi criado


no diretrio de spool do at.

Captulo 16 Agendamento de Tarefas - 239


# cd /var/spool/cron/atjobs
# ls -la
7) Remova o ltimo agendamento:
# atrm <nmero_agendamento>

Liste os agendamentos ativos e liste o contedo do diretrio de spool do


at e veja que o job foi removido, utilize seus conhecimentos.
# cd /var/spool/cron/atjobs
# ls -la

16.3.2. Agendando Tarefas com o CRON

1) Crie um script para fazer um backup do /etc:


# vi /root/backup.sh
#!/bin/bash
# Backup do /etc
#
tar czf /backup/$(date +%Y%m%d-%H%M)-etc.tar.gz /etc
OBS: No esquea das permisses do script. No Treinamento 451 iremos
estudar Shell Scripts.

2) Entre na crontab do usurio para edit-la:


# crontab -e

Captulo 16 Agendamento de Tarefas - 240


3) Coloque na crontab do usurio um agendamento para fazer
backup do diretrio /etc utilizando o script criado a cada 2
minutos.
# MM HH DD mm DS CMD
*/2 * * * * /root/backup.sh

4) Visualize os agendamentos feitos pelo o usurio.


# crontab -l

5) Onde fcam armazenados os agendamentos feitos pelos usurios


com o crontab -e?
# cd /var/spool/cron/crontabs
# ls

No apague ou edite o seu agendamento dentro desse diretrio, use os


comandos para fazer isso.
6) Aps verifcar que os agendamentos foram efetuados corretamente,
apague todos os agendamentos do usurio.
# crontab -r
Para apagar somente um agendamento do usurio, use o crontab -e e
retire a linha desejada.

Agora que aprendemos a utilizar a crontab do usurio podemos usar a


crontab do sistema que opera praticamente da mesma forma, apenas tem um
campo a mais, o usurio que executar o script. Seu arquivo de confgurao :
# cat /etc/crontab

Fique atento, a LPI ir cobrar a utilizao do cron das duas maneiras.

Captulo 16 Agendamento de Tarefas - 241

16.4. Exerccios Tericos


1) Qual a diferena entre os agendadores de tarefas at e cron?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

2) Quantos campos h na crontab do sistema? E na crontab do usurio?


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

3) Qual a sintaxe correta para agendar uma tarefa que seja executada nos
dias 1, 7, 10 e nos dias de 15 ao 20, s 19hs utilizando a crontab do
usurio, sendo o nome do comando ``foo''?
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

Captulo 16 Agendamento de Tarefas - 242

REFERNCIAS
BIBLIOGRFICAS
JULIO CESAR NEVES. Programao em Shell Linux. 6. edio.
Brasport. 2006
The Linux documentation Project, website: http://www.tldp.org.
Acesso em 28 de maro de 2008.
Pritchard, Pessanha, Langfeldt, Stranger and Dean. Certifcao
Linux LPI 2. edio. AltaBooks. 2007
Gagn, Moving to Linux.
1 edio, Addilson Wesley
Rubem E. Ferreira, Guia de Administrao Linux.
2 edio, Novatec, 2008

Вам также может понравиться