Vous êtes sur la page 1sur 41

Introduo ao Uso

do Linux

Autores: Raphael Melo Guedes & Elaine de Mattos Silva

Orientador: Jos Paulo Vilela Soares da Cunha


4 a Verso, Junho de 2006
Rio de Janeiro - RJ - Brasil

Este texto foi preparado com apoio do Programa de Estgio Interno Complementar
do Cetreina/SR-1/UERJ.

Resumo
Esta apostila apresenta conceitos bsicos sobre o uso do Sistema Operacional Linux. Ela faz parte de
um projeto que visa impulsionar o uso deste sistema e outros softwares livres entre os alunos de Engenharia Eltrica da Faculdade de Engenharia da Universidade do Estado do Rio de Janeiro (FEN/UERJ).
Este texto livre para cpia e distribuio gratuitas, desde que sejam mantidos os crditos aos seus
autores e UERJ.

Contedo
Resumo
1

Introduo
1.1 Sistemas Operacionais . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 A Evoluo dos Sistemas Operacionais, o Surgimento UNIX e do Linux
1.3 Sobre o Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 O que Software Livre? . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

6
6
6
9
9

Noes Bsicas
2.1 Distribuies . . . . . . . . . . . . .
2.2 Kernel . . . . . . . . . . . . . . . . .
2.2.1 As verses do Kernel . . . . .
2.3 Comandos . . . . . . . . . . . . . . .
2.4 Shell . . . . . . . . . . . . . . . . . .
2.4.1 Principais Shells . . . . . . .
2.4.2 Scripts . . . . . . . . . . . .
2.5 Interfaces Grficas- X Window System
2.5.1 Conceitos do X . . . . . . . .
2.5.2 KDE . . . . . . . . . . . . .
2.5.3 GNOME . . . . . . . . . . .
2.6 Sistemas de Arquivos . . . . . . . . .
2.7 Diretrios . . . . . . . . . . . . . . .
2.7.1 Estrutura de Diretrios . . . .
2.8 Modos de Permisso . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10
10
11
11
12
12
13
13
14
14
15
15
15
16
16
16

Comandos do Shell
3.1 Estrutura Geral de um Comando . . . . . . . . . . . . . . . .
3.2 Alguns Comandos . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Comandos de ajuda e informaes . . . . . . . . . . .
3.2.2 Comandos de montagem e navegao pelos diretrios .
3.2.3 Comandos de localizao de arquivos . . . . . . . . .
3.2.4 Comandos de manipulao de diretrios ou arquivos .
3.2.5 Comandos de paginao . . . . . . . . . . . . . . . .
3.2.6 Comandos de compactao e descompactao . . . . .
3.2.7 Comandos de backup . . . . . . . . . . . . . . . . .
3.2.8 Pacote mtools . . . . . . . . . . . . . . . . . . . . .
3.2.9 Comandos para gerenciamento de processos . . . . . .
3.2.10 Comandos para gerenciamento de grupos e usurios .
3.2.11 Comandos para gerenciamento de privilgios . . . . .
3.2.12 Comandos para impresso . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

17
19
19
19
22
26
27
29
30
31
31
33
34
36
38

Programas Grficos
4.1 import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Xfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Gimp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39
39
39
40

Editores de Texto
5.1 Processamento de Texto e Processamento de Palavras
5.1.1 vi . . . . . . . . . . . . . . . . . . . . . . .
5.1.2 Emacs . . . . . . . . . . . . . . . . . . . . .
5.1.3 OpenOffice . . . . . . . . . . . . . . . . . .
5.1.4 TEX e LATEX . . . . . . . . . . . . . . . . .

.
.
.
.
.

41
41
41
42
42
42

Comentrios Finais
6.1 Como obter arquivos de instalao . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Alguns programas interessantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43
44
44

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

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

Referncias

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

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

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

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

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

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

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

.
.
.
.
.

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

.
.
.
.
.

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

.
.
.
.
.

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

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

45

ndice

46

1 Introduo
1.1

Sistemas Operacionais

Uma rpida anlise do diagrama na Fig. 1 nos mostra que um sistema operacional pode ser interpretado
como um gerenciador que interliga os dispositivos fsicos (tambm denominados hardware: processadores, memria principal e dispositivos de entrada e sada) aos softwares (compiladores, editores de texto,
planilhas e outros)[10].
O sistema operacional tambm pode ser visto como uma camada de software que separa o hardware
do usurio. Se no houvessem sistemas operacionais teramos que controlar diretamente todo o hardware
escrevendo programas que levassem em considerao detalhes mnimos como, por exemplo, o conjunto
de instrues em cdigo binrio que permite escrever um dado num disquete ou disco rgido.

Figura 1: Um Sistema de Computador.

1.2 A Evoluo dos Sistemas Operacionais, o Surgimento UNIX e do Linux


Podemos entender melhor a histria do UNIX analisando a histria dos computadores e sistemas operacionais [10].
Em meados dos anos 40 os computadores eram apenas mquinas de clculo que serviam para gerar
tabelas de senos e cossenos e outros problemas envolvendo o clculo numrico. Para isto elas empregavam aproximadamente 20.000 vlvulas e os programas eram feitos de forma quase rudimentar (atravs
de ligaes de fios em painis). Nem preciso explicitar o enorme tamanho destas mquinas, suas baixas
capacidades de processamento e a dificuldade em oper-las.
No incio da dcada de 50 as vlvulas foram trocadas pelos transistores e empresas passaram a produzir computadores mais confiveis; o processamento era feito atravs de cartes perfurados (vide Fig. 2),
onde se codificava as instrues em linguagem assembly ou FORTRAN. Depois de perfurados estes cartes eram entregues pelos programadores aos profissionais do CPD (centro de processamento de dados)
que tinham acesso aos computadores e estavam encarregados de compilar os programas. Mas a aparecia um problema. Dependendo do tipo de cdigo ainda era necessrio carregar cartes referentes

programas auxiliares como, por exemplo, o compilador FORTRAN. O trabalho era ento duplicado pois
o operador tinha que inserir os cartes criados pelo programador e os cartes do compilador FORTRAN.
Alm disso, o programador tinha que esperar pelo resultado de seu programa que era impresso em papel.
Perdia-se tempo demais com este modelo e por isso desenvolveu-se um novo modelo. O modelo de pro-

Figura 2: Carto Perfurado.


