Anda di halaman 1dari 57

Joo Antonio

Sistema Operacional Linux

SISTEMA OPERACIONAL LINUX


Introduo
Um Sistema Operacional um programa que tem por funo controlar os recursos do computador e servir de interface entre ele e o usurio. Essa definio mostrada em qualquer livro que fale a respeito desse tipo de software. Um sistema operacional, , portanto, um programa que tem a obrigao de controlar a mquina, permitindo-nos comand-la atravs de ordens pr-definidas. Sem um sistema operacional, por exemplo, no seria possvel usar uma planilha eletrnica, um editor de textos ou mesmo acessar Internet. Quando pensamos em sistema operacional, nos vem mente, imediatamente, o Microsoft Windows, utilizado na grande maioria dos computadores pessoais do planeta. No h como contestar a presena hegemnica da gigante de Bill Gates em nossas vidas computacionais, mas bom que se saiba que o Windows no o nico sistema operacional que podemos utilizar nos nossos micros.

O Advento de um novo sistema h alguns anos tem tirado o sono dos executivos da Microsoft, no somente por mostrar-se, em muitos aspectos, melhor que seu concorrente, como bem mais barato! Esse novo sistema chama-se Linux.

Surgimento do Linux
Em 1991, segundo reza a lenda, o ento estudante finlands Linus Torvalds resolveu desenvolver um sistema operacional que se assemelhasse ao UNIX (que ele usava na universidade de Helsinque) porque esse sistema no era compatvel com o seu PC domstico. E nesse esforo, surgiu o Linux, que, naquela poca, ainda no tinha esse nome. Explicando: O UNIX um sistema operacional muito robusto, usado em computadores de grande porte nas empresas e universidades. O UNIX foi desenvolvido, inicialmente, em 1969, na Universidade de Berkeley, na Califrnia. A grande maioria dos cursos de

www.joaoantonio.com.br

Joo Antonio

Sistema Operacional Linux

computao das universidades do mundo utiliza o UNIX em seus servidores, por isso o estudo de Torvalds se baseava nesse ambiente. At os dias de hoje, o aprendizado e a utilizao do UNIX privilgio de alguns poucos mortais que se aprofundam no estudo da computao e tm acesso a computadores de grande porte, onde esse sistema pode ser instalado. Mas o Linux trouxe essa utilizao para nveis mais cotidianos, permitindo que qualquer um que possua um PC comum possa ter acesso ao universo dos sistemas UNIX-Like (termo que significa semelhantes ao UNIX).

Linus havia criado um sistema parecido com o UNIX e concorrente do MINIX (um outro sistema UNIX-Like, criado por um conhecido professor americano e autor de diversos livros: Andrew Tanenbaum), mas que s funcionava na mquina dele, em casa (afinal, ele o havia projetado com base no processador e na arquitetura de seu micro caseiro). Linus escreveu uma mensagem numa lista de discusso na Internet (que, na poca, no havia sido descoberta comercialmente em muitos pases, incluindo o Brasil) encorajando os outros programadores e usurios do UNIX a ajud-lo na tarefa de criar um sistema operacional semelhante para micros domsticos que superasse, em muitos aspectos, o MINIX (at ento, uma das pouqussimas opes de sistema UNIX-Like para PCs). Para pr em prtica seu desejo de ter um sistema semelhante ao UNIX que funcione nos PCs, Linus enviou, aos interessados, o cdigo-fonte do seu sistema, para que os outros programadores pudessem entender e modificar o seu projeto. Em tempo: Cdigo-Fonte o nome dado ao conjunto de instrues escritas pelo programador em uma linguagem compreensvel para ele (e, normalmente, para mais ningum!). O projeto de Linus foi escrito na linguagem C, que bastante poderosa e verstil, sendo a preferida pelos programadores que desenvolvem softwares bsicos (aqueles que falam diretamente com a mquina). O cdigo-fonte no o programa pronto para ser executado, em vez disso, a receita de como o programa foi criado e do que ele vai fazer. Para que o cdigo-fonte se transforme no arquivo que ser executado pelo computador, necessrio um processo de traduo que reescreva o programa na linguagem que o computador entende, tambm chamada de linguagem de mquina, esse processo de traduo chamado compilao. Pois , quando Linus Torvalds distribuiu o cdigo-fonte de seu programa, ele tornou possvel para outros programadores fazer alteraes em seu sistema, permitindo que muitos se tornassem os co-desenvolvedores do Linux, nome, alis, que s seria dado ao sistema alguns anos depois, em homenagem ao seu pai original.

www.joaoantonio.com.br

Joo Antonio

Sistema Operacional Linux

O Linux original possua poucos recursos visuais e de aplicativos, mas era o suficiente para Linus entender que ele poderia melhorar e atingir nveis de usabilidade altos. Ou seja, o negcio ainda no prestava, mas ia melhorar e um dia prestaria para alguma coisa! S para voc ter uma idia do que Linus criou e o que ele fazia na poca, segue uma foto. O Linux era um sistema basicamente textual, como o DOS, e cujos comandos eram semelhantes aos comandos do UNIX (claro, por ser UNIX-like).

Os Direitos Sobre o Linux


O Linux um sistema operacional, como j foi dito, e, por isso, tem a funo de controlar o computador e permitir que o usurio d comandos a ele. Isso no privilgio do Linux, visto que outros programas fazem exatamente o mesmo, como o conhecido Windows, da Microsoft. Entre outras caractersticas diferentes entre eles, podemos citar uma que tornou o Linux algo muito interessante e digno de ateno: o Linux um software livre. Isso significa que aqueles que adquirem o Linux tm certos direitos em relao a ele que os usurios do Windows no possuem em relao ao sistema da Microsoft. Mas, o que ser software livre? Para explicar esse termo, recorremos ao conceito de um software comercial como o Windows: para usar o Windows em um computador, o usurio tem que ter pago uma taxa a ttulo de direito autoral pelo programa, chamada de licena de uso. A licena de uso do Windows paga por cada computador onde o programa esteja instalado na empresa. Alm disso, no ser permitida a cpia do CD original do programa para a instalao em outro computador sem o pagamento de uma nova licena. Ento, se um usurio comprar o Windows em uma loja e resolver instal-lo em mais de um computador, estar cometendo crime de pirataria de software, ou desrespeito s leis de copyright que regem os programas comerciais como o Windows. No Linux, a coisa muda de figura radicalmente. Os desenvolvedores do Linux, incluindo seu criador, Linus Torvalds, classificaram o Linux numa licena chamada GPL (General Public License Licena Pblica Geral), da FSF (Free Software Foundation Fundao do Software Livre). A FSF uma instituio supostamente sem fins lucrativos que desenvolveu uma legislao especfica para todos os programadores que quisessem que seus projetos fizessem parte do mundo dos programas sem rigidez de copyright. Como Assim? Simples: Se voc um programador e criou um software que deseja vender para explorar seu valor financeiro, exigindo pagamento da licena a todos os usurios, v em frente, no com a FSF! Mas, se voc desenvolveu um programa para ser distribudo por a, para quem quiser usar, abrindo mo da licena de uso, a FSF criou a GPL para voc! Na GPL, 4 direitos so garantidos aos usurios dos programas regidos por ela (os chamados Softwares Livres): 1. Um Software Livre poder ser usado para qualquer finalidade; 2. Um Software Livre poder ser estudado plenamente (para isso, necessrio possuir o cdigo-fonte do programa); 3. Um Software Livre poder ser alterado em sua totalidade (para isso, necessrio possuir o cdigo-fonte do programa); 4. Um Software Livre poder ser distribudo (copiado) livremente, sem a exigncia de pagamento de licena de uso em nenhum dos casos...

www.joaoantonio.com.br

Joo Antonio

Sistema Operacional Linux

Para os desenvolvedores (programadores) muito interessante que a GPL determine que o cdigo-fonte do programa seja liberado (ou aberto, como chamamos). O Linux e os demais programas regidos pela GPL so Open-Source (cdigo aberto ou seja, tm seu cdigo-fonte necessariamente acessvel a todos). Para ns, usurios comuns, a caracterstica mais importante dos programas regidos pela GPL o seu custo, que, devido a no obrigao de pagamento de licena (atrelada idia de copyright), torna a implantao do Linux e de outros softwares livres nas empresas algo financeiramente convidativo. Ento, que se saiba: O Linux um Software Livre! Ento, entenda que, devido s diversas vantagens que um software livre tem em relao aos tradicionais programas pagos (como custos, possibilidade de modificao do programa), a mudana de ares na informtica de empresas pblicas e privadas, saindo do quase onipresente Windows para o onisciente Linux, inevitvel. Cada vez mais, e isso sensvel, os at ento clientes da Microsoft esto se entregando aos prazeres (e desafios) de utilizar o sistema do pingin (aluso ao Linux porque seu mascote ou logomarca um simptico exemplar desta ave, chamado Tux).

A Comunidade Linux Criadores de Pingin


Lembra dos programadores com quem Linus Torvalds entrou em contato para ajud-lo na tarefa de alimentar o Linux de contedo e funcionalidade a fim de faz-lo crescer? Pois , eles tambm cresceram em nmero! Atualmente, cerca de 10.000 pessoas no mundo todo do sua contribuio valiosa para a manuteno e evoluo do Linux, seja criando novos aplicativos e drivers, seja melhorando o funcionamento do prprio sistema (que trabalho dos programadores) ou at mesmo traduzindo as interfaces para que o Linux se apresente disponvel nos mais variados idiomas (portanto, qualquer poliglota pode fazer parte desse grupo, no precisa conhecer a linguagem C). Esta, leitor, a Comunidade Linux, que formada pelos mais diversos profissionais que desejam, simplesmente, em seus tempos livres, colocar mais um tijolo no j muito firme alicerce do ambiente Linux, a fim, talvez, de que um dia o sistema de Linus (e de todos eles) possa desbancar o Windows. Agora vamos s comparaes ( inevitvel tambm): No sistema Windows, qualquer mudana feita pela detentora do cdigo-fonte, a Microsoft, que disponibiliza a atualizao em seu site Windows Update. Quanto ao Linux, qualquer usurio conhecedor de C pode mudar alguma coisa que no ache satisfatria no sistema, permitindo melhorias imediatas sem a dependncia de uma suposta fabricante. Isso, claro, porque o usurio o detentor do cdigo-fonte! Certas mudanas ficam restritas ao computador do usurio que as fez, mas algumas so enviadas comunidade, que avalia a relevncia da mudana e julga se ela pode ser ou no adicionada na prxima verso do Linux. O objetivo da Comunidade no somente criar coisas novas (embora faa isso tambm), mas, tambm, modificar constantemente o centro do sistema Linux, o seu Kernel.

O Kernel do Linux A Alma do Sistema


Todo sistema operacional complexo e formado por diversos programas menores, responsveis por funes distintas e bem especficas. O Kernel o centro do sistema operacional, que entra em contato direto com a CPU e os demais componentes de hardware do computador, sendo, portanto, a parte mais importante do sistema.

www.joaoantonio.com.br

Joo Antonio

Sistema Operacional Linux

Se o Kernel mal feito, o sistema operacional nunca funcionar direito, travando constantemente, e executando operaes que ele mesmo no permitiria (lembra de algum exemplo?). Mas, se o Kernel bem construdo, existem garantias de que o sistema se comportar sempre da melhor maneira, tornando travamentos e desafetos com o usurio coisas raras (o Linux muito bom nesse critrio, muito difcil v-lo travar e comprometer a estabilidade de um computador). O Kernel um conjunto de subprogramas, revistos e alterados pela Comunidade Linux o tempo todo, ou seja, existem milhares de pessoas no mundo todo, nesse momento, alterando alguma caracterstica do Kernel do Linux no intuito de melhor-lo. Mas o que garante que, sendo o Kernel alterado por tantas mos, ele no se torne uma colcha de retalhos de cdigos que gerem incompatibilidades e problemas? Ou seja, o que o faz to estvel e robusto se filho de tantos pais? Ou ainda: o que garante que algum, dentre esses milhares, no colocaria algo prejudicial no cdigo do Linux para faz-lo intencionalmente perigoso? Simples: A comunidade tem direito de alterar o Kernel do Linux, mas todas as alteraes so analisadas e julgadas pertinentes ou no por alguns gurus, os Mantenedores do Kernel ou Guardies do Kernel. Entre os poucos guardies do Kernel, podemos citar trs loucos (no sentido carinhoso da palavra), so eles: Linus Torvalds, no por acaso; Marcelo Tosati (um brasileiro escolhido pelo prprio Linus); e Jon MadDog Hall, um dos criadores e principais defensores da idia de Software Livre. So eles (e mais alguns) que ditam as regras quanto ao que ser adicionado ou retirado da prxima verso do Kernel do Linux. Sim, Joao, mas como funciona esse negcio de verso do Kernel? Novamente, simples: De tempos em tempos (no h uma exatido), lanada uma nova verso do Kernel do Linux, seu centro nervoso. Esse lanamento realizado pelos gurus, que analisaram todas as propostas de alterao enviadas pela comunidade e, aceitando algumas e rejeitando outras, decidem que a nova verso est pronta. Atualmente, encontramo-nos na verso 2.6 do Kernel do Linux (a verso estvel mais recente do sistema). Normalmente, as verses do Kernel so batizadas com trs ou quatro nveis de nmeros, que identificam sua gerao. H algum tempo, tnhamos a verso 2.4 e todas as mini-verses dentro dela, como 2.4.1, 2.4.15, 2.4.29, etc. Hoje, a verso mais difundida j a verso 2.6 e toda a sua famlia (2.6.3, 2.6.11, etc.). A mudana da verso 2.4 para a 2.6 trouxe muitas novidades, especialmente no tocante s tecnologias que o Kernel novo capaz de suportar (redes sem fio, bluetooth, novos dispositivos, etc.). Essa mudana da gua para o vinho tambm dever ocorrer quando os gurus lanarem a verso 2.8 e, da 2.8 para a 2.10... Mas, com certeza dever ser muito mais significativa quando sairmos da verso 2 para a 3 (no sei quando isso ocorrer). fcil perceber que a mudana do primeiro nvel (o 2) muito mais demorada (claro!), at mesmo porque deve haver muitas mudanas cruciais no sistema para que se justifique a sada da gerao 2 para a entrada da 3! A mudana do segundo nvel demora um certo tempo tambm, mas as mudanas no terceiro e quarto nveis so bem mais freqentes. A, voc pergunta: Joo, notei que a mudana do segundo nvel da verso acontece apenas com nmeros pares (2.4, 2.6, 2.8, etc.)... Por qu? Os mantenedores preferiram criar as verses X.Y, fazendo o Y mpar quando querem indicar que essa verso no est estvel, ou seja, que existe alguma tecnologia nova que est sendo testada nessa verso. assim: a verso 2.3 trazia novas tecnologias (instavelmente, ainda) que, quando foram devidamente testadas e aprovadas, deram origem verso 2.4. A 2.5 tambm precursora da atual 2.6 e, claro, j se est www.joaoantonio.com.br 5

Joo Antonio

Sistema Operacional Linux

trabalhando na verso 2.7 (a comunidade j iniciou seu desenvolvimento para que, quando as novidades estiverem perfeitamente funcionais no Kernel, este possa ser batizado de 2.8 e lanado para o pblico em geral). A, voc pergunta, de novo: Certo, entendi! Mas, e por que existem os outros nveis de mudanas? Por exemplo, porque existe a verso 2.6.11 se as novas tecnologias s estaro disponveis na 2.8? tima pergunta! s vezes, a verso original do Kernel (2.6, por exemplo) apresenta certos probleminhas com alguns modelos de dispositivos, ou falhas de programao, ou qualquer outra chatice. Quando esses inconvenientes so detectados por algum da comunidade, este avisa aos mantenedores que lanam uma nova verso 2.6 com as correes devidas. Ou seja, a verso 2.6.11 mais recente que a 2.6.10 e, provavelmente, traz correes para os bugs (defeitos de programao) da anterior. O Kernel , para que se entenda de forma simples, o Sistema Operacional em si. Quer dizer, o Linux seu Kernel (o restante do Linux so programas extras, desenvolvidos por diversos programadores da comunidade, como aplicativos e jogos). Pergunta, novamente: Quer dizer que, basta eu ter o Kernel do Linux e eu posso usar esse sistema em meu computador sem problemas? Basta o Kernel do Linux para o meu micro ser utilizvel? No! Nem s de Kernel vive o sistema operacional! O Kernel do Linux em si muito pequeno e no tem muita coisa, mas claro que tem o mais importante, j que ele o sistema em si! Porm, para que o Linux seja utilizvel, necessrio que existam, tambm, outros programas que, junto com o Kernel, fazem o sistema completo e amigvel para um usurio qualquer. a que entram os Shell (ambientes onde o usurio pode comandar o sistema atravs de comandos de texto), as interfaces grficas (ambientes que apresentam cones e janelas, como o Windows), os aplicativos (para digitar textos, construir planilhas, desenhar e acessar a Internet, por exemplo) e outros mais. Muitas empresas e programadores obtm o Kernel do Linux e juntam a ele outros programas que julgam importantes, como aplicativos de escritrio e desenho e at mesmo jogos. Cada uma dessas mesmas pessoas ou instituies relana o Linux com seu prprio nome, ou com algum pseudnimo. Esses variados sabores de Linux so as Distribuies Linux.

Distribuies do Linux Linux Para Todos os Gostos


