Sie sind auf Seite 1von 101

APOSTILA SISTEMA OPERACIONAL

LINUX

A presente apostila uma adaptao de dois outros materiais abaixo relacionados.

Guia Foca GNU/Linux - http://focalinux.cipsga.org.br/


- desenvolvido por Gleydson Mazioli da Silva

Linux Curso de Introduo ao Linux DCT UFMS 1996


Desonvolvido por: Marcos lvares, Cludia Nasu, Alfredo Lanari e Luciene Marin
Foram suprimidos alguns itens destas apostilas e acrescidos principalmente exemplos de utilizao dos comandos bsicos do linux. Alguns itens acrescidos foram baseados no livro: Linux Administrao e Suporte Novatec Chuck V. Tibet Outros retirados da internet. outros,

A criao desta apostila tem o intudo de poder atender as necessidades curriculares da disciplina de Sistemas Operacionais da primeira fase do Curso Tcnico de Telecomunicaes.

Indice
1 - Conceitos Bsicos........................................................................................................................... 6 1.1 Computador................................................................................................................................ 7 1.2 Arquivos..................................................................................................................................... 8 1.3 Diretrios....................................................................................................................................9 1.4 Bits, Bytes e Unidades................................................................................................................9 1.5 Software (Programas)...............................................................................................................10 1.6 Hardware.................................................................................................................................. 11 1.7 Sistema Operacional.................................................................................................................14 1.8 Processo de Boot...................................................................................................................... 16 2 - Introduo..................................................................................................................................... 16 2.1 Histrico................................................................................................................................... 16 2.2 Uma viso geral do LINUX..................................................................................................... 18 2.2.1 Algumas Caractersticas do Linux....................................................................................19 2.3 A estrutura do LINUX..............................................................................................................20 2.3.1 Estrutura Lgica ............................................................................................................... 20 3 - Iniciando........................................................................................................................................21 3.1 A Sesso LINUX......................................................................................................................21 2

3.2 Encerrando a sesso..................................................................................................................23 3.3 Ciclo de Execuo do Comando...............................................................................................24 3.4 Alterao da Password:........................................................................................................... 24 3.5 Estruturas de Arquivos e Diretrios......................................................................................... 24 3.6 Diretrios..................................................................................................................................25 3.7 Diretrio de Entrada................................................................................................................. 26 3.8 Diretrio Corrente.................................................................................................................... 26 3.9 Diretrio Raiz........................................................................................................................... 27 3.10 Diretrio Superior...................................................................................................................27 3.11 Diretrio Anterior...................................................................................................................27 3.12 Caminho na estrutura de diretrios.........................................................................................27 3.12.1 Exemplo de diretrio....................................................................................................... 27 3.13 Estrutura bsica de diretrios do Sistema Linux.................................................................... 28 3.14 Nomes e Caminhos.................................................................................................................29 3.15 Nomes de arquivos e diretrios.............................................................................................. 30 3.16 Caracteres Especiais do Shell ou Coringas......................................................................... 30 3.16.1 Substituio do Nome do Arquivo.................................................................................. 30 3.16.2 Marcao do Caractere Especial..................................................................................... 32 3.17 Comandos...............................................................................................................................33 3.17.1 Comandos Internos..........................................................................................................33 3.17.2 Comandos Externos.........................................................................................................34 3.17.3 Aviso de comando (Prompt)............................................................................................34 3.17.4 Interpretador de comandos.............................................................................................. 34 3.17.5 Terminal Virtual (console).............................................................................................. 35 4 Fundamentos do Linux....................................................................................................................36 4.1 Comandos para manipulao de diretrios...............................................................................37 4.1.1 ls - (ou dir) Lista diretrios e seus contedos. ................................................................37 4.1.2 cd Mudando o diretrio de trabalho.............................................................................. 39 4.1.3 pwd Identificao do diretrio corrente........................................................................ 39 4.1.4 mkdir Criando diretrios............................................................................................... 40 4.1.5 rmdir Removendo diretrios..........................................................................................41 4.2 - Comandos para manipulao, gerenciamento e configurao de arquivos e/ou diretrios. . .41 4.2.1 touch Criando arquivos vazios...................................................................................... 41 4.2.2 cat Visualizando o contedo de um arquivo..................................................................42 4.2.3 tac - Visualizando o contedo de um arquivo reversamente............................................42 4.2.4 rm - Removendo arquivos e/ou diretrios........................................................................42 4.2.5 cp Copiando arquivos....................................................................................................43 4.2.6 mv Movendo ou Renomeando arquivos........................................................................44 4.2.7 file Identificando arquivos.............................................................................................45 4.2.8 more Paginando a sada padro...................................................................................... 46 4.2.9 less Paginando a sada padro........................................................................................ 46 4.2.10 sort Ordenando um texto.............................................................................................. 47 4.2.11 head Verificando o nicio de um arquivo..................................................................... 48 4.2.12 tail - Verificando o final de um arquivo......................................................................... 48 4.2.13 ln Criando um link.......................................................................................................49 4.2.14 find Encontrando arquivos e diretrios pelo file system.............................................49 4.2.15 locate Encontrando arquivos........................................................................................ 51 4.2.16 grep Procurando nos arquivos..................................................................................... 51 4.2.17 nl Visualizando e numerando um arquivo....................................................................52 4.2.18 cmp Comparando arquivos...........................................................................................52 4.2.19 wc Contando palavras em um texto.............................................................................53 4.3 Comandos Diversos..................................................................................................................53 4.3.1 clear Limpando a tela..................................................................................................... 53 4.3.2 cal Calendrio.................................................................................................................53 3

4.3.3 history Histrico dos comandos..................................................................................... 53 4.3.4 date.................................................................................................................................... 53 4.3.5 echo....................................................................................................................................54 4.3.6 cut..................................................................................................................................... 54 4.3.7 who................................................................................................................................... 55 4.3.8 whoami............................................................................................................................. 55 4.3.9 w....................................................................................................................................... 56 4.3.10 su.....................................................................................................................................56 4.3.11 reboot..............................................................................................................................56 4.3.12 halt .................................................................................................................................. 56 4.3.13 shutdown.........................................................................................................................56 4.3.14 talk................................................................................................................................... 58 4.3.15 mesg................................................................................................................................58 5 Editor de texto VI............................................................................................................................ 59 5.1 Editor do UNIX........................................................................................................................ 59 5.2 Modos de Operao do VIM.................................................................................................... 59 5.3 O Buffer de edio....................................................................................................................60 5.4 Comandos bsicos do VIM (vi ou vim).................................................................................. 60 5.4.1 Chamando o VIM:............................................................................................................61 5.4.2 Editando:...........................................................................................................................61 5.4.3 Salvando/Saindo do Vim:.................................................................................................62 5.4.4 Copiando e Colando......................................................................................................... 63 5.4.5 Apagando (deletando):..................................................................................................... 63 5.4.6 Outros Comandos............................................................................................................. 63 6 Segurana........................................................................................................................................ 65 6.1 Acesso a Diretrios e Arquivos................................................................................................65 6.2 Permisses de acesso a arquivos e diretrios .......................................................................... 65 6.3 Donos, grupos e outros usurios...............................................................................................66 6.4 Tipos de Permisses de acesso................................................................................................66 6.5 Etapas para acesso a um arquivo/diretrio.............................................................................. 67 6.6 Exemplos prticos de permisses de acesso.............................................................................67 6.6.1 Exemplo de acesso a um arquivo..................................................................................... 67 6.6.2 Exemplo de acesso a um diretrio....................................................................................68 6.7 A conta root............................................................................................................................. 69 6.8 Modo de permisso ..................................................................................................................69 6.8.1 Formato octal....................................................................................................................69 6.8.2 Formato simblico do modo de permisses..................................................................... 70 6.9 chmod Alterando o permissionamento de arquivos e diretrios.......................................... 71 6.10 chgrp Alterando o grupo......................................................................................................72 6.11 chown Alterando o dono.................................................................................................... 72 6.12 umask Mudando as permisses padro.............................................................................. 73 6.13 id - A identificao do usurio/grupo....................................................................................74 6.14 newgrp - Participao em grupos......................................................................................... 74 7 Redirecionamentos e Pipe .............................................................................................................. 76 7.1 Entrada e Sada dos comandos................................................................................................. 76 7.2 Entrada e Sada Padro:...........................................................................................................76 7.3 Redirecionamento de E/S........................................................................................................ 77 7.4 Smbolos de redirecionamento................................................................................................ 77 7.4.1 < Redirecionamento de entrada.......................................................................................77 7.4.2 > Redirecionamento de sada...........................................................................................77 7.4.3 >>......................................................................................................................................78 7.4.4 <<......................................................................................................................................78 7.4.5 | (pipe)...............................................................................................................................78 7.4.6 Diferena entre o "|" e o ">".............................................................................................79 4

7.4.7 tee Redirecionamentos multiplos.................................................................................. 79 7.5 Redirecionamento de erro padro............................................................................................80 8 Gerenciamento da execuo de comandos/programas.................................................................... 81 8.1 Processos.................................................................................................................................. 81 8.2 Estrutura de processos............................................................................................................. 81 8.3 Processos do usurio.................................................................................................................82 8.4 Executando um comando/programa.........................................................................................82 8.5 path.......................................................................................................................................... 82 8.6 Tipos de Execuo de comandos/programas...........................................................................83 8.7 Executando comandos/programas em seqncia.................................................................... 83 8.8 Agrupando comandos...............................................................................................................84 8.9 foreground e "background"...................................................................................................... 84 8.10 ps Consultando informaes sobre os processos ................................................................84 8.11 top - Consultando informaes dinamicamente..................................................................... 86 8.12 Controle de execuo de processos....................................................................................... 87 8.12.1 Interrompendo a execuo de um processo.....................................................................87 8.12.2 Parando momentaneamente a execuo de um processo................................................ 87 8.12.3 jobs.................................................................................................................................. 87 8.12.4 fg - foreground.................................................................................................................88 8.12.5 bg - background...............................................................................................................88 8.12.6 kill....................................................................................................................................89 8.12.7 killall................................................................................................................................89 8.12.8 Fechando um programa quando no se sabe como sair................................................. 90 8.12.9 Eliminando caracteres estranhos..................................................................................... 91 9 Compactadores ............................................................................................................................... 92 9.1 O que fazem os compactadores/descompactadores?................................................................92 9.2 Tipos de compactao.............................................................................................................. 93 9.3 Extenses de arquivos compactados....................................................................................... 93 9.4 gzip.......................................................................................................................................... 94 9.5 zip............................................................................................................................................ 95 9.6 unzip........................................................................................................................................ 96 9.7 tar.............................................................................................................................................97 9.8 bzip2........................................................................................................................................ 99 9.9 rar..............................................................................................................................................99 9.10 zcat........................................................................................................................................101 9.11 zgrep..................................................................................................................................... 101 9.12 zcmp..................................................................................................................................... 101 9.13 zless e zmore.........................................................................................................................102

1 - Conceitos Bsicos
Muitas pessoas possuem uma dificuldade em lidar com os computadores, simplesmente porque no sabem o que , como funciona e para que serve. certo que existe uma dificuldade inicial relacionada operao do computador em si. Isto , h uma srie de comandos com formatos difceis de lembrar e quais as respectivas tarefas que eles executam. Entretanto, nos ltimos anos esto surgindo novas facilidades para os usurios de microcomputadores pessoais. Tais como interfaces grficas poderosas que eliminam a necessidade de digitao de longas linhas de comandos. Nestas interfaces, os comandos so executados via menus, caixas de dilogos e cones. Geralmente, estas interfaces grficas ainda apresentam opes de se executar comandos atravs do mtodo tradicional , ou seja, digitando-se o comando por extenso. Isto porque muitos comandos no funcionam nestas interfaces grficas; ou ainda porque algumas opes mais detalhadas s podem ser ativadas pela linha de comando. Mas a tendncia que todos os comandos sejam implementados em forma grfica e iterativa. A princpio necessrio formalizarmos certos termos que sero utilizados durante todo o texto. Termos simples, mas que muitas vezes esquecemos ou simplesmente no sabemos por que no temos a obrigao de t-los em mente. Afinal usurios no precisam ser especialistas em computadores para poderem utiliz-los. Vamos ento s definies preliminares:

1.1 Computador
A primeira vista parece desnecessrio ter que dar uma definio do que um computador, mas o que se v na prtica, que muitas pessoas no possuem uma viso clara do que um microcomputador. E por este mesmo motivo, no se imaginam providas de meios de como lidar com estes equipamentos. Por computador entendemos simplesmente como uma mquina capaz de realizar clculos e operaes sobre informaes, podendo, desta forma, resolver uma srie de problemas, desde que seja fornecido um programa. Computador uma mquina programvel capaz de realizar processamento de informaes. Quando dizemos programvel significa que h um conjunto de instrues ou programa que diz ao computador o que deve ser feito. o que chamamos de software. Por ser uma mquina o computador tambm composto por fios, cabos, placas, circuitos e outros equipamentos fsicos. o que chamamos de hardware. Desta forma, um computador um sistema integrado formado por hardware ou componentes fsicos e por software que a parte inteligente que comanda o computador. Por processamento de informao devemos entender a capacidade de receber informaes, transform-las (processamento) e exibir os resultados. Sada Processamento Graficamente temos: Entrada

mento

Programa mento

As informaes manipuladas pelo computador podem variar muito, bem como a maneira de ser tratada internamente. Podemos classific-las da seguinte maneira: 1. Dados : so letras e nmeros. A princpio, computadores s podiam reconhecer e entender estes tipos de informaes atravs de uma tabela mantida internamente que convertia cada conjunto de 8 sinais eltricos em uma letra ou dgito, criando um sistema de codificao e decodificao compreensvel para o ser humano. Esta tabela existe at os dias de hoje e chama- se tabela ASCII. Outros tipos de tabelas foram criadas como a EBCDIC e ANSI Windows, mas a dominante a tabela ASCII. Exemplo: A 10000001 B 10000010 C 10000011 Como a corrente eltrica pode assumir apenas dois estados, convencionou-se que o nmero zero (0) indica a ausncia de corrente eltrica por um fio e o nmero um (1) pela passagem de corrente. A tabela ASCII formada por 8 dgitos. Como cada dgito pode assumir o valor zero ou um, podemos representar 256 caracteres diferentes (2 8 =256) mais que suficiente para as letras e dgitos existentes. No princpio da computao, se quisssemos escrever uma letra teramos que ligar e desligar um conjunto de fios para indicar que queremos representar uma deter minada letra do alfabeto. Hoje em dia basta pressionar no teclado que gerado um sinal ou interrupo para o microprocessador informando qual a tecla pressionada. O computador ento consulta a tabela ASCII, identifica a tecla e desenha ponto a ponto o caractere no monitor. Todo o desenho dos caracteres mantido em uma tabela no computador. 2. Sons : atualmente podemos armazenar e manipular sons como em uma mesa de som de mais alta tecnologia devido aos avanos na rea de sons digitais. Msica e som so grandezas fsicas ditas analgicas, isto , caracterizadas por perturbaes do ar. Mas computadores no entendem estas perturbaes, ento para que os mesmos pudessem ser reconhecidos, adaptou-se um microfone ao microcomputador que sensvel s vibraes e que as converte em impulsos eltricos que podem ser manipulados pelos computadores. Por isto chamado de som digital. O circuito responsvel por esta converso chama-se conversor analgicodigital. 3. Imagens : os primeiros computadores possuam muito pouca capacidade e velocidade e, portanto no podiam tratar de imagens com a mesma eficincia que hoje em dia. Imagens estticas como fotografias podem ser capturadas por aparelhos especiais conhecidos como scanners atravs de sensores infravermelhos e da reflexo da luz. Imagens dinmicas (animao e vdeo) podem ser obtidas por cmeras de vdeo ligadas a microcomputadores atravs de placas e softwares especiais. O problema deste tipo de informaes que temos que representar as imagens ponto a ponto e alm d isto manter informaes sobre brilho, cor, intensidade, luminosidade, etc., gastando uma quantidade maior de memria para podemos manter imagens em computadores. 7

1.2 Arquivos
O computador organiza as informaes internamente atravs de uma unidade denominada arquivo. Um arquivo contm um determinado tipo de informao e criado por um outro arquivo especial denominado arquivo de programa ou arquivo executvel , que o software em si. Podemos ento classificar os arquivos como sendo: 1. A rquivos executveis : so os programas ou softwares propriamente ditos. Atravs deles que criamos e modificamos outros tipos de arquivos. Eles fornecem um ambiente particular. Podem ser: iterativos : quando se comunicam com o usurio. no iterativos : quando no se comunicam com o usurio. Usurios podem aprender a utilizar os arquivos executveis, mas no existe um padro sobre o funcionamento dos mesmos. Assim, para sair de um determinado editor de textos eu utilizo tecla F3, em outro editor a tecla de sada pode ser ALT+X. Cada equipe de programadores define o funcionamento do programa que esta criando. Atualmente existe uma tendncia a padronizar as teclas com operaes mais comuns de forma que funcionem igualmente em todos os programas e os usurios no tenham tantas dificuldades em aprender a usar diferentes softwares. Uma das vantagens das interfaces grficas a padronizao das operaes mais comuns. 2. A rquivos de dados : contm apenas informaes alfabticas e numricas (alfanumricas). So utilizados para substituir o excesso de papis e documentos em empresas, mantendo informaes cadastrais em computador ao invs de mant- los em arquivos de ao. Entretanto, em alguns casos os arquivos de dados, apesar de diminuir o volume de papis excessivo, no tm a inteno de eliminar o processo manual, mas de fornecer um meio mais rpido e eficiente de consulta e acesso s informaes. uma forma alternativa de manter dados importantes e volumosos. 3. A rquivos de sons : comportam voz, msica e sons em geral capturados atravs de uma placa de som e um microfone ou um instrumento musical acoplado ao computador por uma placa especial. 4. A rquivos de imagens : possuem imagens estticas capturadas com scanners ou dinmicas capturadas com cmeras digitalizadoras.

1.3 Diretrios
Se guardssemos todos os arquivos de um computador juntos em um nico lugar, teramos pelo menos dois grandes problemas. Primeiro, seria extremamente difcil, ou mesmo impossvel saber se j existe algum arquivo armazenado com aquele nome. Segundo o Sistema Operacional, para executar o ltimo arquivo, teria que percorrer todos os outros at chegar no arquivo desejado. Este processo sem dvida tornaria o computador lento. Para facilitar a organizao do disco rgido, catalogar arquivos com mesmas caractersticas e facilitar o trabalho do Sistema Operacional, foi criado ento o conceito de diretrio. Um diretrio nada mais que um repositrio de arquivos e outros diretrios (chamados de subdiretrios), formando uma estrutura hierrquica chamada de rvore de diretrio . Podemos entender diretrios como sendo o endereo de um arquivo dentro do disco rgido. 8

1.4 Bits, Bytes e Unidades


Toda e qualquer informao no computador representada atravs do sistema de numerao binria. Trata-se de uma forma matemtica de se tratar lngua do computador para que possamos conversar com ele. Um bit a menor informao para o microcomputador. Ele representa o estado de um fio. O dgito um (1) representa a passagem de corrente por um fio, e o dgito zero (0) representa a ausncia d e corrente. Este sistema de numerao denominado binrio porque s utiliza dois dgitos. O sistema de numerao que ns conhecemos o sistema decimal. Existem outros sistemas e meios de converter nmeros de um sistema para outro. Assim foi estabelecida uma forma de comunicao inicial do ser humano com o computador, ainda que de uma forma muito difcil para ns humanos. Toda e qualquer informao representada na forma de bits ou conjunto de bits. Como pudemos ver anteriormente, os dados (letras e nmeros) so codificados no computador atravs da tabela ASCII. Imagens so representadas em monitores atravs de mapas de bits (bitmaps), ou seja, cada ponto luminoso da tela corresponde a um nico bit na memria indicando se deve estar ligado ou desligado. Desenhos so formados ativando os pontos corretos e mantendo outros desativados. As cores podem ser representadas por grupos de bits. Por exemplo, 4 bits podem ser usados para indicar at 2 4 = 16 cores diferentes. Convencionou-se , ento, quantificar a informao em uma unidade denominada byte (B). Um byte representa 8 bits, ou seja, 2 8 = 256 combinaes distintas, uma vez que cada bit pode assumir dois valores diferentes (0 ou 1). Com o passar do tempo esta unidade tornou- se pequenas para representar os arquivos e a capacidade de armazenamento dos meios magnticos, por isto foram criadas novas unidades:
Unidade 1 byte 1 kilobyte 1 megabyte 1 gigabyte 1 terabyte Medida 8 bits 1024 B 1024 kB 1024 MB 1024 GB Abreviao B kB MB GB TB

1.5 Software (Programas)


Programa uma seqncia de instrues que diz ao computador o que ele deve fazer. Isto , qual a tarefa especfica que deve realizar. Programa e software so sinnimos e aparecero como tais durante todo este texto. Os softwares podem ser classificados em dois grandes grupos de acordo com a atividade que desempenham: 1. Bsico 2. Aplicativos 1. Softwares Bsicos servem para a operao e programao do computador. Podem ser divididos em Utilitrios e Ferramentas de Desenvolvimentos. Sem os softwares bsicos os computadores no poderiam ser utilizados pelo homem. Eles formam um conjunto de programas que interagem entre os seres humanos e os micros. 9

Software Bsico

Utilitrios

Ferramentas de Desenvolvimento

Utilitrios so aqueles que operam o computador, controlando seus recursos e fornecendo um meio de nos comunicarmos com o computador de forma inteligvel. Um exemplo clssico de Utilitrio o Sistema Operacional . Sem ele no poderamos dizer ao computador o que desejamos que ele faa. Ferramentas de Desenvolvimento so softwares para a programao do computador, ou seja, so programas que permitem criar outros programas de uso geral ou especfico. Por exemplo, linguagem C, Pascal, Basic, Clipper, etc. 2. Softwares Aplicativos so programas de uso especfico para usurios finais, como processadores de textos (Microsoft Word, Fcil, Wordstar), planilhas eletrnicas (Excel, Quattro), sistemas gerenciadores de bancos de dados (Clipper, FoxProw, Acces), entre outros. o software que diz ao computador como a informao fornecida pelo usurio deve ser processada. Por exemplo, se fornecermos os nmeros 2 e 10 para o computador, dependendo do programa ou software que estiver sendo executado, estes nmeros podero ser somados e o resultado impresso ser 12, ou ento o resultado pode ser 20 se o programa sendo executado multiplicar os dois nmeros fornecidos pelo usurio. Portanto o software que fornece um ambiente para a manipulao de um determinado tipo de informao. Se no temos um software para reproduo de sons, no podemos ouvir nem gravarmos msica no micro. Para criarmos e modificarmos os arquivos criados por um aplicativo, devemos aprender como funciona especificamente o aplicativo, no precisamos necessariamente saber nada sobre Softwares Bsicos.

1.6 Hardware
Consiste na parte fsica do computador, placas, fios e cabos que conduzem a eletricidade e permitem a comunicao e conexo dos diferentes componentes de um computador. Atravs do hardware nos comunicamos com a mquina e vice-versa. Quando um novo dispositivo ligado ao computador necessrio uma interface, isto , uma placa que permita a comunicao entre o dispositivo e a unidade de processamento em si (CPU). Alm disto, necessrio um software especial para acessar este dispositivo (driver) e permitir a criao e manipulao de informaes utilizadas pelo dispositivo. Em geral a instalao de dispositivos no muito difcil, mas requer alguns conhecimentos a mais a respeito do funcionamento do computador. Interrupes, canais de entrada e sada, configurao das portas e uso do DMA so requisitos bsicos para a instalao de muitos perifricos no computador. O hardware de um computador formado basicamente pelos seguintes elementos: 1. Dispositivos de Entrada 10

2. CPU (Microprocessador) 3. Memria Principal 4. Memria Secundria. 5. Dispositivos de Sada. Dispositivos de Entrada e Dispositivos de Sada so denominados perifricos, pois no esto diretamente relacionados ao processamento, mas sim na entrada ou sada de informaes. Dispositivos de Entrada permitem ao ser humano introduzir informaes no computador. So exemplos de dispositivos de entrada: a) teclado : fornece informaes alfanumricas ao computador (dados). b) mouse : Permite a seleo de atividades atravs de cones e opes que aparecem no monitor. c) scanner: captura imagens estticas como fotografias. d) cmeras digitalizadoras : captura imagens em movimento. e) leitora tica : efetua leitura de informaes em cartes marcados.

Dispositivos de Sada exibem os resultados do processamento, permitindo a comunicao do computador com o homem: a) monitor : semelhante a um aparelho de televiso, em geral exibe os caracteres digitados em um teclado. b) impressora : reproduz os resultados em papel. c) plotter : exibe grficos tcnicos e complexos em papel. d) datashow : projeta informaes em um telo. e) paletes : permite a gravao de slides

H certos equipamentos que ora funcionam como dispositivos de entrada e ora como dispositivos de sada, logo so conhecidos como Dispositivos de Entrada e Sada. a) modem : permitem a troca de informaes entre computadores via linha telefnica. b) unidades de disquetes : permitem a leitura/gravao de informaes em meio magntico flexvel de baixa capacidade e 11

velocidade. c) unidades de disco rgido ( HD) : permitem a leitura/gravao de informaes em meio magntico rgido de alta capacidade e velocidade. d) CD -R/W (compact disc read write) : permitem a leitura/gravao de informaes em discos a laser. e) DVD-R/W f) Memrias Compact Flash

A Unidade Central de Processamento (CPU) conhecida como microprocessador o crebro da mquina. Cabe CPU controlar todo o fluxo de informaes entre os dispositivos de entrada, sada, alm de realizar todo o acesso memria principal e memria secundria. Em suma, o principal componente do computador responsvel pelo processamento da entrada gerando a sada desejada. Internamente, composta por uma Unidade de Controle responsvel por acessar a Memria Principal para buscar dados e instrues para serem executadas e pela Unidade Lgica e Aritmtica responsvel por todos os clculos matemticos e lgicos simples. Para os clculos mais complexos que envolvem ponto flutuante (nmeros reais de alta preciso), necessrio um chip especial, o co-processador matemtico que pode ser embutido internamente no microprocessador. Existem diversos fabricantes de microprocessadores. Os mais utilizados em computadores pessoais so, por exemplo: 80486 (conhecido simplesmente pela terminao 486), Pentium de fabricao da Intel, etc. O que difere um dos outros a capacidade de manipular dados e a velocidade do clock. Microprocessador Capacidade Modelo Clock 80486 32 bits DX2 66 MHz 80486 32 bits DX4 75 MHz A capacidade de um processador refere- se quantidade de bits que ele consegue enviar e receber dos outros dispositivos. Quanto maior a capacidade de manipular bits, melhor e mais rpido o desempenho do computador. Alm disto, existe tambm o relgio interno ou clock. Tratase de um pequeno cristal de quartzo que emite pulsos constantes a um determinado intervalo de tempo. Quanto maior a freqncia (em MegaHertz), mais rpido o computador. Estes pulsos do relgio so utilizados pelo processador para controlar o ciclo de execuo das instrues. A Memria Principal um circuito especial dedicado a manter informaes enquanto o computador estiver funcionando. denominada de memria RAM. nela que ficam armazenados os programas e informaes enquanto estivermos manipulando- as. Cabe ao Sistema Operacional 12

reconhecer e gerenciar o espao livre para que seja possvel executar programas e manusear informaes. O microprocessador constantemente acessa a Memria Principal para ler e escrever informaes e instrues. A memria RAM (Random Access Memory) extremamente voltil, isto , seu contedo descartado assim que o computador desligado ou ocorre uma falha na energia. Para que as informaes no se percam, precisamos armazen-las de forma definitiva naquilo que denominamos Memria Secundria. So os discos flexveis, discos rgidos, fitas streamer e discos a laser. Cabe tambm ao Sistema Operacional reconhecer e acessar os perifricos responsveis pela leitura e gravao nestes meios. O problema da memria RAM a lentido com que o microprocessador acessa seu contedo. Criou-se ento uma pequena, mas veloz memria denominada Memria Cache que fica entre o microprocessador e a memria RAM ou internamente na CPU. Geralmente possui capacidade para 128 at 1024 KB. O computador utiliza a memria RAM como rea de trabalho, isto , enquanto o computador estiver ligado e programas estiverem sendo executados, tudo ocorre na memria RAM. A memria secundria serve apenas para armazenar de forma definitiva os arquivos para que eles no se percam assim que desligarmos o microcomputador. Existem outros tipos de memrias especiais. Memria ROM (Read Only Memory) um tipo de memria que j vem gravada de fbrica com um pequeno programa com tarefas mnimas para que o computador possa ser ligado e funcione adequadamente. Algumas vezes este circuito chamado de BIOS (Basic Input Output System) e contem uma srie de pequenos programas para acessar teclado, monitor, disco rgido, etc. H alguns tipos especiais de memria apenas de leitura: PROM (Programmable Read Only Memory) pode ser gravada pelo prprio usurio e no mais pelo fabricante, mas uma vez gravada no mais poder ser apagada. EPROM (Erasable Programmable Read Only Memory) capaz de ser programvel pelo usurio e se necessrio apagar seu contedo atravs de um equipamento especial. EEPROM (Electrical Erasable Programmable Read Only Memory) pode ser programada pelo usurio e apagada atravs da aplicao de uma corrente eltrica em um de seus pinos.

1.7 Sistema Operacional