cessamento em lotes (batch system) surgiu para agilizar o sistema. Ao invs de apenas um computador
principal, inseriu-se um segundo computador, com menor capacidade de processamento. Este computador secundrio era responsvel por ler todo o conjunto de cartes referentes a um programa e grav-los
em fita magntica. Desta forma, quando o computador primrio lia a fita, tudo o que ele precisava para
compilar o programa estava nela. O nico trabalho da mquina principal era compilar o cdigo e gravar
a sada em uma outra fita magntica. Ao fim do processamento a fita de sada era levada at a mquina
secundria que imprimia os resultados enquanto a mquina primria continuava a processar uma outra
fita.
No incio da dcada de 60 algumas empresas comearam a ver a potencialidade dos computadores
e os fabricantes comearam a desenvolver duas linhas de computadores: um para a rea comercial e
outro para a rea cientfica. Na tentativa de criar uma linha de computadores unificada, a IBM lanou
uma famlia de mquinas chamada System/360. Estas mquinas variavam de computadores com menos
capacidade de processamento e armazenamento at mquinas poderosas e, para funcionar com todas
estas mquinas, a IBM lanou um sistema operacional nico.
Este sistema, o OS/360, chegou a ser lanado. Foi todo escrito em linguagem de baixo nvel assembly,
mas um cdigo para um sistema to ambicioso complexo demais e, mesmo tendo sido desenvolvido
por milhares de pessoas, a quantidade de bugs era muito grande. Uma mquina para a rea cientfica
tinha que resolver problemas de engenharia e clculo numrico, j uma mquina da rea comercial tinha
que armazenar um nmero enorme de registros e dados de clientes, funcionrios e etc. Criar um sistema
nico capaz de atender a todas estas demandas era um problema dficil demais para ser solucionado com
a pouca tecnologia da poca.
Apesar destes problemas o sistema satisfez a maioria dos usurios e, o mais importante, introduziu
conceitos novos como a multiprogramao e o spooling, mas, mesmo com as inovaes trazidas pelo
OS/360 o processamento ainda era feito em lotes. Isto retardava muito o trabalho de programadores,
pois, do momento em que entregavam os cartes at o momento no qual recebiam a lista impressa com
os resultados do programa, passavam vrias horas. Alm disso, agora eles ainda tinham que dividir o
tempo de processamento do servidor (mquina central) com a rea comercial.
Para diminuir este tempo de resposta, o M.I.T. desenvolveu o sistema CTSS ( sistema de tempo
compartilhado ). Neste sistema cada usurio tinha um terminal on-line. Os processos mais rpidos (compilao de programas) eram executados em prioridade, j os processos mais longos (geralmente da rea
comercial, como colocar em ordem alfabtica um registro com 300.000 nomes) eram executados em segundo plano. Pouco tempo depois o M.I.T. juntou-se Bell Labs e General Electric num projeto para a
criao de uma super mquina que suportaria centenas de usurios simultaneamente. Este sistema ficou
conhecido como MULTICS (MULTiplexed Information and Computing Service - Servio de Computao e Informao Multiplexado) e seu conceito no foi muito adiante pois embora tenha sido escrito em
linguagem de alto nvel PL/I da IBM, esta linguagem ainda era muito pesada e no funcionava to bem
quanto o velho assembly .
Um dos pesquisadores da Bell Labs, Ken Thompson resolveu reescrever o MULTICS para um pequeno computador da DEC o PDP-7. Para isso ele usou linguagem de montagem assembly. Este sistema funcionou muito bem e foi chamado pelo tambm pesquisador da Bell Labs, Brian Kernighan, de
UNICS(UNIplexed Information and Computing Service - Servio de Computao e Informao "Uni-

plex"), uma pardia ao MULTICS . Pouco tempo depois a Bell Labs, vendo a funcionalidade do sistema,
passou a us-lo e cham-lo de UNIX.
Havia ainda um fator limitante para o amplo uso do UNIX. A linguagem de montagem especfica
de cada computador (restrita a arquitetura de cada processador), isto , se um programa escrito em assembly para uma mquina IBM por exemplo, ele deve ser reescrito para funcionar com uma DEC. Como
o sistema UNIX havia sido escrito em linguagem de montagem, para funcionar em um outro modelo de
mquina ele precisava ser reescrito, ou seja, o UNIX no era portvel. A soluo para este problema
era reescrever o UNIX em uma linguagem mais alto nvel. Foi ento que Dennis Ritchie, tambm da
Bell Labs aperfeioou a linguagem B (originalmente escrita pelo Thompson) e criou a linguagem de
programao C . Juntos, Ritchie e Thompson reescreveram o UNIX em C .
Nesta poca a Bell Labs no podia entrar na rea da computao pois fazia parte de um monoplio
controlado da rea de telecomunicaes (era parte da AT&T). Por este motivo a Bell Labs concedia licenas para universidades cobrando apenas uma pequena taxa. Com isto o sistema tornou-se muito popular
em pouco tempo. O fato de ele ser fornecido com o cdigo-fonte possibilitou seu estudo, anlise e at
correo de algumas falhas. O cdigo-fonte aberto possibilitou tambm que outras empresas e universidades montassem suas prprias verses do UNIX e apareceram o BSD ( Berkeley Software Distribution)
da Universidade de Berkeley, o XENIX da Microsoft, o AIX da IBM, HP-UX da Hewlett Packard
entre outros. Pouco tempo depois a AT&T foi dividida em empresas menores, o que lhe possibilitou a
comercializao do UNIX.
Como estas verses no eram compatveis entre si, nem sempre era possvel escrever um programa
que funcionasse em mais de uma verso de UNIX. Isto gerava um transtorno muito grande e para acabar
com estas incompatibilidades o IEEE (Institute of Electrical and Electronics Engineers - Instituto de Engenheiros Eltricos e Eletrnicos -http://www.ieee.org
) desenvolveu um padro com uma srie
de normas para o UNIX . O POSIX, como foi chamado, define um conjunto de rotinas de biblioteca que
deve estar presente na verso do UNIX padro. Mesmo assim, continuaram existindo sistemas baseados
em UNIX (UNIX-like) fora do padro POSIX. Um exemplo disto o AIX da IBM. Alm disto, os sistemas estavam ficando, a cada nova verso, maiores e mais complexos, contradizendo a idia principal
do UNIX, um sistema de simples compreenso e eficiente. Com a comercializao do UNIX da AT&T
mais um problema surgiu. A partir da verso 7 a licena do UNIX passou a proibir que seu cdigo-fonte
fosse estudado em cursos.
Quando Andrew Tanenbaum, um renomado professor de Cincia de Computao, percebeu este
problema com os novos sistemas UNIX-like , criou o MINIX (mini-UNIX), um sistema operacional
pequeno, escrito em linguagem C , compatvel com o UNIX mas que no tem nenhuma linha de cdigo
igual ao UNIX [11]. O MINIX ficou muito popular nas universidades por diversos motivos e, de acordo
com Tanenbaum esses motivos so:
- por no ter o cdigo igual ao do UNIX ele pode ser distribudo sem problemas com a AT&T;
- ele pode ser entendido e estudado a fundo pois seu cdigo-fonte legvel;
- padro POSIX , mas tambm roda aplicativos que no so.
Logo depois de lanado o MINIX , criou-se um grupo de discusso sobre ele na Internet,o comp.os.minix.
Mais de 40.000 pessoas participavam deste grupo e algumas delas estavam sempre pedindo que fossem
adicionados ao sistema mais recursos, aplicativos comerciais, etc. Adicionar mais recursos muitas vezes
significa deixar um sistema maior e este no era o objetivo de Tanenbaum. Afinal, o MINIX foi escrito
para funcionar como ajuda educacional e no comercial.
Um dia um jovem estudante da Universidade de Helsinki na Finlndia, deixou a seguinte mensagem
no grupo de discusso [13]:
Como eu mencionei a um ms atrs, eu estou trabalhando em uma verso livre de um sistema
similar ao MINIX para computadores AT-386. Ela finalmente chegou ao ponto no qual pode ser
usada (...). apenas a verso 0.02...mas eu consegui executar o bash, o gcc , o GNU make , o
GNU sed, o compress , etc. neste sistema (...)
Este estudante era Linus Torvalds e o sistema de que ele falava era o Linux.

1.3

Sobre o Linux

O Linu x foi originalmente desenvolvido por Linus Torvalds como um passatempo. Seu objetivo era
criar um sistema operacional multitarefa e multiusurio derivado do MINIX tambm com as mesmas
caractersticas, sendo at mais robusto, disponvel para diversas plataformas de hardware e com mais
recursos.

Voc deve estar se perguntando, se j existia o UNIX porque criar outro sistema operacional ? que
inicialmente o UNIX era distribudo quase que gratuitamente para as universidades, porm depois que a
AT&T viu seu sucesso no meio comercial, passou o disponibiliz-lo por um preo muito alto. O Linux
funcionou como uma alternativa barata e funcional para quem no estava disposto a pagar um alto preo.
Linux = Linus + UNIX

1.4

O que Software Livre?

O movimento do software livre teve seu incio em 1984 quando Richard Stallman (na poca, pesquisador
do M.I.T.) teve um problema com um driver para impressora. O problema era o seguinte: havia uma
impressora que era usada por diversos funcionrios atravs da rede. Ela ficava em outro andar e era
muito requisitada. Porm frequentemente esta impressora apresentava problemas com o papel que ficava
preso e, por isso, ela parava de funcionar. O hardware da impressora detectava o problema mas o driver
(-software que controla os dispositivos) no comunicava o problema aos usurios. O resultado disto eram
horas de atraso pois somente quando um usurio ia buscar sua impresso o defeito era percebido.
Em face deste problema, Stallman resolveu melhorar este driver, mas, ao pedir o cdigo-fonte ao fabricante da impressora, disseram-lhe que os cdigos eram segredo comercial. Depois disso Stallman comeou a criar verses abertas para vrias categorias de softwares existentes comercializados sem acesso
ao cdigo-fonte. Ele criou um compilador gratuito da linguagem C, o famoso editor de texto emacs
e fundou a FSF, Free Software Foundation (Fundao de Software Livre - http://www.fsf.org
).
At hoje a FSF cria grande parte dos aplicativos utilizados pelos sistemas UNIX-Like como o Linux e o
FreeBSD [7].
Software livre vem do ingls Free Software, o que pode gerar muitas dvidas, pois a palavra free
tanto pode ter o sentido de gratuidade quanto o sentido de liberdade. Contudo, a expresso Software
Livre refere-se liberdade dos usurios em executar, copiar, distribuir, estudar, modificar e melhorar o
software.
Existe um documento que estabelece a forma sob a qual programas de cdigo-fonte aberto podem ser
distribudos. Este documento especifica que o programa pode ser usado e modificado por quem quer que
seja, desde que as modificaes efetuadas sejam tambm disponibilizadas juntamente com seu cdigofonte e o autor do cdigo original seja mencionado. Este documento o GNU Public License (GPL) e
ele est disponvel em http://www.gnu.org
.

2 Noes Bsicas
O Linux case sensitive, ou seja, faz distino entre caracteres maisculos e minsculos. Alm disso, a
extenso dos arquivos fica a critrio do usurio, pois no Linux a extenso de um arquivo no define seu
tipo.
O sistema de arquivos do Linux permite restringir o acesso a arquivos e diretrios, autorizando o
acesso de somente determinados usurios. A cada arquivo e diretrio associado um conjunto de permisses que determinam quais usurios podem ler, escrever e executar (em se tratando de programas ou
scripts). Por isso obrigatrio o usurio ter uma conta aberta pelo administrador do sistema (superusrio
ou apenas root).
Quando o Linux foi criado, um de seus objetivos era permitir aos programadores o acesso direto
aos dispositivos. Os dispositivos de armazenamento ( HDs, CDs, disquetes etc) assim como todos os
elementos de hardware, so acessados como arquivos, logo no so representados por letras como ( a:,
c: e d:), todo e qualquer perifrico representado pelo seu diretrio. Assim uma unidade de cd-rom no
representada por d: e sim por um diretrio /mnt/cdrom
e o modem simplesmente /dev/modem .

2.1

Distribuies

Em estreito termo tcnico, Linux somente o (ncleo) kernel do sistema operacional, que oferece servios bsicos de processos, memria virtual, administrao de arquivos, etc. Embora muitas pessoas usem
o termo Linux para se referir a um completo sistema operacional, o Linux em si uma parte pequena
deste. Por isso, a anos atrs, era muito trabalhoso voc ter o Linux instalado em seu desktop, pois era
necessrio compor seu sistema operacional procurando pela internet os softwares aplicativos que mais
lhe convinham.

Foi pensando nisso que algumas empresas e organizaes decidiram juntar o kernel a vrios programas escritos para o Linux em pacotes chamados distribuies. Como o Linux e suas aplicaes
so desenvolvidos em diversos locais, algumas empresas focaram suas atividades na compilao, teste,
desenvolvimento de softwares e suporte, assim como milhares de aplicativos que implementassem melhorias. Dessa forma surgiram distribuies ao redor do mundo, cada uma mantendo um segmento de
atuao e um mercado especfico. Dentre as principais podemos citar: Slackware, Debian, Fedora,
S.U.S.E., Mandriva etc.

2.2

Kernel

Como mencionado na seo anterior sobre distribuies, o kernel o ncleo do sistema operacional, responsvel por vrios servios de gerenciamento de arquivos, compartilhamento de recursos da mquina,
acesso a dispositivos, entre outros. o kernel quem controla todos os dispositivos do computador e ele
pode ser visto como uma interface entre os programas e todo o hardware.

Figura 3: Partes do UNIX/Linux.

2.2.1

As verses do Kernel

Periodicamente, novas verses do kernel do Linux so lanadas 1 . Isso ocorre para promover melhoras
em uma determinada funo da verso anterior, corrigir vulnerabilidades, adicionar recursos ao kernel,
principalmente compatibilidade com novos dispositivos como placas de vdeo e modems.
Como o Linux um sistema operacional aberto, qualquer pessoa pode estudar e/ou alterar seu cdigofonte. Devido a isso, tanto as verses estveis quanto as verses que ainda esto em desenvolvimento
so disponibilizadas a qualquer pessoa. Para que seja possvel distinguir uma verso estvel de uma
em desenvolvimento, foi adotada a seguinte conveno: cada verso do kernel representada por trs
nmeros distintos separados por pontos. O primeiro e o segundo nmero indicam qual a srie daquele
kernel , enquanto que o terceiro nmero indica qual a verso do kernel naquela srie. Se o segundo
nmero da representao for mpar, significa que aquela srie ainda est em desenvolvimento, ou seja,
uma verso instvel e em fase de testes e aperfeioamentos. Se o segundo o nmero for par, significa
que aquela srie possui estabilidade para funcionar. O terceiro nmero alterado quando algum recurso
adicionado. O arquivo do kernel tem geralmente esta estrutura vmlinuz-2.4.25
.

2.3

Comandos

Um comando no UNIX simplesmente um arquivo. Por exemplo, o comando ls , que serve para listar
arquivos e diretrios, um arquivo binrio localizado no diretrio /bin . Esta uma diferena notvel
nos sistemas UNIX-Like, pois, enquanto outros sistemas possuem um nmero fixo de comandos, os
sistemas baseados em UNIX podem arquivar quantos comandos forem necessrios.
1 Para

saber mais sobre verses de Kernel acesse http://www.kernel.org

Tabela 1: Verses do Kernel.


VERSO
2.4.25
2.5.19
2.0.2 para a 2.0.3

2.4

ESTABILIDADE
Esta verso do kernel estvel, pois sua srie par (4)
Esta verso instvel, pois sua srie mpar (5).
Houve apenas um reparo.

Shell

O shell um programa inicializado logo aps o login do usurio, ou seja, quando o usurio acessa sua
conta o shell quem abre a seo para ele.
Ele tem a funo de interpretar todos os comandos lanados ao sistema, fornececendo uma interface
de linha de comando entre o usurio e o kernel. Assim, quando se executa um comando, estes so
interpretados pelo shell e enviados para o kernel, que por sua vez os executa.
O shell acessado a partir de um terminal que voc pode abrir numa janela dentro da interface grfica,
ou no terminal propriamente dito. Existem vrios emuladores de terminais grficos disponveis, como
o xterm, eterm, konsole, rxvt etc. Todos fazem basicamente a mesma coisa: permitem que voc use os
comandos e aplicativos no modo texto.
Exemplos de dois terminais grficos:

(a)

(b)
Figura 4: (a) Janela do Kconsole. (b) Janela do Xterm.

O xterm (b) o mais simples, e bem leve. O konsole (a) por sua vez bem mais pesado, mas oferece
mais recursos, como abrir vrios terminais dentro da mesma janela, fundo transparente, etc.

2.4.1

Principais Shells

Como um shell nada mais que um programa, ele pode ser desenvolvido por qualquer programador,
porm existem alguns shells mais usados como: bash, csh, ksh, sh, tcsh, e zsh. O shell padro do Linux
o bash(GNU Bourne-Again SHell).

Bourne Shell - Shell padro do UNIX, escrito por Stephen Bourne da Bell Labs. Tambm chamado
de Standard Shell, o mais utilizado pois todos os sistemas UNIX-Like tem o Bourne Shell adaptado aos
seus ambientes. A representao deste shell sh .
Bourne-Again Shell - o shell padro do Linux e quase totalmente compatvel com o Bourne
Shell. O nmero de usurios deste shell vem aumentando a cada dia. Sua representao bash.
Korn Shell - Upgrade do Bourne Shell desenvolvido por David Korn da Bell Labs (AT&T). Por
ser totalmete compatvel com o Bourne est sendo muito usado por programadores e usurios do UNIX.
Para o UNIX, a representao deste shell ksh.

10

C Shell - O C Shell foi desenvolvido por Bill Joy da Universidade de Berkeley. mais usado nos
ambientes BSD e XENIX. Sua estrutura de linguagem muito similar ao C. Para o UNIX, a representao
deste shell csh [9].
2.4.2

Scripts

Scripts ou Shell Scripts so conjuntos de comandos armazenados em um arquivo texto que so executados seqencialmente. Sua finalidade facilitar uma tarefa, uma configurao de hardware ou programa.
Muitos programas em Linux so executados ou configurados a partir de scripts. Todos os comandos
contidos em um script podem, em situao normal, ser executados a partir de um terminal.
A primeira linha de todo shell script em Linux comea com algo do tipo:
\#\!/bin/bash
que indicar com qual shell o script ser executado, neste caso o bash (Bourne-Again Shell).
Veja a segir um exemplo de script:
\#!/bin/bash
\# ondeTa.

Script

que

lista

a pasta

indicada

por\$1.

ls -l /mnt/hda5/MyDocuments/fac/trabalhos/$1

Este exemplo de script foi escrito para facilitar a listagem de pastas que ficavam em uma outra
partio do hd. Ao invs de ter que digitar todo este comando:
ls -l/mnt/hda5/MyDocuments/fac/trabalhos/nome

_do

_diretrio

basta digitar:
./ondeTa

nome_do_diretrio

Neste exemplo, o script ser executado pelo bash. O termo $1 em um script, indica uma varivel a
ser acrescentada na hora de executar o script. Neste caso $1 substitudo por nome do diretrio.
Obs1.: Outras variveis poderiam ser acrescentadas ao script como $2, $3 assim por diante com
novos parmetros ou comandos.
Obs2.: Ao executar um script ou qualquer arquivo executvel no Linux, necessrio acrescentar antes
do nome "./"(ponto e barra).

2.5

Interfaces Grficas- X Window System

O sistema de janelas X ou simplesmente X a interface grfica baseada em janelas padro para os sistemas UNIX-Like. Ele um ambiente que roda diversas aplicaes, dentre elas: jogos, utilitrios grficos,
editores de textos e planilhas, ambientes de programao, ferramentas de documentao e outros.
O X permite que voc trabalhe com vrias janelas de terminais ao mesmo tempo, e quando em uma
rede TCP/IP possvel at mesmo executar aplicativos X que esto em outras mquinas, diretamente do
seu terminal .
Esta interface foi originalmente desenvolvida pelo Projeto Athena ( um consrcio entre o M.I.T. e a
DEC - Digital Equipment Corporation) Hoje em dia ele desenvolvido e distribudo pelo X Consortium,
uma associao composta por um grande nmero de fabricantes de computadores. O X comeou a ser
bastante divulgado a partir da verso X11 e encontra-se hoje na verso X11R6 ( verso 11, reviso 6) [13].

2.5.1

Conceitos do X

O X baseado no sistema cliente-servidor. O servidor X quem cuida do acesso ao hardware e o cliente


se comunica com o servidor fazendo requisies do tipo "desenhe uma linha" ou "ateno para a entrada
de dados do teclado". O xterm um exemplo de cliente.
Um outro conceito muito importante a idia de gerenciadores de janelas. Os gerenciadores funcionam junto do servidor X e so eles que dizem como o usurio vai interagir com as janelas. Eles ditam
como as janelas sero manipuladas ( onde elas se localizaro, seu tamanho, etc) e sua aparncia [13].
Existem vrias opes de gerenciadores, entre eles esto [6]:

11

- FVWM;
- TVM;
- AfterStep;
- Enlightenment;
- WindowMaker;
e outros
Alm de todas esta opes, surgiu a algum tempo um novo conceito. So os ambientes de desktop.
Eles fornecem uma interface ainda mais completa para o sistema operacional e vem com seus prprios
aplicativos e utilitrios. Estes ambientes so muito fceis de usar e so muito atraentes para os novos
usurios de sistemas UNIX-Like. Dois exemplos so o KDE e o GNOME [6].

12

2.5.2

KDE
O KDE - K Desktop Environment um ambiente de desktop para estaes de trabalho
UNIX. Um dos objetivos do KDE fornecer uma interface mais amigvel para o UNIX.
O KDE um software livre que pode vir junto com determinadas distribuies do
Linux. Seu cdigo-fonte aberto para qualquer pessoa modificar. O KDE tambm
possui uma sute de aplicativos para escritrio que contm um editor de texto, um editor
de planilhas, um aplicativo de apresentaes, um organizador, um gerenciador de email, entre outros [4].

2.5.3

GNOME
O Projeto GNOME oferece duas coisas: o ambiente de desktop GNOME e a plataforma
de desenvolvimento GNOME.
O ambiente desktop , como o KDE, um desktop intuitivo e agradvel voltado para
usurios finais . J a plataforma de desenvolvimento voltada para a construo de
aplicativos que se integram diretamente ao desktop. Dentre as linguagens nativas no
GNOME esto o C, C++, Python, Perl e o Java.
O GNOME um softwarelivre que faz parte do projeto GNUindexGNU e seu objetivo
principal oferecer aos usurios e programadores o mximo possvel de controle sobre
os seus desktops, softwares, e seus dados.
Assim como o KDE, o time de desenvolvimento do GNOME tambm tem a preocupao com a praticidade. Eles entendem que o ambiente de desktop deve ser de fcil
compreenso para todos [3].

2.6

Sistemas de Arquivos

Um sistema de arquivos determina como os arquivos podem ser gravados, copiados, alterados, nomeados
e at apagados. Ou seja, toda e qualquer manipulao de dados numa mdia necessita de um sistema de
arquivos para que essas aes sejam possveis. Se no houver estrutura de armazenamento e manipulao,
impossvel gravar dados.
Assim como existem o FAT e o NTFS para o Windows existem vrios sistemas de arquivos disponveis para o Linux2 . Alguns exemplos so: XFS, ReiserFS, JFS e o EXT3 (sucessor do EXT2).
Quando um disco rigido formatado com um sistema de arquivos, uma estrutura de dados chamada
de inode (n indice) criada. O inode o elemento essencial de um sistema de arquivos do Linux. Ao
criar um arquivo, um inode alocado para ele. Cada inode contm vrias informaes sobre o arquivo
como:
UID (identificao do usurio) e GID (identificao do grupo) dono do arquivo
Tipo de arquivo - Se um diretrio, um arquivo comum, um link, etc.
Permisses do arquivo
Data e hora de criao
Tamanho do arquivo
Localizao dos blocos onde esto armazenados o arquivo

2.7

Diretrios

Para tratar dos arquivos, o sistema lana mo de uma estrutura de diretrios hierrquica.
2 Sistemas Linux podem acessar arquivos de sistemas OS/2, DOS, Windows NT/XP , Windows 95/98 e mais alguns, desde que
devidamente montados.

(a)

(b)
Figura 5: (a) Tela do KDE. (b) Tela do GNOME.

2.7.1

Estrutura de Diretrios

A primeira diferena na estrutura de diretrios do Linux, que basicamente, no temos os arquivosdo


sistema concentrados em pastas como: Arquivos de programas. Contudo, como em todo sistema de
computador, os arquivos so organizados dentro de uma estrutura hierrquica de diretrios.
Voc encontrar um diretrio chamado diretrio raiz "/", onde estaro no apenas todas as parties
de disco, mas tambm o CD-ROM, drive de disquete e todos os outros dispositivos. Logo, temos o diretrio raiz, tambm representado pela "/", no topo da rvore hierrquica e, dentro dele vrios subdiretrios
como exemplificado na figura abaixo:
Por exemplo, dentro de "/" temos um diretrio chamado /home , e dentro de /home temos um
subdiretrio para cada usurio. Assim se o seu login por exemplo aluno , existe um diretrio /aluno
dentro do diretrio /home , representado por /home/aluno . E espera-se que voc armazene seus
arquivos pessoais dentro desta pasta.
Lembre-se, a primeira "/"(barra) indica o diretrio raiz. Como dito, caso exista mais de um usurio, sua pasta tambm estar dentro do /home . interessante conhecer pelo menos os diretrios mais
importantes, pois facilita no entendimento de alguma aplicao e tambm na busca de algum arquivo. A
seguir uma breve descrio dos diretrios mais importantes:

Tabela 2: Diretrios Importantes.


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

DESCRIO
o diretrio onde esto contidos os arquivos dos usurios do sistema.
Contm os comandos essenciais do Linux, os comandos usados com maior
freqncia pelos usurios e arquivos executveis (binrios).
Contm arquivos necessrios para a inicializao do sistema.
Arquivos de dispositivos (perifricos) de entrada/sada.
Arquivos de configurao e administrao do sistema.
Contm arquivos de bibliotecas compartilhadas usados com freqncia.
o ponto de montagem temporria.
Contm arquivos de sistema essenciais.
Arquivos temporrios gerados por alguns utilitrios.
Todos os arquivos de usurios devem estar aqui.
Informao de dados variveis.
o diretrio de trabalho do superusurio, mesma funo do diretrio
/home dos usurios.

14

Figura 6: Estrutura de Diretrios visualizada pelo Konqueror.

2.8

Modos de Permisso

Os arquivos e diretrios do Linux possuem permisses. Estas permisses servem, na maioria dos casos,
para proteger os arquivos e diretrios.
Quando cada arquivo ou diretrio criado, o sistema aloca permisses de uso padro para este arquivo
ou diretrio. Estas so as trs permisses possveis dentre de um sistema UNIX:
- Leitura > voc pode ler o contedo do arquivo ou listar o contedo de um diretrio;
- Escrita > voc pode modificar ou apagar o arquivo ou adicionar e remover arquivos de um diretrio;
- Execuo > voc pode executar o arquivo como se fosse um programa ou pode listar as informaes sobre arquivos do diretrio.
Esta proteo feita dividindo-se os usurios em trs grupos:
o dono do arquivo;
o grupo ao qual pertence o dono do arquivo;
os demais usurios.
Podemos ver as permisses individuais com o comando ls -l
ses com o comando chmod conforme veremos mais adiante.

e podemos modificar estas permis-

3 Comandos do Shell
Os comandos no Linux so arquivos. Apesar da interface grfica ser mais amigvel, bom voc ter um
breve conhecimento de como as coisas funcionam pela linha de comando, pois algumas configuraes e
alteraes s so possveis por ela, alm de existirem diferenas entre as opes grficas disponveis nas
distribuies.
Uma coisa interessante, que voc no precisa necessariamente digitar os comandos e os nomes
de arquivos por inteiro. Basta digitar as suas primeiras letras e depois pressionar a tecla <tab> . Por
exemplo, imagine o comando:

15

$ md5sum

Mandrakelinux10.1-cd1-inst.i586.iso

um pouco desconfortvel ter de digitar todo esse comando, porm, com a ajuda do <tab> voc
pode digit-lo com poucos toques: md5<tab>
M<tab>
A tecla <tab> completa o comando e o nome dos arquivos para voc.
Caso haja outro comando iniciado por md5 ou outro arquivo na mesma pasta comeado com M,
ento o <tab> completar at o ponto em que as opes forem iguais e exibir uma lista com as possibilidades para que voc termine de completar o comando. Se no exemplo anterior, existissem os arquivos
Mandrakelinux-10.1-cd1-inst.i586.iso , Mandrakelinux-10.1-cd2-ext.i586.iso e Mandrakelinux-10.1cd3-i18n.i586.iso na mesma pasta, o comando md5<tab>
M<tab>
resultaria em:
[aluno@aluno
/iso]:$
md5sum Mandrakelinux-10.1-cd
Mandrakelinux-10.1-cd1-inst.i586.iso
Mandrakelinux-10.1-cd3-i18n.i586.iso
Mandrakelinux-10.1-cd2-ext.i586.iso

<tab>

Neste caso ele completou o nome do arquivo at o md5sum Mandrakelinux-10.1-cd


e exibiu as trs opes possveis.
Para finalizar era s digitar o prximo caracter (1, 2 ou 3). que o ponto onde os arquivos se
diferenciam e pressionar novamente o <tab> .
Obs.: Caso voc entre com as primeiras letras de um possvel comando, e aps pressionar <tab>
duas vezes nada acontece, provvel que as iniciais estejam equivocadas, ou que este comando seja de
uso somente do superusurio, ou que realmente este comando no esteja instalado. No caso de um nome
de arquivo possvel que este no se encontre na pasta em que voc se encontra.
Um outro recurso interessante o histrico de comandos. Pressionando as setas pra cima ou para
baixo, posssvel reutilizar um comando escrito anteriormente.

3.1

Estrutura Geral de um Comando

De forma geral um comando tem a seguinte estrutura:


nome do comando
-[opes]
parmetro
Ex.: ls -laR /usr/share
Onde ls o nome do comando, -laR

so as opes e /usr/share

o parmetro.

Obs1.: sempre usado um espao depois do nome do comando para separ-lo de uma opo ou
parmetro. Porm nem todos os comandos tm esta forma.
Opes: As opes so usadas para controlar como o comando ser executado. Elas so iniciadas
por um hfem ou por dois hfens. Numa mesma linha de comando podem ser inseridas vrias opes.
Quando a opo for identificada por uma letra, esta vir iniciada apenas por um hfem.
Ex.: ls -a
Comando ls e opo -a
Quando a opo for identificada por uma palavra ou nome, esta vir iniciada por dois hfens.
Ex.: ls -all
Comando ls e opo all
Parmetros: Um parmetro identifica o caminho, origem, destino, entrada padro (teclado) ou sada
padro (monitor) que ser passado ao comando.
Ex.: ls /usr/share/wallpapers
Indica que o comando ls deve agir no subdiretrio wallpapers

Obs2.: Quando o prompt que preceder um comando for $ indica que este pode ser executado por um
usurio comum. Quando o prompt que preceder um comando for # indica que este deve ser executado
por um usurio root.

16

3.2

Alguns Comandos

Esta seo baseada nas pginas de manuais man pages do Linux.

3.2.1

Comandos de ajuda e informaes

man As man pages ou pginas de manual constituem o sistema de ajuda online do UNIX/Linux.
Esta documentao est dividida em partes. O que nos interessa est geralmente nas partes 1 (
comandos de usurios), 5 (formatos de arquivos) e 8 (comandos de administrao de sistema) . O
comando man o responsvel pela chamada ao sistema de ajuda.
Descrio: consulta as pginas de manuais do sistema.
Sintaxe: man [opes]
parmetro
Opes Principais:
-C arquivo_config
Especifica o arquivo de configurao do man a ser utilizado. O arquivo padro o /etc/man.config
-a
Com esta opo, o man mostrar todas as pginas de manuais encontradas referentes ao parmetro
passado pelo usurio.
-K
Com esta opo, o man pesquisa pelo parmetro passado em todas as paginas de manual. Este
processo lento.
Ex.:
\$ man

man

Mostra a pgina de manual do comando man

Figura 7: Pgina de Manual do Comando exibida pelo Xterm.

17

whatis O whatis procura palavras-chaves em um conjunto de arquivos de banco de dados contendo pequenas descries de comandos do sistema e exibe o resultado na sada padro ( que geralmente
o monitor). Somente sero exibidas palavras em caso de concordncia completa. O banco de
dados de whatis criado usando o comando: /usr/lib/makewhatis
.
Descrio: pesquisa a base de dados whatis por expresses informadas.
Sintaxe: whatis expresso
...
.
Ex.:
whatis
ls

ls
(1)

- list

directory

contents

apropos O comando apropos serve para os casos quando sabemos a funo do comando mas no sabemos
seu nome. Se voc sabe que o comando tem algo a ver com manipulao de imagens em bitmap
por exemplo , basta digitar: apropos
bitmap
O comando apropos faz uma busca no campo
NOME das pginas de manual e qualquer comando cujo manual tiver a palavra "bitmap"no campo
NOME ser apresentada na tela como sada do programa.
Descrio: tambm pesquisa a base de dados whatis por expresses informadas
Sintaxe: apropos
expresso
...
Ex.: apropos
RPM
rpm
rpm2cpio

(8)
(8)

rpmbuild
rpmcache
rpmdeps
rpmgraph

(8)
(8)
(8)
(8)

- RPM Package
Manager
- Extract
cpio archive
from RPM Package
Manager
(RPM) package
- Build RPM Package(s)
- Cache RPM Package
Headers
- Generate
RPM Package
Dependencies
- Display
RPM Package
Dependency
Graph

md5sum O md5 um tipo de impresso digital de um arquivo, usado para determinar, por exemplo, se
um arquivo baixado de um ftp no se alterou ao chegar ao micro, utilizando-se de um checksum
(somas matemticas baseadas no contedo dos dados em processamento, para verificar correo)
de 128 bits. A propsito, o md5sum um comando muito til, pois permite checar a integridade
de um arquivo. Ele multiplica os bits do arquivo e devolve um cdigo como uma impresso digital.
Em geral ao se baixar um programa com extenso .iso, por exemplo, junto com ele, encontra-se o
valor resultante do md5sum. Para que, ao fim do download voc execute o comando e compare
os cdigos. Se os cdigos forem iguais, ento o arquivo est perfeito. Caso um nico bit tenha
sido alterado pelo caminho, ou o arquivo tiver chegado incompleto, ento o cdigo gerado ser
diferente.
Exemplo de cdigo gerado pelo md5sum :
7833f17c3fbe95581c48cf3848792d21
Mandrakelinux-10.1-Official-Download-CD1.i586.iso}
Caso voc esteja utilizando o Windows e necessite do md5 , utilize o MD5summer que um
gerador e verificador de MD5 sum para Windows [2].
Descrio: Imprime ou checa as somas matemticas( checksums) de 128 bits geradas pelo MD5.
Sintaxe: md5sum opo parmetro
Opes:
-b, -binary
l arquivos no modo binrio. (Esta forma no padro)
-c, -check
checa as somas MD5 de uma determinada lista .
-t, -text
l arquivos no modo texto (padro).

