Apostila Linux

Embed Size (px)

Citation preview

Introduo ao Linux

Guilherme Esmeraldo

Crato/CE 2009

2

Captulo 1 Introduo ao Linux1.1 Um Pouco de HistriaO sistema operacional provavelmente o software mais importante em qualquer computador. Ele o responsvel por ativar todos os perifricos e criar o ambiente sobre o qual todos os outros programas executam. O Windows o sistema mais usado, por isso ele acaba sendo a plataforma mais familiar para muitos de ns. Como qualquer sistema, o Windows possui sua dose de problemas, entretanto (como mais gente usa) normalmente mais fcil conseguir ajuda. O domnio da Microsoft na rea de sistemas operacionais comeou em 1981, com o lanamento do primeiro PC e da primeira verso do MS-DOS. Embora no tivesse nada de especial com relao a outros sistemas da poca, o DOS cresceu em popularidade junto com os PCs, seguido pelas diversas verses do Windows. Contudo, a Microsoft uma pgina recente na histria da informtica. Enquanto o MS-DOS ainda dava seus primeiros passos, o Unix j era um sistema maduro, usado na maioria dos computadores de grande porte e em estaes de trabalho. A histria do Unix comea em 1969, na frente de um computador igual a este:

Este um PDP-7, que, na dcada de 60, era um minicomputador de "baixo custo" (custava 72.000 dlares da poca), equipado com apenas 8 kbytes de memria RAM. Hoje mesmo as agendas de bolso, das mais baratas, possuem bem mais memria do que ele. Devido s pesadas limitaes do equipamento, o sistema operacional deveria ser extremamente enxuto e otimizado, de forma a extrair o mximo do equipamento, consumindo um mnimo de memria. A combinao da criatividade dos IntroduoaoLinuxGuilhermeEsmeraldo 2

3 desenvolvedores, a necessidade e as limitaes impostas pelo equipamento, resultaram em um sistema bastante otimizado e elegante. Muitas das idias surgidas nesta poca continuam sendo usadas at hoje. O Unix evoluiu durante a dcada de 70, passando a ser usado em cada vez mais equipamentos e ganhando mais recursos. Quase sempre ele era usado em aplicaes "srias", incluindo instalaes militares, bancos e outras reas onde no existe margem para falhas. Devido a tudo isso o sistema se tornou muito robusto e estvel. Os primeiros sistemas Unix foram desenvolvidos de forma colaborativa, dentro de universidades e centros de pesquisas. Embora naquela poca ainda no existisse a internet como a conhecemos hoje, existia uma grande colaborao entre os desenvolvedores. Isso mudou na dcada de 1980, quando empresas como a AT&T, Sun e SCO, que detinham os direitos sobre o sistema, passaram a desenvolver verses proprietrias e a concorrerem entre si. A colaborao deixou de acontecer e a plataforma foi fragmentada em verses incompatveis. Outro fator importante foi a falta de investimentos em verses destinadas a micros PCs. Na poca, os PCs eram vistos como computadores muito limitados, incapazes de rodar sistemas Unix completos. Lembre-se de que estou falando do incio da dcada de 80, quando ainda eram usados micros XT e 286. Somados, estes dois fatores fizeram com que a plataforma definhasse, deixando o caminho livre para o crescimento da Microsoft. Chegamos, ento, ao Linux. Tudo comeou em 1991, quando Linus Torvalds comeou a trabalhar no desenvolvimento de um sistema Unix para rodar em seu 386. Na poca, o nico sistema similar era o Minix, um sistema para uso acadmico, que era bastante limitado. No incio, Linus usava o Minix para rodar os programas de esenvolvimento, mas, a partir de um certo ponto, ele passou a usar o prprio Linux. De incio, o Linux era um projeto muito pequeno, o hobby de um nico programador. Entretanto, ele tinha uma grande vantagem em relao aos sistemas UNIX que o precederam: o simples fato de ser disponibilizado sob a licena GPL. Isso permitiu que outros programadores adotassem o projeto, passando a contribuir com melhorias e correes. O sistema passou a crescer em um ritmo cada vez mais acelerado, chegando ao que temos nos dias de hoje. A licena GPL, to comentada, mas ao mesmo tempo to mal-compreendida, pode ser resumida em 4 direitos bsicos e uma obrigao: 1- Aplicativos disponibilizados sob a GPL podem ser usados por qualquer um e para qualquer fim, sem limitaes. Mesmo que eventualmente os criadores mudem de idia e resolvam passar a distribuir novas verses do programa sob outra licena, as verses que foram distribudas sob a GPL continuam disponveis, o que permite que outros desenvolvedores criem uma derivao e continuem o desenvolvimento. Isso traz uma boa dose de segurana para quem usa o aplicativo, j que reduz a chance de ele ser IntroduoaoLinuxGuilhermeEsmeraldo 3

4 descontinuado e deixar de estar disponvel. Enquanto houver um volume considervel de usurios, bem provvel que o desenvolvimento continue, de uma forma ou de outra. 2- Direito de tirar cpias do programa, distribu-las ou at mesmo vend-las a quem tiver interesse. Existe a possibilidade de ganhar algum dinheiro vendendo CDs gravados, por exemplo, mas como todo mundo pode fazer a mesma coisa, preciso vender por um preo relativamente baixo, cobrando pelo trabalho de gravao e no pelo software em si, que est largamente disponvel. Isso faz com que a forma mais eficiente de ganhar dinheiro seja prestar suporte e vender servios de personalizao e no venda direta, como no caso dos softwares comerciais. Para o cliente acaba sendo vantajoso, pois o custo de implantao ser o gasto com a consultoria e treinamentos, enquanto ao implantar um software comercial qualquer ele gastaria tambm com as licenas de uso. 3- Direito de ter acesso ao cdigo fonte do programa, fazer alteraes e redistribu-las. Para um programador este o principal atrativo, j que permite criar novos projetos usando como base o cdigo fonte de programas j existentes ao invs de ter sempre que comear do zero, sem falar na grande oportunidade de aprendizado que examinar o cdigo fonte dos programas disponveis propicia. 4- Direito (e ao mesmo tempo a obrigao) de redistribuir as modificaes feitas. Este o ponto onde existem mais mal-entendidos. Se voc desenvolve um software por hobby, ou por us-lo internamente na sua empresa, e no possui interesse em explorlo comercialmente, voc pode simplesmente divulgar o cdigo fonte para todo mundo, o que o caminho mais lgico se voc pretende atrair outros interessados em ajud-lo no desenvolvimento. Mas, caso voc pretenda receber pelo seu trabalho de desenvolvimento, existem duas opes: a) Voc pode distribuir o software livremente para aumentar a base de usurios e ganhar vendendo suporte, treinamentos e personalizaes ou: b) Voc s obrigado a distribuir o cdigo fonte a quem obtm o software, de forma que voc pode trabalhar batendo de porta a porta, vendendo o software para alguns clientes especficos e fornecendo o cdigo fonte apenas para eles. No existe nada de errado com este modelo, mas voc perde a possibilidade de ter contribuies de outros desenvolvedores, o que pode ser ruim a longo prazo. Os softwares distribudos sob a GPL tambm no contaminam softwares comerciais ou de outras licenas no caso de distribuio conjunta. Por exemplo, uma revista pode distribuir alguns softwares GPL no meio de um monte de aplicativos fechados na mesma edio. Os softwares GPL continuam sendo GPL, com todas regras que vimos acima, enquanto os softwares comerciais continuam sendo fechados. A revista deve incluir o cdigo fonte dos aplicativos GPL (ou pelo menos a informao de como obt-los via internet), mas naturalmente no precisa fazer o mesmo com os outros aplicativos includos no CD. Voc pode tambm usar algum software GPL em conjunto com o seu aplicativo IntroduoaoLinuxGuilhermeEsmeraldo 4

5 comercial, desenvolvendo um aplicativo qualquer que utiliza o Postgree SQL (um servidor de banco de dados), por exemplo. O Postgree SQL continua sendo GPL e o seu aplicativo continua sendo fechado; qualquer um pode usar e tirar cpias do Postgree SQL, mas voc controla a distribuio do seu aplicativo. Uma coisa no interfere com a outra. Ou seja, muito embora muitos vejam a GPL como algum tipo de licena comunista, que diz que todos os programadores devem fazer voto de misria e passar a trabalhar de graa em nome do bem comum, ela na verdade apenas uma licena que estimula a colaborao e o reaproveitamento de softwares e componentes, que vem nos trazendo diversas mudanas positivas. Ao ver micros com Linux em exposio nas lojas e em mercados, tenha em mente que esta apenas a ponta do iceberg. O uso do Linux em micros domsticos, pelo grande pblico, uma coisa relativamente recente. Antes de chegar aos desktops, o Linux cresceu entre os desenvolvedores e usurios avanados, dominou os servidores, invadiu o mundo dos dispositivos embarcados (celulares, roteadores, pontos de acesso wireless e at mesmo modems ADSL) e se tornou o sistema dominante no mundo dos supercomputadores. Segundo o http://www.top500.org/ (que mantm um rank atualizado dos 500 supercomputadores mais poderosos do mundo) em junho de 2009, tnhamos 387 dos 500 supercomputadores mais poderosos rodando diferentes verses do Linux. Fonte: http://antonini.med.br/blog/?p=4945 Para maiores informaes sobre a histria do Linux: consulte o site (em ingls): http://www.linuxjournal.com/article/6000

1.2 Linux na prtica: verdades e mitosAlgumas pessoas adeptas ou porta-vozes de outros sistemas operacionais tm alegado, na tentativa de desvalorizar o crescente gosto pelo Linux, que ele apresenta deficincias fatais a mdio e longo prazo, principalmente quando adotado como soluo corporativa. Em seu propsito de disseminar o medo, a incerteza e a dvida em relao ao software livre, essas pessoas acabaram transformando esses alegados defeitos em virtuais mitos sobre Linux. Paralelamente, ningum pode deixar de reconhecer que esse sistema operacional e inmeros programas livres esto avanando sobre todos os segmentos do mercado, que j conquistaram a mdia e esto rapidamente expandindo sua base instalada, em todo o mundo, refletindo nmeros impressionantes. E so rarssimos os casos de usurios que aderiram ao Linux e a outros softwares livres e voltaram atrs nessa deciso. IntroduoaoLinuxGuilhermeEsmeraldo 5

6 Diante dessa situao antagnica, a evidncia que uma das partes est enganada. E vale perguntar: ser que os opositores do Linux e dos produtos de cdigo aberto, em geral, esto de fato criticando com base em argumentao real ou esto simplesmente atirando para todo lado, apostando na tese de que uma mentira ou vrios mitos bombardeada atravs da mdia e dos mais diversos meios acabar virando verdade e afastando o potencial usurio de software livre? Para chegar a uma concluso, o melhor caminho relacionar os mitos sobre Linux, em particular, e sobre o software livre em geral, e destrinch-los. Antes de tudo, porm, importante alertar os leitores de que, ao ouvir esses mitos, devem pensar um pouco sobre eles para checar se fazem sentido, pois muitos deles podem parecer verdadeiros primeira vista. Alm disso, vale a pena refletir sobre os motivos que levariam pessoas a ter medo do Linux.

1.2.1 Os mitos* Se gratuito, no deve ser bom; * no h bons aplicativos para Linux; * No h suporte para software livre, e nem poderia, pois um produto gratuito; * Linux no to seguro quanto software proprietrio. Hackers podem ler o cdigo e entrar no sistema; * Linux repleto de bugs; * Linux difcil; * No h treinamento para Linux; * Linux no estvel e confivel; * Nenhum negcio verdadeiro usa Linux; * Nenhum produtor de software, em s conscincia, vai abrir seu cdigo fonte; * Produtos como o Linux podem sumir do mercado a qualquer momento, pois no h uma empresa por trs; * Linux caro; * O Linux roda em antigos 386 e 486 com funcionalidade mnima.