Como foi dito, o Linux basicamente seu Kernel. mas aquilo que ns, usurios, utilizamos no Linux mais que isso, com certeza! Como vimos ainda, o Kernel e os demais programas que formam o Linux so livres e, na maioria dos casos, open-source (sim, nem todos os softwares livres so open-source) e, por causa disso, podem ser adquiridos e modificados da maneira como os distribuidores querem. Um distribuidor uma pessoa ou instituio que pega o Kernel do Linux, une esse programa a outros, criados por ele ou por outrem, e encaixota o resultado, dando-lhe nome e oferecendo suporte a ele (ou seja, responsabilizando-se pela obra), criando uma nova Distribuio do Linux. Note que diversas distribuies so semelhantes entre si, afinal, tm o mesmo centro, e, muitas vezes, os mesmos programas auxiliares, como aplicativos de escritrio e jogos, portanto, a escolha por essa ou aquela distribuio um processo pessoal e vai mais pelo gosto do usurio (eu mesmo uso duas: o Conectiva Linux 10 e o Slackware 10.1). Seguem algumas das principais distribuies do Linux (mas lembre-se: so basicamente a mesma coisa, porque tm se baseiam num nico centro: o Kernel):

www.joaoantonio.com.br

Joo Antonio

Sistema Operacional Linux

Conectiva Linux: a distribuio da empresa brasileira Conectiva. Um dos mais amigveis Linux para o Brasil, apresenta uma interface de instalao muito boa (ou seja, ele fcil de instalar!). Atualmente (Maio de 2005), est na verso 10, usando o Kernel 2.6. Lembre-se de que verses anteriores do Conectiva usavam verses anteriores do Kernel, claro! o Conectiva pode ser usado tanto em casa como em servidores. Red Hat: Uma distro (distribuio, para os ntimos) americana que recentemente deixou de ser distribuda gratuitamente. A empresa Red Hat simplesmente fornece seu Linux para servidores de rede, no mais para usurios de computadores (e no se pode mais pegar essa distro na Internet de graa!). A ltima verso gratuita foi a 9, usando o Kernel 2.4. Slackware: considerada por muitos (os especialistas, normalmente) como a melhor distro de todas, por ser a mais estvel (a ltima verso do Slack, a 10.1, por exemplo, utiliza o Kernel 2.4, ainda, que, segundo eles, mais confivel que o 2.6). O pessoal que mantm o Slack muito tradicionalista e sempre pregou a criao de uma distro muito enxuta, sem firulas. O Slack um dos mais difceis de instalar e de configurar, alm disso, traz poucos programas consigo, portanto, mais recomendado para servidores. Essa para experts! Suse Linux: uma distro alem, tambm muito famosa e gostosa de usar. Traz diversos programas para usurios finais (como programas de escritrio, por exemplo). Mandrake Linux: tambm muito fcil de usar, dando preferncia aos usurios finais, o pessoal da Mandrake coloca sempre muitos recursos bons para que o Mandrake Linux possa ser usado em casa por qualquer usurio. Fedora Core: o projeto de distro gratuita da empresa Red Hat (para no sarem mal na foto com a comunidade Linux, eles da Red Hat mantiveram um projeto com ela a comunidade de atualizao desta distro). muito completa, cheia de recursos para servidores e usurios finais. Debian: uma distribuio muito boa de usar (para experts tambm). O pessoal que usa e mantm o Debian o outro extremo da linha do pessoal do Slack, h uma certa rivalidade entre eles.

Acho que j deu para conhecer algumas das principais distribuies do Linux, embora haja muitas outras que podem ser escolhidas! Algumas, inclusive, podem servir de estgio na transio Windows/Linux pois podem ser executadas diretamente do CD, sem a necessidade de se instalar o sistema no micro, o que poupa muitas dores de cabea da maioria dos usurios. Um excelente exemplo de Linux que executa direto no CD o Kurumin, do Carlos Morimoto (www.guiadohardware.net). Pode ser tambm, leitor, que algumas dessas distros sejam abandonadas em algum ponto, e outras nasam com o tempo (a exemplo do Mandriva, que resultado da fuso das distros Mandrake e Conectiva). O mundo Linux assim: completamente nmade e mutante (mas fiel s suas origens e seus ideais, pelo menos, at agora!). Resumindo, caro leitor: Todas as distribuies do Linux so iguais? A resposta No! H pequenas diferenas entre elas, mas nada que impossibilite o aprendizado delas, afinal, estamos falando do mesmo produto (o Linux), embalado por vrias empresas diferentes (como uma Torta Floresta Negra feita por vrios restaurantes ou confeitarias diferentes: a torta a mesma, pois se baseia na mesma receita, mas que d para sentir diferenas pequenas no sabor de cada uma, d sim!).

Questes a Considerar Quanto ao Linux


Depois de tudo o que foi apresentado, aparentemente estaremos vivenciando um processo de transio que no tem precedentes no mundo da informtica e que no mostra sintomas de que ser acalmado ou, muito menos, impedido! Mas mesmo sendo

www.joaoantonio.com.br

Joo Antonio

Sistema Operacional Linux

essa transio to inevitvel, h certos aspectos a serem analisados de forma mais crtica. Vamos dar uma olhada em certas questes relevantes ao movimento de mudana Windows/Linux:

O custo da implantao e da manuteno do Linux muito baixo: essa, no por acaso, a mais gritante das caractersticas favorveis ao novato. Por tudo o que vem sendo discutido aqui, bastante compreensvel o porqu do uso do Linux ser to barato e ainda o porqu do Windows no conseguir, nem de longe, oferecer qualquer resistncia a ele nesse aspecto. Essa questo muito importante porque permite a empresas (e at mesmo pases) em desenvolvimento ou recuperao conseguirem atingir estabilidade e autosuficincia sem estar sob o jugo da Microsoft e de outras detentoras de copyright de softwares! Ou seja, o Linux permitir uma verdadeira revoluo tecnolgica e mesmo econmica para diversas instituies e at naes. O Windows mais conhecido e mais usado: Nesse ponto, o fato de a maioria utilizar o Windows em suas casas e nas empresas d um ponto ao veterano sistema, pois, a esse fato aparentemente banal, est atrelado algo que deve ser pensado pelas empresas: os custos com treinamento de pessoal. Sim, o Linux pode ser mais caro durante o incio das atividades dele na organizao, sendo pblica ou privada, porque denotar a necessidade de treinamento dos funcionrios! Ainda tem mais: sabido que, se os funcionrios no conseguem utilizar uma determinada tecnologia devidamente, a produtividade vai cair consideravelmente e s ser retomada quando a novidade se tornar habitual (ou seja, quando se acostumarem com o Linux). O Plug and Pray do Linux: pois , para alguns fabricantes de hardware, como impressoras, scanners, web cams e afins, parece que o Linux no existe! Ao comprar um equipamento novo, muito raro (eu ainda no encontrei um) se deparar com um que traga, no seu CD de drivers, a verso para o sistema do pingin. Em outras palavras, a maioria dos fabricantes s desenvolve drivers para o Windows, permitindo que seus dispositivos possam ser instalados apenas nesse sistema. O Linux ainda posto em segundo plano, porque, apenas em alguns poucos casos, o fabricante coloca, no mximo, o driver para Linux em seu site. O Windows mais amigvel: outra coisa que parece incontestvel, mas vai de ponto de vista! Como estamos acostumados a lidar com o sistema da Microsoft, ento claro que ele nos parecer mais fcil e intuitivo. O Linux ainda nos apresentar alguns segredos que, quando perfeitamente descobertos, o tornaro to fcil de usar quanto o Windows. O Linux mais complicado: Bom, o outro lado da questo citada acima esse! O Linux no complicado, complexo (e completo). Quero dizer, no Linux, podemos fazer uma operao de vrias maneiras, algumas mais fceis (com mouse e cones), algumas mais difceis, atravs de comandos estranhos e arquivos de configurao assombrados. Isso s depender do seu nvel de conhecimento e intimidade com o sistema (os experts preferem os arquivos de configurao e os comandos, porque talvez isso os faa parecer mais experts!). Sistema Cabra Macho: o Linux no trava! Pelo menos isso que se ouve por parte dos entusiastas exacerbados! O Linux no pega vrus diro eles tambm! Em ambos os casos, est errado! O Linux trava sim, mas no com a freqncia com que o Windows o faz. O Linux tambm est sujeito s intempries causadas por vrus de computador, mas numa escala muito inferior do concorrente! O importante que o Linux foi feito para no travar, portanto a comunidade Linux vai criar correes para todos os problemas que o sistema apresentar, deixando-o mais seguro e menos propenso a erros, visando manter a integridade do sistema e a confiana que todos depositam nele. Refazendo o pargrafo anterior: eu j enfrentei travamentos do sistema Linux, mas

www.joaoantonio.com.br

Joo Antonio

Sistema Operacional Linux

nos dois casos, o culpado no foi o Kernel (o sistema em si), mas algum programinha que estivesse em execuo causando a instabilidade do computador e impedindo o Linux de resolver a questo (e isso j faz alguns anos! Ultimamente, no tenho sido testemunha de nenhum mal estar do sistema). Espero que essa apresentao sucinta do sistema operacional Linux tenha aberto sua mente para compreend-lo e, assim como eu, gostar dele e utiliz-lo! Sei que ainda faltam caractersticas importantes para que ele se torne um sistema to facilmente utilizvel e perfeito para ser usado em casa ou no trabalho, mas com o tempo, e a cada verso do Kernel ou nova distribuio, vejo as evolues aparecerem, o que prova que a Comunidade est trabalhando duro em seu filhote! Vamos l! Aprenda a criar pingin voc tambm!

Primeiros Passos com o Linux


Ligar um computador e ver mensagens e figuras diferentes daquelas com que estamos acostumados quando iniciamos o Windows pode ser uma experincia traumtica! Esse medo, por parte dos ex-usurios do Windows, acontece todas as vezes que o Linux iniciado (e, especialmente, na estria!). Lembro-me que, quando o fiz pela primeira vez, fiquei assustado e, quando finalmente a inicializao terminou, me senti completamente perdido naquela tela preta que aguardava ansiosamente por meus comandos. No se sinta mal: frustrante no saber o que fazer diante de um computador que voc julgava perfeitamente subordinado a voc. Os contatos iniciais com o Linux podem parecer muito difceis (e realmente o sero se o usurio no estiver preparado para entender o sistema e suas principais facetas). Saber o que h no Linux e como se faz para as coisas funcionarem um pr-requisito para o sucesso do usurio nesse novo ambiente (eu costumo chamar de novo universo).

Conceitos Gerais
Para utilizar o Linux, no necessrio nenhum conhecimento prvio em Windows ou qualquer outro sistema operacional, mas, claro que se o usurio que pretende usar o Linux j entende conceitos de outros programas, as comparaes sero um excelente modo de estudo (que, por sinal, usarei em demasia no decorrer desse livro). Alguns dos principais pontos a serem discutidos no Linux so:

O Linux um sistema multiusurio: O que significa que vrias pessoas podem utilizar o Linux em um computador (inclusive ao mesmo tempo, mas eu explico isso depois). Cada usurio reconhecido pelo sistema quando inicia suas atividades mediante a apresentao de um nome e uma senha (previamente cadastrados). Isso significa que ser necessrio, todas as vezes que um usurio for utilizar o computador, que ele realize o processo de Logon. O Logon consiste na apresentao do Login (nome cadastrado no sistema para o usurio) e da Password (senha). O Linux pode ser utilizado graficamente: quer dizer que o sistema Linux pode se apresentar para o usurio do mesmo modo amigvel com que o Windows se mostra. O Linux tem ambientes grficos, e muitos! Claro que o normal, para os usurios experts, preferirem o Linux com sua interface bsica: texto! Tela preta, letras brancas e uma srie de comandos diferentes decorados sofridamente! Aqui vai um lembrete para os usurios mais cticos e amedrontados: O Linux usa mouse e cones; janelas e menus, como o Windows, e isso facilita o aprendizado. Algumas coisas no Linux so mais difceis de fazer: Isso, claro, pode at ser relacionado com o fato de usarmos mais o sistema da Microsoft, mas no bem assim! O Linux complica certas coisas sim! Esse o preo que se paga pelo direito de ter o controle total sobre o sistema operacional.

www.joaoantonio.com.br

Joo Antonio

Sistema Operacional Linux

Conhecendo o Super Usurio - root


Como j foi citado, o Linux admite a existncia de diversos usurios. Os cadastros dos usurios que o sistema possui so feitos em registros exclusivos chamados contas (ou contas de usurio). Ento, se voc pretende usar o Linux, deve possuir uma conta cadastrada no sistema. Essa conta consiste, entre outras informaes, no Login (o seu nome perante o sistema) e a senha (seqncia de caracteres secreta). As contas tambm definem os privilgios de acesso que o usurio tem no sistema, como por exemplo, se ele vai poder alterar um determinado arquivo, ou se s vai poder l-lo. H vrias formas de criar contas de usurio no Linux depois que o sistema est em funcionamento (essas formas sero vistas depois), mas uma conta criada quando o Linux instalado no computador, a conta da pessoa que tem direito a fazer qualquer coisa no sistema: o Administrador ou Super Usurio. O Super Usurio o cara, simplesmente! Ele pode tudo! Se voc o super usurio de sua mquina, voc o dono, o manda-chuva dela. O Login cadastrado para a conta do Administrador : root. Ou seja, para ser reconhecido como super usurio do sistema Linux, necessrio, na inicializao do sistema, que o usurio digite root e a senha apropriada. Se o seu caso diferente, como por exemplo: voc solicitou a algum (um tcnico) que instalasse o Linux em seu computador, depois de realizar a tarefa (e ser pago por isso), o tcnico entrega a mquina a voc com um papel junto: usurio: fulano e senha: 1234. Isso significa que para poder acessar o sistema, voc dever apresentar essas informaes toda vez que o micro for ligado. Certo, mas e da? Simples: Voc no o root! O tcnico, provavelmente, criou a senha para o root, que s ele sabe, e criou uma conta de usurio para voc poder utilizar inocentemente o computador. Quem instala o Linux define a senha do root, porque esta uma das exigncias feitas durante o processo de instalao do sistema. Trabalhar com o Linux no privilgio do usurio que detm a senha do root, mas este usurio poder fazer qualquer coisa, entrar em qualquer lugar, abrir qualquer arquivo e at mesmo apagar ou criar quaisquer outros usurios. Por exemplo, h certos comandos que s podem ser executados pelo root e quando os usurios comuns tentam executlos, recebem mensagens de erro informando que o acesso no ser permitido. Recomendao ao Administrador do Sistema: se voc o proprietrio da conta de super usurio, aqui vai uma dica interessante: no use a conta de root constantemente para fazer qualquer coisa (digitar textos, acesso Internet, jogos). Ao invs disso, crie uma conta de usurio qualquer (sem privilgios administrativos) para poder realizar as tarefas cotidianas. A idia que se, durante um acesso Internet, por exemplo, seu computador for infectado por um vrus o outro programa malicioso, o referido programa ser executado em modo root, e ter acesso completo ao sistema (podendo ferrar o sistema completamente)! Se, no momento da infeco, voc estiver logado como um usurio convencional, os limites de acesso impostos a voc pelo prprio Linux sero responsveis por conter os programas bisbilhoteiros. Ou seja, no banalize a conta de root, apenas faa uso dela em casos necessrios (mudanas de configurao, ajustes do sistema, instalao de programas, etc.).

Entrando no Linux o Processo de Logon


Quando se inicia o computador com o Linux, depois de alguns procedimentos necessrios, uma tela de Logon apresentada para o usurio. Dependendo de uma srie

www.joaoantonio.com.br

10

Joo Antonio

Sistema Operacional Linux

de fatores (incluindo a distribuio utilizada), essa tela pode ser diferente, mas no geral solicita sempre duas informaes aos usurios: Login e Senha.

Logon to-somente o nome dado ao processo de apresentao do Login e da senha, ou seja, logon entrar no sistema, identificar-se. No confunda, porm, com Login, que o nome do usurio que est se logando! Depois de efetuado o logon no sistema, alguns processos so realizados para que Linux apresente sua rea de trabalho comum aos usurios ( uma tela muito semelhante rea de trabalho do Windows) e os permita comandar o sistema. Essa rea de trabalho tambm pode se apresentar de formas diferentes, dependendo da distribuio, mas, mais precisamente, dependendo do ambiente grfico utilizado pelo usurio (veremos o conceito disso nos prximos tpicos). Veja, abaixo, um exemplo da rea de trabalho do Linux (ambiente GNOME) usado no Conectiva Linux 10:

Note algumas semelhanas com o Windows, como a presena de janelas, cones, menus, ou seja, o Linux no mais to assustador assim! perfeitamente possvel migrar da plataforma Windows para a plataforma de software livre! s querer! Aproveitando: o termo plataforma muito usado para descrever um jeito ou um ambiente de trabalho em informtica. Ento, a plataforma Windows significa o uso ou as caractersticas apresentadas pelo Windows e pelos programas que funcionam nele. Vamos nos prender utilizao destes ambientes grficos daqui a algumas pginas (no se afobe, preciso apenas mostrar-lhe mais alguns conceitos antes de soltar voc no Linux!).

www.joaoantonio.com.br

11

Joo Antonio

Sistema Operacional Linux

Como o Linux Entende as Unidades de Disco


Bom, em primeiro lugar, se voc espera ter, no Linux, cones que ajudem-no a acessar a Unidade C:, D:, E: e outras afins, tire isso da cabea! Aqui, a nomenclatura para as unidades de armazenamento diferente do Windows. E isso, confie em mim, pode gerar problemas srios! Veja, na figura a seguir, uma janela aberta do cone Computador, que comum nos ambientes grficos atuais que funciona como o manjado Meu Computador existente no Windows. Note que no existem as unidades C: ou D: e que h alguns componentes meio estranhos (como o famigerado Sistema de Arquivo).