18

3.2.2

Comandos de montagem e navegao pelos diretrios

mount Para que seja possvel acessar um sistema de arquivos no Linux, necessrio mont-lo em um diretrio que ser chamado "ponto de montagem". Desta forma, os arquivos do sistema de arquivos
que voc montou aparecem dentro deste diretrio. O comando mount serve para este fim e deve
ser executado como root.
Descrio: monta um sistema de arquivos.
Sintaxe: mount tipo dispositivo(origem)
diretorio(destino)
Opes Principais:
-V
verso do mount.
-h
imprime uma mensagem de ajuda.
-v
mostra mensagens detalhadas.
-a
monta todos os sistemas de arquivos descritos na tabela de configurao de montagem de sistemas
de arquivos em /etc/fstab .
-r ou -o ro
monta o sistema de arquivos somente com permisses de leitura.
-w ou -o rw
monta o sistema de arquivos com permisses de leitura e gravao. Este o padro.
-t tipo de sistema
O argumento seguinte a -t usado para indicar o tipo do sistema de arquivos.
Os tipos atualmente suportados so geralmente listados em linux/fs/filesystems.c
Ex.: se voc deseja montar a partico de seu HD que contm o Windows (suponha que esta
partio seja a hda2 ) basta criar um diretrio (/windows por exemplo) e digitar:
[aluno@micro28

aluno]$