1.2.2 Os fatosSe gratuito, no pode ser bom. Este argumento, usado freqentemente, completamente falso. O Linux free software e a traduo correta para o termo free livre e no grtis. Distribuidores comerciais de Linux no proibem a distribuio de seus produtos atravs da Internet, CDs baratos encartados em revistas, ou outras formas de difuso sobre as quais no recebem nem um centavo. Mas esperar que alguma empresa fornea gratuitamente mdia de software, manual impresso, suporte telefnico e outros servios adicionais no mnimo irreal e fantasioso e nenhuma empresa afirma fazer isto. IntroduoaoLinuxGuilhermeEsmeraldo 6

7 H inmeros casos de aplicaes crticas rodando em Linux, por exemplo, muito da Internet repousa sobre Linux e software livre. Sem eles, a Internet no funcionaria. bem provvel que, direta ou indiretamente, voc use algum produto desses todos os dias e nem saiba. Servidores rodando Linux com sendmail gerenciam a maioria das mensagens atravs da Internet; grande parte dos sites da Internet utilizam o servidor web Apache. Para entender melhor o conceito de Free Software, veja as licenas que esto disponveis na Free Software Foundation, www.fsf.org . Uma das coisas que voc ir aprender por l que legtimo que o distribuidor de um software livre cobre pelo seu trabalho de gerar as cpias, e demais custos associados, bem como os servios adicionais oferecidos. Tambm as licenas esclarecem ao usurio os direitos de utilizao do Linux e outros softwares livres. No h bons aplicativos para Linux Esse argumento tambm falso. H muitos aplicativos excelentes. E mais e mais so lanados o tempo todo. Alm disso, agora que o movimento pelo software livre est fortalecido, muitas grandes empresas de software proprietrio esto fazendo verses de seus programas para sistemas operacionais livres. E h muitas razes de negcios para fazer isso, como ser mostrado frente. Alguns exemplos de boas aplicaes so: Netscape, Corel Word Perfect, StarOffice, Oracle, Informix, Adobe FrameMaker, Corel PhotoPaint, Borland Kylix e muito mais. No h suporte para Linux, e nem poderia, pois um produto gratuito Em 1997, o prmio InfoWorld para o produto do ano, na categoria de melhor suporte, foi para a comunidade de usurios Linux. Como isso pode acontecer? Bem, a Internet um lugar amplo e h reas onde aqueles que detm o conhecimento esto ligados. Descobriu-se que as pessoas recebem um suporte muito melhor e respostas mais rpidas usando listas de discusso, grupos de notcias, sites de ajuda on-line, do que tentando obter suporte de uma empresa comercial. Esse tipo de suporte gratuito, mesmo se o problema foi causado por erro do usurio e no por bug de software. Se todas essas informaes ainda no forem suficientes, o usurio poder optar por suporte pago, fornecido por empresas especializadas em suporte para Linux, como por exemplo a Linuxcare (www.linuxcare.com). Linux no to seguro quanto software proprietrio, hackers podem ver o cdigo e invadi-lo. Embora esse argumento parea bastante lgico, primeira vista, a verdade exatamente o oposto. Segurana atravs do desconhecimento no segurana. O desconhecimento d uma falsa sensao de segurana. H muitas pessoas que no encontram nada melhor para fazer do que tentar invadir software proprietrio. Algumas so muito talentosas e, se h brechas possveis, elas as encontraro. Considere por um momento algum algoritmo de encriptao. Se ele quer uma chance IntroduoaoLinuxGuilhermeEsmeraldo 7

8 de reconhecimento ele precisa ser Open Source. Por que? Porque sem uma intensa avaliao por parte da comunidade de desenvolvedores, ele nunca ser aceito como seguro. O ping of death, por exemplo, representou um ataque muito srio porque ele podia paralisar o servidor. Poucas horas depois de sua descoberta, a plataforma Linux j tinha uma correo contra o ataque. Produtos de cdigo fechado no chegaram a uma soluo por meses. Voc gostaria de rodar seu negcio sobre software que tem regras de segurana sobre as quais voc no pode ter nenhum controle e s quais no se tem acesso? Linux repleto de bugs E o software proprietrio, no ? Companhias tradicionais de software por maiores que sejam no tm recursos equiparveis e nem programadores to motivados se comparados legio de programadores que, em todo o mundo, dedicam seu tempo a desenvolver o Linux e outros free softwares. Assim, no por acaso que a correo de um bug, que no software comercial pode demorar semanas, meses ou at ser solucionado apenas na verso seguinte, so geralmente feitas em questo de horas.No se est falando que o software livre seja livre de bug, e sim, que com solues rpidas e contnuo melhoramento do cdigo fonte, tem uma clara vantagem. Alm disso, muito grande a responsabilidade de expor publicamente seu cdigo fonte, uma vez que as pessoas iro anlis-lo com severidade e criticar seus erros. Por outro lado, isso acelera muito o processo de desenvolvimento e tambm abre espao para diversas contribuies, as quais submetem a qualidade dos processos de desenvolvimento a uma estrutura bem mais rigorosa. Essa nova estrutura fornece invariavelmente uma depurao mais exigente e custos muito mais reduzidos. Linux difcil Essa alegao cai por terra, por exemplo, quando se v um estudo de caso como o do Colgio Stella, mostrado nesta edio da RdL, em que crianas da pr-escola iniciamse na computao atravs do Linux. No preciso ser nenhum especialista para pilotar um Linux, principalmente porque a grande maioria das pessoas quer aplicativos e ambientes grficos facis de usar e aprender intuitivamente ou com pequeno esforo e que encontram logo de cara ao instalar o Linux atravs de qualquer das distribuies existentes. A curva de aprendizado bem pequena, como em qualquer outro sistema que voc conhece, e a documentao muito extensa e acessvel para qualquer um. Browsers, e-mail, editores e processadores de textos, editores de imagens bitmap ou vetoriais, planilhas, gerenciadores de arquivos, visualizadores, bancos de dados, proxy, servidores, existem em quantidade e qualidade mais do que suficiente para convencer qualquer usurio. Na hora de pilotlo tudo transcorre sem traumas e usando o conhecimento de outros sistemas, logo se pega o seu jeito e se desmascara outro mito, que leva as pessoas a confrontar a real inteno dos que o acusam de ser difcil. Tambm devemos levar em conta o medo da mudana que induz as pessoas a pensar que o Linux difcil, mas na verdade a dificuldade est na mudana de paradigma. No h treinamento para Linux. IntroduoaoLinuxGuilhermeEsmeraldo 8

9 J existem vrias empresas, inclusive no Brasil, oferecendo treinamento para Linux, embora em muito menor escala do que as opes existentes para produtos comerciais. Mas isso est mudando rapidamente, inclusive porque as empresas de treinamento esto constatando quanto o movimento pelo software livre est crescendo, e percebem que esta uma grande oportunidade de negcios. Alm disso, h muita literatura sobre Linux e software livre, sem contar tudo que est disponvel na Internet e que representa um valioso recurso de treinamento. Veja na seo de classificados da RdL as empresas que j esto investindo no mercado brasileiro com treinamento para Linux. Linux no estvel ou confivel. Este mais um mito destinado a espalhar o medo e que absolutamente desprovido de fundamento. Quantas vezes seu sistema proprietrio travou nesta semana? Saiba que comum sistemas Linux funcionando durante meses ininterruptos, sem nunca travarem a ponto de precisar de uma reinicializao. E sobre a instalao de software? Seu sistema exige que voc reinicialize depois de instalar um novo programa? A resposta ser no, se voc estiver usando Linux. Alm disso, por que mais e mais empresas utilizam o Linux para rodar aplicaes em misso crtica? O correio dos Estados Unidos utiliza Linux para manejar grandes volumes de mensagens. O Apache um web server to estvel que a IBM abandonou seus produtos e agora distribui o Apache com suas aplicaes Web. Nenhuma grande empresa usa Linux. Ao contrrio. H um histrico de adeso onde o perfil de grandes especialistas em todas as reas, de desenvolvedores de gabarito, que avaliaram o sistema e passaram a recomend-lo a seus clientes. Um nmero significativo diz respeito base de provedores de Internet, onde se concentra uma enorme quantidade de mquinas movidas a Linux. E os administradores desses sistemas no optaram por ele porque mais barato, e sim porque atendia plenamente suas requisies tcnicas, como robustez, escalabilidade e segurana, e principalmente, porque ele totalmente customizvel e o acesso ao cdigo completo. No podemos deixar de citar os bancos, companhias automobilsticas e indstrias que utilizam o Linux como soluo em seus sistemas ou redes. Nenhum produtor de software, em s conscincia, vai abrir seu cdigo. E por que a Netscape o fez, tal como a SUN e a Digital Creations, entre tantas outras? Produtos como o Linux podem sumir do mercado a qualquer momento, pois no h uma empresa por trs. Na verdade, programas de cdigo aberto sobrevivem mesmo sem empresa, o que no possvel na indstria do software comercial. Existe o testemunho de muitos que foram seriamente lesados pela descontinuidade de determinados softwares comerciais, IntroduoaoLinuxGuilhermeEsmeraldo 9

10 o que no acontece quando o cdigo aberto, justamente porque o fato de o cdigo estar disponvel garante essa permanncia. No universo comercial justamente o contrrio, a falncia de uma empresa ou o monoplio podem deixar os usurios sem opo. Linux caro. Os opositores do Linux alegam que, computados o custo de aquisio do software e hardware, da assistncia tcnica, o treinamento das pessoas que vo utilizar a plataforma e o desenvolvimento de aplicaes, o Linux revela-se uma soluo bastante cara, e no gratuita, como se propaga. E afirmam que raramente o Linux grtis. Alm disso, consideram que o preo de aquisio de qualquer software apenas uma pequena parcela do custo total de propriedade da soluo da qual este software parte, principalmente incluindo custos diretamente relacionados, como treinamento, instalao e suporte, e outros associados de forma mais difusa, como adaptao de rotinas de trabalho, perdas de dados ou outros valores devido a falhas no software ou a vrus, como o recente I LOVE YOU, que por sinal no danificou nenhum sistema Linux. Alegar que o valor de uma licena de software, exclusiva por mquina, no parcela significativa na soluo global, encerra o debate com qualquer consumidor. Instalar ou atualizar o Linux de qualquer das grandes distribuies, com a liberdade para copiar ilimitadamente, com preos unitrios muito acessveis, tem sido um dos pilares da sua meterica expanso. Isso pblico e notrio, principalmente para as empresas, que sempre se preocupam em minorar seus custos de produo, representando uma economia fundamental na luta para manter a competitividade. Quando elas analisam rigorosamente outros quesitos como treinamento, desenvolvimento, suporte e mo-deobra, o resultado o espelho do que se v na mdia em todo o mundo: Linux. O Linux roda em antigos 386 e 486 com funcionalidade mnima. Claro que nos 386 e 486 a funcionalidade da atual verso do Linux restrita, mas plenamente possvel transformar uma mquina dessas em um servidor proxy para acesso remoto, um gateway de mail, um terminal de entrada de dados ou diversas outras aplicaes. De fato difcil rodar um ambiente grfico complexo como o KDE ou o GNOME em um 386 ou 486, mas sempre se pode contar com alternativas, como o Blackbox ou o IceWM. Ou mesmo interfaces em modo texto, mais do que suficientes em mquinas servidoras, que em geral dispensam at mesmo o monitor de vdeo. Fonte: mitos/ http://pliniotorres.wordpress.com/2007/03/05/linux-na-pratica-verdades-e-