Deixe-me tentar explicar em poucas palavras: a forma de nomenclatura dos discos por parte do Linux no se parece, em nada, com a do Windows. Enquanto que no Windows, a estrutura de diretrios (pastas) comea em cada unidade de disco devidamente nomeada (C:, D:, E:, etc.), no Linux, todos os diretrios so subordinados a um grande diretrio pai de todos: o diretrio (ou pasta) raiz, ou sistema de arquivo (nessas novas distribuies, essa nomenclatura tambm tem sido usada). como se o diretrio raiz representasse, simplesmente, o universo dentro do sistema Linux. Os demais diretrios esto dentro do sistema de arquivo. Para os mais tradicionalistas e para os comandos usados no sistema Linux, comum ainda fazer referncia a esse diretrio principal como / (barra), simplesmente. Ento fica simples: o Linux no tem unidade C:, nem D:, nem E:... Mas tem um nico e grande repositrio de informaes que armazena todos os arquivos e diretrios contidos nas unidades de disco (Cds, disquetes, DVDs ainda vo continuar existindo, mas, no Linux, no ganham letras seguidas de dois pontos). Em outras palavras, o diretrio raiz, ou sistema de arquivo, ou ainda / (barra) o incio de tudo o que est armazenado no computador e a que o Linux tem acesso: tudo, no computador, est dentro do diretrio raiz! A, voc questiona: Mas Joo, estou vendo a unidade de CD-RW/DVD+RW como um cone separado do Sistema de Arquivo. Como voc me diz que ela (a unidade de CD) est dentro do Sistema de Arquivo? Acredite em mim! Essa unidade de CD-RW/DVD+RW apenas um atalho para a verdadeira unidade de CD do computador (que ser mostrada como um diretrio dentro do diretrio raiz). Veja, quando abrimos o cone Sistema de Arquivo, na janela mostrada h pouco, que temos acesso a vrios outros diretrios (pastas) e, por sua vez, aos diretrios dentro desses diretrios, como no Windows. Mas bom lembrar que, quando entramos no cone Meu Computador do Windows, visualizamos as unidades separadas, e aqui elas so subordinadas ao sistema de arquivo.

www.joaoantonio.com.br

12

Joo Antonio

Sistema Operacional Linux

Note o nome descrito na barra de ttulo da janela (/), que o nome oficial do diretrio raiz. Todas as demais pastas ficam dentro de /, at aquelas que representam discos rgidos diferentes! Sim, os discos rgidos diversos que um micro pode ter so representados por pastas dentro do sistema de arquivo. Veremos essas pastas daqui a pouco. S como um exemplo mais fcil de entender, quando se vai salvar algo no Linux, no se define aquele manjado endereo de C:\pasta\arquivo ( assim que salvamos no Windows, no ?). OK, no Linux a gente salva um arquivo em /pasta/arquivo (porque tudo, no micro, est localizado dentro de / - que, no endereo, a primeira barra, antes do nome da pasta). Note bem, na figura seguinte, uma foto do Konqueror (um programa semelhante ao Windows Explorer) navegando pelo contedo da pasta /opt/kde e note a relao entre essas pastas (kde est dentro de opt, que, por sua vez, est dentro de / - a raiz). Verifique, tambm, que, na rvore de pastas (diretrios), o diretrio raiz (/) chamado de pasta raiz.

www.joaoantonio.com.br

13

Joo Antonio

Sistema Operacional Linux

Ento, como voc pode perceber, copiar e mover arquivos e pastas, organizar o contedo do seu computador (seus arquivos de documentos e msicas mp3, por exemplo) no ser uma tarefa to difcil, no acha? Usar o Linux, do ponto de vista de usurio leigo, se tornou muito mais fcil, porque, hoje em dia tudo est visualmente agradvel. A prova disso que todos os principais recursos e telas que mostramos parecem muito com as janelas no Windows, e isso graas a programas conhecidos como Ambientes Grficos.

Gerenciadores de Janelas Os Ambientes Grficos do Linux


Uma distribuio comum do sistema Linux formada por uma srie de programas, como venho dizendo h algumas pginas. Alm do Kernel em si (que a alma do sistema), temos vrios aplicativos de escritrio, utilitrios de manuteno e at mesmo jogos de diversos estilos. Dentre os programas que acompanham o Linux (saiba que uma distribuio atual pode conter mais de 2000 programas diferentes!), h uma categoria muito especial e bastante necessria para os usurios leigos no sistema: os Gerenciadores de Janelas (tambm conhecidos como Ambientes Grficos). Um Ambiente Grfico um programa que permite que o Linux se apresente de forma amigvel, como o Windows, atravs de janelas, cones, menus, e botes. Um ambiente grfico considerado um programa extra porque o Linux, naturalmente, no apresenta a cara bonita que esses programas criam. Lembre-se de que o Linux baseado no UNIX, portanto, ele nativamente textual (controlado atravs de comandos de texto! Tela preta, letras brancas e aquele bl bl bl todo!). Uma distribuio do Linux pode conter diversos Ambientes Grficos diferentes, mas os dois mais famosos so, sem dvida, o KDE (K Desktop Environment) e o Gnome. A escolha entre um e outro vai simplesmente de deciso pessoal porque ambos so excelentes e a maioria (para no dizer todos) dos programas que funcionam em um tambm funcionam no outro! Na figura abaixo mostrado o ambiente Gnome com dois programas abertos: o GIMP (um programa de edio de imagens que chega a se comparar ao Photoshop da Adobe) e o OpenOffice.org Writer, a verso open-source do Microsoft Word.

www.joaoantonio.com.br

14

Joo Antonio

Sistema Operacional Linux

O outro conhecido Gerenciador de Janelas chamado KDE, normalmente mais bonito que o Gnome (novamente, isso questo de gosto e gosto no se discute!). Note que possvel utilizar os mesmos programas que so utilizados no Gnome, e tambm possvel acessar os mesmos recursos (como diretrios e arquivos, por exemplo).

A escolha do Ambiente Grfico que ser utilizado acontece no momento no Logon: na parte inferior da tela de logon, normalmente, h um boto chamado Sesso que permitir ao usurio escolher se deseja utilizar o KDE ou o Gnome (ou qualquer outro que esteja instalado no Linux). Os aplicativos (programas com funes definidas na resoluo de problemas dos usurios), em sua maioria, so executados sobre as interfaces grficas, ou seja: grande parte dos programas que iremos utilizar no Linux apresentada em formato de janela, portanto, necessita de um ambiente de janelas funcionando.

www.joaoantonio.com.br

15

Joo Antonio

Sistema Operacional Linux

Por exemplo, o programa OpenOffice.org Writer (ou simplesmente Writer), mostrado nas figuras anteriores, s executado (passa a funcionar) se um ambiente grfico (como o KDE ou o Gnome) j estiver em execuo. E isso vale para qualquer outro aplicativo dos que se podem acessar pelos menus dos ambientes. Aviso: Como a liberdade algo inerente ao uso do Linux, eu no me prenderei a uma interface grfica apenas, ao invs disso, sero mostradas figuras com fotos ora do KDE, ora do Gnome, mas, devidamente informadas e explicadas.

A inicializao do Sistema Linux


Como todo sistema operacional, o Linux tem a responsabilidade de, entre outras coisas, controlar a inicializao do sistema, realizando todas as tarefas necessrias para que o sistema esteja completamente apto a responder s requisies do usurios quando este assumir o controle da mquina. Muitas operaes so realizadas antes de o usurio poder executar qualquer comando ou abrir qualquer janela. Resolvi, ento, listar alguns passos importantes desse complexo conjunto de acontecimentos: 1) O Computador ligado, passando a receber alimentao eltrica. Nesse estgio, a memria RAM (principal) est vazia (sem contedo) e os programas e arquivos do usurios esto armazenados nos discos (memrias auxiliares). 2) O BIOS (Sistema Bsico de Entrada e Sada), que um pequeno programa armazenado numa memria ROM (memria que no necessita de eletricidade) na placa-me do computador, vai ser acordado para acordar o restante do computador, especialmente, seu Sistema Operacional. O BIOS o primeiro programa executado por um computador e possui um papel importante: localizar e executar o Sistema Operacional do computador (seja o Linux ou outro qualquer). 3) Depois de encontrar o Sistema Operacional (que estava no Disco Rgido), e iniciar seu processo de carregamento (carregar = jogar na memria principal RAM), o BIOS entrega a responsabilidade ao Sistema Operacional. nesse ponto, no caso do Linux, que o Kernel jogado na RAM e o Linux efetivamente iniciado. 4) Depois de iniciados o Kernel e outros componentes do Linux, o sistema solicita ao usurio as informaes de Logon (Nome de usurio e Senha). Nesse ponto, tambm, possvel escolher como o Linux vai se apresentar, se em modo texto (shell) ou em modo grfico (atravs de alguma interface grfica, como o KDE ou o Gnome). Como ns usaremos, por enquanto, o Linux em modo grfico, seguiremos os passos seguintes a essa escolha. 5) O Gerenciador de Janelas iniciado, realizando, inicialmente, alguns procedimentos necessrios sua utilizao, para, enfim, entregar ao usurio o controle do computador, permitindo que ele execute qualquer programa disponvel no sistema (desde, claro, que seus privilgios de acesso permitam).

Resumindo At Aqui

O Linux um sistema operacional, portanto, tem a obrigao de controlar o computador e mant-lo funcionando, enquanto recebe nossos comandos e os repassa mquina. S podemos utilizar programas de texto e acessar a Internet porque nossos computadores possuem sistemas operacionais. Para usarmos o Linux, devemos nos identificar, informando um login (que pode ser ana, maria, joao, pedro, adm, financeiro, root) e uma senha. O login root permite, ao seu detentor, o controle total do sistema Linux (ele pode fazer o que quiser!). O Linux pode ser adquirido de vrias formas (inclusive comprando-o), atravs de vrios fornecedores e com vrios nomes diferentes. Esses vrios tipos de Linux so

www.joaoantonio.com.br

16

Joo Antonio

Sistema Operacional Linux

chamados de Distribuies e podem apresentar pequenas diferenas entre si, mas todos so Linux, porque se baseiam em um mesmo alicerce (o Kernel).

No Linux, no h unidades de disco separadas, como C:, D: e afins. No Linux, todo o armazenamento de arquivos feito dentro do diretrio raiz: a barra ( / ). Inclusive, se um computador possuir vrios discos rgidos, todos eles sero representados como diretrios dentro do diretrio raiz. Pode-se trabalhar com o Linux de vrias formas: a mais agradvel atravs de ambientes grficos, presentes em quase todas as distribuies. A forma mais tradicional utilizar um Shell (interface textual recebe comandos de texto apenas), mas isso exige do usurio o conhecimento em vrios comandos diferentes. O Linux est sempre em evoluo (a cada semana, lana-se uma nova verso menor do Kernel e, em alguns meses, as novas verses maiores so lanadas), o que garante que erros so corrigidos com certa rapidez. Se voc estiver impaciente quanto a essas mudanas, faa voc mesmo a sua atualizao! Afinal, voc tambm possui o cdigo-fonte e, at mesmo pode baixar um mais novo da Internet.

USANDO O LINUX
Antes de podermos meter a mo na massa no Linux, caro leitor, sinto necessidade de apresentar para voc alguns conceitos mais aprofundados sobre o sistema. Dentre esses conceitos, vamos falar de como o Linux interpreta arquivos, o que so arquivos executveis (ou melhor, como eles so), qual a estrutura de diretrios do Linux (como os diretrios do Linux esto organizados), a noo de permisses de acesso e algumas outras informaes. Depois que voc ficar conhecendo esses conceitos apropriadamente, partiremos para o uso do sistema, mas saiba que, em alguns casos, iremos voltar a esses conceitos para aprend-los de forma mais aprofundada pois, nesse captulo, esses conceitos so apresentados apenas superficialmente (ou quase).

Como o Linux Interpreta Arquivos


Um arquivo qualquer conjunto slido de informaes gravado em uma unidade de armazenamento (memria auxiliar, como um disco rgido ou um CD, por exemplo). Normalmente, um arquivo criado pela execuo do comando Salvar, comum em tantos programas aplicativos. Ento, em outras palavras, quando voc digita algo em um programa de texto, por exemplo, e salva, est criando um Arquivo. Mais precisamente, est criando um Arquivo de Dados. Arquivos, no Linux, so divididos em alguns tipos, como os que seguem:

Arquivos Comuns: podem ser subdivididos em:


Arquivos de Dados: contm dados de diversos tipos, os maiores exemplos so os arquivos que manipulamos: textos, documentos, planilhas, figuras, fotos, MP3, etc. Arquivo de texto ASCII: um tipo especfico de Arquivo de Dados, escritos por programas editores de texto. So arquivos muito simples e s contm texto (caracteres). Esses arquivos no admitem outro tipo de dado, como figuras ou tabelas. No no possveis nem mesmo as formataes normais (negrito, itlico e sublinhado). Um arquivo do Word, por exemplo, no um arquivo de texto ASCII.

www.joaoantonio.com.br

17

Joo Antonio

Sistema Operacional Linux

Arquivos de Shell Script: so arquivos escritos como textos ASCII, ou seja, em programas editores de texto. Seu contedo formado por comandos que o Linux consegue interpretar. Esses arquivos so como roteiros com vrias instrues que o Linux vai executar. Arquivos binrios (executveis): so arquivos escritos em linguagem de mquina (zeros e uns) que podem ser executados pela CPU do computador. Esses arquivos so, na verdade, chamados de programas ou arquivos executveis. Eles no so escritos para serem lidos pelo usurio, eles so criados para serem compreendidos pelo Linux e executados por ele. Para criar tais arquivos, deve-se escrever um programa em alguma linguagem (como C, por exemplo) e compil-lo a fim de que se transforme no arquivo binrio.

Diretrios: Sim, os diretrios (pastas) so considerados arquivos no Linux. O sistema entende que um diretrio um arquivo especial, que tem em seu contedo um apontador para todos os arquivos que se mostram dentro do diretrio. A idia a mesma de uma pasta no Windows: ou seja, um diretrio uma gaveta onde podemos colocar outros arquivos (inclusive outras pastas). Links (Vnculos): uma idia similar dos atalhos no Windows. Um link um arquivo que aponta para um outro arquivo qualquer (de qualquer tipo, inclusive diretrio). Um link pode apontar, inclusive, para outro link. Exemplo: se h um arquivo chamado teste.doc dentro de /documentos/antigos, voc poder criar um link para ele na pasta raiz, com o nome de teste. Quando voc quiser fazer referncia ao arquivo, pode-se informar ao programa /teste ou /documentos/antigos/teste.doc que vai dar no mesmo!

Veja, na figura abaixo, um exemplo de cada tipo de arquivo (os cones diferem do Windows, claro eu acho at mais bonitos!). Conheceremos mais sobre esse assunto em tpicos posteriores, no se preocupe!

S explicando: Captura de Telas e Documentos so diretrios (pastas) mas, eu acho que voc j havia notado; figura.jpg um arquivo de dados (mais precisamente, uma foto); o arquivo bzip2 um arquivo executvel (binrio); texto e velox.sh so arquivos ASCII (texto puro), a diferena que o segundo um Shell Script, ou seja, composto de vrios comandos que sero interpretados pelo shell do Linux; e, finalmente, o arquivo teste1 um link (atalho). Voc, ento, imagina: O que vai acontecer quando cada um for aberto (duplo clique)?. Depende do tipo: um arquivo de dados (seja ele ASCII ou no) normalmente, quando recebe o duplo clique que solicita sua abertura, faz o Linux chamar o programa que capaz de abri-lo. fcil de entender: no Windows, quando ns damos um clique duplo

www.joaoantonio.com.br

18

Joo Antonio

Sistema Operacional Linux

num arquivo do Word, o que acontece? Isso! O Word aberto para poder abrir o arquivo que o usurio executou! Quando o arquivo for um binrio, o Linux jogar seu contedo na memria principal e comear a executar os comandos existentes nele (afinal, um binrio um programa compilado um executvel em linguagem de mquina). Se o arquivo for um Shell Script, ou outro script qualquer (existem vrios), o Linux se encarregar de ler e interpretar seu contedo (lembre-se: scripts so roteiros cheios de comandos). Finalmente, ao se aplicar duplo clique em um link, ele vai apontar para o arquivo original e o tipo desse arquivo original que definir o comportamento do Linux aps a execuo. Opa! Quase ia me esquecendo delas: se o clique duplo for dado numa pasta, ela ser aberta diretamente pelo programa gerenciador de arquivos (no caso da foto, o konqueror, do KDE), exatamente como acontece no Windows Explorer.

Nomenclatura dos Arquivos