mount

-t vfat

/dev/hda2

/windows

pwd Descrio: informa o diretrio de trabalho atual ( pwd = Print Working Directory)
Sintaxe: pwd [opes]
Opes Principais:
-help
lista uma mensagem de ajuda e finaliza o programa normalmente.
-version
lista a informao de verso na sada padro (geralmente o monitor) e finaliza normalmente.
Ex.:
[aluno@micro28
Incoming]$
/home/aluno/.xMule/Incoming

pwd

O indicador Incoming em [aluno@micro28


Incoming] mostra que atualmente o usurio est
dentro da pasta Incoming . Porm qual o diretrio de Incoming? Para isso usamos o comando
pwd cuja resposta /home/aluno/.xMule/Incoming
informa que a pasta Incoming est
dentro do diretrio .xMule que est dentro do diretrio aluno, dentro de /home , que por sua vez
est dentro de "/"(a lembrar "/" o diretrio raiz).
cd cd quer dizer change directory - mude o diretrio.
Descrio: Muda de um diretrio para outro
Sintaxe:
cd nome_do_

diretrio

Ex.2: Estando na pasta /aluno


comando cd

queremos chegar na pasta /console

19

. Para isso usamos o

[aluno@micro28
aluno]$
cd /
[aluno@micro28
/]$ cd etc
[aluno@micro28
etc]$ cd sysconfig
[aluno@micro28
sysconfig]$
cd console
[aluno@micro28
console]$
pwd
/etc/sysconfig/console
Inicialmente estvamos dentro da pasta /aluno e, entramos com o comando cd/ , ou seja,
"entre no diretrio "/ . Na linha seguinte observe que ao lado de micro28 j se encontra a "/",
indicando que esta a pasta atual. Depois entramos com cd etc , ou seja, "entre no diretrio
/etc ", e assim por diante at chegar a pasta /console . Ao fim demos um pwd , conferindo o
caminho.
Ser que cada vez que desejarmos acessar uma pasta teremos tanto trabalho? No, o exemplo
foi dado passo a passo porm, poderamos indicar o caminho em apenas uma linha, bastando
acrescentar uma "/"entre cada nome de pasta (sem espaos entre seus nomes), e ainda utilizar o
recurso de completar caracteres com a tecla <tab>.
Ex.1:
[aluno@micro28
[aluno@micro28

aluno]\$
cd /etc/sysconfig/console
console]\$