O Sistema Operacional um programa especial que gerencia todos os recursos da mquina, tais como memria, teclado, monitor de vdeo, mouse, entre outros. atravs do Sistema Operacional que executamos outros programas, gravamos ou lemos informaes em CD-ROMs, pendrive, visualizamos textos em vdeo ou impressora, etc. Sem o Sistema Operacional no conseguiramos realizar estas tarefas. Ou seja, simplesmente no poderamos utilizar o computador. Existem inmeros Sistemas Operacionais, tais como: MS-DOS, UNIX, OS/2, VM/CMS, QNN, etc. Cada um deles possui caractersticas prprias e executando em mquinas diferentes. Assim, no podemos executar um programa em Sistemas Operacionais distintos, a no ser que o fabricante do programa nos garanta esta portabilidade. O Windows s consegue executar programas MS-DOS porque foram 13

feitos por um mesmo fabricante, a Microsoft. E porque, a princpio, o Windows no um Sistema Operacional por si, ele necessita do MS-DOS para funcionar. As verses a partir do Windows 95 foram planejadas para serem independente s do MS-DOS, mas que aceitam aplicativos do MS-DOS. No Linux o Kernel mais o conjunto de ferramentas GNU compem o Sistema Operacional. O kernel (que a base principal de um sistema operacional) poder ser construdo de acordo com a configurao do seu computador e dos perifricos que possui. de responsabilidade do Sistema Operacional: 1. Carregar e executar programas. 2. Controlar dispositivos de entrada e sada (teclado, monitor, etc). 3. Gerenciar arquivos e diretrios. 4. Gerenciar a memria RAM Como pudemos ver anteriormente, todo e qualquer programa executado em um computador utiliza a memria RAM. Da mesma forma, o Sistema Operacional deve ser carregado, ou seja, copiado do disco rgido ou disco flexvel para a memria RAM. Denominamos este processo de BOOT. Toda vez que ligamos o computador, feita uma srie de testes para verificar o funcionamento dos perifricos e se tudo estiver perfeito, o Sistema Operacional pode ser carregado. Os Sistemas Operacionais ainda podem ser classificados quanto ao nmero de pessoas que podem utilizar os recursos ao mesmo tempo e quanto ao nmero de programas que podem ser executados em uma mesma mquina. 1. Monousurio: permitem apenas um usurio interagindo com o sistema . 2. Multiusurio: permitem vrios usurios conectados ao sistema simultaneamente . 3. Monotarefa : apenas um programa pode ser executado de cada vez. Caracterizam-se por permitir que o processador, a memria e os perifricos permaneam exclusivamente dedicados execuo de um nico programa. Enquanto um programa aguarda por um evento o processador permanece ocioso. A memria sub-utilizada caso o programa no a preencha totalmente. Simples implementao por no haver preocupao com problemas decorrentes de compartilhamento de recursos. Ex.: MS-DOS 4. Multitarefa : vrios programas podem ser executados ao mesmo tempo. Vrias aplicaes compartilham os mesmos recursos. O SO se preocupa em gerenciar o acesso concorrente aos seus diversos recursos. Reduo do tempo de resposta das aplicaes processadas e de custos. Mais eficientes, mas de implementao mais complexa. Ex: Windows, Linux O MS-DOS um Sistema Operacional monousurio e monotarefa, ou seja, permite apenas um operador e executa apenas um programa de cada vez. O Windows, apesar de no ser um Sistema Operacional, fornece um ambiente monousurio e multitarefa, onde apenas um nico usurio pode 14

executar vrios aplicativos ao mesmo tempo. Em geral Sistemas Operacionais que so multiusurios so tambm multitarefa, como o UNIX e QNN, onde podemos ter vrios usurios em terminais distintos executando, cada um, uma srie de programas diferentes ao mesmo tempo. Alm disto, Sistemas Operacionais podem ser classificados quanto ao tipo de comunicao com o usurio, podendo ser: 1. Interface por linha de comando: quando o usurio tem que digitar o comando por extenso na tela do computador. A comunicao, em geral feita em modo texto. Preferencialmente utilizada por especialistas. 2. Interface grfica para usurios (GUI): quando os comandos so executados em um ambiente grfico com o uso do mouse. Voltada principalmente para o usurio final.

1.8 Processo de Boot


a carga do sistema operacional, a partir da memria secundria (floppy, hd, cd, etc. ) para a memria RAM principal; Um pequeno programa executa esta tarefa. Este no faz parte necessariamente do Sistema Operacional. Ex: Lilo, GRUB

2 - Introduo
2.1 Histrico
O Sistema Operacional UNIX foi desenvolvido nos laboratrios da AT&T para uso prprio, baseado em um antigo projeto que deveria ser o primeiro Sistema Operacional multiusurio e multitarefa, o MULTICS. Porm, este projeto estava muito alm da capacidade dos equipamentos para a poca. Desta forma o projeto foi arquivado, mas alguns de seus idealizadores (Ken Thompson, Dennis Ritchie e Rudd Canadaday) resolveram escrever uma verso simplificada e monousuria para um computador com menores recursos. O resultado impressionou, mesmo sendo utilizada uma mquina limitada. Assim, o cdigo foi reescrito para outros computadores melhores, apresentando excelentes resultados. Por coincidncia ou no, estes computadores para os quais o Sistema Operacional foi reescrito eram utilizados por quase todas as Universidades que se interessaram por este Sistema Operacional muito superior aos que vinham sendo utilizados nos laboratrios de computao. A partir de ento, a AT&T licenciou seu mais novo projeto para as Universidades, mostrando uma enorme viso e capacidade inovadora, pois alm do Sistema Operacional, foi cedido o cdigo do mesmo para as Universidades, que no mediram esforos em depurar o programa e incluir 15

novas caractersticas. Foi dentro das Universidades que o UNIX cresceu e adquiriu muitas das caractersticas que o tornam poderoso, dando origem a diversas verses alm da original proveniente dos laboratrios da AT&T. Esta caracterstica tornou o UNIX um sistema poderoso na medida em que foi concebido no apenas por uma equipe de projetistas, mas sim por toda uma comunidade de pessoas interessadas em extrair o melhor das mquinas. A princpio, o cdigo do UNIX foi escrito em linguagem assembler ou de mquina que altamente dependente do hardware ou parte fsica do computador. Para que o cdigo fosse reescrito, era necessrio muito esforo e tempo. Entretanto, um dos criadores d Sistema Operacional UNIX resolveu utiliza uma nova linguagem para escrever o U NIX, era a linguagem C que oferecia o poder da linguagem de mquina com a facilidade das linguagens estruturadas de alto nvel. A grande vantagem de se utilizar linguagem C ao invs da linguagem de mquina prpria do computador a de que a primeira altamente portvel, isto , um programa escrito em C para um determinado computador poder ser executado quase sem nenhuma modificao em outro tipo de mquina completamente diferente. Enquanto que se fosse feito um programa em linguagem de mquina para um determinado computador o programa seria executado somente neste tipo de computador e no nos demais, para isto, seria preciso reescrever todo o programa. O UNIX foi projetado para ser executado em computadores de grande capacidade, ou seja, mini e supercomputadores, pois somente estas mquinas podiam oferecer suporte aos recursos necessrios para o ambiente gerado pelo Sistema Operacional. Crescendo longe do alcance dos usurios de microcomputadores, o UNIX atingiu uma estabilidade e estrutura jamais alcanada por um Sistema Operacional. Mas nestes quase trinta anos de existncia do UNIX, os microcomputadores evoluram a ponto de fornecer o mnimo de condies para que este poderoso Sistema Operacional pudesse ser implementado para os micros IBM-PC e compatveis. Diversas verses do UNIX foram escritas e licenciadas para venda com nomes semelhantes (XENIX, UNISYS, AIX, etc), porm com as mesmas caractersticas essenciais, sendo que atualmente existem inmeras verses comerciais e outras tantas verses livres que foram desenvolvidas em Universidades ou por hackers atravs da rede Internet. Apesar de ter sido desenvolvido para lidar com dispositivos de caracteres, UNIX foi pioneiro na rea de grficos em estaes de trabalhos. As primeiras interfaces grficas para usurios (GUI) foram projetadas e utilizadas em Sistemas operacionais UNIX, desenvolvidas pelo MIT (Massachussets Institute of Technology). Trata-se do X Window System. Como se pode notar, UNIX um sistema de inmeras possibilidades. Praticamente todos os recursos que os sistemas operacionais mais atuais utilizam j haviam sido executados em UNIX h muito. Todas as reas da computao puderam ser desenvolvidas com o UNIX. As tendncias atuais levam a uma tentativa de padronizar o Sistema Operacional UNIX combinando as melhores caractersticas das diversas verses do mesmo. Prova disto a criao do POSIX (Portable Operating System Interface / Interface Portvel para Sistemas Operacionais) , um 16

padro de Sistema Operacional desenvolvido pela IEEE (Institute of Eletrical and Eletronic Engineers). Alm da OSF (Open System Fundation) que rene as principais lderes do mercado de equipamentos para definir o padro de GUI (interfaces grficas) para UNIX. A verso que ser abordada durante este curso o LINUX, um clone do Sistema Operacional UNIX para microcomputadores IBM-PC 386 e compatveis. O LINUX foi desenvolvido inicialmente por Linus Torvalds na Universidade de Helsinski na Finlndia. O LINUX possui a vantagem de ser um software livre e ser compatvel com o padro POSIX. Alm de unir em um nico Sistema Operacional as vantagens das diferentes verses de UNIX comerciais disponveis. Desta forma, LINUX torna-se a melhor opo para que usurios de microcomputadores possam usufruir da capacidade do UNIX. Apesar de no poder rodar aplicativos para MS-DOS, o LINUX pode rodar todos os softwares de desenvolvidos para UNIX, alm de estarem disponveis softwares que permitem a emulao do MS-DOS e do Windows. O LINUX pode ser til em empresas que desejam possuir estaes de trabalho com poder razoavelmente comparvel s estaes existentes como SUNs e outras usando PCs, com fiel semelhana no seu uso. O LINUX pode conviver pacificamente com outros sistemas operacionais no PC. Existe uma infinidade de formas de instal-lo: em uma partio DOS j existente, sem haver a necessidade de reparticionar o HD e conseqentemente sem nenhuma perda de informao, pode ainda ser instalado em um HD exclusivamente dedicado a ele. Para conviver com outros sistemas operacionais, existem algumas maneiras de carregar o sistema operacio nal, o Lilo (Linux Loader) que pode funcionar como um BOOT manager no qual se escolhe qual partio ou drive ir dar a partida, o loadlin que um utilitrio DOS para carregar o LINUX a partir do DOS, ou por meio de um disco de boot. O LINUX pode ser obtido de diversas formas diferentes, existem diversos livros venda, os quais incluem CDs com distribuies do LINUX. Outra forma de obt-lo inteiramente grtis e via FTP pela INTERNET. Existe hoje, um movimento no sentido de torna o LINUX um sistema popular, dado que a superioridade tcnica ele j possui.

2.2 Uma viso geral do LINUX


Como vimos acima o Linux um sistema operacional criado em 1991 por Linus Torvalds na universidade de Helsinki na Finlndia. um sistema Operacional de cdigo aberto distribudo gratuitamente pela Internet. Seu cdigo fonte liberado como Free Software (software livre) o aviso de copyright do kernel feito por Linus descreve detalhadamente isto e mesmo ele est proibido de fazer a comercializao do sistema. Isto quer dizer que voc no precisa pagar nada para usar o Linux, e no crime fazer cpias para instalar em outros computadores, ns inclusive incentivamos voc a fazer isto. Ser um sistema de cdigo aberto pode explicar o desempenho , estabilidade e velocidade em que novos recursos so adicionados ao sistema. Para rodar o Linux voc precisa, no mnimo, de um computador 386 SX com 2 MB de memria e 40MB disponveis em seu disco rgido para uma instalao bsica e funcional. O sistema segue o padro POSIX que o mesmo usado por sistemas 17

UNIX e suas variantes. Assim, aprendendo o Linux voc no encontrar muita dificuldade em operar um sistema do tipo UNIX, FreeBSD, HPUX, SunOS, etc., bastando apenas aprender alguns detalhes encontrados em cada sistema. O cdigo fonte aberto permite que qualquer pessoa veja como o sistema funciona (til para aprendizado), corrija alguma problema ou faa alguma sugesto sobre sua melhoria, esse um dos motivos de seu rpido crescimento, do aumento da compatibilidade de perifricos (como novas placas sendo suportadas logo aps seu lanamento) e de sua estabilidade. Outro ponto em que ele se destaca o suporte que oferece a placas, CD-Roms e outros tipos de dispositivos de ltima gerao e mais antigos (a maioria deles j ultrapassados e sendo completamente suportados pelo sistema operacional). Este um ponto forte para empresas que desejam manter seus micros em funcionamento e pretendem investir em avanos tecnolgicos com as mquinas que possui. Hoje o Linux desenvolvido por milhares de pessoas espalhadas pelo mundo, cada uma fazendo sua contribuio ou mantendo alguma parte do kernel gratuitamente. Linus Torvalds ainda trabalha em seu desenvolvimento e tambm ajuda na coordenao entre os desenvolvedores. O suporte ao sistema tambm se destaca como sendo o mais eficiente e rpido do que qualquer programa comercial disponvel no mercado. Existem centenas de consultores especializados espalhados ao redor do mundo.

2.2.1

Algumas Caractersticas do Linux

Um Sistema Operacional deve gerenciar os recursos da mquina da melhor maneira possvel de forma a poder oferecer aos usurios o mximo do computador. Dentre as principais funes do SO, podemos destacar: 1. Criar e manipular uma estrutura de arquivos e diretrios. 2. Controlar o acesso memria e outros dispositivos controlados pelo microprocessador, como monitor, teclado, impressora, etc. 3. Gerenciar a execuo de programas, trazendo-os da memria para o microprocessador. A primeira vista, parece que o LINUX nada possui de diferente de qualquer outro Sistema Operacional, mas nenhum to bom em unir e integrar o que h de melhor em um computador de forma harmoniosa e eficiente devido a sua prpria origem em meio a toda uma comunidade de pessoas interessadas em obter o mximo e o melhor em desempenho. Cabe ressaltar tambm que o Linux possui todas as caractersticas que fazem do UNIX um excelente siste ma operacional, entre elas Portabilidade, Multiusurio e Multitarefa, Estrutura hierrquica de arquivos, Ferramentas e Utilitrios, Comunicao com outros sistemas. Daremos uma rpida olhada em algumas das principais caractersticas e vantagens que fazem o LINUX nico: Multitarefa . Linux, como as outras verses do UNIX um sistema multitarefa, possibilitando a execuo de mltiplas aplicaes de diferentes usurios no mesmo sistema ao mesmo tempo. A performance de uma mquina 486 de 50 MHz comparvel com muitas workstations de mdio porte rodando UNIX. O X Window System , de fato, um padro na indstria de sistemas grficos para mquinas UNIX. Uma verso completa do X Window System, conhecida como Xfree86 est disponvel pra Linux. 18

TCP/IP (Transmission Control Protocol / Internet Protocol), este um conjunto de protocolos que liga milhes de universidades e empresas numa rede mundial conhecida como Internet. Com uma conexo Ethernet o Linux permite que seja feita uma conexo da Internet a uma rede local. Memria Virtual. O Linux pode usar parte do seu HD como memria virtual, aumentando assim a capacidade da memria RAM. Compatibilidade com o IEEE POSIX. Linux foi desenvolvido com a portabilidade de software em mente.

2.3 A estrutura do LINUX


2.3.1 Estrutura Lgica

2.3.1.1

Kernel/Shell

Kernel o ncleo do Sistema Operacional LINUX, que permanece residente na memria. Atravs dele que o usurio possui o acesso aos recursos oferecidos pelo hardware (o computador em si). Todo o gerenciamento de memria, dispositivos, processos, entre outros coordenados pelo kernel. Basicamente est dividida em duas partes: 1. gerenciamento de dispositivos : supervisiona a transmisso de dados entre a memria principal e os dispositivos perifricos. Desta forma, o kernel abrange todos os drivers controladores de dispositivos que podem ser ligados a um computador. 2. gerenciamento de processos : aloca recursos, escalona processos e atende a solicitao de servios dos processos. Shell um programa executado aps a inicializao do sistema que servir como interpretador de comandos entre o usurio e o Kernel do LINUX. ele quem fornece uma interface de linha de comando para que o usurio possa dizer ao Sistema Operacional o que deve ser feito. Em termos tcnicos, o shell um interpretador de comandos que analisa o texto digitado na linha de comandos e executa esses comandos produzindo algum resultado O Shell traduz o comando digitado em chamadas de sistema que so executadas em linguagem de mquina pelo kernel. Alm disto, fornece um ambiente programvel atravs de scripts. A palavra shell vem do ingls "concha". A idia que voc quando entra no sistema Linux est entrando em uma concha, cuja "casca" protege o usurio do sistema e o sistema do usurio. A "casca" da shell no ir permitir que o usurio execute alguma coisa que ele no tem permisso e no permite que outro usurio invada a intimidade de outro. O shell tem como referncia um (sub)diretrio onde o usurio tem total controle, conhecido como diretrio "home". Ali o usurio tem privilgios para criar, alterar, apagar e modificar arquivos e diretrios. Em teoria, tudo o que o usurio produzir ser mantido no home, separado pela "casca" do shell dos outros usurios. Existem inmeros shells cada um com ligeiras diferenas entre si. Muitas vezes possvel utilizar vrios shells diferentes em um mesmo micro rodando LINUX, isto porque ele multitarefa e multiusurio, de modo que cada usurio poderia utilizar o shell que lhe agradar mais. Entre os mais utilizados esto o Bourne Shell, o C shell e o Korn Shell. No Linux utilizamos normalmente a BASH (ou Bourne Again Shell).

2.3.1.2

Utilitrios
19

Existem centenas de utilitrios (comandos) para a realizao de

tarefas especializadas ou rotineiras, entre elas manipulao e formatao de textos, clculos matemticos, gerenciamento e manuteno de arquivos e diretrios, administrao de sistemas, manuteno de segurana, controle da sada para impressora, desenvolvimento de programas e filtragem de dados. Cada um destes utilitrios digitado na linha de comando do LINUX que ser interpretado pelo Shell do sistema. Este por sua vez se encarregar de realizar diversas chamadas ao Kernel para a execuo do comando. Como as interfaces grficas so muito recentes, o LINUX teve toda a sua potencialidade explorada em termos de ambiente de desenvolvimentos. Isto equivale a dizer que o que se pode fazer com um software de Formatao de Textos do tipo aponte e clique, pode ser realizada atravs do antigo modo de linha de comando no LINUX. Mas isto no impede que as facilidades do ambiente de janelas seja explorado, pelo contrrio. Os mais profissionais programas aplicativos rodam sobre o Sistema Operacional LINUX, entre eles o Gerenciador de Banco de Dados ORACLE, INGRES e FoxBASE+, formatadores de textos Postscript, Tex e FamaMaker de qualidade extraordinrias.

2.3.1.3

Processos

Quando um programa ou utilitrio executado, passa a se chamar processo. Cada processo iniciado possui um estado indicando sua condio (em execuo, parado, interrompido, etc) e a prioridade. Sendo que os processos do sistema possuem prioridades sobre os do usurio. Com base nas informaes sobre os processos em andamento, a CPU precisa escalonar os processos para dedicar a cada um, um determinado tempo dando a impresso de que vrios processos esto sendo executados ao mesmo tempo. Exemplos de estados de processos: Execuo (R - running) - processo est sendo executado pelo processador. Dormindo (S - sleeping) o processo est dormindo ou aguardando algo para realizar alguma atividade Espera ou Bloqueado (wait) - aguarda por algum evento externo ou por algum recurso para prosseguir seu processamento. Zumbi (Z - zombie) o processo que se encontra neste estado teoricamente no mais existiria, ou estaria morto, porem uma cpia dele ainda reside na memria. Essa situa o pode ocorrer se eliminarmos um processo pai sem antes fazermos o mesmo com seus filhos, pois dessa maneira o processo que controlava as aes dos demais no mais existe e estes perdem sua funo passando ento para o estado zumbi. Ctrl + z - Suspende um processo em andamento permitindo digitar outro comando durante a execuo de um programa. Ctrl + c - Suspende um processo em andamento.

3 - Iniciando
3.1 A Sesso LINUX
Antes de iniciar a sesso no sistema propriamente dita, temos que levar em considerao o significado das teclas especiais que so utilizadas 20