1.3 Caractersticas do Sistema

IntroduoaoLinuxGuilhermeEsmeraldo

10

11 Suas principais caractersticas incluem: Multitarefa: vrias aplicaes podem ser executadas ao mesmo tempo; Multiusurio: Vrios usurios podem utilizar o sistema ao mesmo tempo; gratuito, atualizaes freqentes e desenvolvido voluntariamente por programadores experientes e colaboradores que visam a constante melhoria do sistema; Convive harmoniosamente no mesmo computador com outros sistemas operacionais; No exige um supercomputador para rodar; No necessrio licena para o seu uso; Maior estabilidade em relao ao Windows; Maior confiabilidade; No precisa ser reinicializado devido instalao de programas ou configurao de perifricos; Acessa discos formatados por outros sistemas operacionais; Suporte a linguagens de programao; No existem vrus no linux; Roda aplicaes windows atravs do WINE; Ambiente Shell; Suporte a diversos dispositivos e perifricos disponveis no mercado; Cdigo fonte aberto, isso significa que se voc for um programador, pode modificlo para se adequar a necessidades especficas, algo impossvel de ser conseguido com o Windows. Fonte: http://alabi.net/bb2008/Apostila_BB_2008_Parte_1.pdf

1.4 DistribuiesAs diversas distribuies Linux diferem por vrias motivos, incluindo tcnicos, organizacional e filosfico. IntroduoaoLinuxGuilhermeEsmeraldo 11

12 As variaes tcnicas incluem o suporte de diferentes dispositivos de hardware e sistemas ou configuraes dos pacotes do software. As diferenas organizacionais podem ser motivadas por decises tcnicas ou tambm por razes filosficas ou at mesmo histricas. Algumas distribuies especializam-se no uso em desktops, servidores ou roteadores. Outros critrios incluem a segurana, inclusive a rapidez da disponibilidade de atualizaes de segurana; facilidade de trabalhar com o gerenciador de pacotes; e o nmero de pacotes binrios disponveis. Conhea as Distribuies do Linux e escolha qual se adapta a seu perfil de usurio. Seguem algumas.

1.4.1 Red HatDesde o comeo, a empresa Red Hat vem atuando no mundo Linux como nenhuma outra distribuio. Caracterizada por uma pessoa sombra com um chapu vermelho, ela foi uma das pioneiras no tratamento srio do Linux. Sua equipe no apenas ajuda na distribuio em si, mas tambm no prprio Linux: muita contribuio no desenvolvimento do GNOME, do kernel, dos compiladores GNU, kernel e muito mais). Devido essa forte base, vrias outras distribuies se basearam no Red Hat para serem criadas, como por exemplo: Conectiva, Mandrake, SuSE, entre outros. Criadora do RPM (antes Red Hat Package Manger, e agora RPM Package Manager), um dos gerenciadores de pacotes mais usados na atualidade, a Red Hat atualmente dividiu-se em duas partes: empresarial e comunidade. A antiga distribuio Red Hat acabou sendo fechada apenas como um produto Enterprise, vendido para empresas um certo custo e uma nova distribuio foi feita a partir dessa separao: o Fedora, que serve como base para a verso Enterprise. Com isso a empresa conseguiu abrir mais o seu produto para a comunidade e ganhar uma boa base para poder lidar com as empresas corporativas. Isso tudo sem descomprometer-se com a filosofia do cdigoaberto: os fontes da verso Enterprise esto disponveis para qualquer um, e inclusive existem distribuies livres e gratuitas baseadas neste fonte. A Red Hat voltada para o desktop GNOME (mas no deixa de ter o KDE e o XFCE) e tem como ponto forte a facilidade no manuseio de suas configuraes. Muita gente diz que uma distribuio lenta pelo fato dela vir com muita coisa na instalao e s vezes requer algumas personalizaes para ficar legal. Site: http://www.redhat.com/

1.4.2 SlackwarePodemos dizer que o Slackware uma das mais famosas distribuies para Linux. O seu criador, Patrick Volkerding, lanou a primeira verso da distribuio em Abril de IntroduoaoLinuxGuilhermeEsmeraldo 12

13 1992 e desde ento segue uma filosofia bem rgida: manter a distribuio o mais parecido com o UNIX possvel. As prioridades da distribuio so: estabilidade e simplicidade. O Slackware tem uma fama de ser difcil de usar, mas isto no bem uma verdade. Existem muitas distribuies mais fceis de se usar, mas nada melhor do que uma um pouco mais difcil para aprender muito mais! Ele possui uma interface de instalao bem amigvel, alm de uma srie de scripts que ajudam na instalao e desinstalao de pacotes. O problema que muitos pensam que tm de se pegar as fontes dos programas, compil-los, instal-los para depois usar no Slackware, mas isso no verdade! O sistema padro de pacotes do Slackware o .tgz (que ao contrrio do que muitos pensam, no igual ao .tar.gz, pois contm algumas informaes adicionais sobre a instalao). Isso facilita e muito o trabalho. Mas como no h uma diversidade de programas disponveis como h nos pacotes DEB ou RPM, algumas coisas devem sim ser compiladas e instaladas. O Slackware pode ser uma alternativa tanto para usurios iniciantes como para os j experientes. As opes de instalao permitem que o usurio possa instalar em sua mquina uma distribuio que tem como caractersticas uma grande variedade de desktops (gerenciadores de janelas como o Gnome, KDE, Window Maker, Enlightenment, fvwm), ou como um poderoso servidor com todos os recursos necessrios (utilitrios de rede, servidores http, noticias, e-mail, ftp, etc). Os pacotes sempre esto em atualizao, mantidos por uma verso especial da distribuio: o slackware-current. Isto desfaz o mito de que o slackware no uma distribuio dinmica. Todos aqueles aplicativos esto disponveis e so atualizados regularmente. Ento o nico potencial que o Slackware ainda no tem um gerenciamento de pacotes que permita uma checkagem de dependncias Fora isso, ela atende todas as boas exigncias facilmente! Voc poder obter mais informaes e fazer o download desta distribuio atravs da pgina oficial que fica no seguinte endereo: Site: http://www.slackware.com/

1.4.3 DebianTalvez a filosofia do Debian seja o ponto que mais chama ateno nesta popular distribuio! No incio, antes do Linux ser lanado oficialmente por Linus Torvalds, o projeto GNU j tinha vrias ferramentas Unix-like disponveis. O que faltava era um kernel e ento quando Linus Torvalds lanou o seu kernel Linux, resolveram ento criar o GNU/Linux. No, no outro sistema diferente, s um nome para chamarem as distribuies que usam o kernel Linux e que tm ferramentas feitas pelo projeto GNU. Mas o que isso tudo tem haver com o Debian? O Debian GNU/Linux uma distribuio que segue toda esta filosofia do projeto GNU, oficialmente contendo apenas pacotes com programas de cdigo-fonte livre, feito por voluntrios espalhados IntroduoaoLinuxGuilhermeEsmeraldo 13

14 pelo mundo e sem fins lucrativos alguns. Apesar de atualmente o Debian ser usado com o kernel Linux, ele se entitula como um sistema operacional que pode usar no apenas o kernel do Linux em si, mas outros kernels como o Hurd (projeto de kernel livre feito fora do escopo do Linux). Isso o faz o Sistema Operacional Universal, pois o principal objetivo deles fazer um sistema que rode em todos os lugares e com vrios kernels. E claro, isso tudo na filosofia GNU. O Debian tem uma quantidade incrvel de pacotes pr-compilados para vrios tipos de arquiteturas. Ele conta com mais de 7000 pacotes, que facilitam e muito a instalao e gerenciamento de programas no sistema. Alm do mais, ele o pai do apt, a ferramenta de atualizao de pacotes automtica, feita pela internet. Mas h quem diga que o Debian ainda tem muito o que melhorar: Uma instalao complicada e fanatismo so alguns pontos fracos que muita gente encontra nesta distribuio. Site: http://www.debian.org/

1.4.4 ConectivaUma empresa de servios ISP, que trabalhava com Linux, resolveu desafiar a rotina e comeou a criar uma distribuio baseada na RedHat. Esta empresa brasileira criou (at onde eu saiba) a primeira distribuio brasileira, o Conectiva Red Hat Linux. A primeira verso se chamou Parolin e no continha muita coisa alm de tradues da distribuio Red Hat. Porm, seu desenvolvimento foi crescendo e resolveram partir para um rumo prprio, fazendo suas prprias alteraes e ideologias na distribuio em uma rota diferente da empresa americana Red Hat. Ento surgiu o Conectiva Linux. A partir do ano de 1999, a popularidade do Linux comeou a explodir no Brasil. E o Conectiva Linux, que j estava na sua verso 3.0, ficou muito popular entre os usurios brasileiros e foi isso que fez com que a empresa conseguisse investir mais ainda na distribuio. O Conectiva Linux se tornou uma boa e popular distribuio brasileira, que provou ser to boa quanto as estrangeiras. H quem aponte seus pontos fortes e fracos Apesar de ter tomado um rumo diferente ao da Red Hat, sua distribuio ainda se baseia nos conceitos bsicos da americana, assim como muitas outras baseadas na Red Hat. Mas muita coisa boa foi feita para melhorar a distribuio, como a criao do apt (ferramenta de atualizao de pacotes) para pacotes RPM, o GNU parted (particionador), tradues diversas para o portugus, entre outras coisas. O objetivo da distribuio tornar fcil as coisas para os usurios novos, sem comprometer muito o andamento do sistema. Recentemente, a empresa Conectiva se juntou francesa Mandrake e juntos comearam a fazer a distribuio Mandriva: uma juno das duas. IntroduoaoLinuxGuilhermeEsmeraldo 14

15 Site: http://www.conectiva.com.br/

1.4.5 MandrakeEsta empresa francesa resolveu apostar no Linux como um sistema fcil para todos! E esse o objetivo principal da empresa, criar uma distribuio fcil para todos os tipos de pessoas usarem. Baseada na americana Red Hat, o Mandrake vm com vrios programas de configurao fceis de serem utilizados e bem teis. Durante o crescimento brusco do Linux mundialmente, o Mandrake adquiriu muitos fs e uma popularidade incrvel principalmente na Amrica do Norte, atravs de sua interface fcil e dinamismo. A empresa quase ficou falida, mas com a ajuda da comunidade e uma boa estratgia comercial, ela conseguiu ressurgir das cinzas e agora se juntou Conectiva para criar a juno das duas distribuies: Mandriva! Site: http://www.mandrivalinux.com/

1.4.6 FedoraO Fedora talvez, a melhor proposta de uma distribuio baseada na comunidade junto com o Debian. Esta distribuio derivada da Red Hat, que antes tinha seu desenvolvimento feito apenas internamente e que resolveu abrir as suas portas para toda a comunidade, criando assim o Fedora Core. Em todos os modos, o Fedora um tipo de Red Hat, mesmo porque a empresa Red Hat pega o Fedora e o transforma em sua linha de produtos Red Hat Enterprise Linux (RHEL). O que mudou que agora a Red Hat no manda mais totalmente no projeto. Vrias pessoas da comunidade se integram na equipe de desenvolvimento e grandes progressos foram obtidos atravs desse modelo. Hoje o Fedora conta com muitos pacotes disponveis em RPM (formato de empacotamento nativo) e ferramentas de configurao que facilitam e muito a vida de um administrador de sistemas ou um usurio final. Alm da distribuio em si, h tambm vrios projetos da comunidade que apoiam o Fedora e influenciam bastante os usurios da distribuio. Site: http://fedoraproject.org/