Obs.:1 Digamos que voc entre com somente esta informao:


[aluno@micro28

console]\$

cd }

Onde estamos agora? Quando no se especifica, usa-se cd sem um nome de diretrio ou pasta,
ele retorna para o seu diretrio /home .
Ex.2:
[aluno@micro28
[aluno@micro28

console]\$
aluno]\$

cd

Obs.2: propsito, o diretrio /home as vezes representado pelo "". Logo o string /EyesOnMe.mp3 indica que o arquivo EyesOnMe.mp3 est localizado em /home/raphael/EyesOnMe.mp3
Para voltar a um nvel anterior, usa-se cd .. ( cd espao e dois pontos).
Ex.3:
[aluno@micro28
/usr/local/include
[aluno@micro28
[aluno@micro28
[aluno@micro28
[aluno@micro28

include]\$

pwd

include]\$
cd ..
local]\$
cd ..
usr]\$ cd ..
/]\$

O uso da barra ("/") neste exemplo tambm vlido.


Ex.4:
[aluno@micro28
[aluno@micro28

include]\$
usr]\$

cd ../..

Como temos dois pontos barra e dois pontos outra vez, isto indica que devemos voltar dois nveis
na rvore de diretrios.
Obs.4: Usando-se o comando cd - (cd espao e hfem), indica que deve-se voltar necessariamente ao diretrio de trabalho anterior ao atual, no se importando com a ordem na rvore de
diretrios.
Ex.5:
[aluno@micro28
[aluno@micro28
[aluno@micro28

/]$ cd usr/local/include
include]$
cd ~{}
/]$

Observe que o diretrio era inicialmente "/", aps a linha de comando cd usr/local/include
o diretrio atual passou a ser /include e, usando-se cd ~{} retornou-se ao "/". Caso utilizssemos de novo cd ~{} retornaramos para /include .

20

ls ls quer dizer list directory (liste diretrio).


Descrio: Lista o contedo de um diretrio.
Sintaxe:
indexArquivott ls [opes] arquivo
Opes Principais:
-C
lista os arquivos em colunas.
-F
coloca "/"na frente de cada diretrio, "na frente de cada nome de FIFO e "*"em cada nome de
executvel.
-R
lista os diretrios encontrados, recursivamente.
-a
mostra os arquivos com o nome iniciando com ".".
-d lista nome de diretrios como arquivo, preferencialmente no lugar de seus contedos.
-l
escreve no formato de colunas simples o modo do arquivo, o nmero de links para o arquivo, o
nome do proprietrio, o nome do grupo, o tamanho do arquivo (em bytes), o rtulo de tempo, e o
nome do arquivo.
Ex.1:
[aluno@micro28
sys]$ ls
block
bus class
devices

firmware

module

power

No exemplo utilizou-se o comando ls sem nenhuma opo ou parmetro para listar o contedo
do diretrio /sys .
Obs.1: O comando ls exibe todos os arquivos principais em uma lista de cores, que por padro,
o azul indica diretrios e o verde indica programas executveis.
Ex.2:
[raphael@micro28
raphael]\$
ls -al
-rw--------1 raphael
usurios
116
2004-08-18
04:36
.Xauthority
-rw-r--r---1 raphael
usurios
3304 2004-08-17
21:41
.Xpadres
-rw-r--r---1 raphael
usurios
24
2004-08-17
21:41
.bash_logout
-rw-r--r---1 raphael
usurios
230
2004-08-17
21:41
.bash_profile
-rw-r--r---1 raphael
usurios
124
2004-08-17
21:41
.bashrc
-rw--------1 raphael
usurios
496
2004-08-18
04:45
.viminfo
-rw-r--r---1 raphael
usurios
593
2004-08-17
21:41
.xserverrc
drwx------2 raphael
usurios
4096 2004-08-18
00:42
tmp
-rw-rw-r--1 raphael
usurios
0
2004-09-30
04:32
rel4.txt
O comandols mostra informaes extras sobre os arquivos como mostrado no quadro abaixo:

Figura 8: O Comando ls.


21

Voc tambm pode listar o contedo de um diretrio estando em outro, para tanto basta identificar
o seu caminho.
Ex.3:
[aluno@micro28
lost+found/

etc]$ ls -F /tmp
rcbrowser|

No exemplo, embora estando no diretrio atual etc, listamos o contedo do diretrio /tmp , note
que ainda utilizamos a opo -F , que colocou ao lado de lost+found uma "/" indicando que
trata-se de um diretrio e ao lado de rcbrowser colocou um "indicando que trata-se de um pipe.
Obs.2: Metacaracteres ou Curingas so caracteres que representam os nomes de um grupo de
arquivos. Alguns tipos so:
"*" - representa todos os caracteres
"?" - representa um nico caracter
"[]" - representa uma faixa de caracteres
Ex.4: Digamos que dentro de um diretrio qualquer existam os seguintes arquivos:
texto1
texto2
texto3
documento1
documento2
documento3
Se fazemos
$ ls
texto1

texto2

texto3

documento1

documento2

documento3

todos os arquivos aparecem.


Fazendo:
$ ls tex *
O shell responde:
texto1

texto2

texto3

Fazendo:
ls documento?
O shell responde:
documento1
documento2
documento3
Fazendo:
ls texto[12]
O shell responde:
texto1 texto2
Fazendo:
ls documento[1-8]
O shell lista os arquivos terminados por 1 at 8:
Para listar todos os arquivos do diretrio que tenham um caractere r no nome, basta fazer:
\$ ls r *

3.2.3

Comandos de localizao de arquivos

find Descrio: encontra arquivos no disco rgido


Sintaxe: find caminho
expresso
Expresses Principais:
-print
imprime o nome completo do arquivo na sada padro (geralmente o monitor), seguido de nova
linha.

22

-name
especifica o nome do arquivo.
O comando find tem trs partes, onde cada uma pode conter outras subpartes.
Se voc sabe o nome do arquivo, porm no sabe onde ele est, o comando find funciona da
seguinte forma:
\$ find

/ -name

(nome_do_arquivo)

-print

Porm procurar a partir do diretrio raiz pode demorar muito, pode ser mais prudente limitar sua
busca em algum ou alguns diretrios. Por exemplo, se voc sabe que um arquivo est provavelmente no diretrio /usr ou /usr2 , pode usar o comando da seguinte forma:
\$ find

/usr

/usr2

-name

(nome_do_arquivo)

-print

Obs.: em algumas distribuies no necessrio colocar - print no fim do comando.


grep Descrio: busca em um ou mais arquivos por linhas que contenham um padro.
Sintaxe: grep [opes]
padro arquivos
Opes:
-n
exibe o nmero da linha que contm o padro.
-i
no diferencia por letras maisculas e minsculas na procura.
-l
exibe os nomes de arquivos que contm o padro.
-w
combina apenas palavras inteiras.
Obs.: recomenda-se que o padro esteja entre aspas simples.
whereis Descrio: localiza o caminho do binrio, da fonte e da pgina de manual de um comando
Sintaxe: whereis
[opes]
comando
Opes Principais:
-b
procura apenas por binrios.
-s
busca apenas por fontes.
-m
busca apenas por pginas de manual.
Ex.:
$ whereis
rpm
rpm: /bin/rpm

/usr/include/rpm

/usr/man/man8/rpm.8

$ whereis
-s rpm
rpm: /usr/include/rpm
$ whereis
-b rpm
rpm: /bin/rpm

3.2.4

Comandos de manipulao de diretrios ou arquivos

mkdir Descrio: usado para criar diretrios


Sintaxe: mkdir [opes]
diretrio...
Opes Principais:

23

-verbose
Imprime uma mensagem para cada diretrio criado.
Ex.: Criar um diretrio chamado downloads. $ mkdir
(caminho) completo: $ mkdir /home/aluno/downloads
rmdir Descrio: remove diretrios
Sintaxe: rmdir [opes]
Opes:

downloads

ou com o pathname

diretrio...

-ignore-fail-on-non-empty
O rmdir se recusa a remover diretrios que no estejam vazios. Esta opo faz rmdir ignorar este
padro.
Ex.: Caso queira deletar o diretrio criado anteriormente.
$ rmdir /home/aluno/downloads
Obs.: o rmdir s remove diretrios que estejam vazios.
rm

Descrio: deleta arquivos


Sintaxe: rm [opes]
arquivo...
Opes Principais:
-f
Caso o erro se deva a arquivos que no existem no exibe mensagens de erro.
-i
Pergunta por confirmao.
-r ou -R
Apaga as rvores de diretrio de forma recursiva.
-v
mostra o nome de cada arquivo antes de remov-lo.
Ex.:
ls
downloads
resumo.txt
relatorio1.txt
rm resumo.txt
ls downloads
relatrio.txt

mv

Descrio: move ou renomeia arquivos ou diretrios.


Sintaxe: mv [opo]
origem destino
Opes Principais:
-f, -force
Apaga destinos existentes sem perguntar ao usurio.
-i, -interactive
Pergunta ao usurio se deseja sobrescrever um arquivo de destino regular existente. Se a resposta
for negativa, o arquivo igno- rado.
-u, -update
No movimenta um no diretrio que tem um destino existente com a mesma data de modificao
ou uma mais recente.
-v, -verbose
Imprime o nome de cada arquivo antes de move-lo.
Ex.: Digamos que se deseje mover o arquivo letras.txt que est no diretrio /aluno
diretrio /aluno/musicas
.
[aluno@micro28

src]\$

mv /home/raphael/letras.txt

para o

/home/raphael/msicas

Foi necessrio escrever o endereo completo pathname do arquivo porque o diretrio atual, ou
seja, o diretrio em uso era o /src . Alm disso perceba que existe um espao entre o fim do
endereo de origem e o incio do endereo de destino.
Agora para renomear um arquivo basta digitar o nome atual dele e depois o novo nome.
Ex.:$ ls tmp teste contas.txt
$ mv contas.txt
dvidas.txt
$ ls tmp
teste dvidas.txt

24

cp Descrio: copia arquivos


Sintaxe:
cp [opes]

arquivo

caminho

