Você está na página 1de 94

IBM

TREINAMENTO LINUX BASICO

Treinamento Bsico de LINUX

Material Desenvolvido por


Edvaldo de Oliveira Mat.105473

IBM

TREINAMENTO LINUX BASICO

Indce
O sistema operacional

03

Shell

04

Diretorios

06

Entendendo e usando permisses no Linux

07

Comandos Linux

15

Administrao de Usurios

22

passwd

33

shadow

34

vi

35

tar

38

gzip

41

tar+gzip

42

tar+bzip2

43

crontab

45

Gerenciamento de Pacotes

49

rpm

51

fdisk

56

Sistemas de Arquivos

68

Montar Dispositivos

78

Processos

82

IBM

TREINAMENTO LINUX BASICO

O sistema operacional
O kernel o sistema operacional, responsvel pelo gerenciamento dos recursos
disponveis e pelo acesso ao hardware. O kernel contm mdulos para cada
componente do hardware com o qual ele faz a interface. So esses mdulos que
proporcionam a funcionalidade do acesso do programa CPU, memria, discos, rede,
etc. medida que novos dispositivos de hardware so instalados no sistema, novos
mdulos podem ser incorporados ao kernel.
A maior parte do kernel programada em linguagem C, sendo que a parte dependente
de hardware desenvolvida em Assembler.
Sistema hierrquico de arquivos
A informao armazenada em disco atravs de arquivos. Para o Unix tudo
um arquivo (dados, textos, dispositivos, perifricos).
Para que os arquivos sejam organizados de maneira lgica, tanto em nvel de sistema
operacional quando em nvel de usurio, existem os diretrios, que so as pastas onde
os arquivos ficam depositados. Em um sistema Unix os diretrios podem ser usados
tanto para o armazenamento de arquivos quanto para o armazenamento de outros
diretrios, que podero ter arquivos e/ou diretrios, e assim por diante.
Multitarefa
Em um sistema Unix, vrias tarefas podem ser executadas ao mesmo tempo,
dando a impresso que de um nico terminal os programas esto sendo executados
simultaneamente. Isso significa que um usurio pode editar um texto, enquanto um
processo que trata arquivo de dados pode ser

IBM

TREINAMENTO LINUX BASICO

executado, como tambm pode-se executar um comando para localizar um


determinado arquivo em qualquer lugar do disco, tudo isso dando a impresso ao
usurio que os processos esto sendo executados ao mesmo tempo.
Multiusurio
Permite que mais de um usurio tenha acesso ao mesmo sistema. Vrios
terminais e teclados podem ser conectados ao mesmo computador. Esta a extenso
natural da capacidade de multitarefa.
Assim, um programa pode ser executado por mais de um usurio, incluindo o mesmo
usurio, que poder ter mais de uma sesso de terminal no mesmo sistema.
O shell
O shell um interpretador interativo de comandos. Isto significa que os
comandos so digitados no prompt de comandos do shell e trabalhados medida que
so emitidos.
Observe que o shell separado do kernel. Se voc no gostar de interface provida pelo
shell fornecido, pode ser substituda por uma que mais lhe agrade.
Os shells mais comuns que acompanham o ambiente Unix so:
- Bourne shell (/usr/bin/sh ou /usr/oldbin/sh):
Prov um interpretador de comandos do sistema Unix e suporte a uma interface
programvel para o desenvolvimento de programas (Shell-Scripts).
- C shell (/usr/bin/csh):
considerado um aperfeioamento do Bourne shell porque oferece recursos
interativos como histrico de comandos (os comandos entrados anteriormente podem
ser recuperados, editados e re-executados) e o uso de alias, o que permite o uso de
nomes alternativos para os comandos existentes.
4

IBM

TREINAMENTO LINUX BASICO

- Korn shell (/usr/bin/ksh):


Pode ser considerado um Bourne shell aperfeioado, pois suporta a interface
simples programvel do Bourne shell, alm dos recursos interativos do C shell. O
cdigo foi otimizado para oferecer um shell mais rpido e eficiente. Atualmente, o
shell mais comumente usado nos ambientes Unix. No AIX, o shell padro.
- POSIX shell (/usr/bin/posix/sh):
Possui as mesmas caractersticas do Korn shell, porm obedece as normas do
POSIX na interface de programao. semelhante ao Korn shell em muitos
aspectos(histrico de comandos, uso de alias e controle de tarefas). Nem todas as
implementaes Unix o possuem.
- Korn Shell 1993 (/usr/bin/ksh93):
O sistema operacional AIX fornece uma verso avanada do Korn shell, o KSH93. Ela , na maioria de suas funcionalidades, compatvel com a verso atual do KSH1988. Inclui algumas caractersticas adicionais que no esto disponveis no Korn shell
padro.
Alguns scripts se comportaro de modo diferente sob ksh93, pois sob ele a
manipulao variveis um pouco diferente do Korn shell padro.

Diretrios

IBM

TREINAMENTO LINUX BASICO

Os diretrios que guardam os arquivos de sistema do Linux, em sua maioria, so


padronizados. Alguns diretrios importantes so:
/

O diretrio "root" (raiz).

/bin

Arquivos binrios de comandos essenciais do sistema.

/boot

Arquivos de boot (inicializao; boot-loader; Grub); kernel do Linux.

/dev

Dispositivos (devices) de entrada/sada: floppy, hardisk, cdrom, modem .

/etc

Arquivos de configurao (scripts) e inicializao.

/home

Diretrio local (home) de usurios.

/lib

Bibliotecas e mdulos(drives): compartilhadas com freqncia.

/mnt

Diretrio de montagem de dispositivos, sistemas de arquivos e partio.

/opt

Para instalao de programas no oficiais da distribuio.

/proc

Diretrio virtual (RAM) onde rodam os processos ativos.

/root

Diretrio local do superusurio (root).

/sbin

Arquivos de sistema essenciais (binrios do superusurio).

/tmp

Arquivos temporrios gerados por alguns utilitrios.

/usr

Arquivos de usurios nativos da distribuio.

/usr/local

Para instalao de programas no oficiais da distribuio.

/usr/src

Arquivos fontes do sistema necessrios para compilar o kernel.

/var

Arquivos de log e outros arquivos variveis.


Alguns diretrios possuem notaes especiais, algo que poderamos chamar de

"atalho" para o acesso. Veja abaixo a lista dessas notaes:


~: ao referir-se ao diretrio ~ (til), o sistema entende como o diretrio pessoal do
usurio, ou seja, /home/[usurio], onde [usurio] o nome de login do usurio atual.
Dessa forma, se voc estiver logado como davidson, o diretrio ~/img ser interpretado
como /home/davidson/img;

IBM

TREINAMENTO LINUX BASICO

-: o kernel Linux armazena um histrico dos diretrios que acessamos. O - (hfen)


refere-se ao ltimo diretrio acessado.
.: o smbolo . (ponto) refere-se ao diretrio atual, ou seja, aquele em que estamos
trabalhando;
..: o .. (ponto ponto) refere-se ao diretrio acima do qual estamos. Por exemplo,
considerando o diretrio /home/davidson/, o diretrio acima de davidson/ /home/, e o
diretrio acima de /home/ /.
Entendendo e usando permisses no Linux
Introduo
As permisses so um dos aspectos mais importantes do Linux (na verdade, de
todos os sistemas baseados em Unix). Elas so usadas para vrios fins, mas servem
principalmente para proteger o sistema e os arquivos dos usurios. Manipular as
permisses algo muito interessante, tanto quanto complexo. Mas tal complexidade
no deve ser interpretada como dificuldade e sim como grande variedade de
configuraes, o que permite criar vrios tipos de proteo de arquivos e diretrios.
Como voc deve saber, somente o super-usurio (root) tem aes irrestritas no
sistema, justamente por ser o usurio responsvel pela configurao, administrao e
manuteno do Linux. Cabe a ele por exemplo, determinar o que cada usurio pode
executar, criar, modificar, etc. Naturalmente, a forma usada para determinar o que o
usurio pode fazer a determinao de permisses. Este artigo visa explicar as
configuraes de permisses de arquivos e diretrios, assim como modific-las.
drwx------ ... 2 wester ............. 512 Jan ... 29 23:30 .. Arquivos/
-rw-rw-r-- ... 1 wester ....... 280232 Dec .. 16 22:41... notas.txt

IBM

TREINAMENTO LINUX BASICO

As linhas acima representam um comando digitado (ls -l) para listar um diretrio
e suas permisses. O primeiro item que aparece na linha (drwx----- e -rw-rw-r-) a
forma usada para mostrar as permisses que o diretrio Arquivos e o arquivo notas.txt
tm. esse item, que recebe o nome de string, que vamos estudar. Um ponto
interessante de citar que o Linux trata todos os diretrios como arquivo tambm,
portanto, as permisses se aplicam de igual forma para ambos. Tais permisses
podem ser divididas em quatro partes para indicar: tipo, proprietrio, grupo e outras
permisses. O primeiro caractere da string indica o tipo de arquivo: se for "d"
representa um diretrio, se for "-" equivale a um arquivo. Entretanto, outros caracteres
podem aparecer, j que existem outros tipos de arquivo no Linux, conforme mostra a
tabela abaixo:
d => diretrio
b => arquivo de bloco
c => arquivo especial de caractere
p => canal
s => socket
- => arquivo normal
Repare agora que no restante da string temos 9 caracteres. Voc j sabe o que
significa o primeiro. Os demais so em 3 grupos de 3, cada um representado o
proprietrio, o grupo e todos os demais respectivamente. Pegando a linha 2 do
exemplo (-rw-rw-r-) e dividindo a string em 3 partes, ficaria assim:
-rw => indicao de permisses do proprietrio
-rw => permisses do grupo que o usurio pertence
-r- => permisses para os demais usurios
Vamos entender agora o que significa esses caracteres (r, w, x, -). Existem 3
tipos bsicos de permisses: leitura, gravao e execuo. Leitura permite aos
8

IBM

TREINAMENTO LINUX BASICO

usurios ler o contedo do arquivo mas no altera-lo. Gravao permite que os


usurios alterem o arquivo. Execuo, como o nome diz, permite que o usurio execute
o arquivo, no caso de ser executvel. Mas acontece que as permisses no funcionam
isoladamente, ou seja, ou o usurio tem permisso de leitura ou de gravao ou de
execuo. As permisses funcionam em conjunto. Isso quer dizer que cada
arquivo/diretrio tem as 3 permisses, cabendo ao dono determinar qual dessas
permisses habilitada para os usurios ou no. Pode ser que uma determinada
quantidade de usurios tenha permisso para alterar um arquivo, mas outros no. Da
a necessidade de se usar grupos. Neste caso, a permisso de gravao desse arquivo
ser dada ao grupo e todo usurio membro dele poder alterar o arquivo.
necessrio ter um certo cuidado com as permisses. Por exemplo, do que
adianta o usurio ter permisso de gravao se ele no tem permisso de leitura
habilitada? Ele poder ler o arquivo para poder modifica-lo? No! De certo, isso tem
utilidade em arquivos de log. Fazendo associao com as letras r, w, x e o caractere -,
vamos entender cada uma:
r => significa permisso de leitura (read);
w => significa permisso de gravao (write);
x => significa permisso de execuo (execution);
- => significa permisso desabilitada.

A ordem em que as permisses devem aparecer rwx. Sendo assim, vamos


entender as strings do nosso exemplo, dividindo-a em 4 partes:
Linha

1:

drwx------ ... 2 wester ............... 512 Jan ... 29 23:30 .. Arquivos/

IBM

TREINAMENTO LINUX BASICO

um diretrio (d);
o proprietrio pode altera-lo, grava-lo e executa-lo (rwx);
o grupo no pode altera-lo, grava-lo e nem executa-lo (---);
os demais usurios no podem altera-lo, grava-lo e nem executa-lo (---).
Linha 2:
-rw-rw-r-- ... 1 wester .......... 280232 Dec .. 16 22:41... notas.txt
um arquivo (-);
o proprietrio pode altera-lo, grava-lo, mas no executvel. Como este arquivo no
executvel, a permisso de execuo aparece desabilitada (rw-);
o grupo tem permisses idnticas ao proprietrio (rw-);
o usurio somente tem permisso de ler o arquivo, no pode altera-lo (r--)
A tabela abaixo mostra as permisses mais comuns:
--- => nenhuma permisso;
r-- => permisso de leitura;
r-x => leitura e execuo;
rw- => leitura e gravao;
rwx => leitura, gravao e execuo.
Configurando permisses com chmod
Acima, voc dever tido pelo menos uma noo do que so permisses e sua
importncia no Linux. Chegou a hora de aprender a configurar permisses e isso feito
atravs do comando chmod (de change mode). Um detalhe interessante deste
comando que voc pode configurar permisses de duas maneiras: simbolicamente e
numericamente. Primeiramente veremos o mtodo simblico.

10

IBM

TREINAMENTO LINUX BASICO