Uma grande diferena entre o Windows e o Linux o jeito como cada um trata os seus arquivos no que se refere s regras de nomenclatura deles em cada sistema. Ou seja, nem sempre o que aprendemos e usamos para salvar arquivos no Windows pode ser usado no Linux e vice versa. Vamos tomar como exemplo um arquivo qualquer do Windows: carta.doc. Esse arquivo , sem dvida, um arquivo de Documento do Word, que ser aberto pelo programa Microsoft Word. Como eu sei disso? Pelo sobrenome do arquivo: a sua extenso (doc). Uma primeira regra simples : mesmo no sendo necessria hoje, a extenso utilizada pelo Windows para reconhecer o arquivo, definindo quem ir abri-lo! Em outras palavras, o arquivo acima citado poderia se chamar somente carta, mas isso no deixaria o Windows classificar-lhe como documento do Word. No sistema Windows, os tipos de arquivos so identificados por sua extenso. Nesse sistema, so comuns nomes de arquivos bem definidos, com apenas um ponto entre seu nome e sua extenso, como em: oramento.xls, carta.doc, filmagem.mpg, What a Wonderful World.mp3 e assim por diante. No Linux, realmente no h necessidade de extenso para os arquivos (binrios, dados, links, diretrios) existirem e serem identificados como tal. Um arquivo normalmente identificado pelo seu contedo, ou seja, mesmo que um arquivo se chame somente texto (como o arquivo mostrado na figura 2.1), ele ser identificado como um arquivo de texto puro (ASCII): note o cone que foi dado a ele! No estou dizendo que no Linux no so usadas extenses, porque so sim! Estou dizendo que, para diferenciar os tipos de arquivos entre si, o Linux, na maioria das vezes, no precisa da extenso porque analisa o contedo do arquivo para definir seu tipo. Imagine dois arquivos de imagem (so arquivos de dados): uma foto JPEG (JPG) e uma imagem GIF. Mesmo que voc no ponha extenses neles, o Linux ser capaz de identific-los por seus contedos (porque cada arquivo tem uma espcie de assinatura no sistema). Vale salientar que os cones no so dados pelo Linux em si, mas pelo ambiente de janelas (KDE, Gnome ou outro qualquer), portanto, se voc est usando um ambiente grfico diferente do meu (estou usando o KDE), os cones podem ser diferentes dos apresentados nesta janela, e podem at mesmo ser iguais entre si. Outra coisinha interessante sobre os nomes dos arquivos que nem sempre h apenas um ponto no nome. simples entender: como no h essa rigidez toda quanto s extenses, no h obrigatoriedade de identific-las com um ponto, portanto, o ponto

www.joaoantonio.com.br

19

Joo Antonio

Sistema Operacional Linux

um caractere perfeitamente utilizvel no nome do arquivo. Claro que a seqncia de caracteres que sucede o ltimo ponto considerada a extenso oficial do arquivo. comum encontrar, no Linux, arquivos com esses tipos de nome (v que loucura!): ethereal-0.10.10-i486-2jim.tar.gz Ooo_1.1.3_LinuxIntel_install.pt-br.rpm H ainda necessidade de se comentar algumas regras bsicas na nomenclatura de arquivos. Regras que, inclusive, at o Windows tem, embora com algumas diferenas:

Os nomes de arquivos podem ter at 255 caracteres (igual ao Windows). So aceitos espaos no nome dos arquivos (igual ao Windows). Praticamente todos os caracteres podem ser usados em nomes de arquivos (incluindo alguns dos que o Windows julga proibidos, como *, ?...). No pode haver dois ou mais arquivos com o mesmo nome dentro da mesma pasta (igual ao Windows). O Linux possui um sistema de arquivos Case-Sensitive, ou seja, ele diferencia maisculas de minsculas. Sendo assim, os arquivos Casa, CASA, casa e cASa possuem nomes diferentes (para o Windows, no h essa diferena: todos os nomes listados acima so iguais!). Normalmente, no Linux, prefere-se criar arquivos com letras minsculas apenas. Arquivos ocultos, no Linux, tm seus nomes iniciados com um . (ponto). Em outras palavras, todos os arquivos que apresentarem seus nomes comeando com um ponto (como em .profile, ou .segredos), so considerados ocultos (no aparecem nas janelas comuns do gerenciador de arquivos).

Note a presena dos arquivos ocultos nos diretrios do Linux: na imagem a seguir, podemos ver, na pasta /root, a existncia de apenas 5 pastas e 1 arquivo. Quando executamos o comando que permite visualizar os arquivos ocultos (calma, conheceremos ele), a conseguimos constatar a presena de mais arquivos (todos precedidos de . ponto).

www.joaoantonio.com.br

20

Joo Antonio

Sistema Operacional Linux

Grupos de Usurios
Vimos que, para se conectar ao sistema Linux, podendo utilizar seus recursos, um usurio precisa ter uma conta (Login e Senha). Vimos tambm que uma dessas contas especial porque fornece, a seu detentor, o direito de fazer qualquer coisa no computador (root). Mas ainda faltou falar sobre uma coisinha nas contas de usurios: os grupos. Um Grupo de Usurios, ou somente grupo, , como o nome j diz, um conjunto de usurios. Um grupo bom para reunir vrios usurios e atribuir a ele (o grupo) certos privilgios de acesso. Quem estiver dentro do grupo vai ter acesso aos recursos que o forem fornecidos ao grupo todo. Exemplo: o usurio root pertence a um grupo chamado, adivinha... root. Os demais usurios, como joao, ana, pedro, paula podem pertencer a outros diversos grupos, como financeiro, rh, e assim por diante. Quando se estipulam, para um grupo, privilgios de acesso a um determinado recurso, todos os usurios daquele grupo automaticamente recebero aqueles direitos sobre o recurso. Quando se cadastra uma nova conta de usurio no Linux, possvel definir em que grupos aquele usurio vai ser inserido (Sim, um usurio pode pertencer a mais de um grupo simultaneamente). Vamos ver posteriormente como fazer para adicionar novos usurios e novos grupos, no se aveche (apresse).

Permisses dos Arquivos


Entre os vrios recursos que tornam o Linux um sistema seguro est a rigidez dele no tocante s permisses que um usurio tem de utilizar um determinado arquivo. Os sistemas Windows domsticos (95, 98, ME e XP Home) no chegam nem perto do que o Linux pode fazer para proteger os arquivos de um usurio. Vejamos: imaginemos que os arquivos mostrados na figura abaixo foram criados por um usurio chamado joao que pertence ao grupo contab. Note, pela figura, que os arquivos em questo esto localizados na pasta /empresa/documentos/geral.

www.joaoantonio.com.br

21

Joo Antonio

Sistema Operacional Linux

Supondo que o usurio clique com o boto secundrio do mouse (normalmente o direito) em um dos arquivos mostrados acima (por exemplo, o arquivo orcamento), ser apresentado um menu de opes onde haver propriedades como uma delas. Ao clicar em propriedades, o usurio obter a seguinte janela:

Note logo que h 3 nveis de permisses: um para o Dono, um para o Grupo e um para Outros, mas o que isso?

Dono do Arquivo: , normalmente, como o nome j diz, o usurio que criou o arquivo. Eu disse normalmente porque um arquivo pode ter seu dono atribudo posteriormente (o ttulo de dono do arquivo transfervel a outros usurios). Note que o dono do arquivo o usurio joao, como se pode ver na parte inferior da figura acima. Grupo: descreve o grupo de usurios ao qual o dono do arquivo pertence. O arquivo mostrado na figura pertence ao usurio joao, que est cadastrado no grupo contab. Outros: descreve os privilgios de acesso dos outros usurios do computador (aqueles que no pertencem ao grupo contab). Escrever: esse privilgio permite, ao seu detentor, modificar o contedo de um arquivo (salv-lo). Normalmente, esse direito est atrelado ao direito de ler o arquivo (porque, na maioria dos casos, modificar o arquivo requer que se abra ele primeiro).

Note tambm que h permisses para 3 tipos de operaes: Escrever, Ler e Executar.

www.joaoantonio.com.br

22

Joo Antonio

Sistema Operacional Linux

No caso da figura acima, apenas o dono do arquivo (joao) poder alterar seu contedo.

Ler: permite que o detentor desse privilgio possa apenas ler o contedo de um arquivo, sem poder alter-lo (salvar). Nem vem! Se voc no tiver acesso a um arquivo para modific-lo, nada feito, o Linux no deixa mesmo! O grupo contab foi agraciado com o direito de ler o arquivo orcamento, segundo as informaes mostradas na figura acima. Executar: define que o arquivo em questo poder ser executado como um programa qualquer pelo usurio. Como j vimos, no Linux, vrios arquivos so considerados executveis, como os binrios e os shell scripts. Para que o sistema os possa executar quando o usurio pedir, necessrio que este (o usurio) tenha privilgio para executar o arquivo. O arquivo orcamento, na figura acima, no executvel!!!

Note que, aos usurios que no pertencem ao grupo do usurio joao (grupo contab), no foi dada nenhuma permisso ao arquivo mostrado na figura acima, ou seja, com o arquivo orcamento, os demais usurios do computador no podem fazer nada (nem ler)! Essas permisses podem ser alteradas nesta mesma janela, bem como atravs de comandos do sistema (conhecemos os comandos logo logo). Veja a mesma janela com direitos de leitura, escrita e execuo dados a todos os usurios do computador (todo mundo pode tudo). O dono do arquivo e o grupo tambm foram alterados.

Ainda h um alerta a se fazer: no adianta atribuir o privilgio de execuo para um arquivo qualquer de dados. Um arquivo s vai ser executado se ele possuir um contedo que o permita isso (um binrio ou um script). Arquivos de dados comuns, como uma foto ou uma msica mp3, no se beneficiam do privilgio de execuo porque o Linux no vai conseguir execut-los mesmo que o privilgio esteja ativado. Outro Lembrete oportuno: Mesmo que um usurio qualquer defina limites de acesso aos demais usurios do computador para um determinado arquivo, o root pode fazer qualquer coisa com aquele arquivo: ler, escrever e executar. O root pode at mesmo destituir o usurio da propriedade do arquivo, fazendo com que o arquivo passe a ter outro dono! Com isso, caro leitor, acredito que j possamos passar para a parte mais interessante do nosso livro: o trabalho braal com o Linux. Vamos conhecer seus componentes principais e vamos aprender a utiliz-los!

www.joaoantonio.com.br

23

Joo Antonio

Sistema Operacional Linux

Pastas Pessoais dos Usurios


Cada usurio cadastrado no sistema Linux tem uma pasta prpria, onde recomenda-se que este guarde seus arquivos pessoais (como Meus Documentos no Windows). Claro que essa pasta ser usada se o usurio quiser, pois nada (realmente) o obriga a usla! apenas uma questo de organizao e praticidade. Para todos os usurios do sistema (com exceo do usurio root), a pasta pessoal fica localizada em /home/xxxx, onde xxxx o login do referido usurio. Exemplo: o usurio pedro vai ter, quando cadastrado, sua pasta pessoal criada como /home/pedro. Para o super usurio, a pasta pessoal dele /root, fora da estrutura de /home. (... quem pode, pode!). E, claro, a menos que se determinem permisses diferentes, o diretrio /root acessvel somente pelo usurio root e os diretrios pessoais dos outros usurios estaro acessveis apenas por eles respectivamente (cada um no seu) e pelo root (novamente, quem pode, pode!).

ENTENDENDO O SHELL (O AMBIENTE DOS COMANDOS DE TEXTO)


A janela de comandos do Linux possui um prompt (aviso) e um cursor (para inserir caracteres). O prompt apresentado assim, normalmente: [usuario@computador diretrio]$ Onde: usuario: login do usurio que est logado computador: nome do computador que se est usando diretrio: nome do diretrio atual (ou seja, a pasta onde se est trabalhando no momento). s vezes, porm, o prompt apresenta informacoes variadas (nao exatamente essas que falei): por exemplo, possvel encontrar o prompt apenas com um sinal, que pode ser: $ se o usurio logado um usurio comum; # se o usurio logado o root (administrador); (note que esses sinais acompanham os prompts grandes tambm!) Alm de saber como o Linux se apresenta em modo texto, interessante ver como se processam as respostas dadas aos comandos que digitamos: bem simples... Digite o comando; pressione ENTER; o Linux vai responder a voc!
[prompt]$ comando <ENTER>

Resposta do Linux . (pode levar vrias linhas, bem como, pode at no ter nenhuma existem comandos que no do respostas quando est tudo certo!!).

[prompt, de novo (esperando o prximo comando)]$

www.joaoantonio.com.br

24

Joo Antonio

Sistema Operacional Linux

1) Comandos de Manipulao de Arquivos e Diretrios


1.1) ls (List - Listar): esse comando, semelhante ao DIR do DOS, serve para listar o contedo de um determinado diretrio, apresentando arquivos e diretrios presentes no local especificado. Veja, por exemplo um hipottico diretrio provas, com quatro arquivos. Na interface "bonita" no Linux, o diretrio provas seria visto assim: Na interface "feia, mas funcional", a listagem seria apresentada pelo comando ls:
[joao@computer provas]$ ls

joao.antonio.txt joao.antonio.txt~ espaco.juridico.doc trf2005.txt

, mas essa listagem no apresenta muitas informaes teis, no ? Portanto, vamos usar a opo "l"... Nos comandos do Linux, a maioria das opes apresentada precedida do sinal de "-" (menos). Portanto, o comando ficaria:

[joao@computer provas]$ ls -l

total 16 -rw-rw-r-- 1 joao joao 7 Jul 1 13:24 joao.antonio.txt -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 joao.antonio.txt~ -rw-rw-r-- 1 joao joao 8 Jul 1 13:25 espaco.juridico.doc -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 trf2005.txt

A opo -l permite a apresentacao dos arquivos com detalhamento. Esse detalhamento o seguinte (em relacao primeira linha da listagem, mas serve para todas as outras, ok?): -rw-rw-r--: Permissoes do arquivo (veremos mais adiante); 1: nmero de links (atalhos) que apontam para esse arquivo; joao joao: DONOS do arquivo (a primeira palavra o USUARIO DONO e a segunda palavra o GRUPO DONO)... Veremos depois tambem. 7: Tamanho (em bytes) do arquivo. Jul 1 13:24: Data da ltima modificao que o arquivo sofreu (data/hora do ltimo salvamento). joao.antonio.txt: Nome do arquivo. Tem outra opao do ls: a opo -a permite que sejam visualizados os arquivos ocultos tambm (arquivos que normalmente no so vistos pelos comandos ls normais - sem essa opo). Entao fica assim (caso queiramos listagem detalhada e vendo arquivos ocultos):
[joao@computer provas]$ ls -a -l

www.joaoantonio.com.br

25

Joo Antonio

Sistema Operacional Linux

total 28 drwxrwxr-x 2 joao joao 4096 Jul 1 14:58 . drwxrwx--- 5 joao joao 4096 Jul 1 13:24 .. -rw-rw-r-- 1 joao joao 7 Jul 1 13:24 joao.antonio.txt -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 joao.antonio.txt~ -rw-rw-r-- 1 joao joao 8 Jul 1 13:25 espaco.juridico.doc -rw-rw-r-- 1 joao joao 89892 Jul 1 13:24 .gabarito2005.txt -rw-rw-r-- 1 joao joao 23 Jul 1 13:24 trf2005.txt

Para nao termos que digitar -l -a -qualquer coisa, basta juntar todas as opcoes num (hfen) s, como em ls -la (isso vale para quase todos os comandos). Tem uma outra interessante, que -h (h de "humano", ou "agradvel para os humanos")... Essa opo permite que os valores em bytes dos arquivos sejam escritos com apreviaes K para Kilo, M para Mega e G para Giga, facilitando a leitura do tamanho do arquivo... S tem sentido usar essa opo associada ao -l (porque quando aparecem os tamanhos dos arquivos).
[joao@computer provas]$ ls -lah

total 28K drwxrwxr-x 2 joao joao 4,0K Jul 1 14:58 . drwxrwx--- 5 joao joao 4,0K Jul 1 13:24 .. -rw-rw-r-- 1 joao joao 7 Jul 1 13:24 joao.antonio.txt -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 joao.antonio.txt~ -rw-rw-r-- 1 joao joao 8 Jul 1 13:25 espaco.juridico.doc -rw-rw-r-- 1 joao joao 90,0K Jul 1 13:24 .gabarito2005.txt -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 trf2005.txt

Aproveito o ensejo para mostrar algo interessante: na parte das permisses do arquivo, quando o primeiro caractere um "d", significa que o objeto em questao um diretrio (pasta), porm, quando um "-" (hfen) aparece ao invs do "d", o objeto um arquivo. Uma ltima coisinha: o comando ls nao usado para somente listar o contedo do diretrio atual... Ele pode ser usado para listar o contedo de qualquer outro diretrio desde que seja informado qual ser o alvo. Um exemplo: vamos listar o contedo do diretrio /home/joao/downloads (mesmo nao estando nessa pasta).
[joao@computer provas]$ ls -lah /home/joao/downloads

total 7,3M drwxrwx--- 3 joao joao 4,0K Jul 1 15:16 . drwxr-xr-x 35 joao joao 4,0K Jul 1 14:53 .. -rw-rw---- 1 joao joao 346K Jun 3 15:57 banrisul2005.pdf -rw-rw---- 1 joao joao 323K Jun 21 18:27 banrisul.zip -rw-rw-r-- 1 joao joao 213K Jun 28 17:52 gestor.mg.esaf.pdf drwxrwxr-x 2 joao joao 4,0K Jul 1 15:16 programas -rw-rw-r-- 1 joao joao 280K Jun 28 17:52 prova.pdf

www.joaoantonio.com.br

26

Joo Antonio

Sistema Operacional Linux

-rw-rw-rw- 1 root root 38K Jun 28 18:11 prova.txt -rw-rw-r-- 1 joao joao 6,1M Jun 22 17:08 skype-1.1.0.13-mdk.i586.rpm

