Você está na página 1de 128

2A.

PARTE:

CONHECIMENTOS
GERAIS

Copyright (c) 2002-2008 Ednei Pacheco de Melo.

Permission is granted to copy, distribute and/or modify this document


under the terms of the GNU Free Documentation License, version 1.1 or
any later version published by the Free Software Foundation; a copy of
the license is included in the section entitled GNU Free Documentation
License.

NDICE
VISO GERAL ..........................................................8
I. A ESTRUTURA DE ARQUIVOS.....................................9
Introduo.......................................................................................9
A estrutura......................................................................................9
/bin Binrios essenciais......................................................................9
/boot Inicializao do sistema..........................................................10
/dev Arquivos de dispositivos..........................................................11
/etc Arquivos de configurao.........................................................12
/home Dados pessoais......................................................................13
/lib Bibliotecas essenciais................................................................13
/media e /mnt Pontos de montagens...............................................14
/opt Compatibilidade entre aplicativos............................................15
/proc Informaes e processos do kernel.......................................15
/root Administrador do sistema.......................................................16
/sbin Binrios essenciais do sistema...............................................17
/tmp Arquivos temporrios...............................................................17
/srv Informaes de servios (Internet)..........................................18
/sys Suporte ao dispositivos de hardware.......................................18
/usr Recursos dos sistemas Unix.....................................................19
/var Variveis....................................................................................19
Sobre a norma FHS.......................................................................22
Concluso......................................................................................22

II. OS

ARQUIVOS DE DISPOSITIVOS .............................24

Introduo.....................................................................................24
A classificao...............................................................................24
Tipo caracter........................................................................................24
Tipo bloco.............................................................................................24
A estrutura /dev............................................................................25
Unidades externas e de armazenamento...........................................25
Discos rgidos IDE & CD-ROMs...................................................................25
Unidades SCSI e SATA.................................................................................26
Disquetes......................................................................................................26

Dispositivos de udio...........................................................................26
Fax-modem (portas seriais)................................................................27
Console terminal.................................................................................27
Sobre o uDEV................................................................................28
Concluso......................................................................................28

III. A

LINHA DE COMANDO.......................................29

Introduo.....................................................................................29
O Bourne Again Shell....................................................................29

Informaes e mtodos essenciais...............................................30


Complemento da tecla <TAB>...........................................................30
O uso de expresses............................................................................31
As cores personalizadas......................................................................32
Nomenclatura diferenciada................................................................32
Acesso documentao eletrnica....................................................33
Equivalncias entre o BASH e MS-DOS.......................................34
Estrutura de diretrios.......................................................................35
Acesso as unidades do sistema...........................................................35
Especificaes do diretrio.................................................................37
Exibio de caminho...........................................................................37
Case sensitive......................................................................................37
Observaes...................................................................................38
Concluso......................................................................................38

IV. MANIPULAO

DE ARQUIVOS E DIRETRIOS ..............39

Introduo.....................................................................................39
Operaes bsicas.........................................................................39
Listagem e navegao.........................................................................39
ls...................................................................................................................39
cd..................................................................................................................40

Visualizao..........................................................................................41
type...............................................................................................................41
less...............................................................................................................41
file................................................................................................................42
pwd...............................................................................................................42
more.............................................................................................................43
du..................................................................................................................45

Manipulao.........................................................................................46
mkdir............................................................................................................46
dd..................................................................................................................46
cp..................................................................................................................46
mv.................................................................................................................47
ln...................................................................................................................47

Editorao............................................................................................48
mcedit...........................................................................................................48

Excluso...............................................................................................48
rmdir.............................................................................................................48
rm.................................................................................................................49

Cpias de segurana e compactao............................................49


Arquivamento......................................................................................49
tar.................................................................................................................50

Compactao........................................................................................51
gzip / gunzip.................................................................................................51
bzip2 / bunzip2.............................................................................................52
zip / unzip.....................................................................................................52

Utilitrios.............................................................................................53
split...............................................................................................................53
cat.................................................................................................................53

Concluso......................................................................................54

V. UNIDADES,

PARTIES E FORMATOS ........................55

Introduo.....................................................................................55
As unidades e as parties............................................................55
Os formatos...................................................................................55
Tipos de sistemas de arquivos............................................................55
O SWAP........................................................................................................56
O ext2 e ext3................................................................................................56
ReiserFS.......................................................................................................57
MSDOS, FAT32 e NTFS...............................................................................58
ISO9660........................................................................................................58

Operaes e atividades afins........................................................58


Trabalhando com parties e unidades.............................................58
mount / umount............................................................................................58
sync..............................................................................................................60
Formatao e definio do sistema de arquivos..........................................60
mkfs..............................................................................................................60
mkreiserfs....................................................................................................61
mkswap / swapon.........................................................................................61

Verificando as parties e unidades do sistema................................61


df...................................................................................................................61
badblocks.....................................................................................................62
fsck...............................................................................................................62
reiserfs.........................................................................................................63

Realizando a transferncia de dados.................................................64


dd..................................................................................................................64

Operaes com disquetes...................................................................64


Utilizao.....................................................................................................64
Formatao..................................................................................................64

Operaes com os gravadores de CD/DVD........................................65


mkisofs.........................................................................................................65
cdrecord.......................................................................................................66

Concluso......................................................................................69

VI. USURIOS,

GRUPOS E PERMISSES DE ACESSO...........70

Introduo.....................................................................................70
Consideraes bsicas..................................................................70
As contas..............................................................................................70
O administrador de sistema.........................................................................70
O usurio comum.........................................................................................71

O ID......................................................................................................71
Os grupos.............................................................................................72
As permisses......................................................................................72
Senha...................................................................................................73
Comandos gerais...........................................................................73
Adio de usurios e grupos...............................................................73
adduser.........................................................................................................73
groupadd......................................................................................................76

Administrao de contas.....................................................................76
login / logout / exit.......................................................................................76
id...................................................................................................................76

users / groups...............................................................................................77
passwd..........................................................................................................77
finger............................................................................................................78
uptime..........................................................................................................79

Eliminando usurios e grupos............................................................79


userdel..........................................................................................................79
groupdel.......................................................................................................79

Obtendo os privilgios de outros usurios........................................80


su..................................................................................................................80

Atributos de arquivos e diretrios.....................................................81


chmod...........................................................................................................81
chown...........................................................................................................83
chgrp............................................................................................................83
umask...........................................................................................................84

Os arquivos de configurao........................................................85
/etc/passwd..........................................................................................85
/etc/shadow..........................................................................................85
/etc/groups...........................................................................................86
Concluso......................................................................................87

VII. O

GERENCIAMENTO DE PROCESSOS.......................88

Introduo.....................................................................................88
Viso geral.....................................................................................88
O que um processo?.........................................................................88
O identificador PID..............................................................................88
Foreground e background..................................................................88
Gerenciando os processos.............................................................89
Visualizao.........................................................................................89
ps..................................................................................................................89
top................................................................................................................90

Segundo plano.....................................................................................91
Colocando em segundo plano.......................................................................91
Control-z..................................................................................................91
bg..................................................................................................................91
jobs...............................................................................................................92
fg...................................................................................................................92

Excluso...............................................................................................92
kill.................................................................................................................92
killall.............................................................................................................92

Desligamento do sistema..............................................................93
halt.......................................................................................................93
shutdown.............................................................................................93
Concluso......................................................................................94

VIII. O

SISTEMA DE INICIALIZAO ............................95

Introduo.....................................................................................95
Os mtodo de inicializao...........................................................95
System V..............................................................................................95
Estilo BSD............................................................................................95

Os scripts de inicializao............................................................96
Os demais scripts................................................................................96
Sistema & aplicaes...................................................................................97
Suporte ao Hardware...................................................................................97
Sistema de impresso..................................................................................97
Redes & Internet..........................................................................................98
Configuraes locais....................................................................................98
Carregamento de mdulos...........................................................................98
Compatibilidade...........................................................................................99

A seqencia de scripts na inicializao............................................100


Os nveis de execuo.................................................................100
Nvel 1 Manuteno do sistema.....................................................100
Nvel 3 e 4 Modo multi-usurio.....................................................101
Nvel 0 e 6 Reinicializao do sistema...........................................101
Demais nveis de execuo (2 e 5)...................................................102
Operaes e ajustes afins...........................................................102
Ativar / desativar scripts de inicializao........................................102
Mtodo manual...........................................................................................102
Mtodo automatizado.................................................................................102

O arquivo /etc/inittab..................................................................103
Concluso....................................................................................105

IX. O

GERENCIADOR DE INICIALIZAO ......................106

Introduo...................................................................................106
O LILO.........................................................................................106
/etc/lilo.conf.......................................................................................107
Seo global...............................................................................................107
Seo de parties.....................................................................................109

O liloconfig.........................................................................................110
Operaes mais freqentes..............................................................111
Selecionar o sistema GNU/Linux como padro.........................................111
Mudar a resoluo do framebuffer............................................................111
Adicionar mais uma entrada no LILO........................................................112
Adicionar uma senha extra........................................................................112
Inicializar o sistema em modo de manuteno..........................................113
Criar um disco de recuperao com o lilo.conf..........................................113

Problemas mais freqentes..............................................................113


Ao invs do sistema inicializar, exibido..................................................113
Remoo das definies do LILO no setor MBR........................................114
Recuperar a senha do superusurio..........................................................114

Atualizando as alteraes desejadas................................................114


Concluso....................................................................................115

X. GERENCIAMENTO

DE PROGRAMAS.........................116

Introduo...................................................................................116
A nomenclatura dos pacotes......................................................116
Ferramentas & mtodos.............................................................117
Slackware Package Tools..................................................................117
Red Hat Package Management........................................................118

Compilao do cdigo-fonte..............................................................119
Outros utilitrios...............................................................................119
Concluso....................................................................................120

XI. VARIVEIS

DE SISTEMA ....................................121

Introduo...................................................................................121
As variveis..................................................................................121
Path / RootPath..................................................................................121
Home..................................................................................................122
OsType...............................................................................................122
Shell...................................................................................................122
Term...................................................................................................123
User....................................................................................................123
Comandos relacionados..............................................................123
echo....................................................................................................123
set.......................................................................................................123
export.................................................................................................124
Internacionalizao....................................................................124
Arquivos de configurao...........................................................125
/etc/profile..........................................................................................125
O diretrio /etc/profile.d/..................................................................127
~/.bashrc...........................................................................................128
Concluso....................................................................................128

VISO

GERAL

Chegamos agora, a mais uma nova etapa desta literatura. Trata-se da


obteno de conhecimentos tcnicos e do aprendizado das operaes
bsicas e essenciais para a boa manuteno de um sistema GNU/Linux.
Como qualquer outro sistema operacional, o kernel do Linux possui
agregado diversas ferramentas, utilitrios e aplicaes especficas que
visam prover aos usurios e administradores um leque de recursos
essenciais para a boa administrao do sistema como um todo. Atividades
simples, bsicas e triviais, como copiar arquivos, definir permisses de
acesso, acessar unidades, monitorar processos, entre outras (at mesmo
mais complexas), so de extrema importncia para a garantia de uma boa
estabilidade e tima performance do computador em geral.
Por isto, nesta parte, abordaremos apenas os comandos, parmetros e
funes consideradas indispensveis aos usurios desktops, em especial
de nvel intermedirio, mesmo apesar de constarem algumas instrues
para o nvel avanado. Existe uma infinidade de ferramentas para as mais
variadas finalidades, alm de diversos graus de complexidade, onde
muitas destas somente sero aplicveis a tarefas especficas que no se
enquadram nas necessidades desta classe de usurios.
A leitura dos prximos captulos desta parte indispensvel para os
usurios iniciantes e que pela 1a. vez esto tendo contato com os sistemas
GNU/Linux, alm de ter grande importncia para os usurios de nvel
mdio, pois iro proporcionar todos os conhecimentos necessrios para o
bom aproveitamento das instrues contidas nas partes seguintes. J para
aqueles usurios mais experimentados, podem tranqilamente seguir
adiante para a prxima parte (ou ainda outras posteriores, dependendo de
suas habilidades), ficando esta deciso ao seu critrio. Porm deixaremos
bem claro que a nossa satisfao ser enorme caso os mesmos
realizassem uma breve leitura destes captulos, com o intuito de analisar
os pontos negativos e positivos deste material, para que resultem em
crticas e sugestes de alta qualidade para a melhoria da obra.
Para aqueles que recentemente vieram de outras distribuies (ou esto
pensando com seriedade em adotar o Slackware), sugerimos a leitura dos
captulos A inicializao e O gerenciamento de programas. Neles estaro
descritas as particularidades da distribuio-base do livro, alm de outras
instrues necessrias para a boa manuteno do sistema.
Por mais diferentes que sejam as distribuies, a grande maioria dos
comandos descritos nos captulos anteriores ( salvo aqueles especficos)
so aplicveis na grande maioria dos sistemas GNU/Linux. O seu
aprendizado, tanto utilizando esta quanto qualquer outra distribuio, ser
de grande valia para quaisquer intervenes que desejam realiza. Por
isso, no se preocupem em pensar que o aprendizado aqui obtido ser
perdido em caso de mudana de distribuio preferida. &;-D

8/128

I. A

ESTRUTURA DE ARQUIVOS

INTRODUO
Como qualquer outro sistema operacional, os sistemas GNU/Linux
realizam a manipulao de diversos dados e informaes, onde para isto
necessria estrutura de arquivos e diretrios bem definida e padronizada.
Para cada tipo de arquivo, e de acordo com suas funcionalidades e
importncia, existe um local especfico para seu armazenamento. Alm do
diretrio principal do sistema, existe uma srie outros diretrios
especificados pela padronizao.
Neste captulo, iremos conhecer a estruturao dos dados e diretrios do
sistema de arquivos, como tambm as suas particularidades e algumas
recomendaes necessrias para a sua boa manuteno.

ESTRUTURA...

Os diretrios definidos pela norma FHS e que compem a estrutura do


sistema de arquivos no GNU/Linux so: /bin, /boot, /dev, /etc, /home, /lib, /
media, /mnt, /opt, /proc, /root, /sbin, /sys, /tmp, /usr e /var.
Segue abaixo a descrio detalhada sobre a estrutura e seus respectivos
diretrios, alm de algumas dicas, conselhos e recomendaes.

/BIN BINRIOS

ESSENCIAIS

O diretrio /bin contm todos (ou a maioria) os arquivos binrios com os