Opes:
-p
Preserva o original proprietrio, grupo, permisses (incluindo os bits setuid e setgid), tempo da
ltima modificao e o tempo do ltimo acesso.
-R
Copia diretrios de forma recursiva.
Ex.: Caso voc deseje copiar o arquivo rel4.txt para o diretrio MyDocuments:
$ cp /home/aluno/rel4.txt
/home/aluno/MyDocuments
Note que existe um espao no comando entre rel4.txt e /home.

3.2.5

more, less

Comandos de paginao

More um filtro para paginao de texto em um terminal, mas comandos como o less disponibilizam opes mais poderosas do que more.
Descrio: Mostra arquivos de texto
Sintaxe: more [opes]
arquivo...
Opes:
-d
O more ir solicitar instrues ao usurio atravs da mensagem "[Pressione espao para continuar,
"q"para finalizar.]".
-p
Limpa toda a tela antes de apresentar o texto.
-c
No pagina a tela. Ao invs disso, lista cada tela a partir do topo, limpando os dados remanescentes
de cada linha assim que apresentadas.
-s
Comprime diversas linhas em branco em uma s.
-u
Suprime o sublinhado de caracteres.
Ex.:$ more lilo.conf
O comando ir mostrar o contedo do arquivo texto lilo.conf com o recurso de paginao.
Obs.1: para ambos tecle h para visualizar seus comandos e para sair digite q ou esc. Com o
more usando a tecla enter ele avana apenas uma linha, j pressionando a tecla espao avana-se
uma pgina. O less tambm garante o retrocesso do texto, usando as setas.

cat Descrio: mostra arquivos de texto


Sintaxe: cat [nome do arquivo]
Ex.: $ cat .bashrc
O arquivo ser mostrado, porm de forma rpida dificultando a leitura. O grande problema que
o comando no faz paginao, ou seja, ele ir mostrar o documento inteiro sem pausas.
Obs.1:
O cat tambm pode ser usado para editar pequenos trechos de texto, bastando para isso, que voc
digite o comando, junto com o nome que voc deseja salvar o arquivo.
Ex.2:$ cat texto1
Depois que voc digitar o trecho desejado tecle ctrl+d para terminar a edio. O arquivo ser
salvo no diretrio atual.

25

3.2.6

Comandos de compactao e descompactao

gzip, bzip2 Descrio: compacta arquivos


Sintaxe:
gzip

[-dfrq

] [-S

sufixo]