Note que h um diretrio (programas) dentro do diretrio downloads (cujo contedo foi visualizado no comando acima). Caso se queira listar o contedo deste diretrio tambm (ou seja, ao executar o ls, este ser usado para ler o contedo dos diretrios que esto dentro do diretrio alvo), deve-se usar a opo -R ("R" de "recursivamente", ou seja, refazendo vrias vezes at encontrar um diretrio sem subdiretrios) - esse R tem que ser maisculo!!!... Fica assim:
[joao@computer provas]$ ls -lahR /home/joao/downloads

downloads: total 7,3M drwxrwx--- 3 joao joao 4,0K Jul 1 15:16 . drwxr-xr-x 35 joao joao 4,0K Jul 1 14:53 .. -rw-rw---- 1 joao joao 346K Jun 3 15:57 banrisul2005.pdf -rw-rw---- 1 joao joao 323K Jun 21 18:27 banrisul.zip -rw-rw-r-- 1 joao joao 213K Jun 28 17:52 gestor.mg.esaf.pdf drwxrwxr-x 2 joao joao 4,0K Jul 1 15:23 programas -rw-rw-r-- 1 joao joao 280K Jun 28 17:52 prova.pdf -rw-rw-rw- 1 root root 38K Jun 28 18:11 prova.txt -rw-rw-r-- 1 joao joao 6,1M Jun 22 17:08 skype-1.1.0.13-mdk.i586.rpm

downloads/programas: total 13M drwxrwxr-x 2 joao joao 4,0K Jul 1 15:23 . drwxrwx--- 3 joao joao 4,0K Jul 1 15:16 .. -rw-rw-r-- 1 joao joao 6,1M Jun 22 17:08 jogos.i586.mdk.rpm -rw-rw-r-- 1 joao joao 6,1M Jun 22 17:08 teste.tar.gz

Acho que sobre o ls j vimos o necessrio... mas tem muito mais!!! 1.2) mkdir (Make Directory - Criar Diretrio): o comando mkdir usado para criar diretrios (ele identico ao MD do DOS). Sua sintaxe de uso assim: mkdir <opes> nome <opes>: opcionais (como no nome j diz) nome: nome que ser dado ao diretrio que se deseja criar, como em:
[joao@computer provas]$ mkdir faceis

Nesse caso, ser criado um diretrio chamado faceis, dentro do diretrio provas (diretrio atual).

www.joaoantonio.com.br

27

Joo Antonio

Sistema Operacional Linux

Caso se queira criar um diretrio em outro local (que no seja o diretrio atual), basta informar o caminho completo para isso. Veja o exemplo a seguir, onde um diretrio chamado programas ser criado dentro de /home/joao/downloads note que o comando ser executado tendo provas como diretrio corrente:
[joao@computer provas]$ mkdir /home/joao/downloads/programas

Ainda tem uma muito boa: caso voc deseje criar mais de um diretrio, no necessrio criar um por vez, execute o comando mkdir com todos os diretrios que deseja criar separados por um espao:
[joao@computer provas]$ mkdir medias dificeis esaf

Nesse caso sero criados os diretrios medias, dificeis e esaf dentro do diretrio provas (que o atual). O resultado do comando mkdir pode ser visto pelo ls. Veja no exemplo a seguir:
[joao@computer provas]$ ls -lah

total 28K drwxrwxr-x 2 joao joao 4,0K Jul 1 14:58 . drwxrwx--- 5 joao joao 4,0K Jul 1 13:24 .. -rw-rw-r-- 1 joao joao 7 Jul 1 13:24 joao.antonio.txt -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 joao.antonio.txt~ -rw-rw-r-- 1 joao joao 8 Jul 1 13:25 espaco.juridico.doc drwxrwxr-x 2 joao joao 4,0K Jul 1 18:58 dificeis drwxrwxr-x 2 joao joao 4,0K Jul 1 18:58 esaf drwxrwxr-x 2 joao joao 4,0K Jul 1 18:53 faceis -rw-rw-r-- 1 joao joao 90,0K Jul 1 13:24 .gabarito2005.txt drwxrwxr-x 2 joao joao 4,0K Jul 1 18:58 medias -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 trf2005.txt

1.3) cd (Change Directory Mudar de Diretrio): esse comando tem a mesma funo (e o mesmo nome) que tinha no DOS: permitir que o usurio entre em outro diretrio. Caso o usurio esteja no diretrio provas e deseje entrar no diretrio esaf (que criamos h pouco), s digitar:
[joao@computer provas]$ cd esaf [joao@computer esaf]$

Note a mudana no prompt depois do comando concludo: o diretrio corrente esaf agora (isso significa, em palavras fceis: voc est no diretrio esaf agora!). Para sair de um diretrio, voltando ao diretrio pai (ou seja, o diretrio que contm aquele em que voc est agora), basta digitar:
[joao@computer esaf]$ cd .. [joao@computer provas]$

www.joaoantonio.com.br

28

Joo Antonio

Sistema Operacional Linux

Note que o sinal de .. (ponto ponto) separado do comando cd (no adianta digitar cd.. tudo junto, feito no DOS, o linux no entende!). Caso o usurio queira ir para um diretrio qualquer, mesmo que no tenha ligao com o diretrio atual, basta digitar o caminho inteiro para ele (partindo do diretrio raiz a /). Veja:
[joao@computer provas]$ cd /home/joao/downloads [joao@computer downloads]$

Caso o usurio queira ir direto ao diretrio raiz (o nvel mais alto da estrutra de diretrios do linux, basta digitar cd /:
[joao@computer provas]$ cd / [joao@computer /]$

Tem umas dicas legais aqui, que so diferentes do DOS: como cada usurio tem seu diretrio pessoal (normalmente /home/usuario para usurios comuns e /root para o administrador), pssvel saltar diretamente para esse diretrio apenas digitando cd ~ (til) ou simplesmente cd. Veja:
[joao@computer provas]$ cd ~ [joao@computer joao]$

1.4) pwd: esse comando informa ao usurio em que diretrio ele est (parece intil, mas de vez em quando interessante). Veja o exemplo:
[joao@computer joao]$ pwd /home/joao

[joao@computer joao]$

Eu no sei se tarde demais para dizer isso, mas: todos os comandos do Linux so sucedidos da tela ENTER, para confirmao da ordem... (acho que vocs j haviam deduzido isso)... 1.5) rmdir (Remover Diretrio): esse comando apaga diretrios vazios ( semelhante ao RD do DOS). Para remover diretrios com contedo, podemos usar outro comando, que ser visto adiante. DICA IMPORTANTE: Aqui vai uma dica preciosa: a tecla TAB, em seu teclado, facilita, e muito, o trabalho dos usurios porque permite que os comandos sejam completados, dispensando a necessidade de digitar tudo. Exemplo: voc pretende entrar num diretrio chamado tributario, que est no diretrio atual. Caso esse seja o nico diretrio que inicia com t, digite o seguinte:
[joao@computer joao]$ cd t<TAB>

... o Linux far aparecer o seguinte:

www.joaoantonio.com.br

29

Joo Antonio

Sistema Operacional Linux

[joao@computer joao]$ cd tributario

Claro que o TAB s sabia como completar o comando porque tributario era a nica pasta com esse incio. Caso haja mais de uma pasta com o incio semelhante (exemplo: tributario e tribunais), ao pressionar TAB, o Linux ir preencher at a ltima letra idntica e mostrar as opes... Veja:
[joao@computer joao]$ cd t<TAB> [joao@computer joao]$ cd tribu tributario tribunais

1.6) clear (Limpar a tela): esse comando esvazia todos os caracteres mostrados na tela e coloca o prompt sozinho na parte superior esquerda da mesma. equivalente ao cls do DOS. 1.7) tree (rvore): este comando mostra a estrutura de diretrios e arquivos em forma de uma rvore simples. possvel ver diretrios, os diretrios e arquivos dentro dos diretrios e assim sucessivamente. Para acionar o comando tree, basta digit-lo na linha de comando. A opo -F usada para que a listagem de arquivos e diretrios possa ser apresentada com um caractere a mais sucedendo os nomes dos arquivos e diretrios (esse caractere adicional serve para identificar o tipo do objeto cujo nome o antecede): / = indica que o objeto um diretrio; * = indica que um arquivo executvel; @ = indica que um link (atalho); Essa opo (-F) tambm pode ser usada no comando ls!!! (para a mesma finalidade: apresentar um caractere adicional que indicar o tipo do arquivo/diretrio). Veja um exemplo do comando tree:
[joao@computer provas]$ tree -F

concursos/provas |-- joao.antonio.txt* |-- joao.antonio.txt~ |-- espaco.juridico.doc |-- esaf/ | | | | | | | | | |-- auditor/ | `-- prova.doc

|-- casa |-- gestor/ |-- prova.doc |-- slack.pdf |-- soft.pdf `-- tecnico/ `-- prova.gestor.rtf*

www.joaoantonio.com.br

30

Joo Antonio

Sistema Operacional Linux

`-- trf2005.txt

4 directories, 10 files

Note o resultado... Pudemos conhecer certas informaes: joao.antonio.txt executvel; esaf, auditor, gestor e tecnico sao diretrios; dentro do diretrio tecnico h um arquivo executvel chamado prova.gestor.rtf (entendeu!?). S falta fazer um lembrete: o comando tree nao est presente em todas as distribuies ou formas de instalao do Linux, nao! Ento, perfeitamente possvel que, ao tentar treinar esse comando, voc se depare com um cenrio como esse:
[joao@computer provas]$ tree -F

tree: command not found

1.8) mv (Mover): esse comando tem duas funes distintas: mover e renomear arquivos e diretrios. O comando mv substitui os comandos MOVE e REN do DOS. A sintaxe (forma de escrever) do comando mv : mv [opes] <origem> <destino> onde: Origem: o nome do arquivo a ser movido / renomeado. Destino: o nome do diretrio para ondo o arquivo vai (caso esteja sendo movido) ou o nome que o arquivo ir ter (caso esteja sendo renomeado). Para usar o comando mv, deve-se tem em mente o que se quer fazer... Vamos comear pela ao de Renomear: veja a listagem do contedo do diretrio esaf... Vamos renomear o arquivo chamado teste.doc para prova.doc:
[joao@computer esaf]$ ls -lah

total 23M drwxr-xr-x 2 joao joao 4,0K Jul 2 18:26 . drwxrwxr-x 3 joao joao 4,0K Jul 2 18:24 .. -rwxr-xr-x 1 joao joao 14K Jul 2 18:25 prova.gestor.rtf -rw-r----- 1 joao joao 2,6M Jul 2 18:25 slack.pdf -rw-r----- 1 joao joao 225K Jul 2 18:25 soft.pdf -rw-r----- 1 joao joao 20M Jul 2 18:25 teste.doc

[joao@computer esaf]$ mv teste.doc prova.doc

[joao@computer esaf]$ ls -lah

total 23M drwxr-xr-x 2 joao joao 4,0K Jul 2 18:26 . drwxrwxr-x 3 joao joao 4,0K Jul 2 18:24 ..

www.joaoantonio.com.br

31

Joo Antonio

Sistema Operacional Linux

-rwxr-xr-x 1 joao joao 14K Jul 2 18:25 prova.gestor.rtf -rw-r----- 1 joao joao 2,6M Jul 2 18:25 slack.pdf -rw-r----- 1 joao joao 225K Jul 2 18:25 soft.pdf -rw-r----- 1 joao joao 20M Jul 2 18:25 prova.doc

importante saber como o Linux diferencia a ao a ser realizada pelo comando mv: Ser mover se, no lugar do <Destino>, for escrito o nome de um diretrio que existe. Caso no <Destino> seja descrito um nome qualquer que nao existe, o comando automaticamente funcionar como RENOMEAR, atribuindo ao arquivo em questao o novo nome descrito na clusula <Destino>. Veja o comando mv sendo usado para Mover um arquivo:
[joao@computer esaf]$ ls -lh

total 23M drwxr-xr-x 2 joao joao 4,0K Jul 2 18:58 auditor drwxr-xr-x 2 joao joao 4,0K Jul 2 18:58 gestor -rw-r----- 1 joao joao 20M Jul 2 18:25 prova.doc -rwxr-xr-x 1 joao joao 14K Jul 2 18:25 prova.gestor.rtf -rw-r----- 1 joao joao 2,6M Jul 2 18:25 slack.pdf -rw-r----- 1 joao joao 225K Jul 2 18:25 soft.pdf drwxr-xr-x 2 joao joao 4,0K Jul 2 18:58 tecnico

[joao@computer esaf]$ mv prova.gestor.rtf tecnico

[joao@computer esaf]$ ls -lh

total 23M drwxr-xr-x 2 joao joao 4,0K Jul 2 18:58 auditor drwxr-xr-x 2 joao joao 4,0K Jul 2 18:58 gestor -rw-r----- 1 joao joao 20M Jul 2 18:25 prova.doc -rw-r----- 1 joao joao 2,6M Jul 2 18:25 slack.pdf -rw-r----- 1 joao joao 225K Jul 2 18:25 soft.pdf drwxr-xr-x 2 joao joao 4,0K Jul 2 18:58 tecnico

O comando mv, mostrado acima, foi usado para mover o arquivo prova.gestor.rtf para o diretrio tecnico. Note, no segundo ls, que o arquivo nao se encontra mais no diretrio corrente! Muita gente vai perguntar: Joao, porque as operaes de MOVER e RENOMEAR arquivos, que sao tao diferentes entre si, so executadas pelo mesmo comando? Foi uma prova de que o pessoal do Linux mao-de-vaca para criar comandos? Nao! Nao isso: as aoes de MOVER e RENOMEAR sao, na verdade, a mesma coisa: quando se "move" um arquivo de um diretrio para outro, o ndice que aponta para o arquivo atualizado, informando a nova localidade... a mesma coisa que acontece quando se renomeia um arquivo (seu ndice atualizado, para conter o novo nome). Nao h, portanto, alteracoes na localizao fsica do arquivo no Disco (na maioria dos casos)... o que conta mesmo a

www.joaoantonio.com.br

32

Joo Antonio

Sistema Operacional Linux

alteraao no ndice que aponta para o arquivo (a tabela de alocao dos arquivos no disco). Lembre-se: mv <origem> <destino> significa RENOMEAR a <origem> se o nome colocado em <destino> nao existir. Se o nome colocado em <destino> existir, e for um diretrio (ainda tem isso), o comando mv assume imediatamente sua funo de mover o objeto descrito em <origem>. 1.9) cp (Copiar): o comando cp copia arquivos e diretrios (copiar criar um outro arquivo idntico ao original). A sintaxe do comando cp : cp [opes] <origem> <destino> Lembro que, se <destino> for um diretrio existente, uma nova cpia do arquivo descrito em <origem> ser criada dentro daquele diretrio. Contudo, caso o nome descrito em <destino> nao exista, ser criada uma cpia de <origem> com o nome <destino> (um segundo arquivo, idntico em tudo, menos no nome, que ser o que estiver descrito em <destino>). Veja que bonito... comearemos com um ls para verificar o contedo, depois, sero efetuados dois comandos cp seguidos (preste atenao neles) e, por fim, um comando tree, para mostrar a rvore de diretrios.
[joao@computer esaf]$ ls -lh total 23M drwxr-xr-x 2 joao joao 4,0K Jul 2 18:58 auditor drwxr-xr-x 2 joao joao 4,0K Jul 2 18:58 gestor -rw-r----- 1 joao joao 20M Jul 2 18:25 prova.doc -rw-r----- 1 joao joao 2,6M Jul 2 18:25 slack.pdf -rw-r----- 1 joao joao 225K Jul 2 18:25 soft.pdf drwxr-xr-x 2 joao joao 4,0K Jul 2 19:02 tecnico

[joao@computer esaf]$ cp prova.doc auditor

[joao@computer esaf]$ cp soft.pdf casa

[joao@computer esaf]$ tree -F

esaf |-- auditor/ | `-- prova.doc

|-- casa |-- gestor/ |-- prova.doc |-- slack.pdf |-- soft.pdf `-- tecnico/ `-- prova.gestor.rtf*

3 directories, 6 files

www.joaoantonio.com.br

33

Joo Antonio

Sistema Operacional Linux

Como se pode perceber, existe agora um arquivo prova.doc dentro da pasta auditor (criado pelo primeiro comando cp) e existe um arquivo casa dentro da pasta esaf (este arquivo foi criado pelo segundo comando cp). Um lembrete: por padro, o comando cp omite os diretrios (no os copia). Portanto, se o usurio tentar executar o comando cp <diretorio> <destino>, o comando nao far nada! Para copiar um diretrio e todo o seu contedo, use a opo -r no comando cp (esse r vem de "recursivamente" novamente, ou seja, copie o diretrio, entre nele, v copiando o que tem dentro (outros diretrios e/ou arquivos), entrando nesses diretrios, copiado seus contedos, e assim sucessivamente at chegar num ponto em que nao haja mais diretrios para entrar)... Veja esse cenrio (dentro do diretrio provas):
[joao@computer provas]$ ls -lhF

total 20K -rwxrwxrwx 1 joao joao 7 Jul 1 13:24 joao.antonio.txt* -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 joao.antonio.txt~ -rw-rw-r-- 1 joao joao 8 Jul 1 13:25 espaco.juridico.doc drwxr-xr-x 5 joao joao 4,0K Jul 2 19:28 esaf/ -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 trf2005.txt

[joao@computer provas]$ tree -F

concursos/provas |-- joao.antonio.txt* |-- joao.antonio.txt~ |-- espaco.juridico.doc |-- esaf/ | | | | | | | | | |-- auditor/ | `-- prova.doc