pelo LINUX, bem como de alguns conceitos iniciais. Por ser um Sistema Operacional que suporta vrios usurios (multiusurio), antes de tudo, preciso se identificar. O LINUX ento se encarregar de permitir ou no seu acesso verificando sua senha, se estiver correta libera o diretrio de entrada e executa arquivos de inicializao locais e o interpretador apropriado. Aps este processo, voc estar apto a executar os comandos do LINUX. Quando o terminal estiver ligado, provavelmente ser apresentado um sinal de prontido do sistema da seguinte forma: Login: Isto significa que o sistema est esperando para que o usurio se identifique com o nome de usurio que lhe foi concedido pelo Administrador de Sistema junto com uma senha de acesso. Aps digitar o nome de usurio, pressione ENTER. Ser apresentado um novo sinal de prontido : Password: Este sinal pede que seja digitada a sua senha. Note que medida que forem digitados os caracteres, eles no aparecero no vdeo por medidas de segurana. Se algo deu errado (foi novamente apresentado o sinal de login), tente novamente, certificando-se de ter digitado o nome de usurio e a senha exatamente como recebeu do Administrador pois o LINUX diferencia as letras maisculas das minsculas. Isto quer dizer que para o LINUX A (letr a a maiscula) diferente de a (letra a minscula). Esta uma dica que serve no apenas para iniciar a sesso, mas tambm para todos os comandos LINUX. Tendo o usurio se identificado com o nome da conta e a senha (se esta existir, pois existem contas criadas especialmente para uso sem senha), o LINUX checa em um arquivo de configurao pelo nome da conta e a senha correspondente devidamente encriptada. Estando ambas registradas e corretas, o Sistema Operacional permite o acesso ao usurio executando o shell indicado tambm neste arquivo. O shell providencia uma interface de comunicao entre o kernel e o usurio. Esta interface consiste de uma linha de comando (ou prompt) na qual deve ser digitado o comando por extenso seguido por seus parmetros (se tiver). Em uma linha de comando podemos ter mais de um comando em seqncia para serem executados. Em geral esta linha de comando formada por um smbolo que pode ser de porcentagem (%) ou cifro ($) para usurios comuns e grade (#) para usurios com privilgio de raiz, dependendo do tipo de shell usado. Usurio_logado@mquina_logad a dir._corrente]$ : usurio no root Usurio_logado@m quina_logada dir._corrente]# : usurio root Os parmetros que aparecem aps o nome do comando podem ser nomes de arquivos e/ou caminhos de diretrios. Eles devem sempre ser digitados com um espao entre si e depois do comando. Muitas vezes alguns smbolos que aparecem na linha de comando no so parmetros, mas sim comandos para o shell determinando a seqncia em que o(s) comando(s) devem ser executados. O LINUX aceita e executa um comando quando, ao terminarmos de 21

digitarmos o comando, pressionarmos a tecla ENTER, RETURN ou (varia de computador para computador). Caso seja encontrado algum erro na digitao do comando antes que a tecla ENTER seja pressionada, podemos corrigi-lo utilizando as teclas de direo e para posicionarmos o cursor na posio em que o erro foi cometido. Cursor o smbolo grfico que aparece logo aps a linha de comando e que se movimenta medida que caracteres so digitados e aparecem na tela. Para apagar caracteres antes do cursor, basta pressionar a tecla de BACKSPACE ( ) ou a combinao de teclas CTRL+H (^H). Se desejar apagar toda a linha tente CTRL+U (^U). Pode ser que a tecla DEL tambm funciona para apagar caracteres, mas de maneira diferente, ao invs de apagar caracteres antes do cursor, ele apaga caracteres aps o mesmo. Algumas vezes podemos recuperar os comandos dados anteriormente. Certos tipos de shell possuem um arquivo oculto no diretrio de entrada do usurio que armazena at os n ltimos comandos digitados. o arquivo de histrico dos comandos. Para recuper-los podemos utilizar as teclas ou . Ou ento utilizar os comandos do shell: history e !. O comando history lista os n ltimos comandos digitados. Exemplo: Utilize os comandos history e ! para re-executar um comando $ history $ !200 Em alguns shells estas teclas no esto definidas, ou ento outras realizam estas mesmas funes. Procure junto ao Administrador de Sistemas quais teclas ou conjunto de teclas usar para editar a linha de comando. Certos comandos so interativos e outros no-interativos . Comandos interativos so aqueles que aps serem executados, exigem que algumas perguntas sejam respondidas para que possam prosseguir. Comandos nointerativos simplesmente executam os comandos sem nada perguntar e retornam linha de comando do LINUX. Exemplos de comandos no-interativos: ls exibe lista do contedo do diretrio corrente date exibe a data e hora do sistema cal <ano> exibe calendrio do ano especificado who exibe lista de todos os usurios ativos no sistema clear limpa a tela Exemplos de comandos interativos: passwd modifica a senha ftp permite transferncia de arquivos mail gerencia correspondncias

3.2 Encerrando a sesso


Voc pode usar dois comandos para encerrar uma sesso, os comandos exit ou logout no prompt do shell. Em alguns sistemas aparecer na tela o prompt de logout e as informaes relativas ao tempo decorrido durante a sesso. importante encerrar devidamente uma sesso pelos seguintes motivos: Segurana : Se voc continuar com a sesso aberta e abandonar o terminal, o sistema fica vulnervel ao acesso de pessoas no autorizadas, e seus arquivos podero ser manipulados por essas pessoas; 22

Cobrana : Se a sua organizao usa os recursos de contabilidade do sistema para cobrar pela sua utilizao, voc ser cobrado pelo tempo que permanecer dentro da sesso.

3.3 Ciclo de Execuo do Comando


O shell analisa a linha do comando separando seus vrios componentes com o uso de es paos em branco. Este procedimento conhecido como parsing (anlise), e composto dos seguintes passos: 1. O shell examina se h algum caracter especial a ser interpretado na linha de comando; 2. Supondo que os caracteres at o primeiro branco se referem a um comando, o shell procura um arquivo executvel (programa) com o mesmo nome; 3. Se o shell localiza o programa, ele verifica se o usurio que fez o pedido tem permisso de acesso para usar o comando; 4. O shell continua a examinar o resto da linha de comando para ver a formatao; 5. Finalmente, ela informa ao kernel para executar o programa, passando todas as opes e argumentos vlidos para o programa; 6. Enquanto o kernel copia o arquivo executvel do disco para a memria e executa-o, o shell permanece inativo at que o programa tenha encerrado. O programa em execuo na memria chamado de processo; 7. Quando o processo termina de ser executado, o controle retorna o shell que exibe novamente o prompt para avisar que est pronta para o prximo comando;

3.4 Alterao da Password:


Os procedimentos de alterao e definio de uma senha so semelhantes, com a exceo de que na alterao o usurio recebe antes o prompt para informar a senha antiga. A nova senha deve ter no mnimo trs caracteres diferentes da senha antiga. O comando passwd verifica a informao sobre a idade da senha nos arquivos /etc./default/passwd e/ou etc./shadow para determinar a validade da senha e se a senha pode ser alterada. Os superusurios no recebem o prompt para fornecer a senha antiga. Exemplo: Altere a sua senha utilizando o comando passwd $passwd Changing password for guest Enter old passwd: Enter new passwd: Re-Type new passwd: Passwd changed $

3.5 Estruturas de Arquivos e Diretrios


Existem 4 tipos bsicos de arquivos em LINUX: Arquivo diretrio; Arquivo convencional; Arquivo de dispositivo; Arquivo simblico ou de ligao; Um arquivo diretrio nada mais do que um tipo de arquivo contendo informaes sobre arquivos que conceitualmente (e no 23

fisicamente) esto contidos nele. Isso significa que o contedo de seus arquivos no est armazenado dentro do diretrio. Assim sendo, no h limite para o tamanho de um diretrio. Teoricamente voc poderia colocar no seu diretrio tantos arquivos quanto quisesse, at o ponto de estourar a capacidade do seu disco. Os dados contidos no arquivo diretrio so apenas os nomes de cada arquivo e seus ponteiro s para uma tabela de informaes de controle de todos os arquivos do sistema. Esta tabela contm informaes administrativas do arquivo, como dados de segurana, tipo, tamanho, datas de acesso e dados que indicam onde ele est gravado no disco. Quando voc vai usar um arquivo, o sistema operacional consu lta o diretrio para verificar se existe no disco um com o nome que voc especificou. Em caso afirmativo, o sistema obtm, da tabela as informaes necessrias para poder manipul-lo. Caso contrrio, o sistema envia uma mensagem informando que no foi possvel encontrar o arquivo. Um diretrio pode conter outros diretri os, aos quais chamamos subdiretrios. Um subdiretrio pode conter outros arquivos e subdiretrios, que tambm podem conter arquivos e subdiretrios e assim por diante. Este um relacionamento pai/filho entre um diretrio e seus arquivos e diretrios subordinados. Cada diretrio pai guarda informaes sobre os arquivos e diretrios que esto a um nvel abaixo dele - seus filhos. Um arquivo convencional um conjunto de caracteres presentes em algum meio de armazenamento, como por exemplo, um disco. Ele pode conter texto para uma carta, cdigo de programa ou qualquer informao armazenada para um futuro uso. Um arquivo de dispositivo, como um diretrio, no contm dados. Ele basicamente um ponteiro para um dispositivo perifrico, como por exemplo, uma unidade de disco, um terminal ou uma impressora. Os arquivos especiais associados aos dispositivos perifricos esto localizados no diretrio /dev. Um arquivo simblico um arquivo convencional que aponta para outro arquivo em qualquer lugar do sistema de arquivos LINUX.

3.6 Diretrios
Todos os arquivos fazem parte de algum diretrio. Assim, eles so mantidos organizadamente. Se todos os arquivos do sistema fossem armazenados em um mesmo lugar, o LINUX levaria muito tempo para verificar todos os arquivos at encontrar aquele que est procurando. Os diretrios so um meio de oferecer endereos dos arquivos, de maneira que o LINUX possa acess-la rpida e facilmente. Ao entrar pela primeira vez em sua conta, voc j est em um subdiretrio do sistema LINUX, chamado seu diretrio de entrada (home directory). A menos que voc crie alguns subdiretrios em sua conta, todos os seus arquivos sero armazenados em seu diretrio de entrada. Teoricam ente, voc pode fazer isso, mas a manuteno de seus arquivos ser mais eficiente se voc criar seu prprio sistema se subdiretrios. Assim ficar mais fcil manter o controle de seus arquivos porque eles estaro agrupados em diretrios por assunto ou por tipo. O LINUX tambm realiza buscas de maneira mais eficiente em diretrios pequenos que nos grandes. Nos captulos seguintes, voc aprender os comandos necessrios para criar diretrios, levar arquivos para outros diretrios e passar de um diretrio para outro. 24

3.7 Diretrio de Entrada


Como mencionamos anteriormente neste captulo, seu diretrio de entrada aquele em que voc colocado quando abre uma sesso em um sistema LINUX. Esse diretrio tem o mesmo nome que seu nome de login. Voc pode pensar em sua conta como uma verso em miniatura do sistema de arquivos do LINUX. No alto de seu sistema pessoal de arquivos, em vez do diretrio raiz est seu diretrio de entrada. Abaixo dele estaro os subdiretrios que voc criar, que podem, por sua vez, se ramificar em subdiretrios e/ou arquivos. Os diretrios de entrada dos usurios so iguais a qualquer outro diretrio de um diagrama de sistema de arquivos. Entretanto, sendo o diretrio principal de sua conta, seu diretrio de entrada tem um status especial. Sempre que voc entra no sistema, o LINUX define uma varivel chamada HOME que identifica o seu diretrio de entrada. O LINUX usa o valor da varivel HOME como ponto de referncia para determinar quais arquivos e diretrios do sistema de arquivos voc pode acessar e tambm para orientar-se para onde lev-lo quando voc deseja mudar de diretrio corrente. O caractere til ( ~ ) representa o diretrio principal do usurio atualmente logado. Voc pode usar o til com a maioria dos comandos do Shell. Por exemplo: cd ~ (muda para o diretrio de entrada)

3.8 Diretrio Corrente


O diretrio corrente, ou de trabalho (working directory), o diretrio em que voc est em um determinado momento. Por exemplo, quando voc entra no sistema, o diretrio corrente sempre seu diretrio de entrada. Se voc passar para um de seus subdiretrios, este passar a ser o diretrio corrente. Durante toda a sesso, o LINUX mantm o controle de seu diretrio corrente. Todos os comandos so executados sobre o diretrio corrente, a menos que voc especifique outro. Por exemplo, qualquer arquivo ou subdiretrio que voc criar ser em princpio criado no diretrio corrente. Sempre que voc digitar ls, ver uma lista dos arquivos e diretrios do diretrio corrente. O caractere ponto (.) representa o diretrio corrente onde o usurio est num determinado momento. Exemplo: Use o comando ls para mostrar o contedo do diretrio corrente . $ls Todos os diretrios do LINUX contm um arquivo chamado . (ponto), que um arquivo especial que representa o diretrio corrente (um sinnimo). Sempre que voc quiser se referir ao diretrio corrente, pode faz-lo usando um ponto (.). Outro arquivo especial, chamado .. (dois pontos) representa o diretrio pai do diretrio corrente (o diretrio ao qual o diretrio corrente pertence). Quando precisar se referir ao diretrio pai do diretrio corrente, voc pode usar dois pontos (..) em vez do nome do diretrio. Exemplos: 1- Use o comando ls para listar o contedo do diretrio corrente: $ls . 2- Use o comando ls para listar o contedo do diretrio pai do diretrio corrente . $ls .. 25

3.9 Diretrio Raiz


Este o diretrio principal do sistema. Dentro dele esto todos os diretrios do sistema. O diretrio Raiz representado por uma "/", assim se voc digitar o comando cd / voc estar acessando este diretrio. Nele esto localizados outros diretrios como o /bin, /sbin, /usr, /usr/local, /mnt, /tmp, /var, /home, etc. Estes so chamados de subdiretrios pois esto dentro do diretrio "/". A estrutura de diretrios e subdiretrios pode ser, por exemplo, identificada da seguinte maneira: / /bin /usr /mnt /tmp /var /home A estrutura de diretrios tambm chamada de rvore de Diretrios porque parecida com uma rvore de cabea para baixo. Cada diretrio do sistema tem seus respectivos arquivos que so armazenados conforme regras definidas pela FHS (FileSystem Hierarchy Standard - Hierarquia Padro do Sistema de Arquivos) verso 2.0, definindo que tipo de arquivo deve ser armazenado em cada diretrio.

3.10Diretrio Superior
O diretrio superior (Upper Directory) identificado por .. (2 pontos). Caso estiver no diretrio /usr/local e quiser listar os arquivos do diretrio /usr voc pode digitar, ls .. , este recurso tambm pode ser usado para copiar, mover arquivos/diretrios, etc.

3.11Diretrio Anterior
O diretrio anterior identificado por "-". til para retornar ao ltimo diretrio usado. Se estive no diretrio /usr/local e digitar cd /lib, voc pode retornar facilmente para o diretrio /usr/local usando cd -.

3.12Caminho na estrutura de diretrios


So os diretrios que teremos que percorrer at chegar ao arquivo ou diretrio que procuramos. Se desejar ver o arquivo /usr/doc/copyright/GPL voc tem duas opes: 1. Mudar o diretrio padro para /usr/doc/copyright com o comando cd /usr/doc/copyright e usar o comando cat GPL 2. Usar o comando "cat" especificando o caminho completo na estrutura de diretrios e o nome de arquivo: cat /usr/doc/copyright/GPL . As duas solues acima permitem que voc veja o arquivo GPL. A diferena entre as duas a seguinte: Na primeira, voc muda o diretrio padro para /usr/doc/copyright (confira digitando pwd) e depois o comando cat GPL. Voc pode ver os arquivos de /usr/doc/copyright com o comando "ls". /usr/doc/copyright o caminho de diretrio que devemos percorrer para chegar at o arquivo GPL. Na segunda, digitado o caminho completo para o "cat" localizar o arquivo GPL: cat /usr/doc/copyright/GPL. Neste caso, voc continuar no diretrio padro (confira digitando pwd). Digitando ls, os arquivos do diretrio atual sero listados. O caminho de diretrios necessrio para dizer ao sistema operacional onde encontrar um arquivo na "rvore" de diretrios. 3.12.1 Exemplo de diretrio Um exemplo de diretrio o seu diretrio de usurio, todos seus arquivos essenciais devem ser colocados neste diretrio. Um diretrio 26

pode conter outro diretrio, isto til quando temos muitos arquivos e queremos melhorar sua organizao. Abaixo um exemplo de uma empresa que precisa controlar os arquivos de Pedidos que emite para as fbricas: /pub/vendas - diretrio principal de vendas /pub/vendas/mes01-99 - diretrio contendo vendas do ms 01/1999 /pub/vendas/mes02-99 - diretrio contendo vendas do ms 02/1999 /pub/vendas/mes03-99 - diretrio contendo vendas do ms 03/1999 o diretrio vendas o diretrio principal. mes01-99 subdiretrio que contm os arquivos de vendas do ms 01/1999. mes02-99 subdiretrio que contm os arquivos de vendas do ms 02/1999. mes03-99 subdiretrio que contm os arquivos de vendas do ms 03/1999. mes01-99, mes02-99, mes03-99 so diretrios usados para armazenar os arquivos de pedidos do ms e ano correspondente. Isto essencial para organizao, pois se todos os pedidos fossem colocados diretamente no diretrio vendas, seria muito difcil encontrar o arquivo do cliente "Joo" Voc deve ter reparado que usei a palavra subdiretrio para mes0199, mes02-99 e mes03-99, porque que eles esto dentro do diretrio vendas. Da mesma forma, vendas um subdiretrio de pub.

3.13Estrutura bsica de diretrios do Sistema Linux


O sistema GNU/Linux possui a seguinte estrutura bsica de diretrios: /bin Contm arquivos programas do sistema que so usados com freqncia pelos usurios. /boot Contm arquivos necessrios para a inicializao do sistema. /cdrom Ponto de montagem da unidade de CD-ROM. /dev Contm arquivos usados para acessar dispositivos (perifricos) existentes no computador. /etc Arquivos de configurao de seu computador local. /floppy Ponto de montagem de unidade de disquetes /home Diretrios contendo os arquivos dos usurios. /lib Bibliotecas compartilhadas pelos programas do sistema e mdulos do kernel. /lost+found Local para a gravao de arquivos/diretrios recuperados pelo utilitrio fsck.ext2. Cada partio possui seu prprio diretrio lost+found. /mnt Ponto de montagem temporrio. (em alguns distribuies linux o cdrom, floppy, partio Windows esto dentro deste diretrio) /proc Sistema de arquivos do kernel. Este diretrio no existe em seu disco rgido, ele colocado l pelo kernel e usado por diversos programas que fazem sua leitura, verificam configuraes do sistema ou modificar o funcionamento de dispositivos do sistema atravs da alterao em seus arquivos. /root Diretrio do usurio root. /sbin Diretrio de programas usados pelo superusurio (root) para administrao e controle do funcionamento do sistema. /tmp Diretrio para armazenamento de arquivos temporrios criados por programas. /usr Contm maior parte de seus programas. Normalmente acessvel somente como leitura. 27

/var

Contm maior parte dos arquivos que so gravados com freqncia pelos programas do sistema, e-mails, spool de impressora, cache, etc.

3.14Nomes e Caminhos
Quando voc digita um comando que opera sobre um arquivo ou diretrio, precisa especificar o nome do arquivo ou do diretrio desejado. O caminho, de um arquivo ou diretrio a lista de todos os diretrios que formam a ligao entre ele e o diretrio raiz. Voc s pode identificar individualmente cada arquivo e diretrio por seu nome e caminho, porque seu nome pode ser idntico ao de outro arquivo em outro local do sistema. Por exemplo, suponha que haja duas contas de usurio, chamadas luciene e alfredo, cada uma contendo um subdiretrio chamado vendas. O LINUX pode diferenciar esses dois subdiretrios por seus caminhos. Um deles seria /.../luciene/vendas e o outro seria /.../alfredo/vendas, onde as reticncias representam os diretrios intermedirios. Embora voc possa se referir a um arquivo ou diretrio dentro de seu diretrio de entrada usando apenas seu nome, o LINUX sempre interpretar o nome do arquivo ou diretrio como seu nome e caminho inteiro, porque ele mantm o controle de seu diretrio corrente e pode preencher a parte do nome de caminho que falta. Alm do caminho absoluto, voc tambm pode usar o caminho relativo, de um arquivo ou diretrio. O caminho relativo no comea com o diretrio raiz, mas com o diretrio mais prximo do diretrio cujo caminho est sendo definido. Para especificar um caminho relativo para seu diretrio de entrada, voc pode comear o caminho com $HOME ou com um ~ (til), que um sinnimo para $HOME. Por exemplo, se seu diretrio de entrada marco, a varivel HOME ter o valor /.../marco, onde as reticncias representam os diretrios entre o diretrio raiz (/) e o diretrio marco. Sempre que voc digitar $HOME como parte de um nome de caminho, o LINUX o interpretar como o nome de caminho completo de seu diretrio de entrada. A varivel HOME funciona em todos os shells. Em C Shell, voc pode tambm usar o caractere ~ (til) no nome de caminho para representar o diretrio de entrada. C Shell define o ~ exatamente como o Bourne Shell define a varivel HOME. Para especificar um caminho a partir do diretrio corrente, voc pode iniciar o caminho com um . (que representa o diretrio corrente), ou com o nome do primeiro subdiretrio naquele caminho. O ponto opcional neste caso porque se o nome de caminho no comear com uma /, o LINUX considera que voc quer que ele comece com o diretrio corrente. Se voc j tiver mudado de diretrio algumas vezes, talvez no esteja seguro de qual o diretrio corrente no momento. Para descobrir, use o comando ls e poder se lembrar do nome do diretrio pela lista dos arquivos que ele contm. Entretanto, uma maneira mais simples de saber qual o diretrio corrente digitar pwd, que ser apresentado mais adiante. O comando pwd imprime o caminho completo do diretrio corrente. Exemplo: Use o comando pwd para mostrar o caminho do diretrio corrente $pwd /home/guest $ 28

3.15Nomes de arquivos e diretrios


As convenes usadas para dar nomes a arquivos e a diretrios esto descritas abaixo. aconselhvel dar nomes descritivos e sugestivos aos arquivos, e diretrios; Os nomes dos arquivos devem comear com uma letra. Evite usar +,ou . como primeiro caractere; Evite usar caracteres especiais , pois estes tm um significado diferente para a Shell. Os caracteres especiais do Shell so os seguintes: ? @ # $ ^ & * ( ) [ ] \ | ; <> ; No use espaos nos nomes dos arquivos. O Shell interpreta os espaos como delimitadores nas linhas de comandos. Ao invs de espaos use um ponto (.) ou um O LINUX faz diferena entre letras maisculas e minsculas. Por exemplo, report, Report, REPORT e rePort so todos nomes distintos de arquivos; Os nomes de arquivos devem ser exclusivos dentro de cada diretrio. Entretanto, o mesmo nome de arquivo pode ser usado em diretrios diferentes; Os nomes dos arquivos podem ter no mximo 14 caracteres de comprimento (em alguns sistemas este tamanho pode chegar a 256 caracteres); Podem ser usadas extenses nos nomes de arquivos a fim dar um melhor significado aos seus nomes. A extenso descritiva (sufixo) geralmente precedida por um ponto. Por exemplo, a extenso .c usada para identificar os programas em linguagem C e .sh para se referir aos programas em Shell; Identificado os arquivos pela cor: Em Em Em Em Em Em verde : azul : branco: azul claro: amarelo: vermelho: arquivos executveis diretrios arquivos atalhos dispositivos (dev device) bibliotecas e arquivos empacotados ou compactados

3.16 Caracteres Especiais do Shell ou Coringas


Alguns caracteres tm significado especial para o Shell. Esses caracteres so interpretados quando o Shell encontra-os durante o processamento da linha de comando.

3.16.1

Substituio do Nome do Arquivo

Quatro caracteres especiais permitem a referncia a grupos de arquivos ou dire trios em uma linha de comando. Este um recurso que permite que voc faa a filtragem do que ser listado, copiado, apagado, etc. Estes caracteres so chamados Meta caracteres ou Coringas. Asterisco O * substitui qualquer conjunto de caracteres , ou seja, faz referncia a um nome completo, ou ao restante de um arquivo ou diretrio . Ponto de interrogao O caractere ? substitui qualquer letra numa determinada posio. 29

Colchetes O smbolo [ ] contm uma lista de caracteres. Um dos caracteres dentro do colchetes ser substitudo. Um hfen separando os caracteres que esto entre colchetes indica um intervalo. Um ! dentro dos colchetes indica o sentido da procura invertido. [a-z] [0-9] - Faz referncia a caracteres de a at z seguido de um caractere de 0 at 9. [a,z] [1,0] - Faz a referncia aos caracteres a e z seguido de um caractere 1 ou 0 naquela posio. [a-z,1,0] - Faz referncia aos caracteres de a at z ou 1 ou 0 naquela posio. A procura de caracteres "Case Sensitive" assim se voc deseja que sejam localizados todos os caracteres alfabticos voc deve usar [a-z,A-Z]. Caso a expresso seja seguida de um ^, faz referncia a qualquer caractere exceto o da expresso. Por exemplo, [^abc] faz referncia a qualquer caractere exceto a, b e c. Chaves O smbolo { } Expande e gera strings para pesquisa de diversos padres de um arquivo/diretrio. X{ab,01} - Faz referncia seqncia de caracteres Xab ou X01 X{a-z,10} Faz referencia a seqncia de caracteres de Xa at Xz e X10. O que diferencia este mtodo de expanso dos demais que a existncia do arquivo/diretrio opcional para gerao do resultado. Isto til para a criao de diretrios. Lembrando que os 4 tipos de curingas ("*", "?", "[]", "{}") podem ser usados juntos. Esses caracteres especiais poupam tempo de digitao. O mais importante que eles podem ser usados para fazer referncia a arquivos cujo nome no se conhece exatamente. Para entender melhor vamos a prtica: Vamos dizer que tenha 5 arquivo no diretrio /usr/teste: teste1.txt, teste2.txt, teste3.txt, teste4.new, teste5.new. Caso deseje listar todos os arquivos do diretrio /usr/teste voc pode usar o coringa "*" para especificar todos os arquivos do diretrio: cd /usr/teste e ls * ou ls /usr/teste/* . No tem muito sentido usar o comando ls com "*" porque todos os arquivos sero listados se o ls for usado sem nenhum Coringa. Agora para listar todos os arquivos teste1.txt, teste2.txt, teste3.txt com exceo de teste4.new , teste5.new, podemos usar inicialmente 3 mtodos: 1. Usando o comando ls *.txt que pega todos os arquivos que comeam com qualquer nome e terminam com .txt. 2. Usando o comando ls teste?.txt, que pega todos os arquivos que comeam com o nome teste , tenham qualquer caractere no lugar do coringa ? e terminem com .txt. Com o exemplo acima teste*.txt tambm faria a mesma coisa, mas se tambm tivssemos um arquivo chamado teste10.txt este tambm seria listado. 3. Usando o comando ls teste[1-3].txt, que pega todos os arquivos que comeam com o nome teste , tenham qualquer caractere entre o nmero 13 no lugar da 6a letra e terminem com .txt. Neste caso se obtm uma filtragem mais exata, pois o coringa ? especifica qualquer caractere naquela posio e [] especifica nmeros, letras ou intervalo que ser usado. Agora para listar somente teste4.new e teste5.new podemos usar os seguintes mtodos: 30

ls *.new ls teste?.new teste,

que lista todos os arquivos que terminam com .new que lista todos os arquivos que comeam com

contenham qualquer caractere na posio do coringa ? e terminem com .new. ls teste[4,5].* que lista todos os arquivos que comeam com teste contenham nmeros de 4 e 5 naquela posio e terminem com qualquer extenso. Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto de cada um. O que pretendi fazer aqui foi mostrar como especificar mais de um arquivo de uma s vez. O uso de curingas ser til ao copiar arquivos, apagar, mover, renomear, e nas mais diversas partes do sistema. Alias esta uma caracterstica do GNU/Linux: permitir que a mesma coisa possa ser feita com liberdade de vrias maneiras diferentes. Outros Exemplos: $ ls *.new Lista todos os arquivos com extenso .new : $ ls *[1 - 5] Lista todos os arquivos cujo nome termine com um numero entre 1 e 5 : $ ls f?? Lista todos os arquivos cujo nome tem trs caracteres e comeam com f :

3.16.2 Marcao do Caractere Especial


Para usar literalmente um caractere especial sem que o Shell interprete seu significado ele deve ser marcado. O Shell trata um caractere especial marcado como um caractere normal. Aspas Quando se coloca um caractere especial entre aspas , o Shell ignora todos os caracteres especiais exceto o cifro ($), o acento grave () e a barra invertida ( \); Apstrofe O apstrofe mais restritivo. Todos os caracteres especiais entre apstrofes so ignorados; Barra invertida Geralmente, a barra invertida faz o mesmo que colocar um caractere entre apstrofes. Quando uma barra invertida usada, ela deve preceder cada caractere a ser marcado; Por exemplo, se voc quiser buscar por um asterisco (*) em seu arquivo /etc/shadow, pode tentar o seguinte comando. # grep * /etc/shadow Infelizmente, esse comando busca pelo nome de cada arquivo no diretrio atual, no arquivo /etc/shadow. O problema que o asterisco um curinga, que busca por quase tudo, dependendo do contexto. onde a barra invertida pode ajudar. Quando voc coloca a barra invertida na frente de um caractere especial, ela escapa o significado daquele caractere. Em outras palavras, de fato, o seguinte comando busca por asteriscos no arquivo /etc/shadow: # grep \* /etc/shadow A barra invertida jeitosa para outras situaes, tal como listar diretrios de duas palavras, como My Documents da Microsoft. Por exemplo, se voc tiver montado um drive Microsoft Windows a partir de um computador remoto no diretrio /mnt/win1., pode tentar listar os arquivos no diretrio com o seguinte comando. # ls /mnt/win1/My\ Documents Acrescentando a barra invertida o Shell ignora o espao em branco. 31

3.17Comandos
Comandos so ordens que passamos ao sistema operacional para executar uma determinada tarefa. Cada comando tem uma funo especfica, devemos saber a funo de cada comando e escolher o mais adequado para fazer o que desejamos, por exemplo: ls - Mostra arquivos de diretrios cd - Para mudar de diretrio Este apostila tem uma lista de vrios comandos organizados por categoria com a explicao sobre o seu funcionamento e as opes aceitas (incluindo alguns exemplos). sempre usado um espao depois do comando para separ-lo de uma opo ou parmetro que ser passado para o processamento. Um comando pode receber opes e parmetros: Opes: As opes so usadas para controlar como o comando ser executado, por exemplo, para fazer uma listagem mostrando o dono, grupo, tamanho dos arquivos voc deve digitar ls -l. Opes podem ser passadas ao comando atravs de um "-" ou "--": - Opo identificada por uma letra. Podem ser usadas mais de uma opo com um nico hfen. O comando ls -l -a a mesma coisa de ls -la -- Opo identificada por um nome. O comando ls --all equivalente a ls -a. Pode ser usado tanto "-" como "--", mas h casos em que somente "-" ou "--" esta disponvel. Parmetros: Um parmetro identifica o caminho, origem, destino, entrada padro ou sada padro que ser passada ao comando. Se voc digitar: ls /usr/doc/copyright , /usr/doc/copyright ser o parmetro passado ao comando ls, neste caso queremos que ele liste os arquivos do diretrio /usr/doc/copyright . normal errar o nome de comandos, mas no se preocupe, quando isto acontecer o sistema mostrar a mensagem command not found (comando no encontrado) e voltar ao aviso de comando. As mensagens de erro no fazem nenhum mal ao seu sistema, somente dizem que algo deu errado para que voc possa corrigir e entender o que aconteceu. No GNU/Linux , voc tem a possibilidade de criar comandos personalizados usando outros comandos mais simples (isto ser visto mais adiante). Os comandos se encaixam em duas categorias: Comandos Internos e Comandos Externos. Por exemplo: "ls -la /usr/doc", ls o comando, -la a opo passada ao comando, e /usr/doc o diretrio passado como parmetro ao comando ls. Os comandos podem ser executados em seqncia (um aps o trmino do outro) se os separarmos com ; (ponto e virgula) . Por exemplo: ls ; pwd; date; echo teste.

3.17.1

Comandos Internos

So comandos que esto localizados dentro do interpretador de comandos (normalmente o Bash) e no no disco. Eles so carregados na memria RAM do computador junto com o interpretador de comandos. Quando executa um comando, o interpretador de comandos verifica primeiro se ele um Comando Interno caso no seja verificado se um Comando Externo. Exemplos de comandos internos so: cd, exit, echo, bg, fg, source, 32

help

3.17.2

Comandos Externos

So comandos que esto localizados no disco. Os comandos so procurados no disco usando o path e executados assim que encontrados.

3.17.3

Aviso de comando (Prompt)

Aviso de comando (ou Prompt), a linha mostrada na tela para digitao de comandos que sero passados ao interpretador de comandos para sua execuo. A posio onde o comando ser digitado marcada um "trao" piscante na tela chamado de cursor . Tanto em shells texto como em grficos necessrio o uso do cursor para sabermos onde iniciar a digitao de textos e nos orientarmos quanto posio na tela. O aviso de comando do usurio root identificado por uma "#" (tralha , cerquilha ), e o aviso de comando de usurios identificado pelo smbolo "$". Isto padro em sistemas UNIX. Voc pode retornar comandos j digitados pressionando as teclas Seta para cima / Seta para baixo. A tela pode ser rolada para baixo ou para cima segurando a tecla SHIFT e pressionando PGUP ou PGDOWN. Isto til para ver textos que rolaram rapidamente para cima. Abaixo algumas dicas sobre a edio da linha de comandos (no necessrio se preocupar em decor-los): Pressione a tecla Back Space (" ") para apagar um caractere esquerda do cursor. Pressione a tecla Del para apagar o caractere acima do cursor. Pressione CTRL+A para mover o cursor para o inicio da linha de comandos. Pressione CTRL+E para mover o cursor para o fim da linha de comandos. Pressione CTRL+U para apagar o que estiver esquerda do cursor. O contedo apagado copiado para uso com CTRL+y. Pressione CTRL+K para apagar o que estiver direita do cursor. O contedo apagado copiado para uso com CTRL+y. Pressione CTRL+L para limpar a tela e manter o texto que estiver sendo digitado na linha de comando (parecido com o comando clear). Pressione CTRL+Y para colocar o texto que foi apagado na posio atual do cursor.

3.17.4

Interpretador de comandos

Tambm conhecido como "Shell". o programa responsvel em interpretar as instrues enviadas pelo usurio e seus programas ao sistema operacional (o kernel). Ele que executa comandos lidos do dispositivo de entrada padro (teclado) ou de um arquivo executvel. a principal ligao entre o usurio, os programas e o kernel. O GNU/Linux possui diversos tipos de interpretadores de comandos, entre eles posso destacar o bash, ash, csh, tcsh, sh, etc. Entre eles o mais usado o bash. O interpretador de comandos do DOS, por exemplo, o command.com. Os comandos podem ser enviados de duas maneiras para o interpretador: interativa e no-interativa: 33

Interativa Os comandos so digitados no aviso de comando e passados ao interpretador de comandos um a um. Neste modo, o computador depende do usurio para executar uma tarefa, ou prximo comando. No-interativa So usados arquivos de comandos criados pelo usurio (scripts) para o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um e dependendo do trmino do comando, o script pode checar qual ser o prximo comando que ser executado e dar continuidade ao processamento. Este sistema til quando temos que digitar por vrias vezes seguidas um mesmo comando ou para compilar algum programa complexo. O Shell Bash possui ainda outra caracterstica interessante: A complementao dos nomes. Isto feito pressionando-se a tecla TAB. Por exemplo, se digitar "ls tes" e pressionar <tab>, o Bash localizar todos os arquivos que iniciam com "tes" e completar o restante do nome. Caso a complementao de nomes encontre mais do que uma expresso que satisfaa a pesquisa, ou nenhuma, emitido um beep. Se voc apertar novamente a tecla TAB imediatamente depois do beep, o interpretador de comandos ir listar as diversas possibilidades que satisfazem a pesquisa, para que voc possa escolher a que lhe interessa. A complementao de nomes funciona sem problemas para comandos internos. Exemplo: ech (pressione TAB). ls /vm(pressione TAB)

3.17.5

Terminal Virtual (console)

Terminal (ou console) o teclado e tela conectados em seu computador. O GNU/Linux faz uso de sua caracterstica multi-usuria usando os "terminais virtuais". Um terminal virtual uma segunda seo de trabalho completamente independente de outras, que pode ser acessada no computador local ou remotamente via telnet, rsh, rlogin, etc. No GNU/Linux, em modo texto, voc pode acessar outros terminais virtuais segurando a tecla ALT e pressionando F1 a F6. Cada tecla de funo corresponde a um nmero de terminal do 1 ao 6 (o stimo usado por padro pelo ambiente grfico X). O GNU/Linux possui mais de 63 terminais virtuais, mas apenas 6 esto disponveis inicialmente por motivos de economia de memria RAM (cada terminal virtual ocupa aproximadamente 350 Kb de memria RAM, desative a quantidade que no estiver usando para liberar memria RAM para uso de outros programas!) . Se estiver usando o modo grfico, voc deve segurar CTRL+ ALT enquanto pressiona uma tela de <F1> a <F6>. Um exemplo prtico: Se voc estiver usando o sistema no Terminal 1 com o nome "joao" e desejar entrar como "root" para instalar algum programa, segure ALT enquanto pressiona <F2> para abrir o segundo terminal virtual e faa o login como "root". Ser aberta uma nova seo para o usurio "root" e voc poder retornar a hora que quiser para o primeiro terminal pressionando ALT+<F1>.

34

4 Fundamentos do Linux
Abaixo temos uma relao de comandos bsicos para do Linux, seguidos de uma descrio e exemplos. Porem, assim como conhecer os comandos do Linux, importante tambm saber como acessar seus recursos de ajuda, pois isso te desobriga de decorar as seqncias das funcionalidades extras. Sabendo usar todos os recursos, voc certamente ter boa produtividade em suas tarefas no Linux. A melhor forma de conhecer os parmetros adicionais de cada comando consultando as informaes de ajuda. Para isso, pode-se usar o 35

recurso do comando man (manual), com a seguinte sintaxe: man [comando] . Exemplo: $ man pwd ; $ man cp Tambm possvel utilizar o comando help. Para usar o help e obter detalhes do comando a sintaxe : [comando] --help. Exemplo: $ pwd --help; $ cp help Ou ainda o comando info. Exemplo: $ info pwd ; $ info cp

4.1 Comandos para manipulao de diretrios


4.1.1 ls - (ou dir) Lista diretrios e seus contedos.

O comando ls (list) verstil. Ele no apenas permite que voc relacione os arquivos e diretrios em seu diretrio atual, mas com as opes adequadas, tambm possvel encontrar as permisses e tamanho de um arquivo. O comando permite que voc verifique a propriedade, diferencie entre tipos de arquivos e classifique o resultado de vrias maneiras. Podemos utilizar o ls acompanhado ou no das opes de listagem (flags). O retorno depender das opes fornecidas, porm ser sempre uma listagem dos arquivos, diretrios, links simblicos e hard links de um diretrio qualquer. Normalmente o contedo de um diretrio listado em ordem alfabtica, um item por linha. As diversas opes do comando ls permitem adaptar o formato da listagem. Se nada for especificado em nomes todos os itens do diretrio corrente so listados. Entretanto em nomes possvel determinar mscaras (filtros) para selecionar padres de nomes de itens a serem listados. ls [opes] [caminho/arquivo ] [caminho1/arquivo1 ] ... onde: caminho/arquivo caminho1/arquivo1 Diretrio/arquivo que ser listado. Outro Diretrio/arquivo que ser listado. Podem ser feitas vrias listagens de uma s vez.

opes -a (all) Lista todos os arquivos (inclusive os ocultos que comeam com ponto) de um diretrio. -d (directory) Lista os nomes dos diretrios ao invs do contedo. -f No classifica a listagem. -F Insere um caractere aps arquivos executveis ('*'), diretrios ('/'), soquete ('='), link simblico ('@') e pipe ('|'). Seu uso til para identificar de forma fcil tipos de arquivos nas listagens de diretrios. -G Oculta a coluna de grupo do arquivo. -h Mostra o tamanho dos arquivos em Kbytes, Mbytes, Gbytes. -l Usa o formato longo para listagem de arquivos. Lista as permisses, data de modificao, donos, grupos, etc. -r Lista em ordem alfabtica reversa, ou em ordem de hora/data -R Lista diretrios e sub-diretrios recursivamente. -s Mostra o tamanho em blocos de cada item; -t Ordena os itens por hora/data de modificao; -u Usada em conjunto com - t para ordenar pela hora/data do ltimo acesso, ao invs de pela ltima modificao; 36

-c

Usada em conjunto com - t para ordenar pela hora/data da ltima modificao do item na tabela de arquivos do Sistema de Arquivos; -x Lista em vrias colunas, ordenando os itens em linhas ao invs de em colunas; --full-time Lista data e hora completa. Classificao da listagem. A listagem pode ser classificada usando-se as seguintes opes: -f No classifica, e usa -au para listar os arquivos. -r Inverte a ordem de classificao. -c Classifica pela data de alterao. -X Classifica pela extenso. -U No classifica, lista os arquivos na ordem do diretrio. Uma listagem feita com o comando ls -la normalmente mostrada da seguinte maneira: -rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste Abaixo as explicaes de cada parte: -rwxr-xr-- So as permisses de acesso ao arquivo teste. A primeira letra (da esquerda) identifica o tipo do arquivo, se tiver um d um diretrio, se tiver um "-" um arquivo normal. As permisses de acesso so explicadas em detalhes no captulo: permisses de acesso a arquivos e diretrios. 1 Se for um diretrio, mostra a quantidade de subdiretrios existentes dentro dele. Caso for um arquivo, ser 1. gleydson Nome do dono do arquivo teste. user Nome do grupo que o arquivo teste pertence. 8192 Tamanho do arquivo (em bytes). nov Ms da criao/ ltima modificao do arquivo. 4 Dia que o arquivo foi criado. 16:00 Hora em que o arquivo foi criado/modificado. Se o arquivo foi criado h mais de um ano, em seu lugar mostrado o ano da criao do arquivo. teste Nome do arquivo. Caso o caminho no seja informado, ser considerado o diretrio atual. Seguido do caractere coringa * serve para indicar que um destino igual a todos os arquivos e diretrios. Alem do asterisco podem ser usados outros caracteres coringas como ?, \, [ ]. Exemplos do uso do comando ls: $ ls Lista o contedo do diretrio corrente, em colunas, sem mostrar os atributos dos arquivos listados. $ ls /bin /sbin Lista os arquivos do diretrio /bin e /sbin $ ls -a Lista os diretrios, arquivos ocultos e executveis). $ ls -l Lista o contedo do diretrio corrente detalhadamente , cada arquivo em uma linha, mostrando os atributos dos arquivos listados). $ ls -la /bin Listagem completa dos arquivos do diretrio /bin inclusive os ocultos. $ ls l | more Idem anterior, paginando $ ls -R Lista os arquivos do diretrio e subdiretrios, inclusive ocultos. $ ls .. Lista o contedo do diretrio acima .. . 37

$ ls l /usr/local | more Lista o diretrio especificado, como ls l, paginando. $ ls lh Lista o diretrio exibindo o tamanho em K, M ou G. $ ls *a.* Mostrar somente os arquivos que terminam com a letra a antes do .. $ ls a???.* Mostrar todos os arquivos que comecem com a letra a e que aps a letra a existam exatamente 3 caracteres.) $ ls ????a.?? Mostrar arquivos que tenham exatamente 4 caracteres antes da letra a. Os arquivos devero terminar com a letra a e Ter extenso com exatamente 2 caracteres. $ ls * Mostrar todos os arquivos. $ ls *.a* Mostrar todos os arquivos cuja extenso comece com a.

4.1.2

cd Mudando o diretrio de trabalho

O comando cd (change directory) utilizado para mudar o diretrio de trabalho corrente. No h opes para este comando. Se voc no especificar um diretrio o comando cd far com que o seu diretrio de entrada (home directory) se torne o seu diretrio corrente. Se for um subdiretrio do seu diretrio corrente, basta informar o nome dele. Caso contrrio voc pode informar o nome relativo ou absoluto do diretrio para o qual voc quer mudar. O Linux, assim como qualquer Unix, utiliza-se de barras comuns e no invertidas como em outros sistemas, para informar sobre a rvore de diretrios. Voc precisa ter a permisso de execuo para entrar no diretrio. cd [/diretrio/caminho de destino] onde: diretrio - diretrio que deseja entrar. Exemplos: Usando cd sem parmetros ou cd ~, voc retornar ao seu diretrio de usurio (diretrio home). $ cd ~ retornar ao diretrio de entrada (diretrio home do usurio) $ cd / retornar ao diretrio raiz. $ cd retornar ao diretrio anteriormente acessado. $ cd .. sobe um diretrio. $ cd ../.. sobe dois diretrios $ cd ../[diretrio ] sobe um diretrio e entra imediatamente no prximo (por exemplo, quando voc est em /usr/sbin , voc digita cd ../bin, o comando cd retorna um diretrio (/usr ) e entra imediatamente no diretrio bin (/usr/bin ).

4.1.3

pwd Identificao do diretrio corrente

O comando pwd (present working directory) retorna o nome do diretrio corrente ou de diretrio de trabalho (working directory) identificando o caminho completo do diretrio a partir da raiz. No possui nenhuma opo ou argument o. Voc pode utiliz-lo para se situar no sistema de arquivos. Por exemplo, sempre til verificar o diretrio corrente antes de criar ou remover arquivos e diretrios. Do mesmo modo, o pwd til para confirmar o diretrio corrente aps vrias trocas de diretrios. 38

4.1.4

mkdir Criando diretrios

O comando mkdir (make directory) utilizado para criar diretrios no sistema . Um diretrio usado para armazenar arquivos de um determinado tipo. O diretrio pode ser entendido como uma pasta onde voc guarda seus papeis (arquivos). Nos diretrios podemos agrupar informaes afins, isto , arquivos que possuem alguma inter-relao. O nome do diretrio deve ser significativo e permitir um acesso e uma localizao rpida dos arquivos armazenados no seu sistema de arquivos. Os nomes dos diretrios a serem criados so passados como argumentos para o comando. Estes nomes podem ter at 255 caracteres em algumas verses do Sistema Operacional UNIX, e devem ser nicos, isto , no pode haver dois diretrios com mesmo nome dentro de um mesmo subdiretrio, nem mesmo um arquivo e um diretrio iguais em um mesmo subdiretrio. Os novos diretrios normalmente so criados com modo de permisso 777 (permisso para leitura, escrita e execuo). mkdir [opes] [caminho/diretrio ] [caminho1/diretrio1 ] onde: caminho Caminho onde o diretrio ser criado. diretrio Nome do diretrio que ser criado. opes: -m (modo) Especifica o modo de permisso de acesso para o diretrio que est sendo criado; -p Cria os diretrios pai citados no nome do diretrio que est sendo criado; Para criar um novo diretrio, voc deve ter permisso de Por exemplo, para criar um diretrio em /tmp com o nome de ser usado para gravar arquivos de teste, voc deve usar o "mkdir /tmp/teste". Podem ser criados mais de um diretrio com um nico (mkdir /tmp/teste /tmp/teste1 /tmp/teste2). gravao. teste que comando comando

Exemplos: 1. Crie um diretrio chamado teste com o seguinte modo de permisso : 711 $mkdir - m 711 teste $ls - l total 1 drwx--x-- x 2 guest users 1024 May 15 21:27 teste/ 2. Crie um diretrio chamado curso com um diretrio filho chamado aula1 $mkdir - p curso/aula1 $ls - l total 2 drwx--x-- x 2 guest users 1024 May 15 21:27 teste/ drwxr- xr- x 3 guest users 1024 May 15 21:33 curso/ $ls - l curso total 1 drwxr- xr- x 2 guest users 1024 May 15 21:33 aula1/ Notas: 39

As opes -p e -m no esto disponveis em todos os sistemas; Veja comando umask para alterar permisses padro na criao de diretrios

4.1.5

rmdir Removendo diretrios

O comando rmdir (remove directory) utilizado para remover um ou mais diretrios vazios. O diretrio que ser removido deve estar vazio e no pode ser o diretrio corrente. Apenas o usurio que criou o diretrio ou um superusurio pode remover um diretrio, a no ser que o diretrio tenha acesso de gravao para outros usurios. possvel apagar vrios nveis de diretrios, se o diretrio que voc remover apagar os outros. Os nomes dos diretrios podem ser especificados com caminhos absolutos ou relativos . rmdir [caminho/diretrio ] [caminho1/diretrio1 ] onde: caminho Caminho do diretrio que ser removido. diretrio Nome do diretrio que ser removido. Opes: -p Remove diretrios citados e respectivos diretrios pai que ficarem vazios com a remoo; Exemplo: Remova o diretrio aula1, se o diretrio pai ficar vazio remova o : $rmdir -p curso/aula1 necessrio que esteja um nvel acima do diretrio(s) que ser(o) removido(s). Para remover diretrios que contenham arquivos, use o comando rm com a opo r.

4.2 - Comandos para manipulao, gerenciamento e configurao de arquivos e/ou diretrios


4.2.1 touch Criando arquivos vazios

O comando touch utilizado para criar um arquivo vazio. H ocasies em que voc simplesmente precisa configurar um arquivo vazio em Linux. Por exemplo, antes de poder ativar a cota para um usurio ou um grupo, preciso criar um arquivo vazio. O comando touch tambm pode ser usado para mudar ou atualizar a data e a hora que um arquivo ou diretrio foi criado. touch [opes] [arquivos] Onde: arquivos Arquivos que sero criados ou tero sua data/hora modificados. opes -t MMDDhhmm[ANO.segundos] Usa Minutos (MM), Dias (DD), Horas (hh), minutos (mm) e opcionalmente o ANO e segundos para modificao do(s) arquivos ao invs da data e hora atual. -a, --time=atime Faz o touch mudar somente a data e hora do acesso ao arquivo. Exemplos: $ touch teste Cria o arquivo teste caso ele no existir. 40

$ touch -t 10011230 teste

Altera da data e hora do arquivo para 01/10 e 12:30. $ touch -t 120112301999.30 teste Altera da data, hora ano, e segundos do arquivo para 01/12/1999 e 12:30:30. $ touch -t 12011200 * Altera a data e hora do arquivo para 01/12 e 12:00.

4.2.2

cat Visualizando o contedo de um arquivo

O comando concatenador (cat) utilizado para exibir o contedo de um arquivo binrio ou texto na sada padro, que inicialmente ser seu monitor . possvel utilizar o cat para criar, exibir e juntar arquivos. Quando se utiliza o cat para concatenar arquivos, os arquivos da origem permanecem intactos. cat [opes] [diretrio/arquivo ] [diretrio1/arquivo1 ] Onde diretrio/arquivo Localizao do arquivo que deseja visualizar o contedo. opes -n Mostra o nmero das linhas enquanto o contedo do arquivo mostrado. -s No mostra mais que uma linha em branco entre um pargrafo e outro. L a entrada padro. O comando cat trabalha com arquivos texto. Use o comando zcat para ver diretamente arquivos compactados com gzip. Exemplo: $ cat n /etc/mtools. conf |less $ cat -n .bash_profiles

4.2.3

tac - Visualizando o contedo de um arquivo reversamente

Mostra o contedo de um arquivo binrio ou texto (como o cat) s que em ordem inversa. tac [opes] [diretrio/arquivo ] [diretrio1/arquivo1 ] onde: diretrio/arquivo - Localizao do arquivo que deseja visualizar o contedo opes -s [string] Usa o [string] como separador de registros. L a entrada padro. Exemplo: $ tac /etc/mtools. conf |less

4.2.4

rm - Removendo arquivos e/ou diretrios

o comando rm remove arquivos. Tambm pode ser usado para apagar diretrios e subdiretrios vazios ou que contenham arquivos. rm[opes][caminho][arquivo/diretrio ] [arquivo1/diretrio1 ] [caminho1] 41

onde: caminho

Localizao do arquivo que deseja apagar. Se omitido, assume que o arquivo esteja no diretrio atual. arquivo/diretrio Arquivo que ser apagado. opes -i Pergunta antes de remover, esta ativada por padro. -v Mostra os arquivos na medida em que so removidos. -r Usado para remover arquivos em subdiretrios. Esta opo tambm pode ser usada para remover subdiretrios. -R Remove recursivamente o contedo do diretrio no diferenciando arquivos ou subdiretrios e seus respectivos contedos. -f Remove os arquivos sem perguntar. -- arquivo Remove arquivos/diretrios que contm caracteres especiais. O separador "--" funciona com todos os comandos do Shell e permite que os caracteres especiais como "*", "?", "-", etc. sejam interpretados como caracteres comuns. Use com ateno o comando rm, uma vez que os arquivos e diretrios forem apagados, eles no podero ser mais recuperados. Exemplos: $ rm teste.txt Apaga o arquivo teste.txt no diretrio atual. $ rm *.txt Apaga todos os arquivos do diretrio atual que terminam com .txt. $ rm *.txt teste.novo Apaga todos os arquivos do diretrio atual que terminam com .txt e tambm o arquivo teste.novo . $ rm -rf /tmp/teste/* Apaga todos os arquivos e sub-diretrios do diretrio /tmp/teste mas mantm o sub-diretrio /tmp/teste. $ rm -rf /tmp/teste Apaga todos os arquivos e sub-diretrios do diretrio /tmp/teste, inclusive /tmp/teste . $ rm -f -- --arquivo-- Remove o arquivo de nome --arquivo-- . $ rm * -f Remove todos os arquivos (*), sem solicitar confirmao (f). $ rm ../* -f Remove todos os arquivos do diretrio acima ( ../* ), sem solicitar confirmao ( -f ).

4.2.5

cp Copiando arquivos

O comando cp (copy) copia, isto , cria uma cpia de um arquivo com outro nome ou em outro diretrio sem afetar o arquivo original. Voc pode usar esse comando para criar cpias de segurana de arquivos importantes ou para copiar arquivos que queira modificar. Se h algum arquivo que voc quer ter em mais de um diretrio, pode usar o comando cp para copi-lo para outros diretrios. Na linha de comando, arquivo - origem o nome do arquivo que voc quer copiar e arquivo - destino o nome que voc quer dar cpia. Lembre - se: se voc fizer uma cpia de um arquivo no mesmo diretrio, ela no poder ter o mesmo nome de arquivo - origem. Com este comando voc pode acidentalmente perder arquivos se j existir um arquivo com o nome arquivo -destino, neste caso o comando cp escreve o novo arquivo por cima do antigo. cp [opes] [origem ] [destino] onde: 42

origem destino

Arquivo que ser copiado. Podem ser especificados mais de um arquivo para ser copiado usando "Curingas" . O caminho ou nome de arquivo onde ser copiado. Se o destino for um diretrio, os arquivos de origem sero copiados para dentro do diretrio.

opes -i Pergunta antes de substituir um arquivo existente. -f No pergunta, substitui todos os arquivos caso j exista. -r Copia recursivamente arquivos dos diretrios e subdiretrios da origem para o destino. recomendvel usar -R ao invs de -r. -R Copia recursivamente arquivos e sub-diretrios (como a opo -r) e tambm os arquivos especiais FIFO e dispositivos. -v Mostra os arquivos enquanto esto sendo copiados. -s Cria link simblico ao invs de copiar. -l Faz o link no destino ao invs de copiar os arquivos. -p Preserva atributos do arquivo, se for possvel. -u Copia somente se o arquivo de origem mais novo que o arquivo de destino ou quando o arquivo de destino no existe. O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos origem e destino tero o mesmo contedo aps a cpia. Exemplos: $ cp teste.txt teste1.txt Copia o arquivo teste.txt para teste1.txt . $ cp teste.txt /tmp Copia o arquivo teste.txt para dentro do diretrio /tmp. $ cp * /tmp Copia todos os arquivos do diretrio atual para /tmp. $ cp /bin/* . Copia todos os arquivos do diretrio /bin para o diretrio em que nos encontramos no momento. $ cp [/caminho/arquivo(1) .. arquivo(n)] [/caminho] Copia N arquivos ao mesmo tempo. $ cp * [/caminho/diretrio] Copia todos os arquivos do diretrio atual para o diretrio especificado. $ cp ../diretrio-mesmo-nvel/* . Copia tudo do diretrio de mesmo nvel do atual (../diretrio-mesmo-nvel/*) para o diretrio corrente ( . ). $ cp * .. Copia tudo do diretrio corrente (*) para o diretrio acima (..). $cp -R Copia todo o contedo do diretrio, inclusive subdiretrios. $ cp -R /bin /tmp Copia o diretrio /bin e todos os arquivos/subdiretrios existentes para o diretrio /tmp. $ cp -R /bin/* /tmp Copia todos os arquivos do diretrio /bin (exceto o diretrio /bin) e todos os arquivos/subdiretrios existentes dentro dele para /tmp. $ cp -R /bin /tmp Copia todos os arquivos e o diretrio /bin para /tmp. $ cp u file1 file2 Se voc j tiver um arquivo chamado file2 e file1 for mais novo, esse comando sobre grava o seu contedo sem informar. $ cp arq teste de cpia $ cp arq teste\ de\ cpia Copia o arquivo arq para um chamado teste de cpia. Observe que foi utilizada a aspa ou a barra invertida para desconsiderar os espaos em branco.

4.2.6

mv Movendo ou Renomeando arquivos


43

O comando mv (move) funciona com arquivos da mesma maneira como funciona com diretrios. Pode-se usar mv para renomear um arquivo ou para mov-lo para outro diretrio, dependendo dos argumentos que voc utilizar. O processo semelhante ao do comando cp mas o arquivo de origem apagado aps o trmino da cpia. Na linha de comando, a origem o nome do arquivo cujo nome voc deseja mudar, e o destino o novo nome para este arquivo. Se arquivo destino j existir, mv primeiro remove o arquivo j existente e depois renomeia arquivo origem com o novo nome. Para evitar este problema, voc tem duas opes: 1. Examinar o contedo do diretrio antes de renomear um arquivo, para verificar se o novo nome que voc deseja atribuir j existe; 2. Usar a opo -i (interactive) (presente em alguns sistemas) que permite uma confirmao da remoo de um arquivo antes do comando mv remov-lo. Se arquivo destino for o nome de um diretrio presente no diret rio corrente, ento o comando mv entende que arquivo origem deve ser movido para o diretrio arquivo destino, e no que este deve ser eliminado e substitudo por arquivo origem. Se voc mover um arquivo para um novo diretrio, o arquivo ter o mesmo nome da origem, a menos que voc especifique o novo nome tambm, dando o nome do caminho (relativo ou absoluto) antes do nome do arquivo. mv [opes] [origem] [destino] Onde: origem Arquivo/diretrio de origem. destino Local onde ser movido ou novo nome do arquivo/diretrio. opes -f Substitui o arquivo de destino sem perguntar. -i Pergunta antes de substituir. o padro. -v Mostra os arquivos que esto sendo movidos. -u Move somente arquivos antigos, ou novos arquivos. Exemplos: $ mv teste.txt teste1.txt Muda o nome do arquivo teste.txt para teste1.txt . $ mv teste.txt /tmp Move o arquivo teste.txt para /tmp. Lembre-se que o arquivo de origem apagado aps ser movido. $ mv teste.txt teste.new (supondo que teste.new j exista) Copia o arquivo teste.txt por cima de teste.new e apaga teste.txt aps terminar a cpia. $ mv teste* Dir1/ Move mltiplos arquivos para o diretrio Dir1 $ mv [/caminho1/ arquivo1] [/caminho2/arquivo2] Move o arquivo, renomeando. $ mv [/caminho/arquivo(1) .. arquivo(n)] [/caminho] Move N arquivos do caminho-origem para o caminho destino

4.2.7

file Identificando arquivos

Voc j deve ter percebido em alguma oportunidade que alguns arquivos no podem ser listados na tela do micro, pois possuem cdigos executveis ou outros dados no adequados para serem mostrados na 44

tela. O micro pode at mesmo ficar "preso" como resultado da tentativa de exibir um arquivo desses. O comando file pode ser utilizado para verificar o tipo de um arquivo, sem que seja preciso list-lo para saber seu contedo. O comando file toma como argumentos uma lista de nomes de arquivos ou diretrios (ou caminhos relativos/absolutos) especificados na linha de comando, e examina- os, relatando que tipo de arquivo so: arquivo de texto, de programa em C, diretrio, etc. file [opes] [alvo] opes -f Usado para verificar uma lista de nomes contida dentro de um diretrio . Assim voc no precisa passar todos os arquivos que voc deseja investigar na linha de comando; Exemplos: 1. Descubra o tipo do arquivo curso $ file curso curso : Directory $ 2. Descubra o tipo de cada arquivo contido no arquivo teste.file : $ file - f teste.file curso : Directory teste : Directory texto : ascii text $

4.2.8 more Paginando a sada padro


Permite fazer a paginao de arquivos ou da entrada padro. O comando more pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela ocupada, o more efetua uma pausa e permite que voc pressione Enter ou espao para continuar avanando no arquivo sendo visualizado. Para sair do more pressione q. more [arquivo] Onde: arquivo o arquivo que ser paginado. Para visualizar diretamente arquivos texto compactados pelo gzip .gz use o comando zmore. Exemplos: $ more /etc/passwd $ more /etc/inittab $ cat /etc/passwd|more

4.2.9 less Paginando a sada padro


Permite fazer a paginao de arquivos ou da entrada padro. O comando less pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela ocupada, o less efetua uma pausa (semelhante ao more) e permite que voc pressione Seta para 45

Cima e Seta para Baixo ou PgUP/PgDown para fazer o rolamento da pgina. Para sair do less pressione q. less [arquivo] Onde: arquivo o arquivo que ser paginado. Para visualizar diretamente arquivos texto utilitrio gzip (arquivos .gz), use o comando zless. Exemplos: $ less /etc/passwd , $ cat /etc/passwd|less compactados pelo

4.2.10 sort Ordenando um texto


O comando sort utilizado para organizar as linhas de um arquivo texto ou da entrada padro. A organizao feita por linhas e as linhas so divididas em campos que a ordem que as palavras aparecem na linha separadas por um delimitador (normalmente um espao). sort [opes] [arquivo] Onde: Arquivo o nome do arquivo que ser organizado. Caso no for especificado, ser usado o dispositivo de entrada padro (normalmente o teclado ou um "|").

opes -b Ignora linhas em branco. -d Somente usa letras, dgitos e espaos durante a organizao. -f Ignora a diferena entre maisculas e minsculas. -r Inverte o resultado da comparao. -n Caso estiver organizando um campo que contm nmeros, os nmeros sero organizados na ordem aritmtica. Por exemplo, se voc tiver um arquivo com os nmeros 100 10 50 Usando a opo -n, o arquivo ser organizado desta maneira: 10 50 100 Caso esta opo no for usada com o sort, ele organizar como uma listagem alfabtica (que comeam de a at z e do 0 at 9) 10 100 50 -c Verifica se o arquivo j esta organizado. Caso no estiver, retorna a mensagem "disorder on arquivo". -o arquivo Grava a sada do comando sort no arquivo. -m arquivo1 arquivo2 Combina o contedo de arquivo1 e arquivo2 gerando um nico arquivo. Os dois arquivos precisam estar ordenados antes de se utilizar esta opo. -t caractere Usa caractere como delimitador durante a organizao de linhas. Por padro usado um espao em branco como delimitador de caracteres. 46

+num1 -num2 Especifica qual o campo dentro na linha que ser usado na organizao. O(s) campo(s) usado(s) para organizao estar entre +num1 e +num2. O delimitador padro utilizado um espao em branco (use a opo -t para especificar outro). A contagem iniciada em "0". Caso no for especificada, a organizao feita no primeiro campo. Caso -num2 no seja especificado, a organizao ser feita usando a coluna +num1 at o fim da linha. Abaixo, exemplos de uso do comando sort: $ sort texto.txt Organiza o arquivo texto.txt em ordem crescente. $ sort texto.txt r Organiza o contedo do arquivo texto.txt em ordem decrescente. $ cat texto.txt|sort Faz a mesma coisa que o primeiro exemplo, s que neste caso a sada do comando cat redirecionado a entrada padro do comando sort. $ sort -f texto.txt Ignora diferenas entre letras maisculas e minsculas durante a organizao. $ sort +1 -3 texto.txt Organiza o arquivo texto.txt usando como referncia a segunda at a quarta palavra (segundo ao quarto campo) que constam naquela linha. $ sort -t : +2 -3 passwd Organiza o arquivo passwd usando como referncia a terceira at a quarta palavra (terceiro ao quarto campo). Note que a opo -t especifica o caractere ":" como delimitador de campos ao invs do espao. Neste caso, o que estiver aps ":" ser considerado o prximo campo.

4.2.11 head Verificando o nicio de um arquivo


Utilizamos o comando head para verificar as 10 primeiras linhas de um arquivo texto. head [opes] Onde: -c [numero] Mostra o [numero] de bytes do inicio do arquivo. -n [numero] Mostra o [numero] de linhas do inicio do arquivo. Caso no for especificado, o head mostra as 10 primeiras linhas. Exemplos: $ head teste.txt , $ head -n 20 teste.txt .

4.2.12 tail - Verificando o final de um arquivo


Utilizamos o comando tail para verificar as ltimas 10 linhas de um arquivo texto. tail [opes] Onde: -c [numero] Mostra o [numero] de bytes do final do arquivo. 47

-n [numero]

Mostra o [numero] de linhas do final do arquivo.

Exemplos: $ tail teste.txt , $ tail -n 20 teste.txt

4.2.13 ln Criando um link


Cria links para arquivos e diretrios no sistema. O link um mecanismo que faz referncia (um ponteiro) a outro arquivo ou diretrio em outra localizao. O link em sistemas GNU/Linux faz referncia real ao arquivo/diretrio podendo ser feita cpia do link (ser copiado o arquivo alvo), entrar no diretrio (caso o link faa referncia a um diretrio), etc. ln [opes] [origem] [link] Onde: origem Diretrio ou arquivo de onde ser feito o link. link Nome do link que ser criado. opes -s Cria um link simblico. Usado para criar ligaes com o arquivo ou diretrio de destino. -v Mostra o nome de cada arquivo antes de fazer o link. -d Cria um hard link para diretrios. Somente o root pode usar esta opo. Existem 2 tipos de links: simblicos e hardlinks. O link simblico cria um arquivo especial no disco (do tipo link) que tem como contedo o caminho para chegar at o arquivo alvo (isto pode ser verificado pelo tamanho do arquivo do link). Use a opo -s para criar links simblicos. O hardlink faz referncia a uma cpia linkada do arquivo original, desta forma ele ser perfeitamente idntico, inclusive nas permisses de acesso, ao arquivo original, possuindo assim uma cpia do contedo alm do apontador para o original, assim qualquer alterao feita no contedo do arquivo estar automaticamente atualizando o link. Ao contrrio dos links simblicos, no possvel fazer um hardlink para um diretrio ou fazer referncia a arquivos que estejam em parties diferentes. Observaes: Se for usado o comando rm com um link, somente o link ser removido. Se for usado o comando cp com um link, o arquivo original ser copiado ao invs do link. Se for usado o comando mv com um link, a modificao ser feita no link. Se for usado um comando de visualizao (como o cat), o arquivo original ser visualizado. Exemplos: $ ln -s /dev/ttyS1 /dev/modem $ ln -s /tmp ~/tmp Cria o link /dev/modem para o arquivo /dev/ttyS1. Cria um link ~/tmp para o diretrio /tmp.

4.2.14 find Encontrando arquivos e diretrios pelo file system


48

O comando find procura recursivamente por arquivos/diretrios no disco. A busca recursiva faz com que a procura ocorra no apenas nos diretrios especificados, mas em todos os seus subdiretrios. find pode procurar arquivos atravs de sua data de modificao, tamanho, etc atravs do uso de opes. find, ao contrrio de outros programas, usa opes longas atravs de um "-". find [diretrio] [opes/expresso ] Onde: diretrio Inicia a procura neste diretrio, percorrendo seu sub-diretrios. opes/expresso -name [expresso] Procura pelo nome [expresso] nos nomes de arquivos e diretrios processados. -amin [num] Procura por arquivos que foram acessados [num] minutos atrs. Caso for antecedido por "-", procura por arquivos que foram acessados entre [num] minutos atrs at agora. -atime [num] Procura por arquivos que foram acessados [num] dias atrs. Caso for antecedido por "-", procura por arquivos que foram acessados entre [num] dias atrs e a data atual. -group [nome] Procura por arquivos que possuam a identificao de nome do grupo igual a [nome]. -user [nome] Procura por arquivos que possuam a identificao de nome do usurio igual a [nome]. -mmin [num] Procura por arquivos que tiveram seu contedo modificado h [num] minutos. Caso for antecedido por "-", procura por arquivos que tiveram seu contedo modificado entre [num] minutos atrs at agora. -mtime [num] Procura por arquivos que tiveram seu contedo modificado h [num] dias. Caso for antecedido por "-", procura por arquivos que tiveram seu contedo modificado entre [num] dias atrs at agora. -nouser Procura por arquivos que no correspondam identificao do usurio atual. -nogroup Procura por arquivos que no correspondam identificao do grupo do usurio atual. -perm [modo] Procura por arquivos que possuam os modos de permisso [modo]. Os [modo] de permisso pode ser numrico (octal) ou literal. -size [num] Procura por arquivos que tiverem o tamanho [num]. [num] pode ser antecedido de "+" ou "-" para especificar um arquivo maior ou menor que [num]. A opo -size pode ser seguida de: b - Especifica o tamanho em blocos de 512 bytes. o padro caso [num] no seja acompanhado de nenhuma letra. c - Especifica o tamanho em bytes. k - Especifica o tamanho em Kbytes. A maior parte dos argumentos numricos podem ser precedidos por "+" ou "-". Para detalhes sobre outras opes e argumentos, consulte a pgina de manual. Uma ltima observao sobre o find, que ele, dependendo do ponto de partida da pesquisa, pode demorar muito at retornar alguma sada, ou no retornar nada se no for encontrado o alvo da pesquisa. Isso se d devido ao find pesquisar cada arquivo e subdiretrios existentes a partir do pondo de partida da pesquisa recursivamente. 49

Exemplo: $ find / -name grep $ find / $ find . $ find / $ find /

Procura no diretrio raiz e sub-diretrios um arquivo/diretrio chamado grep. -name grep -maxdepth 3 Procura no diretrio raiz e sub-diretrios at o 3o. nvel, um arquivo/diretrio chamado grep. -size +1000k Procura no diretrio atual e sub-diretrios um arquivo com tamanho maior que 1000 kbytes (1Mbyte). -mmin 10 Procura no diretrio raiz e sub-diretrios um arquivo que foi modificado h 10 minutos atrs. -links 4 Procura no diretrio raiz e sub-diretrios, todos os arquivos que possuem 4 links como referncia.

4.2.15 locate Encontrando arquivos


Esse comando tem a funo, assim como o find, de localizar arquivos. Porm, o find pode ser, em certas circunstncias, um programa de demorar a retornar algo. Para agilizar a ao de encontrar arquivos foi criado um banco de dados chamado locatedb localizado em /var/lib que possui os nomes dos arquivos guardados como registros. Dessa maneira, o comando locate no procura por todo o file system e sim apenas em seu banco de dados. O comando utilizado para atualizar o banco de dados do locatedb o updatedb sem flags. locate [arquivo]

4.2.16 grep Procurando nos arquivos


O comando grep procura uma seqncia de caracteres em um ou mais arquivos, ou no dispositivo de entrada padro linha por linha. A ao especificada pelas opes executada em cada linha que contm a seqncia de caracteres procurada. A sada ser a linha do arquivo em que o trecho foi encontrado. Se mais de um arquivo for indicado como argumento do comando, o grep antecede cada linha de output que contm a seqncia de caracteres com o nome do arquivo e dois pontos. O nome do arquivo mostrado para cada ocorrncia da seqncia de caracteres em um determinado arquivo. A opo -l usada para mostrar apenas uma vez o nome do arquivo que contm vrias ocorrncias da seqncia de caracteres. grep [expresso] [arquivo] [opes] Onde: expresso palavra ou frase que ser procurada no texto. Se tiver mais de 2 palavras voc deve identific-la com aspas "" caso contrrio o grep assumir que a segunda palavra o arquivo! arquivo Arquivo onde ser feita a procura. opes -A [nmero] Mostra o [nmero] de linhas aps a linha encontrada pelo grep. -B [nmero] Mostra o [nmero] de linhas antes da linha encontrada pelo grep. -f [arquivo] Especifica que o texto que ser localizado, esta no arquivo [arquivo]. 50

-h -i -r -n -U

No mostra os nomes dos arquivos durante a procura. Ignora diferena entre maisculas e minsculas no texto procurado e arquivo. Procura recursivamente Mostra o nome de cada linha encontrada pelo grep. Trata o arquivo que ser procurado como binrio.

Se no for especificado o nome de um arquivo ou se for usado um hfen "-", grep procurar a string no dispositivo de entrada padro. O grep faz sua pesquisa em arquivos texto. Use o comando zgrep para pesquisar diretamente em arquivos compactados com gzip, os comandos e opes so as mesmas. Exemplos: $ grep "capitulo" texto.txt , $ ps ax|grep inetd , $ grep "capitulo" texto.txt -A 2 -B 2.

4.2.17

nl Visualizando e numerando um arquivo

Mostra o nmero de linhas junto com o contedo de um arquivo. nl [opes] [arquivo] Onde: -f [opc] Faz a filtragem de sada de acordo com [opc]: a Numera todas as linhas. t No numera linhas vazias. n Numera linhas vazias. texto Numera somente linhas que contm o [texto]. -v [num] Nmero inicial (o padro 1). -i [num] Nmero de linhas adicionadas a cada linha do arquivo (o padro 1). Exemplos: $ nl /etc/passwd , $ nl -i 2 /etc/passwd

4.2.18 cmp Comparando arquivos


Compara dois arquivos de qualquer tipo (binrio ou texto). Os dois arquivos especificados sero comparados e caso exista diferena entre eles, mostrado o nmero da linha e byte onde ocorreu primeira diferena na sada padro (tela) e o programa retorna o cdigo de sada 1. cmp [arquivo1] [arquivo2] [opes] Opes: arquivo1/arquivo2 Arquivos que sero comparados. opes -l Mostra o nmero do byte (hexadecimal) e valores diferentes de bytes (octal) para cada diferena. -s No mostra nenhuma diferena, s retorna o cdigo de sada do programa. Use o comando zcmp para binrios/texto compactados com gzip. comparar diretamente arquivos 51

Exemplo: $ cmp teste.txt teste1.txt.

4.2.19 wc Contando palavras em um texto


O comando wc (Word count) utilizado para contar o nmero de palavras, bytes e linhas em um arquivo ou entrada padro. Se as opes forem omitidas, o wc mostra a quantidade de linhas, palavras, e bytes. wc [opes] [arquivo] Onde: arquivo Arquivo que ser verificado pelo comando wc. opes -c Mostra os bytes do arquivo. -w Mostra a quantidade de palavras do arquivo. -l Mostra a quantidade de linhas do arquivo. A ordem da listagem dos parmetros nica, e modificando a posio das opes no modifica a ordem que os parmetros so listados. Exemplo: $ wc /etc/passwd Mostra a quantidade de linhas, palavras e letras (bytes) no arquivo /etc/passwd . $ wc -w /etc/passwd Mostra a quantidade de palavras. $ wc -l /etc/passwd Mostra a quantidade de linhas. $ wc -l -w /etc/passwd Mostra a quantidade de linhas e palavras no arquivo /etc/passwd

4.3 Comandos Diversos 4.3.1 clear Limpando a tela


Limpa a tela e posiciona o cursor no canto superior esquerdo do vdeo. clear

4.3.2

cal Calendrio

Mostra um calendrio do ms atual. cal Exemplo: $ cal cal [ano] (mostra os 12 meses de um determinado ano) Exemplo: $ cal 2007 cal MM YYYY (Exibe a data no formato especificado) cal 01 2000 (Exibe o calendrio do ms de Janeiro no ano 2000)

4.3.3 history Histrico dos comandos


Lista os ltimos 500 comandos que voc digitou history

4.3.4

date
52

Permite ver/modificar a Data e Hora do Sistema. Voc precisa estar como usurio root para modificar a data e hora. Muitos programas do sistema, arquivos de registro (log) e tarefas agendadas funcionam com base na data e hora fornecidas pelo sistema, assim esteja consciente das modificaes que a data/hora pode trazer a estes programas (principalmente em se tratando de uma rede com muitos usu rios). Para ver a data atual digite apenas: date Para modificar digite: date MesDiaHoraMinuto[AnoSegundos] Onde: MesDiaHora Minuto[AnoSegundos] So respectivamente os nmeros do ms, dia, hora e minutos sem espaos. Opcionalmente voc pode especificar o Ano (com 2 ou 4 dgitos) e os Segundos. +[FORMATO] Define o formato da listagem que ser usada pelo comando date. Os seguintes formatos so os mais usados: %d - Dia do Ms (00-31). %m - Ms do Ano (00-12). %y - Ano (dois dgitos). %Y - Ano (quatro dgitos). %H - Hora (00-24). %I - Hora (00-12). %M - Minuto (00-59). %j - Dia do ano (1-366). %p - AM/PM (til se utilizado com %d). %r - Formato de 12 horas completo (hh:mm:ss AM/PM). %T - Formato de 24 horas completo (hh:mm:ss). %w - Dia da semana (0-6). Exemplos: Se quiser mudar a Data para 25/12 e a hora para 08:15 digite: date 12250815 Para mostrar somente a data no formato dia/ms/ano: date +%d/%m/ %Y

4.3.5

echo

Mostra mensagens. Este comando til na construo de scripts para mostrar mensagens na tela para o usurio acompanhar sua execuo. echo [mensagem] A opo -n pode ser usada para que no ocorra o salto de linha aps a mensagem ser mostrada.

4.3.6

cut

Mostra sees de cada linha do arquivo dependendo das opes passadas ao programa. cut [opes] [arquivo] 53

Onde: arquivo Arquivo que ser verificado pelo comando cut. opes -b [bytes] Mostra somente a lista de [bytes] do arquivo. -c [numero] Mostra somente o [nmero] de caracteres no arquivo. semelhante opo "-b" mas tabs e espaos so tratados como qualquer caractere. -f [campos] Mostra somente a lista de [campos]. -d [delimitador] Para uso com a opo -f, os campos so separados pelo primeiro caractere em [delimitador] ao invs de tabulaes. -s Para uso com a opo -f, somente mostra linhas que contm o caractere separador de campos. Devem ser especificadas opes para o funcionamento deste comando. Os bytes, campos e delimitadores podem ser especificados atravs de intervalos de caracteres (usando a-z), atravs de vrgulas (a,b,d) ou da combinao entre eles. Exemplos: $ cut -b 1,3 /etc/passwd Pega a primeira e terceira letra (byte) de cada linha do arquivo /etc/passwd $ cut -b 1,3-10 /etc/passwd Pega a primeira letra (byte) e terceira a dcima letra de cada linha do arquivo /etc/passwd . $ cut -c 1,3-10 /etc/passwd Pega o primeiro caractere e terceiro ao dcimo caractere de cada linha do arquivo /etc/passwd .

4.3.7

who

Mostra quem est atualmente conectado no computador. Este comando lista os nomes de usurios que esto conectados em seu computador, o terminal e data da conexo. who [opes] opes -H Mostra o cabealho das colunas. -i, -u, --idle Mostra o tempo que o usurio est parado em Horas:Minutos. -m, i am Mostra o nome do computador e usurio associado ao nome. equivalente a digitar who i am ou who am i. -q Mostra o total de usurios conectados aos terminais. -T, -w, --mesg Mostra se o usurio pode receber mensagens via talk (conversao). + O usurio recebe mensagens via talk O usurio no recebe mensagens via talk. ? No foi possvel determinar o dispositivo de terminal onde o usurio est conectado.

4.3.8

whoami
54

Mostra o nome que usou para se conectar ao sistema. til quando voc usa vrias contas e no sabe com qual nome entrou no sistema. whoami

4.3.9

Mostra quem est conectado no sistema e o que cada um est fazendo. w [opes][usurio] onde: usurio Nome do usurio que deseja ver os detalhes. Se o usurio no for digitado, o comando w mostra detalhes de todos os usurios conectados no sistema. opes -h No mostra o cabealho -u Ignora os nomes de usurios enquanto verifica os processos atuais e tempos de CPU. -f Mostra ou oculta o campo FROM na listagem.

4.3.10

su

Permite o usurio mudar sua identidade para outro usurio sem fazer o logout. til para executar um programa ou comando como root sem ter que abandonar a seo atual. su [usurio] Onde: usurio o nome do usurio que deseja usar para acessar o sistema. Se no digitado, assumido o usurio root. Ser pedida a senha do superusurio para autenticao. Digite exit quando desejar retornar a identificao de usurio anterior.

4.3.11

reboot

Reinicia o computador.

4.3.12

halt

Desliga a mquina. Exemplo: $ halt

4.3.13

shutdown

Desliga/reinicia o computador imediatamente ou depois de determinado tempo (programvel) de forma segura. Todos os usurios do sistema so avisados que o computador ser desligado. Este comando somente pode ser executado pelo usurio root ou quando usada a opoa pelos usurios cadastrados no arquivo /etc/shutdown.allow que estejam logados no console virtual do sistema. shutdown [opes] [hora] [mensagem ] onde: 55

hora Momento que o computador ser desligado. Voc pode usar HH:MM para definir a hora e minuto, MM para definir minutos, +SS para definir aps quantos segundos, ou now para imediatamente (equivalente a +0). O shutdown criar o arquivo /etc/nologin para no permitir que novos usurios faam login no sistema (com exceo do root). Este arquivo removido caso a execuo do shutdown seja cancelada (opo -c) ou aps o sistema ser reiniciado. mensagem Mensagem que ser mostrada a todos os usurios alertando sobre o reinicio/desligamento do sistema. opes -h Inicia o processo para desligamento do computador. -r Reinicia o sistema -c Cancela a execuo do shutdown . Voc pode acrescentar uma mensagem avisando aos usurios sobre o fato. -t [num] Faz com que o shutdown envie um sinal de trmino aos processos e aguarde [num] segundos antes de enviar o sinal KILL. O shutdown envia uma mensagem a todos os usurios do sistema alertando sobre o desligamento durante os 15 minutos restantes e assim permite que finalizem suas tarefas. Aps isto, o shutdown muda o nvel de execuo atravs do comando init para 0 (desligamento), 1 (modo monousurio), 6 (reinicializao). recomendado utilizar o smbolo "&" no final da linha de comando para que o shutdown seja executado em segundo plano. Quando restarem apenas 5 minutos para o reinicio/desligamento do sistema, o programa login ser desativado, impedindo a entrada de novos usurios no sistema. O programa shutdown pode ser chamado pelo init atravs do pressionamento da combinao das teclas de reinicializao CTRL+ALT+DEL alterando-se o arquivo /etc/inittab . Isto permite que somente os usurios autorizados (ou o root) possam reinicializar o sistema. Exemplos: $ shutdown -h now Desligar o computador imediatamente. $ shutdown -r now Reinicia o computador imediatamente. $ shutdown 19:00 A manuteno do servidor ser iniciada s 19:00" Faz o computador entrar em modo monousurio (init 1) s 19:00 enviando a mensagem A manuteno do servidor ser iniciada s 19:00 a todos os usurios conectados ao sistema. $ shutdown -r 15:00 O sistema ser reiniciado s 15:00 horas" - Faz o computador ser reiniciado (init 6) s 15:00 horas enviando a mensagem O sistema ser reiniciado s 15:00 horas a todos os usurios conectados ao sistema. $ shutdown -r 20 Faz o sistema ser reiniciado aps 20 minutos. $ shutdown -c Cancela a execuo do shutdown. $ shutdown -t 30 -r 20 Reinicia o sistema aps 20 minutos, espera 30 segundos aps o sinal de trmino para enviar o sinal KILL a todos os programas abertos. 56

4.3.14

talk

Inicia conversa com outro usurio em uma rede local ou Internet. Talk um programa de conversao em tempo real onde uma pessoa v o que a outra escreve. talk [usurio] [tty] ou talk [usurio@host ] Onde: usurio Nome de login do usurio que deseja iniciar a conversao. Este nome pode ser obtido com o comando who. tty O nome de terminal onde o usurio est conectado, para iniciar uma conexo local. usurio@host Se o usurio que deseja conversar estiver conectado em um computador remoto, voc deve usar o nome do usurio@hosname do computador. Aps o talk ser iniciado, ele verificar se o usurio pode receber mensagens, em caso positivo, ele enviar uma mensagem ao usurio dizendo como responder ao seu pedido de conversa. Para poder fazer a rolagem para cima e para baixo no talk, pressione CTRL+P(Previous - Tela anterior) e CTRL+N (Next - Prxima tela). Voc deve ter o daemon do talk instalado (talkd) para receber requisies de conversa. Voc deve autorizar o recebimento de talks de outros usurios para que eles possam se comunicar com voc, para detalhes veja o comando mesg.

4.3.15

mesg

Permite ou no o recebimento de requisies de talk de outros usurios. mesg [y/n] Onde: y permite que voc receba "talks" de outros usurios. Digite mesg para saber se voc pode ou no receber "talks" de outros usurios. Caso a resposta seja "n" voc poder enviar um talk para algum, mas o seu sistema se recusar em receber talks de outras pessoas. interessante colocar o comando mesg y em seu arquivo de inicializao bash_profile para permitir o recebimento de "talks" toda vez que entrar no sistema.

57

5 Editor de texto VI
5.1 Editor do UNIX
O editor de textos que era originalmente fornecido com o UNIX chamava-se ed, e era orientado por linha, isto , editava somente uma linha por vez. Como o ed era pouco amigvel, foi desenvolvido um novo editor de linha, chamado ex. O editor ex continha os comandos do ed e mais alguns comandos novos. Um destes comandos era o vi, que permitia ao usurio exibir o arquivo que estava sendo editado em uma janela do tamanho da tela do terminal. Portanto o editor vi nada mais que um ex que exibe textos em telas inteiras em vez de apenas uma linha por vez. O editor vi no objetiva formatar textos: negritos, identaes, justificao, etc. O editor vi foi projetado para trabalhar em conjunto com formatadores de texto. Na prtica o vi muito usado para editar textos que no necessitam de formatao em nenhum momento, como por exemplo, cdigos fonte de programas em alguma linguagem de programao. O Editor Vim (VI Improved) um dos editores mais usados no mundo unix/linux, ele uma verso melhorado do editor de texto vi, um dos mais antigos editores de texto criados. O Editor Vim um editor de texto altamente configurvel construdo para possibilitar uma edio de texto de maneira eficiente. Ele no um formatador de textos, isto , no trabalha com justificao ou formatao de caracteres (bold, itlico, etc), portanto o texto produzido com o vim no tem uma aparncia muito agradvel. Geralmente os sistemas unix/linux possuem um link simblico /bin/vi apontando para o executvel /usr/bin/vim. Na maioria das vezes as pessoas utilizam o vim pensando estar utilizando o vi. Neste captulo vamos aprender alguns comandos do vim, suficientes para que voc entenda o funcionamento do editor e consiga editar arquivos simples.

5.2 Modos de Operao do VIM


No vim temos vrios "modos", que so estados do editor. So eles: Modo de Insero de texto de Comandos tecla i rodap -- INSERT -descrio insero de texto comandos de manipulao de texto : comandos de manipulao arquivo 58

<ESC > Linha de comando :

Visual Busca Reposio

v / R

-- VISUAL -/ -- REPLACE --

seleo visual de texto busca de padres no texto insero sobrescrevendo

* os modos foram colocados em ordem de importncia de uso da grande maioria dos usurios. * para acessar qualquer um desses modos tecle 2 coluna da tabela, na dvida aperte <ESC> antes da sua tecla de acesso. * para identificar em qual modo voc est, olhe no rodap da tela! (3 coluna da tabela) Modo de comando: Neste modo, o editor reconhece e executa comandos. Quando o editor chamado, ele fica inicialmente neste modo. Pressione a tecla esc para confirmar o modo de comando. No modo escape os caracteres comuns (letras, nmeros e sinais de pontuao) tm um significado especial e quase todos os caracteres funciona m como comandos; portanto, existem muitos comandos. A maioria deles fcil de memorizar: a, A, i, I, o, O. Alguns comandos servem para passar para o modo insert, outros para movimentar o cursor sobre as linhas do texto, alterar trechos do texto, buscar palavras, etc. Modo Insero de texto (insert) : Neste modo, o editor permite a entrada de texto e no reconhece os comandos. Neste modo o vi funciona como uma mquina de escrever, com a diferena de que voc pode retroceder sobre o texto j digitado para corrigir eventuais erros. Cada caracter que for digitado aparecer na tela exatamente como foi digitado. Neste modo no possvel mover-se dentro de uma linha, ou entre as linhas do texto. No modo Linha de Comando (last line) voc digita os comandos em uma linha especial que aparece no final da tela quando se digita : (dois pontos) no modo escape. Parte dos comandos do modo escape possuem similares no modo last line, como por exemplo os comandos de edio, que veremos mais adiante. Os comandos no modo last line devem ser seguidos por ENTER, contrariamente ao que acontece no modo escape.

5.3 O Buffer de edio


Quando voc edita um arquivo com o vi, na verdade voc no est alterando o arquivo em si. As alteraes feitas so aplicadas em um buffer (uma rea na memria, que passa a conter o arquivo sendo editado). Quando voc quiser que as alteraes fiquem permanentemente aplicadas ao arquivo, necessrio copiar o contedo do buffer para o disco, usando o comando write (w) no modo last line. Portanto, se o comando write no for executado antes de deixar o vi, as alteraes contidas no buffer no sero aplicadas ao arquivo que est no disco.

5.4 Comandos bsicos do VIM (vi ou vim)


O editor vi contm um grande nmero de comandos para realizar uma grande variedade de tarefas especiais de edio, movimentao do cursor e outras. Na verdade seria impossvel tentar aprender todos os comandos de uma vez. Vamos portanto aprender inicialmente como criar um arquivo, inser ir e editar o texto, e gravar o arquivo em disco. Os comandos mais elaborados no sero abordados neste curso. 59

5.4.1

Chamando o VIM:

Basta executar o comando vi, passando como argumento o nome do arquivo que se deseja criar: [user@domain [user@domain [user@domain [user@domain [user@domain "linux" ~]$ vi abre o vim vazio, sem arquivo ~]$ vi arquivo abre o arquivo "arquivo", se ele no existir, o cria ~]$ vi arquivo + abre com cursor no fim do arquivo ~]$ vi arquivo +10 abre com cursor na linha 10 ~]$ vi arquivo +/linux abre com cursor na 1 ocorrncia de

Quando um novo arquivo criado o vi apresenta uma tela com 23 linhas e 80 colunas. O nome do arquivo aparece entre aspas no canto inferior esquerdo da tela, seguido pela mensagem "[New File]". Dessa mesma maneira possvel editar um arquivo j existente. Neste caso, no canto inferior esquerdo da tela, frente do nome do arquivo, aparecer uma mensagem indicando quantas linhas e quantos caracteres o arquivo possui. Em cada linha onde no tiver sido digitado nada at o momento, aparecer um ~ (til), indicando que a linha uma linha nula. Uma linha nula no o mesmo que uma linha preenchida com espaos.

5.4.2

Editando:

Ao entrar no vim, ele est no modo de comandos (ESC escape) . Como saber? Olhe no rodap a tela. Nada na ltima linha. Neste modo os caracteres tm significado especial, isto , so comandos. Para poder introduzir o texto necessrio passar para o modo insert. No modo escape o vi sensvel a maisculas e minsculas, isto , digitar o comando a diferente de digitar o comando A. Os comandos do modo escape que mudam o modo de operao do vi para o modo insert so: a, A, i, I, o, O (voc ver que aparecer um -INSERT --" no rodap). Cada um deles permite que a insero de texto ocorra em posies distintas do arquivo. Isto irrelevante se o arquivo editado est totalmente vazio (s possui linhas nulas). a (append) Inclui texto aps o cursor; A (append) Inclui o texto ao final da linha corrente, no importando em que posio o cursor est na linha; i (insert) Insere texto antes do cursor; I (insert) Insere o texto no incio da linha corrente, no importando em que posio o cursor est na linha; o (open) Abre uma nova linha abaixo da linha corrente e coloca o cursor no incio desta nova linha; O (open) Abre uma nova linha acima da linha corrente e coloca o cursor no incio desta nova linha; Para parar de editar aperte a tecla <ESC> Enquanto est digitando o texto, voc pode utilizar a tecla backspace para retroceder sobre a linha corrente e corrigir eventuais erros, mas o backspace s funciona na linha corrente. Para movimentar o cursor para 60

outras linhas do texto necessrio passar para o modo escape, teclando ESC, e a movimentao do cursor pode ento ser realizada utilizando as setas , ou ainda as teclas h, j, k, e l (em minsculo): l Equivale seta ; De fato faz o mesmo que a barra de espaos, e no modo escape serve para avanar adiante na linha; h Equivale seta ; De fato faz o mesmo que backspace, e no modo escape serve para retornar na linha; j Para mover o cursor para a linha de baixo. Equivale seta ; k Para mover o cursor para a linha de cima. Equivale seta ; O vi no distribui o texto automaticamente pelas linhas. Quando uma linha digitada alm das 80 colunas que normalmente so apresentadas na tela, aparentemente o vi faz um rearranjo no tamanho da linha, mas de fato isto deve ser feito manualme nte, digitando ENTER na posio da linha onde deseja-se encerr-la.

5.4.3

Salvando/Saindo do Vim:

Lembre-se que as alteraes que voc est promovendo esto sendo armazenad as no buffer de edio. Para gravar estas alteraes voc deve utilizar o comando last line write. No modo escape, digite : (dois pontos), para entrar no modo last line. Aparecer um sinal : no canto inferior esquerdo da tela. Digite w (ou write) e pressione ENTER. Aps ter sido concluda a gravao, o cursor voltar posio que estava antes de entrar no modo last line. Sair do vi significa encerrar a execuo do editor, e consequentemente abandonar o buffer de edio. Existe mais de uma maneira de encerrar o vi. Na primeira delas voc pode utilizar o comando last line quit. Entre no modo last line e ento digite q (quit). Se o arquivo no possuir nenhuma alterao no buffer de edio que ainda no esteja no disco o vi encerrar imediatamente. Porm se existir alguma alterao que ainda no foi salva em disco, aparecer uma mensagem indicativa, e voc poder optar por encerrar o editor sem gravar as alteraes usando o comando q!. Para salvar as alteraes antes de encerrar o vi, voc tem trs alternativas. Primeiro voc pode utilizar o comando last line wq (write then quit). Outra opo utilizar o comando last line x, que faz a gravao automaticamente se houver alguma alterao que ainda no tiver sido salva em disco. E finalmente voc pode utilizar o comando escape ZZ, que faz o mesmo que last line x. Resumo dos comandos obs: antes de executar os comandos seguintes, aperte <ESC> para ir ao modo de comandos, e claro, aps, um <ENTER> <F12> sada forada, salva e sai. :w salva o documento :w nome_do_arquivo salva o arquivo corrente como nome_do_arquivo. :q sai do vim 61

:wq ou :x ou ZZ :w! :q! :wq!

salva e sai salva forado sai do vim sem salvar (forado) salva e sai forado

5.4.4

Copiando e Colando

5.4.4.1

usando o mouse:

No modo de Insero mesmo, note que o cursor do teclado (esse tracinho piscando na tela), est numa posio, e o cursor do mouse (mexa o mouse para que ele se mova) est em outra posio. Selecione uma parte do texto com o mouse, segurando o boto esquerdo. Ao colar, o texto selecionado com o MOUSE ser colocado a partir do cursor do TECLADO. Experimente. dependendo do mouse, a colagem se faz: - apertando o boto direito - segurando o boto esquerdo e apertando o direito ao mesmo tempo - apertando o boto do meio (mouse de 3 botes) Tente, o seu ser umas das 3 alternativas acima.

5.4.4.2

usando o modo visual:

Entre no modo visual ( <ESC>v ), e simplesmente aperte as setas do teclado, movendo o cursor do TECLADO e selecionando o texto desejado. Volte para o modo de comandos ( <ESC> ) e posicione o cursor do TECLADO no lugar onde voc quer colar o texto selecionado. o comando de colagem o "p" de Paste.

5.4.4.3
:yy :nyy cursor. :p

Mais subcomandos para copiar e colar


Copia a linha onde o cursor se encontra. Copia as prximas n linhas a partir da posio atual do Cola o que foi copiado na linha abaixo do cursor atual.

5.4.5

Apagando (deletando):

Como no tpico anterior, use o modo visual ( <ESC>v ) para selecionar o texto desejado. Para apag-lo, digite "d", de Delete. Com o linux no modo texto, a tecla Delete do teclado tambm funciona para apagar texto.

5.4.6

Outros Comandos

5.4.6.1
x dw dd ndd D rx

Subcomandos para alterao de TEXTO:


deleta um caractere que esta sobre o cursor deleta a palavra, do inicio da posio do cursor ate o fim deleta a linha inteira onde o cursor estiver colocando-a no buffer deleta n linhas a partir da posio atual do cursor (n nmero de linhas) deleta a linha a partir da posio do cursor em diante substitui o caractere sob o cursor pelo especificado x ( opcional indicar o caractere) 62

Rtexto

substitui o texto corrente pelo texto indicado (opcional indicar o texto adicionado) cw substitui a palavra corrente. Pode-se inserir o novo contedo da palavra automaticamente. cc substitui a linha corrente. Pode-se inserir o novo contedo da linha automaticamente. C substitui restante da linha corrente. Pode-se inserir o texto logo aps o comando u desfaz a ultima modificao U desfaz todas as modificaes J une a linha corrente a prxima :s/velho/novo Substitui a primeira ocorrncia de "velho" por "novo" na linha corrente. :% s/velho/novo Substitui em todo o arquivo (%) a primeira ocorrncia de "velho" por "novo" em cada linha. :% s/velho/novo/g Substitui em todo o arquivo (%), todas (g) as ocorrncias de "velho" por "novo". :% s/velho/novo/gc Igual ao anterior, mas pedindo confirmao para cada substituio. :% s/./u&/gc Converte para maisculas (u) o primeiro caracter (.) de cada linha. :e nome_do_arquivo Abrir arquivo nome_do_arquivo. :r nome_do_arquivo Insere o arquivo nome_do_arquivo no ponto onde est o cursor.

5.4.6.2
:/palavra :+/palavra / :?palavra ?palavra? n N Ctrl + g

Subcomandos para a localizao de TEXTO:


procura pela palavra ou caractere acima ou abaixo do texto, marcando todas as ocorrncias da palavra informada Marca todas as ocorrncias da palavra informada e posiciona o curso na prxima ocorrncia Procura o padro de caracteres digitado em todo o texto corrente. move para a ocorrncia anterior da palavra (para repetir a busca usar n) procura a palavra" no texto acima repete o ltimo comando utilizado / ou ? repete o ltimo comando / ou ? na direo reversa mostra o nome do arquivo, o numero da linha corrente e o total de linhas

5.4.6.3 Subcomandos para movimentao pelo texto:


Enter Backspace Espao Ctrl + f Ctrl + b Ctr - d Ctrl - u ctrl-l H M L h j k l w move uma linha para baixo move um caracter a esquerda move um caractere a direita passa para a tela seguinte passa para a tela anterior avanca um tela retorna uma tela limpa a tela move o cursor para a primeira linha da tela move o cursor para o meio da tela move o cursor para a ltima linha da tela move o cursor para caractere a esquerda move o cursor para a linha abaixo move o cursor para alinha acima move o cursor para o caracter a direita move cursor para incio da prxima palavra (ignora pontuao) 63

W b B 0 (zero) ^ $ nG G

move cursor para inicio da prxima palavra (no ignora pontuao) move cursor para inicio da palavra anterior (ignora pontuao) move cursor para inicio da palavra anterior (no ignora pontuao) move cursor para inicio da linha corrente move cursor para o primeiro caracter no branco da linha move cursor para o fim da linha corrente move para a linha G move para a ltima linha do arquivo

6 Segurana
6.1 Acesso a Diretrios e Arquivos
Todos os arquivos em um sistema LINUX fazem parte de um mesmo sistema de arquivos e, a princpio, podem ser acessados por qualquer usurio daquele sistema. Entretanto h uma maneira de restringir o acesso aos arquivos e diretrios para que somente determinados usurios possam acess-los. A cada arquivo e diretrio associado um conjunto de permisses. Essas permisses determinam quais usurios podem ler, e escrever (alterar) um arquivo e, no caso de ser um arquivo executvel, quais usurios podem execut-lo. Se um usurio tem permisso de execuo para um diretrio, significa que ele pode realizar buscas dentro daquele diretrio, e no execut-lo como se fosse um programa. Quando um usurio cria um arquivo ou um diretrio, o LINUX determina que ele o proprietrio (owner) daquele arquivo ou diretrio. O esquema de permisses do LINUX permite que o proprietrio determine quem tem acesso e em que modalidade eles podero acessar os arquivos e diretrios que ele criou. O superusurio, entretanto, tem acesso a qualquer arquivo ou diretrio do sistema de arquivos

6.2 Permisses de acesso a arquivos e diretrios


A permisso de acesso protege o sistema de arquivos Linux do acesso indevido de pessoas ou programas no autorizado. A permisso de acesso do GNU/Linux tambm impede que um programa mal intencionado, por exemplo, apague um arquivo que no deve, envie arquivos para outra pessoa ou fornea acesso da rede para 64

que outros usurios invadam o sistema. O sistema GNU/Linux muito seguro e como qualquer outro sistema seguro e confivel impede que usurios iniciantes (ou mal intencionados) instalem programas enviados por terceiros sem saber para que eles realmente servem e causem danos irreversveis em seus arquivos, seu micro ou sua empresa.

6.3 Donos, grupos e outros usurios


O princpio da segurana no sistema de arquivos GNU/Linux definir o acesso aos arquivos por donos, grupos e outros usurios: dono (owner) - a pessoa que criou o arquivo ou o diretrio. O nome do dono do arquivo/diretrio o mesmo do usurio usado para entrar no sistema GNU/Linux. Somente o dono pode modificar as permisses de acesso do arquivo. As permisses de acesso do dono de um arquivo somente se aplicam ao dono do arquivo/diretrio. A identificao do dono tambm chamada de user id (UID). A identificao de usurio e o nome do grupo que pertence so armazenadas respectivamente nos arquivos /etc/passwd e /etc/group. Estes so arquivos textos comuns e podem ser editados em qualquer editor de texto, mas tenha cuidado para no modificar o campo que contm a senha do usurio encriptada (que pode estar armazenada neste arquivo caso no estiver usando senhas ocultas). grupo (group) Para permitir que vrios usurios diferentes tivessem acesso a um mesmo arquivo (j que somente o dono poderia ter acesso ao arquivo), este recurso foi criado. Cada usurio pode fazer parte de um ou mais grupos e ento acessar arquivos que pertenam ao mesmo grupo que o seu (mesmo que estes arquivos tenham outro dono). Por padro, quando um novo usurio criado, o grupo ele pertencer ser o mesmo de seu grupo primrio. A identificao do grupo chamada de gid (group id). Um usurio pode pertencer a um ou mais grupos. Para detalhes de como incluir o usurio em mais grupos veja Adicionando um novo grupo a um usurio outros (others) a categoria de usurios que no so donos ou no pertencem ao grupo do arquivo. Cada um dos tipos acima possui trs tipos bsicos de permisses de acesso que sero vistas a seguir.

6.4 Tipos de Permisses de acesso


Quanto aos tipos de permisses que se aplicam ao dono, grupo e outros usurios , temos 3 permisses bsicas: r - Permisso de leitura (read) para arquivos. Caso for um diretrio, permite listar seu contedo (atravs do comando ls, por exemplo). w - Permisso de gravao/escrita (write) para arquivos. Caso for um diretrio, permite a criao de arquivos ou outros diretrios dentro dele. Para que um arquivo/diretrio possa ser apagado, necessrio o acesso a gravao. x - Permite executar (execute) um arquivo (caso seja um programa executvel). Caso seja um diretrio, permite que seja acessado atravs do comando cd.

65

As permisses de acesso a um arquivo/diretrio podem ser visualizadas com o uso do comando ls -la. As 3 letras (rwx) so agrupadas da seguinte forma: -rwxrwxrwx gleydson users teste A primeira letra diz qual o tipo do arquivo. Caso tiver um "d" um diretrio, um "l" um link a um arquivo no sistema (veja ln, Seo 10.4 para detalhes) , um "-" quer dizer que um arquivo comum, etc. Da segunda a quarta letra (rwx) dizem qual a permisso de acesso ao dono do arquivo. Neste caso gleydson ele tem a permisso de ler (r read), gravar (w - write) e executar (x - execute) o arquivo teste. Da quinta a stima letra (rwx) diz qual a permisso de acesso ao grupo do arquivo. Neste caso todos os usurios que pertencem ao grupo users tm a permisso de ler (r), gravar (w), e tambm executar (x) o arquivo teste. Da oitava a dcima letra (rwx) diz qual a permisso de acesso para os outros usurios . Neste caso todos os usurios que no so donos do arquivo teste tm a permisso para ler, gravar e executar o programa.

6.5 Etapas para acesso a um arquivo/diretrio


O acesso a um arquivo/diretrio feito verificando primeiro se o usurio que acessar o arquivo o seu dono, caso seja, as permisses de dono do arquivo so aplicadas. Caso no seja o do no do arquivo/diretrio, verificado se ele pertence ao grupo correspondente, caso pertena, as permisses do grupo so aplicadas. Caso no pertena ao grupo, so verificadas as permisses de acesso para os outros usurios que no so donos e no pertencem ao grupo correspondente ao arquivo/diretrio. Aps verificar aonde o usurio se encaixa nas permisses de acesso do arquivo (se ele o dono, pertence ao grupo, ou outros usurios ), verificado se ele ter permisso acesso para o que deseja fazer (ler, gravar ou executar o arquivo), caso no tenha, o acesso negado, mostrando uma mensagem do tipo: "Permission denied" (permisso negada). O que isto que dizer que mesmo que voc seja o dono do arquivo e definir o acesso do dono (atravs do comando chmod) como somente leitura (r) mas o acesso dos outros usurios como leitura e gravao, voc somente poder ler este arquivo mas os outros usurios podero ler/gravlo. As permisses de acesso (leitura, gravao, execuo) para donos, grupos e outros usurios so independentes, permitindo assim um nvel de acesso diferenciado. Lembre-se: Somente o dono pode modificar um arquivo/diretrio!

6.6 Exemplos prticos de permisses de acesso


Abaixo dois exemplos prticos de permisso de acesso . Os dois exemplos so explicados passo a passo para uma perfeita compreenso do assunto.

6.6.1

Exemplo de acesso a um arquivo

Abaixo um exemplo e explicao das permisses de acesso a um arquivo no GNU/Linux (obtido com o comando ls la): 66

-rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste -rwxr-xr-- Estas so as permisses de acesso ao arquivo teste. Um conjunto de 10 letras que especificam o tipo do arquivo, permisso do dono do arquivo, grupo do arquivo e outros usurios. Veja a explicao detalhada sobre cada uma abaixo: -rwxr-xr-- A primeira letra (do conjunto das 10 letras) determina o tipo do arquivo. Se a letra for um d um diretrio, e voc poder acesslo usando o comando cd. Caso for um l um link simblico para algum arquivo ou diretrio no sistema. Um - significa que um arquivo normal. -rwxr-xr-- Estas 3 letras (da segunda a quarta do conjunto das 10 letras) so as permisses de acesso do dono do arquivo teste. O dono (neste caso gleydson) tem a permisso para ler (r), gravar (w) e executar (x) o arquivo teste. -rwxr-xr-- Estas 3 letras (da quinta a stima do conjunto das 10 letras) so as permisses de acesso dos usurios que pertencem ao grupo user do arquivo teste. Os usurios que pertencem ao grupo user tem a permisso somente para ler (r) e executar (x) o arquivo teste no podendo modific-lo ou apag-lo. -rwxr-xr-- Estas 3 letras (da oitava a dcima) so as permisses de acesso para usurios que no so donos do arquivo teste e que no pertencem ao grupo user. Neste caso, estas pessoas somente tero a permisso para ver o contedo do arquivo teste. gleydson Nome do dono do arquivo teste. user Nome do grupo que o arquivo teste pertence. teste Nome do arquivo.

6.6.2

Exemplo de acesso a um diretrio

Abaixo um exemplo com explicaes das permisses de acesso a um diretrio no GNU/Linux: drwxr-x--- 2 gleydson user 1024 nov 4 17:55 exemplo drwxr-x--- Permisses de acesso ao diretrio exemplo. um conjunto de 10 letras que especificam o tipo de arquivo, permisso do dono do diretrio, grupo que o diretrio pertence e permisso de acesso a outros usurios. Veja as explicaes abaixo: drwxr-x--- A primeira letra (do conjunto das 10) determina o tipo do arquivo. Neste caso um diretrio porque tem a letra d. drwxr-x--- Estas 3 letras (da segunda a quarta) so as permisses de acesso do dono do diretrio exemplo. O dono do diretrio (neste caso gleydson) tem a permisso para listar arquivos do diretrio (r), gravar arquivos no diretrio (w) e entrar no diretrio (x). drwxr-x--- Estas 3 letras (da quinta a stima) so as permisses de acesso dos usurios que pertencem ao grupo user. Os usurios que pertencem ao grupo user tm a permisso somente para listar arquivos do diretrio (r) e entrar no diretrio (x) exemplo. drwxr-x--- Estas 3 letras (da oitava a dcima) so as permisses de acesso para usurios que no so donos do diretrio exemplo e que no pertencem ao grupo user . Com as permisses acima, nenhum usurio que se encaixe nas condies de dono e grupo do diretrio tem a permisso de acess-lo. gleydson Nome do dono do diretrio exemplo. user Nome do grupo que diretrio exemplo pertence. 67

exemplo

Nome do diretrio.

OBSERVAES : O usurio root no tem nenhuma restrio de acesso ao sistema. Se voc tem permisses de gravao no diretrio e tentar apagar um arquivo que voc no tem permisso de gravao, o sistema perguntar se voc confirma a excluso do arquivo apesar do modo leitura. Caso voc tenha permisses de gravao no arquivo, o arquivo ser apagado por padro sem mostrar nenhuma mensagem de erro (a no ser que seja especificada a opo -i com o comando rm). Por outro lado, mesmo que voc tenha permisses de gravao em um arquivo, mas no tenha permisses de gravao em um diretrio, a excluso do arquivo ser negada. Isto mostra que levado mais em considerao a permisso de acesso do diretrio do que as permisses dos arquivos e sub-diretrios que ele contm. Este ponto muitas vezes ignorado por muitas pessoas e expem seu sistema a riscos de segurana. Imagine o problema que algum usurio que no tenha permisso de gravao em um arquivo mas que a tenha no diretrio pode causar em um sistema mal administrado.

6.7 A conta root


A conta root tambm chamada de super usurio, este um login que no possui restries de segurana. A conta root somente deve ser usada para fazer a administrao do sistema, e usada o menor tempo possvel. Qualquer senha que criar dever conter de 6 a 8 caracteres, e tambm poder conter letras maisculas e minsculas, e tambm caracteres de pontuao. Tenha um cuidado especial quando escolher sua senha root, porque ela a conta mais poderosa. Evite palavras de dicionrio ou o uso de qualquer outros dados pessoais que podem ser adivinhados. Se qualquer um lhe pedir senha root, seja extremamente cuidadoso. Voc normalmente nunca deve distribuir sua conta root, a no ser que esteja administrando um computador com mais de um administrador do sistema. Utilize uma conta de usurio normal ao invs da conta root para operar seu sistema. Porque no usar a conta root? Bem, uma razo para evitar usar privilgios root por causa da facilidade de se cometer danos irreparveis como root. Outra razo que voc pode ser enganado e rodar um programa Cavalo de Tria -- que um programa que obtm poderes do super usurio para comprometer a segurana do seu sistema sem que voc saiba.

6.8 Modo de permisso


6.8.1 Formato octal

O modo octal um conjunto de oito nmeros onde cada nmero define um tipo de acesso diferente. mais flexvel gerenciar permisses de acesso usando o modo octal ao invs do comum, pois voc especifica diretamente a permisso do dono, grupo e outros ao invs de gerenciar as permisses de cada um separadamente. Abaixo a lista de permisses de acesso octal: 68

0 1 2 3 4 5 6 7

r 0 0 0 0 1 1 1 1

w 0 0 1 1 0 0 1 1

x 0 1 0 1 0 1 0 1

Nenhuma permisso de acesso Permisso de execuo Permisso de gravao Permisso de gravao e execuo Permisso de leitura Permisso de leitura e execuo Permisso de leitura e gravao Permisso de leitura, gravao execuo

O uso de um destes nmeros define a permisso de acesso do dono, grupo ou outros usurios. Um modo fcil de entender como as permisses de acesso octais funcionam, atravs do modo 421. 421 4 = Ler 2 = Gravar 1 = Executar * Basta agora fazer a soma das permisses para Dono, Grupo e Outros. Somente permisso de execuo, use 1. Somente a permisso de leitura, use 4. Somente permisso de gravao, use 2. Permisso de leitura/gravao, use 6 (equivale a 2+4 / Gravar+Ler). Permisso de leitura/execuo, use 5 (equivale a 1+4 / Executar+Ler). Permisso de execuo/gravao, use 3 (equivale a 1+2 / Executar+Gravar). Permisso de leitura/gravao/execuo, use 7 (equivale a 1+2+4 / Executar+Gravar+Ler).

6.8.2

Formato simblico do modo de permisses

O formato simblico usa letras e smbolos para indicar o modo de permisso. Ele composto de trs elementos : Tipo de usurio: u Usurio ( Proprietrio ) g Grupo o Outros a Todos Ao: A ao significa como sero alteradas as permisses. + Acrescenta permisso(es) Remove permisso(es) = Atribui a permisso explicitamente Os operadores + e - acrescentam e removem as permisses relativas ao modo de permisso corrente. O operador = reinicializa todas as permisses explicitamente (exatamente como indicado). Tipo de permisso r Leitura w Gravao x Execuo A combinao desses trs elementos forma o modo de permisso no formato simblico.

69

6.9

chmod Alterando o permissionamento de arquivos e diretrios

O comando chmod (change mode)muda a permisso de acesso a um arquivo ou diretrio. Com este comando voc pode escolher se usurio ou grupo ter permisses para ler, gravar, executar um arquivo ou arquivos. Sempre que um arquivo criado, seu dono o usurio que o criou e seu grupo o grupo do usurio. chmod [opes] [permisses] [diretrio/arquivo ] Onde: diretrio/arquivo Diretrio ou arquivo que ter sua permisso mudada. opes -R Muda permisses recursivamente de acesso do diretrio/arquivo no diretrio atual e subdiretrios. ugoa+-=rwx ugoa Controla que nvel de acesso ser mudado. Especificam, em ordem, usurio (u), grupo (g), outros (o), todos (a). +-= + coloca a permisso, - retira a permisso do arquivo e = define a permisso exatamente como especificada . Rwx r permisso de leitura do arquivo. w permisso de gravao. x permisso de execuo (ou acesso a diretrios). chmod no muda permisses de links simblicos, as permisses devem ser mudadas no arquivo alvo do link. Tambm podem ser usados cdigos numricos octais para a mudana das permisses de acesso a arquivos/diretrios. DICA: possvel copiar permisses de acesso do arquivo/diretrio, por exemplo, se o arquivo teste.txt tiver a permisso de acesso r-xr----- e voc digitar chmod o=u, as permisses de acesso dos outros usurios (o) sero idnticas ao do dono (u). Ento a nova permisso de acesso do arquivo teste.txt ser r-xr--r-x Exemplos de permisses de acesso: chmod g+r * Permite que todos os usurios que pertenam ao grupo dos arquivos (g) tenham (+) permisses de leitura (r) em todos os arquivos do diretrio atual. chmod o-r teste.txt Retira (-) a permisso de leitura (r) do arquivo teste.txt para os outros usurios (usurios que no so donos e no pertencem ao grupo do arquivo teste.txt ). chmod uo+x teste.txt Inclui (+) a permisso de execuo do arquivo teste.txt para o dono e outros usurios do arquivo. chmod a+x teste.txt Inclui (+) a permisso de execuo do arquivo teste.txt para o dono, grupo e outros usurios. chmod a=rw teste.txt Define a permisso de todos os usurios exatamente (=) para leitura e gravao do arquivo teste.txt. chmod go-x teste Retira (-) a permisso de execuo (x) do arquivo teste para o grupo e dos outros usurios. chmod 764 teste Os nmeros so interpretados da direita para a esquerda como permisso de acesso aos outros usurios (4), grupo (6), e dono (7). O exemplo acima faz os outros usurios (4) terem acesso somente leitura (r) ao arquivo teste, o grupo (6) ter a permisso de leitura e gravao (w), e o dono (7) ter 70

permisso de leitura, gravao e execuo (rwx) ao arquivo teste . chmod 40 teste Define a permisso de acesso dos outros usurios (0) como nenhuma, e define a permisso de acesso do grupo (4) como somente leitura (r). Note usei somente dois nmeros e ento a permisso de acesso do dono do arquivo no modificada (leia as permisses de acesso da direita para a esquerda!). chmod 751 teste Define a permisso de acesso dos outros usurios (1) para somente execuo (x), o acesso do grupo (5) como leitura e execuo (rx) e o acesso do dono (7) como leitura, gravao e execuo (rwx).

6.10 chgrp Alterando o grupo


O comando chgrp (change group) muda a ident ificao do grupo de um arquivo ou diretrio. Pode ser utilizado para conceder permisso de leitura e escrita para outro grupo que no o seu, sem ter que conceder as mesmas permisses para todos os demais usurios. Voc s poder mudar o grupo do arquivo que voc mesmo criou. Alm de voc somente o superusurio poder fazer isso. chgrp [opes] [grupo] [arquivo/diretrio] Onde: grupo Novo grupo do arquivo/diretrio . arquivo/diretrio Arquivo/diretrio que ter o grupo alterado. opes -R Altera os grupos de arquivos/subdiretrios do diretrio atual. Exemplo: Mude o grupo do arquivo memo1 para users2 : $ ls - l memo1 -rw- r --r-1 guest memo1 $ chgrp users2 memo1 $ ls - l memo1 -rw- r --r-1 guest memo1 $ users 984 May 12 11:02

users2

984

May

12

11:02

6.11 chown Alterando o dono


O comando chown (change owner) usado para mudar a identificao de proprietrio associada a um arquivo/diretrio. Voc s poder aplicar este comando aos arquivos que voc mesmo criou. Alm de voc somente o superusurio poder faz-lo. Observe que uma vez que voc tenha alterado a identificao de proprietrio que est associada a um arquivo, voc no mais o proprietrio, e no poder mais fazer a alterao inversa. Opcionalmente pode tambm ser usado para mudar o grupo. chown [opes] [dono.grupo] [diretrio/arquivo] onde: dono.grupo Nome do dono.grupo que ser diretrio/arquivo . O grupo opcional. atribudo ao 71

diretrio/arquivo Diretrio/arquivo que o dono.grupo ser modificado. opes -R Altera dono e grupo de arquivos no diretrio atual e subdiretrios. O dono.grupo pode ser especificado usando o nome de grupo ou o cdigo numrico correspondente ao grupo (GID). Exemplos: chown joo teste.txt Muda o dono do arquivo teste.txt para joo. chown joo.users teste.txt Muda o dono do arquivo teste.txt para joo e seu grupo para users. chown -R joao.users * Muda o dono/grupo dos arquivos do diretrio atual e sub-diretrios para joo/users (desde que voc tenha permisses de gravao no diretrios e subdiretrios).

6.12 umask Mudando as permisses padro


O comando umask (user mask) define ou muda o modo padro de permisses iniciais do dono, grupo e outros usurios que o arquivo/diretrio receber quando for criado ou copiado. No comando, nmero um nmero octal de trs dgitos, como visto no comando chmod. Entretanto aqui voc especifica de maneira inversa, isto , em chmod se voc utilizar nmero igual a 777, voc estar concedendo autorizao de leitura + escrita + execuo para voc mesmo, para o grupo e para todos os demais usurios. Com o comando umask se voc especificar nmero igual a 777, voc estar negando acesso a todas as classes em qualquer modo. De fato, a permisso que ser concedida dada pela diferena entre a permisso padro original, que 777, para diretrios e 666 para arquivos, e a permisso especificada em umask. Por Exemplo: Diretrios: Permisso padro 777 (rwxrwxrwx) Valor em umask 023 Novas permisses 754 (rwxr -xr-- ) Arquivos: Permisso padro 666 (rw-rw- rw-) Valor em umask 022 Novas permisses 644 (rw-r --r --) Sem especificar um nmero umask mostrar o valor corrente da mscara de permisses. Os arquivos e diretrios criados antes do uso do comando permanecem com as permisses inalteradas. Digite umask sem parmetros para retornar o valor de sua umask atual. A umask tem efeitos diferentes caso o arquivo que estiver sendo criado for binrio (um programa executvel) ou texto. Veja a tabela a seguir para ver qual a mais adequada a sua situao: umask Arquivo Diretri o Binri Text o o 0 r-x rwrwx 1 r-rwrw2 r-x r-r-x 3 r-r-r-4 --x -w-wx 5 ---w-w6 --x ----x 7 ------72

Um arquivo texto criado com o comando umask 012;touch texto.txt receber as permisses -rw-rw-r--, pois 0 (dono) ter permisses rw-, 1 (grupo), ter permisses rw- e 2 (outros usurios) tero permisses r--. Um arquivo binrio copiado com o comando umask 012;cp /bin/ls /tmp/ls receber as permisses -r-xr--r-x (confira com a tabela acima). Por este motivo preciso um pouco de ateno antes de escolher a umask, um valor mal escolhido poderia causar problemas de acesso a arquivos, diretrios ou programas no sendo executados. O valor padro da umask na maioria das distribuies atuais 022. A umask de grande utilidade para programas que criam arquivos/diretrios temporrios, desta forma pode-se bloquear o acesso de outros usurios desde a criao do arquivo, evitando recorrer ao chmod. umask [permisso] Exemplos : 1- Mostrar o valor atual da mscara de permisses : $ umask 022 $ 2- Mudar o valor da mscara para que os novos arquivos tenham a seguinte permisso : proprietrio com acesso a leitura e escrita, grupo com acesso a leitura e execuo e outro somente para leitura : $ umask 012

6.13 id - A identificao do usurio/grupo


O comando id mostra o nmero e o nome que identifica o usurio e seu grupo. As informaes do grupo (GID) e dos usurios (UID) mostradas pelo comando id so tiradas do arquivo /etc/passwd. Se o nome de um grupo no for mostrado porque o grupo primrio do usurio que est definido no arquivo /etc/passwd no existe no arquivo /etc/group. id Exemplo: Mostrar a identificao do usurio e do grupo a que pertence : $ id UID=528 (guest) GID=100 (users) GROUPS=100 (users)

6.14 newgrp - Participao em grupos


Um usurio pode pertencer a mais de um grupo ao mesmo tempo, contanto que ele esteja como membro de cada um desses grupos no arquivo /etc/group. Entretanto, o nmero de identificao de grupo especificado no arquivo /etc/passwd continuar valendo como o grupo primrio do usurio. Esta identificao est associada aos arquivos e diretrios criados pelo usurio. Ser um membro de um grupo significa ter acesso aos arquivos e diretrios pertencentes aos demais membros do mesmo grupo. O comando id mostra a identificao do usurio e do grupo. Os arquivos pertencentes a grupos diferentes do grupo primrio do usurio, mas de grupos aos quais o usurio pertence, podem ser acessados com o uso dos seguintes comandos: chgrp Que modifica a identificao de grupo associada a um arquivo ou diretrio; 73

newgrp Que modifica temporariamente a vinculao de um usurio a um grupo. Os arquivos e diretrios criados depois que o usurio muda para outro grupo, refletem o "novo" grupo. newgrp [grupo] O comando newgrp muda temporariamente o grupo ao qual voc pertence, dando-lhe acesso a todos os arquivos e diretrios acessveis aos membros do novo grupo. Para que voc possa mudar de identidade de grupo, seu nome de usurio deve estar no arquivo /etc/group para o grupo ao qual voc deseja mudar. Sem argumentos o comando retorna o nome do grupo ao que voc est vinculado. Exemplo : Mude o grupo corrente para users2 : $ id UID=528( guest ) GID=100( users ) GROUPS=100( users ) $ newgrp users2 $ id UID=528( guest ) GID=200( users2 ) GROUPS=200( users2 ) $

74

7 Redirecionamentos e Pipe
7.1 Entrada e Sada dos comandos
Os operadores de redirecionamento do Shell so usados, assim como em qualquer sistema, para direcionar a sada ou a entrada dos programas. Quase todos os comandos do LINUX usam uma entrada e produzem uma sada. A entrada para um comando so os dados sobre os quais o comando ir operar. Esses dados podem vir de um arquivo especificado pelo usurio, de um arquivo de sistema do LINUX, do terminal (do teclado) ou da sada de outro comando. A sada de um comando o resultado da operao que ele realiza sobre a entrada. A sada do comando pode ser impressa na tela do terminal, enviada a um arquivo, ou servir de entrada para outro comando. Nas sees seguintes voc vai aprender a manipular estas entradas e sadas, para poder criar e ler arquivos durante o uso de alguns comandos, e tambm aprender a encadear comandos, fazendo com que um comando utilize como entrada a sada de outro.

7.2

Entrada e Sada Padro:

Alguns comandos tm apenas uma fonte possvel para a entrada; por exemplo, o comando date sempre utiliza o sistema interno de relgio para indicar a data e hora. Outros comandos exigem que voc especifique uma entrada. Se no especificar uma fonte de entrada juntamente com esses comandos, o LINUX considera que ela vir do teclado, isto , ele esperar que voc digite a entrada. Por isso o teclado chamado de entrada padro. As informaes do teclado so utilizadas no processamento, e para sua facilidade o LINUX tambm ecoa (apresent a na tela) o que voc digitar. Desta forma, voc pode certificar-se de ter digitado os comando corretamente. Normalmente, quase todos os comandos enviam suas sadas para a tela do terminal, que chamada de sada padro. Como com as entradas, voc tambm pode redirecionar as sadas dos comandos para outro destino que no a sada padro, por exemplo, para arquivos ou para a entrada de outros comandos. Alguns comandos, como rm, mv e mkdir no produzem nenhuma sada. Entretanto esses comandos e muitos outros podem apresentar mensagens de erro na tela se no obtiverem sucesso no seu processamento. Isto ocorre porque a tela do terminal tambm a sada de erros padro, isto , o local para onde so enviadas as mensagens de erro. As mensagens de erro dos comandos no devem ser confundidas com as sadas dos comandos. A Shell do LINUX redireciona a fonte e o destino da entrada, de modo que o comando no percebe se a entrada padro est direcionada para o 75

teclado do terminal ou para um arquivo. Da mesma forma, o comando no percebe se a sada padro est direcionada para a tela do terminal, para um arquivo ou para a entrada de outro comando.

7.3 Redirecionamento de E/S


H trs mtodos bsicos para redirecionar a entrada ou sada de um comando. Uma delas simplesmente fornecer como argumento para o comando o nome do arquivo que deve ser usado como entrada ou sada para o comando. Este mtodo funciona com alguns comandos, como por exemplo, cat, pg e outros. J comandos como o pwd no podem receber um arquivo como argumento. Mesmo com os filtros (classe de comandos a qual pertencem o cat e o pg) nem sempre possvel especificar a sada. Outro mtodo para redirecionar a entrada ou sada utilizar os smbolos de redirecionamento. Como muitos comandos podem receber arquivos de entrada sob a forma de argumentos, os smbolos de redirecionamento so mais utilizados para direcionar a sada dos comandos. Um terceiro mtodo de redirecionar entradas e sadas usando pipes, que enviam a sada de um comando para outro, ou seja, a sada de um comando serve como entrada para outro comando.

7.4 Smbolos de redirecionamento


Os caracteres especiais utilizados na linha do comando para fazer o Shell redirecionar a entrada, sada ou erro do programa esto listados e descritos a seguir. O Shell interpreta esses caracteres antes do comando ser executado.

7.4.1

< Redirecionamento de entrada

O smbolo < (menor que) faz com que a entrada padro seja direcionada a um arquivo. Em muitos casos, especificar < funciona exatamente como especificar o nome do arquivo como argumento do comando. comando < arquivo Por exemplo: $ cat Arquivo.teste $ cat < Arquivo.teste produziro exatamente o mesmo efeito.

7.4.2

> Redirecionamento de sada

O smbolo > (maior que) redireciona a sada de um programa/comando/script para algum dispositivo ou arquivo ao invs do dispositivo de sada padro (tela). Quando usado com arquivos, este redirecionamento cria ou substitui o contedo do arquivo. Por exemplo, voc pode usar o comando ls para listar arquivos e usar ls > listagem para enviar a sada do comando para o arquivo listagem. Use o comando cat para visualizar o contedo do arquivo listagem. O mesmo comando pode ser redirecionado para o segundo console /dev/tty2 usando: ls >/dev/tty2, o resultado do comando ls ser mostrado 76

no segundo console (pressione ALT e F2 para mudar para o segundo console e ALT e F1 para retornar ao primeiro). comando > arquivo ou comando >> arquivo Exemplo : Guarde no arquivo data.de.hoje a sada do comando date : $ date > data.de.hoje $ cat data.de.hoje Mon May 20 10:10:28 WST 1996

7.4.3

>>

Redireciona a sada de um programa/comando/script para algum dispositivo ou final de arquivo ao invs do dispositivo de sada padro (tela). A diferena entre este redirecionamento duplo e o simples, se caso for usado com arquivos, adiciona (anexa) a sada do comando ao final do arquivo existente ao invs de substituir seu contedo. Por exemplo, voc pode acrescentar a sada do comando ls ao arquivo listagem do captulo anterior usando ls / >>listagem. Use o comando cat para visualizar o contedo do arquivo listagem. comando >> arquivo ou comando >> arquivo Exemplo: Acrescente ao arquivo data.de.hoje a sada do comando who : $ who >> data.de.hoje $ cat data.de.hoje Mon May 20 10:10:28 WST 1996 guest tty1 May 20 08:52

7.4.4

<<

Este redirecionamento serve principalmente para marcar o fim de exibio de um bloco. Este especialmente usado em conjunto com o comando cat, mas tambm tem outras aplicaes. comando << arquivo ou comando >> arquivo Por exemplo: cat << final este arquivo ser mostrado at que a palavra final seja localizada no inicio da linha final

7.4.5

| (pipe)

Os smbolos de redirecionamento permitem realizar mais de uma operao em um mesmo arquivo. Somente com esses smbolos voc j tem condies de realizar tudo o que quiser sobre um arquivo. Suponha, entretanto, que voc queira fazer um conjunto de operaes diferentes em um mesmo arquivo. Cada operao implicaria a criao de um novo arquivo, sendo que o nico propsito desses arquivos seria servir como entrada para outro comando. Entretanto, tudo o que importa o resultado final. Para situaes como essas o LINUX possui outra maneira de redirecionar entradas e sadas: os pipes. 77

O pipe ( | ) envia a sada de um comando para a entrada do prximo comando para continuidade do processamento. Os dados enviados so processados pelo prximo comando que mostrar o resultado do processamento. comando 1 | comando 2 Voc pode usar vrios pipes em uma linha de comando, de maneira que possvel combinar tantos comandos quantos necessrios, bastando intercal-los por smbolos de pipe. Uma seqncia de comandos encadeados desta maneira chamada de pipeline. Existem algumas regras bsicas para compor um pipeline em uma linha de comandos LINUX. Essencialmente essas regras so o endosso da intuio de um usurio um pouco mais experiente, que facilmente percebe que em um pipeline no pode haver "vazamentos" nem "entupimentos" do pipe, isto , no pode haver no meio do pipeline um comando que no produza sadas (como o caso do mkdir ou rm), ou um comando que no aceite entradas (como o caso do date e pwd). O primeiro comando do pipeline deve ser um produtor de sada, obviamente. Exemplo: $ ls la | more esta linha de comando faz a listagem longa de arquivos que enviado ao comando more (que tem a funo de efetuar uma pausa a cada 25 linhas do arquivo). $ ls | grep arq | wc l esta linha de comando conta o nmero de arquivos que comeam com a substring arq no diretrio corrente : $ who | wc l esta linha de comando conta o nmero de usurios que esto presentes no sistema neste momento. Outro exemplo o comando "locate find|grep bin/", neste comando todos os caminhos/arquivos que contm find na listagem sero mostrados (inclusive man pages, bibliotecas, etc.), ento enviamos a sada deste comando para grep bin/ para mostrar somente os diretrios que contm binrios. Mesmo assim a listagem ocupe mais de uma tela, podemos acrescentar o more: locate find | grep bin/ | more. Podem ser usados mais de um comando de redirecionamento (<, >, |) em um mesmo comando.

7.4.6

Diferena entre o "|" e o ">"

A principal diferena entre o "|" e o ">", que o Pipe envolve processamento entre comandos, ou seja, a sada de um comando enviada a entrada do prximo e o ">" redireciona a sada de um comando para um arquivo/dispositivo. Voc pode notar pelo exemplo acima (ls la | more) que ambos ls e more so comandos porque esto separados por um "|"! Se um deles no existir ou estiver digitado incorretamente, ser mostrada uma mensagem de erro. Um resultado diferente seria obtido usando um ">" no lugar do "|"; A sada do comando ls -la seria gravada em um arquivo chamado more.

7.4.7

tee Redirecionamentos multiplos

O comando tee "divide" a sada de um comando e redireciona-a para mltiplos destinos: para um arquivo especificado e para a sada padro 78

(tela). O comando tee em geral utilizado como um pedao de um pipeline. Se no estiver em um pipeline, o comando tee se comporta de maneira semelhante ao comando cat: recebendo linhas na entrada e ecoando-as na sada. tee [opes] arquivo comando | tee [arquivo] Opes: -a Faz a sada ser anexada aos arquivos especificados, em vez de substituir seus contedos; Exemplos: $ ls la | tee listagem.txt A sada do comando ser mostrada normalmente na tela e ao mesmo tempo gravada no arquivo listagem.txt. $ ls | grep arq | tee nomes | wc l Este comando conta o nmero de arquivos que comeam com a substring arq no diretrio corrente e guarde os arquivos encontrados no arquivo nomes. $ cat < arq2 | grep Linux | tee resp | wc l Este comando conta o nmero de ocorrncias da cadeia Linux no arquivo arq2, guarde as ocorrncias no arquivo resp.

7.5 Redirecionamento de erro padro


A entrada e a sada padro possuem nmeros de arquivos atribudos no Shell. A entrada padro est associada ao nmero 0 e a sada padro ao nmero 1. A sada de erro padro para onde os programas enviam suas mensagens de erros. Ela tambm possui um nmero, o 2. A mensagem de erro gerada por um comando normalmente direcionada pelo Shell para a sada de erro padro, que a mesma da sada padro e envia a mensagem de erro para a tele do nosso monitor. A sada de erro padro tambm pode ser redirecionada para um arquivo, utilizando o smbolo >. Uma vez que este smbolo tambm utilizado para redirecionar a sada padro, necessrio fazer uma distino mais detalhada para evitar ambigidade. Os descritores de arquivos a seguir especificam a entrada padro, sada padro e sada de erro padro: 0 Entrada padro; 1 Sada padro; 2 Sada de erro padro; O descritor do arquivo deve ser colocado imediatamente antes dos caracteres de redirecionamento. Por exemplo, 1> indica a sada padro, enquanto 2> indica a sada de erro padro. Assim, o comando mkdir temp 2> errfile faz o Shell direcionar qualquer mensagem de erro para o arquivo errfile. As indicaes da entrada padro (0>) e sada padro (1>) so necessrias apenas para evitar ambigidade. Exemplo: $ find / -name meu.arquivo > find.res p $ cat find.resp /home/guest/meu.arquivo $cat find.erro find : /guest/1/fd : permission denied 2> find.erro

79

find : /guest/adm/.netscape : permission denied $

8 Gerenciamento da execuo de comandos/programas


8.1 Processos
Cada vez que voc executa um comando, um processo iniciado. Processo o nome oficial de um comando que est sendo executado. A cada processo designado um nmero nico, e o computador controla a distribuio do tempo de processamento entre os processos que esto rodando, baseado neste nmero. Como o LINUX s dispe de um nico processador, ele trabalha em cada processo durante um tempo muito curto e depois passa para outro processo, parecendo assim que todos os processos esto rodando simultaneamente. Desta forma, cada processo executado com relativa rapidez e os usurios no precisam esperar o trmino dos outros processos para que o seu seja executado. O processo associado a cada comando permanece ativo apenas at o encerramento da execuo do comando. Voc pode ter controle sobre os processos que esto rodando, listando-os, parando-os ou matando-os.

8.2 Estrutura de processos


Semelhante ao sistema de arquivos, a organizao dos processos hierrquica. Apresenta pais e filhos, e at mesmo um processo raiz. O processo pai cria o processo filho, que tambm pode criar outros processos. O termo nascer (spawn) utilizado para indicar a criao de processos. O primeiro processo iniciado quando o sistema inicializado o init. Semelhante ao diretrio raiz, no sistema de arquivos, este processo o ancestral de todos os processos.

80

8.3 Processos do usurio


Enquanto estiver em uma sesso LINUX, voc est necessariamente rodando ao menos um processo, aquele associado ao seu shell (sh, para Bourne Shell ou csh, para C Shell). Se voc executar qualquer comando, ele se torna um processo, que criado pela shell, e recebe um nmero de processo. Neste instante, o processo pai, que o processo associado ao seu shell, se torna inativo e dizemos que est dormindo ( sleeping ). O processo associado ao comando que voc est executando chamado de processo corrente. Ao terminar de executar o comando este processo "morre", e o seu processo pai reassume o controle - este o processo associado ao seu shell. Quando nenhum comando est sendo executado, o processo corrente o associado ao seu shell. Voc pode listar todos os seus processos que esto rodando em um determinado momento, usando o comando ps, que veremos logo mais adiante, e da descobrir o nmero de um determinado processo (o process - id ou PID), que a informao mais importante para voc control-lo.

8.4 Executando um comando/programa


Para executar um comando, necessrio que ele tenha permisses de execuo. No aviso de comando #(root) ou $(usurio), digite o nome do comando e tecle Enter. O programa/comando executado e receber um nmero de identificao (chamado de PID - Process Identification), este nmero til para identificar o processo no sistema e assim ter um controle sobre sua execuo (ser visto mais adiante neste captulo). Todo o programa recebe uma identificao de usurio (UID) quando executado o que determina quais sero suas permisses de acesso durante sua execuo. O programa normalmente usa o UID do usurio que o executou ou o usurio configurado pelo bit de permisso de acesso SUID caso estiver definido. Existem tambm programas que so executados como root e modificam sua identificao de usurio para algum que tenha menos privilgios no sistema (como o Apache, por exemplo). Todo o programa executado no GNU/Linux roda sob o controle das permisses de acesso. Exemplos de comandos: ls, df, pwd.

8.5 path
Path o caminho de procura dos arquivos/comandos executveis. O path (caminho) armazenado na varivel de ambiente PATH. Voc pode ver o contedo desta varivel com o comando echo $PATH. Por exemplo, o caminho /usr/local/bin:/usr/bin:/bin:/usr/bin/X11 significa que se voc digitar o comando ls, o interpretador de comandos iniciar a procura do programa ls no diretrio /usr/local/bin, caso no encontre o arquivo no diretrio /usr/local/bin ele inicia a procura em /usr/bin, at que encontre o arquivo procurado. Caso o interpretador de comandos chegue at o ltimo diretrio do path e no encontre o arquivo/comando digitado, mostrada a seguinte mensagem: bash: ls: command not found (comando no encontrado). O caminho de diretrios vem configurado na instalao do Linux, mas pode ser alterado no arquivo /etc/profile. Caso deseje alterar o caminho 81

para todos os usurios, este arquivo o melhor lugar, pois ele lido por todos os usurios no momento do login. Caso um arquivo/comando no esteja localizado em nenhum dos diretrios do path, voc deve execut-lo usando um ./ na frente do comando. Se deseja alterar o path para um nico usurio, modifique o arquivo .bash_profile em seu diretrio de usurio (home). OBSERVAO: Por motivos de segurana, no inclua o diretrio atual $PWD no path.

8.6 Tipos de Execuo de comandos/programas


Um programa pode ser executado de duas formas: Primeiro Plano - Tambm chamado de foreground . Quando voc deve esperar o trmino da execuo de um programa para executar um novo comando. Somente mostrado o aviso de comando aps o trmino de execuo do comando/programa. Segundo Plano - Tambm chamado de background . Quando voc no precisa esperar o trmino da execuo de um programa para executar um novo comando. Aps iniciar um programa em background , mostrado um nmero PID (identificao do Processo) e o aviso de comando novamente mostrado, permitindo o uso normal do sistema. O programa executado em background continua sendo executado internamente. Aps ser concludo, o sistema retorna uma mensagem de pronto acompanhado do nmero PID do processo que terminou. Para iniciar um programa em primeiro plano, basta digitar seu nome normalmente. Para iniciar um programa em segundo plano, acrescente o caractere "&" aps o final do comando. OBS: Mesmo que um usurio execute um programa em segundo plano e saia do sistema, o programa continuar sendo executado at que seja concludo ou finalizado pelo usurio que iniciou a execuo (ou pelo usurio root). Exemplo: find / -name boot.b & O comando ser executado em segundo plano e deixar o sistema livre para outras tarefas. Aps o comando find terminar, ser mostrada uma mensagem.

8.7

Executando comandos/programas em seqncia

Quando uma linha do comando informada, a shell cria um processo para executar o comando e passa para o estado sleeping at o processo se encerrar, devolvendo o controle ao processo da shell. O usurio no pode iniciar outros comandos enquanto o processo corrente estiver em execuo. Ao invs de informar comandos separadamente e aguardar a vez de cada um ser executado, mltiplos comandos podem ser informados em uma nica linha do comando, utilizando um ponto e vrgula (;) como separador entre os comandos. O ponto e vrgula (;) permite a execuo serial de mltiplos comandos em uma nica linha do comando. Cada comando separado do prximo por ponto e vrgula. O <ENTER> assinala o fim da linha do comando. Os espaos antes e depois do ponto e vrgula no so importantes, embora sejam geralmente utilizados por conveno. Os comandos so executados na sequncia especificada na linha do comando. Por exemplo: $ who ; date > arq 82

guest tty1 May 20 09:56 $ cat arq Mon May 20 10:10:28 WST $

1996

8.8 Agrupando comandos


Mltiplos comandos podem tambm serem agrupados quando colocados entre parnteses ( ). O ponto e vrgula ainda utilizado para separar os comandos. O shell trata cada grupo de comandos entre parnteses como uma tarefa simples e divide os processos filhos quando necessrio. A ordem da execuo do programa mantida. O agrupamento de comandos geralmente utilizado quando se deseja sada combinada de mltiplos comandos. Por exemplo: $ ( who ; date ) > arq $ cat arq guest tty1 May 20 09:56 Mon May 20 10:10:28 WST 1996 $

8.9 foreground e "background"


Tipicamente, o shell permanece inativo durante a execuo de um comando. No podendo ser executado outro comando enquanto o comando anterior no tenha sido concludo e o shell exiba outro prompt do comando. Esta maneira de executar os comandos chamada de execuo em foreground. Nesta modalidade um programa que leva muito tempo para ser executado resulta na diminuio de produtividade, uma vez que o usurio aguarda o encerramento do programa, para somente depois executar outro comando ou programa. Como alternativa, os comandos podem ser executados em background. Que uma maneira de executar comandos que permite que o programa seja executado (em background, ou "em bg"), sem indisponibilizar o shell, onde voc pode continuar executando comandos ou programas e foreground. A execuo em background geralmente utilizada em programas que levam muito tempo para serem executados. O smbolo & ao final de um comando leva o shell a executar o comando em background. O PID (nmero de identificao do processo) exibido automaticamente, indicando que o processo foi iniciado, e em seguida apresentado um novo prompt do shell. O processo em background executado quando a carga de servio do sistema permite. A sada do processo continua sendo enviada sada padro, a menos que seja redirecionada para um arquivo, por exemplo, o que frequentemente utilizado. Exemplo: Procure a partir da raiz, todos os arquivos com extenso .c, desvie os erros para find.erro e a resposta para find.resp. Execute em background: $ ( find / -name *.c > find.resp 2> find.erro )& [ 1 ] 220 $

8.10ps Consultando informaes sobre os processos


Algumas vezes til ver quais processos esto sendo executados no computador. O comando ps exibe informaes sobre processos ativos de 83

acordo com as opes selecionadas. Os cabealhos de colunas de informaes apresentadas dependem das opes especificadas. Por exemplo, a opo - f exibe oito colunas de informaes; a opo - l exibe 15 colunas. As descries de cada coluna esto abaixo. Podem ser combinadas mltiplas opes. Algumas opes aceitam listas de parmetros. Se no forem especificadas opes, so exibidas informaes sobre processos rodando debaixo da identificao do usurio e associados apenas ao terminal corrente. A sada, neste caso, contm a identificao do processo, identificador do terminal, tempo de execuo cumulativo e nome do comando. ps [opes] Onde: opes -a Mostra os processos criados por voc e de outros usurios do sistema. -x Mostra processos que no so controlados pelo terminal. -u Mostra o nome de usurio que iniciou o processo e hora em que o processo foi iniciado. -m Mostra a memria ocupada por cada processo em execuo. -f Mostra a rvore de execuo de comandos (comandos que so chamados por outros comandos). -l Exibe uma lista com 15 colunas de informaes; -t term Exibe informaes de processos para o terminal especificado; -e Mostra variveis de ambiente no momento da inicializao do processo. -w Mostra a continuao da linha atual na prxima linha ao invs de cortar o restante que no couber na tela. --sort: [coluna] Organiza a sada do comando ps de acordo com a coluna escolhida. Voc pode usar as colunas pid, utime, ppid, rss, size, user, priority. Pode ser especificada uma listagem em ordem inversa especificando --sort:[-coluna]. Cabealhos da Coluna: F Valor em octal que d maiores informaes sobre a situao corrente do processo; S Nesta coluna apresentado o estado do processo, conforme a seguir: O - No existente; S - Adormecido (sleeping); R - Rodando (running); I - Intermedirio; Z - Interrompido; T - Terminado; B - Esperando (blocked); UID Identificao do usurio proprietrio do processo; PID Identificao do processo; PPID Identificao do processo pai; C Taxa de utilizao do processador (CPU); PRI Prioridade do processo (valores mais altos indicam prioridades mais baixas); NI Valor utilizado na computao da prioridade. Pode ser atribudo pelo usurio, atravs do comando nice; 84

ADDR Endereo da memria do processo; SZ Tamanho do processo (em pginas ou blocos) na memria; WCHAN Evento pelo qual o processo est esperando, e por isso est em sleeping ou em waiting. Se estiver em branco, o processo est em execuo; STIME Hora do incio da execuo do processo; TTY Terminal controlador; TIME Tempo de execuo cumulativo do processo; CMD Nome do comando e argumentos associados ao processo; As opes acima podem ser combinadas para resultar em uma listagem mais completa. Voc tambm pode usar pipes "|" para filtrar a sada do comando ps. Ao contrrio de outros comandos, o comando ps no precisa do hfen "-" para especificar os comandos. Isto porque ele no utiliza opes longas e no usa parmetros. Exemplos: $ ps ax|grep inetd $ ps auxf $ ps auxw 1- Mostre o status dos processos: $ ps PID TTY STAT TIME COMMAND 152 v01 S 0:00 - bash 225 v01 R 0:00 ps 2- Mostre o status dos processos do usurio guest: $ ps - u guest USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND 528 152 0.0 1.6 368 532 v01 S 09:47 0:00 -bash 528 226 0.0 0.6 73 216 v01 R 19:15 0:00 ps
Notas : A s opes e colunas aqui des critas podem variar para alguns s is tem as .

8.11 top - Consultando informaes dinamicamente


Mostra os programas em execuo ativos, parados, tempo usado na CPU, detalhes sobre o uso da memria RAM, Swap, disponibilidade para execuo de programas no sistema, etc. O comando top nos d a mesma sada do ps, porm fica permanentemente exibindo os processos em execuo em seu computador, os recursos utilizados por eles e atualizando-os regularmente em intervalos de 5 segundos por padro. Para sair do top, pressione a tecla q. top [opes] Onde: -d [tempo] Atualiza a tela aps o [tempo] (em segundos). -s Diz ao top para ser executado em modo seguro. -i Inicia o top ignorando o tempo de processos zumbis. -c Mostra a linha de comando ao invs do nome do programa. A ajuda sobre o top pode ser obtida dentro do programa pressionando a tecla h ou pela pgina de manual (man top). Abaixo algumas teclas teis: Espao Atualiza imediatamente a tela. CTRL+L Apaga e atualiza a tela. 85

h i q k

Mostra a tela de ajuda do programa. mostrada toda a tecla que podem ser usadas com o top. Ignora o tempo ocioso de processos zumbis. Sai do programa. Finaliza um processo - semelhante ao comando kill. Voc ser perguntado pelo nmero de identificao do processo (PID). Este comando no estar disponvel caso esteja usando o top com a opo -s. Muda o nmero de linhas mostradas na tela. Se 0 for especificado, ser usada toda a tela para listagem de processos.

8.12 Controle de execuo de processos


Abaixo alguns comandos e mtodos execuo de processos no GNU/Linux. teis para o controle da

8.12.1

Interrompendo a execuo de um processo

Para cancelar a execuo de algum processo rodando em primeiro plano, basta pressionar as teclas CTRL+C. A execuo do programa ser cancelada e ser mostrado o aviso de comando. Voc tambm pode usar o comando kill, para interromper um processo sendo executado.

8.12.2 Parando momentaneamente a execuo de um processo


Para parar a execuo de um processo rodando em primeiro plano, basta pressionar as teclas CTRL+Z. O programa em execuo ser pausado e ser mostrado o nmero de seu job e o aviso de comando. Para retornar a execuo de um comando pausado, use fg ou bg. O programa permanece na memria no ponto de processamento em que parou quando ele interrompido. Voc pode usar outros comandos ou rodar outros programas enquanto o programa atual est interrompido.

8.12.3

jobs

Job qualquer seqncia de comandos. O recurso de controle de job permite ao usurio suspender, reiniciar ou encerrar jobs, como tambm mudar jobs entre a execuo em background e foreground. Os jobs apresentam os seguintes estados : Foreground: O job processado imediatamente antes do controle retornar ao shell e outro prompt do shell seja exibido. Background: O job executado e o shell retorna imediatamente o controle ao usurio enquanto o sistema continua a processar o job. Interrompido (Suspenso): o job que est parado temporariamente. Este job pode ser reiniciado ou encerrado. Concludo (Killed): Job que est parado e concludo. Este job no pode ser reiniciado. jobs [-opes] Opes : -l Lista o status de todos os jobs.

Lista completa de todos os jobs incluindo PDIs 86

-p Exibe somente PDIs associados com jobs em execuo. fg id_job Coloca o job em foreground <^z> Suspende job em foreground bg id_job Coloca o job indicado em background stop id_job Suspende o job indicado em background kill id_job Encerra o job indicado O nmero de identificao de cada processo parado ou em segundo plano (job), usado com os comandos fg e bg. Um processo interrompido pode ser finalizado usando-se o comando kill %[num], onde [num] o nmero do processo obtido pelo comando jobs. Exemplos: 1-Execute um job em background. Observe o que a identificao do job e o nmero do PID so exibidos : $ sleep 300& [ 1 ] 3105 2-Liste os jobs correntes. A sada do comando inclui o nmero do job entre [ ], o status do job (corrente,anterior,em execuo, interrompido,concludo) e a linha do comando. O sinal ( + ) aps o nmero do job indica o job corrente; o sinal ( - ) indica o job anterior.. $ jobs [ 1 ]+ running sleep 300& 3-Mude o job para foreground utilizando o nmero do job : $ fg %sleep 4-Suspenda o job em foreground corrente. Observe o status Stopped no display: <CTRL z > [ 1 ]+Stopped sleep 300& 5-Mude o job contendo a sequncia de caracteres sleep para background : $ bg %sleep [ 1 ] sleep 300&

8.12.4 fg - foreground
Permite fazer um programa rodando em segundo plano ou parado, rodar em primeiro plano. Voc deve usar o comando jobs para pegar o nmero do processo rodando em segundo plano ou interrompida, este nmero ser passado ao comando fg para ativ-lo em primeiro plano. fg [nmero] Onde nmero o nmero obtido atravs do comando jobs. Caso seja usado sem parmetros, o fg utilizar o ltimo programa interrompido (o maior nmero obtido com o comando jobs). Exemplo: fg 1.

8.12.5 bg - background
Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo plano. Para fazer um programa em primeiro plano rodar em segundo, necessrio primeiro interromper a execuo do comando com CTRL+ Z, ser mostrado o nmero da tarefa interrompida, use este 87

nmero com o comando bg para iniciar a execuo do comando em segundo plano. bg [nmero] Onde: nmero o nmero do programa obtido com o pressionamento das teclas CTRL+Z ou atravs do comando jobs.

8.12.6

kill

Depois que um processo est em execuo, independente de seu estado podemos ter a necessidade de interromp-lo. A esta ao chamamos de matar um processo, e o comando que utilizamos para isto o kill. O comando kill permite enviar sinais que alteram o comportamento do processo em um determinado momento. Podemos utilizar a flag -l para que o comando kill nos fornea a relao completa dos sinais disponveis e o nmero correspondente de cada um deles. kill [opes] [sinal] [nmero] Onde: nmero o nmero de identificao do processo obtido com o comando ps. Tambm pode ser o nmero aps o sinal de % obtido pelo comando jobs para matar uma tarefa interrompida. sinal Sinal que ser enviado ao processo. Se omitido usa -15 como padro. opes -9 Envia um sinal de destruio ao processo ou programa. Ele terminado imediatamente sem chances de salvar os dados ou apagar os arquivos temporrios criados por ele. -l Enumera os nomes dos sinais Voc precisa ser o dono do processo ou o usurio root para terminlo ou destru-lo. Voc pode verificar se o processo foi finalizado atravs do comando ps. Os tipos de sinais aceitos pelo GNU/Linux so explicados em detalhes em Sinais do Sistema. Exemplo: $ ps PID TTY STAT TIME COMMAND 152 v01 S 0:00 bash 230 v01 R 0:00 ps 231 v01 S 0:00 sleep 30 $ kill 231 $ ps PID TTY STAT TIME COMMAND 152 v01 S 0:00 bash 230 v01 R 0:00 ps [ 1 ]+Terminated sleep 30 $

8.12.7

killall

88

Tem a mesma funcionalidade do comando kill, porm pode ser utilizado para atuar em vrios processos ao mesmo tempo e permite finalizar processos atravs do nome. killall [opes] [sinal] [processo ] Onde: processo Nome do processo que deseja finalizar sinal Sinal que ser enviado ao processo (pode ser obtido usando a opo -i). opes -i Pede confirmao sobre a finalizao do processo. -l Lista o nome de todos os sinais conhecidos. -q Ignora a existncia do processo. -v Retorna se o sinal foi enviado com sucesso ao processo. -w Finaliza a execuo do killall somente aps finalizar todos os processos. Os tipos de sinais aceitos pelo GNU/Linux so explicados em detalhes em Sinais do Sistema. Exemplo: killall -HUP inetd

8.12.8 Fechando um programa quando no se sabe como sair


Muitas vezes quando se esta iniciando no GNU/Linux voc pode executar um programa e talvez no saber como fech-lo. Este captulo do guia pretende ajud-lo a resolver este tipo de problema. Isto pode tambm ocorrer com programadores que esto construindo seus programas e por algum motivo no implementam uma opo de sada, ou ela no funciona! Em nosso exemplo vou supor que executamos um programa em desenvolvimento com o nome contagem que conta o tempo em segundos a partir do momento que executado, mas que o programador esqueceu de colocar uma opo de sada. Siga estas dicas para finaliz-lo : Normalmente todos os programas UNIX (o GNU/Linux tambm um Sistema Operacional baseado no UNIX) podem ser interrompidos com o pressionamento das teclas <CTRL> e <C>. Tente isto primeiro para finalizar um programa. Isto provavelmente no vai funcionar se estiver usando um Editor de Texto (ele vai entender como um comando de menu). Isto normalmente funciona para comandos que so executados e terminados sem a interveno do usurio. Caso isto no der certo, vamos partir para a fora! Mude para um novo console (pressionando <ALT> e <F2>), e faa o login como usurio root. Localize o PID (nmero de identificao do processo) usando o comando: ps ax, aparecero vrias linhas cada uma com o nmero do processo na primeira coluna, e a linha de comando do programa na ltima coluna. Caso aparecerem vrios processos voc pode usar ps ax|grep contagem, neste caso o grep far uma filtragem da sada do comando ps ax mostrando somente as linhas que tem a palavra "contagem". Para maiores detalhes, veja o comando grep. Feche o processo usando o comando kill PID, lembre-se de substituir PID pelo nmero encontrado pelo comando ps ax acima. 89

O comando acima envia um sinal de trmino de execuo para o processo (neste caso o programa contagem). O sinal de trmino mantm a chance do programa salvar seus dados ou apagar os arquivos temporrios que criou e ento ser finalizado, isto depende do programa. Alterne para o console onde estava executando o programa contagem e verifique se ele ainda est em execuo. Se ele estiver parado mas o aviso de comando no est disponvel, pressione a tecla <ENTER>. Freqentemente acontece isto com o comando kill, voc finaliza um programa mas o aviso de comando no mostrado at que se pressione <ENTER>. Caso o programa ainda no foi finalizado, repita o comando kill usando a opo -9: kill -9 PID. Este comando envia um sinal de DESTRUIO do processo, fazendo-o terminar "na marra"! Uma ltima dica: todos os programas estveis (todos que acompanham as boas distribuies GNU/Linux) tm sua opo de sada. Lembre-se que quando finaliza um processo todos os dados do programa em execuo podem ser perdidos (principalmente se estiver em um editor de textos), mesmo usando o kill sem o parmetro -9. Procure a opo de sada de um programa consultando o help on line, s pginas de manual, a documentao que acompanha o programa, info pages.

8.12.9

Eliminando caracteres estranhos

As vezes quando um programa mal comportado finalizado ou quando voc visualiza um arquivo binrio atravs do comando cat, possvel que o aviso de comando (prompt) volte com caracteres estranhos. Para fazer tudo voltar ao normal, basta digitar reset e teclar ENTER. No se preocupe, o comando reset no reiniciar seu computador (como o boto reset do seu computador faz), ele apenas far tudo voltar ao normal. Note que enquanto voc digitar reset aparecero caracteres estranhos ao invs das letras. No se preocupe! Basta digitar corretamente e bater ENTER e o aviso de comando voltar ao normal.

90

9 Compactadores
Esta seo explica o que so e como usar programas compactadores no GNU/Linux, as caractersticas de cada um, como identificar um arquivo compactado e como descompactar um arquivo compactado usando o programa correspondente. A utilizao de arquivos compactados mtodo til principalmente para reduzir o consumo de espao em disco ou permitir grandes quantidades de texto serem transferidas para outro computador atravs de disquetes.

9.1 O que fazem os compactadores/descompactadores?


Compactadores so programas que diminuem o tamanho de um arquivo (ou arquivos) atravs da substituio de caracteres repetidos. Para entender melhor como eles funcionam, veja o prximo exemplo: compactadores compactam e deixam arquivos compactados. -- aps a compactao da frase -%dores %m e deixam arquivos %dos O que aconteceu realmente foi que a palavra compacta se encontrava 3 vezes na frase acima, e foi substituda por um sinal de %. Para descompactar o processo seria o contrrio: Ele substituiria % por compacta e ns temos a frase novamente restaurada. Voc deve ter notado que o tamanho da frase compactada caiu quase pela metade. A quantidade de compactao de um arquivo chamada de taxa de compactao . Assim se o tamanho do arquivo for diminudo a metade aps a compactao, dizemos que conseguiu uma taxa de compactao de 2:1 (l-se dois para um), se o arquivo diminuiu 4 vezes, dizemos que conseguiu uma compactao de 4:1 (quatro para um) e assim por diante. Para controle dos caracteres que so usados nas substituies, os programas de compactao mantm cabealhos com todas as substituies usadas durante a compactao. O tamanho do cabealho pode ser fixo ou definido pelo usurio, depende do programa usado na compactao. Este um exemplo bem simples para entender o que acontece durante a compactao, os programas de compactao executam instrues muito avanadas e cdigos complexos para atingir um alta taxa de compactao. Observaes: No possvel trabalhar diretamente com arquivos compactados! necessrio descompactar o arquivo para us-lo. Note que alguns programas atualmente suportam a abertura de arquivos compactados, mas na realidade eles apenas simplificam a tarefa descompactando o arquivo, abrindo e o recompactando assim que o trabalho estiver concludo. Arquivos de texto tm uma taxa de compactao muito melhor que arquivos binrios, porque possuem mais caracteres repetidos. normal atingir taxas de compactao de 10 para 1 ou mais quando se compacta 91

um arquivo texto. Arquivos binrios, como programas, possuem uma taxa de compactao mdia de 2:1. Note que tambm existem programas compactadores especialmente desenvolvidos para compactao de msicas, arquivos binrios, imagens, textos.

9.2 Tipos de compactao


Existem basicamente dois tipos de compactao, a compactao sem perdas e a compactao com perdas. Os exemplos a seguir tentam explicar de forma simples os conceitos envolvidos. A compactao sem perdas, como o prprio nome diz no causa nenhuma perda nas informaes contidas no arquivo. Quando voc compacta e descompacta um arquivo, o contedo o mesmo do original. A compactao com perdas um tipo especfico de compactao desenvolvido para atingir altas taxas, porm com perdas parciais dos dados. aplicada a tipos de arquivos especiais, como msicas e imagens ou arquivos que envolvam a percepo humana. Sabe-se que o ouvido humano no to sensvel a determinados sons e freqncias, ento a compactao de um arquivo de msica poderia deixar de gravar os sons que seriam pouco percebidos, resultando em um arquivo menor. Uma compactao do tipo ogg ou mp3 utiliza-se destes recursos. O arquivo resultante muito menor que o original, porm alguns dados sonoros so perdidos. Voc s notaria se estivesse reproduzindo a msica em um equipamento de alta qualidade e se tivesse um ouvido bem aguado. Para efeitos prticos, voc est ouvindo a mesma msica e economizando muito espao em disco. Outro exemplo de compactao com perdas so as imagens jpg. Imagine que voc tem uma imagem com 60000 tons de cor diferentes, mas alguns tons so muito prximos de outros, ento o compactador resume para 20000 tons de cor e a imagem ter 1/3 do tamanho original e o nosso olho conseguir entender a imagem sem problemas e quase no perceber a diferena. Exemplos de extenses utilizadas em imagens compactadas so jpg, png, gif. Apesar das vantagens da grande taxa de compactao conseguida nos processos com perdas, nem sempre podemos utiliz-lo. Quando compactamos um texto ou um programa, no podemos ter perdas, seno o nosso texto sofre alteraes ou o programa no executa. Nem mesmo podemos tem perdas quando compactamos imagens ou musicas que sero utilizadas em processos posteriores de masterizao, mixagem ou impresso em alta qualidade.

9.3 Extenses de arquivos compactados


As extenses identificam o tipo de um arquivo e assim o programa o programa necessrio para trabalhar com aquele tipo de arquivo. Existem dezenas de extenses que identificam arquivos compactados. Quando um arquivo (ou arquivos) compactado, uma extenso correspondente ao programa usado adicionada ao nome do arquivo (caso o arquivo seja compactado pelo gzip receber a extenso .gz, por exemplo). Ao 92

descompactar acontece o contrrio: a extenso retirada do arquivo. Abaixo segue uma listagem de extenses mais usadas e os programas correspondentes: .gz Arquivo compactado pelo gzip. Use o programa gzip para descompact-lo . .bz2 Arquivo compactado pelo bzip2. Use o programa bzip2 para descompact-lo . .Z Arquivo compactado pelo programa compress. Use o programa uncompress para descompact-lo. .zip Arquivo compactado pelo programa zip. Use o programa unzip para descompact-lo . .rar Arquivo compactado pelo programa rar. Use o programa rar para descompact-lo . .tar.gz Arquivo compactado pelo programa gzip no utilitrio de arquivamento tar. Para descompact-lo, voc pode usar o gzip e depois o tar ou somente o programa tar usando a opo -z. .tgz Abreviao de .tar.gz. .tar.bz2 Arquivo compactado pelo programa bzip2 no utilitrio de arquivamento tar. Para descompact-lo , voc pode usar o bzip2 e depois o tar ou somente o programa tar usando a opo -j. .tar.Z Arquivo compactado pelo programa compress no utilitrio de arquivamento tar. Para descompact-lo , voc pode usar o uncompress e depois o tar ou somente o programa tar usando a opo -Z.

9.4 gzip
praticamente o compactador padro do GNU/Linux, possui uma tima taxa de compactao e velocidade. A extenso dos arquivos compactados pelo gzip a .gz, na verso para DOS, Windows NT usada a extenso .z. gzip [opes] [arquivos] Onde: arquivos Especifica quais arquivos sero compactados pelo gzip. Caso seja usado um -, ser assumido a entrada padro. Curingas podem ser usados para especificar vrios arquivos de uma s vez.

Opes -d [arquivo] Descompacta um arquivo. -f Fora a compactao, compactando at mesmo links. -l [arquivo] Lista o contedo de um arquivo compactado pelo gzip. -r Compacta diretrios e subdiretrios. -c [arquivo] Descompacta o arquivo para a sada padro. -t [arquivo] Testa o arquivo compactado pelo gzip. -[num], --fast, --best Ajustam a taxa de compactao/velocidade da compactao. Quanto melhor a taxa menor a velocidade de compactao e vice-versa. A opo --fast permite uma compactao rpida e tamanho do arquivo maior. A opo --best permite uma melhor compactao e uma velocidade menor. O uso da opo [nmero] permite especificar uma compactao individualmente usando nmeros entre 1 (menor compactao) e 9 (melhor compactao). til para buscar um bom equilibro entre taxa de 93

compactao/velocidade (especialmente em computadores muito lentos). Quando um arquivo compactado pelo gzip, automaticamente acrescentada a extenso .gz ao seu nome. O gzip tambm reconhece arquivos compactados pelos programas zip, compress, compress -H e pack. As permisses de acesso dos arquivos so tambm armazenadas no arquivo compactado. Exemplos: gzip -9 texto.txt - Compacta o arquivo texto.txt usando a compactao mxima (compare o tamanho do arquivo compactado usando o comando ls -la). gzip -d texto.txt.gz - Descompacta o arquivo texto.txt gzip -c texto.txt.gz - Descompacta o arquivo texto.txt para a tela gzip -9 *.txt - Compacta todos os arquivos que terminam com .txt gzip -t texto.txt.gz - Verifica o arquivo texto.txt.gz.

9.5 zip
Utilitrio de compactao compatvel com pkzip (do DOS) e trabalha com arquivos de extenso .zip. Possui uma tima taxa de compactao e velocidade no processamento dos arquivos compactados (comparando-se ao gzip). zip [opes] [arquivo-destino ] [arquivos-origem] Onde: arquivo-destino Nome do arquivo compactado que ser gerado. arquivos-origem Arquivos/Diretrios que sero compactados. Podem ser usados curingas para especificar mais de um arquivo de uma s vez opes -r Compacta arquivos e subdiretrios. -e Permite encriptar o contedo de um arquivo .zip atravs de senha. A senha ser pedida no momento da compactao. -f Somente substitui um arquivo compactado existente dentro do arquivo .zip somente se a verso mais nova que a atual. No acrescenta arquivos ao arquivo compactado. Deve ser executado no mesmo diretrio onde o programa zip foi executado anteriormente. -F Repara um arquivo .zip danificado. -[NUM] Ajusta a qualidade/velocidade da compactao. Pode ser especificado um nmero de 1 a 9. O 1 permite mnima compactao e mxima velocidade, 9 permite uma melhor compactao e menor velocidade. -i [arquivos] Compacta somente os [arquivos] especificados. -j Se especificado, no armazena caminhos de diretrios. -m Apaga os arquivos originais aps a compactao. -T [arquivo] Procura por erros em um arquivo .zip. Caso sejam detectados problemas, utilize a opo -F para corrigi-los. -y Armazena links simblicos no arquivo .zip. Por padro, os links simblicos so ignorados durante a compactao. -k [arquivo] Modifica o [arquivo] para ter compatibilidade total com o pkzip do DOS. 94

-n [extenso] No compacta arquivos identificados por [extenso]. Ele armazenado sem compactao no arquivo .zip, muito til para uso com arquivos j compactados. Caso sejam especificadas diversas extenses de arquivos, elas devem ser separadas por: - Por exemplo, zip -n .zip:.tgz arquivo.zip *.txt. -q No mostra mensagens durante a compactao do arquivo. -u Atualiza/adiciona arquivos ao arquivo .zip -X No armazena detalhes de permisses, UID, GID e datas dos arquivos. -z Permite incluir um comentrio no arquivo .zip. Caso o nome de arquivo de destino no termine com .zip, esta extenso ser automaticamente adicionada. Para a descompactao de arquivos .zip no GNU/Linux, necessrio o uso do utilitrio unzip. Exemplos: zip textos.zip *.txt Compacta todos os arquivos com a extenso .txt para o arquivo textos.zip (compare o tamanho do arquivo compactado digitando ls -la). zip -r textos.zip /usr/*.txt Compacta todos os arquivos com a extenso .txt do diretrio /usr e sub-diretrios para o arquivo textos.zip. zip -9 textos.zip * Compacta todos os arquivos do diretrio atual usando a compactao mxima para o arquivo textos.zip. zip -T textos.zip Verifica se o arquivo textos.zip contm erros.

9.6 unzip
Descompacta arquivos .zip criados com o programa zip. Este programa tambm compatvel com arquivos compactados pelo pkzip do DOS. unzip [opes] [arquivo.zip] [arquivos-extrair] [-d diretrio] Onde: arquivo.zip Nome do arquivo que deseja descompactar. Podem ser usados curingas para especificar mais de um arquivo para ser descompactado. arquivos-extrair Nome dos arquivos (separados por espao) que sero descompactados do arquivo .zip. Caso no seja especificado, assumido * (todos os arquivos sero descompactados). Se for usado -x arquivos, os arquivos especificados no sero descompactados. O uso de curingas permitido. -d diretrio Diretrio onde os arquivos sero descompactados. Caso no for especificado, os arquivos sero descompactados no diretrio atual. opes -c Descompacta os arquivos para stdout (sada padro) ao invs de criar arquivos. Os nomes dos arquivos tambm so mostrados (veja a opo -p). -f Descompacta somente arquivos que existam no disco e mais novos que os atuais. -l Lista os arquivos existentes dentro do arquivo .zip. -M Efetua uma pausa a cada tela de dados durante o processamento (a mesma funo do comando more). -n Nunca substitui arquivos j existentes. Se um arquivo existe ele pulado. 95

-o

Substitui arquivos existentes sem perguntar. Tem a funo contrria a opo -n. -P [SENHA] Permite descompactar arquivos .zip usando a [SENHA]. CUIDADO! qualquer usurio conectado em seu sistema pode ver a senha digitada na linha de comando digitada. -p Descompacta os arquivos para stdout (sada padro) ao invs de criar arquivos. Os nomes dos arquivos no so mostrados (veja a opo -c). -q No mostra mensagens. -t Verifica o arquivo .zip em busca de erros. -u Idntico a opo -f s que tambm cria arquivos que no existem no diretrio. -v Mostra mais detalhes sobre o processamento do unzip. -z Mostra somente o comentrio existente no arquivo. Por padro o unzip tambm descompacta sub-diretrios caso o arquivo .zip tenha sido gerado com zip -r. Exemplos: unzip texto.zip Descompacta o contedo do arquivo texto.zip no diretrio atual. unzip texto.zip carta.txt Descompacta somente o arquivo carta.txt do arquivo texto.zip. unzip texto.zip -d /tmp/texto Descompacta o contedo do arquivo texto.zip para o diretrio /tmp/texto. unzip -l texto.zip Lista o contedo do arquivo texto.zip. unzip -t texto.zip Verifica o arquivo texto.zip.

9.7 tar
Na verdade o tar no um compactador e sim um "arquivador" (ele junta vrios arquivos em um s), mas pode ser usado em conjunto com um compactar (como o gzip ou zip) para armazen-los compactados. O tar tambm muito usado para cpias de arquivos especiais ou dispositivos do sistema. comum encontrar arquivos com a extenso .tar, .tar.gz, .tgz, .tar.bz2, .tar.Z, .tgZ, o primeiro um arquivo normal gerado pelo tar e todos os outros so arquivos gerados atravs tar junto com um programa de compactao (gzip (.gz), bzip2 (.bz2) e compress (.Z). tar [opes] [arquivo-destino] [arquivos-origem ] Onde: arquivo-destino o nome do arquivo de destino. Normalmente especificado com a extenso .tar caso seja usado somente o arquivamento ou .tar.gz/.tgz caso seja usada a compactao (usando a opo -z). arquivos-origem Especifica quais arquivos/diretrios sero compactados. opes -c Cria um novo arquivo .tar -t Lista o contedo de um arquivo .tar -u Atualiza arquivos compactados no arquivo .tar -j Usa o programa bzip2 para processar os arquivos do tar -M, --multi-volume Cria/lista/descompacta arquivos em mltiplos volumes. O uso de arquivos em mltiplos volumes permite que uma 96

grande cpia de arquivos que no cabe em um disquete, por exemplo, seja feita em mais de um disquete. -O Descompacta arquivos para a sada padro ao invs de gravar em um arquivo. --remove-files Apaga os arquivos de origem aps serem processados pelo tar. -W Tenta verificar o arquivo gerado pelo tar aps grava-lo. x Extrai arquivos gerados pelo tar -X [ARQUIVO] Tenta apagar o [ARQUIVO] dentro de um arquivo compactado .tar. -Z Usa o programa compress durante o processamento dos arquivos. -z Usa o programa gzip durante o processamento dos arquivos. A extenso precisa ser especificada no arquivo de destino para a identificao correta: Arquivos gerados pelo tar precisam ter a extenso .tar Caso seja usada a opo -j para compactao, a extenso dever ser .tar.bz2 Caso seja usada a opo -z para compactao, a extenso dever ser .tar.gz ou .tgz Caso seja usada a opo -Z para a compactao, a extenso dever ser .tar.Z ou .tgZ importante saber qual o tipo de compactador usado durante a gerao do arquivo .tar pois ser necessrio especificar a opo apropriada para descompacta-lo Exemplos: tar -cf index.txt.tar index.txt Cria um arquivo chamado index.txt.tar que armazenar o arquivo index.txt. Voc pode notar digitando ls -la que o arquivo index.txt foi somente arquivado (sem compactao), isto til para juntar diversos arquivos em um s. tar -xf index.txt.tar Desarquiva o arquivo index.txt criado pelo comando acima. tar -czf index.txt.tar.gz index.txt O mesmo que o exemplo de arquivamento anterior, s que agora usado a opo -z (compactao atravs do programa gzip). Voc agora pode notar digitando ls -la que o arquivo index.txt foi compactado e depois arquivado no arquivo index.txt.tar.gz (voc tambm pode chama-lo de index.txt.tgz que tambm identifica um arquivo .tar compactado pelo gzip) tar -xzf index.txt.tar.gz Descompacta e desarquiva o arquivo index.txt.tar.gz criado com o comando acima. gzip -dc index.tar.gz | tar -xf Faz o mesmo que o comando acima s que de uma forma diferente: Primeiro descompacta o arquivo index.txt.tar.gz e envia a sada do arquivo descompactado para o tar que desarquivar o arquivo index.txt. tar -cjf index.txt.tar.bz2 index.txt Arquiva o arquivo index.txt em index.txt.tar.bz2 compactando atravs do bzip2 (opo -j). tar -xjf index.txt.tar.bz2 Descompacta e desarquiva o arquivo index.txt.tar.bz2 criado com o comando acima. bzip2 -dc index.txt.tar.bz2 | tar -xf Faz o mesmo que o comando acima s que de uma forma diferente: Primeiro descompacta o arquivo index.txt.tar.bz2 e envia a sada do arquivo descompactado para o tar que desarquivar o arquivo index.txt. 97

tar -t index.txt.tar tar -tz index.txt.tar.gz

Lista o contedo de um arquivo .tar. Lista o contedo de um arquivo .tar.gz.

9.8 bzip2
um novo compactador que vem sendo cada vez mais usado porque consegue atingir a melhor compactao em arquivos texto se comparado aos j existentes (em conseqncia sua velocidade de compactao tambm menor; quase duas vezes mais lento que o gzip). Suas opes so praticamente as mesmas usadas no gzip, e voc tambm pode us-lo da mesma forma. A extenso dos arquivos compactados pelo bzip2 a .bz2 bzip2 [opes] [arquivos] Onde: arquivos Especifica quais arquivos sero compactados pelo bzip2. Caso seja usado um -, ser assumido a entrada padro. Curingas podem ser usados para especificar vrios arquivos de uma s vez. Opes -d [arquivo] Descompacta um arquivo. -f Fora a compactao, compactando at mesmo links. -l [arquivo] Lista o contedo de um arquivo compactado pelo bzip2. -r Compacta diretrios e subdiretrios. -c [arquivo] Descompacta o arquivo para a sada padro. -t [arquivo] Testa o arquivo compactado pelo bzip2. -[num], --fast, --best Ajustam a taxa de compactao/velocidade da compactao. Quanto melhor a taxa menor a velocidade de compactao e vice-versa. A opo --fast permite uma compactao rpida e um arquivo de tamanho maior. A opo --best permite uma melhor compactao e uma velocidade menor. O uso da opo -[nmero] permite especificar uma compactao individualmente usando nmeros entre 1 (menor compactao) e 9 (melhor compactao). til para buscar um bom equilibro entre taxa de compactao e/ou velocidade (especialmente em computadores muito lentos). Quando um arquivo compactado pelo bzip2, automaticamente acrescentada a extenso .bz2 ao seu nome. As permisses de acesso dos arquivos so tambm armazenadas no arquivo compactado. Exemplos: bzip2 -9 *.txt Compacta todos os arquivos que terminam com .txt bzip2 -t texto.txt.bz2 Verifica o arquivo texto.txt.bz2.

9.9 rar
O rar um compactador desenvolvido por Eugene Roshal e possui verses para GNU/Linux, DOS, Windows, OS/2 e Macintosh. Trabalha com arquivos de extenso .rar e permite armazenar arquivos compactados em vrios disquetes (mltiplos volumes). Trata-se de um produto comercial, mas decidi coloca-lo aqui porque possui boas verses Shareware e pode ser muito til em algumas situaes. rar [aes] [opes] [arquivo-destino.rar] [arquivos-origem] Onde: arquivo-destino.rar o nome do arquivo de destino 98

arquivos-origem Arquivos que sero compactados. Podem ser usados curingas para especificar mais de um arquivo. aes a Compacta arquivos x Descompacta arquivos d Apaga arquivos especificados t Verifica o arquivo compactado em busca de erros. r Repara um arquivo .rar danificado l Lista arquivos armazenados no arquivo compactado u Atualiza arquivos existentes no arquivo compactado. m Compacta e apaga os arquivos de origem (move). e Descompacta arquivos para o diretrio atual p Mostra o contedo do arquivo na sada padro s Converte um arquivo .rar normal em arquivo auto-extrctil. Arquivos auto-extrcteis so teis para enviar arquivos a pessoas que no tem o programa rar. Basta executar o arquivo e ele ser automaticamente descompactado (usando o sistema operacional que foi criado). Note que esta opo requer que o arquivo default.sfx esteja presente no diretrio home do usurio. Use o comando find para localiz-lo em seu sistema. opes o+ Substitui arquivos j existentes sem perguntar oNo substitui arquivos existentes sfx Cria arquivos auto-extrcteis. Arquivos auto-extrcteis so teis para enviar arquivos a pessoas que no tem o programa rar. Basta executar o arquivo e ele ser automaticamente descompactado. Note que este processo requer que o arquivo default.sfx esteja presente no diretrio home do usurio. Use o comando find para localiz-lo em seu sistema. y Assume sim para todas as perguntas r Inclui subdiretrios no arquivo compactado x [ARQUIVO] Processa tudo menos o [ARQUIVO]. Pode ser usados curingas v[TAMANHO] Cria arquivos com um limite de tamanho. Por padro, o tamanho especificado em bytes, mas o nmero pode ser seguido de k (kilobytes) ou m(megabytes). Exemplo: rar a -v1440k .. ou rar a -v10m .. p [SENHA] Inclui senha no arquivo. CUIDADO, pessoas conectadas em seu sistema podem capturar a linha de comando facilmente e descobrir sua senha. m [0-5] Ajusta a taxa de compactao/velocidade de compactao. 0 no faz compactao alguma (mais rpido) somente armazena os arquivos, 5 o nvel que usa mais compactao (mais lento). ed No inclui diretrios vazios no arquivo isnd Ativa emisso de sons de alerta pelo programa ierr Envia mensagens de erro para stderr inul Desativa todas as mensagens ow Salva o dono e grupo dos arquivos. ol Salva links simblicos no arquivo ao invs do arquivo fsico que o link faz referncia. mm[f] Usa um mtodo especial de compactao para arquivos multimdia (sons, vdeos, etc). Caso for usado mmf, fora o uso do 99

mtodo multimdia mesmo que o arquivo compactado no seja deste tipo. Os arquivos gerados pelo rar do GNU/Linux podem ser usados em outros sistemas operacionais, basta ter o rar instalado. Quando usada a opo -v para a criao de mltiplos volumes, a numerao dos arquivos feita na forma: arquivo.rar, arquivo.r00, arquivo.r01, etc, durante a descompactao os arquivos sero pedidos em ordem. Se voc receber a mensagem cannot modify volume durante a criao de um arquivo .rar, provavelmente o arquivo j existe. Apague o arquivo existente e tente novamente. Exemplos: rar a texto.rar texto.txt Compacta o arquivo texto.txt em um arquivo com o nome texto.rar rar x texto.rar Descompacta o arquivo texto.rar rar a -m5 -v1400k textos.rar * Compacta todos os arquivos do diretrio atual, usando a compactao mxima no arquivo textos.rar. Note que o tamanho mximo de cada arquivo 1440 para ser possvel grava-lo em partes para disquetes. rar x -v -y textos.rar Restaura os arquivos em mltiplos volumes criados com o processo anterior. Todos os arquivos devem ter sido copiados dos disquetes para o diretrio atual antes de prosseguir. A opo -y til para no precisar-mos responder yes a toda pergunta que o rar fizer. rar t textos.rar Verifica se o arquivo textos.rar possui erros. rar r textos.rar Repara um arquivo .rar danificado.

9.10zcat
O comando zcat tem a mesma funo e a sintaxe do comando cat, exceto que este feito para exibir o contedo de arquivos compactados como se no o fossem. zcat [opes] [arquivo compactado]

9.11zgrep
O comando zgrep tem a mesma funo e a sintaxe do comando grep, exceto por ter sido criado para procurar trechos em arquivos textos compactados. zgrep [opes] [expresso] [arquivo compactado]

9.12zcmp
O comando zcmp tem a mesma funo e a sintaxe do comando cmp, exceto que este feito para comparar o contedo de arquivos compactados. zcmp [opes] [arquivo compactado1] [arquivo compactado2]

100

9.13zless e zmore
O comando zless e zmore tem a mesma funo e a sintaxe do comando less e more, exceto que este feito para visualizar o contedo de arquivos textos compactados sem precisar descompactar o arquivo. zless ou zmore [arquivo compactado]

101

Das könnte Ihnen auch gefallen