comandos essenciais dos usurios, tais como os programas da linha de
comando, entre outros.
$ cd /bin
$ ls
Mail@
[*
arch*
ash*
awk@
base64*
basename*
bash*
bunzip2@
bzcat@
bzip2*
bzip2recover*
cat*
chgrp*
chmod*
chown*

du*
echo*
ed@
egrep@
env*
expand*
expr*
factor*
false*
fgrep@
fmt*
fold*
free*
ftp*
gawk@
gawk-3.1.5*

ln*
loadkeys*
login*
logname*
ls*
lsmod@
mail@
md5sum*
mkdir*
mkfifo*
mknod*
more*
mount*
mt@
mt-GNU*
mt-st*

readlink*
rksh@
rm*
rmdir*
rpm*
rzip*
sed*
seq*
setterm*
sh@
sha1sum*
sha224sum*
sha256sum*
sha384sum*
sha512sum*
shred*

test*
touch*
tr*
true*
tsort*
tty*
umount*
uname*
uncompress@
unexpand*
uniq*
unlink*
users*
usleep*
vdir*
wc*

9/128

chroot*
cksum*
comm*
compress@
cp*
cpio*
csh@
csplit*
cut*
date*
dd*
df*
dialog*
dir*
dircolors*
dirname*
dmesg*
dnsdomainname@
domainname@
$ _

getopt*
getoptprog@
ginstall@
grep*
groups*
gunzip*
gzexe*
gzip*
head*
hostid*
hostname*
id*
install*
ipmask*
join*
kill*
killall*
ksh*
link*

mv*
nail@
netstat*
nice*
nisdomainname@
nl*
nohup*
od*
paste*
pathchk*
ping*
ping6*
pinky*
pr*
printenv*
printf*
ps*
ptx*
pwd*

shuf*
sleep*
sln*
sort*
split*
stat*
stty*
su*
sulogin@
sum*
sync*
tac*
tail*
tar*
tar-1.13*
tar-1.16.1@
tcsh*
tee*
telnet*

which*
who*
whoami*
yes*
ypdomainname@
zcat*
zcmp*
zdiff*
zegrep*
zfgrep*
zforce*
zgrep*
zless*
zmore*
znew*
zsh*
zsh-4.3.2@

Os arquivos contidos neste diretrio geralmente no so modificados aps


a instalao, porm quando houverem novas atualizaes de pacotes no
sistema, estes podero ser alterados.

/BOOT INICIALIZAO

DO SISTEMA

O diretrio /boot contm todos os arquivos necessrios (estticos) para a


inicializao do sistema (boot loader), exceto os arquivos de configurao
(/etc) e o gerenciador de inicializao (LILO).
$ cd /boot
$ ls -l
total 17103
lrwxrwxrwx 1 root root
37 2007-08-03
/usr/doc/mkinitrd-1.1.2/README.initrd
lrwxrwxrwx 1 root root
27 2007-08-07
generic-2.6.21.5
-rw-r--r-- 1 root root 795880 2007-06-19
-rw-r--r-- 1 root root 813610 2007-06-19
smp-2.6.21.5-smp
-rw-r--r-- 1 root root 1232918 2007-06-19
-rw-r--r-- 1 root root 1252098 2007-06-19
smp
-rw-r--r-- 1 root root
512 2007-08-03
-rw-r--r-- 1 root root
209 2007-08-03
lrwxrwxrwx 1 root root
23 2007-08-07
generic-2.6.21.5
-rw-r--r-- 1 root root
72738 2007-06-19
-rw-r--r-- 1 root root
72764 2007-06-19
smp
-rw-r--r-- 1 root root
72643 2007-06-19
-rw-r--r-- 1 root root
72669 2007-06-19
-rw-r--r-- 1 root root
5040 2007-06-10

10:00 README.initrd ->


23:53 System.map -> System.map17:18 System.map-generic-2.6.21.5
16:53 System.map-generic17:23 System.map-huge-2.6.21.5
16:58 System.map-huge-smp-2.6.21.510:17 boot.0300
10:17 boot_message.txt
23:52 config -> config17:18 config-generic-2.6.21.5
16:53 config-generic-smp-2.6.21.517:23 config-huge-2.6.21.5
16:58 config-huge-smp-2.6.21.5-smp
03:09 diag1.img

10/128

drwxr-xr-x 9 root
-rw-r--r-- 1 root
-rw------- 1 root
lrwxrwxrwx 1 root
generic-2.6.21.5
-rw-r--r-- 1 root
-rw-r--r-- 1 root
smp
-rw-r--r-- 1 root
-rw-r--r-- 1 root
$ _

root
root
root
root

384
487394
42496
24

2007-08-08
2007-08-08
2007-08-08
2007-08-07

10:46
10:46
10:48
23:53

initrd-tree/
initrd.gz
map
vmlinuz -> vmlinuz-

root 1937944 2007-06-19 17:18 vmlinuz-generic-2.6.21.5


root 2087960 2007-06-19 16:53 vmlinuz-generic-smp-2.6.21.5root 4097784 2007-06-19 17:23 vmlinuz-huge-2.6.21.5
root 4417112 2007-06-19 16:58 vmlinuz-huge-smp-2.6.21.5-smp

Em distribuies que utilizam o gerenciador GRUB, este encontra-se


armazenado em um subdiretrio dentro deste, chamado /boot/grub.
Somente em tarefas relacionadas ao processo de compilao e atualizao
do kernel, como tambm algumas intervenes necessrias na
configurao do gerenciador de inicializao (LILO), que este diretrio
ganha uma certa notoriedade; fora isto, no teremos maiores
preocupaes.

/DEV ARQUIVOS

DE DISPOSITIVOS

O diretrio /dev contm todos os arquivos de dispositivos necessrios para


cada dispositivo em que o kernel do Linux suporta.
$ cd /dev
$ ls -l | more
total 0
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
drwxr-xr-x 3 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
crw------- 1 root
lrwxrwxrwx 1 root
crw-rw---- 1 root
drwxr-xr-x 6 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
crw-rw-rw- 1 root
srwxrwxrwx 1 root
--More--

root
root
root
root
root
root
root
root
root
root
root
root
root
tty
root
root
root
root
root
root
root
root
root

10
12
11
60
3
3
3
3
3
3
3
3
3
5,
1
11
10, 252
120
9
3
3
13
1,
7
0

2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05

08:04
05:03
08:04
05:03
05:03
05:03
05:03
05:03
05:03
05:03
05:03
05:03
05:03
08:04
05:03
05:03
05:03
08:04
05:03
05:03
05:03
05:03
08:04

adsp -> sound/adsp


agpgart -> misc/agpgart
audio -> sound/audio
bus/
cdr -> hdc
cdr1 -> hdc
cdrom -> hdd
cdrom0 -> hdd
cdrom1 -> hdc
cdrw -> hdc
cdrw1 -> hdc
cdwriter -> hdc
cdwriter1 -> hdc
console
core -> /proc/kcore
dac960_gam
disk/
dsp -> sound/dsp
dvd -> hdd
dvd0 -> hdd
fd -> /proc/self/fd/
full
gpmctl=

Todo e qualquer dispositivo, tais como portas seriais, discos rgidos,


11/128

scanners, mouse, modens, etc., em sistemas baseados em UNIX so


tratados como arquivos denominados device node ou simplesmente device.
Para ter acesso as funcionalidades de qualquer dispositivo, deveremos
recorrer aos seus respectivos arquivos de dispositivos.
Para cada categoria de dispositivo, existe uma certa regra de numerao.
Mas, devido a extensa quantidade de devices, iremos apresent-los mais
detalhadamente no captulo seguinte, intitulado Os arquivos de
dispositivos.

/ETC ARQUIVOS

DE CONFIGURAO

O diretrio /etc contm todos os arquivos de configurao local para o


sistema. Tais arquivos so bem diversificados: a tabela para montagem de
parties, as definies do servidor X.org, uma srie de scripts, etc.
$ cd /etc
$ ls -l | more
total 1739
-rw-r--r-- 1 root
-rw-r--r-- 1 root
drwxr-xr-x 17 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root
drwxr-xr-x 3 root
-rw-r--r-- 1 root
drwxr-xr-x 3 root
-rw-r--r-- 1 root
-rw-r----- 1 root
-rw-r--r-- 1 root
drwxr-xr-x 3 root
-rw-r--r-- 1 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
-rw-r--r-- 1 root
drwxr-xr-x 5 root
drwxr-xr-x 3 root
drwxr-xr-x 2 root
-rw-r--r-- 1 root
drwxr-xr-x 2 root
--More--

root
root
root
root
root
root
root
root
root
daemon
users
root
root
root
root
root
root
root
root
root
root
root
root

3458
21
592
2561
15067
104
46
488
9930
144
95
264
1229
136
72
48
48
1799
328
136
232
84
88

2007-06-08
1999-01-27
2007-08-04
2002-02-24
2002-02-24
2004-11-05
2007-08-04
2007-08-03
2007-08-04
2006-08-02
2007-08-04
2007-08-03
2006-06-09
2007-08-03
2007-02-21
2002-04-15
2002-04-15
2007-04-22
2006-02-15
2007-05-19
2005-07-29
2007-06-27
2006-07-26

22:12
23:11
13:50
17:37
17:37
06:20
22:02
10:00
13:23
21:55
14:05
10:09
20:35
10:10
19:22
23:00
23:00
16:01
21:34
03:04
13:17
21:56
03:09

DIR_COLORS
HOSTNAME
X11/
a2ps-site.cfg
a2ps.cfg
acpi/
adjtime
asciidoc/
asound.state
at.deny
blkid.tab
bluetooth/
bootptab
cron.daily/
cron.hourly/
cron.monthly/
cron.weekly/
csh.login
cups/
dbus-1/
default/
dhclient.conf
dhcpc/

No Windows, todas as suas definies em termos de configurao ficam


armazenadas em seu sistema de registro, que por sua vez inicializado
atravs do aplicativo regedit.exe. Embora funcional e centralizalizador,
infelizmente ele pouco intuitivo e sem uma documentao eficiente. J
nos sistemas GNU/Linux, suas definies ficam registradas em arquivostextos de configurao, bem mais fcil de ser editado manualmente.
A edio de arquivos de configurao um aspecto importante na

12/128

administrao de sistemas GNU/Linux1, pois todos os possveis


parmetros e variveis de sistema so armazenados nestes arquivos. Por
este motivo, de extrema importncia o conhecimento de suas definies
e particularidades.
As definies e particularidades dos arquivos de configurao contidos em
/etc e necessrios para o nosso entendimento do funcionamento do
sistema, sero apresentados no decorrer desta literatura.

/HOME DADOS

PESSOAIS

Em virtude dos sistemas Unix-likes terem sidos concebidos para serem


sistemas multi-usurios, o diretrio /home designado exclusivamente
para o armazenamento dos arquivos pessoais das contas de usurio do
sistema, incluindo personalizaes especficas de sua conta.
$ cd /home
$ ls -l
total 1
drwx--x--x 19 darkstar users 1248 2007-08-05 08:04 darkstar/
drwxr-xr-x 2 root
root
48 2006-08-06 22:50 ftp/
$ _

Para cada conta de usurio criado, acrescentado neste diretrio um


subdiretrio que utiliza a mesma nomenclatura definida para ser o
apelido. Por exemplo, para conta do usurio darkstar, teremos um
diretrio /home/darkstar/ para o armazenamento de todos os arquivos e
configuraes pessoais desta conta.

/LIB BIBLIOTECAS

ESSENCIAIS

O diretrio /lib contm bibliotecas compartilhadas necessrias para a


execuo dos arquivos contidos nos diretrios /bin e /sbin. Ainda neste
diretrio so encontrados os mdulos do kernel.
$ cd /lib
$ ls -l | more
total 7746
lrwxrwxrwx 1 root
-rwxr-xr-x 1 root
drwxr-xr-x 2 root
-rwxr-xr-x 1 root
lrwxrwxrwx 1 root
-rwxr-xr-x 1 root
lrwxrwxrwx 1 root
libBroke
nLocale-2.5.so*
-rwxr-xr-x 1 root

root
root
root
root
root
root
root
root

12
7260
752
131484
9
7056
22

2007-08-03
2007-01-25
2007-04-23
2007-06-19
2007-08-03
2007-06-19
2007-08-03

10:01
02:25
20:00
17:57
10:07
17:57
10:07

cpp -> /usr/bin/cpp*


e2initrd_helper*
firmware/
ld-2.5.so*
ld-linux.so.2 -> ld-2.5.so*
libBrokenLocale-2.5.so*
libBrokenLocale.so.1 ->

16022 2007-06-19 17:57 libSegFault.so*

De acordo com as definies da FHS, todos os arquivos de configurao devero


estar armazenados no diretrio /etc da a sua importncia. Este diretrio contm
uma estrutura que comporta uma infinidade de arquivos e diretrios, o qual
renderia o livro inteiro se todos eles fossem estudados.

13/128

lrwxrwxrwx 1 root
libacl.so.1.1.0*
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
libattr.so.1.1.0
*
-rwxr-xr-x 1 root
lrwxrwxrwx 1 root
libblkid.so.1.0
*
-rwxr-xr-x 1 root
lrwxrwxrwx 1 root
lrwxrwxrwx 1 root
libbz2.so.1.0.4
*
-rwxr-xr-x 1 root
--More--

root

15 2007-08-03 09:59 libacl.so.1 ->

root
root
root
root

23512
13288
13
16

2006-12-11
2007-06-19
2007-08-03
2007-08-03

22:54
17:57
10:07
09:59

libacl.so.1.1.0*
libanl-2.5.so*
libanl.so.1 -> libanl-2.5.so*
libattr.so.1 ->

root
root

12324 2006-12-11 22:53 libattr.so.1.1.0*


15 2007-08-03 09:59 libblkid.so.1 ->

root
root
root

28712 2007-01-25 02:25 libblkid.so.1.0*


13 2007-08-03 09:59 libbz2.so.1 -> libbz2.so.1.0*
15 2007-08-03 09:59 libbz2.so.1.0 ->

root

66444 2007-01-24 20:33 libbz2.so.1.0.4*

Estes mdulos so armazenados em uma estrutura especial, definida em


/lib/modules. J as bibliotecas necessrias para as aplicaes hospedadas
em /usr no pertencem ao /lib.

/MEDIA

/MNT PONTOS

DE MONTAGENS

Os diretrios /media e /mnt foram definidos para serem utilizados


exclusivamente para a montagem de unidades. A diferena entre os dois
est justamente no tipo de unidade a ser desmontada.
$ cd /mnt
$ ls -l
total 8
-rw-r--r-- 1 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwx------ 10 darkstar
drwxr-xr-x 2 root
dr-x------ 1 root
drwxr-xr-x 2 root
$ _

root
376 2006-09-26
root
48 2006-09-25
root
48 2002-03-16
root
48 2006-09-25
root
48 2007-08-04
root
48 2002-03-16
root
48 2002-03-16
root
48 2006-09-25
users 224 2007-08-04
root
48 2006-09-25
root 4096 2007-08-05
root
48 2006-09-25

00:09
22:02
04:34
22:02
13:28
04:34
04:34
22:02
15:08
22:03
00:59
22:02

README
cdrecorder/
cdrom/
dvd/
flash/
floppy/
hd/
memory/
pkg/
tmp/
win/
zip/

O /media dever ser utilizado exclusivamente para a montagem de mdias


removveis, como DVDs, disquetes e memrias eletrncias em geral. 2 J
no /mnt se concentrar a montagem de volumes de uso provisrio, como
uma partio de um HD, por exemplo.
2

Em algumas distribuies, a montagem de determinadas unidades disquetes e


CD/DVD-ROMs so feitas diretamente num diretrio situados na raz /floppy e /
cdrom, respectivamente.

14/128

/OPT COMPATIBILIDADE

ENTRE APLICATIVOS

O diretrio /opt, apesar de no ser mais especificado na norma FHS, foi


mantido em virtude da necessidade de manter a compatibilidade com
antigos programas que ainda so muito utilizados atualmente.
$ cd /opt
$ ls -l
total 0
drwxr-xr-x 8 darkstar users 352 2007-06-17 11:40 openoffice.org2.2/
$ _

Em uma consulta que realizamos na pgina eletrnica da Slackware


LinuxBR, obtivemos outras informaes muito interessantes:
Pacotes de software opcional. A idia atrs do /opt que cada pacote de
software seja instalado para /opt/<software package>, o que facilita para
uma desinstalao subseqente. Slackware distribui algumas coisas no /opt
(como o KDE em /opt/kde), mas voc livre para colocar o que quiser no
/opt. -> [Estrutura de diretrios do Slackware LinuxBR, por r_linux &
mistif].

Embora seja citada a manuteno do KDE em /opt/kde, atualmente este


ambiente grfico mantido na hierarquia de /usr. J a sute
OpenOffice.org ainda mantida em /opt, por se tratar de um software
instalado parte.
Num futuro no muito distante, o /opt ser removido em definitivo.

/PROC INFORMAES

E PROCESSOS DO KERNEL

O diretrio /proc contm um sistema de arquivo virtual, com informaes


gerais do sistema e processo do kernel.
$ cd /proc
$ ls
1/
212/
1000/ 213/
1070/ 214/
1348/ 215/
173/
216/
174/
2229/
175/
2311/
178/
2315/
180/
2680/
192/
2688/
2/
2696/
206/
2701/
207/
2702/
208/
2708/
209/
2709/
210/
2712/
211/
2719/
$ _

2721/
2726/
2728/
2761/
2763/
2764/
2768/
2769/
2774/
2819/
2820/
2823/
2825/
2827/
2829/
2834/
2836/

2837/
2839/
2841/
2846/
2848/
2850/
2852/
2856/
2857/
2858/
2861/
2877/
2906/
2933/
2944/
2949/
2960/

3/
3280/
3281/
3319/
4/
5/
6/
83/
84/
890/
939/
944/
996/
acpi/
asound/
buddyinfo
bus/

cmdline
config.gz
cpuinfo
crypto
devices
diskstats
dma
driver/
execdomains
fb
filesystems
fs/
i2o/
ide/
interrupts
iomem
ioports

irq/
kallsyms
kcore
key-users
keys
kmsg
loadavg
locks
mdstat
megaraid/
meminfo
misc
modules
mounts@
mpt/
mtrr
net/

partitions
scsi/
self@
slabinfo
stat
swaps
sys/
sysrq-trigger
sysvipc/
timer_list
tty/
uptime
version
vmstat
zoneinfo

15/128

Na verdade, o seu contedo no faz parte da estrutura de arquivos do


sistema; conforme j dito, ele apenas um sistema de arquivo virtual para
que os administradores do sistema tenham acesso as informaes do
processamento do kernel em forma de arquivos para consulta:
$ cat /proc/cpuinfo
processor
: 0
vendor_id
: AuthenticAMD
cpu family
: 6
model
: 8
model name
: AMD Athlon(tm) XP 2000+
stepping
: 1
cpu MHz
: 1668.877
cache size
: 256 KB
fdiv_bug
: no
hlt_bug
: no
f00f_bug
: no
coma_bug
: no
fpu
: yes
fpu_exception
: yes
cpuid level
: 1
wp
: yes
flags
: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow ts
bogomips
: 3341.26
clflush size
: 32
$ _

Estas e muitas outras informaes podero ser obtidas diretamente


atravs da leitura destes arquivos-textos. Para maiores informaes,
consultem a 3a. Parte: A Instalao -> Aps a instalao....

/ROOT ADMINISTRADOR

DO SISTEMA

O diretrio /root definido para ser utilizado exclusivamente no


armazenamento de dados e arquivos pessoais do superusurio o root.
# cd /root
# ls -l
total 100
-rw-r--r-- 1 root root 1808 2002-04-17 01:21 loadlin16c.txt
-rw-r--r-- 1 root root 97874 2002-04-17 01:20 loadlin16c.zip
# _

Ele mantido na raz principal e no situado em /home, em decorrncia


de uma possibilidade de pane geral do sistema, caso este esteja separado
em uma partio. Ao iniciarmos sistema como superusurio para realizar
alguma tarefa de manuteno especfica, ficaramos presos a necessidade
de ter seus arquivos pessoais disponveis, e como provavelmente esta
partio no se encontrar (pelo fato de utilizar o nvel de manuteno),
teremos complicaes para realizarmos a autenticao do superusurio.
No recomendado o uso deste diretrio para qualquer finalidades que
16/128

no seja para a administrao e/ou manuteno do sistema, em especial


atividades comuns para os usurios tais como leitura do correio
eletrnico, armazenamento de dados diversos, etc. Para estas atividades,
o administrador dever ter ou criar para si uma conta de usurio comum.

/SBIN BINRIOS

ESSENCIAIS DO SISTEMA

O diretrio /sbin somente armazena arquivos binrios essenciais para a


administrao do sistema, onde os mesmos so utilizado somente pelo
superusurio ou durante a inicializao do sistema.
$ cd /sbin
$ ls -l | more
total 12337
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
lrwxrwxrwx 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
lrwxrwxrwx 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwxr-xr-x 1 root
-rwx------ 1 root
-rwxr-xr-x 1 root
-r-xr-xr-x 1 root
--More--

bin
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root

4920
33252
14476
38284
26600
10628
17604
7744
8936
10888
21120
7
3172
53348
600876
6
65772
199600
98624
353276
6285
43072
33828

2003-02-22
2007-06-24
2007-06-24
2007-04-30
2006-08-14
2007-05-09
2007-01-25
2007-01-25
2007-06-24
2007-05-14
2007-04-30
2007-08-03
2007-05-14
2006-06-14
2007-06-20
2007-08-03
2007-01-25
2007-05-31
2007-02-21
2007-06-27
2007-06-27
2006-07-26
2007-06-02

21:47
04:33
04:33
01:34
22:14
14:59
02:25
02:25
04:33
23:46
01:34
10:00
23:46
03:10
21:00
10:10
02:25
21:28
19:22
21:56
21:56
03:09
18:36

accton*
adjtimex*
agetty*
arp*
arpd*
arping*
badblocks*
blkid*
blockdev*
bootlogd*
brctl*
clock -> hwclock*
consoletype*
convertquota*
cryptsetup.static*
ctstat -> lnstat*
debugfs*
debugreiserfs*
depmod*
dhclient*
dhclient-script*
dhcpcd*
dmsetup*

Todos os executveis necessrios para diversas outras atividades


pertinentes estaro disponveis, como as operaes com pacotes,
mdulos, processos, configuraes, parties, etc.

/TMP ARQUIVOS

TEMPORRIOS

O diretrio /tmp armazena arquivos temporrios gerados pelo sistema.


Todos os usurios tm permisso de leitura e escrita nele.
$ cd /tmp
$ ls -l
total 1
srwxr-xr-x 1 darkstar users
0 2007-08-05 08:05
OSL_PIPE_1000_SingleOfficeIPC_8

17/128

9e9417147ffe9a2cc78461f15f03871=
drwx------ 2 darkstar users 120 2007-08-05
drwx------ 3 darkstar users 536 2007-08-05
drwx------ 2 darkstar users 48 2007-08-04
drwx------ 2 root
root
48 2007-08-04
drwxr-xr-x 2 darkstar users 80 2007-08-05
$ _

08:05
09:58
21:36
13:21
10:02

kde-darkstar/
ksocket-darkstar/
mc-darkstar/
mc-root/
svbae.tmp/

Geralmente este diretrio limpo a cada inicializao ou a intervalos


relativamente freqentes. Por este motivo, deveremos evitar a guarda de
arquivos por um determinado tempo neste diretrio, mesmo aqueles
inteis.

/SRV INFORMAES

DE SERVIOS

(INTERNET)

Levemente diferenciado de /opt, o /srv armazena dados de aplicaes


(servios) direcionados para redes, como o servidor Web Apache.
$ cd /srv
$ ls -l
total 0
lrwxrwxrwx 1 root root 8 2007-08-03 10:10 httpd -> /var/www/
lrwxrwxrwx 1 root root 8 2007-08-03 10:10 www -> /var/www/
$ _

A diferena notria: o /opt armazena os dados dos programas (binrios e


componentes), ao passo que o /srv apenas os dados gerados.

/SYS SUPORTE

AO DISPOSITIVOS DE HARDWARE

O diretrio /sys, tal como o /proc, um sistema virtual de arquivos que


tem como objetivo, mostrar as informaes relacionadas aos hardware.
$ cd /sys
$ ls -l
total 0
drwxr-xr-x 30 root root
drwxr-xr-x 18 root root
drwxr-xr-x 46 root root
drwxr-xr-x 10 root root
drwxr-xr-x
3 root root
drwxr-xr-x
3 root root
drwxr-xr-x
4 root root
drwxr-xr-x 131 root root
drwxr-xr-x
3 root root
drwxr-xr-x
2 root root
$ _

0
0
0
0
0
0
0
0
0
0

2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05
2007-08-05

05:03
05:03
08:05
05:03
05:03
05:03
05:03
08:05
05:03
08:04

block/
bus/
class/
devices/
firmware/
fs/
kernel/
module/
o2cb/
power/

Enquanto que /proc traz referncias mais ligadas ao sistema, o /sys trata
mais especficamente dos dispositivos de hardware em geral.

18/128

/USR RECURSOS

DOS SISTEMAS

UNIX

O diretrio /usr abreviao de Unix Resource System (recursos dos


sistemas Unix) a segunda maior hierarquia de diretrios do sistema.
Todos os aplicativos e utilitrios do sistema encontram-se armazenados
aqui: ele como uma espcie de Arquivos de Programas do Windows.
$ cd /usr
$ ls -l
total 280
lrwxrwxrwx
drwxr-xr-x
drwxr-xr-x
lrwxrwxrwx
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
lrwxrwxrwx
drwxr-xr-x
lrwxrwxrwx
$ _

1
2
2
1
2
2
536
2
4
234
2
100
13
11
45
2
149
1
4
1

root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root

root
5 2007-08-03 10:13 X11 -> X11R6/
root
192 2007-08-03 10:13 X11R6/
root
192 2007-08-03 09:59 X11R6.bak/
root
8 2007-08-03 09:59 adm -> /var/adm/
root 89544 2007-08-04 16:03 bin/
root
48 1993-11-26 01:40 dict/
root 17640 2007-08-04 15:12 doc/
root
1112 2006-09-08 21:51 games/
root
96 2007-06-24 03:57 i486-slackware-linux/
root 45312 2007-05-10 18:52 include/
root 11736 2007-02-21 19:58 info/
root 106280 2007-08-04 15:12 lib/
root
2680 2006-11-08 18:10 libexec/
root
264 2007-08-04 15:04 local/
root
1648 2006-11-08 18:10 man/
root
9120 2007-06-05 20:28 sbin/
root
4040 2007-08-04 15:12 share/
root
10 2007-08-03 09:59 spool -> /var/spool/
root
128 2007-08-03 10:04 src/
root
8 2007-08-03 09:59 tmp -> /var/tmp/

Embora nas antigas edies tenhamos descrito a funo de cada diretrio,


faremos apenas alguns comentrios sobre os principais subdiretrios. Por
exemplo, o /usr/X11 define a localizao do servidor grfico X.org;
/usr/doc responsvel pela documentao geral; o /usr/include a
referncia padro dos compiladores C/C++ para a busca os cabealhos
(headers) no ato da compilao de programas; o /usr/local como o
prprio nome indica uma localizao padro para softwares que so
instalados localmente (no fazem parte da distribuio); e o /usr/src
armazena o cdigo-fonte das diversas aplicaes, inclusive o prprio
kernel-source!

/VAR VARIVEIS
O diretrio /var contm informaes variveis, como arquivos e diretrios
em fila de execuo, arquivos temporrios transitrios, etc.
$ cd /var
$ ls -l
total 2
lrwxrwxrwx
lrwxrwxrwx

1 root root
1 root root

5 2007-08-03 09:59 X11 -> X11R6/


23 2007-08-03 09:59 X11R6 -> ../../usr/X11R6/lib/X11/

19/128

lrwxrwxrwx
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxrwxrwt
drwxr-xr-x
lrwxrwxrwx
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
lrwxrwxrwx
drwxr-xr-x
drwxr-xr-x
drwxrwxrwt
drwxr-xr-x
drwxr-xr-x
$ _

1
8
3
2
21
3
14
1
12
3
15
1
15
5
4
6
2

root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root

root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root

3
200
72
48
520
104
752
10
288
80
664
15
376
128
152
144
136

2007-08-03
2006-11-08
2007-06-19
2007-04-03
2006-11-08
2007-08-05
2007-08-05
2007-08-03
1993-11-25
2007-06-08
2007-08-05
2007-08-03
2003-06-05
2007-04-29
2007-08-04
2007-07-01
2007-08-03

09:59
18:10
17:27
14:36
18:10
08:05
08:04
09:59
00:29
02:42
08:05
09:59
18:43
19:29
21:44
20:12
10:10

adm -> log/


cache/
db/
empty/
lib/
lock/
log/
mail -> spool/mail/
man/
named/
run/
rwho -> /var/spool/rwho/
spool/
state/
tmp/
www/
yp/

Raramente iremos realizar intervenes manuais nestas estruturas;


porm, ser interessante que venhamos a conhecer alguns destes
diretrios, com o objetivo de coletar informaes sobre o funcionamento
do sistema. Em determinadas circunstncias, tais informaes podem ser
muito teis para o planejamento e sucesso de certas intervenes, como o
/var/log.
O /var/log armazena todas as informaes geradas pelo sistema atravs de
arquivos-textos chamados logs. Sua estrutura compe-se tanto de
arquivos quando de diretrios, que por sua vez, armazenam outros
arquivos...
$ cd /var/log
$ ls -l
total 1397
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r----- 1 root
-rw------- 1 root
-rw-r----- 1 root
drwxr-xr-x 2 root
-rw-r----- 1 root
-rw-r--r-- 1 root
-rw-r----- 1 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r----- 1 root
-rw-r----- 1 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root

root 37922 2007-08-08 18:24 Xorg.0.log


root 38000 2007-08-08 16:56 Xorg.0.log.old
root
8047 2007-08-08 18:00 acpid
root
0 2007-08-03 10:00 btmp
root
0 2002-04-06 20:13 cron
root
48 2007-05-09 18:28 cups
root 48260 2007-08-08 18:00 debug
root 15445 2007-08-08 18:00 dmesg
root 24024 2007-08-04 13:50 faillog
root
48 2007-08-03 10:10 httpd
root
48 2006-12-27 20:27 iptraf
root 33598 2007-08-08 18:24 kdm.log
root 292292 2007-08-08 18:00 lastlog
root
0 2002-04-06 20:13 maillog
root 513368 2007-08-08 18:20 messages
root
48 2001-05-15 22:47 nfsd
root 34416 2007-08-07 19:31 packages
root
224 2007-08-07 08:56 removed_packages
root
160 2007-08-07 08:56 removed_scripts
root
48 2006-08-15 00:15 sa
root
48 2007-06-27 00:36 samba

20/128

drwxr-xr-x
-rw-r----drwxr-xr-x
-rw-r-----rw-r----drwxr-xr-x
-rw-rw-r-$ _

2
1
3
1
1
2
1

root
root
root
root
root
uucp
root

root 18848 2007-08-07 19:31


root
6563 2007-08-08 18:18
root
664 2007-05-28 18:04
root
0 2002-03-09 01:29
root 343285 2007-08-08 18:00
root
192 2007-08-03 10:10
utmp 297216 2007-08-08 18:18

scripts
secure
setup
spooler
syslog
uucp
wtmp

Dentre os arquivos principais, poderemos destacar o Xorg.0.log, debug,


dmesg, messages e syslog, pois permitem analisar todas as interaes do
sistema com o hardware, registrando alm das informaes gerais,
inconsistncias, falhas, erros e anomalias das mais variadas espcies.
$ cat dmesg
...
tuner 1-0061: type set to 5 (Philips PAL_BG (FI1216 and compatibles))
tuner 1-0061: type set to 5 (Philips PAL_BG (FI1216 and compatibles))
tuner 1-0063: chip found @ 0xc6 (bt878 #0 [sw])
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: registered device radio0
bttv0: PLL: 28636363 => 35468950 .. ok
input: bttv IR (card=72) as /class/input/input2
Adding 257000k swap on /dev/hda5. Priority:-1 extents:1 across:257000k
input: PC Speaker as /class/input/input3
input: ImPS/2 Generic Wheel Mouse as /class/input/input4
parport: PnPBIOS parport detected.
parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE]
lp0: using parport0 (interrupt-driven).
lp0: console ready
Capability LSM initialized
ReiserFS: hda7: found reiserfs format "3.6" with standard journal
ReiserFS: hda7: using ordered data mode
ReiserFS: hda7: journal params: device hda7, size 8192, journal first block
18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda7: checking transaction log (hda7)
ReiserFS: hda7: Using r5 hash to sort names
NTFS driver 2.1.28 [Flags: R/W MODULE].
NTFS volume version 3.1.
$ _

J dentre os diretrios principais, entram em destaque o packages e o


removed_packages, responsveis por armazenarem dados dos pacotes que
se encontram instalados e/ou removidos posteriormente. O mesmo se d
com as os diretrios script e removed_script, que por sua vez armazenam
os scripts inicializados aps a instalao dos pacotes.
$ cd /var/log/packages
$ ls -l
total 13450
-rw-r--r-- 1 root root
-rw-r--r-- 1 root root
-rw-r--r-- 1 root root
-rw-r--r-- 1 root root
-rw-r--r-- 1 root root

12007
2151
2280
10845
3919

2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03

10:00
09:59
09:59
09:59
10:06

a2ps-4.13b-i386-2
aaa_base-12.0.0-noarch-1
aaa_elflibs-12.0.0-i486-3
aaa_terminfo-5.6-noarch-1
aalib-1.4rc5-i486-2

21/128

-rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r---More--

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root

root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root

1147
2734
1399
5113
1094
2645
64090
829
1509
586
2223
1961
5637
893
6089
2626
1045
11696

2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03
2007-08-03

10:00
09:59
09:59
10:06
10:06
10:00
10:04
10:00
09:59
10:12
10:06
10:06
10:06
10:00
10:06
10:06
10:00
10:06

acct-6.3.2-i386-1
acl-2.2.39_1-i486-2
acpid-1.0.4-i486-2
alsa-lib-1.0.14a-i486-1
alsa-oss-1.0.14-i486-1
alsa-utils-1.0.14-i486-1
amarok-1.4.6-i486-1
amp-0.7.6-i386-1
apmd-3.2.2-i486-1
appres-1.0.1-i486-1
apr-1.2.8-i486-1
apr-util-1.2.8-i486-1
arts-1.5.7-i486-1
ash-0.4.0-i386-1
aspell-0.60.5-i486-2
aspell-en-6.0_0-noarch-4
at-3.1.10-i486-1
atk-1.18.0-i486-1

Em virtude da existncia de antigos programas ainda em vigor, devero


existir alguns subdiretrios para a compatibilidade com os mesmos em
/var. Os diretrios que compe esta estrutura so: /var/backups, /var/cron,
/var/lib, /var/local, /var/msgs e /var/preserve.

SOBRE

A NORMA

FHS

<http://www.pathname.com/fhs/>.

A FHS Filesystem Hierarchy Standard um conjunto de requerimentos


tcnicos que visam estabelecer normas e padres para a estrutura do
sistema de arquivos Unix, derivados e clones. ela quem define quais so
os diretrios que devero existir, a localizao dos arquivos de
configurao, os atalhos simblicos, entre outros, com o intuito de
promover a compatibilidade dos sistemas GNU/Linux e suas aplicaes. 3

CONCLUSO
O conhecimento das caractersticas e particularidades do sistema de
arquivos de um sistema operacional fator de suma importncia para a
sua administrao. Saber as funcionalidades de determinados arquivos e
diretrios, localizao dos arquivos de configurao, permisses de
acesso, tudo isso influencia no momento de uma necessidade de
interveno.
3

O FSSTND Linux Filesystem Structure foi concebido anteriormente e com os


mesmos propsitos da FHS, porm devido a sua pouca rigidez sobre diversos
aspectos, muitas distribuies auto-definiam a localizao de diversos arquivos de
sistema. Os arquivos de inicializao e configurao do sistema eram os que mais
situavam-se fora de uma padronizao especfica, mesmo que estas distribuies
tomassem como base os mtodos de inicializao SystemV e BSD.

22/128

Por mais diferentes que sejam as distribuies, todas elas possuem


basicamente a mesma estrutura do sistema de dados. Graas isto, as
administraes e intervenes necessrias no sistema de dados podero
ser realizadas em quaisquer sistema GNU/Linux sem maiores transtornos.
Eis um dos motivo da importncia de se utilizar os recursos da linha de
comando para interagirmos na manuteno do sistema! &;-D

23/128

II. OS

ARQUIVOS DE DISPOSITIVOS

INTRODUO
Todos os perifricos e recursos do sistema so acessados pelo kernel
atravs de arquivos de dispositivos conhecidos tambm por devices. Se
quisermos formatar um disquete, ser necessrio a utilizao de um
desses arquivos; para acessar a Internet, ser necessrio outro arquivo de
dispositivo; para utilizar um terminal, mais outro... e assim por diante.
Neste captulo iremos conhecer os principais arquivos de dispositivos
chamaremos apenas de devices para facilitar a pronncia.

CLASSIFICAO

Os devices so classificados em 2 categorias, saber: os devices do tipo


caracter e os devices do tipo de bloco.

TIPO

CARACTER

Os devices do tipo caracter so aqueles em que a transferncia de dados


so realizadas de modo serial, ou seja, um caracter por vez. Dentre os
principais exemplos esto as portas paralelas (impressora), portas seriais
(modens), devices de udio, terminais, teclado, mouse, etc.
$ cd /dev
$ ls -l /dev/lp*
crw-rw-r-- 1 root lp 6, 0 2007-08-08 18:00 /dev/lp0
crw-rw-r-- 1 root lp 6, 0 2007-08-08 18:00 /dev/lp1
crw-rw-r-- 1 root lp 6, 0 2007-08-08 18:00 /dev/lp2
$ _

Exemplos de devices do tipo caracter.

TIPO

BLOCO

J nos devices do tipo bloco diferenciam-se do tipo caracter no que


concerne a transferncia de dados pois como o prprio nome diz
feita por blocos, oferecendo grande quantidade de dados por vez. J nesta
categoria esto em geral os devices de armazenamento tais como
disquetes, discos rgidos, CDs & DVDs, dispositivos de armazenamento
USB (memria eletrnica), entre outros, devido ao modo de transferncia
de dados.
$ cd /dev
$ ls -l /dev/hd*
brw-rw---- 1 root disk
brw-rw---- 1 root disk

3,
3,

0 2007-08-08 14:59 /dev/hda


1 2007-08-08 14:59 /dev/hda1

24/128

brw-rw---brw-rw---brw-rw---brw-rw---brw-rw---brw-rw---$ _

1
1
1
1
1
1

root
root
root
root
root
root

disk
3, 2
disk
3, 5
disk
3, 6
disk
3, 7
cdrom 22, 0
cdrom 22, 64

2007-08-08
2007-08-08
2007-08-08
2007-08-08
2007-08-08
2007-08-08

14:59
14:59
14:59
18:00
14:59
14:59

/dev/hda2
/dev/hda5
/dev/hda6
/dev/hda7
/dev/hdc
/dev/hdd

Exemplos de devices do tipo bloco.

ESTRUTURA

/DEV

Existe uma imensa quantidade de devices especficos; porm nesta


literatura, somente conheceremos os mais utilizados pelos usurios
comuns. Estes por sua vez subdividem-se em diversas categorias e
encontram-se armazenados no diretrio /dev.

UNIDADES
DISCOS

EXTERNAS E DE ARMAZENAMENTO

RGIDOS

IDE & CD-ROMS

Todos os discos rgidos conectados a interface IDE utilizam os seguintes


devices para serem acessados pelo sistema:
Discos rgidos IDE & CD-ROMs
hda

1a. unidade na controladora primria mestre.

hda1, hda2... Parties da 1a. unidade na controladora primria.


hdb

2a. unidade na controladora primria escravo.

hdb1, hdb2... Parties da 2a. unidade na controladora primria escravo.


hdc

1a. unidade na controladora secundria mestre.

hdc1, hdc2...

Parties da 1a. unidade na controladora secundria mestre.

hdd

2a. unidade na controladora secundria escravo.

hdd1, hdd2... Parties da 2a. unidade na controladora secundria escravo.

Quanto aos CD-ROMs, na verdade no existem devices para acesso as


unidades leitoras de CD-ROMs atuais, e sim apenas atalhos simblicos
indicando em qual os devices reais estes se encontram. Este
procedimento necessrio face a utilizao dos devices para as diferentes
localizaes (primrio, secundrio, mestre, escravo, etc.) e antigos drivers
de CD-ROMs que no utilizavam a controladoras IDE para serem
conectados ao sistema. Para acess-los, deveremos utilizar o atalho
simblico /dev/cdrom.

25/128

UNIDADES SCSI

SATA

Sem grandes mistrios, estes so os devices para as unidades SCSI e


SATA:
Unidades SCSI
sda

1a. unidade nominal (disco rgido, CD-R/RW, memria eletrnica, etc.).

sda1, 2, 3. Indicativo de particionamento das unidades emuladas.


sda4

Indicativo de unidade, utilizado especificamente pelo Zip-drive.

sdb, sdc...

Unidades seqenciais.

No kernel 2.4, os gravadores de CD-R/W e DVD-R/W so acessados


atravs de emulao SCSI. Por este motivo, eles devem utilizar estes
devices. J para o kernel 2.6, os devices so os mesmos que os utilizados
para os discos rgidos padro IDE.
Em tratando-se de disco rgido, segue-se o mesmo padro das unidades
IDE, somente atentando-se para alterar o caracter h para o caracter s.

DISQUETES
Os disquetes so acessados atravs dos devices /dev/fd[X].
Disquetes
fd0

1a. unidade de disquete em DOS corresponde a letra A:.

fd0d360

1a. unid. de disquete, formato baixa densidade, cap. 360 KB.

fd0h720

1a. unid. de disquete, formato alta densidade, cap. 720 KB.

fd0u1200 1a. unid. de disquete, formato alta densidade, cap. 1200 KB.
fd0u1440 1a. unid. de disquete, formato alta densidade, cap. 1440 KB.
fd1...

2a. unidade de disquete em DOS corresponde a letra B:.

De acordo com as necessidades, existiro circunstncias em que iremos


referir-se a um dos devices especficos. Por exemplo, para formatao,
iremos defin-lo como /dev/fd[X][D], onde [X] indica o device da unidade
em questo e [D] a densidade da mesma.

DISPOSITIVOS

DE UDIO

Em vista dos diferentes recursos de udio presentes na maioria das placas


de som do mercado, os sistemas GNU/Linux no utilizam somente um, e
sim um conjunto de devices para o acesso a estes dispositivos.
Segue abaixo,
compreenso:

uma

simples

listagem

padro

para

uma

melhor

26/128

Sistema de udio (antigo sistema OSS)


audio

Sintetizador de udio (wave-table).

dsp

Voz digitalizada.

midi

Sintetizador de instrumentos (MIDI).

mixer

Ajustes e configuraes (mixagem).

sequencer Sequenciador.

Todos estes devices pertencem ao grupo audio, onde devemos inclu-lo


nas configuraes das contas de usurio para que as propriedades de
udio estejam presentes. Para obterem maiores informaes de como
proceder, consultem na 4a. Parte: Ajustes & Configuraes -> udio
Placa de som.

FAX-MODEM (PORTAS

SERIAIS)

As tradicionais placas de fax-modem conhecidas popularmente como


hardmodens so referidas no sistema atravs dos devices /dev/ttyS[X].
Portas seriais
ttyS0 Porta serial 1 equivale ao COM1.
ttyS1 Porta serial 2 equivale ao COM2.
ttyS2 Porta serial 3 equivale ao COM3.
ttyS3 Porta serial 4 equivale ao COM4.

J no caso dos softmodens, a maior parte destes perifricos utilizam um


device especial, criado pelos drivers para a sua instalao.
Para obterem maiores informaes sobre estes perifricos, consultem na
4a. Parte: Ajustes & Configuraes -> Modem placas de fax-modem.

CONSOLE

TERMINAL

Um terminal uma interface entre o usurio e o sistema. Ao serem


inicializados, utiliza o device /dev/tty[X].
Console terminal
ttyX

Um terminal propriamente dito.

ttypX Terminais SSH/Telnet.

Somente teremos disponibilidade diversos terminais desde que o kernel


tenha o suporte aos terminais virtuais. Felizmente, todos os kernels so
pr-compilados com este recurso habilitado.

27/128

SOBRE

O UDEV

<http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html>.

O uDEV subsistema desenvolvido para o kernel, que tem como objetivo


atuar como gerenciador de arquivos de dispositivos (devices) dinmicos.
Ele o responsvel pela criao automatica dos devices relacionados aos
dispositivos que se encontram disponveis, gerando assim um nico
device, ao invs de uma estrutura complexa e infindvel de devices.
No existem muitas intervenes necessrias para serem feitas nas
configuraes do uDEV; porm, suas regras relacionadas ao disparo de
aes, que por sua vez so causadas quando um novo dispositivo
conectado (p. ex. pendrives) podem ser perfeitamente customizadas. Tais
regras se encontram armazenadas em /etc/udev/rules.d.
$ cd /etc/udev/
$ ls -l
total 4
drwxr-xr-x 2 root root 440 2007-08-12 19:29 rules.d/
-rw-r--r-- 1 root root 576 2007-05-17 16:30 udev.conf

(...)
$ cd rules.d/
$ ls -l
total 120
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root
-rw-r--r-- 1 root
$ _

root 16054 2007-06-28 21:27 50-udev.rules


root 2199 2007-05-19 03:04 60-bluetooth.rules
root
926 2007-03-16 17:00 60-pcmcia.rules
root 1289 2007-06-02 18:36 64-device-mapper.rules
root
511 2007-08-12 16:29 75-network-devices.rules
root 1414 2007-08-04 10:20 75-optical-devices.rules
root 8825 2007-05-27 01:52 80-libmtp.rules
root 1704 2007-05-27 01:59 80-libnjb.rules
root 2505 2007-06-24 03:39 80-libpisock.rules
root 61148 2007-05-27 02:12 80-libsane.rules
root
82 2007-06-27 21:48 90-hal.rules

CONCLUSO
Acreditamos que um simples passeio pelos devices mais utilizados pelo
sistema possa deixar os usurios mais familiarizados com a administrao
e manuteno do sistema operacional em geral. Lembrem-se: os sistemas
Unix em geral referem-se a qualquer device do sistema como arquivo.
Quaisquer interveno necessria, sempre tenha conscincia de que
poder intervir nos arquivos da estrutura /dev. &;-D

28/128

III. A

LINHA DE COMANDO

INTRODUO
A disponibilidade de diversos utilitrios grficos, facilitam muito a
administrao de sistemas GNU/Linux. Porm, de acordo com as
necessidades, facilidades de uso e recursos (ou ausncia destes), existiro
diversas circunstncias em que teremos de usar tais recursos atravs de
um aplicativo especial chamado interpretador de comando, tambm
conhecido popularmente como a linha de comando ou terminal.4
Neste captulo, iremos conhecer alguns recursos e funcionalidades da
linha de comando. Em especial, destacaremos o BASH, o interpretador de
comando oficial dos sistemas GNU/Linux, segundo as especificao LSB.

O BOURNE AGAIN SHELL

<http://www.gnu.org/software/bash/>.

O interpretador de comandos um programa especial que permite a


interao do usurio com o sistema operacional atravs da utilizao de
comandos especiais via teclado. nele em que coordenamos muitas das
atividades administrativas pertinentes as funes do kernel, como a
manipulao de arquivos, a edio de configuraes, o gerenciamento de
processos, entre outras atividades. Nos sistemas GNU/Linux, o BASH
Bourne Again Shell o interpretador de comandos oficial.

Infelizmente muitos usurios tm conceitos errneos sobre o uso da linha de


comando. J escutamos diversos comentrios especficos e sem fundamentos, tais
como isso coisa do passado..., voltar aos tempos do DOS..., ningum mais
usa isto..., pra qu mexer nessa !%#&*..., etc., mas em sistemas GNU/Linux ela
essencial e indispensvel para o bom funcionamento do sistema.

29/128

Terminal virtual (Konsole) do KDE.

Desenvolvido pelo Projeto GNU, o BASH uma derivao do antigo Shell


Bourne, que leva o nome de seu criador original: Steven Bourne. O BASH
um trocadinho, pois o Again significa novamente, ou seja: Novamente
um Shell Bourne. O Shell Bourne e o BASH so compatveis, embora
diversas melhorias tenham sido feitas neste ltimo...
primeira vista, o BASH lembra-se muito o MS-DOS, por ele
disponibilizar uma tela de texto preta e uma linha de comando. Nesta
literatura o utilizaremos apenas as instrues bsicas e essenciais,
necessrias para garantirmos a boa manuteno de um sistema para o uso
em desktops.
Por se tratar de um requerimento das especificaes do padro LSB,
torna-se essencial conhecer as suas caractersticas e as funcionalidades
bsicas.

INFORMAES

E MTODOS ESSENCIAIS

So inmeros os recursos disponibilizados pelo BASH; por isto, iremos


omitir as instrues detalhadas e desnecessrias. Seguem abaixo apenas
algumas informaes e mtodos bsicos e essenciais para obtermos um
excelente rendimento nas intervenes que iremos realizar mais frente.

COMPLEMENTO

DA TECLA

<TAB>

Em muitas circunstncias, teremos a necessidade de digitar toda a


nomenclatura de um comando, arquivo ou diretrio na linha de comando.
Ao invs de digitarmos cada caracter, poderemos apenas digitar as
iniciais e complementar com a tecla <TAB>, onde o sistema se
encarregar de localizar tal nomenclatura e preencher com os dados
restantes.
30/128

Por exemplo, ao digitarmos...


$ mce<TAB>

... o resultado final ser...


$ mcedit _

Simples e prtico, evitando o inconveniente de ter que redigitar toda a


nomenclatura caso ocorram simples erros de digitao.
Dependendo das circunstncias, podero existir mais de uma ocorrncia
para a complementao do comando a ser digitado:
$ xorg<TAB>

... resultar em...


$ xorg<TAB>
xorgcfg
xorgconfig
$ xorg_

xorgsetup

Nestes casos, bastar complementar aos poucos os caracteres restantes e


teclar novamente <TAB>, ou ainda, digitar o comando por inteiro.
O mesmo se d para a digitao dos nomes de arquivos, pois...
# rpm -ivh quake-1<TAB>

... resultar em...


# rpm -ivh quake-1.1-6cl.i386.rpm _

USO DE EXPRESSES

Expresses so conjuntos de smbolos e caracteres que visam especificar


uma determinada informao ou o conjunto delas. Estes so conhecidos
popularmente como curingas, que podem representar um valor, uma
definio, um conjunto destes e at mesmo um comando.
Descreveremos aqui os principais caracteres utilizados em sistemas GNU/
Linux e suas principais funcionalidades:

Asterisco (*): popularmente representa tudo, ou seja, qualquer


campo ou instruo que estiver sendo representado por um
asterisco, indicar todos os possveis caracteres;

Ponto (.) e ponto-ponto (..): O ponto representa entrada de


diretrios, ao passo que o ponto-ponto - .. - representa o diretriopai (diretrio anterior);

Interrogao (?): similar ao caracter *, porm somente


representa os caracteres que se situarem na posio onde este se
encontra;

Pipes (|): processa a sada de um comando para que seja usado


como dados ou parmetros em outro comando, onde dois pipes
servem para executar 2 comandos seqenciais, independente de
haver erro no 1o. comando, como tambm utilizado para
31/128

representar a expresso lgica OR (ou);

E-comercial (&): execuo de aplicaes em 2o. plano


(background), onde duas && servem para executar 2 comandos
seqenciais, desde que o primeiro no retorne nenhum erro, como
tambm utilizado para representar a expresso lgica AND (e).

Ao contrrio do que muitos pensam, existem diferenas entre eles: os


smbolos especiais possuem funes especficas; j os caracteres coringas
representam e/ou substituem outros caracteres e/ou conjunto de letras.

AS

CORES PERSONALIZADAS

Outra ponto a ser observado so as cores dos arquivos e diretrios a


serem exibidos em modo texto, pois conforme j dito anteriormente, os
sistemas GNU/Linux utilizam como padro o interpretador de comandos
BASH. Nele, temos padronizado o seguinte perfil de cores:

Amarelo: dispositivos do sistema (devices);

Azul: diretrios (seguidos pelo caracter /);

Azul ciano: atalhos simblicos (links);

Cinza: arquivos diversos ou desconhecidos;

Magenta: arquivos de imagens bitmaps (JPEG, GIF, PNG, etc.);

Verde: arquivos executveis (arquivos de lote e binrios); 5

Vermelho: arquivos compactados (inclusive pacotes de instalao).

Vale lembrar que, dependendo tanto dos atributos especficos dos


arquivos, quanto das configuraes utilizadas no terminal, muitos podero
ter cores diferentes dos padres acima citados. o caso de arquivos com
atributos para execuo (flag x), que aparecem com a cor verde no vdeo,
seja uma imagem, um arquivo compactado, etc.

NOMENCLATURA

DIFERENCIADA

Da mesma forma que os arquivos e diretrios apresentam um sistema de


cores para a sua identificao, os mesmos possuem sinais especiais para
informar determinados atributos:
Sinal / Significado / Exemplo
.

Arquivo oculto.

Arquivo executvel. Programa*

@ Atalho.

.Confidencial

Programa@ -> Programa-1.0.2

Lembre-se que de acordo com o interpretador de comando utilizado,


5

Estes indicam arquivos com permisses para execuo, ainda que sejam um texto,
uma imagem, um pacote compactado e outros quaisquer.

32/128

podero ser exibidos ou no, tais atributos.

ACESSO

DOCUMENTAO ELETRNICA

Uma das caractersticas interessantes dos sistemas GNU/Linux est na


forte documentao eletrnica dos utilitrios e comandos disponveis,
onde uma simples consulta poder resolver a maioria das dvidas
existentes. Tais informaes podem ser acessados no BASH atravs da
execuo do prprio comando, porm com a adio do parmetro --help:
$ ps --help
********* simple selection ********* ********* selection by list *********
-A all processes
-C by command name
-N negate selection
-G by real group ID (supports names)
-a all w/ tty except session leaders -U by real user ID (supports names)
-d all except session leaders
-g by session leader OR by group name
-e all processes
-p by process ID
T all processes on this terminal
-s processes in the sessions given
a all w/ tty, including other users -t by tty
g all, even group leaders!
-u by effective user ID (supports names)
r only running processes
U processes for specified users
x processes w/o controlling ttys
t by tty
*********** output format ********** *********** long options ***********
-o,o user-defined -f full
--Group --User --pid --cols
-j,j job control
s signal
--group --user --sid --rows
-O,O preloaded -o v virtual memory --cumulative --format --deselect
-l,l long
u user-oriented
--sort --tty --forest --version
X registers
--heading --no-heading
********* misc options *********
-V,V show version
L list format codes f ASCII art forest
-m,m show threads
S children in sum
-y change -l format
-n,N set namelist file c true command name n numeric WCHAN,UID
-w,w wide output
e show environment
-H process heirarchy
$ _

Se for necessria a obteno de informaes mais detalhadas, o man...


$ man ps
...
PS(1)

Linux User's Manual

PS(1)

,
NAME
ps - report process status
SYNOPSIS
ps [options]
DESCRIPTION
ps(1) gives a snapshot of the current processes. If you
want a repetitive update of this status, use top.
COMMAND-LINE OPTIONS
This version of ps accepts several kinds of options.

33/128

Unix98 options may be grouped and must be preceeded


by a dash.
BSD options may be grouped and must not be used
with a dash.
GNU long options are preceeded by two dashes.
Options of different types may be freely mixed.
Set the I_WANT_A_BROKEN_PS environment variable
lines 1-28
...

to

force

... e o info...
$ info ps
...
File: a2ps.info,
s

Node: psmandup,

Next: psset,

Prev: pdiff,

Up: Contribution\

`psmandup'
==========
I personally hate to print documents of hundreds of pages on a single
sided printer. Too bad, here there are no Duplex printers. The idea is
then simply first to print the odd pages, then the even in reversed
order. To make sure one flips the page in the meanwhile, the second
half should be printed from the manual feed tray.
Make a shell script that automates this, and you get `psmandup'.
* Menu:
* Invoking psmandup::

Command Line Interface

--zz-Info: (a2ps.info.gz)psmandup, 18 lines --All-- Subfile: a2ps.info-5.gz----Welcome to Info version 4.8. Type ? for help, m for menu item.

... certamente atendero perfeitamente bem a estes propsitos.

EQUIVALNCIAS

ENTRE O

BASH

MS-DOS

Apesar de se encontrar praticamente em desuso por usurios do


Windows, muitos usurios sentem-se confortveis ao realizar diversas
intervenes com a utilizao da linha de comando do MS-DOS,
especialmente quando no h possibilidade de inicializar o Windows para
estes eventos. J em sistemas GNU/Linux, a linha de comando no s se
encontra presente, como tambm fundamental para a manuteno geral
do sistema e ainda possui uma eficincia muito superior que
encontramos no velho MS-DOS.

34/128

ESTRUTURA

DE DIRETRIOS

A principal diferena entre os sistemas GNU/Linux e o MS-DOS encontrase na estrutura de diretrios do sistema. Enquanto o MS-DOS suporta
somente a formato de nomes 8.3 (at a verso 6.22) e dispe somente de
permisses de acesso para somente leitura e ocultao (atributos)...
C:\>dir
O volume na unidade C DARKSTAR
O nmero de srie do volume 0816-A972
Pasta de C:\
12/05/2004
24/05/2004
12/05/2004
12/05/2004
12/05/2004

20:03
<DIR>
WINDOWS
23:23
<DIR>
Documents and Settings
20:18
<DIR>
Arquivos de programas
20:19
0 CONFIG.SYS
20:19
0 AUTOEXEC.BAT
2 arquivo(s)
0 bytes
3 pasta(s) 3.165.028.352 bytes disponveis

C:\>_

... o BASH suporta nomes com at 255 caracteres, alm do simples e


eficiente sistema permisses de acesso de leitura, escrita e execuo.
$ ls -l
total 82
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
dr-xr-xr-x
drwx--x--drwxr-xr-x
drwxrwxrwt
drwxr-xr-x
drwxr-xr-x
$ _

2
2
15
45
5
4
6
4
73
25
2
31
21
17

root
root
root
root
root
root
root
root
root
root
root
root
root
root

bin
root
root
root
root
root
root
root
root
root
bin
root
root
root

2304
336
61072
4520
128
2520
144
96
0
1064
5456
1352
592
456

Jun
Set
Set
Set
Ago
Jun
Jun
Ago
Set
Set
Jun
Set
Mar
Mar

28
5
6
6
20
28
28
23
6
5
1
6
6
2

17:09
22:14
09:58
10:36
23:11
17:08
17:16
18:48
06:57
13:55
2002
10:09
2003
2003

bin/
boot/
dev/
etc/
home/
lib/
mnt/
opt/
proc/
root/
sbin/
tmp/
usr/
var/

Alm destes, existem outros recursos presentes em sua linha de comando.

ACESSO

AS UNIDADES DO SISTEMA

O MS-DOS atribui letras para a unidade de armazenamento de dados (A:\,


C:\, D:\, etc.), onde para acessarmos as demais unidades do sistema,
bastaria apenas indic-las na linha de comando acrescido de
<DOIS_PONTOS> (:), teclando <ENTER> em seguida:
C:\> A:
A:\> D:

35/128

D:\> C:
C:\> _

J os sistemas GNU/Linux possui apenas um nico diretrio raiz, do qual


as demais unidades encontram-se previamente montadas em seus
respectivos subdiretrios. No BASH, para acessarmos as demais unidades
do sistema, deveremos montar os dispositivos e acess-los atravs do
ponto de montagem, situados no diretrio /mnt/<UNIDADE> conforme a
norma FHS. O ponto de montagem /mnt possui basicamente a seguinte
estrutura:
$ cd /mnt
$ ls -l
total 8
-rw-r--r-- 1 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 2 root
drwxr-xr-x 10 root
drwxr-xr-x 2 root
dr-x------ 1 root
drwxr-xr-x 2 root
$ _

root
root
root
root
root
root
root
root
root
root
root

376
48
48
48
48
48
48
224
48
4096
48

2006-09-26
2006-09-25
2002-03-16
2006-09-25
2002-03-16
2002-03-16
2006-09-25
2007-08-04
2006-09-25
2007-08-05
2006-09-25

00:09
22:02
04:34
22:02
04:34
04:34
22:02
15:08
22:03
00:59
22:02

README
cdrecorder
cdrom
dvd
floppy
hd
memory
pkg
tmp
win
zip

Por padro existe apenas estes diretrios, porm caso necessitem


trabalhar com outros dispositivos do sistema, basta cri-los conforme a
necessidade. Lembrem-se de que precisaro estar com os poderes de
superusurio.
$ su
Password:
# mkdir flash
# mkdir tape
# ls -l
total 8
-rw-r--r-- 1
drwxr-xr-x 2
drwxr-xr-x 2
drwxr-xr-x 2
drwxr-xr-x 2
drwxr-xr-x 2
drwxr-xr-x 2
drwxr-xr-x 2
drwxr-xr-x 10
drwxr-xr-x 2
drwxr-xr-x 2
dr-x------ 1
drwxr-xr-x 2
# _

root
root
root
root
root
root
root
root
root
root
root
root
root

root
root
root
root
root
root
root
root
root
root
root
root
root

376
48
48
48
48
48
48
48
224
48
48
4096
48

2006-09-26
2006-09-25
2002-03-16
2006-09-25
2007-08-05
2002-03-16
2002-03-16
2006-09-25
2007-08-04
2007-08-05
2006-09-25
2007-08-05
2006-09-25

00:09
22:02
04:34
22:02
19:07
04:34
04:34
22:02
15:08
19:07
22:03
00:59
22:02

README
cdrecorder
cdrom
dvd
flash
floppy
hd
memory
pkg
tape
tmp
win
zip

Aps a montagem das parties e/ou unidades, seus respectivos acessos


so realizados normalmente, como se fossem simples subdiretrios.

36/128

ESPECIFICAES

DO DIRETRIO

Nos sistemas GNU/Linux, a especificao dos caminhos de diretrios


feita de forma similar ao MS-DOS...
$ cd /<DIRETRIO>

... porm outra diferena simples est no uso da <BARRA> / ao invs


da <BARRA_INVERTIDA> \ para a navegao entre os diretrios.
C:\> cd <UNIDADE>\<DIRETRIO>

Em ambos, para navegar at o diretrio raiz:


C:\WINDOWS> cd \

...
$ cd /

EXIBIO

DE CAMINHO

Em ambos os interpretadores e de acordo com a distribuio utilizada


o prompt da linha de comando indicam em que diretrio estamos...
C:\WINDOWS> _

... tendo o BASH a vantagem de informar a conta autenticada no


momento.
darkstar@darkstar:/usr/doc$ _

As definies do prompt podem ser alteradas atravs da customizao do


arquivo de configurao /etc/profile, seo default shell prompt.

CASE

SENSITIVE

O sistemas de nomenclatura dos arquivos e diretrios do GNU/Linux


case sensitive, ou seja, o tratamento de caracteres maisculos e
minsculos diferente em comparao ao MS-DOS, onde neste tanto faz
utilizar caracteres maisculos quanto minsculos:
C:\> CD WINDOWS
C:\WINDOWS\> CD ..
C:\> cd windows
C:\WINDOWS\> _

J no BASH, o sistema no reconhecer o comando utilizado caso utilizem


caracteres maisculos ao invs de maisculos, e vice-versa.
darkstar@darkstar:/$ cd /usr
darkstar@darkstar:/usr$ CD ..
-bash: CD: command not found
darkstar@darkstar:/usr$ _

37/128

OBSERVAES
As aplicaes disponibilizadas em interfaces grficas geralmente tem a
simpatia dos usurios menos habituados ao modo texto, graas as
facilidades condicionadas, como a intuitividade e o apelo visual, tornando
bem mais atrativo e agradvel realizar as operaes necessrias no
sistema. Porm, existiro circunstncias especficas e variadas em que a
utilizao de uma linha de comando ser praticamente insubstituvel.
Mesmo apesar do vastos recursos disponibilizados nas atuais aplicaes
grficas, em muitos aspectos teremos maior eficincia, prtica e agilidade
em realizar as operaes necessrias na linha de comando.

CONCLUSO
Apesar da existncia de diversas diferenas em comparao a linha de
comando do MS-DOS, o objetivo o BASH o mesmo: fornecer ao usurio
um conjunto de recursos que podero ser habilitados pela linha de
comando. Porm so inmeras as diferenas e caractersticas, alm da
disponibilidade de recursos extras que o tornam muito superior ao MSDOS e quaisquer outros aplicativos grficos existentes. &;-D

38/128

IV. MANIPULAO

DE ARQUIVOS E

DIRETRIOS

INTRODUO
Nas mais variadas circunstncias, a manipulao direta de arquivos e
diretrios ser necessria para a realizao de determinadas
intervenes. A checagem de contedo, a organizao de documentos, a
edio direta, a definio de permisses, entre outras, so simples e bons
exemplos de operaes realizadas em imensas possibilidades.
Neste captulo, apresentaremos as principais operaes de manipulao,
que por sua vez se encontram subdividas por categorias, onde as
instrues necessrias estaro estruturadas de uma forma bem simples e
organizada para uma melhor compreenso destes processos.

OPERAES

BSICAS

Entende-se como operaes bsicas: a listagem, visualizao, edio e


manipulao, dos arquivos e diretrios gerais que compe o sistema, alm
de dados e informaes adicionais.

LISTAGEM

E NAVEGAO

LS

Lista os arquivos e diretrios do diretrio corrente ou especificado.


Sintaxe:
ls [PARMETROS] [ARQUIVOS/DIRETRIOS]

Onde:

-a: lista todos os arquivos e diretrios ocultos;

-R: lista todos os arquivos e diretrios de forma recursiva;

-i: lista o contedo, porm exibindo o tamanho em blocos;

-1: lista o contedo, exibindo-o em somente uma simples coluna;

-l: tal como -1, lista o contedo, exibindo-o em somente uma, mas
contendo informaes gerais acerca de seus atributos;

Observem que os parmetros exemplificados podem ser utilizados em


conjunto (combinados). Experimentem utilizar estes parmetros
combinado com outros parmetros e verifiquem sua sada:
$ ls -li

39/128

total 83
11 drwxr-xr-x
20 drwxr-xr-x
9 drwxr-xr-x
12 drwxr-xr-x
2 drwxr-xr-x
15 drwxr-xr-x
16 drwxr-xr-x
11750 drwxr-xr-x
1 dr-xr-xr-x
7 drwx--x--22 drwxr-xr-x
2 drwxrwxrwt
2 drwxr-xr-x
2 drwxr-xr-x
$ _

2
2
16
47
5
4
5
4
86
11
2
19
19
17

root
root
root
root
root
root
root
root
root
root
root
root
root
root

bin
root
root
root
root
root
root
root
root
root
bin
root
root
root

2416
336
62352
4808
96
2592
120
96
0
656
5704
648
544
456

2004-01-31
2004-01-31
2004-01-31
2004-01-31
2004-01-31
2004-01-31
2004-01-31
2002-12-13
2004-01-31
2004-01-31
2003-09-01
2004-01-31
2004-01-05
2003-08-15

07:43
07:55
12:09
15:06
10:27
07:42
10:08
19:01
10:09
14:31
19:29
15:17
18:32
00:17

bin/
boot/
dev/
etc/
home/
lib/
mnt/
opt/
proc/
root/
sbin/
tmp/
usr/
var/

Alm do comando ls, podemos tambm utilizar os comandos dir...


$ dir
bin/
boot/
$ _

dev/
etc/

home/
lib/

mnt/
opt/

proc/
root/

sbin/
tmp/

usr/
var/

... e vdir, que correspondem respectivamente a ls e ls -l.


$ vdir
total 83
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
dr-xr-xr-x
drwx--x--drwxr-xr-x
drwxrwxrwt
drwxr-xr-x
drwxr-xr-x
$ _

2
2
16
47
5
4
5
4
93
11
2
19
19
17

root
root
root
root
root
root
root
root
root
root
root
root
root
root

bin
root
root
root
root
root
root
root
root
root
bin
root
root
root

2416
336
62352
4808
96
2592
120
96
0
656
5704
648
544
456

2004-01-31
2004-01-31
2004-01-31
2004-01-31
2004-01-31
2004-01-31
2004-01-31
2002-12-13
2004-01-31
2004-01-31
2003-09-01
2004-01-31
2004-01-05
2003-08-15

07:43
07:55
12:09
15:06
10:27
07:42
10:08
19:01
10:09
14:31
19:29
15:17
18:32
00:17

bin/
boot/
dev/
etc/
home/
lib/
mnt/
opt/
proc/
root/
sbin/
tmp/
usr/
var/

Os comandos ls -l e vdir so os mais indicados para verificar todos as


informaes disponveis sobre a estrutura de arquivos e diretrios.
CD

Possibilita navegar (entrar e sair) entre os diretrios desejados.


Sintaxe:
$ cd [DIRETRIO]

Exemplo:

40/128

darkstar@darkstar:~$ cd /usr
darkstar@darkstar:/usr$ ls -l
...
darkstar@darkstar:/usr$ cd lib
darkstar@darkstar:/usr/lib$ ls -l
...
darkstar@darkstar:/usr/lib$ cd X11
darkstar@darkstar:/usr/lib/X11$ _

Obsevem que, para entrarmos no subdiretrio lib e X11, no foram


especificados os caminhos completos, pois estes pertencem ao diretrio
do qual se encontra localizado no momento (referncia local).
Como podem ver, seu uso bastante simples, no existindo qualquer grau
de dificuldade. Ainda assim podemos utilizar outros recursos, tais como:
darkstar@darkstar:/usr/lib/X11$ cd ..
darkstar@darkstar:/usr/lib$ cd /
darkstar@darkstar:/$ _

bem mais simples que digitar o caminho completo para acessar o


diretrio anterior. Observem ainda que podemos desfazer a ao
anterior, ou seja, retornar para o diretrio onde estvamos anteriormente
com o uso do parmetro - (hfen).
darkstar@darkstar:/usr/lib$ cd /
darkstar@darkstar:/$ cd /usr/lib
darkstar@darkstar:/usr/lib$ _

Para retornarem ao diretrio $HOME especfico do usurio (neste caso,


/home/darkstar/), utilizem o parmetro ~ (til) ou ainda apenas cd.
darkstar@darkstar:/usr/lib$ cd ~
darkstar@darkstar~$ _

...ao invs de utilizar o comando e definir todo o caminho /home/darkstar/.

VISUALIZAO
TYPE

Permite visualizar o contedo de arquivos-textos.


Sintaxe:
$ type [ARQUIVO]

As mesmas regras do MS-DOS tambm so aplicadas aqui: os arquivos


textos sero exibidos normalmente, ao contrrio dos arquivos binrios.
LESS

Permite tambm visualizar o contedo de arquivos-textos, tal como type.


Sintaxe:
41/128

$ less [PARMETROS] [ARQUIVO]

Difere de type, o less possibilita realizar a paginao como a utilizao das


teclas
<SETA_ACIMA>,
<SETA_ABAIXO>,
<PGINA_ACIMA>
e
<PGINA_ABAIXO> para rolar o texto a ser visualizado.
O recurso de paginao muito til para visualizar o contedo de arquivos
com grande quantidade de textos. Existem diversos parmetros, mas caso
queiram realizar uma consulta mais refinada, experimentem digitar...
$ less -help

... e analisem os resultados exibidos.


FILE

Exibe informaes gerais sobre o tipo de arquivo consultado.


Sintaxe:
$ file [ARQUIVO]

Observem atentamente
compreenso.

os

exemplos

abaixo

para

uma

melhor

$ file fotografia
fotografia: JPEG image data, JFIF standard 1.01, resolution (DPI), 72 x 72
$ _

O comando file detectou que o arquivo fotografia trata-se de uma imagem


gravada no formato JPEG, fornecendo ainda outras informaes
adicionais.
$ file tutorial
tutorial: HTML document text
$ _

Novamente o comando file detectou a existncia do arquivo-texto tutorial


informando ainda que trata-se de um documento HTML.
PWD

Este comando apenas mostra em qual o diretrio corrente.


$ pwd
/home/darkstar
$ _

Para as definies padro no /etc/profile do Slackware, este comando


desnecessrio, pois o prprio sinal de prontido j exibe a sua localizao.
darkstar@darkstar:/usr/local$ _

Porm existiro circunstncias em que este, ao invs de exibir o caminho


o qual se encontra, exibir apenas o sinal ~. Isto significa que nos
encontramos no diretrio raiz do usurio autenticado.
darkstar@darkstar:~$ pwd

42/128

/home/darkstar
darkstar@darkstar:~$ _

MORE

Atua como um filtro paginador das informaes exibidas no vdeo.


Sintaxe:
$ [COMANDO] [PARMETROS] | more

Ou...
$ more [ARQUIVO-TEXTO]

Existem diversas situaes em que o uso deste comando ser de bastante


utilidade, mas basicamente o utilizaremos apenas para realizar uma
listagem pausada. Vejam o exemplo a seguir:
$ ls -l /usr/share/ | more
total 520
drwxr-xr-x
7 root root
drwxr-xr-x
2 root root
drwxr-xr-x
5 root root
-rw-r--r-1 root root
drwxr-xr-x
2 root root
drwxr-xr-x
8 root root
drwxr-xr-x
8 root root
drwxr-xr-x
2 root root
drwxr-xr-x
2 root root
drwxr-xr-x
4 root root
drwxr-xr-x
2 root root
drwxr-xr-x
2 root root
drwxr-xr-x
6 root root
drwxr-xr-x
2 root root
drwxr-xr-x
2 root root
drwxr-xr-x
7 root root
drwxr-xr-x
4 root root
drwxr-xr-x
2 root root
drwxr-xr-x
2 root root
drwxr-xr-x
2 root root
drwxr-xr-x
2 root root
--Mais--

296
48
264
600
176
1600
216
2208
968
160
536
2320
168
1112
216
224
648
608
88
112
200

2004-05-07
2004-08-07
2004-08-07
2004-04-23
2003-02-11
2003-02-11
2002-02-24
2004-09-19
2004-05-21
2004-05-29
2004-06-07
2004-10-22
2003-01-07
2003-01-13
2003-08-29
2004-02-15
2004-05-21
2003-07-28
2004-05-13
2002-10-15
2004-05-16

22:32
20:16
20:16
18:59
22:41
22:41
17:38
21:07
03:38
17:06
19:36
20:42
20:15
22:27
03:17
23:44
03:38
18:30
17:27
22:19
20:47

AbiSuite-2.0
ImageMagick
ImageMagick-6.0.4
Ssh.bin
WINGs
WindowMaker
a2ps
aclocal
aclocal-1.8
alsa
application-registry
applications
apsfilter
aspell
aumix
autoconf
automake-1.8
awk
battstat_applet
bison
blackjack

O diretrio /usr/share possui uma infinidade de diretrio em sua


estrutura. Uma simples listagem iria exibir todo o seu contedo, porm
no realizaria uma pausa para a verificao, de forma que apenas
conseguiramos ver as informaes da sada de vdeo do final da operao.
Para continuar com a exibio dos dados, basta apenas pressionar
<BARRA_DE_ESPAO>:
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x

2
3
2
5
7

root
root
root
root
root

root
root
root
root
root

200
224
72
128
176

2004-05-16
2004-05-07
2004-06-08
2004-05-13
2004-06-19

20:47
16:02
16:57
03:47
21:09

blackjack
bug-buddy
cdrdao
control-center
control-center-2.0

43/128

drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
lrwxrwxrwx
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
--Mais--

8
2
3
4
2
3
1
2
7
4
4
3
4
4
4
2
3
3

root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root

root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root

232
88
72
544
72
72
6
3120
888
104
936
104
96
496
136
48
72
104

2004-09-19
2004-06-06
2004-06-09
2004-11-15
2003-03-13
2004-05-02
2004-11-01
2004-06-19
2004-02-22
2003-05-23
2002-02-26
2004-05-07
2004-02-21
2004-06-19
2004-06-19
2004-06-19
2004-05-07
2004-11-01

20:50
22:48
15:28
10:24
22:00
19:22
16:27
20:52
03:25
02:28
02:05
16:40
23:24
17:27
18:50
19:52
17:22
16:40

cups
curl
cvs
d4x
dict
distcc
doc -> ../doc
eazel-engine
elvis-2.2_0
emacs
enscript
eog
epic
epiphany
epiphany-extensions
faces
file-roller
fonts

Ao pressionarmos <ENTER>, apenas ser exibida a linha seguinte:


drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
--Mais--

3 root root
3 root root
2 root root

72 2004-05-07 17:22 file-roller


104 2004-11-01 16:40 fonts
2272 2004-06-19 02:08 galeon

J na leitura de um arquivo texto, ele se comportar da mesma forma:


$ more /mnt/cdrom/COPYRIGHT.TXT
The Linux(R) kernel is Copyright 1991, 1992, 1993, 1994, 1995,
1996, 1997, 1998 Linus Torvalds (others hold copyrights on some
of the drivers, filesystems, and other parts of the kernel) and
is licensed under the terms of the GNU General Public License.
LINUX is a registered trademark of Linus Torvalds.
(see COPYING in /usr/src/linux)
--------------Many other software packages included in Slackware are licensed under the GNU
General Public License, which is included in the file COPYING.
---------------This product includes software developed by the University of
California, Berkeley and its contributors:
Copyright (c) 1980,1983,1986,1988,1990,1991 The Regents of the University
of California. All rights reserved.
--Mais--(8%)

Observem a existncia dos caracteres --Mais--, indicando a existncia de


mais informaes aps as exibidas, diferenciando-se apenas a presena de
44/128

um valor percentual na exibio do contedo de arquivos-textos,


indicando a proporo das informaes j visualizadas durante todo o
processo.
Para realizarmos uma pausa durante a listagem de arquivos e diretrios, o
comando more auxilia bastante; porm para a exibio do contedo de
arquivos-textos, o comando less proporciona melhor conforto, pois
diferente deste ltimo, o comando more no permite que se possa
retornar as informaes passadas com as teclas <SETA_ACIMA> e
<PGINA_ACIMA>.
DU

Mostra o espao ocupado por um arquivo ou conjunto de arquivos.


Sintaxe:
$ du [PARMETROS] [ARQUIVO/DIRETRIO]

Onde:

-a: mostra no s apenas o tamanho dos diretrios, como tambm


dos arquivos encontrados;

-b, -k, -m: mostra o tamanho dos arquivos e diretrios em bytes,


KB e MB respectivamente (valor padro: byte);

-c: acrescenta uma linha mostrando o tamanho total de todos os


arquivos e diretrios.

Existem diversos outros parmetros teis de acordo com as


circunstncias, mas para ns, nos interessa apenas conhecer sua
utilizao bsica, que por sua vez mostrar apenas o tamanho do arquivo e
diretrios neles aplicados:
$ du texto.txt
104
texto.txt
$ _

Neste caso, o arquivo texto.txt possui apenas 104 KB. J neste outro...
$ du P
rova 3o. Bimestre/
149
Prova 3o. Bimestre/Portugus
245
Prova 3o. Bimestre/Matemtica
394
Prova 3o. Bimestre/
$ _

... mostrado os tamanhos de cada subdiretrios, alm do total do


diretrio principal consultado, contando com o espao ocupado por todos
eles.

45/128

MANIPULAO
MKDIR

Este comando utilizado unicamente para criar diretrios.


Sintaxe:
$ mkdir [PARMETROS] [DIRETRIO]

Exemplo:
$ mkdir /home/darkstar/teste
$ ls -l /home/darkstar/
total 3
drwx-----3 darkstar users
drwxr-xr-x
26 darkstar users
drwxr-xr-x
3 darkstar users
drwxr-xr-x
2 darkstar users
drwxr-xr-x
5 darkstar users
$ _

128
1008
320
48
256

Ago
Ago
Jul
Ago
Ago

16
9
11
16
16

00:25
22:12
18:54
20:25
20:16

Desktop/
docs/
OpenOffice.org1.0.0/
teste/
z/

Para criar um conjunto de diretrios e respectivos subdiretrios


diretamente com um nico comando, utilizem o parmetro -p.
$ mkdir -p /[DIRETRIO]/[SUBDIRETRIO]/

Exemplo:
$ mkdir -p teste/subteste/
$ _

DD

Abreviatura de direct copy, possui a finalidade de copiar e transferir


dados utilizando as especificaes de bloco de entrada e sada. til para
realizar cpia de arquivos e transferncia de dados conforme sua
estrutura.
Sintaxe:
$ dd if=[ORIGEM] of=[DESTINO]

Onde estes dados sero formatados de acordo com as definies dos


parmetros de entrada (if) e sada (of).
Observem este simples exemplo para a cpia de um arquivo:
$ dd if=/dev/hda9 of=/dev/sda1

Este comando copiar todo o contedo da partio hda9 (o diretrio


/home) para um dispositivo de memria eletrnica (um pendrive).
CP

Realiza a cpia de arquivos e/ou o contedo de um diretrio.


Sintaxe:
46/128

$ cp [PARMETROS] [ORIGEM] [DESTINO]

Onde:

-f: sobrescreve o arquivo, caso j exista no local de destino;

-p: preserva os atributos de permisses, usurios e grupos de


acesso originais do arquivo copiado;

-r: realiza a cpia de diretrios recursivamente.

Exemplo:
$ cp /home/darkstar/docs/texto.txt /mnt/floppy

O exemplo acima copia o arquivo texto.txt para o ponto de montagem


/mnt/floppy (um disquete que dever estar previamente montado).
MV

Abreviatura de move, movimenta o(s) arquivo(s) e/ou diretrio(s) para o


local desejado ou ainda, os renomeia conforme desejado.
Sintaxe:
$ mv [PARMETROS] [ORIGEM] [DESTINO]

Exemplo:
$ mv /home/darkstar/teste/* /home/darkstar/

O comando mv tambm pode ser utilizado para renomear diretrios...


$ mv /home/darkstar/teste/ /home/darkstar/ok

... e arquivos...
$ mv /home/darkstar/rasura /home/darkstar/texto.txt

LN

Cria atalhos para apontar determinados arquivos ou diretrios do sistema.


Sintaxe:
$ ln [PARMETROS] [ORIGEM] [DESTINO]

Onde:

-s: atalho simblico;

-d: atalho fsico (somente disponvel para o superusurio).

A diferena entre atalhos simblicos para atalhos fsicos (ou hardlinks)


est na manipulao direta do mesmo. O atalho simblico apenas fornece
um caminho apontado por ele; j o atalho fsico faz uma referncia direta,
sendo perfeitamente idntico ao arquivo original em tamanho e
permisses de acesso. Sua nica limitao est no fato de no fazer
referncias aos diretrios ou arquivos de outras parties.
Uma das principais vantagens da utilizao do atalho a possibilidade de
47/128

fazer referncias a determinados arquivos, ao invs de realizar outras


intervenes mais elaboradas. Por exemplo, na necessidade de dispor do
navegador firefox para todos os usurios, basta simplesmente...
# ln -s /usr/local/firefox/firefox /usr/bin/firefox

... ao invs de atualizar a varivel $PATH para o caminho do Firefox.

EDITORAO
MCEDIT

Componente indispensvel das ferramentas GNU Midnight Commander, o


MCedit um excelente editor de textos ASCII, com uma aparncia muito
similar ao j conhecido Edit, do MS-DOS.

Dentre seus comandos, para acionar o menu principal, basta teclarmos


<F9>; para que o programaseja encerrado, basta pressionarem <F10>.
Para os iniciantes, recomendamos a utilizao deste editor de textos. Mas
como estamos num mundo livre, fica em aberto a livre-escolha!

EXCLUSO
RMDIR

Remover um diretrio j existente. O uso de parmetros opcional.


Sintaxe:
$ rmdir [DIRETRIO]

Exemplo:
$ rmdir /home/darkstar/teste/

48/128

Porm este comando no pode remover nenhum diretrio que no esteja


vazio. Veja o exemplo abaixo:
$ rmdir /home/darkstar/teste/
rmdir: `/home/darkstar/teste': Diretrio no vazio
$ _

Para estas circunstncias, o comando rm possui o parmetro -r


(recursivo), que apaga todos os diretrios e seus respectivos arquivos.
Veja seguir.
RM

Remove um arquivo j existente.


Onde:

-i: excluso interativa (permite definir se o arquivo em questo vai


ser excludo ou no);

-r: remoo recursiva (utilizado para excluir diretrio no vazios).

Sintaxe:
$ rmdir [PARMETROS] [NOME_DO_ARQUIVO]

Exemplo:
$ rm /home/darkstar/texto.txt

Ao estudarmos o comando rmdir, vimos que ele no pode remover


diretrios que possuem contedo. Para esta situao, podemos utilizar o
comando rm junto com o parmetro -r para resolver este problema.
$ rmdir teste/
rmdir: `teste/': Diretrio no vazio
$ rm -r teste/
$ _

CPIAS

DE SEGURANA E COMPACTAO

A cpia de segurana uma das operaes essenciais para a manuteno


dos dados e informaes contidas nas unidades de armazenamento.
Basicamente dividida em 2 etapas: arquivamento e compactao.

ARQUIVAMENTO
O ato de arquivar consiste basicamente em reunir um conjunto de
arquivos, diretrios ou ainda, uma estrutura de arquivos e diretrios, em
apenas um nico arquivo. Para esta operao, temos um timo utilitrio de
linha de comando, chamado TAR.

49/128

TAR

O TAR Type ARchive um eficiente arquivador de dados.


Sintaxe:
$ tar [PARMETROS] [ARQUIVO_OU_DIRETRIO_OU_ESTRUTURA]

Pelo fato de possuir vastos recursos, existe uma imensidade de


parmetros relacionados. Descreveremos aqui apenas os mais utilizados:

-v: exibe o andamento da operao no vdeo;

-f: tratamento de arquivo, device ARQ;

-w: solicita a confirmao para cada operao a realizar;

-M: criao / listagem / extrao de mltiplos volumes.

Alm dos parmetros gerais, encontram-se tambm outros para o


arquivamento propriamente dito. Segue a listagem abaixo:

-c: criao de um novo arquivo (o destino);

-r: acrescenta arquivos a um pacote j criado.

Com o TAR podemos tambm visualizar o contedo de pacotes gerados,


alm de realizar alguns processos de comparao:

-t: lista o contedo de um arquivo gerado;

-d: compara o arquivo gerado com os arquivos atuais.

Ainda poderemos utilizar parmetros especficos para compactar ou


descompactar os pacotes:

-j: compresso / descompresso com Bzip2;

-z: compresso / descompresso com GZIP.

Por ltimo, tambm existem alguns parmetros extras para facilitar as


atividades de extrao dos pacotes criados, tendo destaque a
descompactao e extrao simultnea:

-x: extrai os dados arquivados;

-p: mantm as permisses originais dos dados arquivados.

Exemplos:
Para empacotar toda uma estrutura de arquivos de diretrio...
$ tar -cvf BACKUP.tar *

Para anexar o arquivoTEXTO.txt ao pacote BACKUP.tar...


$ tar -rf TEXTO.txt BACKUP.tar

Para desempacotar o pacote BACKUP.tar...


$ tar -xvf BACKUP.tar

Ser descomprimir e desempacotar o pacote BACKUP.tar.gz...

50/128

$ tar -xzf BACKUP.tar.gz

Ser descomprimir e desempacotar o pacote BACKUP.tar.bz...


$ tar -xjf BACKUP.tar.bz

Apesar de ser apenas um empacotador, o TAR tambm pode gerar pacotes


compactados com o auxlio dos compactadores gzip e bzip2, conforme
demonstramos acima com os dois ltimos exemplos, onde utilizamos os
parmetros z (z) e j (jota) para descompactar volumes compactados com
o GZIP e o BZIP2. (pacotes BACKUP.tar.gz e BACKUP.tar.bz2).
J os utilitrios de compactao descritos apenas geram um nico arquivo
por vez, sendo necessrio a utilizao dos empacotadores para criar um
nico arquivo compactado com uma estrutura de arquivos e diretrios.
Por ltimo, em algumas circunstncias sero necessrias ferramentas
como cat e split para o manuseio de arquivos e pacotes com grandes
volumes.

COMPACTAO
A compactao de arquivos nos sistemas GNU/Linux feita
tradicionalmente atravs dos seus prprios utilitrios de linha de
comando disponveis na distribuio, no necessitando de quaisquer outro
para as funcionalidades bsicas. Os arquivos ou estrutura de arquivos e
diretrios tambm podem ser manipulados por outros utilitrios grficos,
conforme o interesse do usurio. Existem diversos compactadores para o
sistema, mas os principais utilizados so gzip, bzip2 e em alguns casos
zip.
GZIP

GUNZIP

Atualmente o compactador mais utilizado entre os disponveis.


Sintaxe:
$ gzip [PARMETROS] [ARQUIVO_ORIGEM]

Onde:

-c: mantm o arquivo original (no apaga);

-d: descompacta o arquivo (o mesmo que utilizar apenas gunzip);

-l: listagem de contedo do arquivo compactado;

-v: exibe as informaes do processo;

- (1 at 9): variao da taxa de compresso, onde 1 = compresso


rpida (baixa) e 9 = compresso lenta (alta).

Para simplesmente compactar um arquivo...


$ gzip [ARQUIVO]

Para compactar um arquivo com alta taxa de compresso...


51/128

$ gzip -9 [ARQUIVO]

Para descompactar um arquivo comprimido.


$ gzip -d [ARQUIVO]

... ou...
$ gunzip [ARQUIVO]

BZIP2

BUNZIP2

O 2o. compactador mais utilizado pelos linuxers, j que possibilita uma boa
vantagem em comparao gzip: consegue obter taxas maiores de
compresso, conseguindo ganhos de espao em at 20%. Porm, exige
uma maior carga de processamento, requerendo maior capacidade de
processamento para reduzir o tempo gasto nesta operao.
Sintaxe:
$ bzip2 [PARMETROS] [ARQUIVO]

Onde:

-d: descompacta o arquivo (o mesmo que utilizar apenas bunzip2);

-f: fora o modo sobre-escrita (grava sobre um arquivo existente);

-s: reduz o consumo de memria durante a compactao (ideal


para mquinas com pouca memria);

-v: exibe o andamento da operao no vdeo.

Para realizar a compactao de um arquivo, bastar...


$ bzip2 [ARQUIVOS]

Para descompactar...
$ bunzip2 [ARQUIVO].bz2
ZIP

UNZIP

Os comandos zip e unzip so respectivamente compactador


descompactador de volumes para o uso do formato ZIP (.zip).

Sintaxe:
$ zip [PARMETROS] [DESTINO] [ORIGEM]

Onde:

-e: permite a utilizao de senha de proteo, esta solicitada no ato


da compactao / descompactao;

-r: compacta arquivos e diretrios de modo recursivo;

- (1 at 9): variao da taxa de compresso, onde 1 = compresso


rpida (baixa) e 9 = compresso lenta (alta);

Para realizar uma simples compactao, basta utilizar.


52/128

$ zip BACKUP.tar NOVO-BACKUP.zip

... ou...
$ zip -r SOURCE PROGRAMA.zip

Para descompactar um arquivo para um diretrio especfico...


$ unzip -d /tmp BACKUP.zip

UTILITRIOS
SPLIT

Divide um arquivo em vrias partes.


Sintaxe:
$ split [PARMETROS] [TAMANHO][UNIDADE_DE_MEDIDA] [ARQUIVO]

Onde:

-b: define a unidade de medida byte (b), KB (kb) e MB (mb).

Exemplo:
$ split -b 1440kb BACKUP.tar.gz

Sero gerados diverso arquivos com o tamanho especificado com a


nomenclatura xaa, xab, xac, etc. No exemplo acima citado, o tamanho
definido ideal para grav-los em disquetes.
Para reuni-los novamente em um s arquivo, utilizem o comando cat.
CAT

O comando cat possui diversas opes e funcionalidades, como


poderemos ver ao checar sua documentao. Mas para operaes bsicas,
ele bastante utilizado em operaes de visualizao e concatenao.
Sintaxe:
$ cat [OPTION] [ARQUIVO]

Para realizar uma visualizao do arquivo texto.txt, basta utilizar...


$ cat texto.txt

Para realizar uma concatenao, basta utilizar a seguinte sintaxe:


$ cat [TEXTO1] [TEXTO2] [TEXTO3] > [ARQUIVO_TEXTO_FINAL]

Um detalhe importante que dever ser observado est na ordem correta


dos arquivos a serem concatenados.
Segue um exemplo simples e prtico:
$ cat texto.txt mais_info.txt > texto1.txt

Para mesclar arquivos gerados pelo split (veja seo anterior)...

53/128

$ cat xaa xab xac > BACKUP.tar.gz

Observao: no devemos utilizar o mesmo arquivo para receber o


contedo dos arquivos mesclados; teremos o risco de sofrer ocorrncias
imprevisveis, onde a perda dos dados certamente indesejada.

CONCLUSO
Existe uma infinidade de possveis operaes onde necessria a
manipulao direta de arquivos e diretrios. As operaes descritas neste
captulo so apenas as mais comuns, necessrias para a grande maioria
dos usurios em desktops. Caso queiram se aprofundar, consultem as
pginas de manual disponveis na distribuio. &;-D

54/128

V. UNIDADES,

PARTIES E FORMATOS

INTRODUO
Como j sabemos, todos os sistemas operacionais alocam suas
informaes em sistemas de armazenamento de dados de vrios tipos
(unidades), que podem ser subdivididos em vrias partes (parties) e
utilizarem um mtodo de escrita especfico (sistema de arquivos).
Neste captulo iremos conhecer as particularidades das distribuies
GNU/Linux quanto a este aspectos, alm de obter instrues para a
manipulao atravs das ferramentas disponveis na linha de comando.

AS

UNIDADES E AS PARTIES

As unidades, so como o prprio nome diz, dispositivos fsicos especiais


utilizados para o armazenamento de dados. J as parties so divises
criadas nos dispositivos que podem ser utilizadas para diversas
finalidades.
Entre estas finalidades, a mais importante a organizao e otimizao
dos dados nela arquivados e conseqentemente do sistema como um todo.
Por exemplo, um disco rgido poder ter diferentes tipos de parties e
com isto poderemos at mesmo alocar diferentes sistemas operacionais
em uma nica unidade, conforme veremos mais adiante.
Existem diversos tipos de unidades, das quais as principais so os
disquetes, as memrias eletrnicas, os discos rgidos e a unidade leitoras
de mdia ptica (CDs e DVDs). Alm destas, existem outras menos
comuns, como o Zip-drive, o gravador de mdia ptica, entre muitos
outros. Todas elas so suportadas e acessveis pelos sistemas GNU/Linux,
mas isto no momento no o mais importante. O que deveremos
realmente dar importncia so os sistemas de arquivos utilizados nelas.

OS

FORMATOS

Sistemas de arquivos so mtodos (formatos) de representao utilizados


pelo sistema operacional para a organizao dos arquivos (dados) em um
determinado meio de armazenamento. Ao realizarmos a formatao de
uma unidade qualquer (seja disco rgido, disquete, zips, etc.), estaremos
condicionando a sua estrutura para que esteja pronto para receber dados.

TIPOS

DE SISTEMAS DE ARQUIVOS

Cada sistema operacional normalmente suporta um pequeno conjunto de


formatos especficos. Os sistemas GNU/Linux suportam uma infinidade de
55/128

tipos de sistemas de arquivos, onde as mais importantes so:

O SWAP
O SWAP um sistema de arquivos utilizado em uma partio especial
chamada SWAP, que por sua vez um espao do disco rgido reservado
para o uso do sistema operacional como complemento da memria RAM.
Quando a memria principal do sistema operacional est completamente
cheia e existe a necessidade de executar alguma tarefa que exija mais
consumo de memria, as informaes que esto contida na memria
principal so gravadas nesta partio em separado enquanto o sistema
carrega para a memria principal as informaes requeridas por esta
tarefa. Assim que encerrada, a memria principal esvaziada e
novamente recarregada com as informaes contidas na partio SWAP.

EXT2 E EXT3

O sistema de arquivos ext2 j foi o padro dos sistemas GNU/Linux. Possui


muitas similaridades em comparao ao sistema FAT32 utilizado no
Windows, como o suporte a nomenclatura de arquivos com 256 caracteres
e tamanho de clusters fixo em 4 KB, alm da limitar o tamanho de
arquivos para 4 GB. Dentre outras caractersticas, possibilita atribuir
flags especiais aos arquivos criados neste sistema. Estes atributos so a
leitura, a escrita e a gravao. Somente iremos operar nestes arquivos de
acordo com os atributos definidos pelo usurio que o criou (dono) ou o
administrador.
No sistema de arquivos ext2, foram implementadas melhorias que
resultaram no surgimento do seu substituto: o sistema de arquivos ext3,
que por sua vez no difere muito estruturalmente do sistema de arquivos
ext2. Eis porque a converso de parties do formato ext2 para o formato
ext3 pode ser feita sem dificuldades, desde que o proceso seja feito de
forma correta e com as ferramentas (nativas) adequadas. Em todo o caso,
cpias de segurana so recomendveis nestas circunstncias.
O sistema de arquivos ext3 tem como acrscimo o recurso journaling: este
diferente do formato ReiserFS se caracteriza por manter arquivadas no
disco rgido informaes do estado deste sistema de arquivos atualizada
constantemente. Este arquivo, localizado na raz da partio em uso,
chamado de .journal. Com o uso do journaling, toda vez que houver algum
erro ou falha abrupta no sistema que necessite de uma reinicializao, o
estado do sistema de arquivos automaticamente restaurado baseando-se
apenas em suas informaes. Na prtica, isto substitui a necessidade da
utilizao de ferramentas especiais para a sua manuteno como o fsck,
em que ao realizar a checagem da integridade do sistema de arquivos,
consome muito tempo e indisponibiliza o sistema por longos intervalos.
A vantagem do Ext3 em comparao com o ReiserFS est na possibilidade
de realizar a manuteno dos dados gravados no exato momento da queda
56/128

do sistema, pois devido as caractersticas do journaling, as possibilidades


de recuperao destes arquivos so infinitamente maiores. Porm,
praticamente certa a degradao de desempenho por causa das
constantes gravaes em seus registros (logs). Alm disso, existe a
possibilidade do prprio journal se corromper na queda do sistema,
resultando na utilizao do demorado processo de recuperao com o
fsck.

REISERFS

<http://www.namesys.com/>.

Criado pela empresa Namesys, o sistema de arquivos ReiserFS foi


desenvolvido visando adequar-se ao conceito de Alta Disponibilidade.
Por exemplo, quando ocorre uma queda do sistema resultante de falhas ou
falta de energia, ao reinicializ-lo, ser feita na partio ext2 (e em alguns
casos, o ext3), a verificao de sua integridade (de forma automtica) pelo
programa e2fsck. Mas dependendo do tamanho e da quantidade de
parties, este processo pode requerer um tempo considervel, o que
indesejvel devido a necessidade de Alta Disponibilidade. No sistema de
arquivos ReiserFS, ao invs de ser feita a checagem total, ele apenas
consulta o arquivo journal, onde o mesmo apenas informa as ocorrncias
inesperadas para que seja feita a restaurao.
Dentre outras caractersticas importante do ReiserFS est nos seus
pequenos clusters, que possuem tamanho mximo de 512 bytes, o que por
sua vez o ideal para a utilizao em armazenamento de inmeros
arquivos de pequeno volume, acarretando assim pouca perda de espao.
Alm disso, no h a limitao de 2 GB para arquivos que ultrapassem
este tamanho. 6
A principal diferena do formato ReiserFS em comparao ao ext3 est
exatamente no funcionamento do recurso journaling, conforme dito
anteriormente. No ReiserFs, ele apenas armazena informaes sobre o
espao dos arquivos e permisses, ao passo que no Ext3, alm dele
executar estas funes ainda salvaguarda o prprio contedo dos arquivos
afetados durante uma queda do sistema.
Em vista disso, a grande vantagem do ReiserFS est na facilidade de
recuperar a consistncia do sistema de arquivos em um tempo mnimo
(dcimos de segundos). Praticamente torna-se inexistente a possibilidade
de uma pane em alguma pasta ou at mesmo nas parties do disco rgido.
Em contrapartida, caso o sistema esteja sofrendo gravaes de dados no
exato momento da queda, estas arquivos infelizmente no podero ser
recuperados, pois seu contedo estar truncado ou incompleto.

Isto torna este sistema de arquivos uma excelente opo para trabalharmos com
gerao de imagens e gravao de DVD-R/W, o que no quer dizer que no seja
possvel realizar estas atividades nos sistemas ext2 e ext3.

57/128

MSDOS, FAT32

NTFS

Estes trs so os tradicionais formatos de sistema de arquivos do MS-DOS


e Windows. Apesar de no serem utilizados pelos sistemas GNU/Linux e
em virtude de sua popularizao, estes sistemas de arquivos so
plenamente bem suportados por praticamente todas as distribuies
existentes.
Na utilizao de disquetes e dispositivos de memria eletrnica (flash
memory), recomendvel a utilizao destes formatos para que os
mesmos possam ser lidos em outros computadores providos do sistema
operacional Windows. Em especial, o sistema de arquivos FAT32
possibilita visualizar os arquivos com nomes longos (mais de 8.3
caracteres), o qual recomendada a sua utilizao no acesso a estes
dispositivos.
J o NTFS, infelizmente ainda no h suporte maduro, visto que a
Microsoft no libera (e provavelmente nem ir liberar) as especificaes
deste sistema de arquivos para que os desenvolvedores do kernel possam
escrever drivers adequados para a sua leitura e escrita. Porm, existem
projetos interessantes (embora em estgio experimental) que possibilita a
realizao destas operaes, como o NTFS-NG e o Captive.

ISO9660
O sistema de arquivos ISO9660 somente utilizado para os CD-ROMs,
devido a natureza de seu armazenamento de dados permanente,
impossibilitando o sistema operacional de definir um sistema de arquivos.
A imagem ISO nada mais um arquivo especial que contm as
informaes sobre todos os arquivos que sero gravados em uma mdia de
CD-R/RW, utilizando-se o formato ISO9660.

OPERAES
TRABALHANDO

E ATIVIDADES AFINS
COM PARTIES E UNIDADES

Existem uma infinidade de operaes que podero ser realizadas nas


unidades e parties, mas antes, ser necessrio obter acesso a estes
dispositivos para realizar as operaes mais cotidianas...
MOUNT

UMOUNT

Os comandos mount e umount so utilizados respectivamente para


montar (ter acesso) e desmontar (retirar acesso) unidades e parties.
Sintaxe:
$ mount [OPES] [DISPOSITIVO] [PONTO DE MONTAGEM]

58/128

Onde:

OPES: parmetros a serem definidos;

DISPOSITIVO: device da unidade ou partio;

PONTO DE MONTAGEM: diretrio de acesso.

Dentre os principais parmetros existentes, destaca-se:

-a (auto): montagem automtica;

-f (force): montagem de modo forado;

-r (read-only): permisso somente para leitura;

-t (type): pr-define o sistema de arquivos o qual a partio se


encontra para ser montado (ext2, ext3, iso9660, reiserfs, vfat...);

-v (verbose): exibe informaes adicionais do processo;

-w (write): permisso para escrita.

Segue alguns exemplos para melhor ilustrar:


$ mount /dev/hda5 /mnt/hd
$ mount -t vfat /dev/hda1 /mnt/win

Os disquetes so acessados tradicionalmente utilizando seus respectivos


devices: /dev/fd0 para o drive A: e /dev/fd1 par o drive B:. Para acess-los,
bastar utilizar a seguinte sintaxe...
$ mount /dev/fd0 /mnt/floppy

... onde o ponto de montagem /mnt/floppy poder ser omitido, caso a


unidade em questo j esteja especificada em /etc/fstab.
Tanto para os disquetes como quaisquer outras unidades que utilizam o
sistema VFAT, deveremos incrementar este comando o parmetro -t vfat:
$ mount -t vfat /dev/fd0 /mnt/floppy

J os CDs e DVDs so acessados com a utilizao do comando...


$ mount /dev/cdrom /mnt/cdrom

..., onde /mnt/cdrom poder ser omitida


especificado em /etc/fstab. Caso contrrio...

caso

unidade

esteja

$ mount -t iso9660 /dev/cdrom /mnt/cdrom

Da mesma forma que no disquete, ser desnecessria a utilizao do


parmetro -t iso9660 se ele estiver previamente especificado em
/etc/fstab.
Lembre-se de que /dev/cdrom apenas um atalho apontado para o
verdadeiro dispositivo (CDs e DVDs), onde provavelmente sero /dev/hdb
ou /dev/hdc, de acordo com as configuraes da mquina em uso.
Para montar uma unidade de memria eletrnica (ou memria flash),
deveremos recorrer ao device responsvel pela emulao SCSI.
$ mount /dev/sda1 /mnt/[PONTO_DE_MONTAGEM]

59/128

Como no existem diretrios pr-definidos para a memria flash,


poderemos criar um especfico (p. ex.: /mnt/flash).
Enfim, para desmontar quaisquer dessas unidades...
$ umount /dev/[UNIDADE]

... ou...
$ umount [PONTO_DE_MONTAGEM]

Um detalhe importante que o comando umount checa se os dados a


serem gravados nas unidades a ser desmontadas foram realizados, para
depois efetivar a desmontagem prpriamente dita dos dispositivos.
SYNC

Realiza toda a transferncia de dados da cache do sistema (arquivos e


diretrios) para a unidade montada (disquete, memria eletrnica,
CD/DVD-ROM, etc.), para que possamos desmontar a unidade
imediatamente.
$ sync

muito til em circunstncias em que no sabemos porque o dispositivo


no desmonta, mesmo que todas as operaes estejam concludas.

FORMATAO

E DEFINIO DO SISTEMA DE ARQUIVOS

Os respectivos utilitrios que utilizaremos em linha de comando para estas


atividades so mkfs, mkreiserfs e mkswap.
MKFS

O mkfs o utilitrio usado para criar um sistema de arquivos.


Sintaxe:
# mkfs.ext2 [PARMETROS] /dev/[PARTI0]

Onde:

-b: definio do tamanho do bloco (cluster);

-c: checagem de blocos danificados;

-L [NOME]: define um nome para o sistema de arquivos.

O mkfs possui extenses, das quais cada uma possui a finalidade de criar
sistemas de arquivos especficos: o mkfs.ext2, mkfs.ext3 e mkfs.msdos.
Estas opes podero ser omitidas, desde que utilizemos o parmetro -t,
acompanhado do sistema que se queira criar (msdos, ext2, ext3, etc.).
# mkfs -t [SIST._ARQUIVOS] [PARMETROS] /dev/[PARTI0]

Observem tambm que o mkfs no suporta o sistema de arquivos


ReiserFS, sendo necessrio ento utilizar outra ferramenta, o mkreiserfs.

60/128

MKREISERFS

Conforme dito na seo anterior, o utilitrio mkreiserfs utilizado para


definir um sistema de arquivos ReiserFS em uma partio.
Sintaxe:
# mkreiserfs [PARMETROS] /dev/[PARTI0]

Onde:

-b: definio do tamanho do bloco (cluster);

-L [NOME]: define um nome para o sistema de arquivos;

-s [VALOR]: define o tamanho do arquivo de journal em blocos.

MKSWAP

SWAPON

Formata e ativa uma partio SWAP.


Sua utilizao simples, bastando digitar na linha de comando...
# mkswap /dev/[PARTIO]

Para ativ-la ao sistema, deveremos utilizar...


# swapon /dev/[PARTIO]

VERIFICANDO

AS PARTIES E UNIDADES DO SISTEMA

Existem diversas ferramentas para a checagem das parties e unidades


do sistema, dentre as quais, as principais usadas so:
DF

Verifica o espao ocupado das unidades montadas.


Sintaxe:
$ df [PARMETROS]

Onde:

-h: exibe as dimenses em MB (hm) e GB (h);

-T: exibe o sistema de arquivos utilizado.

Ao utilizar somente o df, teremos apenas esta simples avaliao:


# df
Filesystem
/dev/hda5
/dev/hda6
/dev/hda7
/dev/hda8
/dev/hda9
/dev/hda10
# _

1k-blocks
2104408
7341440
2104408
1052184
1052184
24879804

Used Available Use% Mounted on


339684
1764724 17% /
1841004
5500436 26% /usr
51984
2052424
3% /var
39240
1012944
4% /tmp
177076
875108 17% /home
282344 24597460
2% /usr/pkg

61/128

Definindo o parmetro -T, veremos o sistema de arquivos utilizado...


# df -T
Filesystem
Type
/dev/hda5 reiserfs
/dev/hda6 reiserfs
/dev/hda7 reiserfs
/dev/hda8 reiserfs
/dev/hda9 reiserfs
/dev/hda10 reiserfs
# _

1k-blocks
2104408
7341440
2104408
1052184
1052184
24879804

Used Available Use% Mounted on


339808
1764600 17% /
1841004
5500436 26% /usr
51984
2052424
3% /var
39240
1012944
4% /tmp
177076
875108 17% /home
282344 24597460
2% /usr/pkg

Com a utilizao do parmetro -h, teremos as informaes desejadas em


GB.
# df -h
Filesystem
/dev/hda5
/dev/hda6
/dev/hda7
/dev/hda8
/dev/hda9
/dev/hda10
# _

Size
2.0G
7.0G
2.0G
1.0G
1.0G
23G

Used Avail Use% Mounted on


332M 1.6G 17% /
1.8G 5.2G 26% /usr
51M 1.9G
3% /var
39M 989M
4% /tmp
173M 854M 17% /home
276M
22G
2% /usr/pkg

Os parmetros tambm podem ser utilizados de forma combinada.


BADBLOCKS

Utilizado para checar blocos defeituosos na unidade de disco rgido.


Sintaxe:
# badblocks [PARMETRO] /dev/[PARTIO]

Onde:

-b: definio do tamanho do bloco a ser checado (cluster);

-v: mostra as operaes em andamento.

Para realizarem uma checagem bsica, utilizem...


# badblocks -b 4096 /dev/[PARTIO]

Normalmente os tamanhos de blocos utilizados pelos atuais sistemas de


arquivos so de 4.096 bytes.
FSCK

Realiza uma checagem da unidade em questo, procurando por reas e


blocos danificados que porventura possam existir no disco rgido.
Sintaxe:
# fsck.[FS] [PARMETRO] /dev/[PARTIO]

Onde:

[FS]: define o sistema de arquivos (ext2, ext3, xiafs, minix, etc.);


62/128

-a: modo automtico, pois realiza as operaes sem realizar


qualquer pergunta (inverso de -r );7

-c: verifica os blocos defeituosos e atualiza a tabela da unidade,


marcando-os como invlidos;

-f: realiza a checagem em modo forado;

-r: modo interativo, pois realiza algumas perguntas antes de


efetuar as operaes (inverso de -a);

-t: define o sistema de arquivos utilizado;

-v: visualiza as operaes em execuo;

-y: requer confirmao para aceitar todos as perguntas realizadas


no modo interativo.

Para uma simples e bsica checagem em uma partio ext3:


# fsck.ext3 /dev/[PARTIO]

Para uma partio ext2 tambm poderemos utilizar...


# e2fsck /dev/[PARTIO]

Onde e2fsck um apelido para fsck.ext2.


Em um disquete formatado para DOS basta utilizar...
# fsck -t msdos /dev/fd0

importante observar que as unidades avaliadas devero estar


desmontadas. Alm disso, o fsck somente funciona em sistemas de
arquivos ext2 e ext3, no sendo til em parties ReiserFS e VFAT.
REISERFS

Tambm realiza uma checagem da unidade em questo, procurando por


reas e blocos danificados que porventura possam existir na unidade de
disco rgido; sendo que esta ferramenta foi desenvolvida para ser utilizada
unicamente em sistemas de arquivos ReiserFS.
Sintaxe:
# reiserfs [PARMETRO] /dev/[PARTIO]

Onde:

-a: exibe detalhes sobre o sistema de arquivos;

-j: especifica um arquivo journaling alternativo para ser utilizado;

-q: no exibe nenhuma mensagem de status.

Para uma simples e bsica checagem, utilizem...


# reiserfs /dev/[PARTIO]

Para o ext2, deveremos utilizar a opo -p para obter a mesma funcionalidade,


visto que a opo -a somente encontra-se por questes de compatibilidade.

63/128

Lembrem-se: as parties devem estar previamente desmontadas.

REALIZANDO

A TRANSFERNCIA DE DADOS

DD

Alm da cpia direta de arquivos e dados, o comando dd tambm poder


ser utilizado para criar cpias de dados das parties desejadas.
Para obterem maiores informaes, consultem nesta parte o captulo
Manipulao de arquivos e diretrios.

OPERAES

COM DISQUETES

Em virtude da imensa utilizao desta unidades de armazenamento,


resolvemos descrever um conjunto de instrues para facilitar ao mximo
sua utilizao em sistemas GNU/Linux.

UTILIZAO
No MS-DOS, o processo de utilizao de disquetes algo relativamente
simples, onde basta apenas inserir a mdia no drive leitor e acessar
diretamente o dispositivo. Em sistemas GNU/Linux, este dispositivo
dever ser antes montado como qualquer outro, porm lembre-se que as
unidades so referenciadas de forma diferente.

FORMATAO
Diferente dos sistemas da Microsft, onde seus sistemas operacionais
realizam uma nica operao formatao para preparar os disquetes
para o uso, nos sistemas GNU/Linux, por padro estes processos se
dividem em 2 fases distintas:

Formatao de baixo nvel;

Criao do sistema de arquivos.

Na formatao de baixo nvel sero recriados todos o setores e trilhas


para posteriormente ser definido um sistema de arquivo. Este processo
de suma importncia, pois s assim teremos certeza de que
armazenaremos nossos dados em uma unidade isenta de defeitos, pois a
mdia de armazenamento magntica muito sensvel.
# fdformat /dev/fd0H1440

Observe que para realizar a formatao de um disquete, o mesmo no


poder estar montado previamente no sistema.
Aps a baixa formatao, teremos ento a possibilidade de definir o
sistema de arquivos que desejarmos, diferente dos utilitrios do MS-DOS
que nos permite apenas a utilizao de um nico sistema de arquivos.
64/128

Dentre os formatos suportados, destacam-se o msdos e o ext2.


Para criar um sistema de arquivos com as opes desejadas, basta utilizar
o comando mkfs e definir o formato desejado:
$ mkfs.msdos /dev/fd0

... ou...
$ mkfs -t ext2 /dev/fd0

Outro bom utilitrio para esta atividade o Superformat, que por sua vez
j realiza a formatao e define o sistema de arquivos da unidade em
questo.
Sintaxe:
$ superformat [PARMETROS] /dev/[UNIDADE]

Segue um exemplo simples e bsico:


$ superformat /dev/fd0
Measuring drive 0's raw capacity
warmup cycle:
7 200150 200148

No ir demorar para que todo o processo seja concludo.


Measuring drive 0's raw capacity
In order to avoid this time consuming measurement in the future,
add the following line to /etc/driveprm:
drive0: deviation=720
CAUTION: The line is drive and controller specific, so it should be
removed before installing a new drive 0 or floppy controller.
Verifying cylinder 79, head 1
mformat -s18 -t80 -h2 -S2 -M512

a:

$ _

Este comando utiliza apenas seus parmetros padres.

OPERAES

COM OS GRAVADORES DE

CD/DVD

Os seguintes utilitrios so essenciais para a manipulao da unidade de


CD-R/CD-RW do sistema:
MKISOFS

O mkisofs abreviao de mk (make = fazer) iso (imagem ISO) e fs


(filesystem = sistema de arquivos) permite construir imagens ISO
partir de dados disponveis de uma unidade.
Sintaxe:
$ mkisofs [PARMETROS] -o [IMAGEM].iso [DIRETRIO_ORIGEM]

Onde:

-C: para a criao de imagens com mltiplas sesses;


65/128

-J: habilita as extenses Joilet, requerimento indispensvel para


manter compatibilidade com os demais sistemas operacionais
(como o Windows, por exemplo);

-l: habilita o suporte aos longos nomes de at 31 caracteres, pois o


padro ISO9660 suporta apenas o formato 8.3, que por sua vez
compatvel com o MS-DOS;

-L: permite a gravao de arquivos ocultos, ou seja, os que iniciam


com a utilizao do ponto (.);

-o: especifica o nome da imagem a ser gerada (output);

-r: abreviao de Rock Ridge, um protocolo que evita a truncagem


dos nomes de arquivos longos para a gravao de mdias;

-v: mostra todo o andamento do processo em execuo;

-V: define o nome do volume (label).

Como exemplo, criaremos uma imagem simples apenas com uma pequena
estrutura de diretrios para teste.
$ mkisofs -J -r -o TESTE.iso /home/darkstar/teste
Total translation table size: 0
Total rockridge attributes bytes: 1693
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 8284
464 extents written (0 Mb)
$ _

Estes so os mnimos comandos necessrios para se criar uma imagem


para serem gravadas posteriormente em CD-ROM.
CDRECORD

O cdrecord o utilitrio padro para a realizao de atividades


relacionadas ao processo de gravao de mdias (CDs e DVDs).
Sintaxe para o uso geral:
$ cdrecord [PARMETROS]

Sintaxe para gravao:


$ cdrecord -fs=[BUFFER]M speed=[VELOCIDADE] dev=[LOCALIZAO] -[ESPECIFICAO]
[IMAGEM].iso

Onde:

-blank=[TIPO]: apaga os dados armazenados em uma mdia


regragvel. Os subparmetros (tipos) especficos deste so: all ->
Apaga tudo, session -> apaga uma sesso (para gravaes
multisesso) e track -> faixa de udio;

-dev[N,N,N.]: localizao da unidade SCSI em questo (veja


-scanbus);
66/128

-dummy: realiza apenas um teste ao invs de realizar a gravao;

-eject: ejeta o disco no final da operao;

[ESPECIFIC.]: define qual tipo de imagem ser criado: -data (para


dados), -audio (para CDs de udio);

-fs=[BUFFER]: especifica o tamanho do buffer de memria para a


gravao (quando omitido, o valor padro 4 MB);

-multi: utiliza o recurso de multi-sesso;

-scanbus: exibe os dados da unidade do sistema.

-speed=[VEL]: define a velocidade de gravao (a mxima dever


ser a suportada pelo aparelho e mdia);

-v: exibe mensagens sobre o andamento do processo.

Segue simples exemplos para...

Gravao de dados (ISO):

$ cdrecord -v -fs=8M speed=16 dev=0,0,0 -data backup.iso

Gravao de udio (faixas):

$ cdrecord -v -fs=8M speed=16 dev=0,0,0 -audio [F1], [F2], [F3], ...

Gravao de dados + udio:

$ cdrecord -v -fs=8M speed=16 dev=0,0,0 -data backup.iso -audio [F1], [F2],


[F3], ...

Lembrem-se de que, apesar de improvvel, de acordo com o equipamento


o device correspondente ao do usurio poder ser diferente ao acima
especificado (dev=0,0,0). Para descobrir o dev correspondente, utilizem...
$ cdrecord -scanbus
Cdrecord 2.00.3 (i686-pc-linux-gnu) Copyright (C) 1995-2002 Jrg Schilling
Linux sg driver version: 3.1.25
Using libscg version 'schily-0.7'
scsibus0:
0,0,0
0) 'HL-DT-ST' 'CD-RW GCE-8525B ' '1.03' Removable CD-ROM
0,1,0
1) *
0,2,0
2) *
0,3,0
3) *
0,4,0
4) *
0,5,0
5) *
0,6,0
6) *
0,7,0
7) *
$ _

J as faixas de udio devero ser arquivos nos formatos de .wav e/ou .cdr.
Um recurso interessante do cdrecord est na possibilidade de se
descobrir todos os dados de uma determinada mdia de CD-R/RW. Para
isto, basta inseri-lo na bandeja e (sem montar a unidade) digitar o
seguinte comando:
# cdrecord -atip dev=0,0,0

67/128

A linha que nos importa ser a seguinte:


Manufacturer: CMC Magnetics Corporation

Alm do fabricante, observe que tambm so exibidas outras informaes


gerais, tanto da unidade gravadora quanto da mdia utilizada.
$ cdrecord -atip dev=0,0,0
Cdrecord 2.00.3 (i686-pc-linux-gnu) Copyright (C) 1995-2002 Jrg Schilling
scsidev: '0,0,0'
scsibus: 0 target: 0 lun: 0
Linux sg driver version: 3.1.25
Using libscg version 'schily-0.7'
Device type
: Removable CD-ROM
Version
: 0
Response Format: 2
Capabilities
:
Vendor_info
: 'HL-DT-ST'
Identifikation : 'CD-RW GCE-8525B '
Revision
: '1.03'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags
: MMC-2 SWABAUDIO BURNFREE
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
cdrecord: Input/output error. test unit ready: scsi sendcmd: no error
CDB: 00 00 00 00 00 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 02 00 00 00 00 0A 00 00 00 00 3A 01 00 00
Sense Key: 0x2 Not Ready, Segment 0
Sense Code: 0x3A Qual 0x01 (medium not present - tray closed) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 0.000s timeout 40s
cdrecord: No disk / Wrong disk!
bash-2.05b$ cdrecord -atip dev=0,0,0
Cdrecord 2.00.3 (i686-pc-linux-gnu) Copyright (C) 1995-2002 Jrg Schilling
scsidev: '0,0,0'
scsibus: 0 target: 0 lun: 0
Linux sg driver version: 3.1.25
Using libscg version 'schily-0.7'
Device type
: Removable CD-ROM
Version
: 0
Response Format: 2
Capabilities
:
Vendor_info
: 'HL-DT-ST'
Identifikation : 'CD-RW GCE-8525B '
Revision
: '1.03'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags
: MMC-2 SWABAUDIO BURNFREE
Supported modes:
ATIP info from disk:
Indicated writing power: 5
Is not unrestricted
Is not erasable
Disk sub type: Medium Type A, high Beta category (A+) (3)
ATIP start of lead in: -11634 (97:26/66)

68/128

ATIP start of lead out: 359846 (79:59/71)


Disk type:
Short strategy type (Phthalocyanine or similar)
Manuf. index: 3
Manufacturer: CMC Magnetics Corporation
$ _

Lembrem-se de que dependendo da verso utilizada o cdrecord apenas


grava em unidades SCSI (os quais as unidades IDE so emuladas pelo
kernel atravs do mdulo ide-scsi). J na verso atual do kernel (srie
2.6.x), esta restrio no existe...

CONCLUSO
A necessidade de ter conhecimentos para a manipulao de unidades,
parties e formatos de sistemas de arquivos em sistemas GNU/Linux em
comparao ao Windows pode tornar sua utilizao cansativa nestas
atividades (em alguns casos, complicados), porm sero vitais para
realizar atividades de manuteno em situaes que no tenhamos
disponveis ambientes grficos e suas respectivas ferramentas. &;-D

69/128

VI. USURIOS,

GRUPOS E PERMISSES DE

ACESSO

INTRODUO
O conhecimento em administrao de contas usurios, grupos e
permisses de acesso, alm das atividades de edio de arquivos de
configurao pertinentes, so de extrema importncia para assegurar a
boa coexistncia entre diferentes utilizadores do sistema.
Neste captulo, iremos conhecer os principais recursos disponveis pelos
sistemas GNU/Linux para o gerenciamento de contas, grupos e
permisses.

CONSIDERAES
AS

BSICAS

CONTAS

Conforme j dito anteriormente, os sistemas GNU/Linux so ambientes


multi-usurios. Apesar disto e de acordo com sua categoria nem todos
possuem um mesmo perfil, necessidades e/ou responsabilidades. Para isto
existem as contas de autenticao ou contas de acesso.
Por mais diferentes que tais perfis sejam, estes se enquadram em duas
classes distintas: Superusurio tambm conhecido como administrador
do sistema , e usurio comum ou simplesmente usurios.

ADMINISTRADOR DE SISTEMA

Conforme j comentado diversas vezes, o root o administrador do


sistema muitas vezes tambm chamado de superusurio.
De acordo com a distribuio utilizada, existir um momento na instalao
do sistema em que ser solicitado a senha para acesso do superusurio.
Changing password for root
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password: _

Instante final do processo de instalao da distribuio em que requerida uma senha


para o administrador (root).

Somente o root possui acesso total ao sistema. ele quem define as


permisses gerais para acesso aos recursos e dados gerais do sistema
para o usurio. Em algumas circunstncias (de acordo com a distribuio
utilizada), a sua nica limitao existente est no acesso a Internet.
70/128

Por tratar-se de um usurios com acesso total ao sistema, muitas


distribuies definiram as permisses de acesso referentes a conexo com
a Internet somente disponveis para os usurios, que por sua vez, caso
sejam acessados involuntariamente por invasores da rede, estes no tero
as permisses necessrias para ocasionar males ao sistema. Mas em
algumas distribuies expert-user (como o Slackware), por ser destinada a
usurios de mdio e alto nvel tcnico, esta limitao no existe, deixando
a responsabilidade cargo dos administradores do sistema.
Aps autenticado, o smbolo de indicador na linha de comando :
Login: root
Passwd:
# _

USURIO COMUM

A conta de usurio ou conta comum , diferente do superusurio, pois


possui apenas permisses bsicas para a realizao de atividades gerais
no sistema e algumas configuraes locais, onde no possvel a
realizao de intervenes de encargo do superusurio, como a instalao
/ atribuio de permisso / configurao / remoo de programas,
arquivos e dispositivos do sistema, entre outros.
Porm, de acordo com as definies do superusurio, as configuraes
gerais de permisso do usurio podero ser editadas para que possam
atender a determinadas circunstncias. Por exemplo, podemos atribuir
grupos para que estes tenham permisso para acessar a Internet, ao
sistema de impresso, etc.
Aps autenticado, o smbolo de indicador na linha de comando :
Login: darkstar
Passwd:
$ _

O ID
O ID um nmero de identificao para qualquer um dos elemento do
sistema usurio e grupo. Este por sua vez se subdivide em:

GID: definido como a numerao de ID especfica para os grupos


de acesso do sistema. Todos os IDs de contas de grupos de acesso
pertencem ao intervalo de 1 a 499.

UID: definido como a numerao de ID especfica para as contas


de usurio do sistema. exceo do superusurio (UID = 0), todos
os IDs de contas de usurio iniciam a partir de 500.

Para obter informaes das IDs relacionadas uma conta especfica...


$ id
uid=1000(darkstar) gid=100(users)
groups=100(users),0(root),1(bin),2(daemon),3(sys),5(tty),6(disk),7(lp),8(mem),

71/128

9(kmem),10(wheel),11(floppy),12(mail),13(news),14(uucp),15(man),17(audio),18(v
ideo),19(cdrom),20(games),21(slocate),22(utmp),25(smmsp),27(mysql),32(rpc),33(
sshd),42(gdm),43(shadow),50(ftp),90(pop),93(scanner),98(nobody)
$ _

OS

GRUPOS

Os grupos de acesso so definies especiais de permisses para serem


utilizadas quando houver a necessidade de disponibilizar o acesso a um
sistema de dados (arquivos e diretrios) ou um determinado servio para
uma categoria distinta. Por exemplo, num escritrio de recursos humanos,
onde as planilhas de contabilidade somente podero ser acessadas pelos
profissionais de contabilidade, podero ser definidos um grupo especfico
chamado contabilidade, onde tambm as permisses de acesso para
cada arquivo criado por este grupo dever estar previamente definido.

AS

PERMISSES

Ao listarmos o contedo de um determinado diretrio com o comando ls -l,


poderemos observar a existncia de vrias colunas contendo informaes
referentes a: tipo e permisso de acesso, nmero de atalhos, proprietrio,
grupo, tamanho e nome, respectivamente.
lrwxrwxrwx
drwxr-xr-x
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
drwxr-xr-x

1
17
1
1
1
4

darkstar
darkstar
darkstar
darkstar
darkstar
darkstar

users 11 2005-02-18 22:03 cdrom -> /mnt/cdrom/


users 464 2005-03-10 23:57 docs
users 11 2005-02-18 22:03 flash -> /mnt/flash/
users 12 2005-02-18 22:03 floppy -> /mnt/floppy/
users
9 2005-02-18 22:03 pkg -> /mnt/pkg/
users 208 2005-03-12 21:17 z

No modo texto, existem 10 seqncias de caracteres chamados flag.


lrwxrwxrwx
drwxr-xr-x
lrwxrwxrwx
lrwxrwxrwx
lrwxrwxrwx
drwxr-xr-x

1
17
1
1
1
4

darkstar
darkstar
darkstar
darkstar
darkstar
darkstar

users
users
users
users
users
users

O primeiro caracter indica o tipo do elemento:

d: diretrio;

l: atalho (link);

c: dispositivo do tipo character;

b: dispositivo do tipo bloco.

Aos demais caracteres da coluna de permisses de acesso refere-se as


flags de permisses definidas para os arquivos e/ou diretrios presentes.
No modo grfico, a 1a. coluna omitida, visto que os recursos visuais
facilitam a exibio do tipo do item.

72/128

Diretrio raz do sistema atravs do Konqueror, onde so exibidos suas respectivas


permisses de acesso, definies de usurio e grupo.

Estas 9 seqncias de letras subdividem-se nos seguintes grupos:

Dono: 1a. a 3a. letras da seqncia, refere-se as permisses de


acesso do dono do arquivo em questo neste caso, darkstar;

Grupo: 4a. a 6a. letras da seqncia, refere-se as permisses de


acesso do grupo o qual o dono do arquivo pertence users;

Todos: 7a. a 9a. letras da seqncia, refere-se as permisses de


acesso dadas queles que no sejam donos e nem pertencem ao
grupo de acesso do qual o arquivo pertence.

SENHA
Sem maiores dvidas, os usurios dos sistemas GNU/Linux somente
podero ter acesso as suas contas de acesso e tudo o que nela estiver
aps definirem uma senha de autenticao. Durante a criao de uma
nova conta de acesso, ser solicitado ao usurio a definio de uma senha,
o qual bastar o usurio utilizar um conjunto de caracteres.

COMANDOS
ADIO

GERAIS

DE USURIOS E GRUPOS

ADDUSER

O comando adduser utilizado para criar contas de usurios e somente


utilizado pelo administrador do sistema.
Sintaxe:
# adduser [APELIDO]

...ou simplesmente...
# adduser

73/128

Exemplificaremos detalhadamente o processo de criao da conta de um


usurio. Para comear, digitem apenas o comando com administrador do
sistema, onde ser solicitado um apelido (nick) para o usurio.
Login name for new user []: darkstar

- User 'Darkstar' contains illegal characters (uppercase); please choose another

Login name for new user []: _


Observe que o comando no aceita o uso de caracteres iniciais maisculas
(caixa alta), solicitando novamente a incluso do apelido desejado.
Login name for new user []: darkstar
User ID ('UID') [ defaults to next available ]: _

Nesta seo dever ser definido o UID do usurio. Apenas teclem


<ENTER> para que o sistema possa definir uma UID disponvel.
Initial group [ users ]: _

Aqui dever ser definido o grupo padro do usurio ou o grupo inicial,


conforme a descrio acima. Digitem o grupo desejado ou apenas teclem
<ENTER> para defini-lo no grupo padro do sistema (users).
Additional groups (comma separated) []: _

Nesta prxima etapa, o comando solicita a informao de outros grupos


para a conta a ser criada. O usurio ter acesso aos recursos de acordo
com os grupos inclusos para este. Para obterem maiores informaes,
consultem a seo Consideraes bsicas -> Grupos de acesso.
Aps definir os grupos de acesso, teclem <ENTER>.
Home directory [ /home/darkstar ] _

O sistema definir o diretrio do usurio utilizando o prprio nome da


conta. Caso haja necessidade de definir outro caminho, digitem-no na
linha de comando ou simplesmente teclem <ENTER> para manter o
padro.
Shell [ /bin/bash ] _

Definio padro do interpretador da linha de comando o Bash, indicado


acima na opo Shell. Caso queiram utilizar outro que no seja o Bash,
bastar especific-lo aqui. Por exemplo, para o interpretador Ash,
/bin/ash; para o Csh, /bin/csh. Prefiram manter o interpretador padro,
apenas teclando <ENTER>.
Expiry date (YYYY-MM-DD) []: _

A data de validade poder ser definida nesta seo, bastando apenas


digit-la no formato ANO-MS-DIA. Caso queiram que esta no tenha
prazo de expirao definido, apenas teclem <ENTER>.
New account will be created as follows:
--------------------------------------Login name.......: darkstar

74/128

UID..............:
Initial group....:
Additional groups:
Home directory...:
Shell............:
Expiry date......:

[ Next available ]
users
[ None ]
/home/darkstar
/bin/bash
[ Never ]

This is it... if you want to bail out, hit Control-C.


ENTER to go ahead and make the account.

Otherwise, press

Enfim, tendo a conta criada, ser mostrado conforme acima todos os


dados digitados pelo superusurio para a criao da nova conta. Logo em
seguida, ser solicitado pelo sistema os dados adicionais para a nova
conta criada. Tecle <ENTER> e iniciaremos o cadastro das informaes
adicionais.
Creating new account...
Changing the user information for darkstar
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:

Preencha os dados solicitados como nome completo, endereo, telefone do


trabalho, telefone do lar, alm de outras informaes que considerarem
necessrias, se assim desejarem (estas informaes so opcionais). Por
ltimo, dever ser definido a senha de acesso.
Changing password for darkstar
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password: _

Ao utilizarem um conjunto de caracteres curtos com 5 ou menos o


comando rejeitar a cadeia definida devido a sua poltica de segurana
para a definio de senhas, onde h o requerimento mnimo de 6
caracteres.
Bad password: too short.
Warning: weak password (enter it again to use it anyway).
New password: _

Novamente defina uma nova senha de acesso respeitando esta poltica. Se


a cadeia de caracteres estiver de acordo como o exigido, o comando
solicitar para que seja repetida a seqencia utilizada para confirmar.
Este procedimento ideal para aquelas circunstncias em que digitamos
algum nmero ou caracter diferente do desejado, possibilitando com isto
corrigir a senha definida.
New password:
Re-enter new password:

No final da operao, sero exibidas as seguintes mensagens:


75/128

Password changed.
Account setup complete.
# _

GROUPADD

Adiciona grupos ao sistema operacional.


Sintaxe:
# groupadd [PARMETROS] [GRUPO]

Onde:

-g: define manualmente um ID especfico para o grupo;

-r: adiciona uma conta do sistema;

-f (force): mantm um grupo j existente no sistema.

Exemplo:
# groupadd suporte

... para que seja criado um novo grupo chamado suporte.

ADMINISTRAO
LOGIN

LOGOUT

DE CONTAS
EXIT

Toda vez que o sistema inicializado, voc dever notar a existncia de


uma linha de comando com a seguinte mensagem:
login: _

Sua finalidade a autenticao do usurio: para que possamos acessar o


sistema e usufruir de seus recursos, teremos que nos tornar autnticos.
login: darkstar
Password: [SENHA]
$ _

E como fazer para nos deslogarmos? Para isto, existe o comando logout.
$ logout

Outra forma de finalizar uma sesso utilizando o comando exit:


$ exit

Na utilizao destes comandos nas interfaces grficas, como o Konsole ou


o XTerm, estes apenas tm suas caixas de dilogos finalizadas.
ID

O comando id utilizado basicamente para obter informaes dos IDs dos

76/128

usurios autenticados no sistema, como o seu prprio e tambm o dos


grupos os quais este se encontra.
Para a sua utilizao, basta apenas digitar o comando com as contas
desejadas autenticadas. Observe nos exemplos abaixo que as informaes
so exibidas em duas categorias: UID (ID do usurio) e gid (ID do grupo).
Superusurio:
# id
uid=0(root) gid=0(root)
grupos=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy)
# _

Usurio comum:
$ id
uid=1000(darkstar) gid=100(users) grupos=100(users),14(uucp)
$ _

USERS

GROUPS

Exibem respectivamente os usurios autenticados naquele momento e


seus grupos de acesso.
Superusurio:
$ users
root
$ groups
root bin daemon sys adm disk wheel floppy
$ _

Usurio comum:
$ users
darkstar
$ groups
users disk floppy uucp audio video cdrom
$ _

PASSWD

O comando passwd utilizado para especificar uma nova senha ou alterar


a senha atual de conta de usurio. Basta digitarem...
# passwd [USURIO]

... ou apenas...
$ passwd

... para alterarmos a senha do usurio desejado. Segue um exemplo


simples para a alterao de uma senha feita pelo administrador, para
melhor entendimento.
# passwd darkstar
Changing password for darkstar
Old password: _

77/128

Observem que o comando no aceita de forma alguma a utilizao de


novas senhas que no possuam um mnimo de 5 caracteres.
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
passwd: all authentication tokens update sucessfully
# _

Ao tentar utilizarmos uma senha fora dos requerimentos necessrios...


New password: [SENHA]
Bad password: no change.

Try again.

Dentro de uma seo de usurio, bastar utilizarem apenas...


$ passwd

... e o sistema solicitar que o mesmo atualize a senha desta conta.


$ passwd
Changing password for darkstar
Old password: [SENHA ANTIGA]
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password: [SENHA NOVA]
passwd: all authentication tokens update sucessfully
$ _

FINGER

Exibe informaes gerais de autenticao das contas do sistema.


Sintaxe:
$ finger [PARMETROS] [USURIO]

Onde:

-s: informaes adicionais (nome completo, telefone, etc., ou seja,


todas as informaes solicitadas no ato da criao da conta);

-l: modo de exibio das informaes em diversas linhas;

A conta darkstar esta conectada no momento da utilizao deste comando...


$ finger darkstar
Login: darkstar
Name: (null)
Directory: /home/darkstar
Shell: /bin/bash
On since Tue Apr 6 09:27 (UTC) on :0 (messages off)
On since Tue Apr 6 09:27 (UTC) on pts/0
2 hours 25 minutes idle
On since Tue Apr 6 09:42 (UTC) on pts/2 (messages off)
No mail.
No Plan.
$ _

Ainda autenticado como darkstar...


$ finger root
Login: root
Directory: /root

Name: (null)
Shell: /bin/bash

78/128

Last login Fri Apr 2 18:00 (UTC) on tty1


Mail last read Tue Mar 30 23:23 2004 (UTC)
No Plan.
$ _

Observem que, pelo fato do superusurio no estar autenticado, o


comando apenas exibe a ltima vez em que este autenticou-se no sistema.
UPTIME

Exibe o tempo de autenticao do usurio no sistema.


Sintaxe:
$ uptime

Ao digitar o comando acima descrito...


$ uptime
12:29:37
$ _

up

3:13,

ELIMINANDO

3 users,

load average: 0.03, 0.05, 0.00

USURIOS E GRUPOS

USERDEL

Elimina a conta de usurio do sistema.


Sintaxe:
# userdel [PARMETROS] [USURIO]

Onde:

-r: elimina todos os dados gravados em seu diretrio pessoal.

Segue um exemplo simples e prtico:


# userdel darkstar

Caso no sejam mais necessrios os dados arquivados em seu diretrio


pessoal, utilizem o parmetro -r desta forma:
# userdel -r darkstar

GROUPDEL

Elimina o grupo de acesso do sistema.


Sintaxe:
# groupdel [GRUPO]

Uma dica importante encontrada na documentao eletrnica do comando


est na restrio da remoo de um grupo primrio de um grupo
existente, onde a prvia remoo dos usurios faz-se necessria.

79/128

OBTENDO

OS PRIVILGIOS DE OUTROS USURIOS

Apesar da pouca utilizao das acessibilidades dos demais usurios e


especialmente o superusurio , existiro circunstncias em que haver a
necessidade da obteno de especficas permisses.
SU

Apesar possurem plenos poderes, os superusurios somente devem


utilizar sua senha de acesso apenas para a administrao do sistema, onde
sua utilizao para tarefas triviais de usurios, alm de desnecessria,
poder acarretar riscos para a integridade do sistema. Na maioria das
vezes estes necessitam apenas de uma simples conta de acesso para fazer
uso dos recursos do sistema em si, porm podero surgir algumas
circunstncias em que ser necessrio realizar intervenes ao sistema.
Mas como fazer isto, sem ter que estar autenticando-se a todo o
momento?
Para obtermos os privilgios de administrador do sistema, sem ter que
nos deslogarmos, deveremos utilizar o comando su. Sua sintaxe
simples e bsica, onde bastar apenas digitar na linha de comando...
$ su
Password: [SENHA DO SUPERUSURIO]
# _

E fornecer a senha de superusurio para ter as permisses de acesso


desejadas. Note que indicador tambm mudou ($ -> #).
A utilidade deste comando basicamente esta: ter acesso aos poderes de
superusurio apenas para realizar intervenes bsicas e rpidas,
retornando logo em seguida s suas atividades comuns.
Dentre algumas limitaes deste recurso est a impossibilidade de
executar algumas aplicaes que faam a utilizao das bibliotecas
grficas estes sequer se encontraro disponveis, ao digitar as 1as.
Iniciais do executvel e teclar <TAB>. Por exemplo, ao utilizar o comando
su para obter os privilgios de superusurio e tentar executar...
# kppp
bash: kppp: command not found
# _

... o interpretador retorna uma mensagem de que no se encontra o


programa desejado, mesmo estando ciente de que se encontra instalado
no sistema e que o superusurio tem plenos poderes para a sua execuo.
Dependendo destas limitaes, talvez ser at mesmo necessrio
autenticar-se novamente ao sistema como superusurio e iniciar o
ambiente grfico para realizarmos as atividades administrativas
desejadas.
Para retornar ao estado anterior, bastar apenas digitarmos...

80/128

# exit

ATRIBUTOS

DE ARQUIVOS E DIRETRIOS

Alm da manipulao bsica dos arquivos em sistemas GNU/Linux,


poderemos tambm definir suas permisses e atributos especficos, alm
das definies dos usurios donos e grupos de acessos destes.
CHMOD

Em modo texto, poderemos utilizar o comando chmod para alterar as


permisses de acesso destes elementos de acordo com sua necessidade.
Sintaxe:
# chmod [ugoa] {+-} [rwx] [ARQUIVO_OU_DIRETRIO]

...ou...
# chmod [NNN] [ARQUIVO_OU_DIRETRIO]

Onde a categoria [ugoa] possui as seguintes definies:


Caracter

Definio de categoria

users

... apenas para usurio (dono) do arquivo.

group

... apenas para o grupo o qual o usurio se encontra.

other

... para outros que no pertenam ao grupo do usurio.

all

... para todos.

J os sinais e atribuio {+-} possuem as seguintes definies:


Sinal

Significado / Funo

Habilita os parmetros indicados.

Desabilita os parmetros indicados.

J as flags [rwx] possuem as seguintes definies:


flags
r

Arquivo

Diretrio

read

Leitura.

Acesso ao dados de seu contedo

w write

Escrita.

Gravao de dados em seu contedo.

execute Execuo. Visualizao de dados contedo de seu contedo.

Por ltimo, [NNN] tambm representa as definies de categorias...


[NNN]

Categoria (Equivale de...)

1o. nmero ... 2a. a 4a. seqncia de letras (dono).


2o. nmero ... de 5a. a 7a. seqncia de letras (grupo).

81/128

[NNN]

Categoria (Equivale de...)

3o. nmero ... de 8a. a 10a. seqncia de letras (outros).

... e as permisses de acesso, em valor numrico:


N Funcionalidade bsica (permisso...)
0

Nenhum.

... apenas para executar.

... apenas para gravar.

... apenas para ler.

Outro recurso interessante da atribuio dos valores numricos a sua


combinao para a definio de mltiplas flags. Observe a tabela abaixo:
N Combinao

Funcionalidade combinada

1+2

Permisso para executar (1) e gravar (2).

1+4

Permisso para executar (1) e ler (4).

2+4

Permisso para gravar (2) e ler (4).

1+2+4

Permisso para executar (1), gravar (2) e ler (4).

No geral fica assim:


N

Funcionalidades totais

sem permisso.

Permisso apenas para executar.

Permisso apenas para gravar.

Permisso para gravar e executar.

Permisso apenas para ler.

Permisso para executar e ler.

Permisso para gravar e ler.

Permisso para executar, gravar e ler.

Segue alguns exemplos prticos para melhor compreenso...


Desabilita a execuo do arquivo ou a visualizao do contedo do
diretrio especificado apenas para o usurio:
$ chmod u-x [ARQ/DIR]

Habilita a leitura do arquivo ou o acesso ao diretrio especificado apenas


para o grupo do qual o usurio se situa:
$ chmod g+r [ARQ/DIR]

Desabilita a escrita do arquivo ou a gravao de arquivos no diretrio


especificado somente para outros que no seja o usurio, nem pertenam
82/128

ao grupo deste:
$ chmod o-w [ARQ/DIR]

Desabilita a execuo do arquivo ou a visualizao do contedo do


diretrio especificado para todos os usurios:
$ chmod a+x [ARQ/DIR]

Permisso para executar, gravar e ler pelo usurio (7); ler e executar pelo
grupo o qual pertena o usurio (5); apenas leitura para outros que no
pertenam ao grupo (4):
$ chmod 754 [ARQ/DIR]

Parece um pouco complicado; mas com a prtica, iremos nos familiarizar.


CHOWN

Utilizado para mudar dono e grupo de um arquivo ou diretrio.


Sintaxe:
# chown [USURIO].[GRUPO] [ARQUIVO_OU_DIRETRIO]

Onde [USURIO].[GRUPO] so as especificaes do novo usurio e grupo


para o arquivo e/ou diretrio desejado. Segue um simples exemplo:
# chown darkstar.users /home/darkstar/texto.txt

... ou...
# chown root.root /usr

Para definir os mesmos valores nos arquivos e diretrios de um


determinado diretrio, deveremos ento utilizar o parmetro -R
(recursivo).
# chown -R root.root /usr

CHGRP

Possui a mesma finalidade que o comando chown, porm apenas atua na


modificao do grupo.
Sintaxe:
# chgrp [GRUPO] [ARQUIVO_OU_DIRETRIO]

Exemplo:
# chgrp root /usr

Da mesma maneira, podemos definir


recursivamente com o parmetro -R.

contedo

do

diretrio

# chgrp -R root /usr

83/128

UMASK

Define as permisses padres que os arquivos e diretrios devero ter no


momento em que sero criados.
Sintaxe:
# umask [NNN]

Apesar de atribuir as permisses de acesso utilizando a mesma


metodologia do comando chmod, o comando umask utiliza valores
diferenciados para os nmeros os quais utiliza. Segue sua tabela de
permisses de acesso, equivalente ao chmod, porm com valores
invertidos, conforme vemos:

6: sem permisso;

5: permisso apenas para executar;

4: permisso apenas para gravar;

3: permisso para gravar e executar;

2: permisso apenas para ler;

1: permisso para executar e ler;

0: completo leitura, execuo e escrita.

Por padro, o valor das permisses praticadas pelo umask 022, que
corresponde ao 644 utilizado pelo chmod. Ou seja, apesar de
apresentarem as mesmas definies, os valores numricos so
exatamente opostos.
Para alterar o valor umask, basta utilizar o comando...
$ umask [VALOR]

Onde [VALOR] dever ser o novo perfil de valores das permisses


serem adotadas. Para torn-lo padro todos usurios, basta editar o
arquivo /etc/profile e alterar suas definies...
# Default umask. A umask of 022 prevents new files from being created group
# and world writable.
umask 022

... para...
umask [VALOR]

Uma questo importante est no uso da permisso para execuo. Mesmo


que na criao da grande maioria dos arquivos no necessitem, os
diretrios precisam dela para que possamos acess-los.

84/128

OS

ARQUIVOS DE CONFIGURAO

/ETC/PASSWD
Em /etc/passwd esto as definies gerais de usurios cadastrados no
sistema. Ao ser adicionado um novo usurio, todas as informaes
geradas so gravadas neste arquivo, como o apelido, o UID, diretrio
padro e interpretador de comandos. Porm as senhas so armazenadas
de forma criptografadas em outro arquivo, o /etc/shadow.
root:x:0:0::/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
daemon:x:2:2:daemon:/sbin:/bin/false
adm:x:3:4:adm:/var/log:/bin/false
lp:x:4:7:lp:/var/spool/lpd:/bin/false
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/:/bin/false
news:x:9:13:news:/usr/lib/news:/bin/false
uucp:x:10:14:uucp:/var/spool/uucppublic:/bin/false
operator:x:11:0:operator:/root:/bin/bash
games:x:12:100:games:/usr/games:/bin/false
ftp:x:14:50::/home/ftp:/bin/false
smmsp:x:25:25:smmsp:/var/spool/clientmqueue:/bin/false
mysql:x:27:27:MySQL:/var/lib/mysql:/bin/bash
rpc:x:32:32:RPC portmap user:/:/bin/false
sshd:x:33:33:sshd:/:/bin/false
gdm:x:42:42:GDM:/var/state/gdm:/bin/bash
apache:x:80:80:User for Apache:/srv/httpd:/bin/false
messagebus:x:81:81:User for D-BUS:/var/run/dbus:/bin/false
haldaemon:x:82:82:User for HAL:/var/run/hald:/bin/false
pop:x:90:90:POP:/:/bin/false
nobody:x:99:99:nobody:/:/bin/false
darkstar:x:1000:100::/home/darkstar:/bin/bash

/ETC/SHADOW
No arquivo /etc/shadow que so armazenadas todas as senhas de
usurio no sistema, porm utilizando o recurso de criptografia (hash).
root:$1$zXqgpng4$5UuBvFlwf/4SIAv41KdAc0:13728:0:::::
bin:!!:9797:0:::::
daemon:!!:9797:0:::::
adm:!!:9797:0:::::
lp:!!:9797:0:::::
sync:!!:9797:0:::::
shutdown:!!:9797:0:::::
halt:!!:9797:0:::::
mail:!!:9797:0:::::
news:!!:9797:0:::::
uucp:!!:9797:0:::::
operator:!!:9797:0:::::

85/128

games:!!:9797:0:::::
ftp:!!:9797:0:::::
smmsp:!!:9797:0:::::
mysql:!!:9797:0:::::
rpc:!!:9797:0:::::
sshd:!!:9797:0:::::
gdm:!!:9797:0:::::
apache:!!:9797:0:::::
messagebus:!!:9797:0:::::
haldaemon:!!:9797:0:::::
pop:!!:9797:0:::::
nobody:!!:9797:0:::::
darkstar:$1$XQe/m3Bh$s1/1sEdNMEnUKVIWFCaF4/:13729:0:99999:7:::

/ETC/GROUPS
No arquivo /etc/groups esto todas as definies de grupos de
autenticao. Todos os grupos padres do sistema, mais os grupos
especficos das aplicaes e ainda os grupos criados pelo administrador
possuem suas especificaes aqui descritas.
root::0:root
bin::1:root,bin,daemon
daemon::2:root,bin,daemon
sys::3:root,bin,adm,darkstar
adm::4:root,adm,daemon
tty::5:
disk::6:root,adm
lp::7:lp
mem::8:
kmem::9:
wheel::10:root
floppy::11:root
mail::12:mail
news::13:news
uucp::14:uucp,darkstar
man::15:
games::20:
slocate::21:
utmp::22:
smmsp::25:smmsp
mysql::27:
rpc::32:
sshd::33:sshd
gdm::42:
shadow::43:
ftp::50:
pop::90:pop
nobody::98:nobody
nogroup::99:
users::100:darkstar
console::101:

86/128

CONCLUSO
Apesar da existncia de diversos comandos e recursos para a
administrao de contas, grupos e outras propriedades de um sistema
multi-usurio, o bom conhecimento das atividades de gerenciamento de
usurios muito importante, visto que alm de manter todo o sistema de
dados em segurana, no teremos ocorrncias e inconvenientes
desagradveis como a perda de privacidade ou reclamaes deste tipo do
prprio usurio ou de outras pessoas que fizeram uso da mquina. Alm
disso, nos dar liberdade de personalizarmos o sistema de acordo com
nossas preferncias. &;-D

87/128

VII. O

GERENCIAMENTO DE PROCESSOS

INTRODUO
Conforme enfatizamos diversas vezes, o kernel o principal responsvel
pelo gerenciamento das atividades do sistema, que por sua vez so
caracterizadas como processo. Pelo fato do sistema operacional ser
multitarefa, existem diversos processos em andamento.
Neste captulo iremos conhecer como os sistemas GNU/Linux (mais
precisamente o kernel) administram os processos em execuo, bem como
todas as instrues e comandos para um bom gerenciamento destes.

VISO
O

GERAL

QUE UM PROCESSO?

O processo qualquer atividade executada pelo sistema que envolve uma


rotina de instrues com seus respectivos dados e informaes. Um
processo poder ser um programa em execuo, um comando sendo
acionado, uma chamada do sistema, etc.
Existem 3 tipos de processos distintos:

Interativos: so processos executados a partir e controlados por


um terminal. Ex.: Comandos gerais da linha de comando.

Lotes: so todos os processos agendados pelo usurio e/ou


sistema. Ex.: Programao de tarefas e atividades com o cron.

Servidores: so processos executados na inicializao do sistema e


que necessitam estar em execuo permanente para a utilizao
de seus servios por outros processos que o necessitem. Ex.: O
banco de dados MySQL e o servidor Apache.

IDENTIFICADOR

PID

O PID nada mais que uma identificao numrica de um determinado


processo existente, que por sua vez, quando criado, passa a ser
identificado e manipulado por este nmero. J o PPID de um processo
nada mais que a informao do processo-pai que o gerou. Seria algo
anlogo como a aplicao que executou outra aplicao.

FOREGROUND

E BACKGROUND

Muitas vezes, ao executarmos um aplicativo na linha de comando, esta fica


indisponvel at o encerramento do mesmo. Apesar da disponibilidade de
88/128

vrios terminais virtuais, seria deselegante toda vez que ao executarmos


um programa...

Observem que, quando o GIMP executado, o sinal de prontido fica indisponvel.

... ter que abrir um sesso do terminal, que por sua vez dever ficar
aberto at o encerramento deste, poluindo e dificultando o gerenciamento
das janelas abertas em seu ambiente grfico preferido. A este modo de
execuo, chamamos de inicializao em primeiro plano (foreground).
Por isto, temos a possibilidade de executar um determinado programa ou
atividade na linha de comando e ainda mant-la disponvel conforme
nossas necessidades. O processo gerado para a execuo do programa
fica em segundo plano (background), o qual poder ser manipulado
atravs de outros comandos pela prpria linha de comando, desta vez
liberada para outras atividades.

GERENCIANDO

OS PROCESSOS

Os principais comandos para o gerenciamento de processos so:

VISUALIZAO
PS

Exibe os processos os quais esto sendo rodados no sistema.


Sintaxe:
$ ps [PARMETROS]

Onde:

-A: exibe todos os processos;

-a: exibe os processos somente da seo corrente;

-p [N]: verifica a existncia de um determinado processo, onde [N]


o nmero do processo em questo;

-u: mostra os processos inicializados pelo usurio.


89/128

Experimentem os seguintes comandos e analisem os resultados obtidos de


acordo com a tabela apresentada:
$
$
$
$
$
$

ps
ps
ps
ps
ps
_

-a
-A
-p [NMERO DE UM PROCESSO PR-VISUALIZADO COM OS COMANDOS ANTERIORES]
-u

Para obterem
eletrnica.

maiores

detalhes,

consultem

sua

documentao

TOP

Exibe todos os processos em execuo, alm de outros fatores


importantes, como a utilizao geral da CPU e ocupao da memria.
Sintaxe:
$ top [PARMETROS]

Exemplo:
$ top
top - 18:40:14 up 37 min, 1 user, load average: 0.07, 0.03, 0.00
Tasks: 46 total,
2 running, 44 sleeping,
0 stopped,
0 zombie
Cpu(s):
0.7% user,
0.3% system,
0.0% nice, 99.0% idle
Mem:
515444k total,
295952k used,
219492k free,
40912k buffers
Swap:
506008k total,
0k used,
506008k free,
170472k cached
PID
159
538
551
1
2
3
4
5
6
10
11
35
81
84
124
134
136
140

USER
root
darkstar
darkstar
root
root
root
root
root
root
root
root
root
root
root
root
root
daemon
root

PR NI VIRT
16
0 79428
12
0 15948
12
0
988
8
0
236
9
0
0
19 19
0
9
0
0
9
0
0
9
0
0
-1 -20
0
9
0
0
9
0
0
9
0
592
9
0
444
9
0
520
9
0
528
9
0
616
9
0
500

RES SHR S %CPU %MEM


12m 2244 S 0.3 2.6
15m 13m R 0.3 3.1
988 800 R 0.3 0.2
236 208 S 0.0 0.0
0
0 S 0.0 0.0
0
0 S 0.0 0.0
0
0 S 0.0 0.0
0
0 S 0.0 0.0
0
0 S 0.0 0.0
0
0 S 0.0 0.0
0
0 S 0.0 0.0
0
0 S 0.0 0.0
592 512 S 0.0 0.1
444 388 S 0.0 0.1
520 464 S 0.0 0.1
528 464 S 0.0 0.1
616 548 S 0.0 0.1
500 448 S 0.0 0.1

TIME+
0:33.61
0:00.45
0:00.08
0:04.77
0:00.02
0:00.00
0:00.00
0:00.00
0:00.10
0:00.00
0:00.00
0:00.00
0:00.02
0:00.01
0:00.00
0:00.00
0:00.00
0:00.00

COMMAND
X
kdeinit
top
init
keventd
ksoftirqd_CPU0
kswapd
bdflush
kupdated
mdrecoveryd
kreiserfsd
kapmd
syslogd
klogd
inetd
crond
atd
apmd

Bastam analisar as informaes gerais disponveis na sada do monitor.


O comando tambm possui umas teclas especiais para funcionalidades
especficas, as quais seguem:

<ESPAO>: atualiza a tela;


90/128

<CTRL>+<L>: atualiza a tela, porm apagando o contedo atual;

<H> ou <?>: inicializa a ajuda eletrnica;

<I>: ignora processos zumbis (ociosos);

<K>: finaliza um determinado processo, onde o usurio ser


questionado qual o nmero referente;

<Q>: encerra o programa.

Para sairmos desta tela, bastar apenas pressionarmos a tecla <Q>.

SEGUNDO

PLANO

COLOCANDO

EM SEGUNDO PLANO

Para colocarmos qualquer processo em segundo plano na linha de


comando, bastar utilizarmos o caracter & (e-comercial) no final do
comando invocado.
$ gimp &
[1] 1212
$ _

O programa ser executado normalmente, porm com a prontido da


linha de comando. Mas se ns esquecermos este detalhe desejarmos
coloc-lo em segundo plano?

CONTROL -Z
Conforme sabemos, a linha de comando ficar indisponvel toda vez que
necessitarmos executar outro programa (e conseqentemente gerar um
novo processo).
$ gimp
_

Para que possamos retornar linha de comando, bastar pressionar


<CTRL> + <Z>, do qual retornaremos imediatamente ao sinal de
prontido.
$ gimp
[1]+
$ _

Stopped

gimp

Porm o aplicativo simplesmente ficar inoperante. Como fazer para


reverter este quadro?
BG

Para tornar o aplicativo novamente disponvel, deveremos utilizar o


comando bg BackGround , onde sua finalidade colocar qualquer

91/128

programa interrompido
comando...

em

segundo

plano.

Digitem

na

linha

de

$ bg
[1]+ gimp &
$ _

... para dar continuidade s atividades relacionadas ao aplicativo em


execuo (no exemplo mencionado, Gimp).
JOBS

Apenas exibe os programas que se encontram em segundo plano:


$ jobs
[1]+ Running
$ _

gimp &

FG

Retorna qualquer processo parado ou em segundo plano para o primeiro.


$ fg 1
gimp
_

EXCLUSO
KILL

Elimina um processo existente no sistema atravs do PID.


Sintaxe:
$ kill [PARMETROS] [PROCESSO]

Exemplo: Caso desejarmos derrubar um determinado processo...


$ ps -p 1084
PID TTY
1084 ttyS4
$ _

TIME CMD
00:00:00 pppd

... basta utilizar o comando kill e fornecer o nmero do processo do


programa ou atividade que desejamos encerrar...
$ kill 1084

KILLALL

Elimina um processo existente no sistema atravs do nome.


Sintaxe:
$ killall [PARMETROS] [PROCESSO]

92/128

Exemplo: de forma similar ao comando kill, caso desejarmos derrubar um


determinado processo...
$ ps -p 1084
PID TTY
1084 ttyS4
$ _

TIME CMD
00:00:00 pppd

... basta utilizar o comando killall e fornecer o nome do processo do


programa ou atividade que desejamos encerrar...
$ killall pppd

DESLIGAMENTO

DO SISTEMA

Para que possamos encerrar todos os processos em execuo, desligar


e/ou reiniciar o sistema, poderemos nos valer do comando halt e
shutdown.

HALT
Desliga o sistema.
# halt

Neste caso, os mdulos de gerenciamento de energia (acpi e/ou apm)


devero estar previamente carregados.

SHUTDOWN
Reinicializa o sistema aps finalizadas as tarefas em execuo.
Sintaxe:
# shutdown [OPES] [HORRIO]

Onde:

-c: cancela uma programao;

-h: desliga o sistema;

-r: reinicializa o sistema;

[HORRIO]: definio de tempo em minutos.

Para se ter uma noo exata de sua utilidade...


# shutdown -h 30

Desliga o sistema aps 30 minutos de sua execuo;


# shutdown -r now

Desliga o sistema imediatamente (now = agora);


# shutdown -c

Cancela a programao de desligamento que foi agendada.


93/128

CONCLUSO
Na grande maioria das circunstncias em especial para os usurios
menos habituados sequer nos importaremos com os processos em
execuo e suas atividades relacionadas. Face a isto, apenas dispomos por
incluir os comandos e parmetros mais essenciais desta atividade. Mas, se
ainda assim quiserem obter mais conforto, experimentem utilizar os
utilitrios disponveis dos principais ambientes grficos existentes. &;-D

94/128

VIII. O

SISTEMA DE INICIALIZAO

INTRODUO
Diferente do MS-DOS e Windows, os sistemas GNU/Linux lidam de forma
diferente com o processo de inicializao do computador. Enquanto que
no Windows, apenas vemos uma tela de apresentao indicado o
carregamento do sistema, no GNU/Linux so mostrados uma srie de
processos. 8
Neste captulo, iremos conhecer como funciona o sistema de inicializao
dos
sistemas
GNU/Linux,
bem
como
suas
caractersticas
e
particularidades, tendo um enfoque especial ao mtodo de inicializao do
Slackware.

OS

MTODO DE INICIALIZAO

Os mtodos de inicializao padro dos sistemas Unix, clones e variantes


so respectivamente o System V e o estilo BSD.

SYSTEM V
O System V (AT&T) o mtodo mais utilizado pelas distribuies atuais.
Consiste em utilizar dezenas de scripts para cada servio ser
inicializado, todos armazenados em um diretrio especfico de acordo o
nvel de execuo utilizado. Alm disso, operar em vrios modos
existentes, todos numerados de 0 a 6.

ESTILO BSD
O estilo BSD (Berkeley Software Distribution) atualmente adotado pelas
distribuies Slackware, Debian e SuSe. Diferente do outro sistema de
inicializao, o estilo BSD utiliza apenas alguns scripts so carregados
durante o processo de inicializao, estes considerados mais rpidos e
eficientes, alm de uma maior simplicidade quando de sua manuteno.
Alm disso, opera em apenas 2 modos: o single-user (S para
manuteno) e o multi-user (M uso para produo).
Os scripts de inicializao do Slackware obedece este estilo, que por sua
vez simples e extremamente rpido, enquanto que as demais
distribuies se baseiam na utilizao do mtodo de inicializao System
V. Apesar disto, os nveis de execuo so conforme o mtodo System V.
8

Devido a existncia de diferentes distribuies, estes aspectos podero variar: as


distribuies amigveis tendem a apresentar uma tela grfica no modo de espera,
ao passo que as distribuies direcionadas para o pblico especializado tendem a
mostrar a inicializao dos processos, conforme comentado neste pargrafo.

95/128

OS

SCRIPTS DE INICIALIZAO

Os scripts de inicializao so arquivos de lote que armazenam as


definies necessrias para a habilitao dos servios necessrios para o
sistema, conforme especificado pelo seu nvel de execuo o runlevel.
Estes so o scripts de inicializao que so os responsveis pela
inicializao tanto da mquina em si quanto dos nveis de execuo que
so definidos pela sua configurao e at mesmo no ato de seu
desligamento:

rc.S: inicializao (start) do Slackware;

rc.K: responsvel pelo nvel de execuo 1, para a manuteno do


sistema single user;

rc.M: utilizado nos demais nveis de execuo, ou seja, para modo


multi-usurio (2, 3 e 5);

rc.4: necessrio especialmente para carregar em modo grfico


(atravs dos gerenciadores KDM, GDM e XDM);

rc.0: atalho simblico para rc.6;

rc.6: reinicializao da mquina (liga) e encerramento (desliga).

Quando o sistema inicializa, o kernel carregado para a memria do


sistema, aps a inicializao dos dispositivos, este roda o init, o primeiro
processo de execuo do sistema PID 1. Aps ser carregado, o kernel
executa o runlevel especificado pelo arquivo de configurao /etc/inittab.
Ainda neste mesmo arquivo de definies, especifica-se os scripts
necessrios para a execuo do runlevel desejado.
Todos estes scripts so executados pelo Bash e podem ser editados
manualmente, porm recomenda-se a realizao prvia de cpias de
segurana, para nos resguardarmos de algum imprevisto qualquer.

OS

DEMAIS SCRIPTS...

Conforme dito anteriormente, todos estes scripts almd dos scripts de


inicializao so mantidos em /etc/rc.d/. Para cada um servio ou
categoria de servios, haver um script especfico para a sua habilitao.
# cd /etc/rc.d/
# ls
init.d/
rc.0@
rc.4*
rc.6*
rc.K*
rc.M*
rc.S*
rc.acpid*
rc.alsa*

rc.dnsmasq
rc.font*
rc.gpm*
rc.hald*
rc.hplip
rc.httpd
rc.inet1*
rc.inet1.conf
rc.inet2*

rc.modules@
rc.modules-2.6.21.5*
rc.modules-2.6.21.5-smp*
rc.mysqld
rc.nfsd*
rc.ntpd
rc.pcmcia
rc.rpc
rc.samba

rc.sshd
rc.syslog*
rc.sysvinit*
rc.udev*
rc.wireless*
rc.wireless.conf
rc.yp*
rc0.d/
rc1.d/

96/128

rc.atalk
rc.bind
rc.bluetooth
rc.bluetooth.conf
rc.cups
# _

rc.inetd*
rc.ip_forward
rc.keymap*
rc.local*
rc.messagebus*

rc.saslauthd
rc.scanluns*
rc.sendmail
rc.serial
rc.snmpd

rc2.d/
rc3.d/
rc4.d/
rc5.d/
rc6.d/

Subdividiremos por categoria e descreveremos breves comentrios sobre


os mesmos, para que possamos ter uma melhor compreenso.

SISTEMA &

APLICAES

Todos os scripts aqui listados so utilizados para habilitar os recursos do


sistema para o suporte a nvel de software em geral:

rc.font, rc.fuse, rc.hald, rc.messagebus, rc.mysqld e rc.syslog.

Em destaque, os scripts rc.hald (servidor HAL) e rc.messagebus (servidor


IPC D-Bus), pois graas a eles que o kernel consegue realizar a deteco
de hardware corretamente e a intercomunicao entre aplicaes. J o
rc.syslog de extremamente til, pois registra todos os eventos do
sistema em arquivos de LOGs. Consultando estes arquivos, poderemos
verificar a ocorrncia de falhas e invases, alm de obter outras
informaes teis.

SUPORTE

AO

HARDWARE

Nesta categoria, esto listados os scripts definidos para prover ao


sistema, o suporte geral aos recursos de hardware presentes:

rc.acpid, rc.alsa, rc.bluetooth, rc.gpm, rc.keymap,


rc.scanluns, rc.serial, rc.udev e rc.wireless.

rc.pcmcia,

O script rc.alsa o responsvel pelo carregamento dos mdules e suporte


aos utilitrios relacionados a arquitetura ALSA.; J os scripts rc.gpm e
rc.keymap definem as configuraes gerais dos dispositivos de entrada e
sada mouse e teclado no modo texto. Por ltimo, o rc.udev habilita os
arquivos de dispositivos do sistema, conhecidos como devices: so atravs
destes arquivos que o kernel realiza os processos interao com os
recursos de hardware do sistema (computador).

SISTEMA

DE IMPRESSO

Atualmente, o CUPS o servidor de impresso mais popular para os


sistemas Unix, com destaque para o GNU/Linux e os sistemas *BSDs.

rc.cups e rc.hplip.

O script responsvel pela inicializao do servidor de impresso o


rc.cups; porm, atravs do script rc.hplip garantido o suporte para as
impressoras fabricadas pela HP (HP Linux Imaging and Printing).

97/128

REDES & INTERNET


Pelo fato dos sistemas GNU/Linux serem excelentes opes para o uso em
sistemas de redes, uma srie de servios relacionados inicializado
atravs de scripts....

rc.atalk, rc.bind, rc.dnsmasq, rc.httpd, rc.inetd (rc.inet1 e


rc.inet2), rc.ip_forward, rc.nfsd, rc.ntp, rc.rpc, rc.samba,
rc.saslauthd, rc.sendmail, rc,snmpd, rc.sshd e rc.yp.

E ainda que venhamos a utilizar o Slackware em um desktop, alguns


destes scripts so muito importantes para garantir a conectividade com a
Internet, como o rc.inetd.

CONFIGURAES

LOCAIS

O script rc.local foi designado para o carregamento das configuraes


particulares da mquina local, sendo o ltimo a ser executado.
#!/bin/sh
#
# /etc/rc.d/rc.local: Local system initialization script.
#
# Put any local setup commands in here:
...

Observem que este script no possui nenhuma definio de comandos e


opes para a inicializao de servios e aplicaes, ficando totalmente
cargo do administrador definir quais destes que devero ser
carregados.
O banco de dados MySQL (quando instalado manualmente) e os utilitrios
como o HDParm e o SMARTD so bons exemplos de programas os quais
necessitam ter comandos definidos para sua habilitao.

CARREGAMENTO

DE MDULOS

Para o carregamento de mdulos, existe um script definido unicamente


para esta funo: o rc.modules. Este script possui aproximadamente 700
linhas, em que seu contedo, por sua vez so subdivididos em diversas
sees para facilitar a organizao dos comandos e instrues l
descritos.
#!/bin/sh
# rc.modules 11.0 Tue Jul 25 14:38:32 CDT 2006 pp (rb), pjv
#
# This file loads extra drivers into the Linux kernel.
#
# The modules will be looked for under /lib/modules/<kernel version number>
# On systems using KMOD and hotplug or udev this file should remain mostly
# commented out. Nearly all hardware device modules will be loaded
# automatically on such systems. This file should only be used when hotplug
# or udev are not loading a module that you require, or if you are not using

98/128

# hotplug or udev (which is going to become increasingly impossible...), or


# if you want to force a particular module to be loaded where alternatives
# exist.
#
# Many Linux kernel modules will accept extra options. The Linux kernel
# source is the best place to look for extra documentation for the various
# modules. This can be found under /usr/src/linux/Documentation if you've
# the installed the kernel sources.
#
# NOTE: This may not be a complete list of modules. If you don't see what
# you're looking for, look around in /lib/modules/2.x.x/ for an appropriate
# module. Also, if any problems arise loading or using these modules, try
# compiling and installing a custom kernel that contains the support instead.
# That always works. ;^)
...

Cabealho do script /etc/rc.d/rc.modules.

Uma observao interessante est no fato da incluso de instrues para a


habilitao de mdulos especiais do sistema, como o suporte a uma placa
de fax-modem (especialmente softmodem) ou qualquer outro perifrico
no suportado oficialmente pela distribuio. Alguns instruem em colocar
estas definies em rc.modules; outros em rc.local. Independente do
arquivo utilizado, inclua as instrues sempre no final do arquivo, para
que possamos localiz-la de forma padronizada e com maiores facilidades.

COMPATIBILIDADE
A grande maioria das distribuies GNU/Linux optam por utilizar o
mtodo de inicializao System V, que por sua vez as aplicaes
disponveis para o sistema esto condicionadas a utilizar as definies
gerais deste mtodo.
#!/bin/sh
#
# rc.sysvinit
This file provides basic compatibility with SystemV style
#
startup scripts. The SystemV style init system places
#
start/stop scripts for each runlevel into directories such as
#
/etc/rc.d/rc3.d/ (for runlevel 3) instead of starting them
#
from /etc/rc.d/rc.M. This makes for a lot more init scripts,
#
and a more complicated execution path to follow through if
#
something goes wrong. For this reason, Slackware has always
#
used the traditional BSD style init script layout.
#
#
However, many binary packages exist that install SystemV
#
init scripts. With rc.sysvinit in place, most well-written
#
startup scripts will work. This is primarily intended to
#
support commercial software, though, and probably shouldn't
#
be considered bug free.
#
#
Written by Patrick Volkerding <volkerdi@slackware.com>, 1999
#
from an example by Miquel van Smoorenburg
<miquels@cistron.nl>.
...

99/128

Cabealho do script /etc/rc.d/rc.sysvinit.

O Slackware, por no utilizar este mtodo de inicializao, e por


necessitar obter compatibilidade com tais programas, definiu o script
rc.sysvinit.

SEQENCIA DE SCRIPTS NA INICIALIZAO

O primeiro script a ser executado o rc.S, que roda apenas uma nica vez
durante a inicializao do sistema. Aps o rc.S, vem o rc.M, responsvel
pela utilizao do sistema no modo multi-usurio, desde que o nvel de
execuo esteja pr-configurado em /etc/inittab para isto.
O script rc.K somente executado quando houver a necessidade de
manuteno do sistema. Por entrar no modo monousurio, todos recursos
multi-usurios so desabilitados, como tambm qualquer servio
(processos) para que possamos intervir no sistema.

OS

NVEIS DE EXECUO

Runlevels nveis de execuo so estgios de execuo especficos que


visam habilitar e/ou desabilitar um conjunto de servios especficos para
cada necessidade da mquina em uso. Por exemplo, em uma necessidade
de uso comum, de manuteno, para propsitos especficos do sistema,
enfim, existir um nvel de execuo apropriado para cada um. Os nveis
de execuo podero ser diferentes de acordo com a distribuio
utilizada.
Segue abaixo os nveis de execuo do Slackware:

0: atalho simblico para rc.6;

1: modo single user, necessrio para a manuteno do sistema;

2: sem uso (personalizvel);

3: modo multi-usurio, autenticao em modo texto (console);

4: modo multi-usurio, autenticao em modo grfico (X11);

5: sem uso (personalizvel);

6: reinicializao e desligamento do sistema.

Em outras distribuies, as definies dos nveis de execuo podem


variar. Por exemplo, as red-likes utilizam o nvel 5, que destinado ao
modo multi-usurio com autenticao grfica, ao invs do nvel 4 usado
pelo Slackware.

NVEL 1 MANUTENO

DO SISTEMA

O nvel 1 somente executado quando da necessidade de manuteno do


sistema. Somente a partio raz montada para as intervenes
100/128

necessrias, sendo este o principal motivo pelo qual no podemos definir


uma partio especial para o diretrio padro do superusurio (root).

NVEL 3

4 MODO

MULTI-USURIO

Os nveis 3 e 4 so definidos para a utilizao normal do sistema. com


eles que iniciamos o sistema para realizar as atividades do nosso dia-a-dia
ou finais de semana, dependendo da nossa disponibilidade... &;-D
A principal diferena est no carregamento da interface grfica e seus
respectivos gerenciadores de autenticao. O nvel 3 inicializa o sistema
em modo texto, onde o usurio digita seu apelido de autenticao e senha
de acesso, para que acionem logo em seguida o ambiente grfico,
digitando para isto...
$ startx

J o nvel 4 inicializa o sistema em modo grfico, disponibilizando um


gerenciador de autenticao grfico pr-definido que disponibiliza
diversos recursos grficos para um melhor conforto e facilidades aos
usurios.
Apesar do nvel 3 ser a opo menos confortvel na realizao da
autenticao e seleo/inicializao da interface grfica, em muitas
circunstncias a mais prtica nas circunstncias em que ocorrem
problemas que impedem a inicializao do servidor grfico (X.org). J o
nvel 4 indicado especialmente para usurios leigos, os quais no
possuem conhecimentos tcnicos para a manipulao do sistema em modo
texto, como a seleo e inicializao do ambiente grfico (na utilizao dos
gerenciadores KDM e GDM), desligamento do sistema, etc. Praticamente
todas as distribuies friendly-user o habilitam por padro.
Somente o nvel 4 possui um script de inicializao, o rc.4, que por sua vez
define quais os gerenciadores de autenticao devero ser rodados, onde
deveremos comentar e/ou descomentar as linhas correspondentes aos
gerenciadores que desejamos utilizar (ou no), ou ainda modificar a
ordem de execuo dos mesmos, para dar prioridade ao gerenciador
desejado.
Estas instrues e muitas outras se encontram com maiores detalhes na
6a. Parte: Ambientes Grficos -> Operaes e ajustes afins.

NVEL 0

6 REINICIALIZAO

DO SISTEMA

A partir do momento em que reinicializamos ou desligamos o computador,


automaticamente o sistema utiliza o nvel de execuo 6 para que todos os
servios e processos sejam finalizados antes do sistema ser reinicializado.
Ao utilizarmos o comando shutdown, estaremos acionando este nvel.

101/128

DEMAIS

NVEIS DE EXECUO

(2

5)

Os nveis 2 e 5 no so utilizados pelo sistema, enquanto que existem


outros nveis no especificados, de 7 a 9, que so utilizados
especificamente para o desenvolvimento de nveis de execuo
customizados de acordo com as necessidades da mquina local.

OPERAES
ATIVAR /
MTODO

E AJUSTES AFINS

DESATIVAR SCRIPTS DE INICIALIZAO

MANUAL

O mtodo manual de ativar e/ou desativar os servios na inicializao


feito atravs da mudana das permisso de execuo (flag x) de seus
respectivos scripts. Dentro do diretrio /etc/rc.d, basta executar...
# chmod a+x [SCRIPT]

... para ativarmos, ou...


# chmod a-x [SCRIPT]

... para desativarmos.


Poderemos tambm definir as demais permisses juntas da seguinte
forma:
# chmod [PERMISSO] [SCRIPT]

Onde [PERMISSO] deve ser substitudo pelas flags necessrias. Por


exemplo, para ativarmos...
# chmod u+x rc.yp

... ou para desativarmos...


# chmod u-x rc.yp

Para obterem maiores informaes sobre as permisses de acesso,


consultem nesta parte, o captulo Manipulao de arquivos e diretrios.

MTODO

AUTOMATIZADO

O Slackware possui um atalho nos menus do Pkgtool para ativar e/ou


desativar os scripts de inicializao. Basta carregarmos o utilitrio...
# pkgtool

... e acionar a opo Setup disponvel na tela principal:

102/128

Em seguida, marcar a opo services e teclar <ENTER> em seguida...

Nesta 3a. tela, deveremos apenas definir quais os scripts que devero ser
ativados (marcando-os com a barra de espao) e/ou desativados.

ARQUIVO

/ETC/INITTAB

O arquivo de configurao /etc/inittab define todos os parmetros e


definies gerais do mtodo de inicializao sistema.
#
# inittab
#
#
# Version:
#
#
#
#
# Author:

This file describes how the INIT process should set up


the system in a certain run-level.
@(#)inittab

2.04
2.10
3.00
4.00

17/05/93
02/10/95
02/06/1999
04/10/2002

MvS
PV
PV
PV

Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>

103/128

# Modified by:
#

Patrick J. Volkerding, <volkerdi@slackware.com>

# These are the default runlevels in Slackware:


#
0 = halt
#
1 = single user mode
#
2 = unused (but configured the same as runlevel 3)
#
3 = multiuser mode (default Slackware runlevel)
#
4 = X11 with KDM/GDM/XDM (session managers)
#
5 = unused (but configured the same as runlevel 3)
#
6 = reboot
# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:
# System initialization (runs when system boots).
si:S:sysinit:/etc/rc.d/rc.S
# Script to run when going single user (runlevel 1).
su:1S:wait:/etc/rc.d/rc.K
# Script to run when going multi user.
rc:2345:wait:/etc/rc.d/rc.M
# What to do at the "Three Finger Salute".
ca::ctrlaltdel:/sbin/shutdown -t5 -r now
# Runlevel 0 halts the system.
l0:0:wait:/etc/rc.d/rc.0
# Runlevel 6 reboots the system.
l6:6:wait:/etc/rc.d/rc.6
# What to do when power fails.
pf::powerfail:/sbin/genpowerfail start
# If power is back, cancel the running shutdown.
pg::powerokwait:/sbin/genpowerfail stop
# These are the standard console login getties in multiuser mode:
c1:1235:respawn:/sbin/agetty 38400 tty1 linux
c2:1235:respawn:/sbin/agetty 38400 tty2 linux
c3:1235:respawn:/sbin/agetty 38400 tty3 linux
c4:1235:respawn:/sbin/agetty 38400 tty4 linux
c5:1235:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
# Local serial lines:
#s1:12345:respawn:/sbin/agetty -L ttyS0 9600 vt100
#s2:12345:respawn:/sbin/agetty -L ttyS1 9600 vt100
# Dialup lines:
#d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100
#d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100

104/128

# Runlevel 4 used to be for an X window only system, until we discovered


# that it throws init into a loop that keeps your load avg at least 1 all
# the time. Thus, there is now one getty opened on tty6. Hopefully no one
# will notice. ;^)
# It might not be bad to have one text console anyway, in case something
# happens to X.
x1:4:wait:/etc/rc.d/rc.4
# End of /etc/inittab

Dentre as intervenes mais realizadas, est na mudana do nvel de


execuo. Por padro, o Slackware utiliza o nvel 3, mas em virtude do
conforto proporcionado pela inicializao em modo grfico,
recomendvel utilizar o nvel 4, o qual o sistema acessa um gerenciador
de autenticao simples, intuitivo e fcil de usar. Consultem a 6a. Parte:
Ambientes Grficos -> Operaes e ajustes afins, para obterem maiores
informaes.

CONCLUSO
Conforme j dito diversas vezes, uma caracterstica interessante do
mtodo de inicializao BSD est na velocidade e facilidade de
customizao. O fato de dispor apenas de alguns scripts com todas as
sees pr-organizadas e comentadas no s facilitam as intervenes
necessrias, como tambm agilizam na procura de parmetros especficos.
No mtodo System V, teramos o trabalho de identificar qual o script
contm a configurao o qual desejamos editar, ao passo que no estilo
BSD apenas bastaria localizar o script o qual contm a categoria do perfil
de configurao e navegar nas sees comentadas. Poderemos tambm
utilizar as ferramentas de busca dos editores de textos disponveis para
realizar a localizao desejada. &;-D

105/128

IX. O

GERENCIADOR DE INICIALIZAO

INTRODUO
Quando se utiliza um computador com mais de um sistema operacional,
ser necessrio definir por qual deles ser utilizado. Em se tratando de
sistemas instalados em diferentes discos rgidos, bastaria inverter no
setup da BIOS a ordem de inicializao. Mas mesmo assim seria um
desconforto muito grande, pois toda vez que for necessrio inicializar o
outro sistema, teramos que editar as configuraes do setup para
inverter a ordem de inicializao. E para aqueles sistemas instalados em
um mesmo disco rgido, porm mantidos em diferentes parties, como
fazer?
Para a soluo destes problemas, existem os gerenciadores de
inicializao, que so programas desenvolvidos para o gerenciamento de
diferentes sistemas operacionais instalados em um mesmo equipamento.
E neste captulo, iremos conhecer o LILO, o gerenciador padro do
Slackware.

O LILO

<http://lilo.go.dyndns.org/>.

O LILO LInux LOader um dos gerenciadores mais antigos existentes


em sistemas GNU/Linux. Ele o principal responsvel pelo carregamento
dos sistemas operacionais instalados, onde fornece ao usurio um simples
menu de opes, bastando apenas ao usurio selecionar o sistema
desejado. Ele fica residente no setor MBR do disco rgido.

106/128

LILO (Slackware 12.1)

O LILO adicionado ao sistema por padro durante a instalao do


Slackware, onde ser necessrio apenas definir o perfil de configurao e
o local onde dever ser gravado. Para obterem maiores informaes,
consultem a 3a. Parte: A Instalao -> Instalao do Slackware.

/ETC/LILO.CONF
Todos os parmetros de configurao do LILO, so mantidos no arquivo
/etc/lilo.conf, o qual poder ser alterado de acordo com as necessidades
do usurio. Neste arquivo existem duas sees distintas para a
configurao: a seo global e a seo de parties. Segue abaixo o
contedo destas sees e as respectivas utilidades para cada parmetro.

SEO

GLOBAL

A seo global responsvel pelo funcionamento geral do LILO. nela


onde estaro todos os parmetros pertinentes.
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/hda
message = /boot/boot_message.txt
prompt
timeout = 1200
# Override dangerous defaults that rewrite the partition table:
change-rules
reset

Constam os seguintes parmetros passveis de edio:

boot = /dev/[DISCO_RGIDO]

Informa qual unidade do sistema dever inicializar.

Message = /boot/[MENSAGEM_TEXTO]

Exibe um conjunto de instrues e informaes bsicas sobre os sistemas


disponveis, conforme a exibio do arquivo-texto indicado.
Welcome to the LILO Boot Loader!
Please enter the name of the partition you would like to boot
at the prompt below. The choices are:
DOS
Linux

- DOS or Windows (FAT/FAT32 partition)


- Linux (Linux native partition)

Este o contedo do arquivo boot_message.txt, situado em /boot. E se


tratando de um arquivo-texto, perfeitamente possvel customiz-lo,
mantendo apenas as instrues bsicas sobre os sistemas disponveis ou
personalizando-o, de acordo com suas preferncias.
107/128

Aps esta operao, atualizem as informaes na MBR, digitando...


# lilo
Added DOS *
Added Linux

Na prxima inicializao, o novo contedo ser exibido.

default

Especifica o sistema a ser carregado por padro (por ordem de


disponibilidade). Lgico que esta opo dever existir quando houver mais
de um sistema operacional.

prompt

Indica a inicializao da linha de comando do LILO. Caso esta opo no


esteja habilitada e esta linha de comando no esteja presente, bastar
utilizar <CTRL> + <ALT> ou <CTRL> + <SHIFT> para ativ-la.

timeout = [TEMPO_DE_ESPERA]

Tempo o qual o gerenciador permanece aguardando uma resposta via


teclado para a seleo dos sistemas. Caso no sejam selecionados, o
gerenciador automaticamente carrega o sistema padro da mquina.

Framebuffer

Define a forma de exibio das fontes no modo texto durante a instalao


do Slackware atravs do framebuffer, um recurso especial em que o
kernel acessa diretamente a memria de vdeo e conseqentemente
utilizando seus recursos, como a resoluo grfica. Mas como fazer para
habilitar ou desabilitar este recurso, alm de alterar as resolues
presentes?
# Normal VGA console
vga = normal
# VESA framebuffer console
# vga=791
# VESA framebuffer console
# vga=790
# VESA framebuffer console
# vga=773
# VESA framebuffer console
# vga=788
# VESA framebuffer console
# vga=787
# VESA framebuffer console
# vga=771
# VESA framebuffer console
# vga=785
# VESA framebuffer console
# vga=784
# VESA framebuffer console
# vga=769
# End LILO global section

@ 1024x768x64k
@ 1024x768x32k
@ 1024x768x256
@ 800x600x64k
@ 800x600x32k
@ 800x600x256
@ 640x480x64k
@ 640x480x32k
@ 640x480x256

Observe que a opo padro utilizada pelo gerenciador de inicializao


108/128

vga = normal. Caso queira habilitar o framebuffer, bastar apenas


selecionar a opo de resoluo e profundidade de cor e desmarcar o
comentrio ao lado. Na prxima inicializao, este recurso estar em
vigor.

SEO

DE PARTIES

A seo de parties contm descritas as opes para de inicializao dos


sistemas operacionais j instalados no micro.
Em uma unidade de armazenamento, onde existem duas parties para o
Windows e GNU/Linux, a estrutura da seo de parties seria a seguinte:
# DOS bootable partition config begins
other = /dev/hda1
label = DOS
table = /dev/hda1
# DOS bootable partition config ends
# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/hda6
label = Linux
read-only
# Linux bootable partition config ends

Observe que, por sua vez, esta seo subdivide-se em mais duas distintas:
uma especial para a inicializao de outros sistemas (DOS), e outra para a
inicializao de sistemas GNU/Linux (Linux).
Ademais, segue as definies de cada parmetro desta seo:

image = /[IMAGEM_COMPACTADA]

Inicializa a imagem compactada do kernel utilizado. Este geralmente se


encontra armazenado no diretrio /boot, porm voc poder utilizar
outros locais conforme desejar. Por exemplo, sempre mantenho a
seguinte opo:
image = /usr/src/linux/arch/i386/boot/bzImage
root = /dev/hda6
label = Experimental
read-only
# Linux bootable partition config ends

muito til para experimentar novos kernels, sem ter que ficar
remexendo no sistema toda vez para realizamos uma nova compilao.

root = /dev/[PARTIO_LINUX]

Informa onde se encontra a partio de sistemas GNU/Linux instalada.


Atentem-se para que diferentes sistemas (kernels) possam estar
localizadas em uma mesma partio, como recomendvel ser feito no
caso da compilao de um kernel experimental.

Exibe

label = [NOME_DO_SISTEMA]
o

nome

do

sistema

instalado.

Ao

utilizarmos

diferentes
109/128

distribuies,
deveremos
correspondente.

atribuir

sua

nomenclaturas

no

label

read-only

Pelo fato da necessidade de checagem do sistema de arquivos antes de


inicializado, esta partio dever ser montada antes como somente leitura
para depois ser montada normalmente.

other = /dev/[PARTIO_COM_OUTROS_SISTEMAS]

Indica a partio onde se encontram outros sistemas operacionais para


serem inicializados.

table = /dev/[DISCO_RGIDO]

Informa em qual disco rgido se encontra outro sistema operacional


instalado, se porventura existir.

alias = [CARACTER]

Utilizado em conjunto com a opo single-key da seo global, atribui um


nico caracter para que possamos selecionar o sistema operacional
desejado (esta opo dever estar dentro das definies dos sistemas
listados, da mesma forma que label).

LILOCONFIG

O liloconfig um utilitrio especialmente desenvolvido para definir as


configuraes bsicas deste gerenciador de inicializao da mquina. Para
execut-lo, basta digitar...
# liloconfig

... onde ser apresentada uma tela com as instrues de como proceder
passo-a-passo. Para alternarem entre as opes disponveis no menu,
utilizem a tecla <SETA_ACIMA> e <SETA_ABAIXO> para selecionar as
opes do menu; <TAB> para posicionar o curso nas opes Aceitar ou
Cancelar, onde <SETA_ESQ.> e <SETA_DIR.> alterna entre eles; e
<ENTER> para definir as opes desejadas.

Tela de configurao do LILO.

110/128

O LILO tambm automaticamente instalado e definido durante a


instalao do Slackware. Ao ser executado, deveremos definir qual o tipo
de instalao. Selecionem simple para uma instalao bsica.
Estas e outras informaes esto disponveis na 3a. Parte: A instalao .
Consultem-na, para obterem maiores detalhes.

OPERAES

MAIS FREQENTES

Existe algumas operaes ocasionalmente necessrias para a


manuteno da inicializao do sistema, que dentre as quais, segue:

SELECIONAR

O SISTEMA

GNU/LINUX

boa

COMO PADRO

Aps a inicializao do LILO, o sistema aguardar o usurio selecionar


qual ser o sistema operacional a ser carregado. Por padro, o Windows
carregado quando no feita a escolha pelo usurio e o tempo de espera
consumido. Mas podemos alterar a opo padro para que ela seja um
sistema GNU/Linux. Para isto, acrescentem o parmetro...
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
append="hdd=ide-scsi"
boot = /dev/hda
message = /boot/boot_message.txt
prompt
default=[LABEL]
timeout = 1200

..., onde [LABEL] ser o nome (rtulo) dado ao sistema descrito na seo
de parties. O modo padro Linux. Em seguida, rodem o lilo
novamente. Ser exibida a seguinte mensagem.
# lilo
Added Windows

Added Linux *
# _

Significa que a operao foi realizada com sucesso.

MUDAR

A RESOLUO DO FRAMEBUFFER

Podemos definir a resoluo de vdeo manualmente, editando diretamente


o arquivo /etc/lilo.conf na seo global. Vamos supor que tivssemos
optado por utilizar a resoluo de 1024x768x32k:
# VESA framebuffer console @ 1024x768x32k
# vga=790

Ou ento 800x600x32k:

111/128

# VESA framebuffer console @ 800x600x32k


# vga=787

Basta apenas remarcar (ou apagar) o padro atual (vga = normal) e


desmarcar a opo desejada (vga = [DESEJADO]). Lembre-se que a placa
de vdeo em uso dever suportar este recurso, e o monitor, a resoluo
desejada. Aps isto, salvem o arquivo e digitem na linha de comando...
# lilo

... para gravar um nova definio do LILO no setor MBR do disco rgido
com as alteraes realizadas.

ADICIONAR

MAIS UMA ENTRADA NO

LILO

Se fosse instalado mais um sistema operacional alm do Windows e o


GNU/Linux padro, e quisessem inclu-lo no gerenciador, bastaria definir
as informaes necessrias dentro desta seo.
Vamos supor que resolvemos instalar uma outra verso de sistema
GNU/Linux em um outro disco rgido, de um micro qualquer que estava
encostado no canto. As instrues necessrias seria estas:
image = /[IMAGEM DO KERNEL]
root = /dev/[DISCO RGIDO]
label = [NOME DO SISTEMA]
read-only

Ou se fosse um outro sistema no GNU/Linux:


other = /dev/hdb1
label = [OUTRO SISTEMA]
table = /dev/hdb

Ao executar o LILO para atualizar as alteraes na MBR, ser exibido o


novo nome (label) do sistema operacional disponibilizado:
# lilo
Added DOS *
Added Linux
Added [NOVO SISTEMA]
# _

ADICIONAR

UMA SENHA EXTRA

Sabendo-se da possibilidade de ter acesso ao sistema com a simples


utilizao do comando linux single na linha de comando do LILO, a nica
forma de proteger-se deste inconveniente atribuir uma senha de acesso.
Para isto, insiram a seguinte linha no arquivo /etc/lilo.conf:
# Start LILO global section
boot = /dev/hda
message = /boot/boot_message.txt

password = [SENHA]
prompt

112/128

timeout = 1200
# Override dangerous defaults that rewrite the partition table:

Onde no lugar de [SENHA] dever ser digitada a senha desejada.


Lembre-se de que estes parmetros devero estar situados antes da linha
prompt.

INICIALIZAR

O SISTEMA EM MODO DE MANUTENO

Poderemos utilizar alguns parmetros especiais na linha de comando do


prprio LILO para inicializ-lo em modo de segurana. Assim, poderemos
realizar certas tarefas para a sua manuteno.
boot: _

Ao inicializar o sistema, aguarde o carregamento da linha de comando do


LILO. Digitem o nome dado para a seleo do sistema (no caso padro,
Linux) e digite em seguida, single + <ENTER>:
boot: Linux single

Assim, o kernel ser carregado em modo single-user (init 1), montando to


somente a partio raz e habilitando a conta de superusurio (root),
propiciando um ambiente perfeito para a sua manuteno. Tal como
acontece quando inicializamos o Windows em Modo de Segurana...

CRIAR

UM DISCO DE RECUPERAO COM O LILO .CONF

Outra necessidade eventual est na utilizao de um disco de recuperao


que suporte o LILO, caso este no possa selecionar o sistema a ser
inicializado. Para isto, digitem na linha de comando...
# lilo -b /dev/[DEVICE]

Segue um
eletrnica:

exemplo

prtico,

utilizando

uma

unidade

de

memria

# lilo -b /dev/sda1

PROBLEMAS
AO

MAIS FREQENTES

INVS DO SISTEMA INICIALIZAR, EXIBIDO...

Ao invs do sistema inicializar, exibido a seguinte cadeia de caracteres:


LI, LI-

... ou...
01 01 01

... indefinidamente, at o travamento. Isto ocorre devido a:

No-gravao e/ou no-atualizao do LILO na MBR;

Substituio da posio das unidades de disco rgido aps a


113/128

instalao neste caso os devices dos discos rgidos no


correspondero com as definies gravadas inicialmente.

Antivrus da BIOS ativado No somente nos sistemas GNU/Linux,


como no prprio Windows a manuteno de um programa
antivrus
da
BIOS
acarreta
diversos
problemas
de
compatibilidade, em especial durante a instalao de programas.
Desativem-no.

Estas so as principais causas do travamento na inicializao do LILO.


Podero existir quaisquer outras, mas as solues podero ser especficas,
de acordo com a mquina utilizada. Para estas e outras circunstncias,
recomendamos elaborarem durante ou logo aps a instalao do
Slackware um disquete de inicializao.

REMOO

DAS DEFINIES DO

LILO

NO SETOR

MBR

Basicamente existem duas formas de remover as definies do LILO com


a utilizao dos interpretadores MS-DOS...
C:\> FDISK /MBR

... e GNU BASH...


# /sbin/lilo -U

Geralmente a remoo do LILO na MBR se faz quando h necessidade da


desinstalao dos sistemas GNU/Linux ou utilizao de discos rgidos os
quais possuem ou tiveram um sistema GNU/Linux instalado.

RECUPERAR

A SENHA DO SUPERUSURIO

Em algumas circunstncias podero ocorrer a perda (esquecimento, erro


de digitao) da senha do superusurio para a administrao do sistema.
Caso isto ocorra, simplesmente digitem na linha de comando do LILO...
LILO: linux single

O sistema ser executado em modo monousurio, o qual com a utilizao


do comando passwd, poderemos alterar a senha original para um termo
conhecido. Lembrem-se que este recurso somente funcionar caso no
tenhamos definido a opo password na configurao do LILO. Neste caso
deveremos ter em mos a senha de acesso do LILO para que possamos
iniciar o sistema em modo monousurio.

ATUALIZANDO

AS ALTERAES DESEJADAS

Para atualizar qualquer modificao realizada no arquivo /etc/lilo.conf,


basta apenas executarmos o LILO e verificar a sada de vdeo:
# lilo
Added Windows

Added Linux *
114/128

# _

Se no houver nenhuma mensagem de erro, significa que o LILO atualizou


as configuraes desejadas corretamente, onde na prxima inicializao
elas estaro habilitadas. Caso contrrio, reeditem novamente o arquivo de
configurao e corrijam as alteraes feitas, se necessrio.

CONCLUSO
Apesar de simples e com uma aparncia arcaica (como muitos dizem por
a), o LILO disponibiliza todas as funcionalidades necessrias para o
gerenciamento de mltiplos sistemas operacionais do computador. Pode
no ser to flexvel ou possuir maiores vantagens que a utilizao de
outros bons gerenciadores, porm devido as suas caractersticas nicas,
seu uso simples e sua manuteno, muito fcil! &;-D

115/128

X. GERENCIAMENTO

DE PROGRAMAS

INTRODUO
Como qualquer outra distribuio GNU/Linux, o Slackware tambm possui
seu sistema de gerenciamento de pacotes nativo, alm de diversos outros
utilitrios que auxiliam a administrao dos programas utilizados.
Neste captulo, iremos conhecer as principais ferramentas, mtodos e
instrues para as necessidades mais rotineiras, alm de informaes
gerais sobre os demais processos pertinentes.

NOMENCLATURA DOS PACOTES

A nomenclatura dos arquivos empacotados obedecem a um formato


especificado, tendo separadas suas definies apenas por hfen e ponto:
[NOME]-[VERSO]-[REVISO]-[PLATAFORMA].[FORMATO]

Utilizaremos como exemplo o pacote fictcio darkstar-1.0-1.i386.rpm:


Nome:
Verso:
Reviso:
Plataforma:
Formato:

darkstar
1.0
1
i386
Red Hat Package

Observem que a extenso de um arquivo a identificao universal,


herdada dos sistemas operacionais da Microsoft (MS-DOS e Windows),
Independente do arquivo ser um pacote ou conter qualquer outro
contedo. No caso acima, o formato Red Hat Package adota a extenso
.rpm; j o formato utilizado pela distribuio Debian e baseados utilizam a
extenso .deb, o Slackware por sua vez adota o padro .tgz.
Em muitos casos, dada a compilao especfica de um determinado
aplicativo para uma distribuio baseada na Red Hat, so adicionados 2
caracteres para informar a distribuio do qual este pacote compatvel.

cl -> Conectiva Linux;

mk -> Mandrake Linux;

Para exemplo:

quake-1.1-6cl-i386.rpm;

qt-2.2mk-i586.rpm;

Existem outras
exemplos:

nomenclaturas

que

podero

existir.

Vejam

alguns

darkstar-0.6beta-i686.rpm

Trata-se de um pacote que se encontra na verso 0.6, porm em fase de


116/128

testes (beta), compilado para a arquitetura i686 e empacotado no formato


RPM. Para mquinas de produo (que necessitam de programas
estveis), geralmente no recomendvel a instalao destes pacotes.
darkstar-1.0-noarch.tgz

Pacote que se encontra na verso 1.0, sem correo e que compatvel


com qualquer arquitetura existentes (noarch), empacotado no formato
nativo do Slackware. Somente pacotes que contm o cdigo-fonte ou
arquivos textos das aplicaes que pertencem a esta categoria de
arquitetura universal. O pacote de internacionalizao do KDE e os fontes
do kernel so exemplos.

FERRAMENTAS &

MTODOS...

SLACKWARE PACKAGE TOOLS

<http://www.slackware.org/>.

O gerenciador de pacotes padro do Slackware o Slackware Package


Tools, um conjunto de ferramentas alm do menu interativo que visa
facilitar ao mximo o gerenciamento de pacotes.

Pkgtools.

Para ter acesso ao gerenciador, digitem na linha de comando...


# pkgtools

... onde ser apresentada a tela principal da ferramenta.


Alm do aplicativo, existem diversos utilitrios de linha de comando que
complementam o gerenciador, os quais so: installpkg, upgradepkg,
removepkg, makepkg e explodepkg. Por este captulo tratar de apenas
instrues bsicas para o uso em desktops, apenas descreveremos os trs
primeiros, j que atendem satisfatriamente suas necessidades.
Para realizar a instalao de um pacote:
# installpkg [PACOTE]-[VERSO]-[ARQUITETURA]-[REVISO].tgz

Para realizar a atualizao de um pacote:


# upgradepkg [PACOTE]-[VERSO]-[ARQUITETURA]-[REVISO].tgz

117/128

Para realizar a remoo de um pacote:


# removepkg [PACOTE]

Dependendo da forma com que o pacote foi compilado (especialmente por


terceriso) talvez seja necessrio informar como parmetro, toda a
nomenclatura do pacote, mas sem a extenso .tgz, para que o removepkg
possa realizar a remoo.

RED HAT PACKAGE MANAGEMENT

<http://www.rpm.org/>.

O RPM foi o primeiro gerenciador de pacotes desenvolvido para a


instalao de programas pr-compilados.
RPM(8)
NAME

Red Hat Linux

RPM(8)

rpm - RPM Package Manager

SYNOPSIS
QUERYING AND VERIFYING PACKAGES:
rpm {-q|--query} [select-options] [query-options]
rpm {-V|--verify} [select-options] [verify-options]
rpm --import PUBKEY ...
rpm {-K|--checksig} [--nosignature] [--nodigest]
PACKAGE_FILE ...
INSTALLING, UPGRADING, AND REMOVING PACKAGES:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
lines 1-39

Manual Eletrnico do RPM.

Criado pela Red Hat, o gestor padro da maioria das distribuies, alm
de ser um dos requerimentos estabelecidos pelo padro LSB. Por isto o
Slackware tambm suporta a instalao de pacotes no padro RPM.
As sintaxes bsicas necessrias para o uso do RPM so:

Para instalar um pacote...

# rpm -ivh [PACOTE]-[VERSO]-[ARQUITETURA]-[REVISO].rpm --nodeps

Para atualizar um pacote...

# rpm -Uvh [PACOTE]-[VERSO]-[ARQUITETURA]-[REVISO].rpm

Para verificar um pacote...


118/128

# rpm -Vf [PACOTE]

Para remover um pacote...

# rpm -e [PACOTE]

Lgico que havero pequenas variaes na definio das opes acima


descritas de acordo com as circunstncias. Neste caso, a consulta do
manual eletrnico mais que suficiente para sanar nossas dvidas.

COMPILAO

DO CDIGO-FONTE

Na necessidade de se instalar um pacote disponvel somente em cdigofonte, teremos que realizar manualmente a sua configurao, a compilao
e por fim, a instalao. Apesar de no ser um processo to fcil em
comparao a instalao do pacote compilado, a maioria dos programas
livres existentes utilizam os comandos bsicos para esta finalidade.
Para que possamos compilar qualquer cdigo-fonte, necessitaremos criar
os Makefiles, que so arquivos que contm as instrues (parmetros)
necessrias para o sistema gerar os arquivos binrios do programa
desejado. Para isto, executem no diretrio do pacote:
# ./configure --[OPES]

Lembrem-se de que em algumas circunstncias devido a natureza do


pacote em questo no ser necessria a realizao desta etapa, sendo
apenas necessria as duas descritas logo seguir.
Aps realizarmos a configurao, deveremos compilar o pacote com...
# make

Baseado nas instrues geradas pelo configure e gravadas nos Makefiles,


o comando make criar os arquivos binrios necessrios para compor o
corpo do programa que desejamos instalar.
Terminada a compilao do programa, digitem na linha de comando...
# make install

... para concluir a instalao do programa. Poderemos tambm omitir a


instruo make do processo de compilao e lanar diretamente o make
install. Assim ser feita a compilao e, logo em seguida, a instalao.
Para que seja desinstalado os binrios de um arquivo gerados a partir do
cdigo-fonte, deveremos digitar...
# make uninstall

... lembrando
disponvel.

OUTROS

que nem todos

os programas

possuem

esta opo

UTILITRIOS

Alm de suportar os dois processos de instalao de pacotes, o Slackware

119/128

tambm possui utilitrios que facilitam o gerenciamento destes, tais como


o rpm2tgz, que converte os pacotes RPM para o formato nativo do
Slackware, e o script CheckInstall, que possibilita empacotar os arquivos
gerados pela compilao do cdigo-fonte de aplicativos e utilitrios.

CONCLUSO
Em virtude da necessidade de estarem disponveis na parte
Conhecimentos Gerais todas as instrues bsicas para a utilizao das
informaes nas partes posteriores deste livro, damos apenas uma
pequena introduo bsica ao que se refere a instalao de programas nos
sistemas GNU/Linux. O principal objetivo est na necessidade dos
usurios terem uma pequena base-tcnica que os auxiliem no
entendimento das instrues das demais partes do livro. Por isto, se
quiserem se aprofundar mais, recomendamos que consultem a 5a. Parte
Gerenciamento de Programas. &;-D

120/128

XI. VARIVEIS

DE SISTEMA

INTRODUO
Ao trabalhar com o Windows, em algumas situaes necessitaremos lidar
com algumas variveis do sistema (como a path, por exemplo).
Especialmente em relao a srie 9X, teremos que utilizar a linha de
comando para realizar as intervenes necessrias.
Com estes mesmos conceitos, as variveis dos sistemas GNU/Linux no s
apresentam as mesmas funcionalidades conhecidas no sistema
operacional habitual, como outras, das quais iremos conhecer neste
captulo.

AS

VARIVEIS

PATH / ROOTPATH
Para aqueles que migraram do MS-DOS acreditamos que esto bem
familiarizados com a varivel PATH, muito utilizada para habilitar seus
comandos em qualquer ponto (diretrio) do sistema. PATH pronuncia-se
pf apenas o caminho de procura para arquivos executveis. A
varivel armazena na memria do sistema caminhos para a localizao de
comandos e executveis evocados em qualquer ponto do sistema para a
execuo.
Observem os caminhos /bin, /sbin, /usr/bin e /usr/local/bin: estas so as
localizaes dos comandos utilizados pelos usurios, comandos do
administrador e evocados pelo prprio sistema, binrios de aplicaes do
sistema e binrios de aplicaes instaladas que no fazem parte dos
pacotes disponveis na distribuio (local) respectivamente.
$ echo $PATH
/
usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/www/htdig/bin:/usr/
lib/java/bin:/usr/lib/java/jre/bin:/opt/kde/bin:/usr/lib/qt-3.2.1/bin:/usr/sha
re/texmf/bin:.
$ _

Isto quer dizer que, toda vez ao evocarmos um comando ou aplicao, o


interpretador inicialmente ir buscar tais executveis nos diretrios
especficados pela varivel $PATH. Caso no seja encontrado, ser
exibido...
bash: [EXECUTVEL]: command not found

Se estas especificaes no existissem, teramos que especificar todo o


caminho onde se encontra o executvel:
$ /bin/free

121/128

$ /usr/bin/emacs
$ /usr/local/firefox/firefox

E para evocar uma aplicao instalada em um local extico? Vejam o caso


da SDK Java: para que possamos o executvel, teramos que digitar...
$ /usr/lib/java/bin/java [PARMETROS]

Para resolver este problema, bastaria apenas atualizar a varivel $PATH


para conter o caminho do binrio java, e assim digitar apenas...
$ java [PARMETROS]

Os sistemas GNU/Linux neste caso, o Slackware ao serem instalados


possuem este caminho pr-configurados numa seo do arquivo
/etc/profile.
# Set the default system $PATH:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games"

Para que reconfiguremos toda vez que inicializar o sistema, termos que
acrescentar o caminho aos j existentes. No caso do Java, seria...
# Set the default system $PATH:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/usr/lib/java/bin
/"

Quanto a varivel ROOTPATH, sem grandes mistrios, ela apenas define o


caminho dos executveis para o administrador do sistema.

HOME
Exibe o diretrio atual (raz) onde se encontra o usurio autenticado.
$ echo $HOME
/home/darkstar
$ _

OSTYPE
Exibe o sistema operacional (kernel) em uso.
$ echo $OSTYPE
linux-gnu
$ _

SHELL
Exibe qual o interpretador de comandos usado na seo.
$ echo $SHELL
/bin/bash
$ _

122/128

TERM
J o TERM apenas indica o tipo de terminal utilizado no momento.
$ echo $TERM
xterm
$ _

USER
Exibe a conta de usurio autenticada naquele instante.
$ echo $USER
darkstar
$ _

COMANDOS

RELACIONADOS

ECHO
Apenas exibe o valor (contedo) das variveis em questo.
Sintaxe:
$ echo $[VARIVEL]

Exemplo:
$ echo $HOME
/home/darkstar
$ _

SET
O comando set o responsvel pela atualizao das variveis do sistema.
Sintaxe:
$ set [VARIVEL] [
VALOR]

Observem que o valor (contedo) da varivel dever se encontrar entre


aspas duplas. Para habilitarmos um contedo para a varivel PATH,
deveremos utilizar...
$ set PATH /
usr/local/tools

Somente utilizando este comando, sero apagadas todas as definies


anteriores. Para mant-las, utilizamos a varivel $PATH. Com isto,
poderemos acrescentar este valor utilizando o comando...
$ set PATH $PATH;/usr/local/tools;

[DEFINIO2]; [DEFINIO3]

... sem apagar as definies anteriores. Lembrem-se que estas definies


somente se encontraro presentes na sesso atual do terminal.
Um detalhe interessante que, quando o comando digitado em um
123/128

terminal, so exibidos os valores correntes de todas as variveis do


sistema:
$ set
BASH=/bin/bash
BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" [5]="i486slackware-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
COLORTERM=
COLUMNS=80
CPLUS_INCLUDE_PATH=/usr/lib/qt-3.2.1/include:/usr/lib/qt-3.2.1/include
DIRSTACK=()
DISPLAY=:0.0
...
$ _

EXPORT
Exporta valores de variveis.
Sintaxe:
$ export [VARIVEL]=[VALOR]
$ export [VARIVEL]=[VALOR (COM ESPAOS)]
$ export [VARIVEL]='[VALOR (COM ESPAOS)]'

Exemplo:
$ export JAVA_HOME=/usr/java/bin

Da mesma forma que feito com o set, apagaremos as definies


anteriores da varivel. Se quisermos mant-las, teremos que utilizar...
export JAVA_HOME=$JAVA_HOME:/usr/java/bin

Devemos lembrar que aps estas definies, a varivel atualizada estar


presente apenas durante esta seo do comando. Tal como o comando set,
quando o export digitado em um terminal, sero exibidos os valores
correntes de todas as variveis do sistema.

INTERNACIONALIZAO
As variveis de internacionalizao so extremamente importantes para
que possamos configurar determinados aplicativos e ambientes grficos
para a nossa lngua nativa.
A forma clssica de ajustar uma varivel :
# export [VARIVEL]=[VALOR]

As principais variveis so:

LC_ALL: geral (define todas as variveis de uma s vez);

LANG: define o idioma local;

LC_MESSAGES: exibio de mensagens dos aplicativos;


124/128

LC_TYPE: layout do teclado e comportamento de teclas especiais.

Basicamente os valores que deveremos atribuir so as especificaes de


lngua. Para definir os valores do Brasil, deveremos utilizar a flag pt_BR.
Segue um exemplo bsico de como definir, com apenas o uso de um nico
comando, todas as variveis de internacionalizao do sistema:
# export LC_ALL=pt_BR

ARQUIVOS

DE CONFIGURAO

So inmeros os arquivos que definem as variveis do sistema, sejam


globais, para cada aplicao ou um usurio especfico. Aqui
descreveremos apenas aqueles aplicveis para as necessidades de um
usurio desktop.

/ETC/PROFILE
O arquivo /etc/profile contm as definies globais utilizadas pelo sistema
em geral. Qualquer parmetro aqui definidos iro refletir em quaisquer
sees e contas de acesso autenticados ao sistema.
Cabealho...
# /etc/profile: This file contains system-wide defaults used by
# all Bourne (and related) shells.

Variveis de ambiente...
# Set the values for some environment variables:
export MINICOM="-c on"
export MANPATH=/usr/local/man:/usr/man:/usr/X11R6/man
export HOSTNAME="`cat /etc/HOSTNAME`"
export LESSOPEN="|lesspipe.sh %s"
export LESS="-M"
# If the user doesn't have a .inputrc, use the one in /etc.
if [ ! -r "$HOME/.inputrc" ]; then
export INPUTRC=/etc/inputrc
fi

Caminhos dos executveis...


# Set the default system $PATH:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games"

Caminhos dos executveis (superusurio)...


# For root users, ensure that /usr/local/sbin, /usr/sbin, and /sbin are in
# the $PATH. Some means of connection don't add these by default (sshd comes
# to mind).
if [ "`id -u`" = "0" ]; then
echo $PATH | grep /usr/local/sbin 1> /dev/null 2> /dev/null
if [ ! $? = 0 ]; then
PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH

125/128

fi
fi
Definies do terminal...
# I had problems using 'eval tset' instead of 'TERM=', but you might want to
# try it anyway. I think with the right /etc/termcap it would work great.
# eval `tset -sQ "$TERM"`
if [ "$TERM" = "" -o "$TERM" = "unknown" ]; then
TERM=linux
fi

Definies do interpretador ksh93...


# Set ksh93 visual editing mode:
if [ "$SHELL" = "/bin/ksh" ]; then
VISUAL=emacs
# VISUAL=gmacs
# VISUAL=vi
fi

Formato do sinal de prontido...


# Set a default shell prompt:
#PS1='`hostname`:`pwd`# '
if [ "$SHELL" = "/bin/pdksh" ]; then
PS1='! $ '
elif [ "$SHELL" = "/bin/ksh" ]; then
PS1='! ${PWD/#$HOME/~}$ '
elif [ "$SHELL" = "/bin/zsh" ]; then
PS1='%n@%m:%~%# '
elif [ "$SHELL" = "/bin/ash" ]; then
PS1='$ '
else
PS1='\u@\h:\w\$ '
fi
PS2='> '
export PATH DISPLAY LESS TERM PS1 PS2

Permisses de acesso padro para a criao de arquivos...


# Default umask. A umask of 022 prevents new files from being created group
# and world writable.
umask 022

Definio de cores para o interpretador de comandos...


# Set up the LS_COLORS and LS_OPTIONS environment variables for color ls:
if [ "$SHELL" = "/bin/zsh" ]; then
eval `dircolors -z`
elif [ "$SHELL" = "/bin/ash" ]; then
eval `dircolors -s`
else
eval `dircolors -b`
fi

Notificao de recebimento de correio...


# Notify user of incoming mail. This can be overridden in the user's
# local startup file (~/.bash.login or whatever, depending on the shell)
if [ -x /usr/bin/biff ]; then

126/128

biff y
fi

Definies adicionais dos scripts profile...


# Append any additional sh scripts found in /etc/profile.d/:
for file in /etc/profile.d/*.sh ; do
if [ -x $file ]; then
. $file
fi
done

Definies de caminhos para usurios comuns...


# For non-root users, add the current directory to the search path:
if [ ! "`id -u`" = "0" ]; then
PATH="$PATH:."
fi

DIRETRIO

/ETC/PROFILE.D/

O diretrio /etc/profile.d possui definies de scripts adicionais para


diversos ambientes grficos e aplicaes.
# ls -l /etc/profile.d/
total 88
-rwxr-xr-x
1 root
fortune.csh*
-rwxr-xr-x
1 root
fortune.sh*
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
-rwxr-xr-x
1 root
# _

root

164 2003-03-14 01:00 bsd-games-login-

root

141 2003-03-14 01:00 bsd-games-login-

root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root

32
43
102
101
146
145
176
85
227
225
51
45
31
31
443
396
50
63
134
118

2003-01-11
2003-01-11
2000-10-30
2000-10-30
2003-09-12
2003-09-12
2003-09-15
2003-09-15
2003-03-10
2003-03-10
2003-02-10
2003-02-10
2003-01-16
2003-01-16
2003-09-14
2003-09-14
2002-10-22
2002-10-22
2000-04-24
2000-04-24

06:27
06:28
23:42
23:43
21:00
21:00
03:29
03:29
03:30
03:31
04:25
04:25
02:42
02:41
13:59
13:59
02:13
02:13
19:46
19:46

gtk+.csh*
gtk+.sh*
htdig.csh*
htdig.sh*
j2sdk.csh*
j2sdk.sh*
kde.csh*
kde.sh*
lang.csh*
lang.sh*
mc.csh*
mc.sh*
metacity.csh*
metacity.sh*
qt.csh*
qt.sh*
t1lib.csh*
t1lib.sh*
tetex.csh*
tetex.sh*

Cada arquivo possui definies de variveis especiais para cada aplicao,


de acordo com a nomenclatura dos mesmos. Com apenas uma visualizao
em seu contedo e, de acordo com as necessidades, deveremos realizar a
edio direta destas para que as propriedades desejadas estejam
127/128

presentes nas prximas sees.

~/.BASHRC
Para aqueles usurios que preferem definir personalizaes especiais (e
por isto no podem alterar as definies globais /etc/profile) para as suas
necessidades, eles podero especific-las em um arquivo chamado
.bashrc. No Slackware, este no existe, sendo necessrio cri-lo
manualmente.
~$ mcedit .bashrc

A partir da s acrescentar as definies desejadas.


#!/bin/bash
[DEFINIES PERSONALIZADAS]

Lembrem-se que a definio #!/bin/bash opcional.

CONCLUSO
Existem diversas variveis e opes de ajustes atravs da linha de
comando disponveis nos sistemas GNU/Linux. Definir e exemplific-las
aqui, alm de trabalhoso, seria desnecessrio, visto que a grande maioria
dos simples usurios sequer tm necessidade delas, quanto mais vontade
de intervir em ajustes desta categoria. Por isto optamos simplesmente por
colocar apenas as variveis de maior relevncia a categoria destes
usurios. &;-D

128/128

Você também pode gostar