Para ter uma viso mais clara da forma simblica com o chmod, imagine que
tais smbolos se encontram em duas listas, e a combinao deles gera a permisso:
Lista 1
Smbolo
u => usurio
g => grupo
O (letra o maiscula) => outro
a => totos
Lista 2
Smbolo
r => leitura
w => gravao
x => execuo
Para poder combinar os smbolos destas duas listas, usam-se os operadores:
+ (sinal de adio) => adicionar permisso
- (sinal de subtrao) => remover permisso
= (sinal de igualdade) => definir permisso
Para mostrar como essa combinao feita, vamos supor que voc deseje
adicionar permisso de gravao no arquivo teste.old para um usurio. Ento o
comando a ser digitado ser:
chmod u+w teste.old
O "u" indica que a permisso ser dada a um usurio, o sinal de adio (+)
indica que est sendo adicionada a permisso e "w" indica que a permisso que est
sendo dada de gravao.
11

IBM

TREINAMENTO LINUX BASICO

Caso voc queira dar permisses de leitura e execuo ao seu grupo, o comando ser:
chmod g+rw teste.old
Agora, vamos supor que o arquivo teste.old dever estar com todas as
permisses disponveis para o grupo. Podemos usar ento:
chmod g=rwx teste.old
Dica: crie arquivos e diretrios e teste a combinao de permisses com chmod. Isso
lhe ajudar muito no entendimento deste conceito.
Usando chmod com o mtodo numrico
Usar o chmod com valores numricos algo bastante prtico. Em vez de usar
letras como smbolos para cada permisso, usam-se nmeros. Se determinada
permisso habilitada, atribui-se valor 1, caso contrrio, atribui-se valor 0. Sendo
assim, a string de permisses r-xr----- na forma numrica fica 101100000. Essa
combinao de 1 e 0 um nmero binrio. Mas temos ainda que acrescentar a forma
decimal (ou seja, nmeros de 0 a 9). Para isso, observe a tabela abaixo:

Permisso Binrio

Decimal

---

000

--x

001

-w-

010

-wx

011

r--

100

r-x

101

5
12

IBM

TREINAMENTO LINUX BASICO

rw-

110

rwx

111

Se voc no conhece o sistema binrio deve estar se perguntando o que esse


"monte" de 0 e 1 tem a ver com os nmeros de 0 a 7. Como o sistema binrio somente
trabalha com os nmeros 0 e 1 (decimal trabalha com os nmeros de 0 a 9, ou seja,
o sistema de numerao que utilizamos no nosso dia-a-dia), ele precisa de uma
seqncia para representar os valores. Sendo assim, na tabela acima, a coluna Binrio
mostra como so os valores binrios dos nmeros de 0 a 7 do sistema decimal.
Chegou a hora ento de relacionar a explicao do pargrafo acima com a
coluna Permisso. Para exemplificar, vamos utilizar a permisso rw-, cujo valor em
binrio 110, que por sua vez, em decimal corresponde ao nmero 6. Ento, em vez
de usar rw- ou 110 para criar a permisso, simplesmente usa-se o nmero 6. Repare
ento que com o mtodo numrico, usamos somente um dgito para representar uma
permisso, ao invs de trs. Com isso a string de permisses r--r--r-- pode ser
representa por 444, pois r-- em decimal igual a quatro. Observe o exemplo abaixo:
chmod 600 notas.txt
Acima, esto sendo dadas as permisses rw------- ao arquivo notas.txt, pois 6
equivale a rw- e 0 equivale a ---. Como zero aparece duas vezes, forma-se ento o
valor 600. Faa o comando acima com um arquivo de teste e depois digite ls- l notas.txt
e veja o que aparece (notas.txt deve ser substitudo pelo arquivo que voc est usando
para teste). A tabela abaixo mostra as configuraes de permisses mais usadas:

---------

000

r--------

400
13

IBM

TREINAMENTO LINUX BASICO

r--r--r--

444

rw-------

600

rw-r--r--

644

rw-rw-r--

666

rwx------

700

rwxr-x---

750

rwxr-xr-x

755

rwxrwxrwx 777

As trs ltimas permisses da tabela so freqentemente usadas para


programas e diretrios.
Como voc viu, bem mais prtico utilizar o chmod com mtodo numrico. Mas voc
pode ter ficado confuso com todo esse esquema de permisso. No entanto, talvez isso no tenha
sido por causa da minha possvel ineficincia ao explicar permisses nesta coluna. A questo
que nos sistemas baseados em Unix, permisses so um dos aspectos mais complexos existentes.
Tal complexidade equivalente eficincia do uso de permisses. Por isso, a melhor maneira de
entender as permisses treinando. Sendo assim, ao trabalho! Treine, crie permisses e veja seus
resultados. Bom aprendizado!
Comandos
Introduo
O Linux (na verdade, GNU/Linux), assim como qualquer sistema operacional moderno,
perfeitamente capaz de oferecer interao com o usurio por meio de grficos,
fazendo com que seja possvel utilizar a maioria de seus recursos atravs do mouse.
14

IBM

TREINAMENTO LINUX BASICO

Porm, em dado momento, o modo grfico pode no estar disponvel, restando apenas
o modo texto (para a insero de comandos). Alm disso, determinadas tarefas s
podem ser executadas por comandos digitados. Para no ficar perdido em qualquer
dessas situaes, necessrio conhecer alguns comandos do Linux. isso que essa
matria apresenta a seguir.
Onde e como digitar os comandos?
Se o Linux que voc utiliza entra direto no modo grfico ao ser inicializado (que o que
acontece na grande maioria das distribuies atuais), possvel inserir comandos no
sistema atravs de uma aplicao de terminal. Esse recurso facilmente localizvel em
qualquer distribuio.
Os comandos no Linux

possuem argumentos que so separados pelo sufixo

exemplo:
ls la
Comando

Finalidade

Sintaxe

Parmetros

lsO comando Lista


o contedo
um variavies
ls -lar --color
-l: listaque
longa
LS mas
pode-sedeatribuir
para esse comando
no caso o -la
diretrio.
diretrio
-a: lista arquivos ocultos
A tabela abaixo lista alguns dos principais comandos do Linux,-r:
suas
listafinalidades,
recursivamente
sintaxes e parmetros: 2

--color: ativa cores

cd

Troca de diretrio.

cd diretrio

rm

Remove arquivos e

rm -irf arquivo

-i: apaga confirmando

diretrios.
-r: apaga recursivamente
-f: apaga foradamente
cp

Copia arquivos.

cp fonte destino

mkdir

Cria um diretrio.

mkdir diretrio
15

IBM

TREINAMENTO LINUX BASICO

rmdir

Apaga um diretrio.

rmdir diretrio

touch

Cria um arquivo vazio.

touch arquivo

more

Exibe contedo do

more arquivo

arquivo.
clear

Limpa a tela.

clear

su

Muda de login.

su [-] login

find

Procura arquivos em

find caminho expr.

--name: procura pelo nome

diretrios.
ps

Mostra os processos

ps - aux

rodando na mquina.
grep

Procura padres em um

grep expr. arquivo

-a: todos os processos

arquivo.
-x: mostra processos que
no foram iniciados no
console
-u: nome do usurio e hora
de incio
df

Mostra espao em disco

df partio

livre.
du

Mostra uso de disco.

du -s arquivo

pwd

Mostra o nome do

pwd

-s: mostra apenas o total

diretrio corrente.
finger

Mostra informaes sobre finger usurio


um usurio.

passwd

Definir senha.

passwd

16

IBM

TREINAMENTO LINUX BASICO

logout

Sair do sistema.

logout

halt

Desliga o sistema.

halt

Outros comandos:
Desligar o PC:
shutdown h now
init 0
halt
Reiniciar o PC:
reboot
shutdown r now
init 6
Listar processos:
ps aux
Matar processo:
kill 9 <nmero_processo>
Ex: kill -9 756
killall <nome_processo>
Ex: killall smbd
Descompactar arquivo .tar.gz:
tar xzvf <arquivo>.tar.gz
Ex: tar xzvf amsn-092.tar.gz
17

IBM

TREINAMENTO LINUX BASICO

Visualizar dispositivos PCIs:


lspci
Limpar a tela:
clear
Visualizar calendrio:
cal
Ver data atual e hora:
Date
Acessar um diretrio:
cd /diretrio
Ex: cd /etc
Voltar ao diretrio anterior:
cd
Criar um diretrio:
mkdir <novo diretrio>
Ex: mkdir guampa
Remover um diretrio:
rmdir <diretrio>
rm r <diretrio>
Ex: rm r guampa

18

IBM

TREINAMENTO LINUX BASICO

Criar um arquivo novo:


touch <novo arquivo>
Ex: touch texto
Remover um arquivo:
rm <arquivo>
Ex: rm texto
Renomear um arquivo ou muda-lo de lugar:
mv <nome_velho_arquivo> <novo_nome_arquivo>
mv /<diretrio>/<arquivo> /<novo_diretorio>
Ex: mv /home/texto /mnt/floppy

Mudar o grupo do arquivo ou diretrio:


chgrp <novo grupo> <arquivo ou diretrio>
Ex: chgrp amigos texto
Mudar a permisso do arquivo ou diretrio:
chmod <nnn> <arquivo ou diretrio>
*nnn so os nmeros referentes s permisses do arquivo
ou diretrio. 4=leitura; 2=escrita; 1=execuo.
Ex: chmod 740 texto
Listar o contedo de um diretrio:
ls
Ex: ls /root

19

IBM

TREINAMENTO LINUX BASICO

Mudar o dono de um arquivo ou diretrio:


chown <novo dono> <arquivo ou diretrio>
Ex: chown Juliana texto
Copiar arquivo:
cp <arquivo_a_ser_copiado> <nome_cpia>
cp /home/texto /mnt/floppy
Mostrar diretrio atual:
pwd
Visualizar um arquivo no terminal:
cat <arquivo>
Ex: cat texto
Mostrar o cabealho do arquivo:
head <arquivo>
Ex: head texto
Mostrar o final do arquivo:
tail f <arquivo>
Ex: tail f texto
Criar atalho para um arquivo
ln s <arquivo> <nome_atalho>
Ex: ln s /etc/samba/smb.conf atalho_smb.conf
Procurar uma palavra em um arquivo:
grep <palavra> <arquivo>
20

IBM

TREINAMENTO LINUX BASICO

Ex: grep root passwd


Procurar um arquivo:
find <local> -name <arquivo>
Ex: find /etc name passwd
(esta forma procura por um arquivo especfico)
find / -exec grep root {} ls \;
(esta forma procura por um arquivo contendo uma palavra especfica)

Administrao de Usurios:
Gerenciamento
Como qualquer sistema operacional multitarefa e multiusurio, o administrador
do sistema tem como grande desafio o gerenciamento de usurios e grupos. Por este
motivo importante estarmos preparados para administr-los diretamente sem a
utilizao de ferramentas que facilitem isso (ex.: webmin), usando apenas os
comandos bsicos do sistema operacional, isso ir proporcionar a administrao em
qualquer distribuio.
Comandos:

useradd: Comando utilizado para criao de um usurio.

userdel: Comando utilizado para remoo de um usurio.

usermod: Comando usado para modificar os dados de um usurio.

passwd: Comando usado para definir e ou modificar a senha de um usurio.

groupadd: Comando usado para criar um grupo.


21

IBM

TREINAMENTO LINUX BASICO

Criando um usurio
Para que seja possvel logar no sistema o usurio dever ter um username
(login) e uma senha (password). Para que isso seja possvel usaremos os comandos
"useradd" e "passwd". Abaixo explicarei como a sintaxe dos comandos e suas
opes:
Comando useradd
Sintaxe: useradd [opes] <username>
Opes:

-d - Caminho do diretrio home do usurio.

-g - Especifica o grupo do usurio.

-c - Inclui um comentrio referente ao usurio, tais como nome, setor, etc

-s - Especifica o shell de comando que o usurio ir utilizar.

-m - Cria o diretrio home do usurio e copia os arquivos de /etc/skel/ para o

home criado (diretrio onde se encontram os arquivos default do usurio, futuramente


iremos falar sobre ele). Em algumas distribuies no h necessidade de incluirmos
essa opo para a criao do home, mas para evitarmos no o criarmos bom
acostumarmos a coloc-la na criao do usurio.

-p - Essa opo serve para especificarmos uma senha j criptografada para o

usurio.

Ex.:
# useradd -g admin -s /bin/bash -d /home/sup1 -c "Usurio Administrativo de Suporte 1"
-m sup1
22

IBM

TREINAMENTO LINUX BASICO

No exemplo acima criamos o usurio sup1, que tem como grupo admin, usando
o shell /bin/bash, o home criado foi o /home/sup1 e tem o comentrio "Usurio
Administrativo de Suporte 1".

Comando passwd
Sintaxe: passwd [opes] <username>
Opes:

-d - Permite o usurio acessar (logar) o sistema sem senha.

-l - Bloqueia/trava a conta do usurio. O usurio no consegue logar.

-u - Desbloqueia/destrava a contado usurio (bloqueado pela opo "-l").

-S - Mostra o status da senha do usurio.

Exemplo 1:
# passwd sup1
Chaging password for user sup1
New password: [digitar a senha]
Retype new password: [repetir a senha]
Exemplo 2: Nesse exemplo iremos travar a conta do usurio sup1.
# passwd -l sup1
Exemplo 3: Vamos agora destravar a conta do usurio sup1:
# passwd -u sup1
23

IBM

TREINAMENTO LINUX BASICO

Comando userdel
Sintaxe: userdel [opes] <username>
Opes:

-r - Ao usarmos essa opo o diretrio HOME e Mailbox do usurio ser

removido. importante ter certeza ao fazer isso, pois muitas vezes melhor remover
apenas o usurio ou at mesmo suspend-lo mantendo seus arquivos para auditoria.
Exemplo 1: Remover o usurio sem excluir seus arquivos.
# userdel sup1
Exemplo 2: Remover o usurio e seus arquivos
# userdel -r sup1
Comando groupadd
Sintaxe: groupadd [opes] <groupname>
Opo:

-g - Ao usarmos esta opo, podemos especificar o GID do grupo que estamos

criando.
Exemplo 1: Criando um grupo chamado "administracao".
# groupadd administracao
Exemplo 2: Criando um grupo chamado oragroup e especificando o GID 1521.
# groupadd -g 1521 oragroup
Comando groupmod
Sintaxe: groupmod [opes] <groupname>
24

IBM

TREINAMENTO LINUX BASICO

Opo:

-g - Ao usarmos esta opo, podemos modificar o GID do grupo.

-n - Para trocarmos o nome do grupo.

Exemplo 1: Modificando o GID do grupo "administracao".


# groupmod -g 666 administracao
Exemplo 2: Modificando o nome do grupo oragroup.
# groupadd -n oracle oragroup

Gerenciando grupos e senhas


Comandos:
gpasswd
Com esse comando podemos criar senhas para administradores de grupo que
tero poder de incluir e remover, alm de modificar a senha de um grupo.
grpconv
Atravs desse comando criado o arquivo gshadow utilizando o arquivo group
para isso.
grpunconv
Esse comando recria um arquivo group utilizando os arquivos group e gshadow
e aps isso ele remove os dois arquivos.
pwconv

25

IBM

TREINAMENTO LINUX BASICO

Utilizando o arquivo passwd ele cria o arquivo shadow, hoje em dia esse
comando pouco utilizado, pois os novos sistemas j trabalham diretamente com
senhas criptografadas j localizadas no shadow.
pwunconv
Recria o arquivo passwd utilizando os arquivos passwd e shadow e depois os
removendo.
chage
Usado para modificar parmetros de expirao de senha dos usurios. Pode ser
executado pelo superusurio seguido do nome do usurio a que iremos modificar os
parmetros. Nesse caso s teremos que ir respondendo o que nos perguntado. Outra
coisa que temos que ter em mente que esse comando funciona apenas se
estivermos usando o esquema de senhas criptografadas (/etc/shadow).
Parmetros:
* Minimum Password Age: onde informamos o mnimo de dias que o usurio deve
esperar para poder modificar sua senha novamente.
* Maximum Password Age: Onde informamos a quantidade de dias mximo que o
usurio pode ficar sem modificar sua senha. Caso o usurio ultrapasse o perodo
mximo para a troca, ele s conseguir logar aps sua a troca.
* Last Password Change: a data em que a senha teve sua ltima alterao.
* Password Expiration Warning: onde informamos a quantidade de dias antes da
expirao da senha que o usurio comear a receber o alerta para a troca da senha.
* Password Inactive: Aqui indicamos a quantidade de dias que o usurio ter para
trocar sua senha. Depois de sua expirao o login do usurio ficar bloqueado. Se o

26

IBM

TREINAMENTO LINUX BASICO

usurio no modificar sua senha dentro desse perodo, apenas o superusurio poder
reativar e trocar a senha do usurio.
* Account Expiration Date: Esta opo exatamente onde colocamos a data de
expirao da conta do usurio.
Sintaxe: chage [opes] username
Opes:
* -m <n> - Minimum Password Age, onde "n" a quantidade mnima de dias para a
troca da senha.
* -M <n> - Mximo Password Age, onde "n" a quantidade mxima de dias para a
troca da senha.
* -d <data> - Last Password Change, onde "data" a data da ltima troca da senha.
* -W <n> - Password Expiration Warning, onde "n" a quantidade de dias antes da
expirao da senha, em que o usurio ir comear a receber o aviso para a troca da
senha.
* -I <n> - Password Inactive, onde "n" tem que ser ao menos a quantidade de dias de
senha expirada +1, isso significa se a senha esta expirada a 10 dias, temos que no
mnimo colocar n=11, para a conta seja reativada e o usurio possa trocar da senha.
* -E <data> - Account Expiration Date, onde "data" a data de expirao da senha.
Exemplo 1: Configurando os parmetros para expirao da senha do usurio bola.
# chage bola
Chaging the aging information for bola
Enter the new value, or press Enter for the default
27

IBM

TREINAMENTO LINUX BASICO

Minimum Password Age [1]: 4


Maximum Password Age [1]: 30
Last Password Change (YYYY-MM-DD) [2005-11-17]:
Password Expiration Warning [1]: 8
Password Inactive [0]: 5
Account Expiration Date (YYYY-MM-DD) [2005-11-20]: 2010-05-16
Exemplo 2: Modificar o "Minimum Password Age" do usurio bola.
# chage -m 6
Exemplo 3: Modificar o "Maximum Password Age" do usurio bola.
# chage -M 35
Exemplo 4: Modificar o "Last Password Change" do usurio bola.
# chage -d 2010-04-17
Exemplo 5: Modificar o "Password Expiration Warning" do usurio bola.

# chage -W 10
Exemplo 6: Modificar o "Password Inactive" do usurio bola.
# chage -I 20
Concluso
Gostaria de fechar este artigo dando algumas dicas referentes a importncia do
planejamento no gerenciamento do usurio. Sem um bom planejamento a gerncia de
28

IBM

TREINAMENTO LINUX BASICO

usurios pode se tornar muito complicada, ainda mais se tivermos muitas opes.
Contudo alguns pontos so comuns: Quantos usurios temos? Daqui a uns 6 meses,
quantos usurios teremos? Todos os usurios precisam de shell de comando?
Bom, pense/planeje o mximo possvel para que possa minimizar surpresas.
Lembre-se que como todo administrador, teremos surpresas. Por isso quanto mais bem
planejado, diminumos as chances de surpresas.

Alterando informaes dos usurios


Se voc pode criar e apagar contas de usurios, pode tambm alter-las. Isso
feito facilmente com o comando usermod, cujo funcionamento semelhante ao
comando adduser:
usermod opes usurio
Eis algumas de suas opes:
usermod -d diretrio usurio: altera o diretrio "home" do usurio. Adicione -m no
final para mover o contedo da pasta anterior para a nova. Por exemplo:
usermod -d /financeiro -m peterpan
usermod -e data usurio: define a data de expirao da conta do usurio. Em geral, a
data fornecida no esquema ano/ms/dia (aaaa-mm-dd). Por exemplo:
usermod -e 2008-10-28 galadriel
usermod -l novo_nome usurio: altera o nome do login do usurio. No exemplo
abaixo, o usurio peterparker teve seu nome alterado para spiderman:
29

IBM

TREINAMENTO LINUX BASICO

usermod -l spiderman peterparker


usermod -g grupo nmero usurio: altera o GID do grupo principal do usurio. Por
exemplo:
usermod -g 42 galadriel
usermod -s shell usurio: altera o shell do usurio;
usermod -u nmero usurio: altera o UID da conta do usurio.
Comandos adicionais
O GNU/Linux ainda conta com vrios outros comandos que lhe ajudam a
gerenciar e obter informaes de usurios e grupos. Veja alguns:
logname: mostra o nome do seu usurio;
users: mostra os usurios que esto conectados ao sistema no momento;
id: mostra dados da identificao do usurio. Eis algumas opes:
id usurio: exibe os grupos (e seus respectivos GIDs) dos quais o usurio faz parte;
id -g usurio: mostra o GID do grupo do usurio;
id -G usurio: exibe o GID de todos os grupos do usurio (nome que a letra G fica em
caixa alta);
id -u usurio: indica o UID do usurio.

30

IBM

TREINAMENTO LINUX BASICO

finger usurio: mostra informaes detalhadas do usurio. Se o comando for digitado


isoladamente (ou seja, somente finger), o sistema exibe todos os usurios que esto
conectados no sistema operacional no momento;
chfn usurio: comando para mudar as informaes adicionais do usurio (nome
completo, telefone, etc).
last: o comando last bastante interessante e til, pois mostra os ltimos usurios que
estiveram logados no sistema, os terminais usados por eles para se conectar, o
hostname (quando a conexo feita remotamente), as datas e os horrios de utilizao
do computador, assim como o tempo de permanncia no sistema. Esses dados
geralmente so obtidos do arquivo de logs /var/log/wtmp. O last tambm possui
opes. Veja algumas:
last -n nmero: mostra apenas as ltimas linhas do log. Para definir a quantidade de
linhas, substitua nmero pelo valor desejado. Por exemplo:
last -n 10
last -x: mostra os dados de desligamento do sistema, assim como informaes do nvel
de execuo;
last -R: faz com que o comando no exiba os hostnames (note que a letra R fica em
caixa alta);
last -a: faz com que os hostnames sejam exibidos apenas na ltima coluna.

Passwd
. passwd
neste arquivo que ficam os usurios cadastrados no sistema. Cada linha
corresponde a um usurio e o caracter ":" separa os campos . Analisando o
31

IBM

TREINAMENTO LINUX BASICO

exemplo abaixo:
vinic:x:1001:0:Vinicius Schmidt,,,:/home/vinic:/bin/bash
Login : Senha : Id : Gid : Nome e Dados : Diretrio : Shell
Login: vinic
a identificao do usurio que tambm pode ser usado para identificao
do email.
Senha: x
Esse "x" informa que a senha est em outro arquivo mais seguro.
Id: 1001
o cdigo nico para o Linux identificar cada usurio. Nunca devese ter
dois usurios com o mesmo cdigo.
Gid: 0
o cdigo do grupo primrio que o usurio pertence.
Nome e Dados: Vinicius Schmidt,,,
Este campo usado para armazenar informaes sobre o usurio como
nome, telefone, sala, etc.. Esses dados so separados por "," e devem
obedecer um padro.
Diretrio: /home/vinic
Este campo informa qual o directrio home, do usurio.
Shell: /bin/bash
a shell default do usurio. Para usurios que no precisam de shell deve
se colocar "/dev/null".
32

IBM

TREINAMENTO LINUX BASICO

. shadow
Este o arquivo mais visado pelos "intrusos", pois nele que ficam gravadas
todas as senhas de acesso ao sistema.
A senha fica necessariamente criptografada dificultando a sua descoberta por
pessoas no autorizadas, porem para quem sabe como quebrar essa
criptografia no difcil fazlo. Por isso a necessidade de senhas
complexas.
Abaixo uma linha do arquivo shadow, e a senha criptografada em destaque:
vinic:$1$04Jd3syi$iadsszEgE53un1Muk.:11046:0:99999:7:::

VI (Editor)
Funes de procura

/<expresso> => comea a procura pelo incio do arquivo do termo "expresso"

?<expresso> => comea a procura pelo final do arquivo do termo "expresso"

n => procura a prxima palavra

N => inverte o sentido da procura

Movimentao e insero de texto

:3,9d => apaga as linhas de 3 a 9

:4,7m 11 => move as linhas de 4 a 7 para a linha 11

:2,6t 11 => copia as linhas de 2 a 6 para a linha 11

:2,7w <file> => escreve as linhas de 2 a 7 para o arquivo "file"

:r <file> => l o arquivo 'file' e insere seu contedo no documento atual.


33

IBM

TREINAMENTO LINUX BASICO

Adicionar/apendar texto

a => apendar texto depois do cursor

A => apendar texto no final da linha

i => inserir texto antes do cursor

I => inserir texto no comeo da linha

Mudar texto

cw => muda uma palavra

3cw => muda 3 palavras

C => muda uma linha

r => sobrescreve um caractere

R => sobrescreve a linha inteira

:%s/<old>/<new>/g => muda todas as ocorrncias da expresso "old" para a


expresso "new"

Cancelar uma funo

u => desfazer a ltima operao

. => repete a ltima operao

Salvar arquivos e sair

:w => salvar da memria (buffer) para o disco (arquivo)

:q => sair do editor

:wq => salvar e sair do editor

:x => salvar e sair do editor

:e! => reeditar, desprezando as mudanas

ZZ => salvar e sair do editor

Movimentao de tela/linha
34

IBM

TREINAMENTO LINUX BASICO

0 => vai direto para o comeo da linha

) ou $ => vai direto para o final da linha

g (Linux) => vai para a primeira linha do arquivo

G => vai para a ltima linha do arquivo

5G => vai para a linha 5

Copiar e inserir textos

yy => copia um linha

5yy => copia 5 linhas

p => cola abaixo do cursor

P => cola acima do cursor

Adicionar novas linhas

o => abre uma nova linha para edio abaixo do cursor

O => abre uma nova linha para edio acima do cursor

Apagar texto

x => apaga um caractere

dw => apaga uma palavra

dd => apaga uma linha

5dd => apaga 5 linhas

dG => apaga do cursor at o final do arquivo

Configuraes da sesso

:set nu => mostra o nmero de linhas

:set nonu => desliga o comando acima

:set all => mostra todas as configuraes

:set list => mostra os caracteres ocultos


35

IBM

TREINAMENTO LINUX BASICO

Rolagem do texto