|-- casa |-- gestor/ |-- prova.doc |-- slack.pdf |-- soft.pdf `-- tecnico/ `-- prova.gestor.rtf*

`-- trf2005.txt

4 directories, 10 files

[joao@computer provas]$ cp esaf fcc (prestem ateno aqui!!!)

cp: omitindo diretrio 'esaf' (ops... errei, faltou o -r)

www.joaoantonio.com.br

34

Joo Antonio

Sistema Operacional Linux

[joao@computer provas]$ cp -r esaf fcc

[joao@computer provas]$ ls -lhF

total 24K -rwxrwxrwx 1 joao joao 7 Jul 1 13:24 joao.antonio.txt* -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 joao.antonio.txt~ -rw-rw-r-- 1 joao joao 8 Jul 1 13:25 espaco.juridico.doc drwxr-xr-x 5 joao joao 4,0K Jul 2 19:28 esaf/ drwxr-xr-x 5 joao joao 4,0K Jul 3 00:55 fcc/ -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 trf2005.txt

Note que h mais um diretrio agora (fcc). Vamos comprovar que seu contedo idntico ao contedo do diretrio esaf com o comando tree -F:
[joao@computer provas]$ tree -F

concursos/provas |-- joao.antonio.txt* |-- joao.antonio.txt~ |-- espaco.juridico.doc |-- esaf/ | | | | | | | | | |-- fcc/ | | | | | | | | | |-- auditor/ | `-- prova.doc |-- auditor/ | `-- prova.doc

|-- casa |-- gestor/ |-- prova.doc |-- slack.pdf |-- soft.pdf `-- tecnico/ `-- prova.gestor.rtf*

|-- casa |-- gestor/ |-- prova.doc |-- slack.pdf |-- soft.pdf `-- tecnico/ `-- prova.gestor.rtf*

`-- trf2005.txt

www.joaoantonio.com.br

35

Joo Antonio

Sistema Operacional Linux

8 directories, 16 files

Pois , com isso chegamos ao fim do comando cp (tem mais coisa, mas acho que voc descobrir com o tempo). 1.9) rm (Remover arquivos e diretrios): o comando rm usado para apagar arquivos e diretrios (incluindo os diretrios no-vazios). Sintaxe: rm [opes] <alvo> Note que o comando rm vai pedir uma confirmao do apagamento do referido arquivo.
[joao@computer provas]$ ls -lhF

total 24K -rwxrwxrwx 1 joao joao 7 Jul 1 13:24 joao.antonio.txt* -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 joao.antonio.txt~ -rw-rw-r-- 1 joao joao 8 Jul 1 13:25 espaco.juridico.doc drwxr-xr-x 5 joao joao 4,0K Jul 2 19:28 esaf/ drwxr-xr-x 5 joao joao 4,0K Jul 3 00:55 fcc/ -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 trf2005.txt

[joao@computer provas]$ rm joao.antonio.txt

rm: remover arquivo comum 'joao.antonio.txt'? s (digitei o s)

[joao@computer provas]$ ls -lhF

total 24K -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 joao.antonio.txt~ -rw-rw-r-- 1 joao joao 8 Jul 1 13:25 espaco.juridico.doc drwxr-xr-x 5 joao joao 4,0K Jul 2 19:28 esaf/ drwxr-xr-x 5 joao joao 4,0K Jul 3 00:55 fcc/ -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 trf2005.txt

Caso se deseje apagar um diretrio e tudo o que tem dentro dele, acione o comando rm com a opo -r (r de recursivamente, de novo!)... Mas a, dou logo o aviso: o Linux vai perguntar por cada um dos arquivos a serem apagados (que estiverem dentro do diretrio alvo), o que, por sinal, um verdadeiro SACO!!! Para que o Linux entenda que deve apagar sem perguntar (sem exigir confirmao para o apagamento de CADA ARQUIVO), use a opo -f (f de foradamente - esse minsculo!!!). Ento veja as opes -f e -r em ao:
[joao@computer provas]$ ls -lhF

total 8K

www.joaoantonio.com.br

36

Joo Antonio

Sistema Operacional Linux

-rw-rw-r-- 1 joao joao 2 Jul 1 13:24 joao.antonio.txt~ -rw-rw-r-- 1 joao joao 8 Jul 1 13:25 espaco.juridico.doc drwxr-xr-x 5 joao joao 4,0K Jul 2 19:28 esaf/ drwxr-xr-x 5 joao joao 4,0K Jul 3 00:55 fcc/ -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 trf2005.txt

[joao@computer provas]$ rm -rf fcc

[joao@computer provas]$ ls -lhF

total 4K -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 joao.antonio.txt~ -rw-rw-r-- 1 joao joao 8 Jul 1 13:25 espaco.juridico.doc drwxr-xr-x 5 joao joao 4,0K Jul 2 19:28 esaf/ -rw-rw-r-- 1 joao joao 2 Jul 1 13:24 trf2005.txt

2) Comandos para Permisses de Acesso a Arquivos e Diretrios 2.1) chmod (Change Mode - Mudar o Modo (?!?)): apesar deste comando ter um nome estranho, seu objetivo mudar as permisses de um arquivo ou diretrio. Esse "mudar as permisses" significa que o arquivo poder ser acessado, modificado e executado por outras pessoas alm daquelas que poderiam ter esses direitos. um troo bastante esquisito, mas interessante, sem dvida! Sintaxe: chmod <permisses> <alvo> onde: chmod o comando (claro!) <permisses> o dado destinado a informar quais os nveis de permisso que o arquivo vai ter... <alvo> o arquivo em si, que ter suas permisses alteradas (ou diretrio, claro). Vamos a algo bem interessante: um comando ls para listar o contedo de um diretrio, primeiramente...
[joao@computer documentos]$ ls -lh total 188K drwxrwxr-x 2 joao users 4,0K Jul 8 18:40 apresentacoes -rw-rw-r-- 1 joao users 4,7K Jul 8 18:40 avisos.doc lrwxrwxrwx 1 joao users 14 Jul 8 19:07 dic.dic -> dicionario.dic -rw-rw-r-- 1 joao users 61K Jul 8 18:40 dicionario.dic -rw-rw-r-- 1 joao users 4,7K Jul 8 18:41 impressora_manual.doc -rw-rw-r-- 1 joao users 4,2K Jul 8 18:40 instrucoes.doc -rw-rw-r-- 1 joao users 31K Jul 8 18:40 jovem_galileu.mp3 -rwxr-xr-x 1 joao users 14K Jul 8 18:40 lattes.rtf drwxrwxr-x 2 joao users 4,0K Jul 8 18:48 planilhas -rw-rw-r-- 1 joao users 31K Jul 8 18:41 poesia.pdf

www.joaoantonio.com.br

37

Joo Antonio

Sistema Operacional Linux

drwxrwxr-x 2 joao users 4,0K Jul 8 18:47 textos drwxrwxr-x 2 joao users 4,0K Jul 8 18:45 web

Vamos tomar como exemplo o arquivo instrucoes.doc, que mostra o seguinte: -rw-rw-r-- 1 joao users 4,2K Jul 8 18:40 instrucoes.doc Como vimos anteriormente, esse arquivo tem as seguintes informaes: -rw-rw-r-- : permisses de acesso ao arquivo. 1 : quantidade de atalhos que apontam para esse arquivo joao users: esse arquivo pertence a um usurio chamado joao e a um grupo chamado users 4,2K : tamanho do arquivo Jul 8 18:40: data e hora da ltima alterao do arquivo. Quanto s permisses, que so o nosso alvo de interesse, bom que se saiba que h trs tipos de permisses para arquivos e diretrios: r (read - leitura): essa permisso diz que o arquivo pode ser lido (aberto); w (write - escrita): informa que o arquivo pode ser escrito (modificado, salvo); x (eXecute - executar): indica que o arquivo pode ser executado (ou seja, ele ser considerado executvel e poder ser colocado na memria RAM como um programa, sem necessitar de outro programa qualquer para isso). Essa permisso, no caso de diretrios (pastas) necessria para que a pasta seja acessada (ou seja, para que se possa ver seu contedo), ento, em resumo : para que um diretrio seja acessado (seu contedo seja visto), necessrio que o indicador de x (execuo) esteja ativado. Outra coisa: h trs pessoas (ou grupos de pessoas) que podem ter permisses distintas sobre um arquivo qualquer: Usurio Dono (User): o usurio cujo nome est descrito na primeira coluna do proprietrio (no caso acima, joao) Grupo Dono (Group): o grupo de usurios ao qual o arquivo pertence, que no caso anterior users (um arquivo pode pertencer a somente um grupo) Outros usurios (Other): todos os demais usurios do sistema que no pertencem ao grupo dono. Aquelas informacoes sobre permisses, localizadas na primeira coluna da descrio mostrada no comando ls, so justamente as informaes sobre leitura, escrita e execuo destes trs grupos... Veja s: - Primeiro caractere: Se for um "d", indica um diretrio... Se for um "l", indica um atalho (link), se for um "-" (trao), indica que um arquivo (isso no tem nada com as permisses, apenas um indicativo do tipo do objeto). rw- (primeiro conjunto de trs caracteres): permisses dadas ao USURIO DONO do arquivo. rw- (segundo grupo de trs caracteres): permisses dadas ao GRUPO DONO do arquivo. r-- (terceiro grupo de trs caracteres): permisses dadas aos OUTROS USURIOS do sistema. Cada um dos grupos de trs caracteres pode ter rwx, onde, claro, r indica read, w indica write e x indica execute... O Trao (-) indica que aquela permisso no est dada (ou

www.joaoantonio.com.br

38

Joo Antonio

Sistema Operacional Linux

seja, no se tem permisso de realizar aquela operao). Portanto, rw- significa direito de ler e modificar (escrever) um arquivo, mas no o direito de execut-lo Ento, um conjunto de permisses rw-rw-r-- no arquivo instrucoes.doc significa que este arquivo pode ser lido e modificado (rw-) pelo seu DONO (joao), tambm pode ser lido e modificado (rw-) pelos usurios que pertencem ao seu GRUPO (users) e pode ser apenas lido (r--) pelos OUTROS usurios do sistema. Esse arquivo no poder ser executado (jogado na RAM como um programa) nem pelo DONO, nem pelo GRUPO nem pelos demais usurios. interessante entender que quando um arquivo criado (um documento, como esse do exemplo, na primeira vez que salvo), ele recebe imediatamente as permisses padro do sistema (essas.. rw-rw-r--), mas essas permisses podem ser mudadas ao longo da utilizao do sistema atravs do uso do comando chmod. IMPORTANTE: o comando chmod s pode ser usado em um arquivo pelo root ou pelo DONO do arquivo. Como indicamos as permisses no comando chmod? H vrias maneiras de indicar as permisses que um arquivo vai ter no comando chmod... Vamos comear pelo "modo texto". sintaxe: chmod detentor=permisses alvo Seria assim: vamos supor que o arquivo instrucoes.doc vai ser alterado para ter permisso de ler, escrever e executar por parte do DONO, ler somente por parte do GRUPO e somente executar por parte dos DEMAIS USURIOS... (ou seja, se voc entendeu, sabe que ficar assim: rw-r----x)... O comando que faz isso :
[joao@computer documentos]$ chmod u=rwx,g=r,o=x instrucoes.doc

[joao@computer documentos]$ ls -lh instrucoes.doc -rw-r----x 1 joao users 4,2K Jul 8 18:40 instrucoes.doc

as letras antes do sinal de = (igual) identificam as pessoas detentoras dos direitos, sendo que: "u" para USURIO DONO, "g" para GRUPO DONO e "o" para OUTROS USURIOS, caso se queira definir para todos os trs grupos de uma vez s, usa-se "a" (de all - todos). Claro que voc j entendeu que as letras depois dos sinais de = so para identificar as permisses em si. S para completar, note que para separar os detentores de permisses foi usada uma vrgula... No para escrever com espaos... vrgula mesmo! Outra coisa: no h ordem na colocao das clusulas, o "o" pode vir primeiro, depois o "u" e depois o "g"... no tem problema! Alguma dvida em relao a esse comando? Calma! No acabou ainda! Se voc quiser apenas adicionar ou retirar um tipo de permisso, fica simples: ao invs de usar o sinal de = (igual) use os sinais de + (mais) para colocar ou - (menos) para retirar permisses. Ento, caso se deseje retirar o direito de modificar o arquivo para os usurios do GRUPO DONO, faz-se isso:
[joao@computer documentos]$ chmod g-w instrucoes.doc

Outro exemplo, caso se deseje adicionar as permisses de escrita e execuo aos demais usurios do sistema para o arquivo instrucoes.doc, fazemos:
[joao@computer documentos]$ chmod o+rx instrucoes.doc

Entendido?

www.joaoantonio.com.br

39

Joo Antonio

Sistema Operacional Linux

Comando chmod (Modo "Numrico") Existe uma forma interessante de usar o chmod (eu prefiro essa), que atravs de nmeros octais (0 a 7) para identificar as permisses. Seria assim: sintaxe: chmod ABC alvo Onde A, B e C so nmeros que podem variar entre 0 e 7. O Primeiro nmero (A) identifica as permisses do USURIO DONO do arquivo, o segundo nmero (B) identifica as permisses dadas ao GRUPO DONO do arquivo e o terceiro nmero (C) identifica as permisses dadas aos DEMAIS USURIOS (outros). Ou seja, cada nmero daqueles para um DETENTOR de permisses. Mas, cada nmero daqueles j identifica o estado das 3 permisses (rwx). Para isso, remeto a um clculo simples de converso de base, onde eu apresento os nmeros de 0 a 7 em formato normal (Decimal) e em formato binrio (escrito com 3 bits)... Decimal 0 1 2 3 4 5 6 7 Binrio 000 001 010 011 100 101 110 111

Pense naqueles 3 bits dos nmeros binrios e leia-os como rwx (isso mesmo, cada 0 ou 1 dos nmeros binrios uma permisso lida nessa mesma ordem, r (read - ler) depois w (Write - modificar), por fim x (executar). Agora saiba que quando o bit estiver definido como 1, aquela permisso ser CONCEDIDA, e quando o bit estiver com 0, aquela permisso est sendo NEGADA. Isso significa que o nmero 5, que escrito como 101 em binrio, significa que foram concedidas as permisses de r (ler) e x (executar), mas a permisso para w (escrever) foi negada. A traduo dessa doidice seria: Decimal 0 1 2 3 4 5 6 7 Binrio 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

www.joaoantonio.com.br

40

Joo Antonio

Sistema Operacional Linux

Pronto, fica simples assim: vejamos o caso de querermos que o arquivo instrucoes.doc fique assim: O USURIO DONO pode fazer tudo (ler, escrever e executar), os usurios do GRUPO DONO podero apenas ler e os DEMAIS usurios do sistema no faro nada (negao total). Isso vai ser possvel mediante o comando:
[joao@computer documentos]$ chmod 740 instrucoes.doc

[joao@computer documentos]$ ls -lh instrucoes.doc -rwxr----- 1 joao users 4,2K Jul 8 18:40 instrucoes.doc

Explicando: 7: O primeiro nmero para os direitos do USURIO DONO - 7 111 em binrio (direitos totais - rwx CONCEDIDOS). 4: O Segundo nmero para os direitos do GRUPO DONO - 4 100 em binrio (somente direito de r CONCEDIDO). 0: O terceiro nmero para as permisses dadas aos DEMAIS USURIOS - 0 000 (nenhum direito CONCEDIDO). Ufa... Espero sinceramente que tenham entendido (esse um comando que pode fornecer inmeras questes para concursos)... Comando chmod em Diretrios Prestem ateno: para que se possa acessar o contedo de um diretrio qualquer (ou seja, conseguir ver os arquivos que esto presentes deste diretrio), necessrio definir a permisso de x (execuo) para ele. Se o x estiver NEGADO naquela pasta, no ser possvel ver os arquivos que esto dentro dela (nem por meio do comando ls... ficaria assim:
[joao@computer documentos]$ ls -lh total 192K drwxrwxr-x 2 joao joao 4,0K Jul 8 18:40 apresentacoes -rw-rw-r-- 1 joao joao 4,7K Jul 8 18:40 avisos.doc drw------- 2 joao joao 4,0K Jul 16 13:17 bronca lrwxrwxrwx 1 joao joao 14 Jul 8 19:07 dic.dic -> dicionario.dic -rw-rw-r-- 1 joao joao 61K Jul 8 18:40 dicionario.dic -rw-rw-r-- 1 joao joao 4,7K Jul 8 18:41 impressora_manual.doc -rw-rwxr-x 1 joao joao 4,2K Jul 8 18:40 instrucoes.doc -rw-rw-r-- 1 joao joao 31K Jul 8 18:40 jovem_galileu.mp3 -rwxr-xr-x 1 joao joao 14K Jul 8 18:40 lattes.rtf drwxrwxr-x 2 joao joao 4,0K Jul 8 18:48 planilhas -rw-rw-r-- 1 joao joao 31K Jul 8 18:41 poesia.pdf drwxrwxr-x 2 joao joao 4,0K Jul 8 18:47 textos drwxrwxr-x 2 joao joao 4,0K Jul 8 18:45 web

Note a pasta bronca... ela no tem permisso para ningum executar... Agora veja a continuao...
[joao@computer documentos]$ ls -lh bronca

www.joaoantonio.com.br

41

Joo Antonio

Sistema Operacional Linux

ls: bronca/existo.txt: Permission denied ls: bronca/eutambem.txt: Permission denied total 0

Vamos liberar o acesso a essa pasta, atribuindo direito de execuo a todos os usurios (DONO, GRUPO e OUTROS)... Esse comando poderia ser executado das seguintes maneiras: chmod 711 bronca chmod a+x bronca chmod u+x,g+x,0+x bronca Por que, no numrico, no foi feito 111? Porque isso iria tirar os direitos atuais da pasta (USURIO DONO com rw seria retirado). Portanto, coloquei o 7 para o USURIO DONO ter 111 ("rw" que j tinha e "x" que passou a ter). Se fosse colocado 111, a definio seria essa, sem considerar o que se tinha anteriormente (essa a vantagem do modo texto com os sinais de + e -... eles apenas adicionam ou retiram aquele determinado direito, mantendo os demais como estavam antes. Depois de liberada permisso de execuo da pasta bronca, seu contedo poder ser visualizado pelo usurio...
[joao@computer documentos]$ ls -lh bronca total 4,0K -rw-r--r-- 1 joao joao 29 Jul 16 13:17 eutambem.txt -rw-r--r-- 1 joao joao 0 Jul 16 13:17 existo.txt

2.2) chown (Change Owner - Mudar o DONO): esse comando, que s pode ser executado pelo usurio ROOT, permite que um arquivo mude de proprietrio. Pode-se definir o USURIO DONO e o GRUPO DONO de um arquivo atravs deste comando. Aposto que voc acabou de franzir a testa e se perguntar: "pra que eu preciso saber disso?"... Pois , amigo aluno... lasca, n? Mas, se vo perguntar (e existe a chance disso acontecer), melhor estar preparado e deixar a decepo de no passar para os concorrentes, no acha?! Sintaxe: chown <ususario:grupo> <arquivo> Exemplo: se quisermos que o arquivo instrucoes.doc passe a pertencer ao usurio "ana" e ao grupo "rh", fazemos o seguinte:
[root@computer documentos]# chown ana:rh instrucoes.doc

[root@computer documentos]# ls -lh instrucoes.doc -rw-rwxr-x 1 ana rh 4,2K Jul 8 18:40 instrucoes.doc

Claro que o usurio e o grupo devem existir previamente (isso bem bvio!) Esse comando no altera as permisses do arquivo: se ele estava com rwxr--r--, vai continuar assim. Esse comando s altera quais os donos do arquivo! 3) Comandos de Manipulao de usurios

www.joaoantonio.com.br

42

Joo Antonio

Sistema Operacional Linux

3.1) useradd (adicionar usurio): esse comando permite criar uma nova conta de usurio no sistema. um comando extremamente complexo, cheio de opes: vou listar apenas algumas delas: sintaxe: useradd <opes> conta Entre as opes, temos: -u uid: uid (ou User ID - Identificao do Usurio) um nmero que identifica o usurio de forma nica. Esse nmero pode ser dado automaticamente pelo sistema Linux se no for especificado durante a execuo deste comando. -p password: Para definir a senha da nova conta. -g group: Definir a que grupo principal o novo usurio vai pertencer. -G group1, group2, etc..: Definir a quais outros grupos o usurio vai pertencer (o G maisculo). Sim! Um usurio pode pertencer a vrios grupos! -d directory: Define qual o diretrio pessoal do usurio (normalmente /home/<nome>) Ento, vamos testar: se for necessrio criar um usurio chamado pedro, que far parte do grupo diretoria, mas tambm far parte dos grupos rh e informtica, cuja senha inicial (depois ele pode mudar) ser "casa123" e o diretrio pessoal ser /home/pedro, devemos digitar:
[root@computer documentos]# useradd -g diretoria -G rh,informtica -d /home/pedro -p casa123 pedro