1.4.7 CentOSO CentOS uma distribuio baseada nos fontes do Red Hat Enterprise Linux. IntroduoaoLinuxGuilhermeEsmeraldo 15

16 Quando a Red Hat fechou sua distribuio Red Hat (criando a verso Enterprise e liberando a verso comunitria Fedora), ela seguiu a filosofia do cdigo-aberto e deixou disponvel os fontes da distribuio. Algumas pessoas se juntaram, empacotaram estes fontes e criaram uma distribuio clone do Red Hat Enterprise Linux, que contm a mesma coisa e s muda o nome: CentOS. Com o tempo a distribuio ganhou prestgio e hoje em dia bastante utilizada no mercado, como alternativa livre para o Red Hat Enterprise Linux. Site: http://www.centos.org/

1.4.8 SUSEA SuSE (no, no a amiga da Barbie!) era uma empresa alem que foi comprada pela Novell e se tornou ao longo do tempo uma das distribuies corporativas mais utilizadas, disputando com a Red Hat. No incio, a SuSE baseava sua distribuio no Slackware, mas logo depois tomou rumo diferente, comeando a implementar os pacotes com o RPM e fazendo mudanas na forma de organizao do sistema. Criaram tambm uma ferramenta de configurao do sistema chamada YaST, que facilita e muito mexer nas configuraes da distribuio. As pessoas achavam que o nico problema da SuSE era que ela mantinha algumas ferramentas proprietrias e mantinha seu produto sempre pago Mas isso comeou a mudar depois de sua aquisio pela Novell, que parece estar contribuindo ainda mais para a comunidade do software livre desenvolvendo e liberando seus programas em licenas livres. Atualmente a distribuio SuSE usada em muitas mquinas pela Europa afora, incluindo instituies educacionais e governo. Sem dvida uma distribuio notvel, porm no muito usada no Brasil. Site: http://www.novell.com/linux/

1.4.9 KuruminO Kurumin uma distribuio brasileira baseada no Knoppix, que por sua vez baseada na distribuio Debian. A proposta do Kurumin fazer uma personalizao do Linux capaz de rodar diretamente do CD (sem precisar instalar, mas mesmo assim se o usurio quiser, ele instala) e com muitas facilidades para os usurios iniciantes. Sem dvida alguma, o Kurumin fez parte do crescimento do Linux no Brasil, pois foi com ele que muitas pessoas comearam a ver como um desktop Linux pode ser bonito e usvel. Esta distribuio se propagou bastante e ajudou a divulgar mais ainda o Linux. IntroduoaoLinuxGuilhermeEsmeraldo 16

17 Site: http://www.guiadohardware.net/kurumin/

1.4.10 UbuntuDepois de vender uma empresa de certificados de segurana, um empresrio simpatizante do software livre resolveu fundar a Canonical, que por sua vez utilizou o Debian como base e criou a distribuio Ubuntu. O Ubuntu veio como uma forma de popularizar o Linux, como um Debian cheio de facilidades e muito funcional. Com o Ubuntu voc encontra todas as funcionalidades do Debian j prontas e integradas para o usurio final, obtendo assim facilidade, compatibilidade e poder (!). O Ubuntu por padro vem com o desktop GNOME, mas existe um projeto paralelo e afiliado ao Ubuntu: o Kubuntu, que s faz trocar o desktop de GNOME, para KDE ;) Site: http://www.ubuntu.com/

1.4.11 GentooO Gentoo veio com uma proposta diferente de todas as outras distribuies: Ao invs de fornecer aos seus usurios os programas j prontos para o uso, ele disponibiliza um sistema automtico que baixa da Internet os arquivos de um programa, compila de acordo com sua prpria mquina e instala no sistema. O processo acaba se tornando muito mais lento do que instalar um pacote j pronto, mas a vantagem que o programa fica otimizado para a sua mquina e por isso h um pequeno ganho de desempenho. S no recomendo voc instalar uma distribuio como o Gentoo em mquinas velhas e lentas, a no ser que voc queira esperar alguns dias para compilar muitas coisas :) Ok ok, as vezes ser paciente bom! Site: http://www.gentoo.org/

1.4.12 LTSPLTSP, ou Linux Terminal Server Project, um projeto de um pacote com uma minidistribuio para thin clients (ou clientes finos). Para quem no conhece o que isso, s dar uma olhada nos famosos telecentros, que geralmente utilizam LTSP. Com este pacote, voc consegue rodar maquinas sem HD, utilizando todos os dados por uma rede. As interfaces e programas so todos instalados em um servidor e as mquinas acessam este servidor.

IntroduoaoLinuxGuilhermeEsmeraldo

17

18 Isso til principalmente quando voc tem vrias mquinas velhas. Usando o LTSP, voc pode reaproveitar essas mquinas velhas e rodar LTSP nelas. Com isso voc poder usar programas mais pesados em mquinas velhas como um 486. Site: http://www.ltsp.org/

1.4.13 ZipSlackO zipslack um mini-Slackware, feito para rodar numa partio DOS/Windows. Atravs desta verso especial, possvel qualquer um pegar na internet um arquivo em formato .zip, descompact-lo no diretrio c:\linux e usar o linux vontade! Para realizar este feito, usa-se o sistema de arquivos UMSDOS e atravs do utilitrio loadlin (substitui o LILO), o kernel carregado. O arquivo do zipslack vem bem enxuto, mas voc pode rechear simplesmente pegando os pacotes .tgz e instalandoos com o comando installpkg pacote.tgz e com isso voc pode instalar o sistema X, junto com os Gerenciadores de janelas e tambm servidores como o Apache. Por que o nome zipslack? Esta mini-distribuio foi feita para se rodar em um disco de zipdrive e tem um limite de 100MB. Claro que voc pode optar em no utilizar um zipdrive e assim poder usar o espao que quiser, mas um recurso muito bom para alguns utilitrios bsicos que voc pode carregar para todo lugar junto com o disquete e drive do zipdrive. O site oficial dele o mesmo que o do Slackware. Site: http://www.slackware.com/

1.4.14 Linux From Scratch (LFS)O Linux From Scratch um projeto interessantssimo para quem quer ver fundo como funciona a criao de uma distribuio Linux. O autor no estava satisfeito com nenhuma distribuio que tinha usado e resolveu criar uma pra ele mesmo. a que entra o esprito: ele fez um tutorial passo-a-passo de como ele montou a distribuio dele e compartilhou com todos. Assim, com estas instrues, qualquer um pode montar sua prpria distribuio. O nome Linux From Scratch significa Linux do Zero em ingls e muito bom! As instrues continuam sempre crescendo e em constante atualizao. Inclusive h variaes do LinuxFromScratch, criando distribuies com focos diferentes. So verdadeiros livros para ler, praticar e aprender todo o funcionamento de uma distribuio Linux. Site: http://www.linuxfromscratch.org/

1.4.15 Outras distribuies

IntroduoaoLinuxGuilhermeEsmeraldo

18

