Escolar Documentos
Profissional Documentos
Cultura Documentos
450 Linux Essentials (+atualizado 2012) PDF
450 Linux Essentials (+atualizado 2012) PDF
Linux Essentials
www.4linux.com.br
Contedo
GNU/Linux: A Origem 2
2.1 Conhecendo um Novo Mundo . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Distribuies GNU/Linux . . . . . . . . . . . . . . . . . . . . 5
Distribuies Livres de Custos . . . . . . . . . . . . . . . . . . 6
Distribuies Corporativas . . . . . . . . . . . . . . . . . . . . 6
Distribuies Convencionais . . . . . . . . . . . . . . . . . . . 7
Distribuies Live . . . . . . . . . . . . . . . . . . . . . . . . . 7
Distribuies From Scratch . . . . . . . . . . . . . . . . . . . . 7
Distribuies Provenientes (Baseadas) . . . . . . . . . . . . . 8
2
GNU/Linux: A Origem
Utilizar um sistema GNU/Linux muito mais do que optar por uma soluo isenta de
custos de licena. usufruir de uma filosofia que antecedeu o software proprietrio,
e que permitiu, por exemplo, que a Internet crescesse de forma livre como a conhece-
mos hoje. Como usurio de Software Livre, precisamos compreender um pouco mais
sobre essa ideologia e como ela promoveu o surgimento das vrias distribuies.
GNU, que um acrnimo recursivo de GNUs Not Unix. Trata-se, de um grupo que
foi fundado em 1984 por seu idealizador, Richard Stallman, com o intuito de criar
um sistema operacional Unix-like desprovido de amarras e travas ao seu uso. Os
desenvolvedores GNU criaram uma srie de programas bsicos para um sistema
operacional funcional, como editores de texto e compiladores. Entretanto, havia um
pedao de cdigo essencial, que ainda no tinha sido criado: o kernel.
3
2.1 Conhecendo um Novo Mundo 4Linux www.4linux.com.br
uma filosofia de Mundo Livre e colaborativo, no qual as pessoas podem utilizar esses
softwares irrestritamente, acima de tudo, aprender com eles, uma vez que seu cdigo
fonte deve ser disponvel a todos que queiram melhor-lo ou apenas aprender com
ele. Para que esse mundo continue livre, Richard Stallman fundou a FSF - Free
Software Foundation, que criou e mantm a licena GNU GPL - GNU General
Public License. Esta licena define, de modo simplificado, que o Software deve
respeitar quatro princpios bsicos, aqui chamados de liberdades. So elas:
Atualmente a GPL est disponvel em trs verses, GPLv1, GPLv2 e GPLv3. Fique
por dentro de suas diferenas em:
http://www.gnu.org/licenses/gpl.html
http://www.gnu.org/licenses/gpl-howto.pt-br.html
Para mais informaes a respeito do kernel - Linux - podem ser obtidas no site oficial
de seus mantenedores:
http://www.kernel.org
Informaes sobre os projetos GNU e FSF podem ser obtidas nos seus respectivos
sites:
http://www.gnu.org http://www.fsf.org
Voc j deve ter ouvido falar em Debian, RedHat, Slackware, Suse, Mandriva, Ubuntu,
CentOS dentre outras. Mas, o que realmente isso? O que so todos esses no-
mes? Essas so distribuies GNU/Linux. Uma distribuio nada mais do que o
kernel Linux, softwares GNU e outros outros aplicativos que so desenvolvidos por
outras comunidades ou grupos, reunidos em um sistema operacional que tem pecu-
liaridades que o diferencia de outros sistemas operacionais GNU/Linux, fazendo-os
nicos.
Mas, por que existem tantas distribuies? Justamente porque se voc no se iden-
tifica com nenhuma delas, voc livre para fazer a sua prpria. Por exemplo, em
1993, um rapaz chamado Patrick Volkerding, juntou o kernel e vrios outros aplicati-
vos em uma distribuio chamada Slackware, que foi a primeira a ser distribuda em
CD. A partir desse ponto, foram surgindo diversas outras distribuies que de alguma
forma diferiam da filosofia do Slackware: como Debian ou RedHat.
Distribuies Corporativas
Mantidas por empresas que vendem o suporte ao seu sistema. Exemplos: RedHat,
Ubuntu, Suse e Mandriva.
a liberdade do software, garantida pela licena GPL, que perpetua o respeito dos
direitos definidos pela FSF. Isso porque, pela definio de Software Livre, nunca, em
hiptese alguma, permitido que o cdigo fonte seja negado ao cliente, ao receptor
do Software. Assim, por mais que uma empresa queira cobrar por suas verses
Distribuies Convencionais
Distribuies Live
Para entender um pouco mais sobre distribuies, necessrio lembrar de mais duas
caractersticas:
www.4linux.com.br
Contedo
2
Primeiros Passos
importante entender cada uma dessas camadas para compreender o conjunto que
chamamos de Sistema Operacional.
Hardware - Dispositivos que esto disponveis para o uso do sistema, tais como
cd-rom, placa de rede, controladora SCSI entre outros;
3
3.1 Introduo terica 4Linux www.4linux.com.br
Kernel - O ncleo do sistema operacional, essa layer quem faz todas as intera-
es com o hardware da mquina, interpretando requisies feitas pelas camadas
acima desta;
Sistema Operacional - Essa layer tem como funo auxiliar e abrigar todos os
aplicativos das camadas superiores. Segundo Linus Torvalds essa layer no deve
ser notada pelo usurio final;
O GNU/Linux possui mais de 63 terminais virtuais, mas deles, apenas 6 esto dis-
ponveis, inicialmente por motivos de economia de memria RAM. Se voc estiver
usando o modo grfico, deve segurar Ctrl + Alt enquanto pressiona uma tecla de
atalho de F1 a F6.
3.1.2 Logon
Logon a entrada do usurio, seja root ou comum, onde deve ser digitado seu
nome de usurio e logo depois sua senha. Caso voc digite algo de forma errada,
ir aparecer uma mensagem de erro e voc no ser logado autenticado - no
sistema.
3.1.3 Shell
O local onde o comando ser digitado marcado por um trao piscante na tela, cha-
mado de cursor. Tanto em Shell texto como em Shell grfico necessrio o uso
do cursor para saber onde devemos iniciar a digitao de textos e nos orientarmos
quanto posio na tela.
Outra funcionalidade muito utilizada, serve para rolar a nossa tela de modo que pos-
samos ir para cima ou para baixo, parecido com o scroll Para rolarmos a tela para
cima, segura-se a tecla Shift e pressionamos o Page Up. Para rolarmos a tela
para baixo, segura-se a tecla Shift e pressionamos o Page Down. Isto til para
ver textos que rolaram rapidamente para cima e saram do nosso campo de viso.
1 $ su
Existem dois comandos, "whoami"e "who am i"que lhe permite saber quem voc
em determinado momento. A sequncia de comandos abaixo esclarece o uso e
finalidade destes dois comandos claramente:
1 # whoami
2 # who am i
O comando whoami indica quem voc no momento root. Se voc utilizou o co-
mando "su"para tornar-se outro usurio o comando "who am i"informa quem voc
realmente aluno, pois foi com ele que voc se logou na mquina antes de trocar
de usurio.
Ele tambm pode ser utilizado para trocar de usurio, ele no pedir a senha se voc
for usurio root:
1 # su - aluno
1 $ su -
1 # loadkeys -d br - abnt2
1 # loadkeys -d us - acentos
Comando history
O terminal do GNU/Linux permite que voc guarde 500 comandos por padro no
Debian e 1000 comandos no CentOS.
1 # history
Comando fc
FC significa Find Command ou Fix Command pois ele executa as duas tare-
fas, encontrar e corrigir comandos. Para listar os comandos j digitados, guardados
no history, digite:
1 # fc -l
Por padro mostra os ltimos 16 comandos. Para visualizar uma lista de comandos
do 2 ao 6 faa:
1 # fc -l 2 6
1 # fc -l -20
1 # fc -l h
3.1.7 Logout
1 $ logout
2 $ exit
3 $ <CTRL >+ D
Para desligar o computador, pode-se utilizar um dos comandos abaixo, sempre que
se esteja com o nvel de usurio root:
1 # shutdown -h now
2 # halt
3 # poweroff
A palavra halt vem do comando em assembly chamado HTL, que quer dizer pa-
rada de processamento. Assim, o GNU/Linux finalizar os programas e gravar os
dados remanescentes na memria no disco rgido. Quando for mostrada a mensa-
gem power down, pressione o boto POWER em seu gabinete para desligar a
alimentao de energia do computador. Nunca desligue o computador diretamente
sem utilizar um dos comandos shutdown, halt ou poweroff, pois podem ocor-
rer perdas de dados ou falhas no sistema de arquivos de seu disco rgido, devido
a programas abertos e dados ainda no gravados no disco. Os comandos halt e
poweroff disparam uma srie de procedimentos, como encerramento de servios
e desligamento de sistemas de arquivos, que so executados antes da mquina ser
desligada.
tempo - tempo em minutos que voc deseja para comear a executar a ao.
mensagem - Mensagem que voc quer disparar para todos os terminais logados
com o objetivo de avisar aos usurios que o sistema ser desligado ou reiniciado.
Exemplos
Desligar agora:
1 # shutdown -h now
Ou
1 # shutdown -h 0
Desligar daqui 12 minutos notificando os demais usurios logagos com uma mensa-
gem:
1 # shutdown -c
Exemplos
Reiniciar agora:
1 # shutdown -r now
Ou
1 # shutdown -r 0
O comando pwd exibe o diretrio corrente. Ele muito til quando estamos nave-
gando pelo sistema e no lembramos qual o diretrio atual.
1 # pwd
1 # ls
Exemplos
1 # cd
2 # cd ~
1 # cd /
1 # cd / etc
1 # cd ..
1 # cd -
1 # cd ../../
Diretrio . e ..
Atalhos do bash
Pressione as teclas Ctrl + c para abrir uma nova linha de comando, na posi-
o atual do cursor;
Essa ajuda provida por meio dos manuais, as famosas Man Pages.
20
4Linux www.4linux.com.br 4.3 Formas de Documentao
4.3.1 How-tos
Na Internet existem diversos sites de how-tos para GNU/Linux. Dentre eles o mais
conhecido no Brasil o Viva o Linux, conhecido tambm como VOL:
http://www.vivaolinux.com.br
4.3.2 Manuais
4.3.3 Documentao
Para visualizar uma ajuda rpida para todos os comandos internos do sistema, po-
demos fazer da seguinte forma:
1 # help
Caso desejemos visualizar a ajuda rpida para somente um comando interno, usa-
mos esta outra sintaxe:
1 # help [ comando ]
1 # help type
1 # help help
1 # [ comando ] -- help
Desse modo, caso desejemos visualizar uma ajuda rpida sobre um comando ex-
terno, devemos fazer da seguinte forma:
1 # ls -- help
O parmetro help pode ser utilizado em qualquer comando para ter uma consulta
rpida dos parmetros que ele pode nos oferecer. importante entender que help
na verdade um parmetro individual de cada comando, logo se um comando no
tiver esse parmetro existem outros meios para se obter ajuda. No se esquea de
estudar as diferenas entre comandos internos e externos.
Imagine que voc precise editar um arquivo, mas no sabe qual editor utilizar. Exe-
cute o apropos para procurar algum comando ou manual de um comando para edi-
o:
1 # apropos editor
1 # man -k editor
1 # whatis [ comando ]
Voc sabe que tem um programa chamado vim, mas no sabe o que ele faz?
1 # whatis vim
1 # man -f vim
Debian:
1 # catman
CentOS:
1 # makewhatis -v
comum o exame cobrar mais dos nveis 1, 5 e 8 dos manuais! Ento lembre-
se de estudar binrios, arquivos de configurao e comandos administrativos.
1 # man [ comando ]
ou
1 # man [ se o ] [ comando ]
1 # man passwd
Para navegar pelo manual, o comando man abre um arquivo que est compac-
tado na pasta /usr/share/man/man1 para o passwd. Outros nveis de manuais,
dependem do comando ou arquivo.
1 # man 5 passwd
Dentro desse diretrio possvel ver todas as divises dos manuais: os nveis, os
idiomas e mais. Todos os nveis de manuais possuem sua determinada introduo
que pode ser vista com o comando:
Podemos ver os manuais em diversos idiomas diferentes, desde que o pacote para o
idioma escolhido esteja instalado. Se nosso sistema estiver instalado em portugus,
o comando man ir trazer todas os manuais disponveis em portugus.
1 # man 7 undocumented
Podemos ver que para visualizar o manual do arquivo de usurio passwd precisa-
mos informar em qual nvel de manual ele se encontra, pois j existe um passwd
no nvel 1, que o comando, ento ele aparece primeiro quando digitamos man
passwd sem indicar o nvel. Esse manual do arquivo passwd est compactado na
pasta /usr/share/man/man5.
A navegao nas info pages feita atravs de nomes marcados com um * (hi-
pertextos) que, ao pressionarmos Enter, nos leva at a seo correspondente, e
Backspace volta pgina anterior. Algo parecido com a navegao na Internet.
1 # info
1 # info [ comando ]
1 # info vim
Para obter uma melhor visualizao, duas ferramentas de documentao foram de-
senvolvidas:
xman -> Front-end para o comando man, que facilita a consulta das man pages;
(fornecido pelo pacote x11-apps)
ou
1 # whereis vim
1 # which vi
www.4linux.com.br
Contedo
2
4Linux www.4linux.com.br Contedo
Uma das tantas vantagens do GNU/Linux a variedade de comandos que ele ofe-
rece, afinal, para quem conhece comandos, a administrao do sistema acaba se
tornando um processo mais rpido.
4.1.1 O comando ls
4
4Linux www.4linux.com.br 4.1 Introduo terica
1 # ls -l /
2 drwxr -xr - x4 root root 1024 2007 -01 -15 23:17 boot
Veja que a sada desse comando bem detalhada. Falando sobre os campos, para
o primeiro caractere temos algumas opes:
FIFO - Sigla para First In, First Out, que em ingls significa primeiro a entrar, pri-
meiro a sair. So amplamente utilizados para implementar filas de espera. Os ele-
mentos vo sendo colocados no final da fila e retirados por ordem de chegada. Pipes
(|) so um exemplo de implementao de FIFO.
Buffer - uma regio de memria temporria, usada para escrita e leitura de dados.
Normalmente, os buffers so utilizados quando existe uma diferena entre a taxa em
que os dados so recebidos e a taxa em que eles podem ser processados.
sistema, o usurio root. O nmero antes do dono indica o nmero de hard links,
um assunto abordado apenas em cursos mais avanados.
1
2 # ls -a / root
3 .. aptitude . bashrc . profile . rnd . ssh . vmware
4 .. . bash_history . kde . qt root_161206 . viminfo . Xauthority
Veja que, da sada do comando anterior, alguns arquivos so iniciados por . (ponto).
Esses arquivos so ocultos. No Linux, arquivos e diretrios ocultos so iniciados
por um . (ponto). Listar arquivos de forma recursiva, ou seja, listar tambm os
subdiretrios que esto dentro do diretrio /:
1 # ls -R /
Como listar os arquivos que terminam com a palavra .conf dentro do diretrio
/etc?
Como buscar no diretrio raiz / todos os diretrios que terminem com a letra n?
1 # ls -ld /* n
1 # cd / srv
2 # touch procedimentos . txt
3 # touch contas . pdf contas2 . pdf contas3 . pdf contas4 . pdf
4.1.3 Curingas
Eles podem substituir uma palavra completa ou somente uma letra, seja para listar,
copiar, apagar, etc. So usados cinco tipos de curingas no GNU/Linux:
DICA: - A barra invertida serve para escapar um caracter especial, ela co-
nhecida tambm como backslash.
1 # cd / srv
2 # touch curriculo {1 ,2 ,3}. txt curriculo {4 ,5}. new
1 # ls
2 curriculo1 . txt curriculo2 . txt curriculo3 . txt curriculo4 . new
curriculo5 . new
Vamos listar todos os arquivos do diretrio /srv. Podemos usar o curinga * para
visualizar todos os arquivos do diretrio:
1 # ls *
2 curriculo1 . txt curriculo2 . txt curriculo3 . txt curriculo4 . new
curriculo5 . new
Para listarmos todos os arquivos do diretrio /srv que tenham new no nome:
1 # ls * new *
2 curriculo4 . new curriculo5 . new
Listar todos os arquivos que comeam com qualquer nome e terminam com .txt:
1 # ls *. txt
2 curriculo1 . txt curriculo2 . txt curriculo3 . txt procedimentos . txt
Listar todos os arquivos que comeam com o nome curriculo, tenham qualquer
caractere no lugar do curinga, e terminem com .txt:
1 # ls curriculo ?. txt
2 curriculo1 . txt curriculo2 . txt curriculo3 . txt
Para listar todos os arquivos que comeam com o nome curriculo, tenham qualquer
caractere entre o nmero 1-3 no lugar da 4 letra e terminem com .txt. Neste
caso, se obtm uma filtragem mais exata, pois o curinga especifica qualquer carac-
tere naquela posio e [ ] especifica um intervalo de nmeros ou letras que ser
usado:
1 # ls *. new
2 # ls * new *
3 # ls curriculo ?. new
4 # ls curriculo [4 ,5].*
5 # ls curriculo [4 ,5]. new
Existem muitas outras sintaxes possveis para obter o mesmo resultado. A mais indi-
cada ser sempre aquela que atender necessidade com o menor esforo possvel.
A criatividade nesse momento conta muito. No exemplo anterior, a ltima forma re-
sulta na busca mais especfica. O que pretendemos mostrar como visualizar mais
de um arquivo de uma s vez. O uso de curingas muito til e pode ser utilizado em
todas as aes do sistema operacional referentes aos arquivos e diretrios: copiar ,
apagar, mover e renomear.
1 # cd / srv
2 # mkdir Suporte
Algo como:
1 # mkdir Rh
2 # mkdir Rh / Processos
3 # mkdir Rh / Processos / Cv \ s
A opo -p permite que toda essa estrutura seja criada em uma nica linha. As-
sim:
1 # mkdir -p Rh / Processos / Cv \ s
Exemplos:
1 # cd / srv
2 # ls
3 # rm curriculo ?. txt
4 # ls
1 # rm -i curriculo4 . new
2 rm : remover arquivo comum vazio curriculo4 . new ?
1 # rm -r Rh
Observao: Muita ateno ao usar o comando rm! Uma vez que os arquivos
e diretrios removidos no podem mais ser recuperados!
Exemplos:
1 # rmdir Suporte
O comando cp serve para fazer cpias de arquivos e diretrios. Perceba que para
lidar com diretrios a opo -r ou -R tem que ser usada:
Uma opo do comando cp muito til em nosso dia-a-dia a opo -p, que faz
com que a cpia mantenha os meta-dados dos arquivos, ou seja, no modifica a
data e hora de criao, seus donos e nem suas permisses. Utilizar como root:
1 # su - aluno
2 $ touch teste
3 $ ls -l
4 $ exit
5 # cd / home / aluno
6 # cp -p teste teste2
7 # cp teste teste3
8 # ls -l teste2 teste3
Renomeando arquivo:
1 # mv teste teste4
Movendo arquivo:
1 # mv teste4 / tmp
Renomeando diretrio:
1 # cd / srv
2 # mv Financeiro financeiro
Movendo diretrio:
1 # mv financeiro / srv / Rh /
Quem j teve algum contato com o GNU/Linux, mesmo que superficial, deve ter
percebido a presena de vrios diretrios (pastas) no sistema. Entretanto, eles esto
organizados seguindo o padro POSIX, com o qual voc pode no estar muito
familiarizado. Neste captulo, vamos conhecer a organizao, e explorar a estrutura
de diretrios de um sistema GNU/Linux.
Desde que o GNU/Linux foi criado, muito se tem feito para seguir um padro em
relao estrutura de diretrios. O primeiro esforo para padronizao de sistemas
de arquivos para o GNU/Linux foi o FSSTND - Filesystem Standard, lanado no
ano de 1994.
Cada diretrio do sistema tem seus respectivos arquivos que so armazenados con-
forme regras definidas pela FHS - Filesystem Hierarchy Standard ou Hierar-
quia Padro do Sistema de Arquivos, que define que tipo de arquivo deve ser
guardado em cada diretrio. Isso muito importante, pois o padro ajuda a manter
compatibilidade entre as distribuies existentes no mercado, permitindo que qual-
quer software escrito para o GNU/Linux seja executado em qualquer distribuio de-
senvolvida de acordo com os padres FHS.
Atualmente, o FHS est na sua verso 2.3, e mantido pelo Free Standard Group",
uma organizao sem fins lucrativos formada por grandes empresas como HP, IBM,
RedHat e Dell.
16
4Linux www.4linux.com.br 4.3 Estrutura de Diretrios GNU/Linux
vital entender bem sobre a FHS para prova, atravs dela que ns deve-
mos fazer nossas atividades com o GNU/Linux em nosso dia-a-dia.
O arquivo pode ser um texto, uma imagem, planilha, etc. Os arquivos devem ser
identificados por nomes para que sejam localizados por quem deseja utiliz-los.
4.3.1 Diretrio /
1 # ls -- color /
A opo color do comando ls serve para deixar colorido a listagem, ex: azul -> dire-
trio branco -> arquivo regular verde -> arquivo executvel azul claro -> link simblico
vermelho -> arquivo compactado rosa -> imagem
1 # ls / bin
Esse um diretrio pblico, sendo assim, os comandos que esto nele podem ser
utilizados por qualquer usurio do sistema. Entre os comandos, esto:
/bin/ls;
/bin/cp;
/bin/mkdir;
/bin/cat;
1 # ls / boot
1 # ls / dev
Para verificar que seu mouse reconhecido como um arquivo, tente olhar o contedo
do arquivo /dev/input/mice:
Repare que os dados so binrios e no possvel ler o arquivo com o comando cat.
Caso seu terminal fique com caracteres estranhos utilize o comando reset para
resetar o shell:
1 # reset
1 # od / dev / psaux
1 # ls / etc
Vamos dividir esta linha em campos, onde cada campo separado por : (dois
pontos), ento:
O comando more assim como o cat serve para ver o contedo de um arquivo que ,
geralmente, texto. A diferena entre o more e o cat que o more faz uma pausa
a cada tela cheia exibindo uma mensagem --More", dando uma oportunidade ao
usurio ler a tela.
Aperte enter para ir para a prxima linha ou espao para ir para a prxima pgina e
para sair digite q.
Uma alternativa ao uso do comando more seria o uso do comando less, que imple-
menta as mesmas funcionalidades que more e mais algumas, como a possibilidade
de rolar a tela para cima e para o lado quando o texto ocupa mais de oitenta colunas.
A utilizao dos comandos less e more se faz de maneira semelhante.
Este arquivo possui as senhas criptografadas dos usurios do sistema. Existe uma
entada no arquivo para cada usurio do sistema com os seguintes campos:
O comando pwconv usado para criar o arquivo shadow a partir do arquivo /etc/-
passwd , enquanto o comando pwunconv executa a operao inversa. Execute:
1 # pwunconv
1 # getent passwd
1 # pwconv
1 # ls / lib
Cada kernel tm seus prprios mdulos, que ficam em: /lib/modules/<verso do ker-
nel>/kernel Separados por tipos em subdiretrios.
1 # uname -r
1 # ls / media
hd
cd
dvd
disquete
pendrive
cmera digital
1 # ls / mnt
1 # ls / opt
1 # ls / sbin
halt
ifconfig
init
iptables
EX:
$ /sbin/ifconfig eth0
1 # ls / srv
Diretrio para dados de servios fornecidos pelo sistema, cuja aplicao de alcance
geral, ou seja, os dados no so especficos de um usurio. Por exemplo:
1 # ls / tmp
Altere o valor da varivel TMPTIME para o nmero de dias que desejar manter os
dados aps o seu ltimo acesso.
1 # ls / usr
1 # ls / var
mensagens de e-mail
1 # ls / var / spool
arquivos de log
1 # ls / var / log
1 # ls / proc
ao trabalho logo depois. Cada endereo uma espcie de campainha, que pode ser
tocada a qualquer momento. Se no fossem pelos endereos de IRQ, o processador
no seria capaz de ler as teclas digitadas no teclado, nem os clicks do mouse, a sua
conexo pararia toda vez que abrisse qualquer programa e assim por diante.
o arquivo que contm a lista do registro ISA direto dos canais em uso da acesso a
memria (DMA).
Os canais de DMA so utilizados apenas por dispositivos de legado (placas ISA, por-
tas paralelas e drives de disquete) para transferir dados diretamente para a memria
RAM, reduzindo desta forma a utilizao do processador.
Neste arquivo encontramos informaes sobre os endereos das portas I/O (In-
put/Output).
1 # ls / sys
Pode-se dizer que esse diretrio um primo do diretrio /proc. Dentro do diretrio
/sys podemos encontrar o quase o mesmo contedo do /proc, mas de uma forma
bem mais organizada para ns administradores.
Esse diretrio est presente desde a verso 2.6 do kernel, ele agrupa informaes
sobre os dispositivos instalados, incluindo o tipo, fabricante, capacidade, endereos
usados e assim por diante. Estas informaes so geradas automaticamente pelo
kernel e permitem que os servios responsveis pela deteco de hardware faam
seu trabalho, configurando impressoras e criando cones no desktop para acesso ao
pendrive, por exemplo.
1 # ls / home / root
programa Cavalo de Tria (programa que obtm poderes do super usurio) com-
prometendo a segurana do seu sistema sem que voc saiba.
4.4.1 Find
O comando find procura por arquivos/diretrios no disco. Ele pode procurar arqui-
vos pela sua data de modificao, tamanho, etc. O find, ao contrrio de outros
programas, usa opes longas por meio de um -.
-name [expresso] :
-maxdepth [num] :
-amin [num] :
Procura por arquivos que foram acessados [num] minutos atrs. Caso seja antece-
dido por -, procura por arquivos que foram acessados entre [num] minutos atrs e
o momento atual.
1 # find ~ - amin -5
-atime [num] :
Procura por arquivos que foram acessados [num] dias atrs. Caso seja antecedido
por -, procura por arquivos que foram acessados entre [num] dias atrs e a data
atual.
-uid [num] :
Procura por arquivos que pertenam ao usurio com o uid 1000 [num].
-user [nome] :
-perm [modo] :
-size [num] :
Procura por arquivos que tenham o tamanho [num]. O tamanho especificado em by-
tes. Voc pode usar os sufixos k, M ou G para representar o tamanho em Quilobytes,
Megabytes ou Gigabytes, respectivamente. O valor de [num] Pode ser antecedido de
+ ou - para especificar um arquivo maior ou menor que [num].
1 # find / - size +1 M
-type [tipo] :
Outros exemplos:
Procura no diretrio atual e nos subdiretrios um arquivo com tamanho maior que
1000 kbytes (1Mbyte).:
Xargs
Outra forma de procurar por arquivos e/ou diretrios e executar um comando atra-
vs do comando xargs que obtm como a entrada a sada ok do comando antes do
pipe e envia como stdin do prximo comando, no caso o ls -ld:
1 # ls / | xargs - n1
2 # ls / | xargs - n2
3 # ls / | xargs - n3
Voc percebeu que no primeiro comando ele listou o diretrio, jogando na tela um
nome de cada vez. O segundo comando far o mesmo s que com dois nomes na
mesma linha, e o terceiro com 3 nomes.
Exemplo:
4.4.2 Locate
Para utiliz-lo, primeiro necessrio criar a sua base de dados usando a seguinte
sintaxe:
1 # updatedb
Quando esse comando executado pela primeira vez costuma demorar um pouco.
Isso deve-se a primeira varredura do disco para a criao da primeira base de dados.
Para o comando locate, usamos a seguinte sintaxe:
1 # locate howto
www.4linux.com.br
Contedo
Comandos Avanados I 3
5.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5.1.1 Trabalhando com entrada e sada de dados . . . . . . . . . 4
5.1.2 Alterando os redirecionamentos . . . . . . . . . . . . . . . . 5
5.1.3 O direcionador . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.1.4 O direcionador < . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.1.5 O direcionador 2> . . . . . . . . . . . . . . . . . . . . . . . . 9
5.1.6 O direcionador 2 . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.7 O direcionador 2>&1 . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.8 O direcionador &> . . . . . . . . . . . . . . . . . . . . . . . . 12
5.1.9 O direcionador & . . . . . . . . . . . . . . . . . . . . . . . . 13
5.1.10 O direcionador | . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1.11 O direcionador tee . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1.12 O direcionador . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.1.13 Comando dd . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1.14 Comando wc . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1.15 Comando split . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1.16 Comando file . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.1.17 Comando who . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.1.18 Comando w . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.1.19 Comando ln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.1.20 Inodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.1.21 Comando stat . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.1.22 Link simblico . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.23 Hard links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.1.24 Comando nl . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2
4Linux www.4linux.com.br Contedo
No linux, voc pode ler dados de um arquivo ou terminal ou escrever dados para
um arquivo ou terminal. O linux tem trs tipos de fluxo de dados: entrada(INPUT),
sada(OUTPUT) e a ltima para imprimir diagnsticos ou mensagens de erro.
Por padro, a entrada de dados e comandos no Shell feita pelo teclado, a sada
destes retornada na tela. Eventuais erros so exibidos na tela tambm. Porm
voc pode alterar a sada padro que a tela e envi-la para um arquivo ou outra
localizao.
4
4Linux www.4linux.com.br 5.1 Introduo terica
> (maior): Direciona a sada do comando para um arquivo, substituindo o seu con-
tedo, caso o arquivo j exista;
2> (dois-maior): Direciona as sadas de erro geradas pelo programa para um arquivo,
substituindo seu contedo, caso o arquivo j exista;
&> (e-maior): Direciona todas as sadas (normal e de erro) para um arquivo, subs-
tituindo seu contedo, caso ele j exista; & (e-maior-maior): Direciona todas as
sadas (normal e de erro) para um arquivo, adicionando o texto ao final do arquivo,
caso ele j exista;
O direcionador >
1 # ls /
2 boot lost + found mnt repo srv var cdrom etc
lib media opt root sys home sbin
tmp bin dev lib64 proc selinux usr
1 # ls / > raiz
No aparece nada na tela porque o comando foi executado sem erros e sua sada
redirecionada para o arquivo raiz, confira:
1 # cat raiz
1 # cat raiz
1 # set -o noclobber
e para voltar:
1 # set +o noclobber
5.1.3 O direcionador
1 # ls / >> hoje
O direcionador < utilizado para passar um stdin para um comando, ele geralmente
utilizado para passar o contedo de arquivos como parmetros de comandos.
Alguns comandos precisam que seja passado o stdin para eles serem executados,
vamos ver o exemplo do comando tr, que traduz ou deleta caracteres:
Voc tambm pode utilizar o comando tr para deletar caracteres, vamos deletar as
vogais do arquivo:
1 # cat ls_naoexiste
Agora sim, nenhuma mensagem de erro foi exibida na tela, porque ela foi enviada
para o arquivo ls_naoexiste.err, vamos verificar o contedo dele:
5.1.6 O direcionador 2
Podemos usar os direcionadores > e 2> em conjunto, para gerar um arquivo com a
sada padro e outro com a sada de erros, dessa forma:
1 # cat / etc /*
A sada mostra tanto o contedo dos arquivos quanto os erros por tentar ler
um diretrio com o comando cat.
1 # cat msg_correto
2 # cat msg_errado
1 # cat msg_total
Podemos usar os direcionadores > e 2> em conjunto, para gerar um arquivo com a
sada padro e outro com a sada de erros, dessa forma:
1 # cat / etc /*
A sada mostra tanto o contedo dos arquivos quanto os erros por tentar ler
um diretrio com o comando cat.
1 # cat msg_ok
2 # cat msg_error
1 # cat ls_out
Assim como o redirecionador &> ele redireciona tanto a sada de stdout quanto a
sada de stderr para um nico arquivo, a diferena que, caso o arquivo no exista
ele ser criado e caso j exista ser adicionado a sada com comando ao final do
arquivo. Visualize o arquivo ls_out:
1 # cat ls_out
1 # cat ls_out
5.1.10 O direcionador |
Conhecido como pipe, ele envia o stdout de um comando para o stdin do prximo
comando para dar continuidade ao processamento, os dados enviados sero proces-
sados pelo prximo comando trazendo assim um resultado esperado.
Vamos usar novamente o comando tr para exemplificar, mas desta vez utilizando o
pipe:
A sada foi o stdout do comando. Vamos agora redirecionar este stdout para o co-
mando tr:
Quando usado junto com o pipe |, o tee permite que a sada padro do comando
seja exibida na tela e enviada para um arquivo ao mesmo tempo. Veja a sada de um
comando e envie-a para um arquivo qualquer, caso o arquivo no exista, ser criado
e caso j exista ser sobrescrito, caso queira adicionar um arquivo j existente use
tee -a :
A sada aparece na tela e tambm foi direcionada para o arquivo arquivo.tee, visualize-
o:
5.1.12 O direcionador
Voc pode editar um novo arquivo com o comando cat ou at mesmo adicionar con-
tedo nele, veja:
Onde: EOF - indica que a edio do arquivo terminar quando em uma linha con-
tiver apenas a sequncia EOF.
> arquivo_novo - direciona o que for digitado no arquivo para arquivo_novo. Ex:
1 # cat arquivo_novo
5.1.13 Comando dd
Sintaxe:
Onde:
zero", "0", 0x30) forem lidos dele. O fluxo de caracteres nulos gerado por este dispo-
sitivo pode, por exemplo, ser utilizado para sobreescrever informaes ou para gerar
um arquivo limpo de certo tamanho.
5.1.14 Comando wc
Grande parte dos arquivos de configurao e de dados usa uma linha por registro. A
contagem destas linhas pode nos fornecer informaes muito interessantes.
1 # wc / etc / passwd
Indica que o arquivo contm X linhas, Y blocos (palavras) e Z caracteres. Caso seja
necessrio apenas o nmero de linhas, o comando wc pode ser usado com o
parmetro -l, como abaixo:
1 # wc -l / etc / passwd
1 # wc -w / etc / passwd
1 # wc -c / etc / passwd
GB 1000*1000*1000, G 1024*1024*1024
Verifique que foram gerados vrios arquivos com o prefixo x, veja tambm o tama-
nho deles:
1 # ls -lh xx *
Podemos dividir o arquivo por nmero de linhas e mudar seu prefixo tambm:
Verifique que foram gerados vrios arquivos com o prefixo pref, veja tambm o
nmero de linhas de cada um:
1 # wc -l pref *
Visualize o arquivo:
1 # file /
2 # file / bin / cat
3 # file / dev / sda1
4 # file / etc / passwd
5 # file / usr / sbin / adduser
1 # who
2 fabiano tty7 2011 -08 -11 23:01 (:0)
3 fabiano pts /0 2011 -08 -12 21:32 (:0.0)
Onde:
fabiano - usurio logado tty7 - terminal em que o usurio est logado 2011-08-11
23:01 - hora e data de login (:0) - Display
5.1.18 Comando w
Mostra tempo que o sistema est ligado, mdia de carga do sistema, usurios loga-
dos.
1 # w
2 21:43:12 up 22:42 , 2 users , load average : 0 ,55 , 0 ,45 , 0 ,37
3 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
4 fabiano tty7 :0 Thu23 22:41 m 6:27 0.53 s
gnome - session
5 fabiano pts /0 :0.0 21:32 0.00 s 0.22 s 0.02 s w
5.1.19 Comando ln
O comando ln permite criar links. Existem dois tipos de links suportados pelo Linux,
os hard links e os links simblicos. Os links simblicos tm uma funo parecida
com os atalhos do Windows: eles apontam para um arquivo, mas se o arquivo
movido para outro diretrio, o link fica quebrado. Os hard links por sua vez so
5.1.20 Inodes
O inode exclusivo somente para o dispositivo (partio) dentro do qual ele est
contido. Portanto, para identificar unicamente um arquivo, o kernel deve ter o nmero
de dispositivo e o inode do arquivo.
Um arquivo possui um nico inode, no importa por quantos nomes este arquivo
identificado no sistema. Logo, o conjunto de inodes que indica o nmero de
arquivos/diretrios que o sistema possui.
Onde:
possvel criar links simblicos de arquivos e/ou diretrios mesmo que estejam em
parties diferentes, j que o nmero de inodes do arquivo original e do link simblico
so diferentes, mas se o arquivo original for apagado o link quebrado, tornando-
se intil. Tambm no possvel determinar a permisso olhando o link simblico,
somente olhando o original.
1 # vim arquivo
2 Este arquivo para teste !
1 # ls -i arquivo
2 11927685 arquivo
Onde:
1 # ls -1 il arq *
2 11927715 lrwxrwxrwx 1 root root 7 2011 -08 -11 18:04 arq . simb lico ->
arquivo
3 11927685 -rw -r - -r - - 1 root root 0 2011 -08 -11 17:52 arquivo
Onde:
Crie um diretrio:
1 # mkdir diretorio
1 # ls -di diretorio
2 11935762 diretorio
Onde:
1 # ls -1 dil dir *
2 11935762 drwxr - xr - x 2 root root 4096 2011 -08 -11 18:12 diret rio
3 11927717 lrwxrwxrwx 1 root root 10 2011 -08 -11 18:14 dir . simb lico
-> diret rio /
Onde:
No possvel criar Hark links de arquivos e/ou diretrios que estejam em parties
diferentes, pois o range de numeros de inodes mudam de uma partio para outra,
ou seja, os Hark links no tero o mesmo nmero de inode, e tambm no possvel
criar Hard links de diretrios da mesma partio.
1 # ls -1 -i arq *
Onde:
5.1.24 Comando nl
Existe um outro comando que tambm visualiza arquivo e numera as linhas, este
Comando o nl:
1 # nl / etc / passwd
2 # grep sys / etc / passwd | nl
3 # ls -l / etc | nl
4 # ls -l / etc | tail | nl
1 # vim bagun a
2 Gabriela
3 Barbara
4 Bruno
5 Victor
6 Alexandre
7 Bruno
8 Alfredo
9 Bruno
1 # cat bagun a
1 # sort bagun a
-n - classificao numrica;
1 # man sort
Remove linhas desnecessrias ou duplicadas, ou seja, ele faz uma espcie de lista-
gem de cada linha nica do arquivo; Somente remove se as linhas repetidas estive-
rem na sequncia, ou seja, uma aps a outra, ento sempre utilize o comando sort
antes para ordenar as linhas.
www.4linux.com.br
Contedo
Comandos Avanados II 2
6.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
6.1.1 Filtragem : grep e egrep e fgrep . . . . . . . . . . . . . . . . 3
6.1.2 Comando grep . . . . . . . . . . . . . . . . . . . . . . . . . . 3
6.1.3 Comando egrep . . . . . . . . . . . . . . . . . . . . . . . . . 5
6.1.4 Comando fgrep . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.1.5 Comando sed . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.1.6 Comandos cut e awk . . . . . . . . . . . . . . . . . . . . . . 8
6.1.7 Juntando dois arquivos em um: join e paste . . . . . . . . . . 9
Administrao da Shell 10
6.2 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.2.1 O que uma shell? . . . . . . . . . . . . . . . . . . . . . . . 11
6.2.2 Variveis em Shell . . . . . . . . . . . . . . . . . . . . . . . . 12
6.2.3 Variveis Locais e de Ambiente (globais) . . . . . . . . . . . 14
6.2.4 Alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2.5 Arquivos de Login . . . . . . . . . . . . . . . . . . . . . . . . 20
6.2.6 Arquivos /etc/issue e /etc/motd . . . . . . . . . . . . . . . . . 21
6.2.7 Tipos de shell . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2
Comandos Avanados II
Outra situao possvel procurar pelas entradas que no possuem a palavra pro-
curada. Para isso, usamos o parmetro -v (inVerter), que inverte a filtragem do
comando grep:
3
6.1 Introduo terica 4Linux www.4linux.com.br
Traz como resultado todas as linhas do arquivo /etc/passwd, exceto as linhas que
continham a palavra bash.
Para buscar a palavra Debian no arquivo /etc/passwd utilize a opo -i para ig-
norar maisculas e minsculas:
Caso queira ver alm da linha que casar com a busca as duas prximas linhas e uma
linha anterior, digite:
-A [n] - After = Mostra n linhas depois; -B [n] - Before = Mostra n linhas antes;
O grep pode ser combinado com a sada de outros comandos com o uso do |
(pipe).
A seguir, o grep aplicado para filtrar quem est logado no primeiro terminal
(tty1):
Para uma busca mais avanada utilize o egrep. Por exemplo quero buscar por uma
linha que contenha a palavra root ou aluno:
No sed, a expresso fica circunscrita entre barras(/). Por exemplo: Deletar as linhas
comentadas do arquivo /etc/fstab:
Para substituir uma string, utilize a opo -s: Substitua todos os caracteres "#"por
"@"em /etc/fstab:
Observe que voc tem que escapar o caracter /, pois este o separador dos cam-
pos.
Observe ainda que em nenhum dos casos foi efetuada a troca de todas as instncias
da linha, somente a primeira que foi encontrada em cada linha, para que se possa
resolver este problema utilize a opo g de global:
Para efetuar a troca em uma linha especfica, aponte o nmero da linha, por exemplo
fazer a troca dos caracteres / por @ na primeira linha:
O comando cut pode ser muito til para conseguir listagens a partir de arquivos
com separadores de colunas definidos.
1 # cut -f1 ,3 -d : -- output - delimiter =" " / etc / passwd > / root / uid
Onde:
1 # awk -F: { print $1 ," " , $4 } / etc / passwd > / root / gid
Onde:
-F - delimitador
$1 - coluna1
$4 - coluna4
O awk suporta mais opes que o cut, por exemplo executar novamente a busca
anterior, mas desta vez trazer apenas os usurios que tenham uid inferior a 5:
$3 - coluna3 <= - menor ou igual == - igual >= - maior ou igual 5 - valor de compara-
o
Comando join
No caso dos arquivos vistos o ndice em comum so os nomes dos usurios, vamos
usar o join para unir os dois arquivos:
Comando paste
O comando paste, junta os arquivos na sada padro. Diferente do join, ele joga
os dois arquivos lado-a-lado.:
11
6.2 Introduo terica 4Linux www.4linux.com.br
1 # ANSWER =42
Esse tipo de varivel que acabamos de definir conhecida como escalar e pode
receber valores numricos ou caracteres.
1 # echo $ANSWER
O comando echo usado para imprimir algo na tela ou direcionar para um arquivo.
Isso bastante til para automao. Na linha de comando o echo til para ins-
pecionar variveis de ambiente, que so parmetros guardados em memria e que
definem o ambiente em uso.
1 # echo algo
1 # comando = ls
1 # echo $comando
Ou
1 # echo $comando
1 # echo $comando
Ou
1 # echo $( $comando )
Quando falamos em variveis em shell temos que ter em mente a diviso entre va-
riveis locais e de ambiente (ou globais). A diferena entre elas que uma varivel
local tem visibilidade restrita, apenas ao escopo ao qual ela foi definida, e uma vari-
vel de ambiente tem visibilidade no s no escopo em que foi definida mas tambm
em ambientes derivados.
Visualizando:
Exporte a varivel:
1 # export magica
2 # set
3 # clear
4 # env
1 # bash
1 # echo $magica
1 # unset magica
2 # echo $magica
Para ficar permanente para todos e funcionar em qualquer terminal deve-se colocar
em um dos arquivos:
1 / etc / profile
2 / etc / environment
Para ficar permanente para o usurio e funcionar em qualquer terminal deve-se co-
locar em um dos arquivos:
1 ~/. bashrc
2 ~/. bash_profile
3 ~/. bash_login
4 ~/. profile
1 # echo $PS1
2 # PS1 =" C :\ > "
Algumas variveis importantes: EDITOR -> define o editor que abrir um programa
que chama o editor padro. No debian, conseguimos fazer a alterao do editor atra-
vs do comando update-alternatives config editor, que veremos ainda no curso.
1 # echo $EDITOR
2 # export EDITOR = nano
3 # vipw
4 # export EDITOR = vim
5 # vipw
1 # TMOUT =30
1 # echo $HOME
1 # echo $HISTSIZE
2 # history
PATH -> define quais diretrios pesquisar e a ordem na qual eles so pesquisados
para encontrar um determinado comando:
1 # su - aluno
2 $ echo $PATH
1 $ ifconfig
1 $ whereis ifconfig
No utilizamos o which que traz apenas o caminho do binrio do comando porque ele
no iria encontrar o comando ifconfig em nosso PATH j o whereis traz da localizao
original. Repare que o comando ifconfig tem o seu binrio localizado em /sbin/ifconfig
que no est no nosso PATH, quer dizer, no estava porque agora vamos adicion-
lo:
1 $ ifconfig
Isso no significa que voc tem a permisso de root para executar os comandos de
root. Tente derrubar sua placa de rede:
6.2.4 Alias
1 # alias ls = ls -- color -h -l
Dessa forma fica fcil criar seu prprio comando. Por exemplo, um que limpe a tela:
1 # alias c = clear
1 # c
1 # alias
1 # unalias c
1 # c
Quando uma bash executada como uma shell de login interativo ela l e exe-
cuta o arquivo /etc/profile, se ele existir. Esse arquivo deve conter as configura-
es gerais que se aplicam a todos os usurios do sistema. Aps ler o /etc/profile,
ela ir procurar por um dos arquivos:
1 ~/. bash_profile
2 ~/. bash_login
3 ~/. profile
Esses arquivos esto na home do usurio, executando o primeiro que estiver dispo-
nvel e tiver permisso de leitura. Alm desses, executa tambm o arquivo /.bashrc.
Perceba que esses so arquivos ocultos, pois esto precedidos por um (.)
Quando a bash estiver sendo terminada (usurio fazendo logout), o arquivo /.bash_logout
ser lido e executado, caso ele exista. Atravs deste arquivo, podemos automatizar
procedimentos como por exemplo limpar a tela ao se deslogar do sistema.
Quando uma bash chamada mas no uma shell de login, o arquivo chamado
ser apenas o /.bashrc.
Sendo assim, para criar aliases ou definir variveis ou funes que sejam comuns
a todos os usurios, devemos inclu-las no arquivo /etc/profile. Caso o usurio no
queira utilizar o padro do sistema, alter-lo ou adicionar configuraes pessoais,
ele deve utilizar os arquivos /.bash_profile, /.bash_login, /.profile ou /.bashrc
para isso.
Para saber quais shells so vlidos para login, basta visualizar o contedo do ar-
quivo /etc/shells. A maioria das distribuies GNU/Linux traz a bash como
shell padro. Esta uma evoluo do Bourne Shell - /bin/sh, que tem bem
poucos recursos.
1 echo $SHELL
1 # su - aluno
A opo which bash substituda pelo seu resultado /bin/bash. No prximo login
o aluno estar no shell bash novamente.
www.4linux.com.br
Contedo
Editores de Texto 2
7.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
7.2 Editores de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
7.2.1 Nano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
7.2.2 Vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Funcionalidades do Vim . . . . . . . . . . . . . . . . . . . . . . 8
Deixando o vim com sua cara . . . . . . . . . . . . . . . . . . 12
2
Editores de Texto
vim - Uma verso melhorada do vi, Vim significa VImproved e traz diversas
facilidades sem perder os conceitos originais do vi;
nano - Editor padro de muitas distribuies como Debian , CentOS esse editor
diferente do vim e muito fcil de ser usado;
pico - Muito parecido com o nano, este est presente nas distribuies Slackware
e Gentoo;
3
7.2 Editores de texto 4Linux www.4linux.com.br
Neste captulo vamos abordar apenas a utilizao dos editores nano e vim. Isso
porque eles so os mais usados.
7.2.1 Nano
1 # nano [ arquivo ]
Ao ser chamado, este editor ir apresentar um tela em branco com um rodap se-
melhante a esse:
G Get Help - Apresenta uma tela de ajuda para os mais diversos comandos e
uma breve explicao sobre o editor;
X Exit - Sai do editor, lembrando que se o arquivo no estiver salvo, essa opo
ir te pedir para salv-lo;
Como podemos ver, usar o editor de textos nano, no uma das tarefas mais
difceis no GNU/Linux. Vamos conhecer, agora, o editor Vim.
Para definirmos qual ser o editor padro no Debian podemos usar o aplicativo
update-alternatives.
7.2.2 Vim
Ao invocar o vim, este entra direto para o modo visualizao. Para modificar o
arquivo, usam-se os modos de insero, deleo e de substituio. Para voltar ao
modo de visualizao, sempre se usa a tecla ESC.
1 # vim texto
2 # Para inserir digite : i
3 i => Entra no modo de inser o antes do cursor
4
5 # Para sair do modo de inser o digite : ESC
6
7 # Para inserir uma linha abaixo do cursor digite : o
8 o => Insere uma linha abaixo do cursor e entra no modo de inser o
9
10 # Para sair do modo de inser o digite : ESC
11
12 # Para inserir uma linha acima do cursor digite : O
13 O => Insere uma linha acima do cursor e entra no modo de inser o
14
15 # Para sair do modo de inser o digite : ESC
16
17 # Para desfazer a ltima altera o digite : u
18
19 # Para refazer digite : CTRL + R
20
21 # Para numerar as linhas digite : : set number
22
23 # Para copiar a segunda linha digite : :2 y
24
25 # Para colar na linha abaixo do cursor digite : p
26
27 # Para ir para a primeira linha digite : gg
28
29 # Para colar na linha acima do cursor , "3 vezes " digite : 3 P
30
31 # Para salvar as altera es digite : : w
32
33 # Para sair do arquivo sem salvar digite : : q ou Para for ar a sa
da sem salvar : : q !
1 # vim texto
2 # Para ir para a ltima linha digite : G
3
4 # Para deletar " recortar " a linha atual digite : dd
5
6 # Para salvar e sair do arquivo : x ou Para for ar : x!
1 # vim texto
2 # Delete as 5 primeiras linhas digitando : :1 ,5 d ou Com o
cursor na primeira linha digite : 5 dd ou d5d
3
4 # Para sair sem salvar digite : q!
1 # vim texto
2 # buscar palavra " inser " dentro do arquivo abaixo do cursor , digite :
/ inser
3 # Para ir para a pr xima ocorr ncia digite : n
4 # Para ir para a ocorr ncia anterior digite : N
5 # Buscar palavra " inser " dentro do arquivo acima do cursor , digite :
? inser
6 # Para grifar todos os resultados da busca , digite : : set hlsearch
Funcionalidades do Vim
:q - Sai do editor;
:q => Sai.
No CentOS /etc/vimrc.
Adicione ao final do arquivo as opes para deixar o texto com as linhas numeradas,
texto colorido e grifar as buscas encontradas:
www.4linux.com.br
Contedo
2
Gerenciamento de Pacotes em Alto
Nvel
3
8.2 Gerenciando Pacotes no Debian 4Linux www.4linux.com.br
Um pacote nem sempre depende apenas dele mesmo, ou seja, quando instalamos
um programa, ele pode depender de bibliotecas de udio, vdeo, imagens, funes e
vrios outros programas que precisam estar instalados antes do pacote. esse elo
entre programas que chamamos de dependncias.
1 # aptitude update
ou
ou
1 # aptitude update
ou
Vamos primeiramente utilizar a ferramenta aptitude em seu modo visual, e logo aps
em seu modo texto, para instalar, remover e procurar pacotes.
1 # aptitude
Para procurarmos por um pacote que desejamos instalar, podemos fazer uma busca
pelo comando abaixo:
ou
apt-cache trar como resultado tanto comandos, quanto resumo do comando que
contenham o argumento passado na busca.
Para buscar uma lista completa de pacotes disponveis para Debian acesse:
http://packages.debian.org
Vamos buscar por gerenciadores de janela, mas no sabemos quais existem, ento
prefira utilizar o apt-cache e faa a busca sempre em ingls:
Se fizer a busca com o aptitude, talvez voc no encontre o pacote que procura.
J no caso de saber o nome do programa que voc busca, voc pode utilizar direta-
mente o aptitude, por exemplo o programa ORCA para deficientes visuais:
O apt-cache traz mais opes, pois busca no nome do programa e no resumo do que
faz o mesmo.
ou
ou
ou
1 # ls / etc / samba
ou
Agora iremos remover o samba e suas dependncias, assim como seus arquivos de
configurao:
Ou:
Quando voc instala um pacote o apt busca das fontes listadas em "/etc/apt/sour-
ces.list" os arquivos necessrios e os guarda em um repositrio local "/var/ca-
che/apt/archives/", e ento faz a instalao Em algum tempo o repositrio local
pode crescer e ocupar muito espao em disco. Felizmente o apt fornece uma tima
ferramenta para lidar com seu repositrio local,o mtodos "clean"do apt-get. O "apt-
get clean" remove tudo exceto os arquivos de lock dos diretrios "/var/cache/apt/ar-
chives/" e "/var/cache/apt/archives/partial/". Assim, se voc precisar reinstalar um
pacote o apt ir busc-lo novamente.
Para atualizar os pacotes j instalados, para a ltima verso que est no reposit-
rio:
1 # aptitude upgrade
ou
O yum (Yellow dog Update, Modified) o gerenciador de pacotes usado por padro
no CentOS, no Fedora e no Red Hat Enterprise. O yum foi originalmente desenvol-
vido pela equipe do Yellow Dog (uma distribuio baseada no Red Hat, destinada a
computadores com chip PowerPC) e foi sistematicamente aperfeioado pela equipe
da Red Hat, at finalmente assumir o posto atual.
Diferente do gerenciador de pacotes do Debian que toda vez que modifica a lista de
repositrio necessrio fazer a atualizao da lista, o yum faz a atualizao auto-
maticamente cada vez que uma instalao solicitada, checando os repositrios,
baixando os headers do pacotes e calculando as dependncias antes de confirmar a
instalao.
Procurando um programa:
ou
A diferena entre as opes list e search que a primeira opo list ir trazer
os resultados que contenham o argumento passado na busca no nome do programa,
enquanto que a opo search trar como resultado tanto comandos, quanto resumo
do comando que contenham o argumento passado na busca.
ou:
Remova o samba:
ou
1 # ls / etc / samba
O yum no tem uma opo purge como o apt-get e o aptitude, para remover as
dependncias e arquivos de configurao do pacote, tendo que serem removidos
posteriormente.
1 # yum update
www.4linux.com.br
Contedo
2
Instalao de Programas com DPKG
e RPM
Criado por Ian Jackson em 1993, o DPKG usado para instalar, remover e fornecer
informaes sobre os pacotes .deb.
O DPKG uma ferramenta em linguagem de baixo nvel. Front ends de alto nvel
so exigidos para buscar pacotes em lugares remotos ou ajudar no solucionamento
de conflitos nas dependncias dos pacotes.
3
9.1 Introduo terica 4Linux www.4linux.com.br
1 pool
2 \_ stable
3 \_ main
4 \_ a
5 \_ alien
6 \ _ alien - < versao >. deb
7 \_ a2ps
8 \_ ...
9 \_ b
10 \_ ...
11 \_ z
12 \_ liba
13 \_ libb
14 \_ ...
15 \_ libz
16 \_ testing
17 \_ unstable
18 \_ contrib
Atrs do gerenciador de pacotes est o banco de dados RPM. Ele consiste de uma
lista duplamente ligada que contm todas as informaes de todos os RPM insta-
lados. O banco de dados lista todos os arquivos que so criados ou modificados
Uma vantagem que o RPM possui sobre DPKG que possui algumas ferramentas de
verificao criptogrfica com o GPG e o md5, alm de verificao de integridade dos
arquivos j instalados. Existe uma documentao que pode ser usada para qualquer
distro baseada em RPM que pode ser encontrada em: http://www.rpm.org/RPM-HOWTO/.
DPKG
1 # dpkg -- help
http://packages.debian.org/squeeze/flashplugin-nonfree
Ou:
No caso:
1 # dpkg -l | less
Para determinar qual pacote foi o responsvel por instalar um binrio no sistema,
digite:
1 # dpkg -s coreutils
O aplicativo no pode ser instalado porque existem pr-requisitos para sua instala-
o, para resolver estas dependncias automaticamente, digite:
1 # aptitude -f install
Ou:
1 # dpkg -l alien
1 # cd / opt ; ls - lh
1 # file sl *
2 # file ccze *
Vamos agora copiar o arquivo .rpm para a mquina Dexter para poder instalar o
pacote.
1 # cd / opt
2 # rpm -qp ccze - - < versao >. rpm
Instale o programa:
1 # rpm -e ccze
1 # rpm -qa
2 # rpm -q ccze
Para realizar uma atualizao de verso de algum programa podemos utilizar o co-
mando:
1 # rpm -Va
Execute o comando:
Verifique que os logs esto saindo coloridos, o comando ccze serve para verificar
logs desta maneira.
Dica LPI: O comando tail mostra por padro as ltimas 10 linhas de um arquivo,
e em conjunto com a opo -f verifica em tempo real.
1 # rpm -Va
www.4linux.com.br
Contedo
11 Compilando Programas 3
11.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
11.1.1 Configure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
11.1.2 Makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Bibliotecas 7
11.2 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
11.2.1 Tipos fundamentais de programas executveis . . . . . . . . 8
11.2.2 Modo Esttico e Compartilhado . . . . . . . . . . . . . . . . 10
11.2.3 Listando Bibliotecas disponveis . . . . . . . . . . . . . . . . 11
11.2.4 Localizao das bibliotecas? . . . . . . . . . . . . . . . . . . 12
11.2.5 Adicionando novas bibliotecas ao sistema . . . . . . . . . . 12
2
Compilando Programas
Um dos pontos centrais do mundo GNU/Linux est baseado nas quatro liberdades
bsicas propostas pela FSF - Free Software Foundation, sendo elas:
Para que essas quatro liberdades bsicas sejam alcanadas necessrio que te-
nhamos acesso ao cdigo fonte dos programas.
3
10.1 Introduo Terica 4Linux www.4linux.com.br
10.1.1 Configure
Em geral, sempre que pegamos o cdigo fonte de um programa ele vir com um
aplicativo chamado configure que ir executar uma verificao em seu sistema a fim
de verificar se ele dispe de todos os componentes bsicos para uma compilao
bem sucedida.
Alm disso, quando consultamos o help do configure ele ir nos mostrar todas as
funcionalidades que podemos compilar com o programa e todas as funcionalidades
que podemos retirar do mesmo para que ele se encaixe em nossas necessidades.
Alm da escolha das funcionalidades, ele nos permite informar a localizao de cer-
tos componentes que por ventura no encontre.
Uma vez que o processo de configure for encerrado com sucesso, ele ira gerar um
arquivo chamado Makefile, contm instrues de compilao e instalao entre ou-
tras.
10.1.2 Makefile
A Makefile estruturada em sees; cada uma delas realiza alguma tarefa espec-
fica. Em geral essas Makefiles vm com pelo menos trs sees padro: default,
install e clean. Algumas podem vir com test ou check ou alguma outra que o de-
senvolvedor ache relevante. Por isso devemos sempre ler a documentao do pro-
grama.
Instalao:
Para que possamos instalar um software a partir de seu cdigo fonte, o primeiro
passo que temos que seguir : fazer o download dele. Em geral fazemos isso aces-
sando a pgina do desenvolvedor do programa. Neste captulo vamos realizar a com-
pilao do software chamado nmap, que pode ser encontrado em http://www.insecure.org.
O procedimento de compilao de um programa parte do princpio que, atravs do
cdigo fonte do programa, qualquer um possa ter acesso ao cdigo e gerar o binrio
final a partir dele. O procedimento de compilao sempre bem parecido para todas
as aplicaes, porm, sempre que for compilar algum programa, devemos consul-
tar o arquivo INSTALL ou o README que est sempre presente junto com o cdigo
fonte.
1 # wget http :// nmap . org / dist / nmap -5.51. tar . bz2
2 # tar xvjf nmap -5.51. tar . bz2 -C / usr / local
3 # cd / usr / local / nmap - versao
1 # vim README
2 # vim INSTALL
fazer uma verso comprimida de um arquivo tar como gzip. Para a prova voc deve
dominar o TAR e o GZIP, que estudamos no 450, e utilizaremos aqui.
Obs.: Nem sempre ambos os arquivos estaro presentes, mas certamente um deles
sempre estar.
Agora que sabemos o que fazer, vamos executar. Para determinar quais so
os parmetros que podemos passar ao configure:
1 # ./ configure -- help
1 # vim Makefile
1 # make
1 # make install
1 # nmap 192.168.200.254
1 # make clean
Para desinstalar:
1 # make uninstall
Hoje em dia muito simples instalar um programa j compilado, com a ajuda de ge-
renciadores de pacotes como o rpm, dpkg, aptitude e outros. Mas voc vai encontrar
muitos programas disponveis somente em cdigo-fonte, e s vezes nem to bem
documentados assim. Entretanto, compilar um programa no algo de outro mundo,
no um bicho de sete cabeas. A funo destas bibliotecas lembra um pouco a dos
arquivos .dll no Windows. Temos as bibliotecas estticas e dinmicas. As dinmicas
so usadas por vrios programas e necessrias para instalar programas distribudos
em cdigo fonte (os famosos arquivos tar.gz, tgz e tar.bz2).
8
4Linux www.4linux.com.br 10.2 Introduo Terica
1 # ldd $( which ls )
1 # ldd / bin / ln
2 linux - gate . so .1 = > (0 xffffe000 )
3 libc . so .6 = > / lib / tls / libc . so .6 (0 xb7ded000 )
4 / lib /ld - linux . so .2 (0 xb7f29000 )
Verificando tamanhos:
Note que um executvel esttico bem maior que o executvel dinmico, isso ocorre
pois o esttico j contm o que precisa dentro do prprio executvel. Obviamente,
bibliotecas compartilhadas tendem a gerar executveis menores, eles tambm usam
menos memria, ou seja, menos espao em disco usado.
O modo compartilhado ligeiramente mais lento, pois precisa sempre abrir o arquivo
da biblioteca, mas ocupa menos espao (dado que s se tem uma cpia da biblio-
teca) e facilita, centralizando a manuteno (se voc precisar mudar a verso de uma
biblioteca, no tem de recompilar o programa, basta trocar o arquivo da biblioteca).
O padro usar bibliotecas compartilhadas, e geralmente a deciso mais s-
bia, mas precisa que todas as bibliotecas necessrias estejam presentes no sistema
para executar.
Para bibliotecas compartilhadas, no em vez disso, ele deixa uma nota na sada
dizendo quando este programa for executado, ele ter que carregar primeiro esta
biblioteca. Diversos programas, para no terem sempre que reinventar a roda,
usam bibliotecas, como a libc, por exemplo.
1 # ldconfig -p
Caso voc tenha desenvolvido ou baixado alguma biblioteca nova e criou um diretrio
especfico para guard-las, adicione o caminho completo do diretrio em que essa
biblioteca se encontra no arquivo /etc/ld.so.conf e digite o comando ldconfig (sem
parmetros). Isso ir gerar o arquivo /etc/ld.so.cache, que contm informaes sobre
as bibliotecas compartilhadas disponveis no sistema que ld.so ou ld-linux.so iro
procurar.
EX: Vamos criar um diretrio para nossas bibliotecas e copiar uma biblioteca que o
comando ping utiliza para l, como este novo diretrio no consta na lista de dire-
trios de bibliotecas, o comando no pode ser executado com sucesso, at que se
adicione este novo diretrio de bibliotecas:
1 # mkdir / bibliotecas
1 # ls / etc
1 # ldd / bin / ls
2 linux - gate . so .1 = > (0 xb7816000 )
3 libselinux . so .1 = > / lib / libselinux . so .1 (0 xb77e1000 )
4 librt . so .1 = > / lib / i686 / cmov / librt . so .1 (0 xb77d8000 )
5 libacl . so .1 = > / lib / libacl . so .1 (0 xb77d0000 )
6 libc . so .6 = > / lib / i686 / cmov / libc . so .6 (0 xb768a000 )
7 libdl . so .2 = > / lib / i686 / cmov / libdl . so .2 (0 xb7686000 )
8 / lib /ld - linux . so .2 (0 xb7817000 )
9 libpthread . so .0 = > / lib / i686 / cmov / libpthread . so .0 (0 xb766d000 )
10 libattr . so .1 = > / lib / libattr . so .1 (0 xb7668000 )
1 # ls -l ls -l / lib / librt . so .1
2 lrwxrwxrwx 1 root root 15 Set 16 17:14 / lib / librt . so .1 -> librt
-2.11.2. so
1 ls / etc
ping: error while loading shared libraries: librt.so.1 cannot open shared object file: No
such file or directory
No foi possvel executar o comando ls, pois a biblioteca compartilhada no pde ser
carregada por estar em um diretrio que no referenciado em /etc/ld.so.cache para
os linkadores carregarem-na.
1 # ldd / bin / ls
Voc j imaginou ficar sem a librt.so.1? Sem essa lib, muitos recursos de movimen-
tao pelo terminal no iram responder.
1 # ldconfig
1 # ls / etc
1 # ldd / bin / ls
www.4linux.com.br
Contedo
Introduo a Redes 2
11.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
11.1.1 Entendendo o IP . . . . . . . . . . . . . . . . . . . . . . . . . 4
11.1.2 Entendendo o gateway da rede . . . . . . . . . . . . . . . . 5
11.1.3 O servidor DNS . . . . . . . . . . . . . . . . . . . . . . . . . 6
11.1.4 Arp e RARP . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
11.1.5 Configurando a Rede . . . . . . . . . . . . . . . . . . . . . . 7
11.1.6 Configurando IP e Mscara . . . . . . . . . . . . . . . . . . 8
11.1.7 Configurando o gateway . . . . . . . . . . . . . . . . . . . . 9
11.1.8 Configurao dos DNS Servers . . . . . . . . . . . . . . . . 11
11.1.9 Configurao esttica de rede . . . . . . . . . . . . . . . . . 12
11.1.10 Configurando hosts e hostname DEBIAN . . . . . . . . . . . 14
11.1.11 Configurando hosts e hostname CentOS: . . . . . . . . . . . 16
2
Introduo a Redes
Neste captulo, iremos aprender alguns conceitos de redes que so muito impor-
tantes no nosso dia a dia em TI. Elementos como o endereo IP da mquina e a
mscara de rede, so de fundamental importncia quando lidamos com configura-
o de rede. To importante quanto os itens acima, saber como funciona uma
rede, aprendendo a configurar seu gateway e definir seu DNS, alm de descobrir
tcnicas que facilitam as configuraes diria de rede nos nossos sistemas UNIX.
Os protocolos TCP/IP antigamente eram usados como um padro militar para troca
de informaes. Atualmente esses protocolos so o padro mundial para comunica-
o de redes de computadores. Inclusive da Internet.
Apesar da nova verso da LPI ter diminudo os tpicos sobre TCP/IP, ele
ainda est presente na prova, e por isso dar ateno ao modelo OSI, uma boa
3
11.1 Introduo terica 4Linux www.4linux.com.br
11.1.1 Entendendo o IP
O endereamento IP, como dever ser chamado, composto por 4 octetos e uma
mscara, que determina quantos endereos so destinados a host e quantos en-
dereos so destinados a rede.
Isso possvel porque em todo GNU/Linux h uma interface lgica, chamada lo-
opback (lo) cujo endereo IP 127.0.0.1 e que sempre deve estar devidamente
configurada.
Mas por que raios eu poderia querer um servio em uma mquina que no fala com
o mundo externo?".
Com essa interface configurada, todo o tipo de servio pode ser ativado na mquina,
desde um simples servidor de ssh at um servidor de DNS, passando por um ser-
vidor de pginas Web, afim de realizar testes antes de coloc-los em produo.
O gateway da rede um host que conhece outros hosts que por sua vez
conhece outros, e assim por diante. Complicado?
O principal papel do gateway levar os pacotes TCP/IP para outras redes que os
hosts que os originaram, no conhecem. dessa forma que os pacotes saem de
uma rede privada para um rede Wan. Para que os pacotes possam transitar pela
Internet ou mesmo s por uma rede fechada necessrio um gateway. Mesmo
em uma rede local, o gateway a prpria mquina, pois todos os hosts esto
normalmente com a mesma configurao de IP, ou seja, mesma mscara, mesma
classe de IP, etc.
Nesse ponto muito importante frisar que o servidor de DNS no faz parte da
configurao essencial de rede, pois para estarmos na Internet, basta termos um
gateway, que a conhea, devidamente configurado. Lembre-se: a Internet feita
de nmeros.
Usurio - Suporte?
1 $ ping 8.8.8.8
Se a resposta for positiva, voc no tem um problema de link, cheque seu DNS.
Suporte - Sr. Usurio, percebi que voc est acessando um site proibido pela
empresa, h algo errado?
Vamos nos aprofundar um pouco mais nas teorias de redes e vamos verificar os
protocolos ARP e RARP. O protocolo ARP utilizado para converter os ende-
reos de rede (IPs), para os endereos fsicos das interfaces - MAC. Um exemplo
clssico de usabilidade identificar placas com o mesmo MAC Address na rede.
Podemos conhecer todas as mquinas da rede e depois utilizar o comando arp
para descobrir quais endereos IP tem o mesmo MAC Address. J o Rarp faz
exatamente o oposto, transforma endereos fsicos em endereos de rede.
Configurao do Gateway;
1 # ifconfig
1 # ifconfig -a
Para atribuir um endereo IP para uma placa de rede utilizamos esta sintaxe:
Exemplo:
1 # ifconfig eth0
1 # ifconfig eth0
Caso voc queira participar de uma outra rede, utilizando uma nica placa de rede,
crie uma interface virtual:
Onde: :0 o nome da placa de rede virtual, poderia ser tambm :local, :net, ou
qualquer nome. Visualize a configurao da placa:
1 # ifconfig eth0 :0
Para que nossos pacotes saibam para onde ir eles precisam conhecer o IP do ga-
teway da rede. O papel do gateway da rede simples: ele funciona como uma
sada para todos os pacotes daquela rede, para outras redes.
Com esse comando possvel configurar a rota padro de sada da nossa rede. Para
listar todas as rotas traadas, podemos utilizar o comando abaixo:
1 # route -n
Com ele podemos descobrir se as rotas necessrias para que nossa rede funcione
esto corretas.
Esse comando se encarregar de remover a rota padro para a sada da rede, mas
lembre-se que essa rota obrigatria no processo de configurao de rede. Tente
pingar o gateway:
1 # ping 172.16.0.1
Para no ter que memorizar todos os endereos IP que precisamos acessar, foi cri-
ado um servio de rede chamado DNS. Este faz a traduo de nomes para ende-
reos IP e vice-versa. Este servio de rede ser melhor detalhado no curso 452 da
Formao 4Linux. Para configurar os servidores de DNS na mquina local, preci-
samos editar o arquivo de configuraes de DNS, chamado resolv.conf localizado
em /etc.
Traceroute uma ferramenta que permite descobrir o caminho feito pelos pacotes
desde a sua origem at o seu destino.
Tudo que vimos at agora, so configuraes que podem ser atribudas atravs de
linha de comando (configuraes dinmicas). Porm nosso host deve estar devida-
mente configurado para que, por exemplo, aps um boot, a mquina mantenha as
configuraes certas.
Reinicie o servio:
No CentOS:
Vamos configurar a rede do servidor CentOS para que as mquinas possam se co-
municar:
Reinicie o servio:
Para ativar ou desabilitar uma placa de rede podemos usar a sintaxe, tanto no Debian
quanto no CentOS:
1 # ifconfig eth0 up
2 # ifconfig eth0 down
Exemplo:
1 # ifup eth0
2 # ifdown eth0
Podemos tambm configurar alguns atalhos para alguns endereos de rede. Esses
atalhos so configurados dentro do arquivo /etc/hosts.
A sintaxe dele :
Exemplo :
Isso facilita nosso trabalho, uma vez que todos esto devidamente configurados, no
precisamos mais decorar nmeros IP.
1 # hostname aula
Deslogue e logue para alterar o prompt. Para testar a resoluo de nomes pelo
arquivo hosts:
1 # hostname -i
1 # hostname -f
1 # hostname -d
1 # hostname -v
1 # ping 192.168.0.1
Agora que j estamos com a rede configurada vamos tentar acessar a Internet.
1 # ping 8.8.8.8
www.4linux.com.br
Contedo
Gerenciamento de Processos 2
12.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
12.2 E como fazemos para gerenciar os processos? . . . . . . . . . . . . . 8
O comando pkill . . . . . . . . . . . . . . . . . . . . . . . . . . 9
O comando killall . . . . . . . . . . . . . . . . . . . . . . . . . 9
O comando kill . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
O comando nohup . . . . . . . . . . . . . . . . . . . . . . . . . 14
O Comando lsof . . . . . . . . . . . . . . . . . . . . . . . . . . 15
12.3 Definido prioridades dos processos . . . . . . . . . . . . . . . . . . . . 19
2
Gerenciamento de Processos
Podemos visualizar todos os processos que esto rodando em nosso sistema com o
programa que tira uma foto dessa estrutura, conhecido como snaPShot vulgo ps:
1 # ps
3
12.1 Introduo Terica 4Linux www.4linux.com.br
ento aqui esto os mais importantes: Para podermos ver com mais detalhes os
processos temos a combinao dos seguintes parametros
1 # ps aux
22
23 PRI - valor da prioridade do processo ;
24
25 NI - valor preciso da prioridade ( geralmente igual aos
valores de PRI ) ;
26
27 WCHAN - mostra a fun o do kernel onde o processo se encontra
em modo suspenso ;
28
29 STAT - indica o estado atual do processo , sendo representado
por uma letra :
> o processo est rodando com prioridade maior que a padro, tendo sido
definida pelo kernel;
< o processo est rodando com prioridade menor que a padro, tendo sido
definida pelo kernel;
N o processo foi definido com uma prioridade diferente da padro, tendo sido
definida pelo usurio.
1 # top
Com o top podemos ver o horrio atual, quanto tempo a mquina est ligada, quantos
usurios esto logados, quantos processos esto em aberto, rodando, em espera e
zumbi:
A primeira linha do comando top tambm pode ser observada com o comando up-
time:
1 # uptime
2 16:23:00 up 2:14 , 3 users , load average : 0.45 , 0.69 , 0.74
Onde apresentado: 16:23:00 - hora atual up 2:14 - tempo que o sistema est ligado
3 users - nmero de usurios logados
load average: 0.45, 0.69, 0.74 - mdia de carga de processamento 1min atrs, 5
min atrs e 15min atrs.
Outro programa que nos ajuda a visualizar os processos o htop muito mais amig-
vel:
1 # pstree
1 # pgrep cron
ou
1 # pidof cron
Dica LPI: Uma listagem completa dos sinais possveis pode ser vista na seo
STANDARD SIGNALS do man 7 signal. Alguns dos sinais mais utilizados podem ser
vistos a seguir:
1 # man signal
Passando esses sinais aos processos podemos realizar tarefas desde, reiniciar o
processo at encerr-lo de forma forada. Para gerenciarmos processos temos al-
guns comandos:
O comando pkill
1 # pkill cron
O comando killall
1 # killall cron
O comando kill
Vamos matar um processo e seus processos filho: Acesse a parte grfica e abra
o aplicativo Ekiga: Aplicativos - Internet - Ekiga Verifique qual o pid do ekiga:
1 # pgrep ekiga
2 1267
1 # kill -9 1267
1 # ekiga
Tente mexer na aplicao sem fech-la, agora voc consegue, mas repare que o
terminal onde estava rodando ficou livre e o processo continua em execuo, mas
onde foi parar este processo?
Quando enviamos o sinal pro processo continuar, ele continuou, mas em background
no terminal de onde foi executado, para visualizar este processo em background
utilizamos o comando jobs.
Execute o comando no terminal que voc executou o ekiga pela primeira vez:
1 # jobs
2 [1]+ Executando ekiga &
1 # kill %1
Verifique que o processo foi terminado, lembrando que quando no passamos o sinal
utilizado o sinal 15 como padro:
1 # jobs
Lembra que quando executamos o comando ekiga o terminal ficou inutilizvel, pois
se cancela-se o aplicativo fecharia? Ns podemos executar um comando para ser
executado em background, liberando-se assim o terminal para uso:
1 # ekiga &
Agora voc j sabe para poder executar qualquer programa em backgroung, coloque
o caracter & no final do comando.
1 # jobs
2 [1]+ Executando ekiga &
1 # kill -19 %1
Ou seja:
1 # fg 1
Verifique que o terminal ficou travado para a execuo do ekiga, se voc cancelar
o processo, o ekiga ser fechado. Quando estamos executando um programa no
terminal, ns podemos paus-lo sem utilizar o kill, mas como isso? Simples basta
digitar no terminal: ctrl+z.
1 crtl +z
1 # jobs
2 [1]+ Parado ekiga
Ou seja:
1 # bg 1
1 # jobs
2 [1]+ Executando ekiga &
Imagine agora que voc vai rodar um comando que ir demorar muito tempo e voc
no quer deixar o terminal logado para evitar que algum acesse o sistema, se voc
se deslogar o comando ir parar e no ir terminar, para resolver isso existe o co-
mando nohup:
O comando nohup
Se a sada padro uma tty, esta sada e o erro padro so redirecionados para o
arquivo nohup.out (primeira opo) ou para o arquivo $HOME/nohup.out (segunda
opo). Caso nenhum destes dois arquivos possam ser criados (ou alterados se j
existem), o comando no executado.
O nohup no coloca o comando que ele executa em background. Isto deve ser feito
explicitamente pelo usurio.
Vamos executar um ping com o nohup e ver que ele continua sua execuo mesmo
aps fecharmos o terminal:
Verifique no home do usurio que voc executou o comando nohup se tem o arquivo:
nohup.out.
Execute novamente e verifique que o ping continua, pois o comando ainda no ter-
minou de ser executado (1000 pings ao site 4linux.com.br):
O Comando lsof
O comando lsof um dos mais importantes comandos para quem administra sis-
temas Linux, principalmente na rea de segurana. Este comando lista todos os
arquivos abertos por todos os processos. Aqui, quando eu falo arquivo, no so
apenas arquivos comuns, mas sim recursos que funcionam como arquivos (podem
ser abertos, mapeados na memria, entre outros). Isso inclui bibliotecas, sockets,
arquivos comuns, diretrios e por a vai.
1 # lsof -n
2 COMMAND PID USER FD TYPE DEVICE SIZE /
OFF NODE NAME
3 init 1 root cwd DIR 8 ,1
4096 2 /
4 init 1 root rtd DIR 8 ,1
4096 2 /
5 init 1 root txt REG 8 ,1
129800 6946871 / sbin / init
6 init 1 root mem REG 8 ,1
51712 11665519 / lib / libnss_files -2.11.1. so
Ver se algum processo est escutando uma porta na rede suspeita, ou conec-
tado em algum lugar suspeito. Por exemplo, vrios scripts de invaso ficam
escondidos no sistema (com nomes de outros processos), conectados a ser-
vidores de IRC desconhecidos. Com o lsof, d pra saber que estes comando
esto fazendo algo que no bem o que deveriam fazer ;) ;
Quando lsof chamado sem parmetros, ele vai mostrar todos os arquivos abertos
por todos os processos.
1 # lsof
1 $ vim arquivo
Agora abra outro terminal e descubra quem est utilizando o comando vim no sis-
tema:
Nos mostrar quais os arquivos so abertos por processos cujos nomes comeam
pela letra "k"(klogd, kswapd . . . );
1 # lsof -c k
Nos mostrar quais arquivos so abertos por processos cujo nome comea com
bash:
1 # lsof -c bash
Nos mostrar quais os arquivos so abertos por processos cujos nomes comeam por
"bash", mas exclui aqueles cujo proprietrio o usurio "aluno":
1 # lsof -u aluno
1 # lsof +p 1
1 # lsof +D / tmp
Onde X o ip do amigo.
1 # lsof -i :22
Para definir uma outra prioridade a um processo na hora que este ir ser executado
devemos executar o comando nice, j se ele j estiver em execuo utilize o renice:
1 # ekiga
1 # killall ekiga
www.4linux.com.br
Contedo
2
Manipulando Hardware e Dispositivos
3
13.1 Introduo terica 4Linux www.4linux.com.br
fifo - conhecido tambm como named pipe um dispositivo utilizado para realizar
a comunicao entre dois processos independentes;
/dev/ttyX Quando voc se loga no seu Linux, voc acaba de se logar nesse terminal.
Ou seja, um terminal serve para voc se logar e usar uma shell (interpretador de
comandos). O /dev/ttyX corresponde a cada terminal, onde X vai ser substitudo pelo
nmero do terminal (so 63 ao todo). Voc tambm pode se deparar com /dev/ttypX.
Neste caso para terminais acessados por telnet/ssh.
/dev/ttySX Portas seriais! Na verso 2.2.x do kernel, estas portas seriais correspon-
dem ao modem, ao mouse, e outras coisas ligadas nas COMs. Veja a tabela:
Agora se voc usa um kernel velho de verso anterior a 2.2.x, ao invs de ser
/dev/ttySX, vai ser /dev/cuaX. Ou seja, voc ter os equivalentes como /dev/cua0,
/dev/cua1, /dev/cua2 e /dev/cua3. E estes dispositivos /dev/cuaX so usados para
determinar os modems.
/dev/null Este um dispositivo nulo, ou seja, tudo que voc mandar ou se referir a
ele ser descartado.
Um mouse USB representado pelo arquivo /dev/input/mice, que pode ser tra-
duzido como: dispositivo (DEV) de entrada (INPUT) do tipo apontador (MICE
outro termo para rato, em ingls). Um mouse PS/2 segue uma nomenclatura um
pouco mais complicada e representada pelo arquivo /dev/psaux, que pode ser
interpretado como dispositivo auxiliar na porta PS.
Para alguns dispositivos como o mouse, podemos realmente ver a interao com o
arquivo que representa o dispositivo. No exemplo abaixo, usamos o comando cat
para mostrar o contedo do arquivo de dispositivo de mouse (mexa o mouse depois
de pressionar ENTER, aps os comandos abaixo):
Os discos IDE ainda so maioria no mercado, mas a tecnologia vem dando lugar ao
padro SATA. Tanto o padro IDE como o SATA so considerados econmicos
e mais voltados para computadores pessoais ou estaes de trabalho.
Por outro lado, o padro dos dispositivos SATA e SCSI comeam por sd. Assim
sendo, temos sda para o primeiro dispositivo SATA ou SCSI, sdb para o se-
gundo, e assim por diante. Uma controladora SCSI de 8 bits pode comportar at 7
dispositivos, alm da prpria controladora. Para as de 16 bits, o nmero mximo de
dispositivos 15.
Uma partio uma diviso lgica do seu disco rgido, criada por questes de or-
ganizao, convenincia, flexibilidade ou segurana. Nos sistemas baseados em re-
presentao por letras, um disco rgido sata pode ser dividido, particionado de forma
a ser visto no GNU/Linux em /dev/sda1 e /dev/sda2.
Tipos de parties
Parties primrias
/dev/sda1
/dev/sda2
/dev/sda3
/dev/sda4
Partio estendida
Isso mesmo, no singular. S pode haver uma partio estendida em cada disco.
Uma partio estendida um tipo especial de partio primria que no pode conter
um sistema de arquivos. Ao invs disso, ela contm parties lgicas. Se existir uma
partio estendida, ela toma o lugar de uma das parties primrias, podendo haver
apenas trs.
Se houver, por exemplo, trs parties no disco, sendo duas primrias e uma esten-
dida, o esquema de nomes ficar assim:
/dev/sda1 (Primria)
/dev/sda2 (Primria)
/dev/sda4 (Estendida)
Parties lgicas
/dev/sda1 (Primria)
/dev/sda2 (Primria)
/dev/sda4 (Estendida)
/dev/sda5 (Lgica)
/dev/sda6 (Lgica)
/dev/sda7 (Lgica)
Note que, neste caso, no h uma partio nomeada como /dev/sda4, pois os nume-
ros de 1 a 4 so reservados para parties primrias e para a partio estendida.
abaixo:
Para interromper a sada do comando, que pode ser bastante demorada, pressione
a combinao de teclas Ctrl + c (mantenha a tecla Ctrl pressionada e pressione a
letra c). Caso a tela do seu console continue a mostrar caracteres estranhos, digite
reset.
O ltimo comando mostra uma sada que seres humanos no conseguem entender.
Elas representam a maneira como os dados foram armazenados em /dev/hda1.
Para que o sistema operacional GNU/Linux apresente estes dados de uma forma
mais legvel, necessrio solicitar ao sistema um processo de traduo. Este pro-
cesso chamado de montagem de dispositivos.
Ento para que a partio /dev/sda1 seja usada, necessrio montar esta partio
em algum local e acess-lo. Este local, que um diretrio no sistema de arquivos,
chamado de ponto de montagem. Podemos montar um dispositivo de armaze-
namento em qualquer diretrio do sistema de arquivos, contudo, existem algumas
convenes:
Dispositivos removveis devem ser montados em /media (em outras pocas em /mnt).
Exemplos:
No caso dos discos rgidos, uma partio montada diretamente na raiz do sistema
de arquivos ou em um diretrio diretamente abaixo da raiz.
Agora que j sabemos como montar um dispositivo precisamos saber como criar
uma partio manualmente. Para isso, h duas ferramentas importantes, que fazem
a mesma coisa, disponveis em sistemas GNU/Linux, so elas: fdisk e cfdisk.
Sintaxe:
1 # fdisk [ dispositivo ]
Utilizando:
Para criarmos uma nova partio devemos, antes, ver se temos espao disponvel
para isso, ou seja, precisamos imprimir a tabela de parties utilizando a letra p.
Se houver espao disponvel para a criao de uma nova partio basta pressionar
a letra n e informar o tipo da partio (primria ou estendida) e seu tamanho. 1
crie uma partio:
1 l
3 inico da partio:
Uma vez executado esse comando, a tela do cfdisk se abrir como mostrado na
figura:
A utilizao do cfdisk bastante intuitiva, utilizando as setas para cima e para baixo
voc navega pela listagem das parties e, utilizando as setas para a esquerda e
direita, voc navega pelo menu na parte inferior da tela.
Para criar uma nova partio basta selecionar na listagem de parties a linha que
contm espao livre e entrar na opo New no menu inferior. Se ainda for possvel
criar parties primrias surgir a pergunta pelo tipo da partio, caso contrrio,
surgir a pergunta para especificar quanto espao deve ser destinado para essa
partio.
Aps realizar todas as alteraes, escolha, no menu inferior, a opo Write para
salv-las. Uma pergunta pedindo que voc confirme as alteraes ir aparecer. Sua
resposta deve ser sim ou no com todas as trs letras! Afinal, voc o root e
sabe o que est fazendo.
Observe que a partio criada ainda no aparece, isto porque a tabela de partici-
onamento do seu hd no foi relida, para no ter que reiniciar, instale o programa
parted:
1 # partprobe
Para que possamos gravar informaes de forma estruturada na partio que aca-
bamos de criar precisamos aplicar um filesystem a ela.
xfs - Usado geralmente em banco de dados, tem suas vantagens com objetos muito
grandes.
jfs (Journaling File System) : criado pela IBM para uso em servidores corporativos,
teve seu cdigo liberado.
Exemplos de sistemas de arquivos que suportam journaling: Ext3, Ext4, JFS, JFFS,
O FileSystem escolhido para ser utilizado no device deve ser suportado pelo ker-
nel. Para consultar quais FileSystem so suportados pelo kernel em uso, basta
consultar o arquivo /proc/filesystems. Caso o FileSystem desejado no esteja na
lista, pode-se buscar por ele nos repositrios do GNU/Linux para instal-lo e ativ-lo
como mdulo do Kernel (item que estudaremos mais tarde no Treinamento 451).
O tamanho de cada partio definido no momento de sua criao. Mas parece bas-
tante bvio que depois de algum tempo ser necessrio determinar quanto espao foi
consumido pelos arquivos e diretrios e quanto espao livre existe. O comando que
mostra o espao total e o espao utilizado de todas as parties montadas chama-se
df. Uma de suas caractersticas que o clculo dos espaos sempre uma apro-
ximao para a unidade de medida mais prxima, mais legvel para o ser humano.
O comando que faz esse trabalho o du. Veja a seguir alguns exemplos de seu
uso.
Aproxima para a unidade de medida mais prxima, mais legvel para o ser humano.
Mostra em bytes:
Mostra em kilobytes:
Mostra em megabytes:
1 # blkid
2 / dev / sda1 : UUID = " f541a97e - ef19 -4 e47 - b305 - b535a75c932a " TYPE = " ext3 "
LABEL = " MAIN "
3 / dev / sda3 : UUID = " 7 C444A56444A12F6 " TYPE = " ntfs " LABEL = " WIN "
4 / dev / sda5 : TYPE = " swap "
5 / dev / sda6 : UUID = " 69 ff8ed5 - c09b -49 b6 - b21d -328 e90243efa " TYPE = " ext3 "
LABEL = " HOME "
6 / dev / sda7 : UUID = " 2 c070d34 -5 c6e -4504 -8 d4b -9 a8fa910548d " TYPE = " ext3 "
LABEL = " STORAGE "
7 / dev / sda8 : UUID = " 489 B -5 A22 " TYPE = " vfat " LABEL = " CENTER "
4 lrwxrwxrwx 1 root root 10 2009 -03 -06 10:41 489 B -5 A22 -> ../../ sda8
5 lrwxrwxrwx 1 root root 10 2009 -03 -06 10:41 69 ff8ed5 - c09b -49 b6 - b21d
-328 e90243efa -> ../../ sda6
6 lrwxrwxrwx 1 root root 10 2009 -03 -06 10:41 7 C444A56444A12F6 ->
../../ sda3
7 lrwxrwxrwx 1 root root 10 2009 -03 -06 10:41 f541a97e - ef19 -4 e47 - b305 -
b535a75c932a -> ../../ sda1
Outra forma de visualizar o UUID e tambm o LABEL o tune2fs para parties com
arquivios de sistema ext:
Cheque a alterao:
Parties REISERFS:
Parties EXT2/EXT3/EXT4:
Parties NTFS:
Parties Fat16/Fat32:
Parties JFS:
Parties XFS:
Parties SWAP:
O comando usado para montar dispositivos mount. Sem o uso de nenhum pa-
rmetro, ele mostra os dispositivos de armazenamento que esto montados em seu
computador junto com a configurao usada para mont-los.
1 # mount
1 # mount -t < tipo > -o < op es > < dispositivo > < ponto - de - montagem >
1 # man mount
Para que seja possvel acessar o contedo de algum dispositivo precisamos de qua-
tro itens bsicos:
determine o filesystem:
-l permite mais de 31 caracteres para o nome do arquivo, pode ser que o MS-
DOS no consiga enxergar estes caracteres, j que ele trabalha com um proto-
colo 8.3;
-v modo verbose;
Vamos criar um arquivo ISO, ou seja, o tipo de arquivo para CD-ROM. Para isso
utilizaremos o arquivo dd pra gerar um arquivo e genisoimage para aplicar o sistema
de arquivo ISO9660:
Montando a partio:
A opo -o loop utilizada quando se quer montar um arquivo ISO que est locali-
zado no HD.
1 # mount
A especificao do dispositivo
O ponto de montagem
1 # df
Desmontando:
1 $ cd / media / cdrom
ou de forma equivalente:
Verifique que no foi possvel, isto porque existe algum acessando o diretrio, para
descobrir quais os processos que esto utilizando o /media/cdrom faa:
-i : pede confirmao antes de matar um processo (usado junto com a opo -k).
Ou seja:
A letra que aparece logo aps o PID representa o tipo de acesso, onde podemos ter,
por exemplo:
Verifique que o usurio aluno est acessando o diretrio e por isso no possvel
desmontar o volume, aps descobrir, mate o processo:
www.4linux.com.br
Contedo
2
Gerenciamento Avanado de
Parties
1 # mkdir / teste
3
14.1 Introduo Terica 4Linux www.4linux.com.br
1 # cp -r / etc /* / teste
Desmontar a partio:
1 # umount / teste
Montando a partio:
1 # mount
Desmontar dispositivo:
1 # umount / teste
Debian:
CentOS:
1 # mount
1 # mount
2 # df -h
3 # cat / etc / mtab
4 # cat / proc / mounts
Desmontar dispositivo:
1 # umount / teste
Este tipo de partio utilizado para fornecer suporte a memria virtual ao GNU/Li-
nux em adio a memria RAM instalada no sistema. Este tipo de partio identi-
ficado pelo tipo 82 nos programas de particionamento de disco para Linux. Somente
os dados na memria RAM so processados pelo processador, por ser mais rpida.
Desta maneira quando voc estiver executando um programa e a memria RAM
comear a encher, o GNU/Linux mover automaticamente os dados que no esto
sendo utilizados para a partio Swap e libera a memria RAM para continuar car-
regando os dados necessrios pelo programa. Quando os dados movidos para a
partio Swap so solicitados, o GNU/Linux move os dados da partio Swap para
a Memria. Por este motivo a partio Swap tambm chamada de rea de Troca
ou memria virtual. A velocidade em que os dados so movimentados da memria
RAM para a partio muito alta.
ou
1 # swapon -s
O comando swap tem a opo -p que habilita a prioridade: -p, priority <n>
Quanto maior o nmero maior a prioridade que pode variar entre 0 e 32767.
Ou:
1 # swapon -s
1 < file system > < mount point > < type > < options > < dump > < pass >
2 proc / proc proc defaults 0 0
3 / dev / sda1 / boot ext3 defaults 0 1
4 / dev / sda2 / ext3 defaults , errors = remount - ro 0 2
5 / dev / sda5 / usr ext3 defaults 0 2
6 / dev / sda6 / var ext3 defaults 0 2
7 / dev / sda7 / tmp ext3 defaults 0 2
As informaes que devem estar nesse arquivo, de acordo com o nmero da coluna,
so:
Ponto de montagem;
Opes de montagem: defaults = rw, suid, dev, exec, auto, nouser e async. Ver
man mount;
1 # free
Mais detalhes:
1 # free -m
Informaes de swap:
Para manipular parties criptografas, vamos utilizar o LUKS (Linux Unified Key Se-
tup) que fornece um padro de formato de disco para parties criptografadas, e
facilita a compatibilidade entre distribuies. Este padro permite a mltiplos usuri-
os/senhas, a revogao efetiva de senha e fornece segurana adicional contra ata-
ques de baixa entropia.
1 # modprobe dm_crypt
2 # modprobe dm_mod
1 # lsmod | grep dm
2 dm_crypt 9196 0
3 dm_mod 46122 1 dm_crypt
Se vamos criptografar uma partio que j est montada e j contm dados, temos
que fazer um Backup pois na construo do sistema de criptografia, os dados sero
perdidos. Caso seja uma partio que ainda no contenha dados esse procedimento
mais tranquilo. Como exemplo utilize alguma partio sem nenhum sistema de
arquivo aplicado.
Antes de podermos abrir uma partio encriptada precisamos inicializ-la. Este pro-
cedimento sera feito atravs do comando cryptsetup, que gerencia parties cripto-
grafas, permitindo operaes de criao, remoo, redimensionamento e status.
Use o comando blkid para identificar o nossa partio como um dispositivo do tipo
crypt_LUKS.
Com a opo luksOpen nosso dispositivo /dev/sdc1 foi mapeado para /dev/mapper/-
cryptfs, e a partir de agora s pode ser acessado por por este caminho!
Testando o funcionamento:
Toda vez que o computador for iniciado ou este disco montando em outras
maquinas, sera solicitada a frase secreta!
1 # cryptdisks_start cryptfs
2 Starting crypto disk ... cryptfs ( starting ) ...
3 Unlocking the disk / dev / sdc1 ( cryptfs )
4 Enter passphrase : ( Digite uma frase secreta )
5 cryptfs ( started ) ... done
Esta pratica pode ser feita atravs do pacote autofs5, usado para controlar a ope-
rao dos "daemons"de auto montagem. Os "daemons"de auto montagem automa-
ticamente montam sistemas de arquivos quando eles so usados e desmontados
aps um perodo de inatividade.
Para testar o automount comece criando uma configurao para o ponto de monta-
gem /dexter/montagem/banco:
Para testar acesse o diretrio /mnt/seguro e use o comando df para listar a partio
montada de forma automtica:
1 # cd / mnt / seguro
2 # df -Th
www.4linux.com.br
Contedo
Inicializao do Sistema 2
15.1 Introduo Terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
15.1.1 System V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
15.1.2 Nveis de Execuo - System V . . . . . . . . . . . . . . . . . 4
15.1.3 O que faz um script de inicializao? . . . . . . . . . . . . . . 7
15.1.4 Removendo um Script da Inicializao . . . . . . . . . . . . . 10
15.1.5 Gerenciando Servios . . . . . . . . . . . . . . . . . . . . . . 12
2
Inicializao do Sistema
Os links nos permitem fazer modificaes nos arquivos originais, assim no precisa-
mos alterar o arquivo original e sua cpia.
15.1.1 System V
O Padro System V define, entre outras coisas, como deve ser a inicializao dos
servios do sistema. Ele trabalha com nveis de inicializao, os chamados runle-
vels, havendo oito deles que sero descritos posteriormente.
3
15.1 Introduo Terica 4Linux www.4linux.com.br
1 # runlevel
2 N 2
Onde:
2 - nvel atual.
1 # init 3
1 # runlevel
2 2 3
1 # init 1
1 # runlevel
2 1 S
Nesses diretrios haver links para os scripts de inicializao e/ou finalizao dos
servios e o nome desses links indicar se o servio deve ser iniciado ou finalizado
e qual ser a ordem que ser seguida para isso.
Por exemplo, se um servio comea por S18 como o caso do ssh cujo nome dentro
do rc2.d S18ssh; ele ser o servio a ser iniciado aps todos os servios com
nmero menor que o dele serem iniciados. Por exemplo, ele ser iniciado aps o
servio portmap cujo nome do link S14portmap, caso exista outro servio com o
mesmo nmero de inicializao do ssh, como o agendador de tarefas at cujo nome
do link S18atd, a ordem de inicializao se dar pela ordem alfabtica, ou seja o
S18atd ser executado antes de S18ssh.
No caso de um desses links ter seu nome iniciando pela letra K esse servio ser
finalizado quando o runlevel correspondente for iniciado. Dessa forma se existir um
link chamado K01atd no runlevel 0 (/etc/rc0.d), quando mudarmos para esse runle-
vel, se o atd estiver ativo ele ser o um dos primeiros a ser desativado.
Base (LSB). Com a adeso deste padro agora existe um cabealho em todos os
scripts de inicializao onde so indicadas as dependncias que ele necessita para
poder ser executado, fazendo com que o script inicie s depois de tais dependn-
cias.
Esta funcionalidade ativada pelo comando insserv que ordena os scripts init.d
baseando-se nas suas dependncias declaradas nos cabealhos. Ou seja, para
adicionar/remover servios da inicializao no Debian 6.0 no se usa mais o "update-
rc.d"e sim o "insserv"!
Vamos usar o comando head que mostra por padro as 10 primeiras linhas e verificar
o cabealho de inicializao do ssh:
- Required-Start: Defini scripts que devem ser inicializados antes de carregar este
script.
- Required-Stop: Defini scripts que devem ser parados, antes de descarregar este
script.
- Should-Stop: Defini que ir parar s depois que os servios declarados forem pa-
rados.
Valores genricos:
1 $local_fs
2 Todos os arquivos locais de sistema s o montados ..
3 $network
4 Baixo n vel de rede . ( placa de rede ; PCMCIA )
5 $named
6 Daemons que podem fornecer resolu o de nomes , como por exemplo :
DNS , NIS , LDAP .
7 $portmap
8 Daemon que fornece mapeamento de portas .
9 $remote_fs
10 Todos arquivos de sistema est o montados .
11 $syslog
12 Logs do sistema operacional .
13 $time
14 Daemons utilizados para definir a hora do sistema , como ntpdate ,
ntp , rdate .
15 $all
Suportado pelo insserv para iniciar depois que todos os outros scripts forem carre-
gados na sequncia de inicializao. Somente trabalha para inicializar, para descar-
regar no possvel, pois nenhum script depende de todos.
Debian:
1 # insserv - rv ssh
2 insserv : remove service / etc / init . d /../ rc2 . d / S18ssh
3 insserv : remove service / etc / init . d /../ rc3 . d / S18ssh
4 insserv : remove service / etc / init . d /../ rc4 . d / S18ssh
5 insserv : remove service / etc / init . d /../ rc5 . d / S18ssh
6 insserv : creating . depend . boot
7 insserv : creating . depend . start
8 insserv : creating . depend . stop
1 # insserv -v ssh
2 insserv : enable service ../ init . d / cron -> / etc / init . d /../ rc2 . d /
S18ssh
3 insserv : enable service ../ init . d / cron -> / etc / init . d /../ rc3 . d /
S18ssh
4 insserv : enable service ../ init . d / cron -> / etc / init . d /../ rc4 . d /
S18ssh
5 insserv : enable service ../ init . d / cron -> / etc / init . d /../ rc5 . d /
S18ssh
red hat
Red Hat: Nvel 0 desliga o sistema; Nvel 1 modo mono usurio; Nvel 2 multi-
usurio, sem NFS; Nvel 3 multi-usurio, com NFS, sem X; Nvel 4 no usado; Nvel
5 multi-usurio com NFS e X; Nvel 6 reinicializar o sistema;
Onde:
1 # chkconfig :
<Nveis de execuo para inicializao> 2345 <ordem iniciar S> S55 <ordem parar
K> K25
- description: Descrio
1 # chkconfig -- list
Ou:
Nota: Estas linhas garantem que o servio do ssh esteja desabilitado no prximo
reboot. Para desligar o mesmo servio sem precisar reiniciar a mquina use o co-
mando:
Se no desligares o servio com chkconfig, ele ser reinicializado da prxima vez que
o computador for reiniciado, mesmo que o tenhas parado atravs do script apropriado
(notar que stop um argumento de entrada para o mesmo script). Por isso para
parar imediatamente e desativar permanentemente o servio deves usar:
Ou:
1 # chkconfig sshd on
Ou:
www.4linux.com.br
Contedo
Introduo ao Upstart 2
0.1 Introduo ao Upstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
0.2 Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
0.3 Diretrios e arquivos de configurao . . . . . . . . . . . . . . . . . . . 4
0.4 Como possvel chamar um evento? . . . . . . . . . . . . . . . . . . . 6
0.5 Personalizar novos scripts . . . . . . . . . . . . . . . . . . . . . . . . . 7
Introduo ao Systemd 9
0.6 Introduo ao Systemd . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
0.7 Instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
0.8 Diretrios e arquivos de configurao . . . . . . . . . . . . . . . . . . . 11
0.9 Unidade de Servios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
0.10 Gerenciando servios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
0.11 Personalizar novos scripts . . . . . . . . . . . . . . . . . . . . . . . . . 16
0.12 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
0.13 Testando a montagem automatica . . . . . . . . . . . . . . . . . . . . . 19
2
4Linux www.4linux.com.br 0.2 Instalao
O Upstart comparado ao SysV init mais rpido porque consegue executar os scripts
de inicializao de forma paralela, dependendo que eventos sejam definidos na incia-
lizao do sistema. Uma outra vantagem que o Upstart pode monitorar um servio,
e em caso de interrupo o mesmo inicializado de forma automtica.
0.2 Instalao
O Upstart ainda usado no webOS da HP para o Palm Pre, Palm Pixi (ambos an-
tes de a Palm foi comprada pela HP), HP Veer, e HP Pre 3 telefones inteligentes,
juntamente com o tablet TouchPad HP.
1 # ls -l / etc / init
Quando voc instala novos servios, sero acrescentados novos arquivos neste di-
retrio para controlar o servio instalado, substituindo os arquivos que foram previa-
mente colocados no diretrios /etc/rc.d/rc* e /etc/rc.d/init.d.
Para aprender um pouco mais sobre o Upstart abra um arquivo .conf do diretrio
/etc/init.
Em nosso exemplo temos o arquivo que configura o evento CTRL + AL +DEL. Acom-
panhe a seguir a descrio das linhas:
start on: Define em qual evento o arquivo sera lido. Em nosso exemplo toda vez
que for acionado a combinao de teclas CTRL + ALT +DEL, a prxima linha
sera lida;
O que um evento?
Para combinar dois eventos ao mesmo tempo use and entre as opes:
Comando initctl
1 # initctl list
2 rc stop / waiting
3 tty (/ dev / tty3 ) start / running , process 1662
4 tty (/ dev / tty2 ) start / running , process 1660
5 tty (/ dev / tty6 ) start / running , process 1674
6 tty (/ dev / tty5 ) start / running , process 1666
7 tty (/ dev / tty4 ) start / running , process 1664
8 plymouth - shutdown stop / waiting
9 control - alt - delete stop / waiting
10 rcS - emergency stop / waiting
11 readahead - collector stop / waiting
12 kexec - disable stop / waiting
13 rcS stop / waiting
14 prefdm start / running , process 3997
Como exemplo vamos criar um script que ira gravar a data e hora de 3 em 3 segundos
em um arquivo no diretrio do root.
1 # start date
2 date start / running , process 6219
1 # status date
2 date start / running , process 6219
1 # stop date
2 date stop / waiting
Agora para testar a opo respawn inicie o script date e use o comando kill -9
PID do mesmo. Ao usar comando status o script volta a se executado de forma
automtica.
1 # start date
2 date start / running , process 6317
1 # kill -9 6317
2 # status date
3 date start / running , process 6340
0.7 Instalao
i386: http://fedora.c3sl.ufpr.br/linux/releases/15/Fedora/i386/iso/Fedora-15-
i386-DVD.iso
x86_64: http://fedora.c3sl.ufpr.br/linux/releases/15/Fedora/x86_64/iso/Fedora-
15-x86_64-DVD.iso
1 # ls -l / sbin / init
2 lrwxrwxrwx . 1 root root 14 Abr 24 16:52 / sbin / init -> ../ bin / systemd
O sistema cria um link de nome init para carregar durante a inicializao, mas na
verdade que carregado o systemd.
Para trazer informaes sobre a unidade de servio ntp use a opo status:
O que temos de novo o estado (running) a data e hora que foi ativado e o PID
Isso quer dizer que quando um servio ativado ele ganha um link simblico no dire-
trio /etc/systemd/system/multi-user.target.wants/, como foi o caso do ntpd.service!
Quando usamos o SysVinit a alterao era feita atravs do arquivo /etc/inittab, mas
no Systemd essa alterao feita atravs de arquivos .target e links. Exemplo:
O comando retorna que o runlevel padro aponta para o arquivo default.traget, que
aponta para o graphical.target que corresponde ao modo grfico no Systemd.
Para definir o modo texto como padro de inicializao, o default.target deve ser um
link apontando para o arquivo multi-user.target. Veja no exemplo:
1 # ln -sf / lib / systemd / system / multi - user . target / etc / systemd / system /
default . target
Ainda possvel verificar qual o modo de inicializao esta definido (grfico ou texto)
atravs do comando systemctl com a opo list-units
Agora toda vez que a maquina for iniciada o modo de execuo sera em texto e
multiusurio. Para alternar para o modo grfico use a opo isolate atravs do
comando systemctl.
0.12 Troubleshooting
Crie uma nova partio atravs do comando fdisk, aplique o sistema de arquivos
EXT4 e crie um ponto de montagem na raiz
Roteiro:
As opes para montagem so bem simples de entender. What define qual dispo-
sitivo sera montado, Where o ponto de montagem, Type o sistema de arquivos e
Options opo de montagem.
O detalhe que ele esta ativo mais aguardando algum acesso no diretrio /dados.
Use o comando cd /dados para montar de forma automtica, e use a opo status
para verificar a diferena.
1 # cd / dados
2 # systemctl status dados . automount
3 dados . automount - Montagem autom tica do / dados
4 Loaded : loaded (/ etc / systemd / system / dados . automount )
5 Active : active ( running ) since Tue , 24 Apr 2012 20:39:14 -0300; 2
min 55 s ago
6 Where : / dados
www.4linux.com.br
Contedo
Servidor X 2
17 Servidor X 3
17.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
17.2 Configurando o suporte Interface Grfica . . . . . . . . . . . . . . . . 4
17.3 Varivel de Ambiente DISPLAY . . . . . . . . . . . . . . . . . . . . . . 5
17.4 Window Managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
17.5 Display Managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
17.6 Protocolo XDMCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
17.7 Xnest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
17.7.1 Instalao e Configurao do Servidor X . . . . . . . . . . . 8
17.7.2 Instalando um Window Manager . . . . . . . . . . . . . . . . 12
17.7.3 Display Managers . . . . . . . . . . . . . . . . . . . . . . . . 14
17.7.4 Servidor X Remoto . . . . . . . . . . . . . . . . . . . . . . . 15
Acessibilidade 17
17.8 Tecnologias de assistncia . . . . . . . . . . . . . . . . . . . . . . . . . 18
17.9 GOK ( GNOME ONSCREEN KEYBOARD) - teclado virtual do Gnome 19
17.10ORCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2
Captulo 17
Servidor X
3
17.2 Configurando o suporte Interface Grfica 4Linux www.4linux.com.br
1 # X - configure
ServerLayout
InputDevice (mouse)
Screen
InputDevice (keyboard)
Files
Modules
InputDevice (mouse)
InputDevice (keyboard)
Screen
Monitor
Displays
Ou seja, o arquivo composto de vrias sees que definem qual ser o compor-
tamento dos dispositivos como teclado, mouse, monitor e placa de vdeo e algumas
outras, que definem recursos que o servido X ir utilizar, como os mdulos que sero
carregados e os arquivos de fontes, por exemplo.
A varivel de ambiente DISPLAY a que define em que lugar a sada grfica deve
ser mostrada. Com essa varivel definida possvel at informar ao sistema que a
sada grfica se dar em outro computador na rede. O formato de definio dessa
varivel o seguinte:
Ao contrrio dos sistemas da Apple e Microsoft, que possuem apenas uma nica
aparncia bsica, e que de controle delas, nos sistemas GNU/Linux voc livre
para escolher qual o gerenciador de janelas que ir utilizar.
Esta uma forma de utilizar a parte grfica de outro computador, em uma mquina
com menos recursos de hardware, pois o processamento de interface grfica estar
ocorrendo na mquina servidora.
17.7 Xnest
Um Xnest uma instncia do servidor X que pode ser utilizada para receber al-
guma sada grfica que tenha sido redirecionada a ela utilizando a varivel DIS-
PLAY. Pode ser utilizada tambm para receber um DM solicitado via XDMCP.
1 # wininfo
1 # xdpyinfo
Pare o servidor x:
1 # dexconf
1 # X - configure
29 Modes " 1024 x768 " " 800 x600 " " 640 x480 "
30 EndSubSection
31
32 SubSection " Display "
33 Depth 24
34 Modes " 1024 x768 " " 800 x600 " " 640 x480 "
35 EndSubSection
36 EndSection
37
38 Section " ServerLayout "
39 Identifier " Default Layout "
40 Screen " Default Screen "
41 InputDevice " Generic Keyboard "
42 InputDevice " Configured Mouse "
43 EndSection
Leitura sugerida para mais informaes a respeito desse arquivo e suas op-
es de configurao e parmetros: man xorg.conf
Realizadas as alteraes, vamos fazer um novo teste para ver se o servidor consegue
carregar a parte grfica.
Teste as configuraes:
1 # X
2 Ou :
3 # startx
No GNU/Linux podemos ter vrios Clientes Grficos. Depois que o servidor gr-
fico j est instalado e configurado, s vamos ter o trabalho de instalar os clientes
grficos.
1 # startx
3) Para o prximo teste, vamos instalar outro cliente grfico que muito utilizado, o
KDE:
1 # startx
Note que foi utilizado o mesmo comando para iniciar tanto WindowMaker
quanto o KDE: o startx. Isso acontece porque ao instalarmos o KDE ele se
definiu como sendo o WM padro do sistema, mas isso pode ser alterado.
Podemos editar o arquivo /root/.xinitrc para escolhermos qual cliente grfico ser
iniciado quando o usurio root utilizar o comando startx. Essa configurao
vlida apenas para o usurio root, pois alteramos o xinitrc da home do root:
1 # vi / root /. xinitrc
Para que alterao seja vlida para qualquer usurio, devemos editar o arquivo de
configurao global:
Lembrando que uma configurao local, ou seja, o arquivo pessoal do usurio, pre-
valece sobre o global, caso o usurio especifique um. Vamos instalar o pacote do
XFCE:
Vimos no tpico anterior como iniciar o nosso cliente grfico utilizando o comando
startx, mas isso nem sempre muito prtico. Para facilitar esse processo, podemos
utilizar os chamados Display Managers.
Sero feitas algumas perguntas sobre qual ser o seu Display Manager Default, o
kdm ou xdm? Escolha sempre o kdm, pois dessa maneira toda vez que o seu
sistema iniciar, ele vai ativar automaticamente o kdm no terminal 7, por padro.
Para iniciar o kdm igual. Lembrando que os demais display managers devem
estar parados!
Se quiser mudar o seu Display Manager padro, basta editar o seguinte arquivo:
Utilizaremos o Display Manager gdm para fazer esse servio. Vamos editar o ar-
quivo onde ativaremos o XDMCP para o gdm3:
1 [ security ]
2 DisallowTCP = false
3
4 [ xdmcp ]
5 Enable = true
1 # xhost +192.168.0.1
1 # xhost -192.168.0.1
(cliente)Em outra mquina exporte seu DISPLAY, ou seja, sua sada grfica:
1 # gedit
(cliente)til seria poder usar o recurso do servidor em uma mquina mais antiga:
1 # X - query 192.168.0.1 :1
Ampliadores de tela:so teis para pessoas com baixa viso, funcionam como uma
lente de aumento. Pode-se controlar qual rea da tela querem ampliar, assim como
mover o foco dinamicamente. Os ampliadores tambm so conhecidos como lupas
ou programas que fazem uma cpia grande.
Ferramentas de teclado:usados por aqueles que possuem algum problema para da-
tilografar e controlar o mouse. Por meio deste, possvel executar seqncias com-
plicadas em srie (por exemplo: ctrl + alt + del), controlar o ponteiro do mouse e as
teclas do teclado.
18
4Linux www.4linux.com.br
17.9 GOK ( GNOME ONSCREEN KEYBOARD) - teclado virtual do Gnome
O projeto GOK visa permitir aos usurios acessar todas as funes do computador
sem que, para isso, necessite de interagir com o mouse e/ou teclado. Ou seja, como
vrios usurios possuem limitao nos movimentos voluntrios, o acesso s funes
do computador realizado usando mtodos alternativos de entrada. Tais mtodos
de entrada podem ser controlados pela ao de movimentar os olhos, a cabea, os
lbios ou contrair os msculos.
Desta maneira, todos os usurios podem ter acesso universal s aplicaes e funci-
onalidades do GNOME.
ou
1 # gok
Caso o suporte para tecnologias assistivas no estiver liberado no seu sistema quando
comear, esta tela aparecer:
Na tela principal:
Por meio das teclas dessa janela, podem ser ativadas vrias opes:
17.10 ORCA
Orca um leitor de tela. Tudo o que est na tela ele l e diz atravs do alto-falante
do computador.
O mesmo que o Orca, ou seja, prov uma interface em modo texto para usurios que
tem problemas visuais que usado como leitor de tela.)