E pronto! Note que no definimos o UID (nmero que identifica o usurio perante o sistema), pois deixamos que o prprio sistema definisse isso... O UID, s para explicar, um nmero (101, 304, 212...) que identifica o usurio. O Linux atribui os direitos aos usurios pelos seus UIDs... no pelos nomes que costumamos usar para nos identificar. O comando useradd pode ser escrito como adduser (em algumas distribuies, h diferenas entre eles). Esse comando s pode ser executado pelo root! 3.2) groupadd (Adicionar Grupo): comando para a criacao de um novo grupo de usurios. Esse comando tambm s pode ser executado pelo usurio administrador (root). sintaxe: groupadd -g GID nome Fcil de usar, esse comando pede algumas opes (novamente, s listo a importante: o GID, ou Group ID - Identificao do Grupo). - g GID: um nmero que identifica o grupo perante o sistema Linux. Se no for especificado, o Linux criar automaticamente o GID para o grupo. Vamos criar um grupo chamado auditoria:
[root@computer documentos]# groupadd -g 80 auditoria

Com isso, os usurios criados a partir deste ponto j podero fazer parte do grupo auditoria. Alm disso, os arquivos do sistema j podero ser atribudos a esse grupo por meio do comando chown. Tudo certo? Caso voc no saiba qual GID usar, no especifique essa opo... O Linux vai usar o GID que estiver disponvel! 3.3) passwd (password - senha): Esse comando altera a senha de um usurio. Ele pode ser executado por qualquer usurio (mas s ter efeito em sua prpria conta). Se o

www.joaoantonio.com.br

43

Joo Antonio

Sistema Operacional Linux

root executar o comando passwd, ele ter o direito de especificar qual ser o usurio cuja senha ser alterada. Sintaxe: passwd (para o usurio alterar sua prpria senha) ou passwd usurio (para o root alterar a senha de um outro usurio). Lembre-se de que o root o usurio mais poderoso do sistema: ele pode fazer basicamente qualquer coisa com o Linux e tem acesso a todos os arquivos do sistema! Root o administrador do sistema Linux. Caso o root queira alterar a senha do usurio pedro, segue:
[root@computer documentos]# passwd pedro digite a nova senha para 'pedro': redigite a nova senha:

senha alterada com sucesso.

3.4) su (Super User Super Usurio): esse comando permite que um usurio qualquer se torne, momentaneamente, o root. Isso serve para que o usurio possa realizar alteraes no sistema sem ter que reiniciar o computador. Sintaxe: su Depois de executado o comando, o usurio ser cobrado pela senha do root (claro, ou voc acha que seria assim to fcil assumir o papel de root?). para o administrador do sistema, que est trabalhando nele como um usurio normal, poder assumir seu lugar de direito naquele momento.
[joao@computer documentos]$ su Senha do 'root':

[root@computer documentos]#

Note que o sistema permanece no mesmo diretrio, apenas, agora, o Clark Kent tirou os culos e virou o Superman. Para tudo voltar ao normal (ou seja, o usurio deixar de ser root e voltar a ser quem era antes, basta digitar o comando exit. 4) Outros Comandos Interessantes 4.1) man (Manuais): esse comando bastante til para os usurios de Linux mais experientes (e para os mais curiosos). Esse comando permite o acesso s pginas dos manuais (de explicao) dos comandos Linux. Caso haja alguma dvida em algum comando, tasque um: sintaxe: man <comando> Veja um exemplo do comando man sendo usado para verificar o manual do comando tree:
[joao@computer documentos]$ man tree

(Aqui aparecem as explicaes do comando Man, que eu no coloquei para no consumir muitas pginas)

www.joaoantonio.com.br

44

Joo Antonio

Sistema Operacional Linux

4.2) cat (GATO - tou brincando, cat vem de concatenar): esse comando permite que sejam unidos (concatenados) os contedos de dois arquivos de texto e que esse resultado seja mostrado na tela para o usurio. Muito normalmente se usa esse comando apenas para visualizar o contedo de um nico arquivo de texto. Sintaxe: cat <arquivo1> <arquivo2> (normalmente, apenas cat <arquivo>) Veja isso:
[joao@computer documentos]$ ls -lh

total 200K drwxrwxr-x 2 joao joao 4,0K Jul 8 18:40 apresentacoes -rw-rw-r-- 1 joao joao 4,7K Jul 8 18:40 avisos.doc drwxrwxrwx 2 joao joao 4,0K Jul 16 13:17 bronca lrwxrwxrwx 1 joao joao 14 Jul 8 19:07 dic.dic -> dicionario.dic -rw-rw-r-- 1 joao joao 61K Jul 8 18:40 dicionario.dic -rw-rw-r-- 1 joao joao 4,7K Jul 8 18:41 impressora_manual.doc -rw-rwxr-x 1 joao joao 4,2K Jul 8 18:40 instrucoes.doc -rw-rw-r-- 1 joao joao 31K Jul 8 18:40 jovem_galileu.mp3 -rwxr-xr-x 1 joao joao 14K Jul 8 18:40 lattes.rtf drwxrwxr-x 2 joao joao 4,0K Jul 8 18:48 planilhas -rw-rw-r-- 1 joao joao 31K Jul 8 18:41 poesia.pdf -rw-r--r-- 1 joao joao 161 Jul 18 11:25 prova.txt -rw-r--r-- 1 joao joao 586 Jul 18 11:24 teste.txt drwxrwxr-x 2 joao joao 4,0K Jul 8 18:47 textos drwxrwxr-x 2 joao joao 4,0K Jul 8 18:45 web

Reparou nos arquivos prova.txt e teste.txt? Vamos dar uma olhada em seu interior...
[joao@computer documentos]$ cat teste.txt

Este arquivo s um teste para o comando cat. Vamos concatenar seu contedo com o contedo de outro arquivo qualquer. Esta a terceira linha de texto deste arquivo. J estamos na quarta. Estes arquivos de texto puro so muito usados em programao. Ns, por outro lado, preferimos usar documentos mais bem elaborados, como os do Word. Estou novamente escrevendo outra linha. Essa a stima. Oi tava na peneira, oi, tava peneirando... Nona, passa a pizza, per favore. Desce mais, para ver a prxima... Continuando a digitar... Testando a Dcima segunda... Treze um nmero de sorte.

www.joaoantonio.com.br

45

Joo Antonio

Sistema Operacional Linux

[joao@computer documentos]$ cat prova.txt

Esse o arquivo prova.txt. Esse arquivo ser concatenado... Vamos testar o comando cat e os demais comandos de texto. Essa a quarta linha! Final do arquivo.

Agora vamos "unir os dois" e mostrar o resultado na tela (Essa unio no estvel, somente na tela mesmo, ou seja, os dois arquivos no sero fundidos ou coisa parecida... eles permanecero do mesmo jeito! A "concatenao" s acontece na tela do usurio.
[joao@computer documentos]$ cat prova.txt teste.txt

Esse o arquivo prova.txt. Esse arquivo ser concatenado... Vamos testar o comando cat e os demais comandos de texto. Essa a quarta linha! Final do arquivo.

Este arquivo s um teste para o comando cat. Vamos concatenar seu contedo com o contedo de outro arquivo qualquer. Esta a terceira linha de texto deste arquivo. J estamos na quarta. Estes arquivos de texto puro so muito usados em programao. Ns, por outro lado, preferimos usar documentos mais bem elaborados, como os do Word. Estou novamente escrevendo outra linha. Essa a stima. Oi tava na peneira, oi, tava peneirando... Nona, passa a pizza, per favore. Desce mais, para ver a prxima... Continuando a digitar... Testando a Dcima segunda... Treze um nmero de sorte.

E ento? Tudo OK? 4.3) tail (cauda): esse comando permite visualizar as ultimas partes de um arquivo de texto (o padro 10 linhas). Sintaxe: tail <opes> arquivo Entre as opes, esto:

www.joaoantonio.com.br

46

Joo Antonio

Sistema Operacional Linux

-n X: onde X o nmero de linhas que se deseja visualizar (se esta clusula no for especificada, respeita-se o padro). -c X: onde X o nmero de caracteres que se deseja visualizar (idem acima). Exemplo:
[joao@computer documentos]$ tail -n 4 teste.txt

Desce mais, para ver a prxima... Continuando a digitar... Testando a Dcima segunda... Treze um nmero de sorte.

[joao@computer documentos]$ tail -c 20 prova.txt

a! Final do arquivo.

4.3) head (cabealho): permite, de forma anloga ao tail, visualizar a parte inicial de um arquivo de texto. sintaxe: head <opes> arquivo -n X: define o numero de linhas a serem vistas (o padro, caso no seja especificado nada, so 10 linhas). -c X: define o nmero de caracteres a serem vistos. Exemplo:
[joao@computer documentos]$ head -n 2 prova.txt

Esse o arquivo prova.txt. Esse arquivo ser concatenado...

[joao@computer documentos]$ head teste.txt

Este arquivo s um teste para o comando cat. Vamos concatenar seu contedo com o contedo de outro arquivo qualquer. Esta a terceira linha de texto deste arquivo. J estamos na quarta. Estes arquivos de texto puro so muito usados em programao. Ns, por outro lado, preferimos usar documentos mais bem elaborados, como os do Word. Estou novamente escrevendo outra linha. Essa a stima. Oi tava na peneira, oi, tava peneirando... Nona, passa a pizza, per favore. Desce mais, para ver a prxima...

www.joaoantonio.com.br

47

Joo Antonio

Sistema Operacional Linux

Viram o uso do padro de 10 linhas? (quando se usa o comando head ou tail sem as clusulas de opes). 4.4) more (mais): um programa chamado de "paginador", porque permite a leitura de um arquivo de texto longo de "pgina em pgina", ou melhor, de "tela em tela" no computador. simples entender: imagine um arquivo de texto com uma quantidade excessiva de contedo (centenas de linhas)... Voc acha que d pra ler ele todo numa tela s? Claro que no, e o padro do Linux passar tudo de uma vez, at chegar ao final do arquivo (se usarmos o comando cat). Basta, portanto, usar o comando more ao invs do cat para visualizar tal arquivo. sintaxe: more <arquivo> No d pra mostrar ele aqui, mas quando se usa o comando more, o texto de um arquivo colocado na tela at preencher a tela toda. Depois de preenchida por completo, o comando pra e fica esperado pelo usurio. Para passar de uma tela para outra, usa-se a BARRA DE ESPAO (para passar a tela toda) ou a tecla ENTER (para descer de linha em linha). Um outro comando muito semelhante ao more (porm, com alguns recursos a mais) o comando less (menos - um trocadilho com o nome more). Esse comando utilizado de forma muito semelhante ao more (basta less <arquivo> e usar ESPAO e ENTER tambm). 4.5)grep (???): Esse comando usado para localizar trechos dentro de um arquivo de texto. Note, novamente, que quando se fala em arquivo de texto, no me refiro aos arquivos do Word, que so documentos, mas a arquivos de texto puro mesmo, como os que so criados pelo programa bloco de notas, do Windows (texto puro, sem formatao). sintaxe: grep <opes> trecho arquivo Como ficaria?
[joao@computer documentos]$ grep linha teste.txt

Esta a terceira linha de texto deste arquivo. Estou novamente escrevendo outra linha. Essa a stima.

O Padro do comando grep no retornar apenas a palavra que se procurou, mas a linha inteira, da o fato de ter retornado a terceira e a stima linhas inteiras. 4.5) find (encontrar): Esse comando permite encontrar arquivos em um determinado diretrio do sistema de arquivos do Linux. sintaxe: find diretrio <opes> Entre as opes, podemos citar: -name <nome>: para apresentar o nome do arquivo (<nome>) como critrio da pesquisa. -user <usurio>: para localizar arquivos que pertencem ao usurio <usurio>. -group <grupo>: para localizar arquivos que pertencem ao grupo <grupo>. Exemplo: caso se queira encontrar um arquivo chamado teste.doc, localizado em algum lugar dentro do diretrio /home, usa-se o seguinte:

www.joaoantonio.com.br

48

Joo Antonio

Sistema Operacional Linux

[joao@computer documentos]$ find /home -name teste.doc

/home/joao/documentos/teste.doc

O nome do arquivo deve estar escrito por completo. 4.6) tar (Tape Archiver - Arquivador em Fita): um programa que muitos confundem com o compactador, mas o que esse programa faz EMPACOTAR vrios arquivos em um s. O comando tar serve para transformar vrios arquivos em um, mas no compactando-os (para isso, necessrio um outro programa, o Gzip, ou Bzip, compactadores comuns no Linux). sintaxe: tar <opes> <arquivo.tar> arquivo1 arquivo2 arquivo3... A lista de opes do comando tar inclui: -c: criar o arquivo empacotado. -x: extrair arquivos de um arquivo empacotado. -f: forar a operao. -v: Verbose (ou seja, ficar "narrando" o que est acontecendo, enquanto vai sendo executado). Vejamos a listagem dos arquivos do diretrio cespe:
[joao@computer cespe]$ ls -lh

total 1,1M -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 apostila.rtf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 aula16.sxw -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 comandos.doc -rw-r--r-- 1 joao joao 7,3K Jul 18 13:01 comandos.txt -rw-r--r-- 1 joao joao 16K Jul 18 13:01 final.txt -rw-r--r-- 1 joao joao 12K Jul 18 13:01 modulos.doc -rw-r--r-- 1 joao joao 15K Jul 18 13:01 quase.txt -rw---xr-- 1 joao joao 4,0K Jul 18 13:01 teste -rw-r--r-- 1 joao joao 24K Jul 18 13:01 teste.pdf -rw-r--r-- 1 joao joao 975K Jul 18 13:01 unico.pdf

Agora, vamos criar um arquivo email.tar comandos.doc, teste.pdf e unico.pdf...


[joao@computer unico.pdf cespe]$ tar -cf email.tar

contendo
apostila.rtf

os

arquivos

apostila.rtf,
teste.pdf

comandos.doc

[joao@computer cespe]$ ls -lh

total 2,1M -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 apostila.rtf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 aula16.sxw

