Professional Documents
Culture Documents
do Linux
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.
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-
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 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.
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
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
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
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
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
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.
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>
3.1
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
3.2.1
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
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
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
diretrio
19
[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]\$
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 ..
/]\$
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
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:
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
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
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)
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)
/usr/include/rpm
/usr/man/man8/rpm.8
$ whereis
-s rpm
rpm: /usr/include/rpm
$ whereis
-b rpm
rpm: /bin/rpm
3.2.4
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
mv
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
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.
25
3.2.6
[-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
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
\#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.
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
[-v]
[-D
clash_option]
origem
destino
a:
3.2.9
Atalhos
ctrl+c Aborta um processo.
ctrl+z Suspende um comando
ps
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.
&
29
3.2.10
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.
30
3.2.11
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:
31
grupo)
32
(nome
do arquivo)
do arquivo)
3.2.12
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
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)
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
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
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
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
\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] :
&
&
\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.
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
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
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
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
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