19 Existem centenas de distribuies disponveis por a afora. Assim no possvel listar todas aqui. Felizmente para preencher essa lacuna temos um site muito bom chamado DistroWatch (http://distrowatch.com/), que lista praticamente todas (seno, as principais) as distribuies existentes, d informaes sobre elas, verses de programas, links, e muito mais. um timo recurso para conhecer essa diversidade. Um site interessante, no qual voc responde um questionrio (em ingls), e no final do teste, aparecem quais distribuies do Linux mais se encaixam com o q vc precisa, com o q vc procura: http://www.zegeniestudios.net/ldc/index.php. De acordo com o prprio site, j foram realizados mais de 1 milho de testes. Fontes: http://jonathasonline.wordpress.com/2007/02/19/qual-distribuicao-linux-instalar/ http://www.devin.com.br/eitch/tlm4/s1-qual-distro-instalar.html

IntroduoaoLinuxGuilhermeEsmeraldo

19

20

Captulo 2 Linha de Comando2.1 Introduo ao ShellO shell um mdulo que atua como interface usurio - sistema operacional, possuindo diversos comandos internos que permitem ao usurio solicitar servios do sistema operacional. O shell tambm implementa um linguagem simples de programao que permite o desenvolvimento de pequenos programas (os famosos shell scripts).

2.1.1 Um pouco de histriaAgora que ns j sabemos o que o shell, vamos ver um pouco de sua histria. Desenvolvido por S.R Bourne em 1975, o Bourne Shell foi um dos primeiros shells desenvolvidos. Por ser bastante bastante simples ele continua sendo at hoje um dos mais rpidos e mais leves. A evoluo do Bourne Shell foi o C Shell. Desenvolvido por Bill Joy ele apresentava como inovaes o histrico de comandos, o alias (que permite usar um "apelido" para comandos complexos) e o controle de processos em foreground e background. Mas a caracterstica principal do C Shell era a semelhana de sua sintaxe com a da linguagem C. Recentemente tivemos o desenvolvimento do Turbo C Shell, que apresenta algumas melhorias em relao ao C Shell. Na busca da implementao do das caractersticas positivas do Bourne Shell e do C Shell, surgiu o Korn Shell, desenvolvido por David Korn. O Bash (Bourne Again Shell) surgiu como uma reimplementao do Bourne Shell realizada pelo Projeto GNU (www.gnuproject.org). Apresentando melhorias em relao ao Bourne Shell, esse shell se popularizou pela expanso em sistemas GNU/Linux e portanto, nele que iremos nos basear para o desenvolvimento desse artigo.

2.1.2 CaractersticasSeguem algumas catactersticas do shell: Nos prompts do Linux, quando se acaba com o smbolo $, isto quer dizer que voc IntroduoaoLinuxGuilhermeEsmeraldo 20

21 est logado com um usurio normal. Se voc estiver logado com o root, ao invs do smboloa $, no final do prompt existir o smbolo #; Nos nomes dos arquivos, os caracteres MAISCULOS e minsculos fazem a diferena. Isso quer dizer que por exemplo: os arquivos PROGRAMA.tar.gz e programa.tar.gz so dois arquivos completamente diferentes! Ou ento: ls um comando e LS um erro; No Linux, no existem extenses .EXE, .COM especial para programas executveis. Ao invs disso, os arquivos tm permisso de executvel ou no; Alm de arquivos comuns, no Linux existem os chamados links simblicos, que so nada mais nada menos que uma espcie de atalhos; O Linux um sistema multi-tarefa, por isso, ele pode ser acessado por vrios consoles ao mesmo tempo, assim como pode ser rodado vrios programas ao mesmo tempo. Para mudar o console do 1 a 6, utilize Alt-FN, onde o N corresponde ao nmero do console. Exemplo: Alt+F1, Alt+F2, Alt+F3, Alt+F4, Alt+F5 e Alt+F6; Depois de logado, se quiser sair, utilize o comando exit, ou o comando logout ou ainda a combinao de teclas Ctrl+D. Exite um recurso muito interessante nos shells do Linux, que o tab completion. Com ele voc pode completar comandos ou nomes de arquivos mais rapidamente sem precisar digitar tudo. Para utilizar esse recurso, basta apenas digitar as primeiras letras do comando ou arquivo e apertar a tecla Tab. O Linux ir completar o comando ou arquivo para voc. Caso haja mais de um arquivo comeando com as letras que voc digitou, apertando Tab mais uma vez ir lhe dar todas as opes.

2.1.3 Listando e se movimentando no shellAgora vamos comear com alguns comandos bsicos do shell: $ pwd Mostra o diretrio atual. $ ls Lista os arquivos (no ocultos) dentro do diretrio atual, ou seja, todos os arquivos comeando com "." no sero listados, que em geral so arquivos de configurao. $ ls -a Lista todos os arquivos (inclusive os ocultos). IntroduoaoLinuxGuilhermeEsmeraldo 21

22 $ ls -l Lista os arquivos no ocultos, mostrando o tamanho e as permisses de usurios. $ ls -la Lista todos os arquivos, mostrando o tamanho e as permisses de usurios. $ cd Muda o diretrio para o seu diretrio de usurio. $ cd nomedir Muda para o diretrio "nomedir", desde de que este esteja dentro do diretrio atual. $ cd /nomedir1/nomedir2 Muda pra o diretrio "nomedir2" dentro do diretrio "nomedir1", que por sua vez est no diretrio raiz ("/"). OBS: Se voc quiser entender melhor o sistema de arquivos do Linux, leia a prxima seo. $ cd .. Muda para um diretrio acima do diretrio atual. $ cd Muda para o diretrio acessado anteriormente ao diretrio atual. $ cd $ cd ~ Muda para o volta para o diretorio do usurio. OBS: O smbolo ~ referencia a pasta do usurio.

2.1.4 Manipulando diretrios e arquivosDepois das lies anteriores, acredito que seja hora de comearmos a aprender alguns comandos bsicos de manipulao, como por exemplo, copiar, colar, renomear, criar diretrio, etc. Veja alguns comandos logo abaixo: 2.1.4.1 Diretrios IntroduoaoLinuxGuilhermeEsmeraldo 22

23 $ mkdir /home/nomedir Cria o diretrio "/home/nomedir". $ mkdir nomediretrio Cria o diretrio "nomedodiretrio" dentro do diretrio atual. $ mkdir teste{1,2,3,4} Cria os diretrios: teste1, teste2, teste3 e teste4. $ mkdir p dir1/dir2 Cria o diretrio dir2 dentro de dir1. Se dir1 no existir, ser criado automaticamente. $ tree Mostra pastas/arquivos de forma hierrquica. $ rmdir /home/nomedir Remove o diretrio nomedir, desde que ele esteja vazio. $ rmdir nomediretrio Remove o diretrio "nomedodiretrio" (desde que esteja vazio) dentro do diretrio atual. $ rmdir p dir1/dir2 Comando semelhante ao mkdir p, porm para remoo. Remove dir2 e, em seguida, dir1, desde que estejam vazios. $ rm r diretrio1 Remove o diretrio diretrio1 e todo o seu contedo (inclundo outros diretrios). $ rm rf diretrio1 Semelhante ao commando anterior. A diferena que ir atuar no modo force (no ir questionar o usurio sobre a remoo de arquivos/diretrios) OBS: Muito cuidado ao usar este comando, pois arquivos e diretrios importante podem ser perdidos! $ mv /home/nomediretrio/* /home/nomediretrio2/* IntroduoaoLinuxGuilhermeEsmeraldo 23

24 Transfere o contedo do diretrio "/home/nomediretrio" para o diretrio "/home/nomediretrio2". $ mv nomediretrio nomediretrio2 Renomeia o diretrio "nomediretrio" para o diretrio "nomediretrio2". $ cp r dir1 dir2 Copia o diretrio dir1 para dir2, incluindo subdiretrios. 2.1.4.2 Arquivos $ cat arquivo1 Exibe contedo de arquivo1 $ cat arquivo1 arquivo2 Exibe contedos concatenados de arquivo1 e arquivo2, respectivamente. $ tac arquivo1 Faz o mesmo que cat, porem exibe o contedo em ordem inversa (da ltima para a primeira linha). $ touch nomedoarquivo Cria um arquivo vazio chamado nomedoarquivo $ touch dir1/nomedoarquivo Cria um arvquivo vazio chamado nomedoarquivo dentro do diretrio dir1. OBS: Outra forma de criar arquivos seria utilizar editores de texto. No linux existem diversos editores, entre eles: VI, VIm, Pico, Nano, Elvis, Emacs, GEdit, KWrite, Kate, etc. Todos seguem suas prprias filosofias (apresentao, teclas de atalhos, suporte, etc.) e podem estar presentes ou no em vrias distribues (exceto VI que universal. Ver Captulo 3.). $ cp arquivo1 arquivo2 Faz uma cpia de arquivo1 para arquivo2 $ cp arquivo1 dir1/arquivo2 Faz uma cpia de arquivo1 dentro do diretrio dir1. Esta copa ser nomeada IntroduoaoLinuxGuilhermeEsmeraldo 24

25 arquivo2. $ rm arquivo1 Remove o arquivo arquivo1 $ rm i arquivo Solicita uma confirmao do usurio antes de remover o arquivo.

2.1.5 Comandos adicionais$ history Mostra todos os comandos digitados. $ clear Limpa terminal. $ man nomedoprograma Pginas de Manual do programa nomedoprograma. $ find / -name nomedoarquivo Pesquisa no sistema um arquivo chamado nomedoarquivo. $ whereis nomedoprograma Localiza o executvel, arquivo/diretrio de configurao, diretrios de bibliotecas, arquivos compartilhados, cdigo-fonte e caminha da pgina de manual de nomedoprograma. $ which nomedoprograma Exibe o caminho completo para o comando selecionado. $ grep expresso arquivo Procura um padro (expresso) dentre de arquivo. Se encontrar, exibe na tela. $ head n 10 arquivo Exibe as 10 primeiras linhas de arquivo $ tail n 10 Exibe as 10 ltimas linhas de arquivo $ more arquivo1 IntroduoaoLinuxGuilhermeEsmeraldo 25

26 Pagina o contedo de arquivo1 na tela, quando o mesmo muito grande para ser exibido. A rolagem s poder ser de cima para baixo. $ less arquivo1 Semelhante ao comando anterior, com a diferena ser possvel rolar o texto para cima e/ou para baixo. $ df -h Exibe informaes sobre as parties do sistema. $ du sh dir1 Exibe quanto de espao no disco o diretrio dir1 ocupa.

Fonte: http://www.vivaolinux.com.br/artigo/Uma-introducao-ao-shell-(parte-1)

2.2 rvore de diretriosOs sistemas UNIX so estruturados a partir do seu sistema de arquivos, ou seja, tudo o que pode vir a ser manipulado dentro do sistema operacional tratado com arquivo (isso inclui processos, dispositivos de hardware e, como era de se esperar, os arquivos comuns tambm).

2.2.1 Linux Standard BaseOs sistemas GNU/Linux possuem um padro rgido e especfico a respeito da organizao hierrquica dos diretrios. Essa padronizao pode ser encontrada na pgina da Linux Standard Base (www.linuxbase.org). Para os demais sistemas do tipo Unix propriamente ditos, no h um padro realmente oficial. Entretanto para os sistemas Unix existem inmeras proposies tcnicas sobre as estrutura de diretrios, as quais prefiro no discutir por falta de autoridade no assunto.

2.2.2 A estrutura: principais diretrios e suas funesO diretrio principal que contm todos os demais diretrios chamado de raz e se encontra no topo da estrutura, sendo representado pelo sinal "/". Todos os demais diretrios devem ser referenciados a partir dele (exemplo: /diretrio). Dentro da estrutura do sistema de arquivos, cada um dos diretrios possui uma funo especifica.

IntroduoaoLinuxGuilhermeEsmeraldo

26

27 Alguns diretrios e suas funes: * /bin : diretrio no qual so encontradas ferramentas necessrias a operao do sistema. * /sbin : aqui podemos encontrar as ferramentas de operao e manuteno do sistema. * /etc : os arquivos de configurao do sistema se encontram nesse diretrio. * /dev : neste diretrio encontramos os arquivos relacionados aos dispositivos de hardware. Neste diretrio cada dispositivo de hardware possui um arquivo. * /home : os usurios cadastrados no sistema possuem um diretrio com seu nome dentro de /home. Em geral a nica rea acessvel aos usurios para gravarem seus arquivos. * /lib : as bibliotecas de funes do sistema se encontram aqui (so as bibliotecas de alocao dinmica do Linux). * /mnt : diretrio utilizado para conexo com volumes presentes em outros computadores da rede ou para acessar dispositivos removveis. * /tmp : aqui se encontram os arquivos temporrios montados pelo sistema. * /usr : os arquivos de cada usurio se encontram contidos neste diretrio. Este diretrio muito importante, pois nele se encontra basicamente tudo que o usurio vai utilizar (editores de texto, ferramentas, navegadores, ambientes grficos e os demais aplicativos voltados para os usurios). * /var : aqui se encontram informaes variveis do sistema (spool de impressora, caixas postais, logs do sistema, ...). Fonte: Linux/ http://www.vivaolinux.com.br/artigo/Entendendo-o-sistema-de-arquivos-do-

IntroduoaoLinuxGuilhermeEsmeraldo

27

28

Captulo 3 Editor VI/VIm3.1 IntroduoO Vim o sucessor mais difundido do vi, que filho do ex com o ed, que por sua vez so filhos do qed, e por a vai. O "vi" a sigla de Visual Interface. Note que naquela poca (incio dos anos 80), no era comum como hoje, voc ter um editor de textos visual, ou seja, voc ver na tela o texto que est sendo editado. Tente imaginar como editar um texto sem v-lo. Quer tentar? Experimente o editor ed, presente em qualquer distribuio Linux. Muito mais tarde, em 1992, apareceu no mundo Unix um concorrente do vi, o Vim (de "Vi IMitator", o imitador do vi) e logo se tornou popular, pois alm de ser um clone muito bem feito do vi, possua muitas outras funcionalidades, como uso da tecla TAB para completar nomes de arquivos, vrios nveis de "undo" (desfazer comando), reconhecimento de sintaxe e histrico de linha de comando. Ento de "imitator" ele passou a ser chamado de "Vi IMproved", o vi melhorado. O Vim se tornou padro em sistemas Linux, onde o /bin/vi uma ligao simblica para o /usr/vim, e conseqentemente, a grande maioria usa Vim, mas acha que usa vi. Acabaram quase que virando sinnimos, mas, lembre-se, vi diferente de Vim, e sobre Vim que este artigo comentar. Apesar do Vim ser um editor de textos extremamente voltado para programao, ele tambm poderoso para editar textos comuns (como esse) e possui muitas funcionalidades avanadas que outros editores grficos como o Microsoft Word tm, como abrir vrios arquivos ao mesmo tempo, autocorreo, auto-identao, seleo visual, macros e outras que outro editor nem sonha ter, como seleo vertical de texto, interao total com o sistema operacional, uso de expresses regulares, sintaxe colorida, etc. O Vim no uma exclusividade de sistemas Unix, ele j foi portado para vrias outras plataformas, como Amiga, MacOs, SunOs, DOS, Windows e muitas outras. E como atrativo maior para os usurios novatos, tambm existe o gVim, para usar no X, com o mouse, menus, botes e todas as facilidades de uma aplica o grfica. Sendo o gVim apenas uma interface mais amigvel do Vim, todas as funcionalidades deste funcionam naquele. Fonte: http://aurelio.net/vim/vi-vim-venci.html

IntroduoaoLinuxGuilhermeEsmeraldo

28

29

3.2 IniciandoIniciar uma sesso do vi simples. Digite $ vi e o vi abrir um arquivo vazio para voc comear a trabalhar. Alternativamente, voc pode especificar o arquivo a ser aberto na prpria linha de comando, dessa forma: $ vi meuarquivo No se preocupe com os ~ no editor - eles so apenas indicadores visuais do fim do seu arquivo e no aparecem no seu documento. A primeira (e mais confusa) coisa sobre o vi so os vrios diferentes modos nos quais o editor pode operar. Para os nossos propsitos, eu vou separ-los em duas amplas categorias: "modo de edio" (insert mode) e "modo de comando" (command mode). O "modo de edio" aonde voc vai passar a maior parte do seu tempo - ele permite adicionar (ou inserir) texto no seu documento. O "modo de comando", por outro lado, permite que voc se mova pelo documento, apague ou substitua blocos de texto e acesse funes teis do vi como buffers, por exemplo. Quando o vi iniciado, ele geralmente est em modo de comando. Para entrar no modo de edio digite i o vi mostra um aviso da troca de modos no canto inferior esquerdo. Agora voc pode digitar o texto no documento de maneira normal. Quando tiver terminado, aperte ESC para retornar ao modo de comando. Para comear a inserir texto numa linha nova, use o para entrar no modo de edio com o cursor j posicionado na prxima linha, ou O para entrar no modo com o cursor na linha anterior. Alm de inserir texto, o vi tambm permite que voc sobrescreva um texto existente isso chamado de "modo de substituio" (replace mode), que pode ser acessado digitando-se R no modo de comando. Tudo que voc digitar agora ser "escrito por cima" do texto existente. Se a sua inteno era substituir um nico caractere - por exemplo, para corrigir um erro de digitao - use r para substituir um nico caractere; o editor retornar automaticamente para o modo de IntroduoaoLinuxGuilhermeEsmeraldo 29

30 comando quando o caractere for substitudo. Obviamente, em algum momento, voc vai precisar salvar o seu trabalho. No vi, isso feito via o comando de "escrita" (write), abreviado para :w Para sair, use o comando :q O vi tambm permite que se combine comandos. Por exemplo, tente :wq para salvar seu documento e sair do programa. Alternativamente, se voc quiser descartar seu texto use :q! que sai do vi sem salvar nenhuma alterao do arquivo sendo editado. Obviamente, todos esses comandos com ":" devem ser executados no modo de comando. Tentar utiliz-los no modo de edio os far aparecer como parte do seu documento.

3.2 Vamos danar!Agora que voc j sabe editar um texto, est na hora de ensin-lo a segunda coisa mais confusa do vi: se movimentar pelo documento. Para aproveitar melhor essa lio, eu sugiro que voc abra um documento j existente ou crie um novo e digite algumas linha nele. Certifique-se que voc est no modo de comando teclando ESC algumas vezes quando tiver terminado. As teclas de movimento do vi so: h = esquerda, j = baixo, k = cima, l = direita. Em alguns consoles UNIX, tambm pode ser possvel usar as setas do teclado para se movimentar pelo documento; entretanto, eu sugiro que voc tente memorizar a lista acima pois elas vo funcionar em qualquer situao. Gostaria de se mover entre as palavras? Use w para mover uma palavra para frente, ou b para mover uma para trs. Para se mover entre pargrafos, use IntroduoaoLinuxGuilhermeEsmeraldo 30

31 { e } O movimento entra sentenas requer o uso cuidadoso de ( e ) Se voc precisa se mover at uma linha especfica do seu documento - linha 568, por exemplo use esse comando: :568 Para ir para o incio do arquivo, digite gg e para o fim, somente G [isso shift+G] E o vi tambm tem um equivalente a "Page Up e "Page Down". Use ^F [isso ctrl+F] para ir uma pgina a frente, e ^B [isso ctrl+B] para uma pgina atrs. Para saber a sua posio no documento, use ^G [isso ctrl+G] claro que essas no so as nicas teclas de movimento - existem muitas outras. No entanto, por enquanto, essas devem ser suficientes para o seu prximo exerccio.

3.3 Cortar, Copiar, Colar...Agora vamos ver como apagar e copiar textos. Para apagar um nico caractere, posicione o curso sob ele, certifique-se que voc est no modo de comando, e tecle x para apag-lo. Para apagar uma palavra, tecle dw que a abreviao de "delete word" (apagar palavra). Para apagar uma linha inteira use dd J escritores com bloqueio criativo vo apreciar a rapidez dos comandos dgg e dG que apagam tudo da posio corrente do cursor at o comeo e fim do arquivo respectivamente.

IntroduoaoLinuxGuilhermeEsmeraldo

31

32 Oops... voc no usou esses dois, no ? No tem problema, o vi tambm possui um comando de "undo" (desfazer) muito til, que pode ser usado teclando u sempre que voc precisar desfazer algum engano. E claro, junto com o undo temos o comando de "redo" (refazer), que permite repitir aes passadas. Basta teclar . [isso mesmo, um ponto] Quando voc apaga alguma coisa no vi, o texto apagado geralmente vai parar num buffer temporrio na memria, aonde ele fica at ser substitudo. Esse texto pode ser re-inserido no seu documento com o comando de "put" (colocar). Se voc estiver acompanhando tudo j deve imaginar que o comando de "put" acessado com p Vamos l, tente. Apague uma linha, mova o cursor para um novo pargrafo e a coloque em outro lugar. Simples, e equivalente funcionalidade cortar e colar que existe em outros editores. Caso voc queira inserir o texto apagado acima da posio atual do cursor, simplesmente use P ao invs de p E quanto a copiar e colar? Tambm muito fcil: o vi usa o comando "yank" para copiar um texto de uma forma bem similar ao comando de apagar. Para copiar uma palavra, use yw J yy copia uma linha inteira e a coloca no buffer temporrio, pronta para ser colocada em outro lugar.

3.4 Um, dois, trs...Uma das funes mais poderosas do vi repetir automaticamente um comando um nmero especfico de vezes, bastando preceder o comando com um nmero. Por exemplo, suponha que voc precisa apagar oito linhas de um documento. Baseado no que voc j aprendeu, voc usaria o comando dd oito vezes, criando essa linha de comando horrivelmente grotesca: dddddddddddddddd O que voc poderia ter feito, caso eu j tivesse dito, era 8dd

IntroduoaoLinuxGuilhermeEsmeraldo

32

33 Como voc ver ao us-lo, esse comando simplesmente executa o comando "dd" oito vezes, apagando oito linhas do documento sem que voc precise ir a uma farmcia comprar uma aspirina depois. E essa tcnica pode ser usada com quaisquer dos comandos que voc j aprendeu: voc pode utiliz-la para copiar mltiplas linhas, repetir inseres um nmero especfico de vezes, e at mesmo mover o cursor para ocorrncias especficas de palavras no documento.

3.5 Procurando por hopeO vi tambm possui funcionalidades de busca e substituio bastante poderosas, que podem se acessadas com os comandos / e ?. Digamos que voc escreveu um tratado sobre o papel interpretado por Mark Hamil em "Star Wars: A New Hope" (Guerra nas Estrelas: Uma Nova Esperana) - mas, ao revisar o seu documento, voc v que digitou erroneamente a palavra "hope" (esperana) como "dope" (narctico) em diferentes locais do texto. Obviamente voc no pode ignorar esse erro: isso levaria a uma interpretao completamente nova do filme de fico-cientfica mais querido do planeta. O que voc faz? /dope O comando /padro diz ao vi para procurar o documento pelo padro especificado; ao encontr-lo, ele vai posicionar o cursor no primeiro caractere da palavra, e aguardar novos comandos. Para buscar para trs, use o comando ?padro, assim: ?dope improvvel, at mesmo tolice da sua parte, assumir que esse erro s ocorreu uma vez. Voc pode repertir a ltima busca pressionando n ou, na lngua do vi, "next match" (prxima ocorrncia). No suficiente somente identificar o seu erro. O prximo passo, conforme a maioria das doutrinas religiosas e pastores da televiso, consert-lo e se certificar de que ele no vai acontecer de novo. O vi tambm pode ajud-lo nisso tambm, ainda que isso involva memorizar um comando que, a primeira vista, provavelmente vai te deixar perguntando se Deus existe mesmo... :1,$s/padro_a_encontrar/padro_para_substituir/g No caso de voc estar se perguntando de onde o "s" veio, a abreviao do comando "substituir". O 1 e o $ so os smbolos que indicam a faixa onde a substituio deve ocorrer - nesse caso, do incio do documento [linha 1] at o fim [$]. O "g" um flag que indica que todas as ocorrncias devem ser substitudas. Logo, no exemplo acima, o comando para substituir a palavra "dope" por "hope" :1,$s/dope/hope/g Se pelo menos conseguir o nmero do telefone da Leia fosse to fcil assim...

IntroduoaoLinuxGuilhermeEsmeraldo

33

34

3.6 Bookmarks, Buffers...O vi tambm permite que voc defina "bookmarks" (marcadores) no seu documento para facilitar o salto entre sees especficas de arquivos grandes. Como um exemplo, considere os seguintes blocos de texto: ...este documento delineia uma proposta para a estrutura corporativa da Carros Potentes Ltda, uma companhia no negcio de produo e venda... [pgina 2] ...o presidente da Carros Potentes Ltda, James van Hausen, que, em sua adolescncia desvairada, era muito conhecido por derrubar rvores usando carssimos carros esporte, conseguiu... [pgina 137] E ento, vamos colocar alguns bookmarks? Na pgina 2, mova o cursor at a palavra "documento", e digite ma Isso coloca um bookmark, identificado pela letra "a", na posio do cursor. Agora v at a pgina 137 e adicione um bookmark chamado "b" na palavra "carros". Para voltar para a pgina 2, tudo que voc precisa fazer digitar `a e para chegar pgina 137, simplesmente digite `b Qualquer letra minscula pode ser usada como um identificador de bookmark. Obviamente, voc est limitado a um total de 26 bookmarks por arquivo - mas, na maoiria das vezes, isso mais que suficiente. Se voc precisar de mais que isso eu sugiro fortemente que voc faa terapia. Alm dos mltiplos bookmarks, o vi tambm possui mltiplos buffers. Se voc esteve prestando ateno, sabe que todo o material que voc apaga ou copia vai para um buffer temporrio at ser substitudo ou removido. Mas o vi tambm possui "buffers com nome" - como se fossem armrios, esses buffers podem ser usados para guardar diferentes blocos de texto, deixando-os disponveis para insero aonde forem necessrios. Como um exemplo, d uma olhada nesse pedao de um texto que me foi entregue por uma de minhas ex-alunas: ...coelinhas (N.T.: da Playboy americana) parecem ter uma vida muito boa. Tudo o que elas fazem ficar na praia, bebendo pina coladas e passando bronzeador. De vez em quando, elas se levantam e jogam um pouco de voleyball. Parece divertido - aonde eu assino?... Tenho certeza que vocs entendem porque eu falei "ex-aluna"...

IntroduoaoLinuxGuilhermeEsmeraldo

34

35 Agora vamos supor que eu quisesse trocar de posio as frases "bebendo pina coladas" e "passando bronzeador". Isso o que eu faria: 1. Mover o cursor para o comeo da palavra "bebendo" 2. Apagar as trs palavras e mov-las para um buffer chamdo "p" "p3dw 3. Mover o cursor para o comeo da palavra "passando" 4. Apagar essas duas palavras e mov-las para um buffer chamado "s" "s2dw 5. Mover o cursor de volta para antes da palavra "e" 6. Inserir o contedo do buffer "s" "sp 7. Mover o cursor para depois da palavra "e" 8. Inserir o contedo do buffer "p" "pp 9. Me parabenizar espalhafatosamente, como eu estou fazendo agora! Como voc pode ver, para usar um buffer, basta preceder o comando normal de copiar/apagar/substituir com o identificador do buffer. Um identificador de buffer consiste de uma aspas dupla seguida por uma letra minscula. No exemplo acima, tanto "s quanto "p so identificadores de buffers. Devo lembr-los aqui que nem os bookmarks, nem os buffers so mantidos quando voc sai do editor.

3.7 Sobre arquivos e janelasVoc j viu que $ vi nome_do_arquivo inicia o vi com o arquivo especificado j carregado. Mas por que se restringir a um? Voc pode carregar mltiplos arquivos desta forma: $ vi arquivo1 arquivo2 arquivo3 Para alternar entre os arquivos use esses comandos: :next = vai para o prximo arquivo na lista :rewind = vai para o primeiro arquivo na lista :last = vai para o ltimo arquivo na lista Para sair de todos os arquivos de uma vez use: :qa! para sair sem salvar, ou :wqa para salvar todas as alteraes e sair. Aps j ter iniciado o vi, voc pode carregar um novo arquivo no editor com o IntroduoaoLinuxGuilhermeEsmeraldo 35

36 comando "editar", assim: :e /caminho/para/arquivo.txt Se voc preferir inserir o contedo de outro arquivo diretamente no documento que voc est editando agora existe um comando de leitura "read" feito justamente para isso. Tente: :read /caminho/para/arquivo_a_ser_inserido.txt Se voc um programador, definivamente vai gostar da funcionalidade do vi de te mostrar mltiplas vises do mesmo arquivo, que no jargo computacional chamado de "window splitting" (diviso de janelas). E o comando , naturalmente :split Cada uma das janelas criadas pode ser manipulada de forma independente das outras, apesar das mudanas feitas no arquivo ficarem imediatamente visveis em todas elas. Vamos avanar um pouco mais. Que tal carregar arquivos diferentes em cada uma das janelas? Por exemplo, no seria timo se voc pudesse carregar um arquivos HTML em uma, um script CGI associado em outra, alguma documentao de ajuda numa terceira e ter todas as trs visveis ao mesmo tempo? Bem, voc pode. Basta usar o comando "new" (novo) para criar uma nova janela para cada um dos arquivos, assim: :new form.html :new mailform.cgi :new help.txt Para alternar entre as janelas, use ^W W [isso ctrl-W seguido por um W] Fonte: http://www.inf.ufes.br/~proinfo/docs/vi/vi.xml

IntroduoaoLinuxGuilhermeEsmeraldo

36

37

Captulo 4 Gerenciamento de Processos4.1 IntroduoNos sistemas operacionais, um processo a forma de representar um programa em execuo. o processo que utiliza os recursos do computador - processador, memria, etc - para a realizao das tarefas para as quais a mquina destinada. Este artigo mostrar os principais conceitos relacionados a processos no Linux e as ferramentas usadas para manipul-los e gerenci-los.

4.2 Composio de um processoO sistema operacional lida com uma infinidade de processos e, por isso, necessrio ter meios que permitam control-los. Para isso, os processos contam com um conjunto de caractersticas, dentre as quais: - Proprietrio do processo; - Estado do processo (em espera, em execuo, etc); - Prioridade de execuo; - Recursos de memria. O trabalho de gerenciamento de processos precisa contar com as informaes acima e com outras de igual importncia para que as tarefas sejam executadas da maneira mais eficiente. Um dos meios usados para isso atribuir a cada processo um PID.

4.3 PID e PPIDUm PID (Process Identifier) um nmero de identificao que o sistema d a cada processo. Para cada novo processo, um novo nmero deve ser atribudo, ou seja, no se pode ter um nico PID para dois ou mais processos ao mesmo tempo. Os sistemas baseados em Unix precisam que um processo j existente se duplique para que a cpia possa ser atribuda a uma tarefa nova. Quando isso ocorre, o processo "copiado" recebe o nome de "processo pai", enquanto que o novo denominado "processo filho". nesse ponto que o PPID (Parent Process Identifier) passa a ser usado: o PPID de um processo nada mais do que o PID de seu processo pai.

IntroduoaoLinuxGuilhermeEsmeraldo

37

38

4.4 UID e GIDConforme j mencionado, cada processo precisa de um proprietrio, um usurio que seja considerado seu dono. A partir da, o sistema saber, atravs das permisses fornecidas pelo proprietrio, quem pode e quem no pode executar o processo em questo. Para lidar com os donos, o sistema usa os nmeros UID e GID. O Linux gerencia os usurios e os grupos atravs de nmeros conhecidos como UID (User Identifier) e GID (Group Identifier). Como possvel perceber, UID so nmeros de usurios e GID so nmeros de grupos. Os nomes dos usurios e dos grupos servem apenas para facilitar o uso humano do computador. Cada usurio precisa pertencer a um ou mais grupos. Como cada processo (e cada arquivo) pertence a um usurio, logo, esse processo pertence ao grupo de seu proprietrio. Assim sendo, cada processo est associado a um UID e a um GID. Os nmeros UID e GID variam de 0 a 65536. Dependendo do sistema, o valor limite pode ser maior. No caso do usurio root, esses valores so sempre 0 (zero). Assim, para fazer com que um usurio tenha os mesmos privilgios que o root, necessrio que seu GID seja 0.

4.5 Sinais de processosOs sinais so meios usados para que os processos possam se comunicar e para que o sistema possa interferir em seu funcionamento. Por exemplo, se o usurio executar o comando kill para interromper um processo, isso ser feito por meio de um sinal. Quando um processo recebe um determinado sinal e conta com instrues sobre o que fazer com ele, tal ao colocada em prtica. Se no houver instrues prprogramadas, o prprio Linux pode executar a ao de acordo com suas rotinas. Entre os sinais existentes, tem-se os seguintes exemplos: STOP - esse sinal tem a funo de interromper a execuo de um processo e s reativ-lo aps o recebimento do sinal CONT; CONT - esse sinal tem a funo de instruir a execuo de um processo aps este ter sido interrompido; SEGV - esse sinal informa erros de endereos de memria; TERM - esse sinal tem a funo de terminar completamente o processo, ou seja, este deixa de existir aps a finalizao; ILL - esse sinal informa erros de instruo ilegal, por exemplo, quando ocorre diviso por zero; KILL - esse sinal tem a funo de "matar" um processo e usado em momentos de criticidade. O kill tambm um comando que o usurio pode usar para enviar qualquer sinal, IntroduoaoLinuxGuilhermeEsmeraldo 38

39 porm, se ele for usado de maneira isolada, ou seja, sem o parmetro de um sinal, o kill por padro executa o sinal TERM. A sintaxe para a utilizao do comando kill a seguinte: kill -SINAL PID Como exemplo, vamos supor que voc deseja interromper temporariamente a execuo do processo de PID 4220. Para isso, pode-se usar o seguinte comando: kill -STOP 4220 Para que o processo 4220 volte a ser executado, basta usar o comando: kill -CONT 4220 Se o sinal precisa ser enviado a todos os processos, pode-se usar o nmero -1 no lugar do PID. Por exemplo: kill -STOP -1 Como j dito, usar o comando kill isoladamente - por exemplo, kill 4220 - faz com que este use o sinal TERM por padro. Esse sinal, no entanto, pode ser ignorado pelos processos. por isso que boa prtica usar o comando "kill -9 PID" para "matar" um processo, pois o nmero nove representa o sinal kill e este no pode ser ignorado. Isso deixa claro que se voc conhecer o nmero que atribudo a um sinal, voc pode uslo no lugar de seu nome. Com exceo de alguns sinais, a numerao de cada um pode mudar de acordo com a distribuio ou com a verso do kernel. Tambm comum usar o kill da seguinte forma: kill -l PID. A opo "-l" (letra L minscula) usada para listar os processos que aceitaram o kill. Agora, imagine que voc no saiba qual o PID de um processo e tenha se esquecido que o comando ps (visto mais frente) descobre tal informao. Neste caso, pode-se usar o comando killall, desde que voc saiba o nome do processo. A sintaxe : killall -SINAL processo Por exemplo: killall -STOP vi

4.6 Estado dos processosQuando um processo criado, isso no significa que ele ser imediatamente executado. Alm disso, determinados processos podem ser temporariamente IntroduoaoLinuxGuilhermeEsmeraldo 39

40 paralisados para que o processador possa executar um processo prioritrio. Isso quer dizer que os processos, em certos momentos, podem estar em situaes de execuo diferentes. O Linux trabalha, essencialmente, com quatro tipos de situao, isto , estados: Executvel: o processo pode ser executado imediatamente; Dormente: o processo precisa aguardar alguma coisa para ser executado. S depois dessa "coisa" acontecer que ele passa para o estado executvel; Zumbi: o processo considerado "morto", mas, por alguma razo, ainda existe; Parado: o processo est "congelado", ou seja, no pode ser executado.

4.7 Comandos nice e reniceAo abordarmos os comandos nice e renice necessrio entender o conceito de gentileza. Um processo pode ter prioridade em relao a outros em sua execuo. Quando um processo gentil, significa que ele "oferece a gentileza" de permitir que um processo com prioridade maior que a sua seja executado antes dele. Os nveis de gentileza, tambm chamados de nice, so determinados atravs de nmeros. Quanto mais alto for o valor nice, mais gentil o processo. Geralmente, o intervalo de nmeros usados no nice so os inteiros entre -19 e 19. Embora determinar a prioridade de um processo no seja uma prtica comum, afinal, o prprio Linux faz muito bem essa tarefa, isso pode ser necessrio em alguma situao. Para isso, utiliza-se um comando que recebe o mesmo nome do conceito: nice. A sintaxe : nice -n prioridade processo Por exemplo: nice -n -5 ntpd No exemplo, o ntpd recebe prioridade -5. Trata-se de uma prioridade alta, afinal, como j dito, quanto menor o nmero menor sua gentileza. Se um determinado processo est em execuo, isso acontece com uma prioridade j definida. Para alterar um processo nessa condio, usa-se o comando renice, cuja sintaxe : renice prioridade opo processo/destino As opes do renice so: -u - a alterao ocorrer nos processos do usurio informado; -g - a alterao ocorrer nos processos do grupo indicado; -p - a alterao ocorrer no processo cujo PID for informado. IntroduoaoLinuxGuilhermeEsmeraldo 40

41 Um exemplo: renice +19 1000 -u infowester Neste caso, o comando renice alterou a prioridade do processo 1000, assim como a prioridade dos processos do usurio infowester.

4.8 Verificando processos com o psO ps um comando de extrema importncia para o gerenciamento de processos. Por ele, possvel saber quais os processos em execuo atualmente, quais os UIDs e PIDs correspondentes, entre outros. Se somente ps for digitado na linha de comando, geralmente o sistema mostra quais os processos do usurio. preciso usar uma combinao de opes para obter mais detalhes. As opes mais importantes so os seguintes: a - mostra todos os processos existentes; e - exibe as variveis de ambiente relacionadas aos processos; f - exibe a rvore de execuo dos processos; l - exibe mais campos no resultado; m - mostra a quantidade de memria ocupada por cada processo; u - exibe o nome do usurio que iniciou determinado processo e a hora em que isso ocorreu; x - exibe os processos que no esto associados a terminais; w - se o resultado de processo no couber em uma linha, essa opo faz com que o restante seja exibido na linha seguinte. Das opes acima, a combinao mais usada (pelo menos aqui no InfoWester) aux: ps aux Note que usando a combinao lax, o resultado mostra mais detalhes: ps lax A seguir, segue a descrio dos campos mostrados anteriormente e alguns que s so mostrados com a combinao lax: USER - nome do usurio dono do processo; UID - nmero de identificao do usurio dono do processo; PID - nmero de identificao do processo; PPID - nmero de identificao do processo pai; IntroduoaoLinuxGuilhermeEsmeraldo 41

42 %CPU - porcentagem do processamento usado; %MEM - porcentagem da memria usada; VSZ - indica o tamanho virtual do processo; RSS - sigla de Resident Set Size, indica a quantidade de memria usada (em KB); TTY - indica o identificador do terminal do processo; START - hora em que o processo foi iniciado; TIME - tempo de processamento j consumido pelo processo; COMMAND - nome do comando que executa aquele processo; PRI - valor da prioridade do processo; NI - valor preciso da prioridade (geralmente igual aos valores de PRI); WCHAN - mostra a funo do kernel onde o processo se encontra em modo suspenso; STAT - indica o estado atual do processo, sendo representado por uma letra: R executvel; D - em espera no disco; S - Suspenso; T - interrompido; Z - Zumbi. Essas letras podem ser combinadas e ainda acrescidas de: W - processo paginado em disco; < - processo com prioridade maior que o convencional; N - processo com prioridade menor que o convencional; L - processo com alguns recursos bloqueados no kernel.

4.9 Verificando processos com o topO comando ps trabalha como se tirasse uma fotografia da situao dos processos naquele momento. O comando top, por sua vez, coleta as informaes, mas as atualiza regularmente. Geralmente essa atualizao ocorre a cada 10 segundos. A sintaxe do comando top a seguinte: top -opo Entre as opes, tem-se as que se seguem: -d - atualiza o top aps um determinado perodo de tempo (em segundos). Para isso, informe a quantidade de segundos aps a letra d. Por exemplo: top -d 30; -c - exibe a linha de comando ao invs do nome do processo; -i - faz o top ignorar processos em estado zumbi; -s - executa o top em modo seguro. possvel manipular alguns recursos do comando top atravs das teclas do teclado. Por exemplo, para atualizar imediatamente o resultado exibido, basta pressionar a tecla de espao. Se pressionar a tecla q, o top finalizado. Pressione a tecla h enquanto estiver utilizando o top para ver a lista completa de opes e teclas de atalho.

4.10 Os recursos jobs, fg e bg, fuser, pstree, nohupPara ter ainda mais controle sobre os processos executados no Linux, pode-se utilizar IntroduoaoLinuxGuilhermeEsmeraldo 42

43 os seguintes comandos: jobs, fg e bg, fuser, pstree, nohup. Cada um descrito a seguir: jobs - serve para visualizar os processos que esto parados ou executando em segundo plano (background). Quando um processo est nessa condio, significa sua execuo feita pelo kernel sem que esteja vinculada a um terminal. Em outras palavras, um processo em segundo plano aquele que executado enquanto o usurio faz outra coisa no sistema. Uma dica para saber se o processo est em background verificar a existncia do caractere & no final da linha. Se o processo estiver parado, geralmente a palavra "stopped" aparece na linha, do contrrio, a palavra "running" exibida. A sintaxe do jobs : jobs -opo As opes disponveis so: -l - lista os processos atravs do PID; -r - lista apenas os processos em execuo; -s - lista apenas os processos parados. Se na linha de um processo aparecer o sinal positivo (+), significa que este o processo mais recente a ser paralisado ou a estar em segundo plano. Se o sinal for negativo (-), o processo foi o penltimo. Note tambm que no incio da linha um nmero mostrado entre colchetes. Muitos confundem esse valor com o PID do processo, mas, na verdade, trata-se do nmero de ordem usado pelo jobs. fg e bg: o fg um comando que permite a um processo em segundo plano (ou parado) passar para o primeiro (foreground), enquanto que o bg passa um processo do primeiro plano para o segundo. Para usar o bg, deve-se paralisar o processo. Isso pode ser feito pressionando-se as teclas Ctrl + Z no teclado. Em seguida, digita-se o comando da seguinte forma: bg +nmero O nmero mencionado corresponde ao valor de ordem informado no incio da linha quando o comando jobs usado. Quanto ao comando fg, a sintaxe a mesma: fg +nmero fuser: o comando fuser mostra qual processo faz uso de um determinado arquivo ou diretrio. Sua sintaxe : fuser -opo caminho (do arquivo ou diretrio) Entre as opes, tem-se:

IntroduoaoLinuxGuilhermeEsmeraldo

43

44 -k - finaliza o processo que utiliza o arquivo/diretrio em questo; -i - deve ser usada em conjunto com a opo k e serve para perguntar se a finalizao do processo deve ser feita; -u - mostra o proprietrio do processo; -v - o resultado mostrado em um padro de exibio semelhante ao comando ps. pstree: esse comando mostra processos relacionados em formato de rvore. Sua sintaxe : pstree -opo PID Entre as opes, tem-se: -u - mostra o proprietrio do processo; -p - exibe o PID aps o nome do processo; -c - mostra a relao de processos ativos; -G - usa determinados caracteres para exibir o resultado em um formato grfico. Um detalhe importante: se ao digitar o comando pstree o PID no for informado, todos os processos sero listados. nohup: o comando nohup possibilita ao processo ficar ativo mesmo quando o usurio faz logout. da natureza dos sistemas baseados em Unix interromper processos caso seu proprietrio no esteja mais ativo, por isso, o nohup pode ser muito til. Sua sintaxe : nohup comando Fonte: http://www.infowester.com/linprocessos.php

IntroduoaoLinuxGuilhermeEsmeraldo

44

45

Captulo 5 Gerenciamento de Discos5.1 Montando Parties e DiscosO uso do GNU/Linux (aqui chamado somente de Linux) cresce a cada dia. Muitos usurios, ao visitarem sites sobre o sistema operacional ou ao ouvirem o relato de colegas que j usam o Linux, sentem-se incentivados a experimentarem o sistema. A grande maioria j tem o sistema operacional Windows instalado e decide compartilhar o computador tambm com o Linux. Mas quase sempre, o usurio necessita acessar arquivos presentes na partio do Windows. Isso perfeitamente possvel, atravs de um processo conhecido como montagem da partio. Algumas distribuies Linux montam as parties Windows automaticamente, mas em outras, necessrio que o usurio faa isso manualmente. Esse processo simples e ser explicado aqui. Os procedimentos a seguir devem ser executados como usurio root ou outro que tenha permisses de administrador.

5.1.1 DiscosO primeiro passo saber como identificar os discos (HD, CD-ROM, disquete) no Linux. Tais dispositivos, alm de outros (como a porta LPT1) so tidas como existentes no diretrio /dev/. O HD identificado como o dispositivo hda0 (hdb para outro HD no mesmo computador e assim por diante). O nmero 0, indica a partio no HD. Com isso, a segunda partio deve ser identificada como hda1, a terceira como hda2, enfim. No caso de HDs SCSI, as letras hd devem ser trocadas por sd, ficando da seguinte forma: sda0, sda1, sda2, etc. No caso do drive de disquete, a sigla para sua identificao fd0. Se houver outro drive, este deve ser identificado como fd1. No caso dos CD-ROMS, eles so identificados como HDs. Assim, se por exemplo, em seu computador h um HD e um CD-ROM, o HD poder ser reconhecido como hda e o CD como hdb.

5.1.2 Montando a partioPara a partio Windows, voc deve saber qual das existentes ela. Em nosso exemplo, vamos supr que o Windows est na partio hda0 e o Linux na partio hda1. Tendo cincia disso, agora necessrio que voc crie um diretrio no Linux por onde a partio Windows dever ser acessada, ou seja, o ponto de montagem. Geralmente, este diretrio criado dentro da pasta /mnt/ mas pode ser criado em outro. Para o nosso exemplo, vamos chamar este diretrio de win. Assim, seu caminho /mnt/win. IntroduoaoLinuxGuilhermeEsmeraldo 45

46 O prximo passo comando de montagem: mount - t [tipo] [caminho da partio] [ponto de montagem] Em nosso exemplo, o comando acima ficaria assim: mount -t vfat /dev/hda1 /mnt/win O tipo indica o sistema de arquivos utilizados na partio. Parties fat e fa32 so identificados como vfat. No caso de CD-ROM, o tipo deve ser especificado como iso9660. Por exemplo: mount -t iso9660 /dev/hdb /mnt/cdrom. As parties NTFS podem, teriocamente, serem montadas do mesmo jeito. No entanto, existem problemas de compatibilidade entre o kernel do Linux e o sistema de arquivos NTFS, motivo pelo qual, a montagem desse tipo de partio deve seguir procedimentos especiais, que no sero explicadas aqui. Se a partio que voc deseja montar for ext2 ou ext3, basta especificar estes nomes como tipo.

5.1.3 Montando automaticamenteOs passos explicados anteriormente devem ser repetidos toda vez que voc usar o Linux. Para evitar isso, possvel montar a partio automaticamente, durante o processo de inicializao. Para isso, basta localizar o arquivo fstab. Geralmente ele se encontra dentro do diretrio /etc/. Abra o arquivo e adicione a seguine linha no final (para o nosso exemplo): /dev/hda1 /mnt/win vfat defaults 0 0 Agora vamos entend-lo. A sintaxe da linha : [caminho da partio] [ponto de montagem] [tipo] [opes] [ordem] O campo opes tem as seguintes possibidades: defaults - usa valores padres de montagem; noauto - no monta os dispositivos durante a inicializao. Indicado para drives de disquetes e de CDs; ro - monta somente como leitura; user - d permisso de montagem aos demais usurios do sistema; sync - acrescenta atributos para o perfeito funcionamento de dispositivos mveis, como disquetes e zip drives. possvel usar mais de uma opo ao mesmo tempo, bastando separ-las por vrgula. IntroduoaoLinuxGuilhermeEsmeraldo 46

47 Por exemplo: /dev/hda1 /mnt/win vfat ro,user 0 0 O campo ordem indica em que seqncia os sistemas de arquivo sero verificados. Se deixar o campo em 0 (zero), esse procedimento no ser executado. Sendo assim, na maioria dos casos basta deixar neste valor. Depois que o arquivo fstab tiver sido alterado, na prxima inicializao, a montagem ocorrer automaticamente, exceto se algum passo foi executado de forma errada.

5.1.4 Desmontando partiesPara desmontar uma partio, basta digitar o comando umount mais o caminho da partio. Por exemplo: umount /dev/hda1 Em alguns casos, pode ser necessrio digitar o ponto de montagem ao invs do caminho da partio: umount /mnt/win Fonte: http://www.infowester.com/linmount.php

5.2 Particionando DiscosQuando voc compra um HD, ele no vem preparado para receber dados. Para isso, ele precisa ser particionado. Ao contrrio do que algumas pessoas pensam, no necessrio particionar o disco apenas quando se deseja ter mais de uma unidade em um disco s. Mesmo que voc queira apenas uma, necessrio criar uma partio.

5.2.1 O que uma partioUma partio um espao do disco que se destina a receber um sistema de arquivos ou, em um caso particular que veremos adiante, outras parties. Em sistemas DOS/Windows, cada partio recebe uma letra de unidade (C:, D:, etc). Em linux o esquema diferente. As parties so nomeadas da seguinte forma: nome do dispositivo + nmero de partio. Assim, a primeira partio do primeiro disco IDE (/dev/hda) se chamar /dev/hda1, a segunda /dev/hda2 e assim por diante. Cada disco deve ter no mnimo uma e no mximo 16 parties. IntroduoaoLinuxGuilhermeEsmeraldo 47

48

5.2.2 Tipos de partiesExistem trs tipos possveis de parties: primria, estendida e lgica. 5.2.2.1 Parties primrias Este tipo de partio contm um sistema de arquivos. Em um disco deve haver no mnimo uma e no mximo quatro parties primrias. Se existirem quatro parties primrias, nenhuma outra partio poder existir neste disco. As parties primrias so nomeadas da seguinte forma: * /dev/hda1 * /dev/hda2 * /dev/hda3 * /dev/hda4 Uma dessas parties deve estar marcada como ativa, ou seja, marcada como bootvel para que a BIOS possa iniciar a mquina por ela. 5.2.2.2 Partio estend