CTRL+f => rola uma tela para baixo

CTRL+b => rola uma tela atrs

CTRL+d => rola meia-tela (1/2) para baixo

CTRL+u => rola meia-tela (1/2) atrs

Compactao e descompactao de arquivos com Tar e gzip


Introduo
O Tar e o gzip so duas ferramentas utilizadas em sistemas operacionais
baseados no Unix, como o GNU/Linux, para o "empacotamento" e para a compresso
de arquivos, respectivamente. Embora seja perfeitamente possvel usar qualquer
desses programas de forma individual, a utilizao de ambos ao mesmo tempo muito
comum e til. Sendo assim, que tal aprender a compactar e a descompactar arquivos
utilizando Tar e gzip e, conseqentemente, entender o funcionando dos famosos
arquivos de extenso tar.gz? isso que voc ver neste artigo. De quebra, voc ainda
saber como trabalhar com o compactador bzip2.
Comando Tar
Backup (cpia de segurana) de arquivos uma necessidade antiga. H vrias
formas de se fazer isso, mas nos sistemas operacionais baseados no Unix, uma das
maneiras mais tradicionais corresponde utilizao da ferramenta Tar, sigla de Tape
Archive. O que o Tar faz muito simples de entender: ele "empacota" vrios arquivos
em um s, isto , faz com que um nico arquivo contenha vrios outros. Assim,
possvel, por exemplo, armazenar em nico arquivo as cpias de documentos
existentes na pasta de um usurio.
36

IBM

TREINAMENTO LINUX BASICO

O arquivo resultante de um empacotamento feito com Tar tem, como de se


esperar, a extenso .tar (por exemplo, infowester.tar), embora sua utilizao no seja
obrigatria (mas recomendada para fins de organizao). Quando for necessrio
extrair o contedo existente dentro de um arquivo .tar, naturalmente, basta acionar o
programa Tar. Os procedimentos para empacotamento e extrao de arquivos so
executados atravs de comandos e parmetros inseridos em terminais (shell). Quando
um usurio domina essas instrues, consegue executar tais tarefas de forma gil. Isso
se deve principalmente ao fato do Tar manter as propriedades dos arquivos e a
estruturas de diretrios originais, facilitando a localizao e a utilizao de cada item
aps a extrao.
A sintaxe do Tar a seguinte:
tar [parmetros] [nome_do_arquivo_tar] [arquivos_de_origem]
Na linha acima, tar o comando. Em parmetros, possvel utilizar vrias
opes. Eis as principais:
-c - cria um novo arquivo tar;
-t - exibe o contedo de um arquivo tar;
-p - mantm as permisses originais do(s) arquivo(s);
-r - adiciona arquivos a um arquivo tar existente;
-f - permite especificar o arquivo tar a ser utilizado;
-v - exibe detalhes da operao;
-w - pede confirmao antes de cada ao no comando;
-x - extrai arquivos de um arquivo tar existente;
-z - comprime o arquivo tar resultante com o gzip (visto mais frente);
-C - especifica o diretrio dos arquivos a serem armazenados (note que, neste caso, a
letra maiscula).

37

IBM

TREINAMENTO LINUX BASICO

O campo nome_do_arquivo_tar especifica qual o nome que o arquivo .tar ter, e


o campo arquivos_de_origem define o diretrio ou os arquivos que se tornaro um .tar.
Vamos ver alguns exemplos para facilitar a compreenso:
tar -cf lendas.tar saci.txt curupira.txt
O comando acima cria o arquivo lendas.tar, que contm os arquivos saci.txt e
curupira.txt. Aqui, voc deve ter reparado que possvel combinar parmetros. Neste
exemplo, isso ocorreu com -c e -f. No exemplo abaixo, o diretrio hardware tem todo o
seu contedo compactado no arquivo backup.tar, s que os detalhes so exibidos
graas opo -v:
tar -cvf backup.tar hardware
O exemplo a seguir lista o contedo do arquivo backup.tar:
tar -tf backup.tar
Por sua vez, o comando abaixo faz com que todos os arquivos de backup.tar
sejam extrados (neste ponto, voc certamente j sabe as funes dos parmetros x, v
e f no comando):
tar -xvf backup.tar
J no comando a seguir, apenas o arquivo saci.txt extrado:
tar -xvf lendas.tar saci.txt
Uma coisa interessante que, se a opo -v for usada duas vezes, detalhes
como permisses e data do(s) arquivo(s) apareo:
tar -xvvf lendas.tar saci.txt
38

IBM

TREINAMENTO LINUX BASICO

Comando gzip
A ferramenta Tar, por si somente, serve apenas para juntar vrios arquivos em
um s. No entanto, o programa no capaz de diminuir o tamanho do arquivo
resultante, isto , de compact-lo. neste ponto que entra em cena o gzip (GNU zip)
ou outro compactador de sua preferncia. Se utilizado isoladamente, o gzip faz uso da
seguinte sintaxe:
gzip [parmetros] [nome_do_arquivo]
Entre os parmetros disponveis, tem-se:
-c - extrai um arquivo para a sada padro;
-d - descompacta um arquivo comprimido;
-l - lista o contedo de um arquivo compactado;
-v - exibe detalhes sobre o procedimento;
-r - compacta pastas;
-t testa a integridade de um arquivo compactado.
Ainda no que se refere s opes de parmetros, possvel utilizar uma
numerao de 1 a 9 para indicar o nvel de compactao. Quanto maior o nmero,
maior ser a compactao do arquivo.
Eis alguns exemplos para facilitar a compreenso do comando gzip:
gzip lista.odt
O comando acima compacta o arquivo lista.odt. Note que os arquivos
compactados com gzip recebem a extenso .gz.
gzip -d listaodt.gz
39

IBM

TREINAMENTO LINUX BASICO

O comando acima descompacta o arquivo infowester.odt.gz.


gzip -1 colorado.ods
O procedimento acima faz com que o arquivo colorado.ods seja compactado
considerando o nvel mais baixo de compreenso.
Usando Tar e gzip
O uso conjunto dos comandos Tar e gzip um belo exemplo de coerncia da
frase "a unio faz a fora". Muitas vezes, necessrio juntar arquivos e, ao mesmo,
fazer com que o arquivo resultante, alm de conter todos os outros, tambm seja
compactado. a que entra em cena a capacidade de juntar arquivos do Tar com a
capacidade de compactao do gzip. Para utilizar ambos ao mesmo tempo, o
procedimento muito simples: basta aplicar o comando tar com o parmetro -z. O
arquivo resultante desse procedimento receber a extenso .tar.gz.
Neste ponto, vemos um comando bastante usado na instalao de programas e
bibliotecas:
tar -zxvf nome_do_arquivo.tar.gz
Se voc estiver lendo este artigo deste o comeo, certamente j sabe o que o
comando acima faz, mesmo assim, vamos explicar para no restar dvidas: a letra z
deve ser usada porque o arquivo foi compactado com gzip; a letra x indica que o
comando deve extrair o arquivo (portanto, a referida instruo serve para extrair e
descompactar o arquivo tar.gz); a letra v exibe os detalhes do procedimento; por fim, a
letra f especifica qual arquivo ser usado nesta atividade.
Suponha, agora, que voc queira deixar em um nico pacote os arquivos
marvin.png, zaphod.txt e trillian.odt. O arquivo resultante ter o nome guia.tar.gz. Eis o
comando que utilizaremos para este exemplo:
40

IBM

TREINAMENTO LINUX BASICO

tar -zcvf guia.tar.gz marvin.png zaphod.txt trillian.odt


Note que o comando muito parecido com o procedimento de descompactao
do exemplo anterior, com a diferena de que o parmetro c foi utilizado no lugar de x,
pois o objetivo aqui criar um arquivo novo, e no fazer a extrao de um j existente.
Para extrair o contedo desse arquivo, basta executar o comando abaixo (tambm
exibido na figura acima):
tar -zxvf guia.tar.gz
Se voc quiser extrair apenas um dos arquivos contidos no arquivo compactado,
basta indic-lo no final do comando. Por exemplo, suponha que voc queira extrair o
arquivo marvin.png de guia.tar.gz. Eis o que voc deve digitar:
tar -zxvf guia.tar.gz marvin.png
Usando Tar e bzip2
A combinao Tar e gzip muito utilizada, mas no a nica. Tambm
possvel utilizar o algoritmo de compresso bzip2, cuja extenso .bz2. H quem
prefira esta opo pela caracterstica do bzip2 de gerar arquivos menores que o gzip,
embora o programa o faa de maneira mais lenta que este ltimo.
Para utilizar Tar com bzip2, basta utilizar o parmetro -j. Por exemplo:
tar -jcvf frases.tar.bz2 confucio.html nietzsche.html
Para extrair o contedo arquivo, o comando :
tar -jxvf frases.tar.bz2
Caso queira utilizar o bzip2 isoladamente, a sintaxe :
41

IBM

TREINAMENTO LINUX BASICO

bzip2 [parmetros] [nome_do_arquivo]


Os parmetros so praticamente os mesmos do gzip, por isso no sero
mostrados aqui. Eis um comando de exemplo:
bzip2 -d vivaldi.htm.bz2
Esse comando descompacta o arquivo vivaldi.htm.
Finalizando
Atualmente, possvel encontrar interfaces grficas que permitem manipular as
opes provenientes dos programa Tar, gzip, bzip2 e suas possveis combinaes de
maneira simples, apenas com o uso do mouse. No entanto, entender como utilizar
esses comandos essencial para quando somente a linha de comando estiver
disponvel e, claro, importante tambm para que voc possa compreender
perfeitamente o que est sendo feito. por isso que este artigo foi escrito.
Caso voc queira mais detalhes sobre esses programas, digite em um terminal
os comandos man tar, man gzip ou man bzip2. Se preferir, visite os sites que serviram
de referncia para este artigo:
- www.gnu.org/software/tar;
- www.gzip.org;
- focalinux.cipsga.org.br;
- en.wikipedia.org/wiki/Tar_(file_format);
- en.wikipedia.org/wiki/Bzip2;
- bzip.org.

Usando cron e crontab para agendar tarefas


Introduo
42

IBM

TREINAMENTO LINUX BASICO

Suponha que voc seja dono de um servio de hospedagem de sites e


diariamente precisa disponibilizar, numa pasta acessvel por FTP, o arquivo de log de
acessos de um cliente. trabalhoso fazer isso manualmente e na pior das hipteses,
voc pode esquecer. Felizmente, o Linux conta com o servio cron, que permite a
realizao de tarefas programadas em dias e horrios determinados por voc. O
objetivo deste artigo mostrar como fazer isso.
O que cron
O cron pode ser interpretado como um servio do Linux que carregado durante
o processo de boot do sistema. Trata-se de uma ferramenta que permite programar a
execuo de comandos e processos de maneira repetitiva ou apenas uma nica vez.
No caso citado da introduo, voc poderia usar o cron para que o arquivo de
log de um cliente fosse disponibilizado todos os dias s 15 horas, por exemplo. Isso
possvel porque o daemon (uma espcie de programa que executa tarefas em segundo
plano) do cron executa os comandos nas datas e horrios especificados. A cada
minuto, o cron acionado para verificar se h tarefas a serem realizadas.
Para executar as tarefas, o cron usa uma espcie de tabela conhecida como
crontab. O arquivo crontab geralmente fica localizado no diretrio /etc, mas tambm
pode estar em um diretrio que cria um crontab para cada usurio do sistema
(geralmente em /var/spool/cron/), tudo depende das configuraes do sistema
operacional utilizado.

Como usar o cron


O primeiro passo abrir o crontab. Para isso, voc pode usar editores de textos
como vi, emacs ou nano. Tambm possvel digitar o comando crontab -e para editar
43

IBM

TREINAMENTO LINUX BASICO

o arquivo exclusivo de seu usurio. Neste caso, a edio feita como se voc
estivesse usando o vi.
O crontab tem o seguinte formato:
[minutos] [horas] [dias do ms] [ms] [dias da semana] [usurio] [comando]
O preenchimento de cada campo feito da seguinte maneira:
- Minutos: informe nmeros de 0 a 59;
- Horas: informe nmeros de 0 a 23;
- Dias do ms: informe nmeros de 0 a 31;
- Ms: informe nmeros de 1 a 12;
- Dias da semana: informe nmeros de 0 a 7;
- Usurio: o usurio que vai executar o comando (no necessrio especific-lo se o
arquivo do prprio usurio for usado);
- Comando: a tarefa que deve ser executada.
Repare que a ordem desses valores indica o nome correspondente do campo.
Por exemplo, no campo ms, 1 a 12 quer dizer de "janeiro a dezembro". No caso de
dias da semana, 0 a 6 quer dizer de "domingo a sbado". Note que o nmero 7
tambm pode ser usado. Neste caso, assim como o nmero 0, o 7 equivale ao dia de
"domingo".
No lugar desses valores, voc pode informar * (asterisco) para especificar uma
execuo constante. Por exemplo, se o campo dias do ms conter *, o comando
relacionado ser executado todos os dias.
44

IBM

TREINAMENTO LINUX BASICO

Voc tambm pode informar intervalos no preenchimento, separando os