[ nome

...

Opes Principais:
Gzip
-d -decompress
Descompactar.

-uncompress

-f -force
Fora a compactao e descompactao.
-q -quiet
Suprime todos os avisos.
-r -recursive
navega pela estrutura de diretrios recursivamente.
test
Verifica a integridade do arquivo compactado.
Bzip2
-d -decompress
Fora a descompresso
-t -test
Testa a integridade dos arquivos especificados
-f -force
Fora a escrita nos arquivos.
-q -quiet
Suprime mensagens no essenciais.
Ex.1: $ gzip doc.tar Com isso arquivo doc.tar ficar compactado na forma doc.tar.gz .
So vrias as opes dos comandos gzip e bzip2
, inclusive eles tambm descompactam
arquivos nas extenses gz e bz2 respectivamente, bastando para isso utilizar a opo -d .
Ex.2: $ bzip2 -d doc1.tar.bz2
Duas opes interessantes,para ambos,na hora de compactar arquivos so:
-t
testa o arquivo comprimido
-v verbose
fornece indicaes sobre o andamento da compactao

3.2.7

Comandos de backup

tar O programa tar usado para copiar arquivos de seu sistema de arquivos para um meio de
armazenamento e depois restaur-los.
Descrio: backup do sistema
Sintaxe:
$ tar chave
Chave:
c

- cria

- atualiza

- l a fita

- extrai

- lista

[opo...]

um novo
uma

backup
fita

at

da fita
os nomes

[arquivo]

o final

da gravao

os arquivos
dos

arquivos

anterior

e depois

especificados
presentes

26

em fita.

acrescenta

os arquivos

indicados

Opes:
f

- dispositivo

- fornece

mensagens

- atualiza

a hora

informativas,
de modificao

com

o nome

de cada

do arquivo

arquivo

medida

que

ele

for

extrado

[12].

3.2.8

Pacote mtools

O pacote mtools uma sute de ferramentas do Linux que permite a manipulao de arquivos
MS-DOS. Este pacote contm diversos comandos que so usados para manipular arquivos no
formato MS-DOS. Alguns comandos so:
mcopy Descrio: Copia arquivos MSDOS para Unix
Sintaxe: mcopy [opes]
arquivo-fonte
arquivo-destino
Opes:
mcopy aceita as seguintes opes na linha de comando:
b

modo batch que otimiza


grandes
cpias
recursivas.
Menos seguro caso um problema
ocorra durante
a cpia.

copia

mantm

sinaliza

transfere

no

preserva

diretrios

de forma

os atributos

pede

assim

dos

que

alguma

arquivos

arquivos
cpia

copiados.
falha.

texto.

confirmao

a data

recursiva.

ao regravar

de modificao

arquivos.

do arquivo.

Ex1.: $ mcopy * .doc a: Neste exemplo todos os arquivos do diretrio atual sero copiados
para o drive a: , ou seja, para o disquete.
Ex.2: $ mcopy a: * .txt Neste exemplo todos os arquivos do disquete que tenham terminao
.txt sero copiados para o hd.
Ex.3: Este comando faz referncia aos discos rgidos e drives de disquete com uso de letras.
Para se saber como est especificado, que letras fazem correlao com que dispositivos, pode-se
abrir o arquivo mtools.conf localizado em /etc/mtools.conf
.
Exemplo de arquivo /etc/mtools.conf
:
\#Linux
floppy Drives
drive a: file="/dev/fd0"
\#First
\#drive

exclusive

SCSI hard disk partition


c: file="/dev/sda1"

\#First
IDE hard disk partition
drive c: file="/dev/hda1"
mdel Descrio: apaga uma arquivo MS-DOS
Sintaxe: mdel [-v] arquivos-msdos

[ arquivos-msdos

27

...

encontrado.

mdir Descrio: Mostra diretrios


Sintaxe: mdir [opes]
arquivo
Opes Principais

msdos

/
sada recursiva, como na opo -s dos DOS
a
lista arquivos escondidos.
b
Lista compacta. Lista cada nome de diretrio ou arquivo, um por linha.
mmove

Descrio: move arquivos


Sintaxe:
mmove

[-v]

[-D

clash_option]

origem

destino

Ex.1: $ mmove a:/imagens/ * .gif /importante


Move todas as imagens dentro do diretrio imagens no disquete para o diretrio importante do
disco rgido.
mformat Descrio: adiciona um sistema de arquivos MS-DOS a um disquete.
Sintaxe: mformat
[opes]
[-a] [-C]
Opes Principais:
t informa o nmero de cilindros.
h
informa o nmero de cabeas.
s
informa o nmero de setores por trilha.
l
uma etiqueta opcional para o volume.
M
tamanho do setor em bytes.
C
cria um arquivo imagem de disco para instalar o sistema de arquivos MS-DOS.
Ex.1: $ mformat
a:
mcheck Descrio: checa um disco.
Sintaxe: mcheck [dispositivo]
Ex.1:
$ mcheck
mtools

a:

Descrio: mostra todos os comandos mtools .


Sintaxe: mtools

3.2.9

Comandos para gerenciamento de processos

Atalhos
ctrl+c Aborta um processo.
ctrl+z Suspende um comando
ps

Descrio : Informa sobre os processos em andamento.


Sintaxe: ps (opes)
Opes:

28

-a
mostra tambm informaes de outros usurios.
-u
informa o nome do usurio e a hora de incio do processo.
-x
mostra tambm processos no associados a um terminal de controle.
Ex.:
$ ps
PID
1663
1672
1676

TTY
pp3
pp3
pp3

STAT

TIME
0:01
0:07
0:00

S
T
R

COMMAND
-bash
emacs
ps

PID - Process ID
TIME - Tempo de uso do processo at o momento
TTY - Terminal
COMMAND - Comando executando
STAT - estado
O TTY informa em qual terminal o processo est rodando. O STAT informa sobre o estado do
processo, pelo exemplo o -bash est suspendido, stat S , o emacs est rodando sendo que suspenso
pelo atalho crtl-z, mostrado pela letra T. O ltimo processo est rodando, indicado pela letra R.
&

Descrio: executa um comando ou processo em segundo plano.


Sintaxe: nome do comando &
Quando voc executa um programa pelo terminal , o terminal em atual uso fica inoperante at que
voc encerre o programa chamado. Ou seja, digamos que voc abriu o navegador Firefox pelo
terminal , este terminal ficar fora de uso at que voc feche o Firefox, sendo necessrio que se
abra outro terminal caso deseje digitar uma nova instruo. O & ao fim do comando possibilita
o uso do terminal mesmo que o programa chamado esteja em funcionamento.
Ex.: $ xmms &

kill, killall Descrio: termina um processo ou processos.


Sintaxe: kill [opes] (processo)
Ex.1: $ kill -9 1425
A opo -9 aborta o processo 1425
Obs1.: Este comando refere-se ao processo atravs de seu PID process ID. Para voc saber o
nmero do processo basta usar antes o comando ps .
Ex.2: $ killall
-9 xmms
Cancela o processo xmms .
O killall
finaliza processos por nome. Apesar de ser pelo nome, ainda assim necessrio
utliza o comando ps antes, pois nem sempre o nome dado ao processo o mesmo do programa.
Obs: Existem tambm atalhos no teclado para casos extremos de travamento, quando nem mesmo
se consegue abrir um terminal para utilizar-se tanto do kill quanto do killall
(esperamos
que seu uso no seja necessario!).
Alt+ SysRq + R - troca de modo do teclado
K - mata todos os programas
B - reboot remotamente
O - desliga o PC
S - Sincroniza o disco
U - remonta os files systems em ready on
p - mostra o contedo dos registradores
T - mostra informaes de todos os processos
m - mostra informaes sobre a memria
0 a 9 - nvel de parania do sistema

29

E - sig Term para tudo menos o INIT


I - Sig Kill para tudo menos o INIT
L - mata tudo!
Uma boa sequncia primeiro S , depois U e por fim B.

3.2.10

Comandos para gerenciamento de grupos e usurios

O procedimento de identificao login chamado automaticamente pelo Linux e ele torna possvel
o incio de sua sesso no sistema. Este procedimento restringe o acesso a usurios autorizados e
estabelece um ambiente de trabalho para cada usurio.
su

Descrio: o comando su troca a identidade de um usurio por outra. Ele muito utilizado
por administradores do sistema que precisam realizar tarefas com os privilgios do superusurio.
Quando este comando digitado sem parmetros o su assume a identidade do usurio root .
Sintaxe: # su
passwd Descrio: muda a senha do usurio.
Sintaxe: passwd (nome do usurio)
Ex.1:
# passwd rhl
Changing
password
for rhl
(current)
UNIX password:
Enter new UNIX password:
Retype new UNIX password:
Obs.: O usurio deve digitar primeiro sua atual senha para depois inserir a nova. Ao superusurio
permitido pular esta etapa, logo senhas esquecidas podem ser modificadas.

useradd, adduser Descrio: Adiciona usurios ao sistema.


Sintaxe: useradd
(nome_do_usurio) [opes]
Opes:
-d (diretrio
home)
diretrio home do novo usurio.
-c
comentrio
-g
(nome do grupo)
-s
(nome do shell) - define qual shell o usurio utilizar.
Ex.1: # adduser rhl -d /home/rhl -g grup -s /bin/bash
userdel Descrio: deleta um usurio.
Sintaxe: userdel [opes] (nome do usurio)
Opo:
-r
remove todos os arquivos do usurio
sudo Descrio: executa comandos como superusurio.
Sintaxe: sudo [opes] (comando)
Opes:
-l
lista os comandos permitidos e proibidos para o usurio.
-h
ajuda
Obs.: O arquivo de configurao do sudo o /etc/sudoers
quais programas podem ser executados por um usurio comum.

30

. Neste arquivo est definido

3.2.11

Comandos para gerenciamento de privilgios

Chmod Descrio: altera permisses de arquivos.


Sintaxe: chmod [opes]
(nome do arquivo)
Um pouco mais sobre permisses: Como j dito antes, os arquivos no Linux so organizados
em diretrios, alm disso, o sistema fornece facilidades de proteo tanto para arquivos como
diretrios. Estas protees so organizadas em trs classes de privilgios:
privilgios de dono
privilgios de grupo
privilgios para outros usurios
O dono, como o nome diz, aquele quem criou o arquivo, ou aquele que o usurio root definiu
como dono.O grupo do arquivo normalmente o grupo ao qual o dono pertence, porm isto no
uma regra. Normalmente os arquivos so criados com uma permisso padro, que permitir ao
dono ler, escrever e executar (caso possvel) o arquivo, para o grupo e outros a permisso ser
de leitura. A permisso de executar se caso o arquivo for um script de shell ou um arquivo
executvel, caso o arquivo seja um diretrio, a permisso de executar significa poder entrar no
diretrio (listar o diretrio)
Ao listarmos um arquivo com o comando ls -l obtemos como resposta algo parecido com:
\$ ls -l
-rwx r-x r-x

mdw

lib

16384

nov

15 08:54

atob

O primeiro campo contm dez caracteres, onde nove referem-se s permisses. O primeiro caractere indica o tipo de arquivo, a saber:
"d" significa um arquivo de diretrio
" -" significa um arquivo regular
"l" representa link, entre outros.
Os nove caracteres restantes so agrupados em trs divises: os trs primeiros referem- se s
permisses do usurio dono do arquivo, os trs seguintes referem-se s permisses do grupo ao
qual o arquivo pertence e os trs seguintes s permisses de outros usurios. Cada diviso pode
conter os caracteres r, w, x, - .Onde:
r significa permisso de leitura.
w significa permisso de escrita.
x significa permisso de execuo.
- significa ausncia de permisso.
Estas permisses podem ser passadas ao comando de dois tipos:
Primeiro tipo (Modo Absoluto) :
Neste primeiro tipo, as permisses sero passadas ao comando na forma de nmeros. Estes nmeros sero o resultado de uma soma de nmeros na base 2 (binria) de acordo com uma regra:
22 + 2 1 + 2 0 = 7
A ordem na qual o comando executado tambm importante. As permisses que podem ser
atribudas so: r w x ( read, write, execute) e os usurios so: dono, grupo, outros. Assim
podemos associar:

Figura 9: Exemplo do comando chmod.


Por exemplo, se desejamos que o arquivo teste.txt tenha as seguintes permisses:
- leitura para o dono;

31

- leitura e escrita para o grupo ao qual o dono pertence; e


- nenhuma para outros usurios
digitaremos junto com o comando o nmero 4, pois para leitura (r) o nmero correspondente
22 = 4 . Seguido do 4 digitaremos o nmero 6 (22 + 21 = 6) e, para ausncia de permisses,
digitamos o zero.
$ chmod 760 teste.txt
Segundo tipo
Este segundo tipo chamado modo simblico, pois utiliza caracteres que identificam a quem ser
dada tal permisso. Como a seguir:
u usurio
g grupo
o outros
a todos
+ adiciona permisso s j existentes
- retira permisso
= assinala explicitamente uma permisso (anulando as outras)
r permisso de leitura
w permisso de escrita
x permisso para execuo
Sendo assim, desejamos que o dono tenha permisso para leitura, escrita e execuo, que o grupo
no tenha permisso para escrita e que outros s possam ler os arquivos, o comando ficaria deste
modo: $ chmod u+rwx,g-w,o=r
teste.txt

umask Descrio: altera o padro das permisses dadas aos arquivos.


Sintaxe: a sintaxe deste comando parecida com o primeiro modo de atribuir permisses do
comando chmod . S que invertida, sete para este comando no ter permisses e zero a
atribuio de todas as permisses. O melhor modo definir as permisses desejadas e depois
subtrair de sete. Por exemplo, voc deseja que por padro o dono tenha todas as permisses (7), o
grupo possa ler e executar (5) e outros usurios no tenham nenhuma (0). Logo subtraindo 7 dos
valores encontrados temos:
0 para user,
2 para group e
7 para others
Assim o comando fica:
$ umask 027
Obs.: as novas permisses feitas com o umask s entraro em uso num novo terminal, ou seja,
as alteraes feitas no terminal em uso no iro valer.
chown

Descrio: altera o dono de um arquivo.


Sintaxe: chown [opes]
(novo proprietrio)
(nome
Ex.:
$ chown henrique
monografia.doc
Alterou apenas o proprietrio do arquivo.
Ex.2.: $ chown henrique.projetos
monografia.doc
Alterou tanto o dono quanto o grupo.

chgrp Descrio: altera o grupo do arquivo.


Sintaxe: chgrp [opes]
(novo
Ex.: $ chgrp wwweb index.html

grupo)

32

(nome

do arquivo)

do arquivo)

3.2.12

Comandos para impresso

lpr O comando lpr o responsvel pela impresso no Linux. Mesmo que voc apenas pressione o
boto "imprimir" em alguma janela voc est chamando o comando lpr.
Se voc deseja imprimir algum arquivo, pode simplesmente, a partir de um terminal ( seja ele
grfico ou no) digitar o seguinte comando: lpr relatorio.txt
A primeira coisa que o lpr faz ao ser requisitado enviar os dados temporariamente para um
diretrio chamado print spool ou spool de impresso. Cada impressora tem seu prprio diretrio.
Neste diretrio os trabalhos a ser impressos so ordenados e por isso d-se o nome de fila de
impresso.
Depois, outras partes do sistema de impresso removem os arquivos da fila na ordem certa e enviam o arquivo para a impressora. Se voc tem mais de uma impressora, ou est em uma rede
TCP/IP e deseja imprimir em uma impressora na rede, basta digitar: lpr -p nomedaimpressora
relatorio.txt
Supondo-se que voc no saiba o nome da impressora , pode-se pesquisar por ela nos diretrios
de spool em /var/spool/lpd
ou /etc/printcap
.
lpq O comando lpq ajuda quando o arquivo que enviamos, por algum motivo, no impresso. Voc
pode descobrir o status dos arquivos na fila de impresso.
#lpq
laser is ready and
Rank
Owner
active
user1
1st
user2
1st
user3

printing
Job
020
024
029

Files
(standard
(standard
(standard

input)
input)
input)

Total Size
776708 bytes
22958476
bytes
10440 bytes

Observando este exemplo, descobrimos que o nome da impressora laser e existem trs usurios
requisitando os servios desta impressora.
lprm O lprm serve para retirar servios da fila de impresso.
Se voc tem urgncia nesta impresso, consulta o lpq e constata que a impressora est rodando e
descobre que existem vrios trabalhos pesados antes do seu na fila, voc pode pode usar o nmero
do processo e digitar:
lprm 20
023 dequeued
023 dequeued
para descartar este processo.

4 Programas Grficos
4.1

import

O comando import serve para capturar imagens do desktop e jog-las em arquivo.


Descrio: O import l uma imagem de qualquer janela visvel em um servidor X e fornece um
arquivo no sada. Voc pode capturar uma janela, , a tela inteira, ou qualquer poro retangular da
janela. A imagem a ser capturada pode ser obtida atravs do clique do mouse, ou por id Se voc
pressiona um boto do mouse e arrasta, um retngulo se expande ou contrai enquanto o mouse se
move. Para salvar a poro da tela definida pelo retngulo, simplesmente solte o boto. Um bipe
ser ouvido quando do incio da captura e dois bipes ao fim [1].

4.2

Xfig

Xfig uma ferramenta para desenhos vetoriais que roda sob o X Window System Verso 11
Release 4 (X11R4) ou posteriores.

33

(a)

(b)

Figura 10: (a)O comando import. (b)Janela Capturada.


No Xfig, as figuras podem ser desenhadas usando objetos como crculos, caixas, curvas, textos,
etc. Tambm possvel importar imagens nos formatos GIF, JPEG, EPSF (PostScript), etc. O
Xfig salva figuras em seu formato nativo .Fig, mas elas podem ser convertidas em vrios formatos
como PostScript, GIF, JPEG, HP-GL, etc.
Existem alguns aplicativos que produzem arquivos no formato do Xfig. Por exemplo, o Xfig no
faz grficos, mas ferramentas como o gnuplot ou xgraph podem criar grficos e export-los no
formato do Xfig [5].

4.3

Gimp

GIMP um acrnimo para GNU Image Manipulation Program - Programa GNU de Manipulao de ImagensindexGNU. Um programa que distribudo gratuitamente e realiza tarefas como
retocar fotos e construir imagens.
O GIMP pode ser usado para renderizar imagens pesadas, converter os formatos de imagens mas
apesar de possuir uma vasta gama de capacidades, ele pode ser usado como simples editor de
imagens.
Ele expansvel e aceita diversos plugins.

(a)
(b)
Figura 11: (a) Xfig. (b) GIMP.

34

5 Editores de Texto
5.1

Processamento de Texto e Processamento de Palavras

Processadores de palavra so aqueles presentes em quase todos os computadores do mundo. So


programas que fazem edio e manipulao de textos, geralmente em um ambiente WYSIWYG (
What You See Is What You Get- - o que voc v o que voc tem) que mostram em tempo real na
tela a aparncia do seu documento. Com os processadores de palavras voc pode inserir figuras,
grficos e outras coisas mais.
J o processamento de texto mais comum no UNIX/Linux. O conceito um pouco diferente,pois
com o sistema de processamento de texto usa-se uma "linguagem de tipografia". esta linguagem
que diz exatamente como o texto deve ser formatado. Tambm possvel digitar o texto em
qualquer editor de textos.

5.1.1

vi

O vi foi o primeiro editor de texto baseado em tela para UNIX. Ele tambm um dos mais simples
editores. O vi baseado nos mesmo princpios de muitos outros aplicativos UNIX, o princpio
que cada aplicativo deve desempenhar uma funo especfica e ser capaz de interagir com outros
aplicativos. Um exemplo disto que o vi o mais simples possvel,seus comandos so constitudos por apenas uma letra, no possui corretores ortogrficos ou um formatador automtico de
pargrafos, mas, muito fcil us-lo em conjunto com outros programs que fazem estas tarefas.
Para iniciar o vi, basta digitar vi nome_do_arquivo
, em qualquer terminal. O vi funciona
em trs modos: modo de comandos, modo de edio e modo x.
Depois de iniciar o vi, voc pode querer digitar um texto, mas para isso necessrio sair do modo
de comandos digitando i.
Alguns comandos do modo de comandos:
i - insert - insere o texto
a - append - insere o texto onde estiver o cursor
x - deleta caracteres abaixo do cursor
dd - deleta linhas abaixo do cursor
p - put - recupera linhas apagadas
dw - delete word - apaga palavras abaixo do cursor
R - troca uma palavra inteira
r - troca apenas uma letra
N - troca caixa alta por caixa baixa ou vice e versa.
Alguns comandos do modo x:
Para entrar no modo X basta digitar
: (dois pontos)
w <enter>
salva o arquivo
q <enter>
sai do vi
wq<enter>
sai do vi , salvando o arquivo
!q<enter>
sai sem salvar [13].

35

Figura 12: Tela do OpenOffice - Ao fundo editor de texto, em primeiro


plano editor de planilhas.
5.1.2

Emacs

O Emacs, criado por Richard Stallman, um sistema muito grande, com mais opes que qualquer
outro aplicativo UNIX. A filosofia do Emacs um pouco diferente pois ele possui uma linguagem
prpria.
Os comandos relativos edio so:
C-a
move o cursor para o incio da linha
C-e
move o cursor para o fim da linha
M-v
faz o retrocesso de uma pgina
C-c
sai do Emacs
C-x
sai do Emacs, salvando o texto
O Emacs possui um tutorial excelente que pode ser acessado atravs do comando C-h seguido da
letra t.

5.1.3

OpenOffice

O OpenOffice uma sute de ferramentas para escritrio. Ela inclui vrios aplicativos como
processador de texto, planilhas, um apresentador de slides, um programa para desenhos, etc.
O Open Office sofisticado e flexvel, e trabalha com vrios formatos de arquivos. Ele roda
de forma estvel nas seguintes plataformas: Solaris, Linux, Windows, Mac OS X (X11), entre
outras. Escrito em C++ e licenciado de acordo com a licensa GPL e SISSL Open Source licenses,
o OpenOffice permite que qualquer desenvolvedor use seu cdigo-fonte.

5.1.4

TEX e LATEX

O TeX um programa profissional.


O LaTeX um pacote feito para a preparao de textos impressos de alta qualidade, especialmente
para textos matemticos. Ele foi desenvolvido por Leslie Lamport a partir do programa TeX criado
por Donald Knuth.
O TeX um sistema de processamento de textos profissional para todos os tipos de documentos
como livros, relatrios, artigos, principalmente os que contm frmulas matemticas.

36

O LaTeX um conjunto de macros que facilita o uso do TeX, pois seus comandos esto voltados
para a parte lgica ao invs da fsica como o TeX .
Uma das vantagens do LaTeX sobre os editores de texto comuns:
Voc pode fazer mudanas na formatao do texto inteiro com apenas a mudana de alguns comandos;
Escrita de frmulas complexas usando apenas comandos. Por exemplo, a integral
impressa com o comando
$\int_{0}^{\pi}(\sin(\sigma)),

R
0

(sin( )), cos( 2 ), )d ,

\cos(\frac{\sigma}{2}),\sigma)d\sigma$

