Você está na página 1de 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? . . . . . . . . . . . . . . . . . . . . . . . . . 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 Grcas- 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 . . . . . . . . . 3 6 6 6 9 9 10 10 11 11 12 12 13 13 14 14 15 15 15 16 16 16 17 19 19 19 22 26 27 29 30 31 31 33 34 36 38 39 39 39 40 41 41 41 42 42 42 43 44 44 45

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Programas Grcos 4.1 import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Xg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Gimp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Editores de Texto 5.1 Processamento de Texto e Processamento de Palavras 5.1.1 vi . . . . . . . . . . . . . . . . . . . . . . . 5.1.2 Emacs . . . . . . . . . . . . . . . . . . . . . 5.1.3 OpenOfce . . . . . . . . . . . . . . . . . . AT 5.1.4 TEX e L EX . . . . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

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

Referncias

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 os em painis). Nem preciso explicitar o enorme tamanho destas mquinas, suas baixas capacidades de processamento e a diculdade em oper-las. No incio da dcada de 50 as vlvulas foram trocadas pelos transistores e empresas passaram a produzir computadores mais conveis; o processamento era feito atravs de cartes perfurados (vide Fig. 2), onde se codicava as instrues em linguagem assembly ou FORTRAN. Depois de perfurados estes cartes eram entregues pelos programadores aos prossionais 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 ta magntica. Desta forma, quando o computador primrio lia a ta, 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 ta magntica. Ao m do processamento a ta de sada era levada at a mquina secundria que imprimia os resultados enquanto a mquina primria continuava a processar uma outra ta. 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 cientca. Na tentativa de criar uma linha de computadores unicada, 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 cientca 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 dcil 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 cou 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 especca 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, dene 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 cando, a cada nova verso, maiores e mais complexos, contradizendo a idia principal do UNIX, um sistema de simples compreenso e eciente. 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 cou 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 signica deixar um sistema maior e este no era o objetivo de Tanenbaum. Anal, 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 nalmente 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 cava em outro andar e era muito requisitada. Porm frequentemente esta impressora apresentava problemas com o papel que cava 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, modicar e melhorar o software. Existe um documento que estabelece a forma sob a qual programas de cdigo-fonte aberto podem ser distribudos. Este documento especica que o programa pode ser usado e modicado por quem quer que seja, desde que as modicaes 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 ca a critrio do usurio, pois no Linux a extenso de um arquivo no dene 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 especco. 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, signica 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, signica 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 xo 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 ESTABILIDADE Esta verso do kernel estvel, pois sua srie par (4) Esta verso instvel, pois sua srie mpar (5). Houve apenas um reparo.

2.4

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 grca, ou no terminal propriamente dito. Existem vrios emuladores de terminais grcos 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 grcos:

(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 nalidade facilitar uma tarefa, uma congurao de hardware ou programa. Muitos programas em Linux so executados ou congurados 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 cavam em uma outra partio do hd. Ao invs de ter que digitar todo este comando: ls -l/mnt/hda5/MyDocuments/fac/trabalhos/nome basta digitar: ./ondeTa nome_do_diretrio . _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 Grcas- X Window System

O sistema de janelas X ou simplesmente X a interface grca baseada em janelas padro para os sistemas UNIX-Like. Ele um ambiente que roda diversas aplicaes, dentre elas: jogos, utilitrios grcos, 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 modicar. 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 nais . 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 (identicao do usurio) e GID (identicao 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) Figura 5: (a) Tela do KDE. (b) Tela do GNOME. 2.7.1 Estrutura de Diretrios

(b)

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 exemplicado na gura 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 congurao 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 modicar 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 modicar estas permis-

3 Comandos do Shell
Os comandos no Linux so arquivos. Apesar da interface grca ser mais amigvel, bom voc ter um breve conhecimento de como as coisas funcionam pela linha de comando, pois algumas conguraes e alteraes s so possveis por ela, alm de existirem diferenas entre as opes grcas 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 nalizar 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 identicada por uma letra, esta vir iniciada apenas por um hfem. Ex.: ls -a Comando ls e opo -a Quando a opo for identicada por uma palavra ou nome, esta vir iniciada por dois hfens. Ex.: ls -all Comando ls e opo all Parmetros: Um parmetro identica 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 Especica o arquivo de congurao 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 rpmbuild rpmcache rpmdeps rpmgraph (8) (8) (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 vericar 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 m 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 vericador 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 m 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 congurao 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 naliza o programa normalmente. -version lista a informao de verso na sada padro (geralmente o monitor) e naliza 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 queremos chegar na pasta /console . Para isso usamos o

Ex.2: Estando na pasta /aluno comando cd

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 m 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 especica, 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 identicar 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

nd 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 especica 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 m 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: diretrio...

downloads

ou com o pathname

-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 conrmao. -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 modicao 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 m 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] Opes: -p Preserva o original proprietrio, grupo, permisses (incluindo os bits setuid e setgid), tempo da ltima modicao 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. arquivo caminho

3.2.5

Comandos de paginao

more, less

More um ltro 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 nalizar.]". -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 dicultando 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 Verica a integridade do arquivo compactado. Bzip2 -d -decompress Fora a descompresso -t -test Testa a integridade dos arquivos especicados -f -force Fora a escrita nos arquivos. -q -quiet Suprime mensagens no essenciais. Ex.1: $ gzip doc.tar Com isso arquivo doc.tar car 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 u r x t - cria - atualiza - l a fita - extrai - lista