nmeros de incio e fim atravs de - (hfen). Por exemplo, se no campo horas for
informando 2-5, o comando relacionado ser executado s 2, 3, 4 e 5 horas. E se o
comando tiver que ser executado s 2 horas, entre 15 e 18 horas e s 22 horas? Basta
informar 2,15-18,22. Nestes casos, voc separa os parmetros por vrgula.
Vamos a um exemplo:
#tarefa info
30 22 3,14 * * echo "No entre em pnico" > /home/alecrim/info.txt
Neste exemplo, a frase "No entre em pnico" inserida no arquivo info.txt,
dentro do diretrio /home/alecrim/, s 22 horas e 30 minutos, nos dias 3 e 14, em todos
os meses e em todos os dias da semana. Repare na linha "#tarefa info". Trata-se de
um comentrio. Digite # e tudo o que for digitado na linha no ser considerado pelo
cron. um recurso til para inserir descries quando se tem vrias tarefas a serem
executadas.

Comandos do crontab
Para acessar o crontab, basta digitar esse nome em um terminal seguido de um
parmetro. Eis a lista de parmetros disponveis:
crontab -e: conforme j informado, serve para editar o arquivo atual do crontab e criar
um, caso no exista;
crontab -l: este comando mostra o contedo atual do crontab;
crontab -r: remove o arquivo atual do crontab.
45

IBM

TREINAMENTO LINUX BASICO

Como exemplo, analise a imagem abaixo:


Ela mostra que o comando crontab -e foi dado para edio (que ocorreu em
outro programa). Como no havia nenhum arquivo de crontab para isso, o comando
serviu para criar um. Quando esse procedimento foi finalizado, foi dado o comando
crontab -l para a visualizao de seu contedo. Em seguida, foi dado o comando
crontab -r para eliminar esse arquivo. Por fim, foi dado o comando crontab -l
novamente para comprovar a eliminao.
Finalizando
Os recursos do cron no se limitam aos mostrados anteriormente. Voc pode ainda
agendar tarefas mais complexas e poupar muito trabalho nessas execues
automticas. possvel, por exemplo, configurar o cron para emitir-lhe um aviso de
quando uma tarefa for executada. A dica para lidar com o cron test-lo. Experimenteo bastante. Mesmo que voc seja apenas um usurio domstico, certamente
encontrar alguma utilidade para o cron.

Gerenciadores de pacotes - Guia de Consulta Rpida


O gerenciamento de pacotes provavelmente a caracterstica que mais
diferencia as distribuies Linux. Embora a tendncia em boa parte dos grandes
projetos seja oferecer uma interface grfica na qual os usurios possam selecionar um
pacote e instal-lo com um clique do mouse (como no Synaptic do Debian ou no
Drakrpm do Mandriva), esses programas costumam ser apenas interfaces grficas para
os utilitrios de baixo nvel que gerenciam as tarefas associadas instalao de
pacotes nos sistemas Linux. Ainda que muitos usurios do Linux sintam-se bem mais
vontade instalando pacotes com essas ferramentas grficas intuitivas, no d para
negar que o gerenciamento de pacotes pela linha de comando oferece dois excelentes
recursos que no esto disponveis em nenhum utilitrio grfico para gerenciamento de
pacotes: poder e velocidade.
46

IBM

TREINAMENTO LINUX BASICO

Gerenciamento de Pacotes - Consulta Rpida


Tarefa
a ser executada

yum / rpm
CentOS / Fedora

apt / dpkg
Debian / Ubuntu

Gerenciando o software
Instalar software usando repositrios

yum install pacote

apt-get install pacote

Instalar software usando arquivo de pacote

yum localinstall pacote.rpm


dpkg -i pacote.deb
rpm -ivh pacote.rpm

Atualizar um software

yum update pacote


rpm -Uvh pacote.rpm

apt-get install pacote

Remover um software

yum erase pacote

apt-get remove pacote

Atualizar lista de pacotes

yum check-update

apt-get update

Atualizar o sistema

yum update

apt-get upgrade

Procurar pelo nome do pacote

yum list pacote

apt-cache search pacote

Procurar por padro

yum search padro

apt-cache search padro

Procurar pelo nome do arquivo

yum provides arquivo

apt-file search caminho

Listar todos os pacotes instalados

rpm -qa

dpkg -l

Atualizando o sistema

Procurando por pacotes

Configurando o acesso a repositrios de software


Listar repositrios

yum repolist

cat /etc/apt/sources.list

Adicionar repositrio

(adicionar

(editar /etc/apt/sources.list)
47

IBM

TREINAMENTO LINUX BASICO

Gerenciamento de Pacotes - Consulta Rpida


Tarefa
a ser executada

yum / rpm
CentOS / Fedora

apt / dpkg
Debian / Ubuntu

/etc/yum.repos.d/)
(remover de
/etc/yum.repos.d/)

(editar /etc/apt/sources.list)

Verificar se um pacote est instalado

rpm -q pacote

dpkg -s pacote

Listar arquivos de um pacote instalado

rpm -ql pacote

dpkg -L pacote

Listar arquivos de um arquivo de pacote

rpm -qpl pacote.rpm

dpkg -c pacote.deb

Obter informaes de um arquivo de


pacote

rpm -qpi pacote.rpm

dpkg -I pacote.deb

Descobrir a que pacote pertence um


arquivo

rpm -qf arquivo

dpkg -S arqiivo

Remover repositrio

Comandos diversos

RPM
O que o RPM?
O RPM um sistema de instalao de programas criado pela Red Hat.
O que um pacote RPM?
Um pacote RPM nada mais do que os arquivos do programa, scripts e regras
para sua instalao.

48

IBM

TREINAMENTO LINUX BASICO

Como instalar pacotes RPM?


Para instalar um pacote RPM use o comando:
rpm -i nome_do_pacote.rpm
Voc tem um pacote instalado, mas acaba de pegar uma verso mais nova do
programa. O que fazer? Desinstalar o pacote antigo e instalar o novo? No! No
preciso que se faa isso! Voc pode atualizar para uma verso mais recente de um
pacote j instalado com o comando:
rpm -U nome_do_pacote.rpm
Tudo bem, aprendemos instalar e atualizar um pacote, mas tem aquele
programa instalado em meu PC que eu nunca uso, como fao para remov-lo?
Bem, para remover um pacote j instalado use o comando:
rpm -e nome_do_pacote
OBS: Veja que agora no colocamos a extenso rpm. No necessrio que se
coloque a extenso!
Para ver a lista de pacotes instalados em seu sistema use o comando:
rpm -qa
Agora vamos verificar se algum pacote j est instalado em nosso sistema.
Para isso utilize o comando:
49

IBM

TREINAMENTO LINUX BASICO

rpm -qa | grep nome_do_pacote


OBS: O nome do pacote no precisa ser digitado inteiramente!
Exemplo: Para sabermos quais pacotes que possuem "gnome" no seu nome
esto instalados em nosso sistema utilizamos o comando:
rpm -qa | grep gnome
Agora veja que existem vrios pacotes com o nome gnome-yyyy, onde yyyy o
complemento do nome do pacote, e outros que tm um prefixo (ex.: libgnome-xxx,
onde o xxx a verso do pacote).
Para vermos quais arquivos um certo pacote prov utilizamos o comando:
rpm -qlp nome_do_pacote.rpm
Se voc quiser obter informaes sobre um pacote instalado no sistema utilize
o comando:
rpm -qi nome_do_pacote
OBS: Note que mais uma vez no necessrio usar a extenso rpm.
Agora voc quer obter informaes de um pacote no instalado, utilize o
comando:
rpm -qip nome_do_pacote.rpm
50

IBM

TREINAMENTO LINUX BASICO

Se no caso acima as informaes mostradas ainda no so suficientes para o


que queremos, podemos obter mais informaes sobre um pacote ainda no instalado
com o comando:
less nome_do_pacote.rpm
Digamos agora que voc tem um pacote instalado, mas por algum motivo
qualquer ele no est funcionando normalmente.
Existem outras maneiras de resolver este problemas, mas se voc tentou de
tudo e ainda no conseguiu resolv-lo, pode reinstalar o pacote. Mas ao tentar o
comando "rpm -U nome_do_pacote" ou "rpm -i nome_do_pacote" voc recebe a
mensagem de que o pacote j est instalado, basta usar com o parmetro
--replacepkgs assim:
rpm -i --replacepkgs nome_do_pacote.rpm
ou
rpm -U --replacepkgs nome_do_pacote.rpm
Para instalar um pacote sem que seja verificado se o seu disco possui espao
suficiente para o pacote use o comando:
rpm -i --ignoresize nome_do_pacote.rpm
Ateno: Esta opo no recomendada visto que se no existir espao
suficiente para a instalao o pacote pode e/ou ser instalado com problemas!
Para instalar um pacote sem instalar a sua documentao utilize o comando:
51

IBM

TREINAMENTO LINUX BASICO

rpm -i --excludedocs nome_do_pacote.rpm


OBS: Apenas os arquivos marcados como documentao no sero
instalados!
Para instalar um pacote sem a verificao das dependncias utilize o comando:
rpm -i --nodeps nome_do_pacote.rpm
Ateno: Esta opo no recomendada visto que provavelmente o programa
apresentar erros uma vez que as dependncias no forem atendidas!
Caso voc queira instalar uma verso mais antiga de um pacote j instalado
utilize o comando:
rpm -U --oldpackage nome_do_pacote.rpm
Caso voc queira apenas testar se um pacote vai ser instalado corretamente
(se todas as dependncias sero atendidas, se no causa nenhum conflito) em seu
sistemas utilize o comando:
rpm -i --test nome_do_pacote.rpm
Algumas vezes quando instalamos e desinstalarmos pacotes pode ocorrer da
nossa base de dados do rpm ficar corrompida!
Se ao tentar instalar, atualizar ou remover um pacote voc comear a receber
mensagens de erro do tipo "Segmentation fault ou (null)-(null)" voc deve atualizar sua
52

IBM

TREINAMENTO LINUX BASICO

base de dados do rpm com o comando:


rpm --rebuilddb
Ou ento voc pode construir uma nova com o comando: rpm --initdb
Para maiores informaes sobre o rpm use o comando:
# man rpm

Fdisk
Criando parties com o fdisk do linux

Este texto foi projetado para iniciantes do linux que no conhecem o fdisk do
linux, que indispensvel, pois ele usado em todas as distribuies (tem distribuies
que tem um programa de parties visual, mas sempre tem a opo do fdisk).
O fdisk uma ferramenta tima para parties ele consegue criar mais de 60
tipos de parties fora as do linux (native linux e linux swap), ele s no permite mudar
o espao de uma partio como no fips ou Partition magic.
Nesse tutorial vo ser usados exemplos somente para as parties do linux.
Vamos supor que eu tenho um HD de 3.2G, e j tenhamos uma partio do
windows (fat 32) com 1.2G.
Se voc der somente fdisk, ele vai por default na /dev/hda1 (primary master),
se caso voc tenha outro HD no /dev/hdb por exemplo, e quiser particion-lo, de um
fdisk /dev/hdb.
53

IBM

TREINAMENTO LINUX BASICO

OBS: o fdisk s pode ser usado pelo root.


Execute o fdisk ir aparecer assim :
[root@localhost /root]# fdisk
Using /dev/hda as default device!
Command (m for help):
De o comando 'm' e teremos a seguinte tela:
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
54

IBM

TREINAMENTO LINUX BASICO

u change display/entry units


v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help):


Para visualizar as parties do HD digite 'p'.
Command (m for help): p
Disk /dev/hda: 128 heads, 63 sectors, 781 cylinders
Units = cylinders of 8064 * 512 bytes
Device Boot

Start

/dev/hda1 *

End

Blocks

Id System

305 1229759+ b Win95 FAT32

Command (m for help):


Device = o partio no caso /dev/hda1
Boot = a partio ativa
Start = o cilindro em que a partio comea
End = o cilindro em que a partio termina
Blocks = sera o espao que a partio esta ocupando
Id = numero das lista de partioes do fdisk 'b'= fat32 (mais a frente voc entender
este)
55

IBM

TREINAMENTO LINUX BASICO

System = o tipo da partio

Neste exemplo iremos adicionar uma Native Linux e uma Linux Swap.
Para adicionar uma nova partio digite 'n', que ficara:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
Aqui voc digite 'p', que ficaria :
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):
Agora escolha o numero da partio:
1 =/dev/hda1, 2 =/dev/hda2, 3 =/dev/hda3, 4=/dev/hda4, se voc quiser ter ainda mais
parties voc ter que fazer uma partio extendida, isso ser explicado mais a frente.
Ento digite 2, porque 1 j existe, que a partio do windows, facar assim:

56

IBM

TREINAMENTO LINUX BASICO

Partition number (1-4): 2