www.joaoantonio.com.br

49

Joo Antonio

Sistema Operacional Linux

-rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 comandos.doc -rw-r--r-- 1 joao joao 7,3K Jul 18 13:01 comandos.txt -rw-r--r-- 1 joao joao 1,1M Jul 18 14:43 email.tar -rw-r--r-- 1 joao joao 16K Jul 18 13:01 final.txt -rw-r--r-- 1 joao joao 12K Jul 18 13:01 modulos.doc -rw-r--r-- 1 joao joao 15K Jul 18 13:01 quase.txt -rw-r--r-- 1 joao joao 24K Jul 18 13:01 teste.pdf -rw-r--r-- 1 joao joao 975K Jul 18 13:01 unico.pdf

Note a presena do arquivo email.tar, com 1,1MB. O tamanho deste arquivo se deve soma dos arquivos que o formaram. Para compactar o arquivo em questo, utiliza-se a opo -z no comando tar:
[joao@computer cespe]$ tar -czf menor.tar.gz aula16.swx comandos.doc modulos.doc

[joao@computer cespe]$ ls -lh

total 2,1M -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 apostila.rtf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 aula16.sxw -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 comandos.doc -rw-r--r-- 1 joao joao 7,3K Jul 18 13:01 comandos.txt -rw-r--r-- 1 joao joao 1,1M Jul 18 14:43 email.tar -rw-r--r-- 1 joao joao 16K Jul 18 13:01 final.txt -rw-r--r-- 1 joao joao 18K Jul 18 15:08 menor.tar.gz -rw-r--r-- 1 joao joao 12K Jul 18 13:01 modulos.doc -rw-r--r-- 1 joao joao 15K Jul 18 13:01 quase.txt -rw-r--r-- 1 joao joao 24K Jul 18 13:01 teste.pdf -rw-r--r-- 1 joao joao 975K Jul 18 13:01 unico.pdf

A extenso tar.gz no necessria (nem a tar no exemplo anterior), que podem ser quaisquer extenses de que o usurio goste. Apenas por questes de costume eu utilizei estas aqui. A extenso tar somente para indicar que o arquivo um pacote sem compactao e a extenso tar.gz para indicar que este passou por um processo de compactao. Vamos apagar todos os arquivos do diretrio cespe, com exceo desses dois pacotes, criados nesses ltimos exemplos...
[joao@computer cespe]$ rm -f apostila.rtf aula16.sxw final.txt modulos.doc quase.txt teste.pdf unico.pdf comandos.doc comandos.txt

[joao@computer cespe]$ ls -lh

total 1,1M -rw-r--r-- 1 joao joao 1,1M Jul 18 14:43 email.tar -rw-r--r-- 1 joao joao 18K Jul 18 15:08 menor.tar.gz

www.joaoantonio.com.br

50

Joo Antonio

Sistema Operacional Linux

Sim, antes que voc pergunte: d pra apagar mais de um arquivo, no comando rm, colocando os nomes dos arquivos separados por espao (como no comando mkdir) e em outros vrios. Agora vamos usar a opo do comando tar que extrai arquivos de dentro de um arquivopacote.
[joao@computer cespe]$ tar -xfv email.tar comandos.doc unico.pdf apostila.rtf teste.pdf

[joao@computer cespe]$ ls -lh

total 2,1M -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 apostila.rtf -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 comandos.doc -rw-r--r-- 1 joao joao 1,1M Jul 18 14:43 email.tar -rw-r--r-- 1 joao joao 18K Jul 18 15:08 menor.tar.gz -rw-r--r-- 1 joao joao 24K Jul 18 13:01 teste.pdf -rw-r--r-- 1 joao joao 975K Jul 18 13:01 unico.pdf

Como o arquivo menor.tar.gz foi compactado (com a opo -z), devemos us-la para descompactar o contedo do pacote enquanto extramos os arquivos dele. Da a importncia de diferenciar os arquivos com extenses variadas (gz para indicar a compactao, por exemplo), pois, sem isso, no seria possvel distinguir se o arquivo estava ou no compactado. A nica forma de saber, fora pela extenso, que, na tentativa de usar as clusulas -xvf em um arquivo COMPACTADO, o comando tar retornar um erro, o que indicar a necessidade de usar as opes -xzvf (com "z" a mais). O mesmo vale para o contrrio (usar -xzvf para um arquivo tar que no est compactado). Vamos ao exemplo do uso do z:
[joao@computer cespe]$ tar -xzvf menor.tar.gz aula16.sxw comandos.doc modulos.doc

[joao@computer cespe]$ ls -lh

total 2,1M -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 apostila.rtf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 aula16.sxw -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 comandos.doc -rw-r--r-- 1 joao joao 1,1M Jul 18 14:43 email.tar -rw-r--r-- 1 joao joao 18K Jul 18 15:08 menor.tar.gz

www.joaoantonio.com.br

51

Joo Antonio

Sistema Operacional Linux

-rw-r--r-- 1 joao joao 12K Jul 18 13:01 modulos.doc -rw-r--r-- 1 joao joao 24K Jul 18 13:01 teste.pdf -rw-r--r-- 1 joao joao 975K Jul 18 13:01 unico.pdf

A clusula -f, como na maioria dos comandos, significa "fazer forado", ou seja, ignorando qualquer inconveniente no comando (como as necessidades de perguntas para o usurio)... No caso, para o nosso comando, essa clausula serve para que no se questione o usurio diante, por exemplo, de arquivos criados em duplicata (devido descompactaao de dois arquivos com o mesmo nome). O arquivo comandos.doc, por exemplo, l em cima, foi sobrescrito na segunda descompactao, porque ele estava dentro dos dois arquivos (o email.tar e o menor.tar.gz), sem incomodar o usurio com tal pergunta.. Se voc quiser ser incomodado com essas perguntas, ento no use a opo -f. 4.7) alias (apelido): esse comando cria um apelido para vrios comandos. Por exemplo, se voc estiver com saudades do DOS e quiser usar comandos como o DIR, basta criar um alias para o DIR. Assim... sintaxe: alias apelido='comando desejado' (tudo junto) Como em:
[joao@computer cespe]$ alias dir='ls -lh'

[joao@computer cespe]$ dir

total 2,1M -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 apostila.rtf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 aula16.sxw -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 comandos.doc -rw-r--r-- 1 joao joao 7,3K Jul 18 13:01 comandos.txt -rw-r--r-- 1 joao joao 1,1M Jul 18 14:43 email.tar -rw-r--r-- 1 joao joao 16K Jul 18 13:01 final.txt -rw-r--r-- 1 joao joao 12K Jul 18 13:01 modulos.doc -rw-r--r-- 1 joao joao 15K Jul 18 13:01 quase.txt -rw-r--r-- 1 joao joao 24K Jul 18 13:01 teste.pdf -rw-r--r-- 1 joao joao 975K Jul 18 13:01 unico.pdf

O comando alias no registra essa informao para sempre, mas apenas enquanto o sistema estiver ligado. Para atribuir o apelido de forma definitiva, deve-se alterar um arquivo de configurao do Linux.

Usando Caracteres Coringa


Caracteres Coringa so aqueles que usamos para representar outros caracteres, no intuito de facilitar a digitao de um comando. Os caracteres que mais conhecemos para essa finalidade so: * (asterisco) e ? (interrogao).

www.joaoantonio.com.br

52

Joo Antonio

Sistema Operacional Linux

A interrogao serve para substituir um nico caractere em um comando qualquer. Veja, como exemplo, o contedo do diretrio esaf, mostrado abaixo:
[joao@computer esaf]$ ls -lh

total 1,7M -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 prova1.pdf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 prova2.pdf -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova3.pdf -rw-r--r-- 1 joao joao 800K Jul 18 14:43 prova36.pdf -rw-r--r-- 1 joao joao 18K Jul 18 15:08 coment.doc -rw-r--r-- 1 joao joao 12K Jul 18 13:01 ponto.pdf -rw-r--r-- 1 joao joao 24K Jul 18 13:01 aula.swx -rw-r--r-- 1 joao joao 975K Jul 18 13:01 teste.doc

Caso seja necessrio excluir os arquivos prova1.pdf, prova2.pdf e prova3.pdf, pode-se faz-lo do mtodo antigo e doloroso (na verdade, fcil fazer isso, mas vamos digitar muito!).
[joao@computer esaf]$ rm -f prova1.pdf prova2.pdf prova3.pdf

Que tal se usssemos uma caracterstica comum aos nomes dos trs condenados para podermos apag-los? Sim, prova, um nmero qualquer e depois .pdf. Que tal agora?
[joao@computer esaf]$ rm -f prova?.pdf

A interrogao usada para substituir um caractere na posio em que colocada, logo, a expresso prova?.pdf abranger os arquivos prova1.pdf, prova2.pdf e prova3.pdf, mas no apagar o prova36.pdf, porque este tem 2 caracteres entre prova e .pdf (e a interrogao significa apenas um caractere). Caso se deseje apagar todos os arquivos que comecem com a letra p e tenham extenso pdf (so quatro no exemplo acima), pode-se usar o caractere de *, que pode representar qualquer quantidade de caracteres (eu chamo o * de qualquer coisa). Ento fica assim:
[joao@computer esaf]$ rm -f p*.pdf

Todos os 4 arquivos que respeitam o critrio apresentado sero apagados. Mas os caracteres coringa no servem somente para o comando rm, mas para grande parte dos comandos vistos at aqui. Exemplo, deseja-se copiar todos os arquivos que tm extenso doc para o diretrio /home/pedro... O comando ficaria assim:
[joao@computer esaf]$ cp *.doc /home/pedro

Se voc quiser executar um comando com todos os arquivos do diretrio atual, use a referncia * somente. Por exemplo, se deseja mover todos os arquivos do diretrio atual para dentro do diretrio /etc/users:
[joao@computer esaf]$ mv * /etc/users

www.joaoantonio.com.br

53

Joo Antonio

Sistema Operacional Linux

O * sendo usado como alvo do comando significa TODOS OS ARQUIVOS daquele diretrio. Ento que tal compactar todos os arquivos do diretrio cespe em um nico arquivo chamado esaf.tar.gz?
[joao@computer esaf]$ tar -czf esaf.tar.gz *

O * representa todos os arquivos que sero adicionados ao arquivo esaf.tar.gz, ou seja, todos os arquivos daquele diretrio. O resultado pode ser visto abaixo:
[joao@computer esaf]$ ls -lh

total 2,4M -rw-r--r-- 1 joao joao 756K Jul 18 17:12 esaf.tar.gz -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 prova1.pdf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 prova2.pdf -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova3.pdf -rw-r--r-- 1 joao joao 800K Jul 18 14:43 prova36.pdf -rw-r--r-- 1 joao joao 18K Jul 18 15:08 coment.doc -rw-r--r-- 1 joao joao 12K Jul 18 13:01 ponto.pdf -rw-r--r-- 1 joao joao 24K Jul 18 13:01 aula.swx -rw-r--r-- 1 joao joao 975K Jul 18 13:01 teste.doc

Tanto o * quanto a ? so coringas conhecidos dos usurios do DOS. Mas existe um outro coringa interessante no Linux (na verdade, existem diversos outros, mas que no so necessrios, creio eu)... Observe o resultado do comando abaixo: a listagem de contedo de um diretrio chamado confuso...
[joao@computer confuso]$ ls -lh

total 2,9M -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 prova1.pdf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 prova2.pdf -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova3.pdf -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 prova4.pdf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 prova5.pdf -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova6.pdf -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 prova7.pdf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 prova8.pdf -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova9.pdf

Pense agora que se precisa apagar os arquivos prova1.pdf a prova5.pdf (ou seja, os arquivos prova 6, prova7, prova8 e prova9 sero mantidos). E a? Que tal esse?
[joao@computer confuso]$ rm -f prova?.pdf

No funciona, no ? Esse comando vai apagar todos os arquivos, no ? Isso mesmo... www.joaoantonio.com.br 54

Joo Antonio

Sistema Operacional Linux

Ento, vamos usar os colchetes!


[joao@computer confuso]$ rm -f prova[1-5].pdf

[joao@computer confuso]$ ls -lh

total 2,9M -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova6.pdf -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 prova7.pdf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 prova8.pdf -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova9.pdf

Dentro dos colchetes, colocamos expresses para o caractere que vai ser substitudo: 1-5 indica de 1 a 5. Se for necessrio escolher os possveis valores dos colchetes aleatoriamente (sem seqncia), usa-se a vrgula, como em:
[joao@computer confuso]$ rm -f prova[6,9].pdf

Esse comando apaga apenas os arquivos prova6.pdf e prova9.pdf. O mesmo raciocnio funciona para letras ao invs de nmeros (provaa.pdf, provab.pdf, provac.pdf, etc..) Lembre-se, as expresses dentro dos colchetes representam um nico caractere. 6) Redirecionamento de Comandos Normalmente quando executamos um comando no Linux, a idia essa:
[prompt] comando Entrada do Comando <ENTER> Sada do Comando Sada do Comando Sada do Comando [Novo Prompt]

A idia simples, mas mais fcil se virmos um exemplo prtico:


[joao@computer documentos]$ ls -lh confuso

total 2,9M -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova6.pdf -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 prova7.pdf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 prova8.pdf -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova9.pdf

[joao@computer documentos]$

ls -lh: o comando em si, com suas opes. Confuso: a entrada do comando, que significa, no caso do ls, a pasta que ter seu contedo visualizado. J sabemos que, caso a entrada seja suprimida, ser entendida como entrada a pasta atual (diretrio corrente). www.joaoantonio.com.br 55

Joo Antonio

Sistema Operacional Linux

A entrada de um comando tao-somente a (ou as) informao de que o comando necessita para ser executado. As linhas restantes so a sada do comando, ou seja, sua resposta para o usurio. Normalmente, as sadas dos comandos acontecem na tela, no prprio shell (no seria inteligente de outra forma, porque o usurio tem que ler o que o comando quer dizer em resposta, no ?). Vamos comear a redirecionar esses comandos. Primeiro, comearemos com os sinais de > e >>. Veja isso:
[joao@computer confuso]$ ls -lh

total 2,9M -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova6.pdf -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 prova7.pdf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 prova8.pdf -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova9.pdf

[joao@computer confuso]$ ls -lh > lista.txt (note aqui!)

[joao@computer confuso]$

Note que no segundo comando ls no teve sada (na verdade, ele teve, mas ela no foi para a tela). Quando usamos o sinal de > (maior), estamos direcionando a sada de um comando para outro local. No caso do nosso exemplo, direcionamos a sada do comando ls -lh para um arquivo chamado lista.txt, que pode ser visto a seguir:
[joao@computer confuso]$ ls -lh

total 2,9M -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova6.pdf -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 prova7.pdf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 prova8.pdf -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova9.pdf -rw-r--r-- 1 joao joao 345B Jul 18 17:55 lista.txt

[joao@computer confuso]$ cat lista.txt

total 2,9M -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova6.pdf -rwxr-xr-x 1 joao joao 14K Jul 18 13:01 prova7.pdf -rw-r--r-- 1 joao joao 12K Jul 18 13:01 prova8.pdf -rw-r--r-- 1 joao joao 7,2K Jul 18 13:01 prova9.pdf

[joao@computer confuso]$

www.joaoantonio.com.br

56

Joo Antonio

Sistema Operacional Linux

Note que o que est em vemelho no o resultado de um ls, mas o contedo do arquivo lista.txt (que conseguimos atravs do comando cat). Esse arquivo tem, como contedo de texto, o resultado do comando ls -lh que direcionamos para ele no exemplo anterior. Quando usamos o direcionador > para um arquivo que no existe, ele ser criado. Caso o arquivo destino j exista (no era o caso do lista.txt) e tenha contedo, o contedo anterior apagado para dar lugar ao novo contedo (ou seja, a sada do comando que foi direcionado). O direcionador >> semelhante, mas difere no que diz respeito a arquivos que j existem. Quando se usa o >>, o contedo anterior do arquivo no apagado, mas o contedo novo ADICIONADO depois do contedo antigo do arquivo. Ou seja, o >> adiciona a sada atual para um arquivo sem apagar o que havia no arquivo. Ainda h mais um direcionador interessante de se conhecer o | (pipe l-se pipe), que aquela barrinha vertical no teclado. A funo do pipe muito interessante: ele redireciona a sada de um comando para a entrada do outro comando. Como assim? [prompt]$ Comando1 | Comando2 A resposta que for dada ao comando1 no ser apresentada na tela, mas ser dada ao comando2, que processar essa entrada e dar seu resultado na tela. Veja s: digamos que um comando ls -lh resulte em uma quantidade grande de linhas (imagine uns 400 arquivos). Como isso iria se apresentar? Em uma tela s, correndo feito louco, at atingir o fim do comando, no daria para ler nada a no ser o que estiver na ltima tela (arquivos finais). Seria muito bom se pudssemos fazer uso do more aqui, no ? Como...
[joao@computer confuso]$ more ls -lh

Mas isso no possvel (no d certo) dessa maneira. A entrada do comando more tem que ser um texto, no um comando em si... Como fazer isso? Assim...
[joao@computer confuso]$ ls -lh | more

O | (pipe) faz a sada do comando ls -lh (que se apresenta como um texto, em que os vrios arquivos aparecem em linhas uma em cima da outra) servir de entrada para o comando more, que paginar isso, apresentando na tela a listagem de arquivos aos poucos, de tela em tela.

www.joaoantonio.com.br

57

Anda mungkin juga menyukai