Académique Documents
Professionnel Documents
Culture Documents
Copyleft
c 1998 LINUX SOLUTIONS
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)
1 Motivac~ao 6
1.1 Por qu^e Linux? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Conceitos 7
2.1 Introduc~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 O UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Denic~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2 Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 O Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1 Denic~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.2 Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.3 As Distribuic~oes de Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.4 O que o Linux oferece . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Primeiros Passos 10
3.1 Instalac~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.1 Introduc~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.2 Instalac~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Manutenc~ao e atualizac~ao de programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 Congurac~ao do LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4 Congurac~ao do XWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.5 Adic~ao de novos usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 Comandos Basicos 15
4.1 Introduc~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2 Comandos basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3 Redirecionamento da entrada e sada de comandos . . . . . . . . . . . . . . . . . . . . . . . . 17
5 O Sistema de Arquivos 18
5.1 Introduc~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2 A Estrutura de diretorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.3 Protec~ao de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.4 Protec~ao de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6 Aplicativos Basicos 23
6.1 O editor de textos vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2 O bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3 O editor de textos Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.3.1 Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.3.2 Usando o Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2
7 Aplicativos de Rede 26
7.1 Introduc~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.2 FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7.3 Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.4 E-MAIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.5 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.6 NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8 O XWindow 29
8.1 Denic~ao e historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.2 Window managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8.2.1 Congurando um novo Window Manager . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
Lista de Figuras
3.1 XF86Setup: Congurando 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2 Arquivos padr~oes de entrada e sada de comandos . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.3 Redirec~ao de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1 Protec~ao de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.2 Classicac~ao de diretorios: EstaticosVariaveis, CompartilhaveisN~ao-Compartilhaveis . . . 22
7.1 FTP UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5
Cap
tulo 1
Motivac~ao
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 Denic~ao
O UNIX e um sistema operacional multitarefa, multiusuario, diponvel para diversos hardwares.
Ele e multiusuario porque possui a capacidade de criar opc~oes especcas 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
conavel 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 Denic~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 suciente.
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 arma que n~ao se deve fechar o codigo de qualquer trabalho
derivado do programa com essa licenca. O nome Linux deriva de
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 congurac~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 computa-
dores 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 innita) 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
Congura-se a BIOS para bootar pelo CD, se ela tiver essa capacidade
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
Segue-se um menu com uma serie de opc~oes. Va escolhendo cada uma na ordem
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 graco 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
especo e a decis~ao sobre o que e nescessario instalar.
Algumas sugest~oes sobre programas essenciais para nalidades especcas
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.
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 ao: H
c~ 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 ao: Tamb
c~ em pode-se usar o comando dpkg {help para obter uma ajuda completa
Observa ao: No caso da Debian (onde o DPKG
c~ 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 congure. Ele e um script de congurac~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.
12
other = /dev/hdb1
label = DOS
loader = /boot/any d.b
table = /dev/hdb
# DOS bootable partition cong ends
Como nota-se, esse arquivo e dividido em duas partes: uma para as conguraco~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 signicam
append=\linha de comando" { Linha de comando que e mandada para o kernel quando o Linux carrega.
boot=setor de boot { Dene 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 { Dene um arquivo contendo uma mensagem que ser a mostrada apos o
prompt de boot.
password=senha { Dene uma senha
prompt { Forca 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 denido como 0 o LILO
esperara para sempre.
verbose=nvel { Liga uma serie 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.
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 graco 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 danicar seu monitor.
Uma vez congurado digite startx para testar a congurac~ao.
Observa ao: Caso depois de executar o startx d^
c~ 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 congurac~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. xf86cong
Esse programa ira fazer uma serie de perguntas textuais e voc^e respondera uma por uma especicando
mouse, placa de vdeo e monitor.
13
Figura 3.1: XF86Setup: Congurando a placa de vdeo
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.
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
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.
Smbolo Redirec~ao
> Redirec~ao para sada
>> Redirec~ao da sada para o m do arquivo
j Redirec~ao da sada de um comando para a entrada de outro
> Redirec~ao da entrada
Tabela 4.3: Redirec~ao de arquivos
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.
Cada no dessa arvore e um arquivo ou diretorio que contem arquivos. Voc^e pode especiicar 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 congurac~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 especcos. 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 congurac~ao que s~ao locais ao computador. N~ao existem arquivos
binarios nesse diretorio.
/etc
X11 congurac~ao do XWindow
skel esqueleto de congurac~ao do usuario
(contem os arquivos que s~ao copiados para cada
usuario quando da criaca~o da sua conta).
/proc { Sistema de arquivos que mantem informac~oes sobre os processos, memoria, CPU e estado do
sistema.
19
/usr { Outro sistema de arquivos dentro do sistemas de arquivos, compartilhavel e somente de leitura.
/usr
/X11 X Window System, vers~ao 11 - release 6
/bin A maioria dos comandos
/dict Lista de dicionarios
/doc Documentac~ao de programas
/games Jogos e programas educacionais
/include Arquivos de inclus~ao usados por programas escritos em C
/info Informac~ao sobre programas
/lib Bibliotecas dos programas
/local Hierarquia local (para programas extras)
/man Manuais online dos programas
/sbin Programas para o administrador, n~ao essenciais ao sistema
/share Dados independentes de arquitetura
/src 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 Paginas de manuais formatadas
/lib Informac~ao de estado dos programas
/lock Arquivos de lock
/log Arquivos e diretorios de logging
/named Arquivos de DNS
/nis Banco de dados de NIS (Network Information Service)
/run Arquivos relevantes para processos que est~ao sendo executados
/spool Diretorios e arquivos em la para posterior uso
/tmp Arquivos temporarios. Usado para manter o /tmp pequeno
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.
20
total 45
drwx|| 5 paulo paulo 1024 set 20 17:25 Desktop
drwxr-xr-x 4 paulo paulo 1024 set 3 16:16 GNUstep
drwx|| 3 paulo paulo 1024 set 20 17:11 Mail
drwxr-xr-x 16 paulo paulo 1024 set 10 20:30 OÆce40
drwxr-xr-x 12 paulo paulo 1024 set 16 16:36 SNNSv4.1
drwxr-xr-x 11 paulo paulo 1024 set 19 15:39 artigos
-rw-r{r{ 1 paulo paulo 531 out 10 07:24 download
-rw||- 1 paulo paulo 3130 out 10 07:06 fgv.old
-rw-rw-r{ 1 paulo paulo 50316 out 10 06:33 mbox
-rw||- 1 paulo paulo 6135 out 10 07:02 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
signica 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 signica que pode ser lido pelo dono, grupo ou por outro. Um arquivo com
bit de escrita signica que o arquivo pode ser alterado. Ja um diretorio com bit de leitura ligado signica
podemos ver seu conteudo.
Com bit de execuc~ao ligado signica que podemos entrar nele (executarmos ele). Com bit de escrita
signica que podemos escrever nele.
Quanto aos diretorios, podemos dividi-los em quatro tipos
Estaticos
Din^amicos
Compartilhaveis
N~ao Compartilhaveis
21
A tabela abaixo contem exemplos de diretorios separados conforme essa classicac~ao.
22
Cap
tulo 6
Aplicativos Basicos
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 articial muito usada. O
Emacs foi sucedido pelo XEmacs, que e hoje o melhor editor de textos do mundo. Faz tudo sem precisar sair
dele.
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 signica 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 UNIX
delete rm
rename 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 vericar 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 computa-
dor era identicado 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 diretamen-
te, 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
29
uma tela graca. Bastara digitar sua conta e sua senha para entrar no sistema, no modo graco. 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 se-
melhante ao XDM, se o usuario tiver um arquivo \.xinitrc" no seu diretorio home, ele podera especicar
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 especicar 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.
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
gracos) e o kedit (editor de textos) para citar alguns. Visualmente parecido com a interface do Win-
dows, mas com muitos mais recursos. E bastante polular aqui no Brasil. Pode ser encontrado em:
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 espe-
cialistas gracos 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 Enligh-
tenment. 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
especco. 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 Win-
dows. Enquanto estes ultimos tem seu ambiente de janelas integrado ao ambiente graco, 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 conavel.
32
Figura 8.1: Window Maker em ac~ao
33