First cylinder (306-781, default 306):
Aqui voc ter que digitar o cilindro de inicio, precione [enter], pois voc pode
ver que o cilindro de inicio no defautl j o "306" (veja acima quando demos o
comando 'p' que o END da fat32 era 305, ento o cilindro de inicio dessa ser 306, e
ficar assim:

First cylinder (306-781, default 306):


Using default value 306
Last cylinder or +size or +sizeM or +sizeK (306-781, default 781):
Aqui voc pode por o valor do espao na partio por diferentes tipos:
+size = valor em bytes
+sizeM = valor em MegaBytes
+sizeK = valor em kbytes
Ou por cilindros, vamos adicionar por MegaByte, digite +1780M que ficar:
First cylinder (306-781, default 306):
Using default value 306
Last cylinder or +size or +sizeM or +sizeK (306-781, default 781): +1780M
Command (m for help):
Agora ns precisamos especificar de qual tipo a partio, ento digite 't', que ficara :
Command (m for help): t
57

IBM

TREINAMENTO LINUX BASICO

Partition number (1-4):


Coloque o nmero da partio, no caso 2:
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes):
Digite 'l', aparecer os tipos de parties que o fdisk do linux pode fazer:
Hex code (type L to list codes): l
0

Empty

16

Hidden FAT16

FAT12

17

Hidden HPFS/NTFS 63

GNU HURD or Sys a7

NeXTSTEP

XENIX root

18

AST Windows swa

64

Novell Netware

b7

BSDI fs

XENIX usr

24

NEC DOS

65

Novell Netware

b8

BSDI swap

FAT16

3c

PartitionMagic

70

DiskSecure Mult c1

DRDOS/sec

40

Venix 80286

75

PC/IX

c4

DRDOS/sec

41

PPC PReP Boot

80

Old Minix

c6

DRDOS/sec

<32M

61

SpeedStor

a6

OpenBSD