[opo...]
backup fita o final

[arquivo]

um novo uma at

da gravao

anterior

e depois

acrescenta

os arquivos

indicados

da fita os nomes

os arquivos dos arquivos

especificados presentes em fita.

26

Opes:
f v m - dispositivo - fornece - atualiza mensagens a hora informativas, de modificao com o nome de cada extrado arquivo medida que ele for encontrado.

do arquivo

[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 pede diretrios os atributos assim que de forma dos alguma texto. ao regravar arquivos. recursiva. arquivos cpia copiados. falha.

/ p Q t n

arquivos confirmao

preserva

a data

de modificao

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 especicado, 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

mdir Descrio: Mostra diretrios Sintaxe: mdir [opes] arquivo Opes Principais / sada recursiva, como na opo -s dos DOS a lista arquivos escondidos.

msdos

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
Atalhos

Comandos para gerenciamento de processos

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 S T R TIME 0:01 0:07 0:00 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 ca inoperante at que voc encerre o programa chamado. Ou seja, digamos que voc abriu o navegador Firefox pelo terminal , este terminal car fora de uso at que voc feche o Firefox, sendo necessrio que se abra outro terminal caso deseje digitar uma nova instruo. O & ao m 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 naliza 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 les 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 m B.

3.2.10

Comandos para gerenciamento de grupos e usurios

O procedimento de identicao 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. 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 modicadas. su

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) - dene 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 congurao do sudo o /etc/sudoers quais programas podem ser executados por um usurio comum.

. Neste arquivo est denido

30

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 deniu 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 signica 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 2 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" signica um arquivo de diretrio " -" signica 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 signica permisso de leitura. w signica permisso de escrita. x signica permisso de execuo. - signica 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 identicam 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 caria 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 denir 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 ca: $ 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. do arquivo)

chgrp Descrio: altera o grupo do arquivo. Sintaxe: chgrp [opes] (novo Ex.: $ chgrp wwweb index.html

grupo)

(nome

do arquivo)

32

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 grco 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 la de impresso. Depois, outras partes do sistema de impresso removem os arquivos da la 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 la 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 la 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 la, voc pode pode usar o nmero do processo e digitar: lprm 20 023 dequeued 023 dequeued para descartar este processo.

4 Programas Grcos
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 denida pelo retngulo, simplesmente solte o boto. Um bipe ser ouvido quando do incio da captura e dois bipes ao m [1].

4.2

Xg

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

33

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

(b)

No Xg, as guras podem ser desenhadas usando objetos como crculos, caixas, curvas, textos, etc. Tambm possvel importar imagens nos formatos GIF, JPEG, EPSF (PostScript), etc. O Xg salva guras 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 Xg. Por exemplo, o Xg no faz grcos, mas ferramentas como o gnuplot ou xgraph podem criar grcos e export-los no formato do Xg [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) Xg. (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 guras, grcos 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 tipograa". 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 especca 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 ortogrcos 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 OpenOfce - 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 losoa 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 m 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

OpenOfce

O OpenOfce 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 Ofce sosticado e exvel, 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 OpenOfce permite que qualquer desenvolvedor use seu cdigo-fonte.

5.1.4

A TEX e L TEX

O TeX um programa prossional. 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 prossional 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)),
0 (sin( )), cos( 2 ), )d ,

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

Numerao automtica de frmulas, sees, denies, 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, denies, exemplos, teoremas alm de citaes bibliogrcas 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 gura 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 perl de usurio se diversicou 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, cartograa, 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 OpenOfce - 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
AfterStep, 12 Apache, 37 Aplicativos, 713, 3436, 38 Arquivo, 8, 9, 11, 1319, 2128, 3035, 37 Assembly, 57 Bash, 7, 10, 11, 29 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 umask , 32 useradd , 30 userdel , 30 whereis , 23 Compilador, 5, 6, 8 compress, 7 CTSS, 6 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 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 OpenOfce, 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 Xg, 33, 34

41

Você também pode gostar