Numerao automtica de frmulas, sees, definies, exemplos e teoremas, o que permite que
voc faa mudanas na ordem do texto sem que seja necessrio trocar os nmeros dos itens;
As citaes a frmulas, sees, definies, exemplos, teoremas alm de citaes bibliogrficas
tambm podem ser automatizadas, de forma que mudanas no texto no produzem erros nas
citaes [8] .
Exemplo de um documento criado no LaTeX [8] :

Tabela 3: Cdigo TeX


\documentclass[a4paper,12pt]{article}
\begin{document}
\[ \left[ \begin{array}{clcr}
\int_{0}^{\pi}
sen(\theta)
d\theta
\frac{x+y}{1+\frac{x}{y}}
\end{array}
\right]
\]
\end{document}

&
&

\sqrt{x^{y{^2}}}
\lim_{x
\rightarrow

0} \frac{sen

x}{x}

& e^x \\
&
3u + vw

A figura Fig. 13 mostra o documento .pdf gerado pelo cdigo TeX da tabela 3.

Figura 13: Arquivo .pdf gerado pelo Latex

6 Comentrios Finais
Inicialmente o Linux foi mais utilizado por programadores que necessitavam usar gratuitamente os recursos do UNIX. Este perfil de usurio se diversificou muito e recentemente inmeras pessoas vm
descobrindo as vantagens deste sistema operacional.
Sendo um sistema livre, com o cdigo-fonte aberto, o Linux permite que alunos de graduao na rea
de Cincia da Computao estudem a fundo sistemas operacionais.
Como existe um nmero muito grande de programas desenvolvidos para Linux possvel us-los
para o ensino em diversas reas de graduao. Existem programas de desenho vetorial que podem ser
aplicados arquitetura, cartografia, engenharia civil, engenharia mecnica, etc. Softwares de anlise
matemtica e clculo numrico so muito teis para as reas de fsica, matemtica e engenharia.
O Linux tambm conhecido como um robusto servidor. Ele pode funcionar como um servidor de
arquivos (NFS e SAMBA), servidor de nomes (DNS), servidor DHCP, um servidor web (Apache), etc.
Alm de todas essas possibilidades, este sistema operacional tambm pode ser usado por quem apenas
quer navegar na internet, ler e-mails, editar textos e planilhas, entre outros. O nmero destes usurios
vem crescendo a cada dia e ajudando na popularizao do sistema.

37

6.1

Como obter arquivos de instalao

Para instalar o Linux, primeiro preciso escolher a distribuio mais adequada aplicao a ao usurio.
Pode-se descobrir isto visitando os sites de distribuies. possvel fazer o download dos Cds de
instalao nesses sites. Alguns deles so:
Conectiva Linux/ Mandriva: http://www.conectiva.com.br
Mandrake/ Mandriva: http://www.mandriva.com
Kurumim: http://www.guiadohardware.net
Slackware: http://www.slackware.com/getslack
Debian: http://www.debian.org
Projeto Fedora (Red Hat): http://fedora.redhat.com
Red Hat: http://www.redhat.com

6.2

Alguns programas interessantes

Scilab - Software para clculo numrico desenvolvido pela INRIA (Instituto de Pesquisa em Informtica e Automao, Frana) http://www.scilab.org
OpenOffice - Pacote de aplicativos para escritrio que inclui editor de texto, planilha e gerador de
apresentaes: http://www.openoffice.org

38

Referncias
[1] Trecho retirado das man pages do comando citado.
[2] http://homepages.ihug.co.nz/~floydian/md5/md5v12005.zip
[3] http://www.gnome.org/about

[4] http://www.kde.org/whatiskde

[5] http://www.xfig.org/userman/

[6] http://xwinman.org/intro.php

[7] R. Q. Almeida. Linux: Dicas e Truques. Conectiva S.A., Curitiba, 2000.


[8] L. Lamport. Latex - A Document Preparation System, Users Guide and Reference Manual.
Addison-Wesley Publishing Comapny,Inc., 1994.
[9] J. C. Neves. Linux: programando Shell. Brasport, Rio de Janeiro, 2000.
[10] A. S. Tanenbaum. Sistemas Operacionais Modernos. Prentice-Hall do Brasil, Rio de Janeiro, 1995.
[11] A. S. Tanenbaum and A. S. Woodhull. Sistemas Operacionais: projeto e implementao. Bookman,
So Paulo, 1997.
[12] R. Thomas. UNIX: guia do usurio. McGraw-Hill, So Paulo, 1989.
[13] M. Welsh and L. Kaufman. Running Linux. OReilly & Associates, Inc, California, 1996.

39

ndice
umask , 32
useradd , 30
userdel , 30
whereis , 23
Compilador, 5, 6, 8
compress, 7
CTSS, 6

AfterStep, 12
Apache, 37
Aplicativos, 713, 3436, 38
Arquivo, 8, 9, 11, 1319, 2128, 3035, 37
Assembly, 57
Bash, 7, 10, 11, 29

DHCP, 37
Diretrio, 8, 9, 11, 1315, 1928, 30, 31, 33
Distribuies, 9, 13, 15, 23, 38
Conectiva , 38
Debian , 9, 38
Fedora , 9, 38
Kurumim , 38
Madriva , 38
Mandriva , 9
Red Hat , 38
S.U.S.E. , 9
Slackware , 9, 38
DNS, 37
Driver, 8

C, 7, 8, 11, 13
C++, 13
Cdigo-fonte, 79, 13, 36, 37
Cartes Perfurados, 5, 6
Case sensitive, 8
Comando
man , 17
whatis , 18
& , 29
adduser , 30
apropos , 18
bzip2 , 26
cat , 25
cd , 19, 25
chgrp , 32
chmod , 31
chown , 32
find , 22
grep , 23
gzip , 26
import , 33
killall , 29
kill , 29
less , 25
lpq , 33
lprm , 33
lpr , 33
ls , 21
mcheck , 28
mcopy , 27
mdel , 27
mdir , 28
mdsum , 18
mformat , 28
mkdir , 23
mmove , 28
more , 25
mount , 19
mtools , 28
mv , 24
passwd , 30
pwd , 19
rmdir , 24
rm , 24
sudo , 30
su , 30
tar , 26

Editores de texto, 5, 8, 11, 13, 3538


Emacs, 36
emacs, 8, 29
Enlightenment, 12
FAT, 13
FORTRAN, 5, 6
FreeBSD, 8
FSF, 8
FVWM, 12
gcc, 7
GIMP, 34
GNOME, 12, 13
GNU, 7, 8
Hardware, 5, 79, 11
Inode, 13
Instrues, 5
Internet, 7, 8, 37
Java, 13
KDE, 12, 13
Kernel, 810
Latex, 36, 37
Linux, 711, 1315, 17, 19, 27, 30, 31, 33, 3638
Login, 10, 14, 30
make, 7
Man, 17

40

Man pages, 17
MINIX, 7
MULTICS, 6, 7
multitarefa, 7
multiusurio, 7
NTFS, 13
OpenOffice, 36, 38
OS/360, 6
Perl, 13
Permisses, 8, 15, 19, 25, 31, 32
Planilha, 5, 11, 13, 3638
POSIX, 7
Processamento em lotes, 6
Python, 13
root, 8, 16, 19, 30, 31
Scilab, 38
Scripts, 8, 11, 31
sed, 7
Shell, 10, 11, 22, 30, 31
Shell Scripts, 11
Sistema de Arquivo, 13
Sistema de arquivo, 8, 13
Sistema operacional, 59, 12, 37
Software, 5, 8, 9, 13
Software livre, 8, 13
Superusurio, 8, 14, 16, 30
System 360, 6
TCP/IP, 11
terminal, 6, 10, 11, 25, 29, 32, 33, 35
Tex, 36, 37
TVM, 12
UNICS, 6
UNIX, 5, 711, 13, 15, 3537
UNIX-like, 7, 8
vi, 35
WindowMaker, 12
X Window System, 11
X11, 11
Xfig, 33, 34

41