(FAT5

Extended

(FAT6

FAT16

(FAT7

HPFS/NTFS

42

SFS

81

Minix / old Lin c7

Syrinx

AIX

4d

QNX4.x

82

Linux swap

db

CP/M / CTOS /

AIX bootable

4e

QNX4.x 2nd part

83

Linux

e1

DOS access

OS/2 Boot Manag 4f

QNX4.x 3rd part

84

OS/2 hidden C:

e3

DOS R/O

58

IBM
b

Win95 FAT32

TREINAMENTO LINUX BASICO

50

OnTrack DM

85

Linux extended

Win95 FAT32 (LB 51

OnTrack DM6 Aux

86

NTFS volume set eb

BeOS fs

Win95 FAT16 (LB 52

CP/M

87

NTFS volume set f1

SpeedStor

Win95 Ext'd (LB 53

OnTrack DM6 Aux

93

Amoeba

f4

SpeedStor

10

OPUS

54

OnTrackDM6

94

Amoeba BBT

f2

DOS secondary

11

Hidden FAT12

55

EZ-Drive

a0

IBM Thinkpad hi fe

LANstep

12

Compaq diagnost 56

Golden Bow

a5

BSD/386

BBT

14

Hidden FAT16 <3

5c

e4

ff

SpeedStor

Priam Edisk

Digite '83' ("83 Linux"):


Hex code (type L to list codes): 83
Command (m for help):
Agora digite 'p' e veja como ficou:
Command (m for help): p
Disk /dev/hda: 128 heads, 63 sectors, 781 cylinders
Units = cylinders of 8064 * 512 bytes
Device Boot

Start

/dev/hda1 *

305 1229759+

306

758 1826496

83 Linux

/dev/hda2

End

Blocks

Id System
Win95 FAT32

Command (m for help):


59

IBM

TREINAMENTO LINUX BASICO

Agora iremos fazer a swap com o restante do espao que sobrou:


Digite 'n' para fazer a partio:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
Digite 'p' e depois ponha o nmero da partio , no caso 3 (/dev/hda3):
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (759-781, default 759):
Digite [enter], pois o default j ta em 759:
First cylinder (759-781, default 759):
Using default value 759
Last cylinder or +size or +sizeM or +sizeK (759-781, default 781):
Como vamos usar o restinho do espao no HD para fazer a swap, nem digite
+sizeM, pois voc pode ver que o ltimo cilidro do HD 781 j esta no default, se voc
digitar [enter] o fdisk ir fazer a swap com o resto de espao que sobrou no HD (o que
no nosso caso a swap ficar com uns 120mb +-).
60

IBM

TREINAMENTO LINUX BASICO

Agora voc digite 't' para especificar o tipo da partio, ponha o numero da
partio (no caso 3) e depois 'l' para visualizar os tipos:
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): l
0

Empty

16

Hidden FAT16

FAT12

17

Hidden HPFS/NTFS 63

GNU HURD or Sys a7

NeXTSTEP

XENIX root

18

AST Windows swa

64

Novell Netware

b7

BSDI fs

XENIX usr

24

NEC DOS

65

Novell Netware

b8

BSDI swap

FAT16

3c

PartitionMagic

70

DiskSecure Mult c1

DRDOS/sec

40

Venix 80286

75

PC/IX

c4

DRDOS/sec

41

PPC PReP Boot

80

Old Minix

c6

DRDOS/sec

<32M

61

SpeedStor

a6

OpenBSD

(FAT5

Extended

(FAT6

FAT16

(FAT7

HPFS/NTFS

42

SFS

81

Minix / old Lin c7

Syrinx

AIX

4d

QNX4.x

82

Linux swap

db

CP/M /

CTOS / .
9

AIX bootable

4e

QNX4.x 2nd part

83

Linux

e1

DOS access

OS/2 Boot Manag 4f

QNX4.x 3rd part

84

OS/2 hidden C:

e3

DOS R/O

Win95 FAT32

OnTrack DM

85

Linux extended

e4

SpeedStor

Win95 FAT32 (LB 51

OnTrack DM6 Aux

86

NTFS volume set eb

BeOS fs

Win95 FAT16 (LB 52

CP/M

87

NTFS volume set f1

SpeedStor
61

50

IBM
f
10

TREINAMENTO LINUX BASICO

Win95 Ext'd (LB 53

OnTrack DM6 Aux

93

Amoeba

f4

SpeedStor

OPUS

54

OnTrackDM6

94

Amoeba BBT

f2

DOS

55

EZ-Drive

a0

IBM Thinkpad hi fe

LANstep

Golden Bow

a5

BSD/386

BBT

secondary
11

Hidden FAT12

12

Compaq diagnost 56

14

Hidden FAT16 <3

5c

ff

Priam Edisk

Hex code (type L to list codes):


Digite '82' (82 Linux swap), e depois 'p' para visualizar como ficou:
Hex code (type L to list codes): 82
Changed system type of partition 3 to 82 (Linux swap)
Command (m for help): p
Disk /dev/hda: 128 heads, 63 sectors, 781 cylinders
Units = cylinders of 8064 * 512 bytes
Device Boot

Start

End

Blocks

Id

System

/dev/hda1 *

305

1229759+

Win95 FAT32

/dev/hda2

306

758

1826496

83

Linux

/dev/hda3

759

781

92736

82

Linux swap

Command (m for help):


Pronto sua parties j esto feitas.
62

IBM

TREINAMENTO LINUX BASICO

Se voc quiser mudar a partio ativa digite 'a' depois o numero da partio,
como a do windows q esta ativa primeiro voc vai ter que digitar 'a' e depois 1, assim
ela serah desativada, depois digite 'a' e 2, para por a Native Linux, digite 'p' para ver
como ficou:
Command (m for help): p
Disk /dev/hda: 128 heads, 63 sectors, 781 cylinders
Units = cylinders of 8064 * 512 bytes
Device Boot Start End

Blocks

/dev/hda1

1229759+ b

/dev/hda2

1 305
*

/dev/hda3

Id

System

306 758

1826496 83

759 781

92736

82

Win95 FAT32
Linux
Linux swap

OBS: O "*" funciona como um "boto power". Estava a fat32 no boot, vc teve
que digitar 'a' e 1 para desativar (como se tivesse desligado o boto) e depois 'a' e 2
para adicionar a native Linux (como voc tivesse ligado o outro boto) se vc no
fizesse o 'a' e 1, e fizesse s o 'a' 2 ficaria assim:
Command (m for help): p
Disk /dev/hda: 128 heads, 63 sectors, 781 cylinders
Units = cylinders of 8064 * 512 bytes
Device Boot Start

End Blocks

Id

System

/dev/hda1 *

305 1229759+ b Win95 FAT32

/dev/hda2 *

306

758 1826496 83 Linux


63

IBM
/dev/hda3

TREINAMENTO LINUX BASICO

759

781 92736

82 Linux swap

Command (m for help):


Isto est errado, por isso que voc deve fazer como expliquei acima.
Para fazer mais que quatro parties com o fdisk voc vai ter que fazer
partio 4 (/dev/hda4) extensivel e dela fazer as outras, o procedimento quase igual
suponhamos que voc tenha mais espao no HD e j tenha 3 parties ento, digite 'n'
depois 'e', assim:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 4
First cylinder (781-915, default 915):
A partir da voc j conhece , ponha o cilindro inicial, o espao ,no tipo voc vai ter que
por 85 (85 Linux extended) olhe na lista, e pronto para fazer as outras o processo o
mesmo da Native Linux e Swap que expliquei acima.
Para sair e salvar as alteraes digite 'w', e para sair e no salvar nada digite 'q'.

Sistemas de arquivos
A lista de sistemas de arquivos suportados pelo Linux muito grande mas, neste
artigo, discutirei somente os mais comuns.
64

IBM

TREINAMENTO LINUX BASICO

Atualmente, uma importante caracterstica dos atuais sistemas de arquivos o


"journaling". Sistemas de arquivos que possuem essa caracterstica so preferidos em
detrimento aos que no possuem.
Journaling um recurso que permite recuperar um sistema aps um desastre no disco
(ex.: quando um disco est sujo) em uma velocidade muito maior que nos sistemas de
arquivos sem journaling.
Segue abaixo uma breve descrio sobre os sistemas de arquivos mais comuns
disponveis para o Linux:

Ext2

O sistema de arquivos ext2 conhecido como "Second Extended FileSystem". Foi


desenvolvido para ser mais "eficiente" que o sistema de arquivos "Minix", seu
antecessor.
O Minix era muito utilizado nas primeiras verses do Linux, e foi utilizado por
muitos anos.
O sistema de arquivos ext2 no possui journaling e foi substitudo pelo ext3.

Ext3
65

IBM

TREINAMENTO LINUX BASICO

O sistema de arquivos ext3 uma verso do ext2 com suporte a journaling. Portanto, o
ext3 tem as mesmas caractersticas do ext2, mas com suporte journaling.
Essa caracterstica foi uma evoluo e tornou o ext3 um sistema de arquivos muito
estvel e robusto.
Como no ext3 s foi adicionado o suporte a journaling, podemos converter um sistema
de arquivos ext2 para ext3, adicionado suporte a journaling, e tambm podemos
converter um sistema de arquivos ext3 para ext2, removendo o suporte a journaling.

ReiserFS

O sistema de arquivos ReiserFS foi criado recentemente. Mas atualmente quase todas
as distribuies Linux o suportam.
Sua performance muito boa, principalmente para um nmero muito grande de
arquivos pequenos.
ReiserFS tambm possui suporte a journaling.
XFS

O sistema de arquivos XFS tambm possui suporte a journaling. Foi desenvolvido


originalmente pela Silicon Graphics e posteriormente disponibilizado o cdigo fonte. O
66

IBM

TREINAMENTO LINUX BASICO

XFS considerado um dos melhores sistemas de arquivos para banco de dados, pois
muito rpido na gravao.
XFS utiliza muitos recursos de cache com memria RAM, e para utilizar XFS
recomendado utilizar sistemas que possuem redundncia de energia.
SWAP

SWAP um espao reservado para troca de dados com a memria RAM.


Em alguns lugares ele no mencionado como um Sistema de Arquivos, mas resolvi
descrever aqui pois faz parte deste artigo.

VFAT

O sistema de arquivos VFAT tambm conhecido como FAT32 (M$ Windows).

O sistema de arquivos VFAT no possui suporte a journaling. utilizado normalmente


para transferir dados entre sistemas M$ Windows e o Linux instalados no mesmo disco,
pois pode ser lido e escrito por ambos os sistemas operacionais.

O sistema de arquivos VFAT est longe de ser um sistema de arquivos utilizado para
Sistemas Linux, exceto para compartilhamento/compatibilidade entre o M$ Windows e
Linux.
Se voc utilizar VFAT no Linux, esteja certo de perder alguns atributos, tais como:
67

IBM

TREINAMENTO LINUX BASICO

permisso de execuo, links simblicos, entre outras coisas.


Ambos os sistemas de arquivos ext3 e ReiserFS so maduros o bastante para serem
utilizados como padro no Linux. Esses dois so os mais utilizados pelas distribuies
Linux.
Criando sistemas de arquivos
Para criar sistemas de arquivos utilizamos o comando mkfs (abreviao de: fazer
sistema de arquivos) e o comando mkswap para fazer espaos para troca de dados
com a memria RAM.
O comando mkfs um "atalho" para vrios outros comandos para criao dos mais
diversos e comuns sistemas de arquivos.
Para saber quais sistemas de arquivos atualmente suportado pelo seu Linux, digite o
comando abaixo:
$ ls /sbin/mk*
/sbin/mkdosfs /sbin/mkfs.ext2 /sbin/mkfs.msdos /sbin/mkfs.xfs
/sbin/mke2fs /sbin/mkfs.ext3 /sbin/mkfs.reiser4 /sbin/mkreiser4
/sbin/mkfs /sbin/mkfs.jfs /sbin/mkfs.reiserfs /sbin/mkreiserfs
/sbin/mkfs.cramfs /sbin/mkfs.minix /sbin/mkfs.vfat /sbin/mkswap
No exemplo acima, esto os sistemas de arquivos suportados pelo meu sistema,
Kubuntu 6.06 LTS Dapper Drake, kernel 2.6.15-23-38.

Existem mais de uma forma/comando para criar um sistema de arquivos.

68

IBM

TREINAMENTO LINUX BASICO

Por exemplo, para criar um sistema de arquivos ext3, na partio /dev/hda4, podemos
utilizar um dos seguintes comandos abaixo:
# mkfs.ext3 /dev/hda4
ou
# mkfs -t ext3 /dev/hda4
ou
# mke2fs -j /dev/hda4
Enfim, a sintaxe para o comando mkfs :
# mkfs [opes] dispositivo [blocos]
Onde:

opes:
o

-t [tipo]: especifica o tipo de sistema de arquivos a ser criado. O padro


ext2;

-c: checa o dispositivo a procura de blocos defeituosos durante a criao


do sistema de arquivos.

dispositivo: o arquivo especial correspondente ao dispositivo;

blocos: quantidade de blocos a ser utilizada pelo sistema de arquivos.

Para mais informaes, consulte o manual do comando mkfs.


Agora vamos prtica
Aviso: lembre-se que, quando voc utiliza o comando mkfs e seus derivados, voc est
"formatando" a partio passada como parmetro. Ento, no utilize o mkfs em
parties que contenham dados importantes. Voc estar apagando os dados da
69

IBM

TREINAMENTO LINUX BASICO

partio.
Abaixo mostrarei alguns exemplos, lembre-se de substituir o nome da partio.
Criando um sistema de arquivos Ext3 na partio /dev/hda4:
# mkfs -t ext3 /dev/hda4
mke2fs 1.38 (30-Jun-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1026144 inodes, 2050295 blocks
102514 blocks (5.00%) reserved for the super user
First data block=0
63 block groups
32768 blocks per group, 32768 fragments per group
16288 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Vamos agora criar um sistema de arquivos ReiserFS na partio /dev/hda3:
70

IBM

TREINAMENTO LINUX BASICO

# mkfs -t reiserfs /dev/hda3


mkfs.reiserfs 3.6.19 (2003 www.namesys.com)
A pair of credits:
Many persons came to www.namesys.com/support.html, and got a question answered
for $25, or just gave us a small donation there.
Oleg Drokin was the debugger for V3 during most of the time that V4 was under
development, and was quite skilled and fast at it. He wrote the large write
optimization of V3.
Guessing about desired format.. Kernel 2.6.15-23-386 is running.
Format 3.6 with standard journal
Count of blocks on the device: 2050288
Number of blocks consumed by mkreiserfs formatting process: 8274
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: da877e16-506d-4687-845a-0bf5eeed7862
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
ALL DATA WILL BE LOST ON '/dev/hda3'!
Continue (y/n):y
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok
Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
71

IBM

TREINAMENTO LINUX BASICO

kernel based on 2.4.9, when you use reiserFS. Have fun.


ReiserFS is successfully created on /dev/hda3.
Vamos agora criar um sistema de arquivos VFAT na partio /dev/hda5:
# mkfs -t vfat /dev/hda5
mkfs.vfat 2.11 (12 Mar 2005)
Todas os sistemas de arquivos acima podem ser montados com a ferramenta "mount"
e includa no arquivo /etc/fstab.
Exemplo:
# mount -t vfat /dev/hda5 /mnt/win
Criando um espao para troca de dados com a memria RAM (SWAP):
Para criar um sistema de arquivos tipo SWAP iremos utilizar a ferramenta mkswap.
necessrio a partio ser do tipo "swap", cdigo 82.
# mkswap /dev/hda6
Configurando rea de troca verso 1, tamanho = 8422617 kB
sem rtulo, UUID=3f8c0bcc-5409-4951-8939-cba0d1e8da71
necessrio ativar a partio de troca com o comando abaixo:
# swapon /dev/hda6
Para desativar utilize o comando:
# swapoff /dev/hda6
72

IBM

TREINAMENTO LINUX BASICO

Enfim, voc pode criar vrios outros sistemas de arquivos de forma similar. Mas
verifique antes se o sistema de arquivos suportado pelo seu kernel e verifique
tambm o tipo da partio a qual voc deseja formatar.
Criando sistema de arquivos em um arquivo:

A criao de sistemas de arquivos no est limitada apenas a parties de disco.


Tambm podemos criar um sistema de arquivos em arquivos.
Vamos utilizar o comando dd para criar um arquivo vazio de 1 GB.
# dd if=/dev/zero of=/tmp/arquivo-ext2 bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
Formatando o arquivo atravs do comando: mkfs
# mkfs -t ext3 /tmp/arquivo-ext3
mke2fs 1.38 (30-Jun-2005)
/tmp/arquivo-ext3 is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
125184 inodes, 250000 blocks
12500 blocks (5.00%) reserved for the super user
73

IBM

TREINAMENTO LINUX BASICO

First data block=0


8 block groups
32768 blocks per group, 32768 fragments per group
15648 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
OBS: Ele primeiro dir que o arquivo arquivo-ext2 no um dispositivo de bloco
especial (uma partio de disco) e perguntar se deve continuar, responda com y para
aceitar mesmo assim.

Montando parties e discos no Linux


Introduo
O uso do GNU/Linux (aqui chamado somente de Linux) cresce a cada dia.
Muitos usurios, ao visitarem sites sobre o sistema operacional ou ao ouvirem o relato
de colegas que j usam o Linux, sentem-se incentivados a experimentarem o sistema.
A grande maioria j tem o sistema operacional Windows instalado e decide
compartilhar o computador tambm com o Linux. Mas quase sempre, o usurio
necessita acessar arquivos presentes na partio do Windows. Isso perfeitamente
possvel, atravs de um processo conhecido como montagem da partio. Algumas
74

IBM

TREINAMENTO LINUX BASICO

distribuies Linux montam as parties Windows automaticamente, mas em outras,


necessrio que o usurio faa isso manualmente. Esse processo simples e ser
explicado aqui. Os procedimentos a seguir devem ser executados como usurio root ou
outro que tenha permisses de administrador.

Discos
O primeiro passo saber como identificar os discos (HD, CD-ROM, disquete) no
Linux. Tais dispositivos, alm de outros (como a porta LPT1) so tidas como existentes
no diretrio /dev/. O HD identificado como o dispositivo hda0 (hdb para outro HD no
mesmo computador e assim por diante). O nmero 0, indica a partio no HD. Com
isso, a segunda partio deve ser identificada como hda1, a terceira como hda2, enfim.
No caso de HDs SCSI, as letras hd devem ser trocadas por sd, ficando da seguinte
forma: sda0, sda1, sda2, etc.
No caso do drive de disquete, a sigla para sua identificao fd0. Se houver
outro drive, este deve ser identificado como fd1. No caso dos CD-ROMS, eles so
identificados como HDs. Assim, se por exemplo, em seu computador h um HD e um
CD-ROM, o HD poder ser reconhecido como hda e o CD como hdb.
Montando a partio
Para a partio Windows, voc deve saber qual das existentes ela. Em nosso
exemplo, vamos supr que o Windows est na partio hda0 e o Linux na partio
hda1. Tendo cincia disso, agora necessrio que voc crie um diretrio no Linux por
onde a partio Windows dever ser acessada, ou seja, o ponto de montagem.
Geralmente, este diretrio criado dentro da pasta /mnt/ mas pode ser criado em outro.
Para o nosso exemplo, vamos chamar este diretrio de win. Assim, seu caminho
/mnt/win.
75

IBM

TREINAMENTO LINUX BASICO

O prximo passo comando de montagem:


mount - t [tipo] [caminho da partio] [ponto de montagem]
Em nosso exemplo, o comando acima ficaria assim:
mount -t vfat /dev/hda1 /mnt/win
O tipo indica o sistema de arquivos utilizados na partio. Parties fat e fa32
so identificados como vfat. No caso de CD-ROM, o tipo deve ser especificado como
iso9660. Por exemplo: mount -t iso9660 /dev/hdb /mnt/cdrom. As parties NTFS
podem, teriocamente, serem montadas do mesmo jeito. No entanto, existem problemas
de compatibilidade entre o kernel do Linux e o sistema de arquivos NTFS, motivo pelo
qual, a montagem desse tipo de partio deve seguir procedimentos especiais, que no
sero explicadas aqui. Se a partio que voc deseja montar for ext2 ou ext3, basta
especificar estes nomes como tipo.
Montando automaticamente
Os passos explicados anteriormente devem ser repetidos toda vez que voc
usar o Linux. Para evitar isso, possvel montar a partio automaticamente, durante o
processo de inicializao. Para isso, basta localizar o arquivo fstab. Geralmente ele se
encontra dentro do diretrio /etc/. Abra o arquivo e adicione a seguine linha no final
(para o nosso exemplo):
/dev/hda1 /mnt/win vfat defaults 0 0
Agora vamos entend-lo. A sintaxe da linha :
[caminho da partio] [ponto de montagem] [tipo] [opes] [ordem]
O campo opes tem as seguintes possibidades:
76

IBM

TREINAMENTO LINUX BASICO

defaults - usa valores padres de montagem;


noauto - no monta os dispositivos durante a inicializao. Indicado para drives de
disquetes e de CDs;
ro - monta somente como leitura;
user - d permisso de montagem aos demais usurios do sistema;
sync - acrescenta atributos para o perfeito funcionamento de dispositivos mveis, como
disquetes e zip drives.
possvel usar mais de uma opo ao mesmo tempo, bastando separ-las por
vrgula. Por exemplo:
/dev/hda1 /mnt/win vfat ro,user 0 0
O campo ordem indica em que seqncia os sistemas de arquivo sero
verificados. Se deixar o campo em 0 (zero), esse procedimento no ser executado.
Sendo assim, na maioria dos casos basta deixar neste valor.
Depois que o arquivo fstab tiver sido alterado, na prxima inicializao, a
montagem ocorrer automaticamente, exceto se algum passo foi executado de forma
errada.
Desmontando parties
Para desmontar uma partio, basta digitar o comando umount mais o caminho
da partio. Por exemplo:
umount /dev/hda1

77

IBM

TREINAMENTO LINUX BASICO

Em alguns casos, pode ser necessrio digitar o ponto de montagem ao invs do


caminho da partio:
umount /mnt/win
Finalizando
Este capitulo mostrou os procedimentos bsicos para montagem de parties no
Linux. Os comandos mount e umount, assim como o arquivo fstab, possuem outros
recursos, que podem ser verificados atravs da ajuda dos mesmos em seu Linux.

Processos
Introduo
Nos sistemas operacionais, um processo a forma de representar um programa
em execuo. o processo que utiliza os recursos do computador - processador,
memria, etc - para a realizao das tarefas para as quais a mquina destinada. A
seguir, voc ver os principais conceitos relacionados a processos no Linux e as
ferramentas usadas para manipul-los e gerenci-los.
Composio de um processo

O sistema operacional lida com uma infinidade de processos e, por isso, necessrio
ter meios que permitam control-los. Para isso, os processos contam com um conjunto
de caractersticas, dentre as quais:

Proprietrio do processo;

Estado do processo (em espera, em execuo, etc);

Prioridade de execuo;

Recursos de memria.
78

IBM

TREINAMENTO LINUX BASICO

O trabalho de gerenciamento de processos precisa contar com as informaes acima e


com outras de igual importncia para que as tarefas sejam executadas da maneira
mais eficiente. Um dos meios usados para isso atribuir a cada processo um PID.
PID e PPID

Um PID (Process Identifier) um nmero de identificao que o sistema d a cada


processo. Para cada novo processo, um novo nmero deve ser atribudo, ou seja, no
se pode ter um nico PID para dois ou mais processos ao mesmo tempo.

Os sistemas baseados em Unix precisam que um processo j existente se duplique


para que a cpia possa ser atribuda a uma tarefa nova. Quando isso ocorre, o
processo "copiado" recebe o nome de "processo pai", enquanto que o novo
denominado "processo filho". nesse ponto que o PPID (Parent Process Identifier)
passa a ser usado: o PPID de um processo nada mais do que o PID de seu processo
pai.
UID e GID

Conforme j mencionado, cada processo precisa de um proprietrio, um usurio que


seja considerado seu dono. A partir da, o sistema saber, atravs das permisses
fornecidas pelo proprietrio, quem pode e quem no pode executar o processo em
questo. Para lidar com os donos, o sistema usa os nmeros UID e GID.
O Linux gerencia os usurios e os grupos atravs de nmeros conhecidos como UID
(User Identifier) e GID (Group Identifier). Como possvel perceber, UID so nmeros
de usurios e GID so nmeros de grupos. Os nomes dos usurios e dos grupos
servem apenas para facilitar o uso humano do computador.
79

IBM

TREINAMENTO LINUX BASICO

Cada usurio precisa pertencer a um ou mais grupos. Como cada processo (e cada
arquivo) pertence a um usurio, logo, esse processo pertence ao grupo de seu
proprietrio. Assim sendo, cada processo est associado a um UID e a um GID.
Os nmeros UID e GID variam de 0 a 65536. Dependendo do sistema, o valor limite
pode ser maior. No caso do usurio root, esses valores so sempre 0 (zero). Assim,
para fazer com que um usurio tenha os mesmos privilgios que o root, necessrio
que seu GID seja 0.
Sinais de processos

Os sinais so meios usados para que os processos possam se comunicar e para que o
sistema possa interferir em seu funcionamento. Por exemplo, se o usurio executar o
comando kill para interromper um processo, isso ser feito por meio de um sinal.
Quando um processo recebe um determinado sinal e conta com instrues sobre o que
fazer com ele, tal ao colocada em prtica. Se no houver instrues prprogramadas, o prprio Linux pode executar a ao de acordo com suas rotinas.
Entre os sinais existentes, tem-se os seguintes exemplos:

STOP - esse sinal tem a funo de interromper a execuo de um processo e s


reativ-lo aps o recebimento do sinal CONT;

CONT - esse sinal tem a funo de instruir a execuo de um processo aps


este ter sido interrompido;

SEGV - esse sinal informa erros de endereos de memria;

TERM - esse sinal tem a funo de terminar completamente o processo, ou seja,


este deixa de existir aps a finalizao;
80

IBM

TREINAMENTO LINUX BASICO

ILL - esse sinal informa erros de instruo ilegal, por exemplo, quando ocorre
diviso por zero;

KILL - esse sinal tem a funo de "matar" um processo e usado em momentos


de criticidade.

O kill tambm um comando que o usurio pode usar para enviar qualquer sinal,
porm, se ele for usado de maneira isolada, ou seja, sem o parmetro de um sinal, o
kill por padro executa o sinal TERM.
A sintaxe para a utilizao do comando kill a seguinte:
kill -SINAL PID
Como exemplo, vamos supor que voc deseja interromper temporariamente a
execuo do processo de PID 4220. Para isso, pode-se usar o seguinte comando:
$ kill -STOP 4220
Para que o processo 4220 volte a ser executado, basta usar o comando:
$ kill -CONT 4220

Se o sinal precisa ser enviado a todos os processos, pode-se usar o nmero -1 no


lugar do PID. Por exemplo:

$ kill -STOP -1

Como j dito, usar o comando kill isoladamente - por exemplo, kill 4220 - faz com que
81

IBM

TREINAMENTO LINUX BASICO

este use o sinal TERM por padro. Esse sinal, no entanto, pode ser ignorado pelos
processos. por isso que boa prtica usar o comando "kill -9 PID" para "matar" um
processo, pois o nmero nove representa o sinal kill e este no pode ser ignorado. Isso
deixa claro que se voc conhecer o nmero que atribudo a um sinal, voc pode uslo no lugar de seu nome. Com exceo de alguns sinais, a numerao de cada um
pode mudar de acordo com a distribuio ou com a verso do kernel.

Agora, imagine que voc no saiba qual o PID de um processo e tenha se esquecido
que o comando ps (visto mais frente) descobre tal informao. Neste caso, pode-se
usar o comando killall, desde que voc saiba o nome do processo. A sintaxe :

killall -SINAL processo

Por exemplo:

$ killall -STOP vi
Estado dos processos
Quando um processo criado, isso no significa que ele ser imediatamente
executado. Alm disso, determinados processos podem ser temporariamente
paralisados para que o processador possa executar um processo prioritrio. Isso quer
dizer que os processos, em certos momentos, podem estar em situaes de execuo
diferentes. O Linux trabalha, essencialmente, com quatro tipos de situao, isto ,
estados:
Executvel: o processo pode ser executado imediatamente;
82

IBM

TREINAMENTO LINUX BASICO

Dormente: o processo precisa aguardar alguma coisa para ser executado. S


depois dessa "coisa" acontecer que ele passa para o estado executvel;
Zumbi: o processo considerado "morto", mas, por alguma razo, ainda existe;
Parado: o processo est "congelado", ou seja, no pode ser executado.
Comandos nice e renice
Ao abordarmos os comandos nice e renice necessrio entender o conceito de
gentileza. Um processo pode ter prioridade em relao a outros em sua execuo.
Quando um processo gentil, significa que ele "oferece a gentileza" de permitir que um
processo com prioridade maior que a sua seja executado antes dele. Os nveis de
gentileza, tambm chamados de nice, so determinados atravs de nmeros. Quanto
mais alto for o valor nice, mais gentil o processo. Geralmente, o intervalo de nmeros
usados no nice so os inteiros entre -19 e 19.
Embora determinar a prioridade de um processo no seja uma prtica comum, afinal, o
prprio Linux faz muito bem essa tarefa, isso pode ser necessrio em alguma situao.
Para isso, utiliza-se um comando que recebe o mesmo nome do conceito: nice. A
sintaxe :
nice -n prioridade processo
Por exemplo:
$ nice -n -5 ntpd
No exemplo, o ntpd recebe prioridade -5. Trata-se de uma prioridade alta, afinal, como
j dito, quanto menor o nmero menor sua gentileza.
Se um determinado processo est em execuo, isso acontece com uma prioridade j
definida. Para alterar um processo nessa condio, usa-se o comando renice, cuja
83

IBM

TREINAMENTO LINUX BASICO

sintaxe

$ renice prioridade opo processo/destino

As opes do renice so:


-u - a alterao ocorrer nos processos do usurio informado;
-g - a alterao ocorrer nos processos do grupo indicado;
-p - a alterao ocorrer no processo cujo PID for informado.
Um exemplo:
$ renice +19 1000 -u vol
Neste caso, o comando renice alterou a prioridade do processo 1000, assim como a
prioridade dos processos do usurio vol.

Verificando processos com o ps

O ps um comando de extrema importncia para o gerenciamento de processos. Por


ele, possvel saber quais os processos em execuo atualmente, quais os UIDs e
PIDs correspondentes, entre outros.
Se somente ps for digitado na linha de comando, geralmente o sistema mostra quais os
processos do usurio. preciso usar uma combinao de opes para obter mais
detalhes.
As opes mais importantes so os seguintes:
84

IBM

TREINAMENTO LINUX BASICO

a - mostra todos os processos existentes;


e - exibe as variveis de ambiente relacionadas aos processos;
f - exibe a rvore de execuo dos processos;
l - exibe mais campos no resultado;
m - mostra a quantidade de memria ocupada por cada processo;
u - exibe o nome do usurio que iniciou determinado processo e a hora em que
isso ocorreu;
x - exibe os processos que no esto associados a terminais;
w - se o resultado de processo no couber em uma linha, essa opo faz com
que o restante seja exibido na linha seguinte.
Das opes acima, a combinao mais usada aux:
$ ps aux
Como exemplo, o resultado obtido com esse comando foi o seguinte:

85

IBM

TREINAMENTO LINUX BASICO

Note que usando a combinao lax, o resultado mostra mais detalhes:


$ ps lax

A seguir, segue a descrio dos campos mostrados anteriormente e alguns que s so


mostrados com a combinao lax:
USER - nome do usurio dono do processo;
86

IBM

TREINAMENTO LINUX BASICO

UID - nmero de identificao do usurio dono do processo;


PID - nmero de identificao do processo;
PPID - nmero de identificao do processo pai;
%CPU - porcentagem do processamento usado;
%MEM - porcentagem da memria usada;
VSZ - indica o tamanho virtual do processo;
RSS - sigla de Resident Set Size, indica a quantidade de memria usada (em
KB);
TTY - indica o identificador do terminal do processo;
START - hora em que o processo foi iniciado;
TIME - tempo de processamento j consumido pelo processo;
COMMAND - nome do comando que executa aquele processo;
PRI - valor da prioridade do processo;
NI - valor preciso da prioridade (geralmente igual aos valores de PRI);
WCHAN - mostra a funo do kernel onde o processo se encontra em modo
suspenso;
STAT - indica o estado atual do processo, sendo representado por uma letra: R executvel; D - em espera no disco; S - Suspenso; T - interrompido; Z - Zumbi.
Essas letras podem ser combinadas e ainda acrescidas de: W - processo
paginado em disco; < - processo com prioridade maior que o convencional; N processo com prioridade menor que o convencional; L - processo com alguns
recursos bloqueados no kernel.

Verificando processos com o top


O comando ps trabalha como se tirasse uma fotografia da situao dos processos
naquele momento. O comando top, por sua vez, coleta as informaes, mas as atualiza
regularmente.

Geralmente

essa

atualizao

ocorre

cada

10

segundos.
87

IBM

TREINAMENTO LINUX BASICO

A sintaxe do comando top a seguinte:


top opo
Entre as opes, tem-se as que se seguem:
-d - atualiza o top aps um determinado perodo de tempo (em segundos). Para
isso, informe a quantidade de segundos aps a letra d. Por exemplo: top -d 30;
-c - exibe a linha de comando ao invs do nome do processo;
-i - faz o top ignorar processos em estado zumbi;
-s - executa o top em modo seguro.
possvel manipular alguns recursos do comando top atravs das teclas do teclado.
Por exemplo, para atualizar imediatamente o resultado exibido, basta pressionar a tecla
de espao. Se pressionar a tecla q, o top finalizado. Pressione a tecla h enquanto
estiver utilizando o top para ver a lista completa de opes e teclas de atalho.

88

IBM

TREINAMENTO LINUX BASICO

Os recursos jobs, fg e bg, fuser, pstree, nohup


Para ter ainda mais controle sobre os processos executados no Linux, pode-se utilizar
os seguintes comandos: jobs, fg e bg, fuser, pstree, nohup. Cada um descrito a
seguir:

89

IBM

TREINAMENTO LINUX BASICO

jobs

Serve para visualizar os processos que esto parados ou executando em segundo


plano (background). Quando um processo est nessa condio, significa sua execuo
feita pelo kernel sem que esteja vinculada a um terminal. Em outras palavras, um
processo em segundo plano aquele que executado enquanto o usurio faz outra
coisa no sistema. Uma dica para saber se o processo est em background verificar a
existncia do caractere & no final da linha. Se o processo estiver parado, geralmente a
palavra "stopped" aparece na linha, do contrrio, a palavra "running" exibida. A
sintaxe do jobs :
jobs -opo

As opes disponveis so:


-l - lista os processos atravs do PID;
-r - lista apenas os processos em execuo;
-s - lista apenas os processos parados.
Se na linha de um processo aparecer o sinal positivo (+), significa que este o
processo mais recente a ser paralisado ou a estar em segundo plano. Se o sinal for
negativo (-), o processo foi o penltimo. Note tambm que no incio da linha um nmero
mostrado entre colchetes. Muitos confundem esse valor com o PID do processo,
mas, na verdade, trata-se do nmero de ordem usado pelo jobs.

fg e bg

O fg um comando que permite a um processo em segundo plano (ou parado) passar


90

IBM

TREINAMENTO LINUX BASICO

para o primeiro (foreground), enquanto que o bg passa um processo do primeiro plano


para o segundo. Para usar o bg, deve-se paralisar o processo. Isso pode ser feito
pressionando-se as teclas Ctrl + Z no teclado. Em seguida, digita-se o comando da
seguinte forma:

bg +nmero

O nmero mencionado corresponde ao valor de ordem informado no incio da linha


quando o comando jobs usado.

Quanto ao comando fg, a sintaxe a mesma:

fg +nmero
fuser

O comando fuser mostra qual processo faz uso de um determinado arquivo ou


diretrio. Sua sintaxe :
fuser -opo caminho (do arquivo ou diretrio)
Entre as opes, tem-se:
-k - finaliza o processo que utiliza o arquivo/diretrio em questo;
-i - deve ser usada em conjunto com a opo k e serve para perguntar se a
finalizao do processo deve ser feita;
-u - mostra o proprietrio do processo;
-v - o resultado mostrado em um padro de exibio semelhante ao comando
91

IBM

TREINAMENTO LINUX BASICO

ps.
pstree

Esse comando mostra processos relacionados em formato de rvore. Sua sintaxe :


pstree -opo PID
Entre as opes, tem-se:

-u - mostra o proprietrio do processo;

-p - exibe o PID aps o nome do processo;

-c - mostra a relao de processos ativos;

-G - usa determinados caracteres para exibir o resultado em um formato grfico.

Um detalhe importante: se ao digitar o comando pstree o PID no for informado, todos


os processos sero listados.

92

IBM

TREINAMENTO LINUX BASICO

nohup

O comando nohup possibilita ao processo ficar ativo mesmo quando o usurio faz
logout. da natureza dos sistemas baseados em Unix interromper processos caso seu
proprietrio no esteja mais ativo, por isso, o nohup pode ser muito til. Sua sintaxe :

93

IBM

TREINAMENTO LINUX BASICO

nohup comando
Finalizando

Saber lidar com processos pode ser crucial para manter um computador funcionando e
executando suas tarefas numa situao crtica. O assunto essencial a
administradores de sistemas, mas importante at mesmo ao usurio domstico.
Obviamente que o controle de processos no se resume aos recursos citados aqui,
uma vez que este artigo deve ser interpretado como um guia bsico. Alm disso, se
voc pretende obter algum certificado em Linux, ter conhecimento sobre o controle de
processos pode lhe dar pontos significativos. Por isso, no hesite em explorar os
comandos. Se quiser mais detalhes, use os recursos de ajuda, como o tradicional "man
comando".

94

Você também pode gostar