APOSTILA DE LINUX BASICO

Diego Lages

Felipe Quintella

Fernando Correa

Paulo H B de Oliveira

dlages@lci.ufrj.br

mithos@lci.ufrj.br

frc@lci.ufrj.br

baptista@lci.ufrj.br

c 1998 LINUX SOLUTIONS
Copyleft

Esse trabalho pode ser copiado livremente em partes ou no todo desde que se mantenham os
nomes dos autores e todo trabalho derivado dela mantenha-se aberto e as informaco~es aqui
contidas n~ao sejam deturpadas - Licenca GPL (http://www.gnu.org/philosophy)
LINUX SOLUTIONS e uma empresa de Consultoria e Desenvolvimento em Linux
http://linuxsolutions.net

Sumario
1 Motivac~ao
1.1 Por qu^e Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6
6

2 Conceitos
2.1 Introduc~ao . . . . . . . . . . . . .
2.2 O UNIX . . . . . . . . . . . . . .
2.2.1 De nic~ao . . . . . . . . .
2.2.2 Historia . . . . . . . . . .
2.3 O Linux . . . . . . . . . . . . . .
2.3.1 De nic~ao . . . . . . . . .
2.3.2 Historia . . . . . . . . . .
2.3.3 As Distribuic~oes de Linux
2.3.4 O que o Linux oferece . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

7
7
7
7
7
8
8
8
8
8

3 Primeiros Passos
3.1 Instalac~ao . . . . . . . . . . . . . . . . .
3.1.1 Introduc~ao . . . . . . . . . . . .
3.1.2 Instalac~ao . . . . . . . . . . . . .
3.2 Manutenc~ao e atualizac~ao de programas
3.3 Con gurac~ao do LILO . . . . . . . . . .
3.4 Con gurac~ao do XWindow . . . . . . .
3.5 Adic~ao de novos usuarios . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

10
10
10
10
11
12
13
14

4 Comandos Basicos
4.1 Introduc~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Comandos basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Redirecionamento da entrada e sada de comandos . . . . . . . . . . . . . . . . . . . . . . . .

15
15
16
17

5 O Sistema de Arquivos
5.1 Introduc~ao . . . . . . . . .
5.2 A Estrutura de diretorios
5.3 Protec~ao de Arquivos . . .
5.4 Protec~ao de Arquivos . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

18
18
18
20
22

6 Aplicativos Basicos
6.1 O editor de textos vi . . .
6.2 O bash . . . . . . . . . . .
6.3 O editor de textos Emacs
6.3.1 Historia . . . . . .
6.3.2 Usando o Emacs .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

23
23
24
25
25
25

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

2

7 Aplicativos de Rede
7.1 Introduc~ao . . . . .
7.2 FTP . . . . . . . .
7.3 Telnet . . . . . . .
7.4 E-MAIL . . . . . .
7.5 DNS . . . . . . . .
7.6 NFS . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

26
26
26
27
28
28
28

8 O XWindow
29
8.1 De nic~ao e historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.2 Window managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8.2.1 Con gurando um novo Window Manager . . . . . . . . . . . . . . . . . . . . . . . . . 32

3

Lista de Figuras
3.1 XF86Setup: Con gurando a placa de vdeo . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

4.1 Rxvt: onde s~ao digitados os comandos basicos no Linux . . . . . . . . . . . . . . . . . . . . .

15

6.1 XEmacs em ac~ao: Programando em C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

8.1 Window Maker em ac~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

4

Lista de Tabelas
4.1 Comandos mais usados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Arquivos padr~oes de entrada e sada de comandos . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Redirec~ao de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16
17
17

5.1 Protec~ao de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Classi cac~ao de diretorios: EstaticosVariaveis, CompartilhaveisN~ao-Compartilhaveis . . .

21
22

7.1 FTP 

UNIX

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

27

Cap 
tulo 1

Motivac~ao
1.1 Por qu^e Linux?
Ha algum tempo, uma realidade tem intrigado pessoas ligadas a informatica: como uma area t~ao complexa
e fascinante como a computaca~o pode ter uma unica empresa fornecedora de todas soluc~oes? Essa empresa
ja foi a IBM e, atualmente, e a Microsoft.
Desde simples usuarios, passando por programadores e analistas, chegando aos gerentes, todos so enxergam uma soluc~ao para todos os problemas resolvidos pela computac~ao:
aquela que vem dessa empresa.
Nos, programadores, analistas e amantes da computac~ao devemos conhecer outras alternativas para
podermos optar pela mais con avel, barata, adequada a situac~ao, a prova de falhas e extensvel para futuras
mudancas de realidade.
O Linux, atualmente, tem recebido apoio de varias empresas como Netscape, Corel, Digital, SUN, Intel
e Oracle. Todas usam Linux e desenvolvem produtos para Linux.
As estimativas de seu uso variam entre 5 e 10 milh~oes de computadores. Ele tem ganho muita aceitac~ao
e propaganda no mundo inteiro. Ano passado, 105 maquinas Alpha Digital com Linux, ligadas em rede,
renderizaram as cenas do lme Titanic, durante 3 meses, ininterruptamente e, mais recentemente, a Netscape
liberou o codigo fonte do seu navegador com o intuito de "contratar" programadores ao redor do mundo. O
seu presidente tomou essa decis~ao baseado em varios fatos, entre eles o de que a maioria dos programadores
com quem ele conversava a rmava que trabalhavam com o Windows e usavam o Linux em casa. A Oracle
e a Corel est~ao portando seus aplicativos para Linux. Em todas as grandes empresas do mundo tem pelo
menos um sistema Linux instalado.
O Linux possui varias vantagens, tanto do ponto de vista do usuario comum, quanto dos mais experientes.
Em poucas palavras, e um sistema estavel, barato, que vem com o codigo fonte, totalmente con guravel, permite o aproveitamento de todo o potencial do computador, alem de estar disponvel para varias plataformas
como SUN, PC 386/486/Pentium, Alphas, Macs, Silicons, PalmPilots.
Penso que o maior benefcio do Linux e o ambiente de aprendizado que ele proporciona. Nossas mentes
se abrem. Passamos a acreditar em padr~oes industriais, pesquisar a melhor ferramenta/linguagem de programac~ao para resoluc~ao de um determinado problema, podemos ate colaborar em um projeto vendo-o crescer
e aprendendo muito com ele.

6

Cap 
tulo 2

Conceitos
2.1 Introduc~ao
Para se aprender a utilizar o Linux/UNIX e necessario, primeiramente, ter uma ideia geral do que e cada
um e da historia que ambos sistemas passaram ate atingir o estagio de desenvolvimento atual. Para responder
a essas duas perguntas, vamos seguir uma serie de topicos que unidos responder~ao a nossa pergunta.

2.2 O UNIX
2.2.1 De nic~ao
O UNIX e um sistema operacional multitarefa, multiusuario, diponvel para diversos hardwares.
Ele e multiusuario porque possui a capacidade de criar opc~oes espec cas para cada usuario as quais s~ao
ativadas uma vez que usuario se loga no computador.
Ele e multitarefa, pois diferentemente do MS-DOS e do Windows, uma pessoa pode executar varios
programas ao mesmo tempo, inclusive varias pessoas podem usar o mesmo computador, ao mesmo tempo,
atraves de logins remotos.
O UNIX roda em diversos hardwares, desde um computador de bolso ate um mainframe.
Alem disso, o UNIX apresenta uma vasta gama de possibilidades relacionadas a rede, como sistema de
quota de disco, ftp, e-mail, WWW, DNS, possibilidade de diferentes nveis de acesso, de rodar programas
em background (deixar o programa rodando enquanto n~ao se esta logado) etc.

2.2.2 Historia
As razes do sistema UNIX encontram-se da necessidade, na decada de 70, de um sistema multitarefa
con avel e aplicavel ao ambiente dominante na epoca, um mainframe (um grande computador central) e
uma serie de terminais ligados a ele.
Abaixo listamos um cronograma da criac~ao do UNIX: 

1965: Os Laboratorios Bell com o MIT e a General Eletric comecam um programa grandioso de criar um
novo sistema operacional, Multics, que seria multi-usuario, multitarefa e teria um sistema de arquivos
hierarquico. 

1970: A AT&T insatisfeita com o progresso do Multics cortou o projeto e alguns programadores da
Bell que trabalharam no projeto, como Ken Thompson e Dennis Dennis Ritchie implementaram a
primeira vers~ao do sistema de arquivos do UNIX em um computador PDP-7 com alguns utilitarios.
Brian Kernighan deu o nome do novo sistema de UNIX como deboche em relac~ao ao Multics  

01/01/1970: Tempo zero do UNIX
1973 O UNIX e reescrito em C, uma nova linguagem de programac~ao desenvolvida por Dennis Ritchie.
Sendo escrito em uma linguagem de alto nvel cava facil portar para novas maquinas.
7 

1974: Thompson e Ritchie publicam um artigo sobre o novo sistema operacional chamado UNIX que
gera um grande entusiasmo no meio acad^emico e a AT&T licencia o UNIX para universidades e
empresas.    

1977: Existem agora cerca de 500 computadores com Unix no mundo todo.
1984: Existem cerca de 100.000 computadores com UNIX rodando em diferentes plataformas.
1988: AT&T e Sun se unem para desenvolver Solaris e UnixWare.
1997: Foram vendidos cerca de 4 milh~oes de sistemas Linux no mundo todo.

O UNIX tem varios sabores, dentre os mais conhecidos, comerciais: Solaris, HP-UX, AIX e livres: FreeBSD
e Linux.

2.3 O Linux
2.3.1 De nic~ao
O Linux e um tipo de UNIX criado por hackers como uma alternativa barata e funcional para quem n~ao
esta disposto a pagar o alto preco de um sistema UNIX ou n~ao tem um computador rapido o su ciente.
Daqui para frente, quando nos referirmos a UNIX estaremos nos referindo aos sistemas comerciais, sem
codigo fonte disponvel como Solaris, AIX, Irix, diferentemente do Linux.
Na ess^encia, utilizar o Linux e 95% igual a utilizar os UNIX comerciais o que garante, que uma vez
aprendendo a usar o Linux, eventualmente precisando usar um UNIX comercial, pode-se tirar isso de letra
isso. Como o Linux e muito parecido com o UNIX e e mais acessvel que os UNIX comerciais, vamos nos
basear nele e quando houver uma diferenca muito grande tentaremos apontar.

2.3.2 Historia
O Linux comecou com a ideia de um estudante chamado Linus Torvalds de criar um clone dos sistemas
UNIX da epoca que eram caros e n~ao rodavam no PC 386 que ele tinha em casa. Assim, ele pegou um UNIX
educacional chamado Minix e passou a escrever um Minix melhor que o Minix, o qual ele registrou na licenca
GPL (General Public License). Essa licenca a rma que n~ao se deve fechar o codigo de qualquer trabalho
derivado do programa com essa licenca. O nome Linux deriva de

Linux = Linus + UNIX
Logo, varias pessoas tomaram conhecimento dessa iniciativa pela Internet e se enstusiasmaram, passando
a contribuir com o sistema que hoje e totalmente funcional, rapido, barato, atualizado e contando com
milhares de aplicativos.

2.3.3 As Distribuic~oes de Linux
Algumas rmas e organizac~oes de voluntarios decidiram juntar os programas do Linux em \pacotes"
proprios aos quais elas d~ao suporte. Esses \pacotes" s~ao chamados distribuic~oes, dentre as mais famosas e
usadas, destacam-se: Debian, RedHat, Slackware, SuSE, Caldera e Stampede.

2.3.4 O que o Linux oferece
O Linux oferece diversas vantagens a quem o usa. Dentre elas, destacamos   

Sistema multitarefa de 32 ou 64 bits
Sistema gra co XWindow
Suporte a diversas linguagens como Java, C, C++, Pascal, Lisp, Prolog e outras
8        

Suporte aos protocolos de rede: TCP/IP, IPX, AppleTalk, Samba
Memoria virtual
Codigo fonte do kernel
Centenas de programas em GPL, incluindo compiladores, editores, multimdia e outros
Um sistema em constante aperfeicoamento
Estabilidade
Permiss~ao de arquivos
Eterno aprendizado

9

Cap 
tulo 3

Primeiros Passos
3.1 Instalac~ao
3.1.1 Introduc~ao
Vamos dar uma ideia geral do que e uma instalaca~o e con gurac~ao inicial do Linux. A primeira coisa que
voc^e tem que fazer e saber se seu equipamento possui os pre-requisistos nescessarios para rodar o sistema que
voc^e escolheu. Isso parece bastante obvio, mas nunca e demais lembrar. Pegue todos os manuais de hardware
que voc^e tem e prepare-se para responder algumas perguntas, durante a instalac~ao.

3.1.2 Instalac~ao
Em seguida, prepare uma partic~ao para seu sistema. Para isso, crie um disco de boot (muitos computadores ja inicializam atraves do CD n~ao sendo necessario fazer esse disquete) e com o gerenciador de partic~oes
do seu sistema atual (fdisk no DOS) delete uma partic~ao com o espaco que pretende usar.
Ent~ao, reinicialize o computador com o CD e use o fdisk deste para criar duas partic~oes, uma de swap
(n~ao e necessario, mas e altamente recomendavel, ja que a sua memoria RAM n~ao e in nita) e uma partic~ao
Linux primaria, e onde seu sistema sera instalado.
Observa
c~
ao: n~
ao e uma ma ideia colocar a pasta usr (onde seus programas s~ao instalados em uma partic~ao
separada pois, caso seja necessario re-instalar voc^e n~ao os perdera. Tendo sido isto feito, inicie o programa
de instalac~ao basico (isso normalmente ja e feito ao iniciar o computador) e siga as instruc~oes deste para
instalar o sistema basico (o mnimo necessario para ser possvel manusear o sistema).
Exemplo: Instalac~ao da Debian GNU/Linux   

Con gura-se a BIOS para bootar pelo CD, se ela tiver essa capacidade 

Segue-se um menu com uma serie de opc~oes. Va escolhendo cada uma na ordem

Com o CD no drive se da reboot na maquina ou usa-se o disquete de boot
Vai aparecer uma tela perguntando se voc^e quer o menu colorido ou monocromatico. Escolha a opca~o
compatvel com seu monitor

1.
2.
3.
4. 

Con gura-se o teclado
Instala-se e escolhem-se os modulos a erem carregados com o kernel 1
Instala-se o sistema basico
Con gura-se o sistema basico.

Reboot na maquina.

1 Exemplo: se voc^
e pretende conectar a maquina a Internet por meio de uma conex~
ao discada, voc^e ter
a que carregar o
m
odulo correspondente ao protocolo de seu servidor, ou PPP ou SLIP dentro do submenu net.

10

Observa
c~
ao: Quando se der a escolha dos m
odulos, e nescessario estar certo que voc^e escolheu todos os
modulos correspondentes ao seu hardware, uma vez, que caso se esqueca de algo, este algo n~ao funcionara.
Provavelmente, a distribuic~ao que vai instalar possui um programa gra co ou textual de menu que
permitira a escolhas dos programas mais convenientes para a nalidade a qual voc^e destina seu computador. 
muito comum que esse programas estejam arrumados em grupos, o que facilita bastante a procura por um
E
espec o e a decis~ao sobre o que e nescessario instalar.
Algumas sugest~oes sobre programas essenciais para nalidades espec cas 

Servidor de rede: DNS, FTP server e cliente, HTTP server, Ghopher, programas relacionados a rede
como telnet e XWindow. 

Provedor de accesso discado: o mesmo que acima mais a parte relacionada a comunicac~ao com os
modems (programas gerenciandores das portas seriais e um servidor de discagem).  

Pessoal: XWindow, multimdia e editores basicos.
Desenvolvedor: XWindow, editores basicos, compiladores e debugadores.

3.2 Manutenc~ao e atualizac~ao de programas
Dentro do mundo Linux, ha varias formas de \empacotar" os programas a serem instalados. Se a sua
distribuic~ao possuir suporte a algum tipo de pacotes binarios, d^e prefer^encia a estes, uma vez que s~ao mais
simples e menos sujeitos a erros do que pegar a fonte dos programas, compilar e copiar para o destino.
Aqui vamos cobrir os dois empacotadores mais comuns e a forma de lidar com a fonte dos programas.
1. RPM:
Caso a sua distribuic~ao use o RPM como empacotador padr~ao (como a RedHat), use os par^amentros
abaixo para executar as func~oes mais comuns.
rpm <par^
ametros> <nome do pacote>
-i { instalac~ao simples
-U { atualizac~ao de um programa de uma vers~ao anterior para uma mais recente.
-nodeps { ele n~ao procura depend^encias (util no caso de precisar instalar varios pacotes relacionados,
dessa forma a ordem n~ao importa)
-force { forca a instalac~ao mesmo quando o sistema julga que ela n~ao e aconselhavel
Observa
c~
ao: H
a uma serie de outros par^ametros menos usados. Use rpm {help para ver outras opc~oes.
2. DPKG:
Utilizado para manusear os pacotes da distribuic~ao Debian.
dpkg par^
ametros nome do pacote
-i { instalar
-r { remover
Observa
c~
ao: Tamb
em pode-se usar o comando dpkg {help para obter uma ajuda completa
Observa
c~
ao: No caso da Debian (onde o DPKG 
e utilizado) existe tambem um programa chamado
alien que faz a migrac~ao de um tipo de pacote para outro.
3. Arquivos .tar.gz ou .tgz:
Esta e a forma mais confusa de instalac~ao, pois esses arquivos nada mais s~ao do que a fonte do programa
compactada.
A primeira coisa a fazer e descompactar os arquivos. Para isso digite
tar -xzvf nome do arquivo
11

Uma vez descompactado, entre no diretorio onde este foi aberto (e normal que o descompactador crie
um diretorio extra com o nome do programa, mas nada impede que ele, simplesmente, descomprima
para o diretorio atual) e procure um arquivo chamado INSTALL ou README leia as instruco~es deste
ele devera conter os passos da instalaca~o.
Vamos dar um exemplo de instalac~ao de um arquivo .tgz inspirado no forma como e mais comum dele
apresentar-se. Mas, lembre-se de procurar no diretorio um arquivo com instruco~es ja que a forma que
esses arquivos apresentam-se depende somente do gosto de quem empacotou o programa.
Exemplo: Usaremos um arquivo chamado boom.tgz
Uma vez que ja estamos no diretorio onde o arquivo esta, digitamos
$tar -xzvf boom.tgz
Vai aparecer uma serie de mensagens indicando os arquivo contidos nesse pacote. Em seguida, procuro
um arquivo executavel chamado con gure. Ele e um script de con gurac~ao. Digite
$./configure
Depois, digite
$make
para compilar e
$make install
para instalar (normalmente como root).
Agora o programa ja esta instalado e deve estar pronto para funcionar.

3.3 Con gurac~ao do LILO
O LILO (LInux LOader) e um programa destinado a permitir que se use dois (ou mais) sistemas operacionais no mesmo computador. Ele consiste de uma serie de instruco~es para gerenciar o setor de boot de seu
HD, permitindo que se inicialize o computador a partir de uma partic~ao que n~ao seja a primeira do disco.
Quase todas as distribuic~oes possuem programas para auxiliar a con gurac~ao do LILO durante a instalac~ao. Utilizando esses programas, basta prestar atenc~ao nas instruco~es do mesmo, dando uma ^enfase especial
na parte em que ele manda voc^e escolher em que partic~ao do disco esta o Linux e em que partic~ao deseja
instalar o bootsector (sempre escolha a primeira partic~ao do disco, caso contrario e possvel que o LILO n~ao
funcione).
O LILO pode ser con gurado com instruco~es do arquivo /etc/lilo.conf.
Um exemplo de um arquivo lilo.conf e
# /etc/lilo.conf
# LILO con guration le
# Start LILO global section
append = \sbpcd=0x260, SoundBlaster ether=10,0x300,eth0 ether=9,0x340,eth1"
boot = /dev/hda
#compact # faster but won't work on all systems.
delay = 50
vga = normal # force sane state
ramdisk = 0 # paranoia setting
# End LILO global setting
# Linux bootable partition con g begins
image = /vmlinuz
root =/dev/hda2
label = linux
read-only #Non-UMSDOS lesystems should be mounted read-only for checking
# Linux bootable partition con g ends
# DOS bootable partitions begins
12

other = /dev/hdb1
label = DOS
loader = /boot/any d.b
table = /dev/hdb
# DOS bootable partition con g ends
Como nota-se, esse arquivo e dividido em duas partes: uma para as con guraco~es gerais ao carregar o
Linux e outra para os sitemas que poder~ao ser carregados na inicializac~ao.
Na segunda parte, ha uma sec~ao para o Linux, o qual esta instalada na segunda partica~o do primeiro
disco (/dev/hda2). Tambem ha uma parte para o DOS que esta instalado na mesma maquina, so que no
sgundo disco.
Os principais par^ametros desse arquivo signi cam
append=\linha de comando" { Linha de comando que 
e mandada para o kernel quando o Linux carrega.
boot=setor de boot { De ne o setor de boot.
delay=tempo de espera { Tempo que o LILO espera antes dar boot usando a primeira parti
ca~o.
message=arquivo de mensagem { De ne um arquivo contendo uma mensagem que ser
a mostrada apos o
prompt de boot.
password=senha { De ne uma senha
prompt { For
ca o usuario a entrar um boot prompt. Faz o tempo car desnecessario.
timeout=tempo de espera { Tempo de espera por um comando de teclado (se de nido como 0 o LILO
esperara para sempre.
verbose=n 
vel { Liga uma s
erie de mensagens quanto maior for o nvel, mais mensagem voc^e vai receber.
vga=modo { Diz ao LILO que modo VGA ele deve usar. As op
co~es s~ao NORMAL, EXTENDED, ASK
ou um valor decimal.

3.4 Con gurac~ao do XWindow
Ha 3 modos de se con gurar o XWindow, atraves de uma programa chamado XF86Setup, de outro
chamado xf86con g e na m~ao! Aqui nos vamos cobrir os dois primeiros programas uma vez que con gurar
na m~ao e bem mais confuso e trabalhoso alem de n~ao trazer vantagem alguma.
1. XF86Setup
Esse programa vem includo no XServer VGA16. Se voc^e n~ao instalou esse XServer, esqueca esse
programa. Executando-o, ele inicia um programa gra co no qual voc^e deve escolher o seu teclado, o
mouse, a placa de video, o monitor e a resoluc~ao desejada.
Quando for escolher o mouse, preste atenc~ao na porta que ele esta conectado (ps2 ou serial). Se for
ps2, escolha psaux.
Vale tambem lembrar que na hora de escolher o monitor, deve-se prestar atenca~o na taxa de refresh,
pois se voc^e escolher uma taxa maior corre o risco de dani car seu monitor.
Uma vez con gurado digite startx para testar a con gurac~ao.
Observa
c~
ao: Caso depois de executar o startx d^
e uma mensagem de erro parecida como essa
\Can't connect X11 Server",
execute o XF86Setup novamente; Na sec~ao de placas (video cards), escolha a sua placa. Depois clicando
o bot~ao de con gurac~ao avancada, olhe para o topo da tela onde vera uma serie de servers (mono, vga16,
svga etc). Veja o que est
a marcado e anote.
Saia do programa va ate o diretorio /etc ou /etc/X11 e edite o aquivo chamado Xserver trocado uma
linha contendo um dos servers que voc^e viu anteriormente pelo XServer que voc^e anotou.
2. xf86con g
Esse programa ira fazer uma serie de perguntas textuais e voc^e respondera uma por uma especi cando
mouse, placa de vdeo e monitor.
13

Figura 3.1: XF86Setup: Con gurando a placa de vdeo

3.5 Adic~ao de novos usuarios
Ate agora, vinhamos usando a conta root que e a conta do \super usuario" ou administrador do sistema.
Essa conta e destinada somente a manutenc~ao do sistema e n~ao possui nenhuma restric~ao. Isto e, se voc^e
cometer algum erro usando essa conta n~ao havera nada que impeca que voc^e dani que o sistema.
Por essa raz~ao e imperativo que se crie uma conta normal para voc^e proprio poder explorar o sistema
sem riscos. Para criar uma nova conta siga as seguintes instruc~oes:  

Digite adduser nome { onde o nome e o nome da conta que voc^e quer criar
Entre com uma senha e repita a operac~ao quando solicitado

Pronto. Uma vez criada a nova conta, voc^e pode ou sair da conta root e se logar na nova conta ou digitar
Alt Fn (onde o Fn e qualquer tecla de F1 a F6) e experimentar logar na nova conta.

14

Cap 
tulo 4

Comandos Basicos
4.1 Introduc~ao
Passaremos a descrever os comandos basicos do Linux. Esses comandos s~ao digitados em um terminal
XWindow, como por exemplo o xterm, o rxvt ou no console, em modo texto.

Figura 4.1: Rxvt: onde s~ao digitados os comandos basicos no Linux
Quase todos os comandos aceitam opc~oes adicionais.
O formato geral de um comando e
comando -[[opc~
ao 1][opc~ao 2]...] par^ametro

N~ao e preciso se preocupar em guardar todas as combinac~oes de par^ametros e opc~oes de todos os comandos.
15

Com o tempo, e possvel memoriza-los. O manual online serve para ajudar na hora de descobrir a funca~o de
um comando e suas opc~oes. Para saber mais sobre um comando digite
man comando

4.2 Comandos basicos
Abaixo, temos uma tabela dos comandos basicos mais usados. Na primeira coluna, temos o nome do
comando e na segunda a sua func~ao. Na terceira coluna, temos a sua sintaxe e na ultima coluna os par^ametros
mais usados para cada um deles.

COMANDO

FINALIDADE
Lista o conteudo
de um diretorio

SINTAXE
ls -lar diretorio

rm

Apaga arquivos
e diretorios

rm -irf arquivo

cd
mv
cp
cpio

Troca de diretorio
Renomeia arquivos
Copia arquivos
Copia arquivos,
preservando permiss~oes
Cria um diretorio
Apaga um diretorio
Cria um arquivo vazio
Paginador de arquivos
Limpa tela
Troca de login
Procura em arquivos em diretorios
Mostra os processos rodando
na maquina

cd
mv
cp
cp

Procura padr~oes
em um arquivo
Mostra espaco em disco livre
Mostra o uso de disco

grep express~
ao arquivo . . .

Mostra o nome
do diretorio corrente
Mostra informac~oes
sobre um usuario

pwd

ls

mkdir
rmdir
touch
more
clear
su
find
ps

grep
df
du
pwd
finger

diretorio
fonte destino
fonte destino
fonte destino

mkdir diretorio . . .
rmdir diretorio . . .
touch arquivo . . .
more [arquivo . . . ]
clear
su [-] [login]
find caminho express~ao
ps -aux

df partic~
ao
du -s arquivo . . .

^
PARAMETROS
-l: lista longa
-a: lista de arquivos ocultos
-r: lista recursivamente
-i: apaga con rmando
-r: apaga recursivamente
-f: apaga forcadamente

-name: procura pelo nome
-a: processos de todo mundo
-x: mostra processos que n~ao
foram iniciados no console
-u: fornece o nome do usuario
e a hora de incio

-s: mostra apenas o total

finger usuario . . .

Tabela 4.1: Comandos mais usados
Observa
c~
ao: Para apagar um diret
orio e seus subdiretorios, use rm -rf diretorio. Muito cuidado ao apagar
algo. N~ao tem volta.
Observa
c~
ao: Para colocar um comando em background digite & no nal da linha.
Por exemplo, grep express~
ao arquivos &
vai procurar express~ao dentro de arquivos, enquanto permite que voc^e continue a digitar outros comandos.

16

4.3 Redirecionamento da entrada e sada de comandos
Uma das caractersticas mais importantes do UNIX e o poder de combinar varios comandos para obter
uma informac~ao. Isso e conseguido mandando dados serem transmitidos para um arquivo, para a tela ou
para um programa e obtidos de um arquivo, teclado ou programa, sempre de uma forma padr~ao.   

A sada de um comando pode ser direcionada para um arquivo ou para a tela.
A entrada de um comando pode ser obtida do teclado ou de um arquivo.
Alem disso, a sada de um comando pode ser diretamente mandada como entrada de outro.

Existem 3 tipos de arquivos de sada e entrada de programas.

stdin
stdout
stderr

0
1
2

Entrada padr~ao de um comando
Sada padr~ao de um comando
Sada de erro padr~ao de um comando

Tabela 4.2: Arquivos padr~oes de entrada e sada de comandos
Veja os tipos de redirecionamento de arquivos abaixo:
Smbolo

>
>>
j
>

Redirec~ao
Redirec~ao para sada
Redirec~ao da sada para o m do arquivo
Redirec~ao da sada de um comando para a entrada de outro
Redirec~ao da entrada
Tabela 4.3: Redirec~ao de arquivos

Um exemplo de redirec~ao de sada seria:
cat arquivo1 arquivo2 > arquivo3

Esse comando concatena o arquivo com o arquivo2 e joga o resultado em arquivo3.
Outro exemplo:
cat arquivo1

>> arquivo2

O arquivo 2 e inserido no m do arquivo2.
Agora um exemplo de redirec~ao de entrada:
cat

< arquivo1 

o editor de textos mais simples que se
O arquivo1 e criado a partir do que digitarmos no teclado. E
poderia ter no Linux.
Um exemplo de redirec~ao de sada de erro:
startx 2> erros
Esse comando vai iniciar o XWindow a partir do console jogando todos os erros no arquivo: erros.
Por ultimo, a ideia mais importante de redirec~ao de arquivos: o pipe. O que sai de um comando e a
entrada de outro comando.
Por exemplo, digamos que voc^e digita ls e existem muitos arquivos e o resultado passa muito rapido na
tela. Voc^e pode jogar a sada do comando ls para o comando more que pagina um arquivo para a tela.
ls

j more
17

Cap 
tulo 5

O Sistema de Arquivos
5.1 Introduc~ao
O sistema de arquivos do Linux se caracteriza por uma estrutura hierarquica e de protec~ao dos arquivos.
Ele e semelhante a maioria dos sistemas UNIX existentes.

5.2 A Estrutura de diretorios
A estrutura de diretorios do Linux tem um diretorio raiz e diretorios lhos.

Cada no dessa arvore e um arquivo ou diretorio que contem arquivos. Voc^e pode especi icar um arquivo
ou diretorio pelo caminho completo (absoluto).
18

/

Diretorio raiz
/bin
Comandos essenciais
/boot
Arquivos de boot
/dev
Arquivos de dispositivos
/etc
Arquivos de con gurac~ao do sistema
/home
Arquivos dos usuarios do sistema
/lib
Bibliotecas compartilhadas
/mnt
Diretorio para montar partic~oes temporariamente
/proc
Informac~oes sobre processos do sistema
/root
Diretorio home do administrador do sistema
/sbin
Arquivos executaveis essenciais ao sistema
/tmp
Arquivos temporarios
/usr
Outra hierarquia secundaria
/var
Dados variaveis
Cada diretorio guarda arquivos espec cos. A organizaca~o de diretorios no Linux e resultado de um esforco
conjunto de padronizac~ao chamado de Linux File System Standard (LFSSNTD). Essa padronizac~ao n~ao e
fechada e visa ser uma refer^encia para por desenvolvedores e usuarios de Linux. 

/ { Onde s~ao montados outros diretorios e onde ca o kernel ou, pelo menos, um link para o diretorio
boot. 

/bin { Contem comandos essenciais que s~ao usados tanto pelo administrador do sistema como pelos
usuarios, como por exemplo: cat, cp, date, more etc. 

/dev { Contem uma entrada para cada dispositivo (periferico) do sistema. No Linux, cada hardware
tem um device ou arquivo associado. Por exemplo, a primeira IDE e /dev/hda e dentro dela a primeira
partic~ao e /dev/hda1, a segunda /dev/hda2. O sequencer da placa de som e o /dev/sequencer. 

/etc { Guarda arquivos e diretorios de con gurac~ao que s~ao locais ao computador. N~ao existem arquivos
binarios nesse diretorio.
/etc

X11
skel

con gurac~ao do XWindow
esqueleto de con gurac~ao do usuario
(contem os arquivos que s~ao copiados para cada
usuario quando da criaca~o da sua conta). 

/home { Diretorios de arquivos dos usuarios. 

/lib { Bibliotecas do sistema, como por exemplo a biblioteca da linguagem C. 

/mnt { Diretorio para montar sistemas de arquivos temporariamente. 

/proc { Sistema de arquivos que mantem informac~oes sobre os processos, memoria, CPU e estado do
sistema. 

/root { Diretorio home do root (opcional), podendo ser /home/root. 

/sbin { Binarios essenciais do sistema: shutdown, fdisk, reboot, update. 

/tmp { Arquivos temporarios. Geralmente, limpados a cada inicializac~ao do sistema.
19 

/usr { Outro sistema de arquivos dentro do sistemas de arquivos, compartilhavel e somente de leitura.
/usr 

/X11
/bin
/dict
/doc
/games
/include
/info
/lib
/local
/man
/sbin
/share
/src

X Window System, vers~ao 11 - release 6
A maioria dos comandos
Lista de dicionarios
Documentac~ao de programas
Jogos e programas educacionais
Arquivos de inclus~ao usados por programas escritos em C
Informac~ao sobre programas
Bibliotecas dos programas
Hierarquia local (para programas extras)
Manuais online dos programas
Programas para o administrador, n~ao essenciais ao sistema
Dados independentes de arquitetura
Codigo fonte de programas (onde ca o fonte do kernel)

var { Contem arquivos de dados variaveis. Isso inclue os diretorios de spool, dados administrativos
e de logging e arquivos temporarios e transientes. O /var foi criado para ser possvel montar o /usr
somente de leitura.
/var

/catman
/lib
/lock
/log
/named
/nis
/run
/spool
/tmp

Paginas de manuais formatadas
Informac~ao de estado dos programas
Arquivos de lock
Arquivos e diretorios de logging
Arquivos de DNS
Banco de dados de NIS (Network Information Service)
Arquivos relevantes para processos que est~ao sendo executados
Diretorios e arquivos em la para posterior uso
Arquivos temporarios. Usado para manter o /tmp pequeno

Uma instalac~ao organizada em partic~oes do Linux em um HD de 850 Mbytes seria:      

50 MBytes para o diretorio raiz (/)
500 MBytes para o diretorio /usr
50 MBytes de memoria virtual (swap)
150 MBytes para o diretorio dos usuarios (/home)
50 MBytes para o diretorio /tmp
50 MBytes for /var

Lembre-se do ditado:
"Se guardo todos os ovos em uma cesta so e ela cair, perco todos os meus ovos. Agora se os
separo em varias cestas, a probabilidade de perder todos e menor."
Por isso, tente separar seus diretorios em partic~oes diferentes.

5.3 Protec~ao de Arquivos
As protec~oes do Linux s~ao formados por 10 bits. Abaixo temos listados os arquivos de um diretorio:
20

total 45
drwx||
drwxr-xr-x
drwx||
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
-rw-r{r{
-rw||-rw-rw-r{
-rw||-

5
4
3
16
12
11
1
1
1
1

paulo
paulo
paulo
paulo
paulo
paulo
paulo
paulo
paulo
paulo

paulo
paulo
paulo
paulo
paulo
paulo
paulo
paulo
paulo
paulo

1024
1024
1024
1024
1024
1024
531
3130
50316
6135

set
set
set
set
set
set
out
out
out
out

20
3
20
10
16
19
10
10
10
10

17:25
16:16
17:11
20:30
16:36
15:39
07:24
07:06
06:33
07:02

Desktop
GNUstep
Mail
OÆce40
SNNSv4.1
artigos
download
fgv.old
mbox
modem

Tabela 5.1: Proteca~o de arquivos
Os bits de protec~ao s~ao os caracteres que aparecem na primeira coluna de cada linha. O primeiro caracter
signi ca se e um diretorio (d), arquivo comum (-), arquivo de dispositivos de bloco (b) ou arquivo de
dispositivos de caracter (c).
Conforme dito acima, todos os perifericos no Linux viram arquivos de dispositivos que podem ser lidos,
escritos e residem no diretorio /dev. Existem dois tipos de arquivos de dispositivos: os que s~ao lidos e escritos
em bytes ou blocos (b) e os que s~ao escritos e lidos em caracteres (c).
Os outros 9 caracteres s~ao divididos em grupos de 3 em 3 bits.
Os 3 primeiros indicam permiss~oes de leitura (r), escrita (w) e execuc~ao (x) do dono do arquivo. O dono
do arquivo em todos os casos e o usuario paulo (terceira coluna).
Os 3 proximos s~ao permiss~oes de leitura, escrita e execuc~ao para o grupo do arquivo (no caso todos
pertencem ao grupo paulo { quarta coluna). E os 3 ultimos indicam permiss~oes de leitura, escrita e execuc~ao
para o resto dos usuarios.
O administrador e uma excec~ao e tem poder sobre todos os arquivos. Um arquivo com bit de leitura
ligado em qualquer das 3 posic~oes signi ca que pode ser lido pelo dono, grupo ou por outro. Um arquivo com
bit de escrita signi ca que o arquivo pode ser alterado. Ja um diretorio com bit de leitura ligado signi ca
podemos ver seu conteudo.
Com bit de execuc~ao ligado signi ca que podemos entrar nele (executarmos ele). Com bit de escrita
signi ca que podemos escrever nele.
Quanto aos diretorios, podemos dividi-los em quatro tipos 

Estaticos 

Din^amicos 

Compartilhaveis 

N~ao Compartilhaveis

Estaticos: So mudam com a intervenc~ao do administrador do sistema.
Exemplo: Diretorios de con gurac~oes do sistema.
Din^amicos: Mudam sem a intervenc~ao do administrador do sistema.
Exemplo: Diretorios de usu
arios.
Compartilhaveis: Podem ser compartilhados entre maquinas em uma rede.
Exemplo: Diretorios de programas e de usuarios que podem ser compartilhados em rede economizando
espaco em disco e facilitando a manutenc~ao do sistema.
N~ao compartilhaveis: N~ao podem ser compartilhados entre maquinas em uma rede.
Exemplo: Diretorios de dados locais a m
aquina.
21

A tabela abaixo contem exemplos de diretorios separados conforme essa classi cac~ao.

Estaticos
Variaveis

Compartilhaveis
/usr
/home
/var/spool/mail
/var/spool/news

N~ao Compartilhaveis
/etc
/boot
/var/run
/var/lock

Tabela 5.2: Classi cac~ao de diretorios: EstaticosVariaveis, CompartilhaveisN~ao-Compartilhaveis

5.4 Protec~ao de Arquivos
O sistema de arquivos do Linux permite a protec~ao de arquivos em tr^es classes:
1. dono do arquivo
2. grupo do arquivo
3. outros (tirando o grupo e o dono do arquivo)
Cada classe pode ter tr^es protec~oes
1. leitura
2. escrita
3. execuc~ao
A excec~ao a essas permiss~oes e o administrador do sistema que pode ler, escrever e executar todos os arquivos.

22

Cap 
tulo 6

Aplicativos Basicos
6.1 O editor de textos vi
O Vi e um editor de textos muito poderoso comumente usado em sistemas UNIX, apesar de existir em
varios outros sistemas, como DOS, Windows e Mac OS. A grande caracterstica do Vi e a sua potencialidade
(ele tem mais de 100 comandos) e sua representac~ao visual, diferentemente do ed.
Para usar o vi, basta digitar

> vi

nome-do-arquivo

na linha de comandos do UNIX. O vi tem quatro modos de operac~ao    

Modo comando
Modo inserc~ao
Modo alterac~ao
Modo ex.

Assim que voc^e inicia o vi, ele vai para o modo comando. Para voltar para o modo comando, basta
apertar a tecla ESC. No modo comando, voc^e pode movimentar-se livremente, pelo texto usando as teclas
de direc~ao. Se voc^e apertar ENTER, o vi pulara para o comeco da proxima linha.
Para entrar no modo de inserc~ao, basta apertar as seguintes teclas:

i { Abre o modo de inserca~o onde o cursor estiver.
I { Abre o modo de inserc~ao no incio da linha corrente.
a { Abre o modo de inserc~ao com o cursor um caractere depois do atual.
A { Coloca o cursor no nal da linha corrente e abre o modo de inserc~ao
o { Coloca o cursor uma linha abaixo da atual e abre o modo de inserc~ao.
Para entrar no modo de alterac~ao, digite:

r { Permite alterar o caractere na posica~o atual do cursor. Depois de alterado o novo caractere, o vi volta
para o modo de comando.
R { Permite alterar o texto inteiro. Com esta tecla, voc^e pode usar as teclas de direc~ao para se movimentar
no texto tambem.
Para gravar um texto digitado no vi, digite :w. Para sair do vi, basta digitar :q. Para sair sem salvar,
tecle :q!. Por ultimo, se voc^e quer salvar e sair, basta teclar :x.
Para executar algum comando do UNIX, digite :!<nome-do-comando>.
Se voc^e quer apagar o caracter na posic~ao atual do cursor, basta digitar x e para apagar o caracter
anterior, digite X.
Para apagar uma linha inteira, digite dd. Nesse caso o texto posterior sera deslocado para cima.
23

Se quiser apagar sem deslocar o texto, digite D. Se quiser apagar 4 linhas com deslocamento de texto,
digite 4dd e sem deslocamento 4D.
Se voc^e fez alguma coisa que n~ao queria, digite u para desfazer e se quer repetir algo que ja tenha feito,
digite \.".
Se voc^e quer procurar no texto, digite /<o-que-voc^e-procura>. Para procurar na direc~ao contraria,
basta digitar ?<o-que-voc^
e-procura>
Para colar qualquer coisa, digite P.
Para cortar uma linha, digite dd. Se quiser cortar 4, digite 4dd.
Para copiar uma linha, digite yy. Se quiser copiar 4, digite 4yy.
Se voc^e quiser copiar um pedaco de texto, digite v e marque o que quer copiar e, apos marcar, digite y.
Se quiser cortar, em vez de y, digite d.

6.2 O bash
Bash e um interpretador de comandos do Linux. Se o shell padr~ao que voc^e usa assim que entra em um
computador n~ao e o bash, digite bash na linha de comando desse shell para carrega-lo.
Para quem conhece DOS, o bash e muito simples, mas tem algumas peculiaridades. Assim como no DOS
(na verdade o DOS copiou o UNIX), o bash tem variaveis. A variavel mais importante talvez seja a PATH
(assim como no DOS), que controla onde o bash deve procurar os arquivos a executar. Existem varias outras
variaveis, como a TERM, que diz o tipo de terminal que voc^e usa, a USER que diz quem voc^e e etc.
Para mudar o valor de uma variavel no DOS, simplesmente digita-se set VARIAVEL=valor. No bash
n~ao e diferente, mas se voc^e n~ao exporta-la, os programas que voc^e chamar n~ao saber~ao que voc^e alterou o
valor dessa variavel. Para exportar uma variavel, basta digitar export VARIAVEL. Por exemplo: se voc^e
quer mudar o terminal para vt100, digite
set TERM=vt100
export TERM
Para economizar tempo, voc^e pode digitar
export TERM=vt100
que tem o mesmo efeito.
Outra coisa interessante do bash s~ao os aliases (apelidos). Por exemplo, se voc^e digita toda hora
ls /var/spool/mail, voc^e pode mudar isso tudo para lsmail atraves do comando alias. Para fazer isso
digite
alias lsmail='ls /var/spool/mail'
Digamos que voc^e baixou um arquivo da Internet com um nome de 40 caracteres de tamanho e quer
renomea-lo. O que normalmente voc^e faria?
Digitaria
mv <nome-enorme-de-arquivo-de-quarenta-caracteres> <nome-novo>
Mas para economizar tempo, voc^e pode digitar as iniciais deste arquivo e depois apertar TAB que o bash
completa com o resto.
Mas se tiver, por exemplo, em um diretorio dois arquivos de nomes: abcdef12 e abcdef34 e voc^e digitar a
e depois TAB, o bash vai completar somente ate abcdef. Para completar com o resto, basta digitar ou 1 ou
3. Se ele n~ao completar tudo, aperte TAB duas vezes para ele lhe dar a lista de possveis arquivos.
Se voc^e esta executando um programa que leva bastante tempo para ser executado, voc^e pode para-lo a
qualquer momento com as teclas Ctrl-Z. Apertando Ctrl-Z, ele volta para a linha de comandos do bash.
Se voc^e quiser que o programa volte, digite fg, mas se voc^e quiser que ele que rodando em segundo plano,
digite bg(background).
24

6.3 O editor de textos Emacs
6.3.1 Historia
O Emacs foi o primeiro editor de textos com o proposito de ser integrado na historia da computac~ao. Seu
objetivo e que a pessoa n~ao precisasse sair dele para fazer nada. Seria possvel ler e-mails, surfar na Internet,
falar no IRC, escrever, compilar e debugar programas, alem de digitar cartas e corrigi-las.
O Emacs foi escrito em principalmente em Lisp, uma linguagem de intelig^encia arti cial muito usada. O
Emacs foi sucedido pelo XEmacs, que e hoje o melhor editor de textos do mundo. Faz tudo sem precisar sair
dele.

6.3.2 Usando o Emacs
O Emacs diferentemente do vi, n~ao tem modo de comando e edic~ao. Voc^e esta sempre editando o texto.
A maioria dos seus comandos s~ao rapidos. Comecam com <Ctrl> (C) ou <Alt> (A).
Vejamos:
Para salvar um texto, digite C-x C-s.
Para sair do Emacs, digite Cx C-c.
Para centralizar a tela, digite C-l.
Para avancar um caracter, C-f e uma palavra A-f.
Para retroceder um caracter, C-b e uma palavra A-b.
Para ir ao nicio do texto, digite A-<.
Para ir ao m do texto, digite A->.
Para procurar algo, digite C-s algo. Para continuar procurando, continue digitando C-s.
Todos esses comandos e muito mais podem ser aprendidos no tutorial do Emacs, digitando C-h t.

Figura 6.1: XEmacs em ac~ao: Programando em C

25

Cap 
tulo 7

Aplicativos de Rede
7.1 Introduc~ao
Com o crescimento da Internet, o protocolo TCP/IP tornou-se bastante popular e o Linux tomou frente,
contando com varios aplicativos para redes. Vamos falar, basicamente, de aplicativos para redes TCP/IP,
que e o protocolo padr~ao da Internet.

7.2 FTP
O FTP e um protocolo de transmiss~ao de arquivos pela Internet. O nome deriva-se do ingl^es: File Transfer
Protocol, que em portugu^es signi ca Protocolo de Transmiss~ao de Arquivos. Ele foi desenvolvido ha bastante
tempo, para viabilizar a transmiss~ao de arquivos entre as universidades americanas enquanto a Internet se
desenvolvia. O programa que trabalha com o FTP tem o mesmo nome: ftp. Para abrir uma sess~ao de FTP,
basta digitar ftp na linha de comando do UNIX.
Assim que voc^e digita ftp, voc^e entra na linha de comandos do ftp. Para abrir uma sess~ao em um
computador remoto, basta digitar open(abrir) seguido do nome ou do IP do computador remoto.
Logo depois que ele conectar, ele pedira seu login e sua senha. Geralmente, se voc^e tem acesso a este
computador, o login e a senha s~ao os mesmo que voc^e usa para usar este computador.
ftp> open remoto
Connected to remoto.
220 remoto FTP server (Version wu-2.4(4) Wed Aug 27 15:29:35 CDT 1997) ready.
Name (remoto): joao
331 Password required for joao.
Password:
Existem inumeros locais com os chamados FTP an^onimos, onde n~ao e necessario login, muito menos
senha. Nesses casos o login e anonymous e a senha e guest ou o seu e-mail.
Logo apos entrar com seu login e senha, voc^e volta a linha de comandos do FTP
230 User joao logged in.
Remote system type is UNIX.
Using binary mode to transfer les.
ftp>
Para ver o conteudo do diretorio atual, basta digitar ls (lembra?).
26

A maioria dos comandos e igual ao UNIX: mkdir, rmdir, ls, cd, chmod etc. com excec~ao de alguns dos
listados abaixo

FTP
delete
rename

UNIX
rm
mv

Tabela 7.1: FTP UNIX
Para pegar (baixar) algum arquivo do computador remoto para o seu, voc^e usa o comando get
ftp> get arquivo
local: arquivo remote: arquivo
200 PORT command successful.
150 Opening BINARY mode data connection for nohup.out (0 bytes).
226 Transfer complete.

Se quiser pegar varios arquivos ao mesmo tempo, basta usar o comando mget, por exemplo use
mget *.txt
se quiser pegar todos os arquivos que terminam em .txt .
Para enviar arquivos para o computador remoto, basta usar o comando put, por exemplo
put arquivo.tgz
Para enviar varios arquivos, basta usar o comando mput: mput *.tgz.
Para pegar ou enviar arquivos, existem dois modos: o binario e o ASCII (texto). Normalmente, usa-se o
modo ASCII para enviar arquivos texto e o binario para qualquer outro tipo de arquivo. Cuidado: se voc^e
selecionar o modo ASCII e pegar um arquivo binario (.tgz por exemplo), pode ser que o arquivo que voc^e
pegou n~ao seja o mesmo que esta no computador remoto.
Para ir para o modo binario, basta digitar
binary
e para ir para o modo ASCII, basta digitar
ascii.

7.3 Telnet
O telnet e um protocolo para acessar computadores remotos atraves de redes com protocolos TCP/IP. O
que ele faz e emular um terminal atraves da rede. Por exemplo: voc^e esta em uma sala e esqueceu de alterar
um documento em um computador que esta a 1000Km de dist^ancia, sabendo que ambos os computadores
est~ao conectados a mesma rede TCP/IP pela Internet. Normalmente, o que voc^e faria e pegar o arquivo a
ser alterado, alterar e mandar de volta. Mas se o arquivo for grande, isso pode levar um bocado de tempo.
Para contornar a situac~ao, voc^e usa o telnet, que faz com que voc^e acesse o computador remoto atraves de
seu terminal. Assim, voc^e abre o terminal e altera o arquivo, como se estivesse no seu computador.
Para acessar o programa, que tem o mesmo nome do protocolo, basta digitar telnet na linha de comandos
do UNIX. Para abrir uma sess~ao em um computador remoto, basta digitar open e o endereco ou o IP do
computador remoto.
telnet> open remoto
Trying 1.2.3.4...
Connected to remoto.
Linux 2.0.35 (remoto.br) (ttyp1)
remoto login:

Apos conectar-se, digite seu login e senha, assim como estivesse usando por um terminal ou pelo proprio
console.
Para sair, basta digitar exit na linha de comando do computador remoto.
27

7.4 E-MAIL
Existem varios programas de e-mail para Linux, alguns para terminais e outros para XWindow. Para
modo texto, os mais famosos s~ao o elm, o pine e o mutt. Para usa-los siga os passos, atraves dos menus.
Os programas de e-mail podem ler e-mails que est~ao no computador local ou que est~ao em um computador
remoto.
Vamos supor que voc^e seja o usuario joao e que o usuario pedro quer lhe mandar um e-mail local, ou
seja, a mensagem de Pedro n~ao passa pela rede para chegar a Jo~ao. Todos os e-mails locais s~ao guardados
no diretorio /var/spool/mail. Por exemplo, para saber se o joao tem e-mail, basta veri car se o arquivo
/var/spool/mail/joao existe, e se existir, o conteudo ser~ao os e-mail que ele tem na caixa postal. Quando
o programa de e-mail do Pedro envia a mensagem para Jo~ao, o que ele faz e chamar o programa sendmail
(existem outros com a mesma func~ao) que grava o e-mail de Pedro no nal do arquivo /var/spool/mail/joao.
Se Jo~ao n~ao tiver e-mail, o sendmail criara o arquivo.
Quando voc^e quer mandar um e-mail para fora do computador local, por exemplo, mandar um e-mail
para joao@computador2.com.br, o sendmail ira se conectar com o computador computador2.com.br e dizer
que vai mandar uma mensagem para o usuario joao. Por m, o computador computador2.com.br ira gravar
o e-mail em /var/spool/mail/joao.

7.5 DNS
Quando a Internet foi inicialmente criada, interligando universidades dos Estados Unidos, cada computador era identi cado por um numero de 0 a 255. Mas a internet cresceu e mudou para 4 numeros, chamados
de IP. Por exemplo: 200.100.50.25, 25.100.200.50 etc. Agora com 4 numeros, lembrar qual era o IP de um
computador era muito difcil. Ent~ao foi criado o DNS (Domain Name System), que atribui nomes a IP's. Por
exemplo: quando voc^e digita www.ufrj.br no seu browser, o que ele faz e primeiro procurar no DNS qual e
o IP de www.ufrj.br, para depois conectar-se a este.
Vamos supor que o computador que voc^e esta tem como nome computador1.iq.ufrj.br e voc^e quer
conectar-se em remoto2.inf.uni.de por telnet. Como disse anteriormente, voc^e n~ao se conecta diretamente, ele procura qual e o IP de remoto2.inf.uni.de e conecta, mas como ele procura?
Simples: Seu computador vai se conectar ao servidor de DNS local, que vamos chamar de ns.iq.ufrj.br e vai
pedir a ele se ele sabe qual e o IP de remoto2.inf.uni.de. Provavelmente, ele n~ao sabera e ent~ao vai perguntar
ao servidor de nvel maior, que chamaremos de ns.ufrj.br. Vai fazer a mesma pergunta e provavelmente
n~ao sabera, ent~ao passara ao servidor de nvel maior e este vai dizer para continuar procurando no IP
(exemplo) 12.34.56.78, que e uni.de. Ao perguntar para uni.de, ele vai descendo de nvel ate achar o IP de
remoto2.inf.uni.de.
Se voc^e zesse esse processo para cada pedido, a Internet se tornaria extremamente lenta, pois grande
parte do trafego seria por causa de procura de IP's. Para contornar essa situac~ao, existe um cache de nomes:
o seu servidor guarda varios nomes com seus respectivos IP's em um banco de dados e se voc^e zer um
pedido que ja esteja no banco de dados dele, ele devolvera sem precisar executar todos aqueles passos.
N~ao existem muitos programas para DNS, independentemente do sistema. Um utilitario muito bom e o
nslookup, que serve para pegar IP`s de nomes. Para usar, basta digitar nslookup nome-do-computador na
linha de comandos do Linux.

7.6 NFS
O NFS(Network File System) e , como o nome diz, um tipo de sistemas de arquivo UNIX para redes.
Ele serve para voc^e ter acesso ao arquivo atraves da rede. Para usar o NFS e muito simples, basta montar
(assim como disquetes, CD-ROMs, etc.) em um diretorio. Por exemplo: para montar o diretorio /teste do
computador abc.xyz.br no diretorio local /mnt , basta digitar
mount abc.xyz.br:/teste -t nfs /mnt
A opc~ao -t nfs serve para dizer que o tipo a ser montado e NFS.

28

Cap 
tulo 8

O XWindow
8.1 De nic~ao e historia
O XWindow e um protocolo gra co de janelas transparente a redes usado na maioria dos UNIX existentes.
Ele e feito e padronizado por um consorcio chamado X Consortium. Seus nomes s~ao variados:
X
X Window System
X Version 11
X Window System, Version 11
X11
O servidor X Window System roda em computadores com telas que aceitam bitmaps. O servidor distribui
a entrada do usuario e aceita pedidos de sada de varios programas clientes, atraves de uma variedade de
diferentes canais de comunicac~ao entre processos. Embora o caso mais comum seja dos clientes e do servidor
estarem rodandos na mesma maquina, os clientes podem rodar, transparentemente, de outras maquinas
(incluindo computadores com diferentes arquiteturas e sistemas operacionais)
O XWindow suporta janelas sobrepostas e operaco~es gra cas e textuais em monitores coloridos e preto
e branco.
O numero de programas ou clientes disponveis para o XWindow e muito grande. Muitos ja vem na
distribuic~ao padr~ao do XWindow. Entre eles, destacamos.       

xterm { um emulador de terminal, xterm
twm { window manager
xdm { gerenciador de displays
xconsole { programa de redirecionamento do console
xmh { leitor de e-mail
bitmap { editor de bitmaps
xhost { programa de controle de acesso

Muitos outros programas como window managers, jogos e bibliotecas etc. s~ao includos em extras.
Existem duas maneiras principais de iniciar o XWindow e um conjunto de programas do usuario. O
metodo que voc^e usara depende de suas necessidades em deixar sempre o XWindow rodando ou n~ao.
1. XDM
Se voc^e deseja deixar o XWindow sempre funcionando, voc^e pode colocar o XDM rodando desde a
inicializac~ao do computador. Ele permitira que usuarios com conta no sistema se loguem atraves de
29

uma tela gra ca. Bastara digitar sua conta e sua senha para entrar no sistema, no modo gra co. Se tiver
um arquivo executavel no seu diretorio home chamado \.xsession", o X executara todos os comandos
la contidos. Nesse arquivo, voc^e podera pedir para inicializar seus programas favoritos como um relogio
e um xterm, alem de setar o fundo da tela, a velocidade do mouse etc.
2. xinit
Carregado a partir do shell no modo texto. Basta digitar o comando \startx" ou \xinit". De modo semelhante ao XDM, se o usuario tiver um arquivo \.xinitrc" no seu diretorio home, ele podera especi car
comandos de inicializac~ao da sua sess~ao de XWindow.
Se voc^e quiser rodar programas remotamente basta exportar a variavel de ambiente DISPLAY. Por
exemplo, se voc^e esta no computador X e deseja rodar o netscape do computador Y. Digite

Y > xhost + Y
telnet> open Y

Trying 1.2.3.4...
Connected to Y.
Linux 2.0.35 (Y) (ttyp1)
Y login:
Y password:
X > export DISPLAY=X:0
X > netscape &
Podemos especi car a geometria e a posic~ao inicial de cada janela de programa. A sintaxe e:
aplicativo -geometry LarguraxAltura+DeslocamentoX+DeslocamentoY

Por exemplo,
netscape -geometry 100x150+50+100
rodara o netscape com 100 pixels de largura e 150 de comprimento, comecando no pixel 50 no eixo X e
100 no eixo Y.
A largura e altura s~ao em pixels e o deslocamento em X e Y e em relac~ao ao topo esquerdo da tela.

8.2 Window managers
Um Window Manager ou Gerenciador de Janelas serve para gerenciar as janelas do ambiente XWindow. Os Window Managers funcionam como outro programa qualquer de XWindow, podendo, inclusive, ser
executado remotamente.
Os Window Managers representam bem a exibilidade do protocolo XWindow. Como o XWindow n~ao
determina nada em termos de janelas apenas as direcionam, existem diversos tipos de Window Managers
com diferentes interfaces gra cas.
Um pode se parecer com o sistema de janelas do Windows95, outro com o Macintosh, outro ainda com
o OS/2, outro com o NeXT e por a vai.
Atualmente, existem varios Window Managers para Linux. Os mais conhecidos e usados s~ao:  

BlackBox: Window Manager que usa pouca memoria, visualmente agradavel e com bastantes recursos. 

Fvwm: Window Manager simples, mas com bastantes recursos. Pode ser totalmente con gurado para
parecer com a interface que se queira. 

Icewm: Outro Window Manager simples. Parece bastante com o OS/2 e incorpora algumas coisas da
interface do Windows tambem.

Enlightenment: Quando foi criado, a primeira preocupac~ao foi com o visual, e depois com os recursos.
Certamente, o mais bonito Window Manager. Seu objetivo e ser totalmente con guravel. Ele foi
totalmente reescrito e apresenta mais recursos que o Window Maker, usando muito menos memoria
que as vers~oes anteriores. Se voc^e tiver um monitor 17" e uma boa placa de vdeo, essa sera a sua
escolha natural.

30 

KDE: Na verdade, n~ao e um Window Manager, mas sim um ambiente composto por um Window
Manager: kwm e varios aplicativos como o kfm ( le manager drag'n drop), kview (visualizador de
gra cos) e o kedit (editor de textos) para citar alguns. Visualmente parecido com a interface do Win bastante polular aqui no Brasil. Pode ser encontrado em:
dows, mas com muitos mais recursos. E
http://www.kde.org  

Twm: Talvez o mais velho Window Manager. Vem na distribuic~ao default do XWindow.
Window Maker: Grande parte do codigo desenvolvida por Alfredo Kojima, da UFRGS. Apresenta
varios recursos. Sua intenc~ao e ser parecido com o falecido sistema operacional, tido por muitos especialistas gra cos como a melhor interface de computador ja inventada. Bastante utilizado no mundo
UNIX. Maiores informac~oes em: http://www.windowmaker.org

Mas o que realmente um Window Manager faz?
Ele gerencia como as janelas ser~ao movidas ou com o tamanho alterado, como uma janela sera minimizada
e restaurada, como os menus se comportam e cones aparecem na tela.
Os Windows Managers modernos apresentam varios recursos. Dentre eles destacamos: 

Iconizac~ao: Com este recurso, as janelas podem ser iconizadas. Cada Window Manager tem um modo
de iconizac~ao diferente: alguns colocam em barras de tarefas, outros em cones espalhados pela tela
outros ainda escondem os janelas e outros n~ao mostram cones.   

Maximizac~ao: Como no OS/2 e no Windows, coloca a janela em seu tamanho maximo. 

Menus: Como o proprio nome diz s~ao menus para acesso rapido as aplicac~oes.
Bot~
oes de atalho: S~ao bot~oes que cam pela area de trabalho e que permitem acesso mais rapido
ainda as aplicac~oes. 

Area
de trabalho virtual: Com esse recurso, presente na maioria dos os Window Managers, voc^e
pode ter varias areas de trabalhos diferentes, podendo mudar a qualquer hora para a area que quiser.
Muito util quando se tem varias janelas e voc^e as quer organizar: coloca-se por exemplo:
O Netscape na area 1,
Os terminais na area 2
O Emacs ou XEmacs na area 3
e as outras aplicac~oes em outras areas. 

Desktop Pager: Junto com as areas de trabalho virtuais, ajuda a voc^e ver como est~ao organizadas
as janelas em outras areas de trabalho. 

Aplicativos Docados: Feito para o Window Maker, inicialmente, e suportado tambem pelo Enlightenment. Esses aplicativos s~ao de proposito geral como informar a hora, se voc^e tem e-mail, quanto de
memoria tem disponvel, qual e o uso da rede, da CPU e da memoria. 

Barra de rolamento de Areas
de trabalho: Presente somente no Enlightenment, permite que voc^e
role as areas de trabalho para baixo, para cima, para esquerda e para a direita. Por exemplo: em vez
de trocar para a area de trabalho de cima, voc^e pode arrastar um pedaco da area de cima para baixo,
e mover aplicativos da area de baixo para cima, etc. 

Percebe-se que os Window Managers s~ao muito diferentes entre si, e ainda que cada um tem seu uso
espec co. Se voc^e tem pouca memoria, provavelmente n~ao usaria o KDE e se fosse um \heavy user", n~ao
usaria o twm.
Percebe-se tambem que o XWindow trabalha diferentemente de outros sistemas, como o OS/2 e o Windows. Enquanto estes ultimos tem seu ambiente de janelas integrado ao ambiente gra co, o XWindow pode
gerenciar as janelas dependendo do Window Manager. Alem disso, nesses sistemas voc^e nunca poderia trocar
o padr~ao de funcionamento das janelas, enquanto que em sistemas UNIX, tem-se muita exibilidade.
Varias coisas devem ser lembradas ao se falar de Window Managers:
31

O XWindow e um sistema extremamente estavel, enquanto que alguns Window Managers n~ao o s~ao. Por
exemplo: se voc^e usa um Window Manager que ca instavel, voc^e pode n~ao mais conseguir mandar resposta
para os programas, forcando-o assim a sair do XWindow (geralmente atraves de um Control-Alt-Backspace)
e talvez perdendo documentos importantes.
Portanto, n~ao se esqueca de usar um Window Manager con avel.

8.2.1 Con gurando um novo Window Manager
Para voc^e poder usar um Window Manager novo, voc^e tera que olhar como o sistema esta con gurado.
Se na sua estac~ao usa-se um gerenciador de sess~ao(geralmente xdm, kdm ou o padr~ao para estac~oes como
Sun e IBM), voc^e deve fazer as alterac~oes no arquivo .xsession no seu diretorio HOME.
Se voc^e entra no sistema pelo console texto (usando geralmente o startx ou xinit), voc^e devera alterar o
arquivo .xinit no seu diretorio HOME.
Nesses arquivos voc^e deve colocar a linha para executar o Window Manager, por exemplo:     

KDE: startkde
WindowMaker: wmaker
Enlightenment: enlightenment
BlackBox: blackbox
Fvwm: fvwm

Ao mudar esses arquivos, voc^e estara dizendo ao XWindow que assim que voc^e inicia-lo ou iniciar uma
sess~ao, ele devera executar esses programas.
Se, por exemplo, voc^e colocar em vez de fvwm, xterm, assim que o XWindow iniciar (seja pelo console
texto ou pela sess~ao), ele ira executar o xterm sem Window Manager funcionando.
Assim, se voc^e digitar blackbox e der ENTER no xterm, por exemplo, o blackbox sera iniciado, gerenciando as janelas atuais e as futuras.

32

Figura 8.1: Window Maker em ac~ao

33

Sign up to vote on this title
UsefulNot useful