Vous êtes sur la page 1sur 45

CURSO DE LINUX BSICO: Mdulo I

Mdulo I

CURSO DE LINUX BSICO: Mdulo I

Universidade Federal de Viosa Nilda de Ftima Ferreira Soares - Reitora Demtrius David da Silva - Vice-Reitor

CEAD - Coodenadoria de Educao Aberta e a Distncia Frederico Vieira Passos - Diretor

VAREJO-JR, C.G; COSTA,M.H. - Curso de Linux - Mdulo I. Viosa, 2010.

Layout: Jos Timteo Jnior Edio de imagens e capa: Diogo Rodrigues Editorao Eletrnica: Diogo Rodrigues e Hamilton Henrique Teixeira Reis Reviso Final: Joo Batista Mota

CEAD - Prdio CEE, Avenida PH Rolfs s/n Campus Universitrio, 36570-000, Viosa/MG Telefone: (31) 3899 2858 | Fax: (31) 3899 3352

CURSO DE LINUX BSICO: Mdulo I

Sumrio
ApreSentAo do CurSo.................................................................................................................4 1.i ntroduo ...............................................................................................................6 1.1 - SiStemA operACionAl.....................................................................................................6 1.2 - o linux..........................................................................................................................6 1.3 - diStribuieS do linux.................................................................................................10 1.4 - SoftwAre livre............................................................................................................13 2.AlgunS ConCeitoS bSiCoS........................................................................................................14 2.1 HArdwAre e SoftwAre.......................................................................................................14 2.2 terminAl virtuAl (ConSole)................................................................................................14 2.3 AviSo de ComAndo (prompt)................................................................................................14 2.4 interpretAdor de ComAndoS...............................................................................................15 2.5 login.................................................................................................................................16 2.6 logout..............................................................................................................................16 2.7 ComAndoS..........................................................................................................................16 2.8 Arquivo.............................................................................................................................17 2.9 diretrio...........................................................................................................................18 2.10 nomeAndo ArquivoS e diretrioS....................................................................................26 2.11 CuringAS..........................................................................................................................26 2.12 nomeS de diSpoSitivoS......................................................................................................27 2.13 liStAndo AS plACAS e outroS HArdwAreS em um ComputAdor.........................................28 3.ComAndoS pArA mAnipulAo de ArquivoS.............................................................................29 3.1CAt.....................................................................................................................................29 3.2 tAC.....................................................................................................................................29 3.3 rm......................................................................................................................................30 3.4 Cp......................................................................................................................................31 3.5 mv......................................................................................................................................32 4.exeCuo de progrAmAS.............................................................................................................33 4.1 exeCutAndo um ComAndo/progrAmA...................................................................................33 4.2 pAtH...................................................................................................................................33 4.3 tipoS de exeCuo de ComAndoS/progrAmAS........................................................................34 4.4 exeCutAndo progrAmAS emSequnCiA.................................................................................34 4.5 pS......................................................................................................................................34 4.6 top....................................................................................................................................35 4.7 Controle dA exeCuo de proCeSSoS.................................................................................36 4.8 noHup...............................................................................................................................39 4.9 niCe e reniCe...................................................................................................................39 4.10 fuSer...............................................................................................................................40 4.11 tloAd...............................................................................................................................41 4.12 vmStAt.............................................................................................................................41 4.13 pidof...............................................................................................................................42 4.14 pStree.............................................................................................................................43 4.15 feCHAndo um progrAmA quAndo no Se SAbe Como SAir....................................................44 4.16 eliminAndo CArACtereS eStrAnHoS....................................................................................45

CURSO DE LINUX BSICO: Mdulo I

MDULO I

Material ampliado e adaptado do Guia Foca Linux

Apresentao do Curso
O material deste curso est organizado em mdulos, para que possa ser disponibilizado na web medida que o curso se desenvolver. Cada mdulo corresponde a uma aula, e vem acompanhado de alguns exerccios, para que o estudante possa revisar o contedo abordado na respectiva aula. Apesar de haver um professor ou monitor disponvel (atravs de e-mail ou frum) para tirar as dvidas dos alunos, imprescindvel que o aluno se esforce para tirar suas dvidas na internet, atravs dos sites de busca e fruns disponveis na web. Isso faz parte do aprendizado e importante para a independncia do profissional de Linux. Visitas ao Google e a listas de discusso fazem parte da vida de um administrador de sistemas Linux se voc est quebrando a cabea com algum problema no seu Linux, provavelmente algum j passou pelo mesmo problema e a soluo est disponvel na Internet. Alm do mais, o linux bem documentado e existem muitos tutoriais e HOW TOs disponveis para quase tudo que se deseja fazer nele. Portanto, a primeira lio deste curso : Google is your friend! (a propsito, buscas em ingls so na maioria das vezes mais eficientes). Em vista dessas buscas por informao na Internet, o estudante e futuro administrador de sistemas linux dever ler constantemente grandes quantidades de informao. muito importante que o estudante no tenha preguia de ler, pois, afinal, esse o nico jeito de se encontrar o que se est procurando, estudar e ento praticar no seu linux. Alm do mais, com as leituras durante a busca de uma soluo para um problema, acaba-se aprendendo muito sobre assuntos relacionados, o que contribui bastante para a evoluo do estudante e do profissional linux. Em caso de dvidas, entre em contato com o professor/monitor do curso ou troque ideias com os outros alunos atravs do nosso frum de discusso. Lembre-se que ensinar uma tima maneira de fixar o aprendizado, e os fruns da Internet so excelentes lugares para aprender, ensinar e se manter atualizado. Dicas para um bom comeo: Recomendo que faa a leitura deste guia e pratique imediatamente o que aprendeu. Isso facilita o entendimento do programa/comando/ configurao. preciso ter interesse em aprender. Se voc tiver vontade em aprender algo, voc ter menos dificuldade do que em algo que no gosta e est se obrigando a aprender. Decorar no adianta: pelo contrrio, s atrapalha o aprendizado. Voc precisa entender o que o comando faz, pois dessa forma estar tambm usando e desenvolvendo sua interpretao, e entender

CURSO DE LINUX BSICO: Mdulo I melhor o assunto (talvez at me d uma fora para melhorar o guia). Curiosidade tambm importante. No desanime vendo outras pessoas que sabem mais que voc, lembre-se que ningum nasce sabendo. Uma pessoa pode ter mais experincia em um assunto do sistema, como compilao de programas, configurao, etc., e voc pode ter mais interesse em redes, por exemplo. Ningum pode saber tudo da noite para o dia. No procure saber tudo sobre o sistema de uma s vez, seno voc no entender nada. Caso tenha dvidas sobre o sistema, procure ler novamente a seo do guia. Se mesmo assim no tenha entendido, procure ajuda nas pginas de manual. Certamente voc buscar documentos na Internet que falem sobre algum assunto que este guia ainda no explica. Muito cuidado! O Linux um sistema que cresce muito rapidamente: a cada semana uma nova verso lanada, novos recursos so adicionados... seria maravilhoso se a documentao fosse atualizada com a mesma frequncia. Infelizmente a atualizao da documentao no segue o mesmo ritmo (principalmente aqui no Brasil). comum voc encontrar na Internet documentos da poca quando o kernel (o ncleo ou a base de um sistema operacional) estava na verso 2.0.20, 2.0.30. Eles so teis para pessoas que usem as verses antigas do Kernel Linux, mas podem trazer problemas ou causar m impresso do Linux em outras pessoas. Para evitar tais problemas, verifique a data de atualizao do documento. O Linux considerado um sistema mais difcil do que os outros, mas isso porque ele requer que a pessoa realmente aprenda e conhea computadores e seus perifricos antes de fazer qualquer coisa (principalmente se voc um tcnico em manuteno, redes ou instalaes e deseja oferecer suporte profissional a esse sistema). Voc conhecer mais sobre computadores, redes, hardware, software, discos, saber avaliar os problemas e a buscar a melhor soluo. Enfim, as possibilidades de crescimento neste sistema operacional dependem do conhecimento, interesse e capacidade de cada um. A interface grfica existe, mas os melhores recursos e flexibilidade esto na linha de comando. Voc pode ter certeza que o aprendizado no Linux ajudar a ter sucesso e menos dificuldade em usar qualquer outro sistema operacional. Pea ajuda a outros usurios do Linux quando estiver em dvida ou no souber fazer alguma coisa no sistema. Voc pode entrar em contato com outros usurios atravs de listas de discusso.

Boa Sorte e bem vindo ao Linux!

CURSO DE LINUX BSICO: Mdulo I

Introduo

Ateno

Este captulo traz uma explicao bsica sobre o sistema operacional Linux e algumas das principais distribuies existentes

1.1 Sistema Operacional


O Sistema Operacional um programa (software) ou um conjunto de programas cuja funo servir de interface entre computador e usurio. comum utilizar a abreviatura SO (em portugus) ou OS (do ingls Operating System). Segundo Tanenbaum e Silberschatz, existem dois modos distintos de conceituar um sistema operacional: (i) pela perspectiva do usurio (viso top-down), uma abstrao do hardware, fazendo o papel de intermedirio entre o aplicativo (programa) e os componentes fsicos do computador (hardware); (ii) numa viso bottom-up, de baixo para cima, um gerenciador de recursos, ou seja, controla quais aplicaes (processos) podem ser executadas, quando, que recursos (memria, disco, perifricos) podem ser utilizados. Portanto, se no existissem os sistemas operacionais, todo programa desenvolvido deveria saber como comunicar-se com os dispositivos do computador que precisasse utilizar. No Linux, o Kernel mais o conjunto de ferramentas GNU compem o Sistema Operacional, por isso podemos cham-lo de GNU/Linux. O kernel poder ser construdo de acordo com a configurao do seu computador e dos perifricos que ele possui.

1.2 O Linux
O termo Linux refere-se a qualquer sistema operacional do tipo Unix que utiliza o ncleo Linux. um dos mais proeminentes exemplos de desenvolvimento com cdigo aberto e de software livre. O seu cdigo fonte est disponvel sob GPL (GNU General Public License (Licena Pblica Geral)) para qualquer pessoa utilizar, estudar, modificar e distribuir livremente. GNU/Linux refere-se a qualquer sistema operacional do tipo Unix que utiliza o ncleo Linux e tambm os programas de sistema GNU. Como os casos de sistemas de ncleo Linux sem os programas de sistema GNU so raros, frequentemente GNU/Linux e Linux so sinnimos. Inicialmente desenvolvido e utilizado por nichos de entusiastas em computadores pessoais, o sistema Linux passou a ter a colaborao de grandes empresas, como a IBM, a Sun Microsystems, a Hewlett-Packard, e a Novell, ascendendo como principal sistema operacional para servidores oito dos dez servios de hospedagem mais confiveis da Internet utilizam o sistema Linux em seus servidores web. O Linux tornou-se o sistema capaz de funcionar no maior nmero de arquiteturas computacionais disponveis. utilizado em aparelhos variando desde supercomputadores at celulares, e vem se tornando bastante popular no mercado de computadores pessoais. O Linux , geralmente, considerado o Ncleo (ou cerne, corao,

CURSO DE LINUX BSICO: Mdulo I do ingls kernel) do sistema operacional. Entretanto, segundo Tanenbaum e Schilberschatz, ele pode ser considerado o prprio SO, quando este definido como gerenciador de recursos de hardware. Nos meios de comunicao, Linux refere-se ao sistema completo, incluindo o ncleo Linux e outros programas de sistema. Sistemas completos construdos em torno do kernel Linux majoritariamente utilizam o sistema GNU, que oferece um interpretador de comandos, utilitrios, bibliotecas e compiladores. Richard M. Stallman, criador e lder do projeto GNU, solicita aos utilizadores que se refiram aos sistemas baseados no Linux como o sistema completo GNU/Linux. A maioria dos sistemas tambm inclui ferramentas e utilitrios baseados no BSD (Berkeley Software Distribution um Sistema Operacional UNIX desenvolvido pela Universidade de Berkeley, na Califrnia) e tipicamente usam XFree86 ou X.org para oferecer a funcionalidade dos sistemas de janelas X - interface grfica. O Linux hoje funciona em dezenas de plataformas, desde mainframes at um relgio de pulso, passando por vrias arquiteturas: x86 (Intel, AMD), x86-64 (Intel EM64T, AMD64), StrongARM, PowerPC, Alpha etc., com grande penetrao tambm em sistema embutidos, como handheld, PVR, vdeo-jogos e centros multimdia, entre outros. 1.2.1 Histria do Linux O Kernel do Linux foi, originalmente, escrito por Linus Torvalds, do Departamento de Cincia da Computao da Universidade de Helsinki, Finlndia, com a ajuda de vrios programadores voluntrios ligados pela Usenet. Linus Torvalds comeou o desenvolvimento do kernel como um projeto particular, inspirado pelo seu interesse no Minix, um pequeno sistema UNIX desenvolvido por Andrew S. Tanenbaum. Ele limitou-se a criar, nas suas prprias palavras, um Minix melhor que o Minix (a better Minix than Minix). E depois de algum tempo de trabalho no projeto, sozinho, ele enviou a seguinte mensagem para comp.os.minix: Voc suspira pelos bons tempos do Minix-1.1, quando os homens eram homens e escreviam seus prprios device drivers? Voc est sem um bom projeto em mos e est desejando trabalhar num S.O. que voc possa modificar de acordo com as suas necessidades? Est achando frustrante quando tudo funciona no Minix? Chega de noite ao computador para conseguir que os programas funcionem? Ento esta mensagem pode ser exatamente para voc. Como eu mencionei h um ms atrs, estou trabalhando numa verso independente de um S.O. similar ao Minix para computadores AT-386. Ele est, finalmente, prximo do estado em que poder ser utilizado (embora possa no ser o que voc est esperando), e eu estou disposto a disponibilizar o cdigo-fonte para ampla distribuio. Ele est na verso 0.02... contudo eu tive sucesso ao executar bash, gcc, gnu-make, gnu-sed, compresso e outras coisas nele. No dia 5 de outubro de 1991, Linus Torvalds anunciou a primeira verso oficial do Linux, (0.02). Desde ento, muitos programadores tm respondido ao seu chamado, e tm ajudado a fazer do Linux o sistema operacional que hoje. 1.2.2 Algumas Caractersticas do Linux livre e desenvolvido voluntariamente por programadores experientes, hackers e colaboradores espalhados ao redor do mundo, que tm como objetivo a contribuio para a melhoria e crescimen-

CURSO DE LINUX BSICO: Mdulo I to desse sistema operacional. Muitos deles estavam cansados do excesso de propaganda e baixa qualidade de sistemas comerciais existentes. Convivem sem nenhum tipo de conflito com outros sistemas operacionais (com o DOS, Windows, OS/2) no mesmo computador. Multitarefa real (capaz de executar vrias tarefas ao mesmo tempo) Multiusurio (suporta mais de um usurio ao mesmo tempo) Suporte a nomes extensos de arquivos e diretrios (255 caracteres). Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha, PowerPc, ARM, Unix, Windows e DOS. Proteo entre processos executados na memria RAM. Suporte a mais de 63 terminais virtuais (consoles). Modularizao - O GNU/Linux somente carrega para a memria o que usado durante o processamento, liberando totalmente a memria assim que o programa/dispositivo finalizado. Devido modularizao, os drivers dos perifricos e recursos do sistema podem ser carregados e removidos completamente da memria RAM a qualquer momento. Os drivers (mdulos) ocupam pouco espao quando carregados na memria RAM (cerca de 6Kb para a Placa de rede NE 2000, por exemplo). No h a necessidade de se reiniciar o sistema aps modificar a configurao de qualquer perifrico ou parmetros de rede. Somente necessrio reiniciar o sistema no caso de uma instalao interna de um novo perifrico, ou falha em algum hardware (como a queima do processador ou placa me). No preciso um processador potente para funcionar. O sistema roda bem em computadores 386Sx 25 com 4MB de memria RAM (sem rodar o sistema grfico X, que recomendado 8MB de RAM). J pensou no seu desempenho em um AM2 ou um Core 2 Duo? O crescimento e novas verses do sistema no provocam lentido, pelo contrrio, a cada nova verso os desenvolvedores procuram buscar maior compatibilidade, acrescentar recursos teis e melhorar o desempenho do sistema (como o que aconteceu na passagem do kernel 2.0.x para 2.2.x). No requerida uma licena para seu uso. O GNU/Linux licenciado de acordo com os termos da GPL. Acessa corretamente discos formatados pelo DOS, Windows, Novell, OS/2, NTFS, SunOS, Amiga, Atari, Mac etc. Utiliza permisses de acesso a arquivos, diretrios e programas em execuo na memria RAM. O LINUX NO VULNERVEL A VRUS! Devido separao de privilgios entre processos e respeitadas as recomendaes padro de poltica de segurana e uso de contas privilegiadas (como a de root, como veremos adiante), programas como vrus tornam-se inteis, pois tem sua ao limitada pelas restries de acesso do sistema de arquivos e execuo. Frequentemente so criados exploits que tentam se aproveitar de falhas existentes em sistemas desatualizados e us-las para danificar o sistema. Erroneamente esse tipo de ataque classificado como vrus por pessoas mal informadas e so resolvidas com sistemas bem mantidos. Em geral, usando uma boa distribuio que tenha um bom sistema de atualizao resolve em 99.9% os problemas com exploits. Qualquer programa (nocivo ou no) poder alterar partes do sistema que possui permisses (ser abordado como alterar permisses e tornar seu sistema mais restrito no decorrer do curso). A rede TCP/IP (TCP (Transmission Control Protocol) e IP (Internet Protocol). O TCP/IP um conjunto (ou pilha) de protocolos de co-

CURSO DE LINUX BSICO: Mdulo I municao entre computadores em rede. O conjunto de protocolos pode ser visto como um modelo de camadas, onde cada camada responsvel por um grupo de tarefas, fornecendo um conjunto de servios bem definidos para o protocolo da camada superior. mais rpida que no Windows e tem suas pilhas constantemente melhoradas. O GNU/Linux tem suporte nativo a redes TCP/IP e no depende de uma camada intermediria, como o WinSock. Em acessos Internet via modem, a velocidade de transmisso 10% maior. Roda aplicaes DOS atravs do DOSEMU, QEMU, BOCHS. Para se ter uma idia, possvel dar o boot em um sistema DOS qualquer dentro dele e ao mesmo tempo usar a multitarefa deste sistema. Roda aplicaes Windows atravs do WINE. Suporte a dispositivos infravermelho. Suporte a rede via rdio amador. Suporte a dispositivos Plug-and-Play (dispositivos que so reconhecidos e configurados automaticamente pelo computador). Suporte a dispositivos USB. Suporte a Fireware (Tecnologia semelhante a do USB, porm com transferncia mais rpida dos dados). Dispositivos Wireless. Vrios tipos de firewalls (dispositivo de rede para aplicar poltica de segurana) de alta qualidade e com grande poder de segurana de graa. Possui recursos para atender a mais de um endereo IP na mesma placa de rede, sendo muito til para situaes de manuteno em servidores de redes ou para a emulao (simulao feita por um software que reproduz as funes de um determinado ambiente, a fim de permitir a execuo de outros softwares sobre ele) de mais computadores virtualmente. Os servidores WEB e FTP podem estar localizados no mesmo computador, mas o usurio que se conecta tem a impresso que a rede possui servidores diferentes. O sistema de arquivos usado pelo GNU/Linux (Ext2) organiza os arquivos de forma inteligente, evitando a fragmentao e fazendo dele um poderoso sistema para gravaes intensivas e aplicaes multi-usurias exigentes. Permite a montagem de servidores Web, E-mail, News e outros com um baixo custo e alta performance. O melhor servidor Web do mercado, o Apache, distribudo gratuitamente junto com a maioria das distribuies Linux. O mesmo acontece com o Sendmail. Por ser um sistema operacional de cdigo aberto, voc pode ver o que o cdigo fonte (instrues digitadas pelo programador) faz e adapt-lo s suas necessidades ou de sua empresa. Essa caracterstica uma segurana a mais para quem precisa se defender contra roubo de dados (voc no sabe o que um sistema sem cdigo fonte faz na realidade, enquanto est processando o programa). Suporte a diversos dispositivos e perifricos disponveis no mercado, tanto os novos como obsoletos. Pode ser executado em vrias arquiteturas diferentes (Intel, Macintosh, Alpha e Arm por exemplo). Existem consultores tcnicos especializados no suporte ao sistema espalhados por todo o mundo.

Existem tambm muitas outras caractersticas, as quais voc descobrir durante o uso do sistema.

CURSO DE LINUX BSICO: Mdulo I

1.3 Distribuies do Linux


S o kernel GNU/Linux no suficiente para se ter uma sistema funcional, apesar de ser o principal. Existem grupos de pessoas, empresas e organizaes que decidem distribuir o Linux junto com outros programas essenciais (como, por exemplo, editores grficos, planilhas, bancos de dados, ambientes de programao, formatao de documentos e firewalls). Esse o significado bsico de distribuio. Cada distribuio tem sua caracterstica prpria, como o sistema de instalao, o seu objetivo, a localizao de programas, nomes de arquivos de configurao. A escolha de uma distribuio pessoal e depende das necessidades de cada um. Algumas distribuies muito conhecidas so: Slackware, Debian, Red Hat, Mandriva, Suse, Ubuntu, Gentoo, todas usando o SO Linux como kernel principal (a Debian uma distribuio independente de kernel e pode ser executada sob outros kernels, como o GNU hurd). A escolha de sua distribuio deve ser feita com muita ateno. No adianta muito recorrer a chats e fruns sobre qual a melhor distribuio, muito menos ser levado pelas propagandas ou pelo vizinho. O melhor caminho para a escolha da distribuio perguntar as caractersticas de cada uma e o porqu dessa pessoa gostar dela. No pergunte qual a melhor verso, pois cada um usa uma distribuio que se encaixa de acordo com suas necessidades, portanto, essa mesma distribuio pode no ser a melhor para lhe atender. Seguem abaixo as caractersticas de algumas distribuies, seguidas do endereo do site principal: Debian (Saiba mais em http://www.debian.org/) Distribuio desenvolvida e atualizada atravs do esforo de voluntrios espalhados ao redor do mundo, seguindo o estilo de desenvolvimento GNU/Linux. Por esse motivo, foi adotada como a distribuio oficial do projeto GNU. Possui suporte para lngua Portuguesa, tem suporte a dez arquiteturas diferentes (como i386, Alpha, Sparc, PowerPc, Macintosh, Arm) e aproximadamente 15 sub-arquiteturas. A instalao da distribuio pode ser feita tanto atravs de Disquetes, CDROM, Tftp, Ftp, NFS ou atravs da combinao de vrios destes em cada etapa de instalao. Possui tanto ferramentas para administrao de redes e servidores quanto para desktops, estaes multimdia, jogos, desenvolvimento e web. A atualizao da distribuio ou de pacotes individuais pode ser feita facilmente atravs de dois comandos, no requerendo adquirir um novo CD para usar a ltima verso da distribuio. a nica distribuio no comercial onde todos podem contribuir com seu conhecimento para o seu desenvolvimento. Para gerenciar os voluntrios, conta com centenas de listas de discusso envolvendo determinados desenvolvedores das mais diversas partes do mundo. Para atingir um alto grau de confiabilidade, so feitos extensivos testes antes do lanamento de cada verso. Os erros encontradas nos pacotes podem ser relatados atravs de um sistema de tratamento de falhas, que encaminha a falha encontrada diretamente ao responsvel para avaliao e correo. Qualquer um pode receber a lista de falhas ou sugestes sobre a distribuio: basta cadastrar-se numa das listas de discusso que tratam especificamente da soluo de falhas encontradas na distribuio (disponvel na pgina principal da distribuio). Os pacotes podem ser instalados atravs de Tarefas, contendo selees de pacotes de acordo com a utilizao do computador, (servidor Web, desenvolvimento, TeX, jogos, desktop etc.) ou atravs de uma seleo indi-

10

CURSO DE LINUX BSICO: Mdulo I vidual de pacotes, garantindo que somente os pacotes selecionados sejam instalados. Existe um time de desenvolvedores com a tarefa especfica de monitorar atualizaes de segurana em servios (apache, sendmail, e todos os outros pacotes) que possam comprometer o servidor, deixando-o vulnervel a ataques. Assim que uma falha descoberta, enviado uma alerta (DSA - Debian Security Alert) e disponibilizada uma atualizao para correo das diversas verses da Debian. Isso geralmente feito em menos de 48 horas desde a descoberta da falha at a divulgao da correo. Como quase todas as falhas so descobertas em programas, esse mtodo tambm pode ser usado por administradores de outras distribuies para manterem seu sistema seguro e atualizado. O suporte ao usurio e o desenvolvimento da distribuio so feitos atravs de listas de discusses e canais IRC. Slackware (Saiba mais em http://www.slackware.com/) Distribuio desenvolvida por Patrick Volkerding, a fim de alcanar facilidade de uso e estabilidade como prioridades principais. Foi a primeira distribuio a ser lanada no mundo e costuma trazer o que h de mais novo enquanto mantm uma certa tradio, provendo simplicidade, facilidade de uso e, com isso, flexibilidade e poder. Desde a primeira verso, lanada em Abril de 1993, o Projeto Slackware Linux tem buscado produzir a distribuio Linux mais UNIX-like, ou seja, mais parecida com UNIX. O Slackware segue os padres Linux como o Linux File System Standard, que um padro de organizao de diretrios e arquivos para as distribuies. Enquanto as pessoas diziam que a Red Hat era a melhor distribuio para o usurio iniciante, o Slackware era o melhor para o usurio mais velho, ou seja, programadores e administradores. SuSE (Saiba mais em http://www.suse.com/) Distribuio comercial Alem com a coordenao sendo feita atravs dos processos administrativos dos desenvolvedores e de seu brao norte-americano. O foco da Suse o usurio com conhecimento tcnico no Linux e no o usurio iniciante no Linux (at a verso 6.2). Sua instalao pode ser feita via CD-ROM ou DVD ( a primeira distribuio com instalao atravs de DVD). O sistema de gerenciamento de pacotes o RPM padronizado. A seleo de pacotes durante a instalao pode ser feita atravs da seleo do perfil de mquina (developer, estao kde, grficos, estao gnome, servidor de rede, etc.) ou atravs da seleo individual de pacotes. A atualizao da distribuio pode ser feita atravs do CD-ROM de uma nova verso ou baixando pacotes pela internet. Usurios registrados tm direito a suporte de instalao via e-mail. A base de dados de suporte tambm excelente e est disponvel na web para qualquer usurio, independente de registro. Red Hat Enterprise Linux (Saiba mais em http://www.redhat.com/) Distribuio comercial suportada pela Red Hat e voltada a servidores de grandes e mdias empresas. Tambm conta com uma certificao chamada RHCE, especfica desta distro. Ela no est disponvel para download, apenas vendida a custos desde 179 dlares (a verso workstation) at 1499 dlares (advanced server).

11

CURSO DE LINUX BSICO: Mdulo I

Fedora (Saiba mais em http://fedora.redhat.com/) O Fedora Linux a distribuio de desenvolvimento aberto patrocinada pela RedHat e pela comunidade. Criada em 2002, baseada na verso da antiga linha de produtos RedHat Linux, a distribuio mais utilizada do mundo. Ela no suportada pela Red Hat como distribuio oficial (a empresa suporta apenas a linha Red Hat Enterprise Linux), devendo obter suporte atravs da comunidade ou outros meios. A distribuio Fedora d prioridade ao uso do computador como estao de trabalho. Alm de contar com uma ampla gama de ferramentas de escritrio, possui funes de servidor e aplicativos para produtividade e desenvolvimento de softwares. Considerado um dos sistemas mais fceis de instalar e utilizar, inclui traduo para portugus do Brasil e suporte s plataformas Intel e 64 bits. Por basear-se no RedHat, o Fedora conta com um o up2date (um software para manter o sistema atualizado) e utiliza pacotes de programas no formato RPM, um dos mais comuns. Por outro lado, no possui suporte a MP3, Video Players ou NTFS (Discos do Windows) em virtude de problemas legais, sendo necessrio o download de alguns plugins para a utilizao destas funes. O Fedora no distribudo oficialmente atravs de mdias ou CDs. Se voc quiser obt-lo, ter de procurar distribuidores independentes ou fazer o download dos quatro CDs pelo site oficial. Kurumin (Saiba mais em http://guiadohardware.net/kurumin/index.php/) Uma distribuio baseada em Debian que roda diretamente a partir do CD, sendo ideal para quem deseja testar uma distribuio Linux. Caso goste, o usurio pode instal-la diretamente no disco rgido. Distribuda a partir do CD, de muito fcil utilizao e suporta uma boa quantidade de hardwares disponveis. A verso instalada possui, inclusive, suporte para a maioria dos winmodens encontrados no Brasil. Mandriva O Mandriva uma das distribuies Linux mais fceis de usar, mais robustas e antigas, apesar da popularidade e do uso serem baixos no Brasil. Aqui (no Brasil) as distros mais usadas so as baseadas em Debian, mas pouca gente (nova) sabe que Conectiva e Mandrake j tiveram seu grande reinado. O antigo Mandrake foi uma das primeiras distribuies a usar um instalador grfico e era, na poca, de muito fcil operao, quando a maioria dos usurios de Linux era de tcnicos e as distribuies, obviamente, voltadas para eles. Existia, na poca, a Conectiva, a primeira distribuio nacional, com um suporte gigantesco aos usurios brasileiros e lder na Amrica Latina. Enfim, no dia 24 de fevereiro de 2005, a MandrakeSoft anunciou a compra da Conectiva, por US$2,3 milhes. A partir da, a empresa passou a se chamar Mandriva. O Mandriva possui duas verses: o pacote comercial, composto pelo Discovery (iniciantes), Powerpack (para experientes) e Powerpack+ (pequenas e mdias empresas), todos eles pagos. J o Mandriva Free no contm aplicativos ou drivers proprietrios nem suporte oficial, porm tem o download disponibilizado livremente.

12

CURSO DE LINUX BSICO: Mdulo I Gentoo Linux uma distribuio gratuita do sistema operacional GNU/Linux baseada na GNU General Public License. O diferencial do Gentoo Linux em relao s outras distribuies est no uso da ferramenta Portage, que d ao usurio a possibilidade de ter um sistema adaptado ao seu perfil, pois cada pacote compilado durante a instalao, de forma automatizada, otimizada e com todas as dependncias resolvidas. Devido a essas caractersticas, o Gentoo Linux considerado uma meta-distribuio (Meta-distribuio um termo referente a uma distribuio de software adaptvel e capaz de construir a si mesmo, baseado nas especificaes dadas pelo usurio). Essa distribuio direcionada para usurios avanados ou experientes, devido complexidade de executar tarefas que em outras distribuies so realizadas de forma simples. Porm, aconselhada tambm a todos que queiram saber o mximo sobre GNU/Linux. Quando bem instalada e configurada, a distribuio se torna mais veloz, correndo programas emulados mais rpido que o prprio Windows. A distribuio adotada neste curso a Debian. Entretanto, boa parte do contedo abordado vlido para qualquer distribuio Linux.

Ateno

1.4 Software Livre


Software livre, segundo a definio criada pela Free Sofware Foudation, qualquer programa de computador que pode ser usado, copiado, estudado, modificado e redistribudo sem nenhuma restrio. Essa liberdade um conceito central, que se ope ao modelo de software proprietrio, mas no ao software que vendido almejando lucro (software comercial). A maneira usual de distribuio de software livre anexar a ele uma licena de software livre e tornar o cdigo fonte do programa disponvel. O software livre tambm conhecido pelo acrnimo FLOSS (do ingls Free/Libre Open Source Software). Um software considerado como livre quando atende aos quatro tipos de liberdade para usurios do software definidos pela Free Software Foundation: A liberdade para executar o programa, para qualquer propsito (liberdade n 0) A liberdade para estudar como o programa funciona e adapt-lo para as suas necessidades (liberdade n1). Acesso ao cdigo-fonte um pr-requisito para esta liberdade A liberdade de redistribuir cpias de modo que voc possa ajudar ao seu prximo (liberdade n2) A liberdade de aperfeioar o programa e liberar os seus aperfeioamentos, de modo que toda a comunidade se beneficie (liberdade n3). O acesso ao cdigo-fonte um pr-requisito para esta liberdade.

13

CURSO DE LINUX BSICO: Mdulo I

Alguns Conceitos Bsicos

Ateno

So apresentados, neste captulo, alguns conceitos relacionados ao computador e ao sistema operacional.

2.1 Hardware e Software


Hardware significa parte fsica do computador (disquete, impressoras, monitores, placa me, placa de fax, discos rgidos, etc). Softwares so os programas usados no computador (sistema operacional, processador de textos, planilha, banco de dados, scripts, comandos, etc).

2.2 Terminal Virtual (console)


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

2.3 Aviso de comando (Prompt)

Ateno

Aviso de comando (ou Prompt), a linha mostrada na tela do terminal para digitao de comandos, que sero passados ao interpretador de comandos para sua execuo. A posio onde o comando ser digitado marcada com um trao piscante chamado de cursor.

necessrio o uso do cursor para sabermos onde iniciar a digitao de textos e nos orientarmos quanto posio na tela. O aviso de comando do usurio root identificado por uma # (tralha),

14

CURSO DE LINUX BSICO: Mdulo I e o aviso de comando de usurios identificado pelo smbolo $. Isso padro em sistemas UNIX. Voc pode retornar a comandos j digitados pressionando as teclas Seta para cima / Seta para baixo. A tela pode ser rolada para baixo ou para cima segurando a tecla SHIFT e pressionando PGUP ou PGDOWN. Isto til para ver textos que rolaram rapidamente para cima. Logo abaixo, veja algumas dicas sobre a edio da linha de comandos (no necessrio se preocupar em decor-los): Pressione a tecla Back Space (<--) para apagar um caractere esquerda do cursor. Pressione a tecla Del para apagar o caractere acima do cursor. Pressione CTRL+A para mover o cursor para o inicio da linha de mandos. Pressione CTRL+E para mover o cursor para o fim da linha de comandos. Pressione CTRL+U para apagar o que estiver esquerda do cursor. O contedo apagado copiado para uso com CTRL+y. Pressione CTRL+K para apagar o que estiver direita do cursor. O contedo apagado copiado para uso com CTRL+y. Pressione CTRL+L para limpar a tela e manter o texto que estiver sendo digitado na linha de comando (parecido com o comando clear). Pressione CTRL+Y para colocar o texto que foi apagado na posio atual do cursor.

2.4 Interpretador de comandos


Tambm conhecido como shell, o interpretador de comandos o programa responsvel em interpretar as instrues enviadas pelo usurio e seus programas ao sistema operacional (o kernel). Ele que executa comandos lidos do dispositivo de entrada padro (teclado) ou de um arquivo executvel. a principal ligao entre o usurio, os programas e o kernel. O GNU/Linux possui diversos tipos de interpretadores de comandos, sendo que entre eles o mais usado o bash. Os comandos podem ser enviados de duas maneiras para o interpretador: interativa e no-interativa: Interativa Os comandos so digitados no aviso de comando e passados ao interpretador de comandos um a um. Neste modo, o computador depende do usurio para executar uma tarefa, ou o prximo comando. No-interativa So usados arquivos de comandos criados pelo usurio (scripts) para o computador executar tais comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um, e dependendo do trmino do comando, o script pode checar qual ser o prximo comando que ser executado e dar continuidade ao processamento. Este sistema til quando temos que digitar por vrias vezes seguidas um mesmo comando, ou para compilar algum programa complexo, por exemplo. O shell Bash possui ainda outra caracterstica interessante: A completao dos nomes. Isto feito pressionando-se a tecla TAB. Por exemplo, se digitar ls tes e pressionar <tab>, o Bash localizar todos os arquivos que iniciam com tes e completar o restante do nome. Caso a completao de nomes encontre mais do que uma expresso que satisfaa a pesquisa, ou nenhuma, emitido um beep. Se voc apertar novamente a tecla TAB

15

CURSO DE LINUX BSICO: Mdulo I imediatamente depois do beep, o interpretador de comandos ir listar as diversas possibilidades que satisfaam a pesquisa, para que voc possa escolher a que lhe interessa. A completao de nomes funciona sem problemas para comandos internos. Exemplos: ech(pressione TAB). ls tes(pressione TAB)

2.5 Login
Login a entrada no sistema, quando voc digita seu nome e senha.

2.6 Logout
Logout a sada do sistema. A sada do sistema feita pelos comandos logout, exit ou CTRL+D ou quando o sistema reiniciado ou desligado.

2.7 Comandos
Comandos so ordens que passamos ao sistema operacional para executar uma determinada tarefa. Cada comando tem uma funo especfica devemos saber a funo de cada comando e escolher o mais adequado para fazer o que desejamos,. Por exemplo: - ls - Mostra arquivos de diretrios - cd - Para mudar de diretrio Este material inclui, mais adiante, uma lista de vrios comandos organizados por categoria com a explicao sobre o seu funcionamento e as opes aceitas (incluindo alguns exemplos). sempre usado um espao depois do comando para separ-lo de uma opo ou parmetro que ser passado para o processamento. Um comando pode receber opes e parmetros: opes As opes so usadas para controlar como o comando ser executado. Por exemplo, para fazer uma listagem mostrando o dono, grupo e tamanho dos arquivos voc deve digitar ls -l. Opes podem ser passadas ao comando atravs de um - ou --: Opo identificada por uma letra. Podem ser usadas mais de uma opo com um nico hfen. O comando ls -l -a a mesma coisa de ls -la -Opo identificada por um nome. O comando ls --all equivalente a ls

-a.

Pode ser usado tanto - como --, mas h casos em que somente - ou -- esta disponvel. parmetros Um parmetro identifica o caminho, origem, destino, entrada padro ou sada padro que ser passada ao comando. Se voc digitar: ls /usr/doc/copyright, /usr/doc/copyright ser o parmetro passado ao comando ls. Neste caso queremos que ele liste os arquivos do diretrio /usr/doc/copyright. normal errar o nome de comandos, mas no se preocupe. Quando isto acontecer, o sistema mostrar a mensagem command not found (co-

16

CURSO DE LINUX BSICO: Mdulo I mando no encontrado) e voltar ao aviso de comando. As mensagens de erro no fazem nenhum mal ao seu sistema, somente dizem que algo deu errado para que voc possa corrigir e entender o que aconteceu. No GNU/ Linux, voc tem a possibilidade de criar comandos personalizados usando outros comandos mais simples (isto ser visto mais adiante). Os comandos se encaixam em duas categorias: Comandos Internos e Comandos Externos. Por exemplo, em ls -la /usr/doc, ls o comando, -la a opo passada ao comando, e /usr/doc o diretrio passado como parmetro ao comando ls.

Ateno

2.8 Arquivo
onde gravamos nossos dados. Um arquivo pode conter um texto feito por ns, uma msica, um programa, uma planilha e vrios outras informaes. Cada arquivo deve ser identificado por um nome, para que ele possa ser encontrado facilmente quando for utilizado. Se estiver fazendo um trabalho de histria, nada melhor que salv-lo com o nome historia. Um arquivo pode ser binrio ou texto (para detalhes veja Arquivo texto e binrio, Seo 2.2.3). O GNU/Linux Case Sensitive, ou seja, ele diferencia letras maisculas e minsculas nos nomes de arquivos. O arquivo historia completamente diferente de Historia. Essa regra tambm vlida para os comandos e diretrios. Prefira, sempre que possvel, usar letras minsculas para identificar seus arquivos, pois quase todos os comandos do sistema esto em minsculas. Um arquivo oculto no GNU/Linux identificado por um . no incio do nome (por exemplo, .bashrc). Arquivos ocultos no aparecem em listagens normais de diretrios. Deve ser usado o comando ls a para tambm listar arquivos ocultos. 2.8.1 Extenso de arquivos A extenso serve para identificar o tipo do arquivo. A extenso formada pelas letras aps um . no nome de um arquivo. Por exemplo: relatrio.txt - O .txt indica que o contedo um arquivo texto. script.sh - Arquivo de Script (interpretado por /bin/sh). system.log - Registro de algum programa no sistema. arquivo.gz - Arquivo compactado pelo utilitrio gzip. index.html - Pgina de Internet (formato Hypertexto). A extenso de um arquivo tambm ajuda identificar que programa precisa ser utilizado para abri-lo. Por exemplo, o arquivo relatrio.txt um texto simples e podemos ver seu contedo atravs do comando cat. J o arquivo index.html contm uma pgina de Internet e precisaremos de um navegador para poder visualiz-lo (como o lynx, Firefox ou o Netscape). A extenso (na maioria dos casos) no requerida pelo sistema operacional GNU/Linux, mas conveniente o seu uso para determinarmos facilmente o tipo de arquivo e de que programa precisaremos para abri-lo. 2.8.2 Tamanho de arquivos A unidade de medida padro nos computadores o bit. A um conjunto de 8 bits ns chamamos de byte. Cada arquivo/diretrio possui um tamanho que indica o espao que ele ocupa no disco, e isto medido em bytes. O byte representa uma letra em texto. Assim, se voc criar um arquivo

17

CURSO DE LINUX BSICO: Mdulo I vazio, escrever o nome Linux e salvar o arquivo, este ter o tamanho de 5 bytes. Espaos em branco e novas linhas tambm ocupam bytes. Alm do byte, existem as medidas Kbytes, Mbytes, Gbytes. Os prefixos K (quilo), M (mega), G (giga), T (tera) vm da matemtica. O K significa multiplicar por 10^3, o M por 10^6, e assim por diante. Estas letras servem para facilitar a leitura em arquivos de grande tamanho. Um arquivo de 1K a mesma coisa de um arquivo de 1024 bytes. Uma forma que pode inicialmente lhe ajudar a lembrar: K vem de Kilo que igual a 1000 - 1Kilo igual

Ateno

Por exemplo, em ls -la /usr/doc, ls o comando, -la a opo passada ao comando, e /usr/doc o diretrio passado como parmetro ao comando ls.

a 1000 gramas, certo?. Da mesma forma, 1Mb (ou 1M) igual a um arquivo de 1024K ou 1024x1024 = 1.048.576 bytes 1Gb (ou 1G) igual a um arquivo de 1024Mb ou 1048576Kb ou 1.073.741.824 bytes (1 Gb igual a 1.073.741.824 bytes; so muitos nmeros!). Deu pra notar que mais fcil escrever e entender como 1Gb do que como 1.073.741.824 bytes. A lista completa em ordem progressiva das unidades de medida a seguinte: Smb. 10^ 2^ Nome K 3 10 Quilo M 6 20 Mega G 9 30 Giga T 12 40 Tera P 15 50 Peta E 18 60 Eta Z 21 70 Zetta Y 24 80 Yotta 2.8.3 Arquivo texto e binrio Quanto ao tipo, um arquivo pode ser de texto ou binrio: Texto Seu contedo compreendido pelas pessoas. Um arquivo texto pode ser uma carta, um script, um programa de computador escrito pelo programador, arquivo de configurao, etc. Binrio Seu contedo somente pode ser entendido por computadores. Contm caracteres incompreensveis para pessoas normais. Um arquivo binrio gerado por um arquivo de programa (formato texto) atravs de um processo chamado de compilao. Compilao basicamente a converso de um programa em linguagem humana (texto) para a linguagem de mquina (binrio).

2.9 Diretrio
Diretrio o local utilizado para armazenar conjuntos de arquivos para melhor organizao e localizao, conhecidos como pastas. O diretrio, como o arquivo, tambm Case Sensitive (diretrio /teste completa-

18

CURSO DE LINUX BSICO: Mdulo I mente diferente do diretrio /Teste). No podem existir dois arquivos com o mesmo nome em um diretrio, ou um sub-diretrio com um mesmo nome de um arquivo em um mesmo diretrio. Os diretrio nos sistemas Linux so especificados por uma /. Para criar um diretrio utilizamos o comando mkdir, que ser visto mais adiante. 2.9.1 Comandos para manipulao de diretrios

ls
Lista os arquivos de um diretrio. ls [opes] [caminho/arquivo] [caminho1/arquivo1] ... Onde: caminho/arquivo Diretrio/arquivo que ser listado. caminho1/arquivo1 Outro diretrio/arquivo que ser listado. Podem ser feitas vrias listagens de uma s vez. opes -a, --all Lista todos os arquivos (inclusive os ocultos) de um diretrio. -A, --almost-all Lista todos os arquivos (inclusive os ocultos) de um diretrio, exceto o diretrio atual e o de nvel anterior. -B, --ignore-backups No lista arquivos que terminam com ~ (Backup). --color=PARAM Mostra os arquivos em cores diferentes, conforme o tipo de arquivo. PARAM pode ser: never - Nunca lista em cores (mesma coisa de no usar o parmetro --color).

always - Sempre lista em cores conforme o tipo de arquivo. auto - Somente colore a listagem se estiver em um terminal.

-d, --directory Lista os nomes dos diretrios ao invs do contedo. -f No classifica a listagem. -F Insere um caracter aps arquivos executveis (*), diretrios (/), soquete (=), link simblico (@) e pipe (|). Seu uso til para identificar de forma fcil tipos de arquivos nas listagens de diretrios. -G, --no-group Oculta a coluna de grupo do arquivo. -h, --human-readable Mostra o tamanho dos arquivos em Kbytes, Mbytes, Gbytes.

19

CURSO DE LINUX BSICO: Mdulo I -H Faz o mesmo que -h, mas usa unidades de 1000 ao invs de 1024 para especificar Kbytes, Mbytes, Gbytes. -l Usa o formato longo para listagem de arquivos. Lista as permisses, data de modificao, donos, grupos, etc. -n Usa a identificao de usurio e grupo numrica ao invs dos nomes. -L, --dereference Lista o arquivo original e no o link referente ao arquivo. -o Usa a listagem longa sem os donos dos arquivos (mesma coisa que -lG). -p Mesma coisa que -F, mas no inclui o smbolo * em arquivos executveis. Esta opo tpica de sistemas Linux. -R Lista diretrios e sub-diretrios recursivamente. --full-time Lista data e hora completa. Classificao da listagem A listagem pode ser classificada usando-se as seguintes opes: -f No classifica, e usa -au para listar os arquivos. -r Inverte a ordem de classificao. -c Classifica pela data de alterao. -X Classifica pela extenso. -U No classifica, lista os arquivos na ordem do diretrio. Uma listagem feita com o comando ls -la normalmente mostrada da seguinte maneira: -rwxr-xr-- 1 gleydson user 8192 nov 4 16:00 teste Abaixo as explicaes de cada parte: -rwxr-xr--

20

CURSO DE LINUX BSICO: Mdulo I So as permisses de acesso ao arquivo teste. A primeira letra (da esquerda) identifica o tipo do arquivo, se tiver um d um diretrio, se tiver um - um arquivo normal. As permisses de acesso sero explicadas em detalhes mais adiante. 1 Se for um diretrio, mostra a quantidade de sub-diretrios existentes dentro dele. Caso for um arquivo, ser 1. gleydson Nome do dono do arquivo teste. user Nome do grupo ao qual o arquivo teste pertence. 8192 Tamanho do arquivo (em bytes). nov Ms da criao/ltima modificao do arquivo. 4 Dia em que o arquivo foi criado. 16:00 Hora em que o arquivo foi criado/modificado. Se o arquivo foi criado h mais de um ano, em seu lugar mostrado o ano da criao do arquivo. teste Nome do arquivo. Exemplos do uso do comando ls:

ls - Lista os arquivos do diretrio atual. ls /bin /sbin - Lista os arquivos do diretrio /bin e /sbin

ls -la /bin - Listagem completa (vertical) dos arquivos do diretrio /bin inclusive os ocultos.

Mostra o nome e caminho do diretrio atual. Voc pode usar o comando pwd para verificar em qual diretrio se encontra (caso seu aviso de comandos no mostre isso).

pwd

Cria um diretrio no sistema. Um diretrio usado para armazenar arquivos de um determinado tipo. O diretrio pode ser entendido como uma pasta em que voc guarda seus papis (arquivos). Como uma pessoa organizada, voc utilizar uma pasta para guardar cada tipo de documento. Por exemplo, criando um diretrio vendas para guardar seus arquivos relacionados a vendas naquele local. mkdir [opes] [caminho/diretrio] [caminho1/diretrio1] Onde:

mkdir

21

CURSO DE LINUX BSICO: Mdulo I caminho Caminho onde o diretrio ser criado. diretrio Nome do diretrio que ser criado. opes: --verbose Exibe uma mensagem para cada diretrio criado. As mensagens de erro sero mostradas mesmo que essa opo no seja usada. Para criar um novo diretrio, voc deve ter permisso de gravao. Por exemplo, para criar um diretrio em /tmp com o nome de teste que ser usado para gravar arquivos de teste, voc deve usar o comando mkdir / tmp/teste. Pode ser criado mais de um diretrio com um nico comando (mkdir / tmp/teste /tmp/teste1 /tmp/teste2). 2.9.2 cd Entra em um diretrio.Voc precisa ter a permisso de execuo para entrar no diretrio. cd [diretrio] Onde: diretrio - diretrio que deseja entrar. Exemplos: Usando cd sem parmetros ou cd ~, voc retornar ao seu diretrio de usurio (diretrio home). cd /, retornar ao diretrio raz. cd -, retornar ao diretrio anteriormente acessado. cd .., sobe um diretrio. cd ../[diretrio], sobe um diretrio e entra imediatamente no prximo (por exemplo, quando voc est em /usr/sbin, voc digita cd ../bin, o comando cd retorna um diretrio (/usr) e entra imediatamente no diretrio bin (/usr/bin). 2.9.3 pwd Mostra o nome e caminho do diretrio atual. Voc pode usar o comando pwd para verificar em qual diretrio se encontra (caso seu aviso de comandos no mostre isso). 2.9.5 Diretrio Raiz Este o diretrio principal do sistema. Dentro dele esto todos os outros diretrios do sistema. O diretrio Raz representado por uma /. Assim, se voc digitar o comando cd / voc estar acessando este diretrio. Nele esto localizados outros diretrios como o /bin, /sbin, /usr, /usr/local, /mnt, /tmp, /var e /home. Estes so chamados de sub-diretrios j que esto dentro do diretrio /. A estrutura de diretrios e sub-diretrios pode ser identificada da seguinte maneira: / /bin /sbin /usr /usr/local /mnt /tmp

22

CURSO DE LINUX BSICO: Mdulo I /var /home

A estrutura de diretrios tambm chamada de rvore de Diretrios porque parecida com uma rvore de cabea para baixo. Cada diretrio do sistema tem seus respectivos arquivos que so armazenados conforme regras definidas pela FHS (FileSystem Hierarchy Standard - Hierarquia Padro do Sistema de Arquivos) verso 2.0, definindo que tipo de arquivo deve ser armazenado em cada diretrio. 2.9.6 Diretrio atual o diretrio em que nos encontramos no momento. Voc pode digitar o comando pwd para verificar qual seu diretrio atual. O diretrio atual tambm identificado por um . (ponto). O comando ls. pode ser usado para listar seus arquivos ( claro que isto desnecessrio porque se no digitar nenhum diretrio, o comando ls sozinho listar o contedo do diretrio atual). 2.9.7 Diretrio home Tambm chamado de diretrio de usurio. Em sistemas GNU/Linux cada usurio (inclusive o root) possui seu prprio diretrio onde poder armazenar seus programas e arquivos pessoais. Este diretrio est localizado em /home/[login]. Neste caso se o seu login for joao o seu diretrio home ser /home/joao. O diretrio home tambm identificado por um ~ (til), voc pode digitar tanto o comando ls / home/joao como ls ~ para listar os arquivos de seu diretrio home. O diretrio home do usurio root (na maioria das distribuies GNU/ Linux) est localizado em /root. Dependendo de sua configurao e do nmero de usurios em seu sistema, o diretrio de usurio pode ter a seguinte forma: /home/[primeira_letra_do_nome]/[login], neste caso se o seu login for joao o seu diretrio home ser /home/j/joao. Essa forma s seria realmente til em um sistema com uma grande quantidade de usurios. 2.9.8 Diretrio Superior O diretrio superior (Upper Directory) identificado por .. (2 pontos). Caso estiver no diretrio /usr/local e quiser listar os arquivos do diretrio /usr voc pode digitar, ls .. . Ou se voc estiver no diretrio /usr/local e quiser mudar para o diretrio superior /usr basta digitar cd .. . Ou ainda, se quiser ir direto do diretrio /usr/local para o diretrio raiz / digite cd ../.. Este recurso tambm pode ser usado para copiar, mover arquivos/diretrios, etc. 2.9.9 Diretrio Anterior O diretrio anterior identificado por -. til para retornar ao ltimo diretrio usado. Se estive no diretrio /usr/local e digitar cd /lib, voc pode retornar facilmente para o diretrio /usr/local usando cd -. 2.9.10 Caminho na estrutura de diretrios O caminho na estrutura de diretrios so os diretrios que teremos que percorrer at chegar ao arquivo ou diretrio que procuramos. Se desejar ver o arquivo /usr/doc/copyright/GPL voc tem duas opes: 1. Mudar o diretrio atual para /usr/doc/copyright com o comando cd / usr/doc/copyright e usar o comando cat GPL

23

CURSO DE LINUX BSICO: Mdulo I

O caminho de diretrios necessrio para dizer ao sistema operacional onde encontrar um arquivo na rvore de diretrios.

Ateno

EXEMPLO Um exemplo de diretrio o seu diretrio de usurio. Todos seus arquivos essenciais devem ser colocados neste diretrio. Um diretrio tambm pode conter outro diretrio. Isso til quando temos muitos arquivos e queremos melhorar sua organizao. Abaixo, um exemplo de uma empresa que precisa controlar os arquivos de pedidos que emite para as fbricas: /pub/vendas - diretrio principal de vendas /pub/vendas/mes01-99 - diretrio contendo vendas do ms 01/1999 /pub/vendas/mes02-99 - diretrio contendo vendas do ms 02/1999 /pub/vendas/mes03-99 - diretrio contendo vendas do ms 03/1999 o diretrio vendas o diretrio principal. mes01-99 um subdiretrio que contm os arquivos de vendas do ms 01/1999. mes02-99 um subdiretrio que contm os arquivos de vendas do ms 02/1999. mes03-99 um subdiretrio que contm os arquivos de vendas do ms 03/1999.

mes01-99, mes02-99, mes03-99 so diretrios usados para armazenar os arquivos de pedidos do ms e ano correspondente. Isso essencial para organizao, pois se todos os pedidos fossem colocados diretamente no diretrio vendas, seria muito difcil encontrar o arquivo do cliente Joo. Voc reparou que usei a palavra sub-diretrio para mes01-99, mes0299 e mes03-99? porque eles esto dentro do diretrio vendas. Da mesma forma, vendas um sub-diretrio de pub.

2. Usar o comando cat especificando o caminho completo na estrutura de diretrios e o nome do arquivo: cat /usr/doc/copyright/GPL. As duas solues acima permitem que voc veja o arquivo GPL. A diferena entre as duas a seguinte: Na primeira, voc muda o diretrio padro para /usr/doc/copyright (confira digitando pwd) e depois o comando cat GPL. Voc pode listar os arquivos do diretrio /usr/doc/copyright com o comando ls. /usr/doc/copyright o caminho de diretrio que devemos percorrer para chegar at o arquivo GPL. Na segunda, digitado o caminho completo para o comando cat localizar o arquivo GPL: cat /usr/doc/copyright/GPL. Neste caso, voc continuar no diretrio padro (confira digitando pwd). Digitando ls, os arquivos do diretrio atual sero listados.

24

CURSO DE LINUX BSICO: Mdulo I

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

2.10 Nomeando Arquivos e Diretrios


No GNU/Linux, os arquivos e diretrios podem ter o tamanho de at 255 letras. Voc pode identific-los com uma extenso (um conjunto de letras separadas do nome do arquivo por um .). Os programas executveis do GNU/Linux, ao contrrio dos programas de DOS e Windows, no so executados a partir de extenses .exe, .com ou .bat. O GNU/Linux (como todos os sistemas POSIX) usa a permisso de execuo de arquivo para identificar se um arquivo pode ou no ser executado, independente de sua extenso. Por exemplo, um trabalho de histria pode ser identificado mais facilmente caso fosse gravado com o nome trabalho.text ou trabalho.txt. Tambm permitido gravar o arquivo com o nome Trabalho de Historia.txt, mas no recomendado gravar nomes de arquivos e diretrios com espaos porque ser necessrio colocar o nome do arquivo entre aspas para acess-lo (por exemplo, cat Trabalho de Historia.txt). Ao invs de usar espaos, prefira capitalizar o arquivo (usar letras maisculas e minsculas para identifica-lo), como TrabalhodeHistoria.txt.

25

CURSO DE LINUX BSICO: Mdulo I

2.11 Curingas
Curingas (ou referncia global) um recurso usado para especificar um ou mais arquivos ou diretrios do sistema de uma s vez. Este recurso permite que voc faa a filtragem do que ser listado, copiado e apagado. So usados trs tipos de curingas: * (asterisco) - Faz referncia a um nome completo ou restante, de um arquivo ou diretrio. ? (ponto de interrogao) - Faz referncia a uma letra naquela posio. [padro] - Faz referncia a uma faixa de caracteres de um arquivo/ diretrio. Padro pode ser: [a-z][0-9] - Faz referncia a caracteres de a at z seguido de um caractere de 0 at 9. [az][1,0] - Faz a referncia aos caracteres a e z seguido de um caractere 1 ou 0 naquela posio. [a-z,1,0] - Faz referncia a intervalo de caracteres de a at z ou 1 ou 0 naquela posio.

A procura de caracteres Case Sensitive. Assim, se voc deseja que sejam localizados todos os caracteres alfabticos voc deve usar [a-z,A-Z]. Caso a expresso seja precedida por um ^, faz referncia a qualquer caractere exceto o da expresso. Por exemplo, [^abc] faz referncia a qualquer caractere exceto a, b e c. Lembrando que os trs tipos de curingas (*, ?, []) podem ser usados juntos. Existem muitas outras formas de se fazer a mesma coisa. Depende do gosto de cada um. O importante aqui foi mostrar como especificar mais de um arquivo de uma s vez. O uso de curingas ser til ao copiar arquivos, apagar, mover, renomear e nas mais diversas partes do sistema. Alis, esta uma caracterstica do GNU/Linux: permitir que a mesma coisa possa ser feita de vrias maneiras diferentes.

26

CURSO DE LINUX BSICO: Mdulo I EXEMPLO Para entender melhor, vamos prtica: Vamos dizer que tenha 5 arquivos no diretrio /usr/teste, sendo eles teste1.txt, teste2.txt, teste3.txt, teste4.ncl, teste5.ncl. Caso deseje listar todos os arquivos do diretrio /usr/teste voc pode usar o coringa * para especificar todos os arquivos do diretrio: cd /usr/teste e ls * ou ls /usr/teste/*. No tem muito sentido usar o comando ls com *, pois todos os arquivos sero listados se o ls for usado sem nenhum Curinga. Agora, para listar todos os arquivos com extenso txt (teste1.txt, teste2. txt, teste3.txt), com exceo de teste4.ncl, teste5.ncl, podemos usar inicialmente 3 mtodos: Usando o comando ls *.txt, que pega todos os arquivos que comeam com qualquer nome e terminam com .txt. Usando o comando ls teste?.txt, que pega todos os arquivos que comeam com o nome teste, tenham qualquer caractere no lugar do coringa ? e terminem com .txt. Com o exemplo acima teste*. txt tambm faria a mesma coisa, mas se tambm tivssemos um arquivo chamado teste10.txt este tambm seria listado. Usando o comando ls teste[1-3].txt, que pega todos os arquivos que comeam com o nome teste, tenham qualquer caractere entre o nmero 1-3 no lugar da 6 letra e terminem com .txt. Neste caso se obtm uma filtragem mais exata, pois o coringa ? especifica qualquer caracter naquela posio e [] especifica nmeros, letras ou intervalo que ser usado. Agora para listar somente teste4.ncl e teste5.ncl podemos usar os seguintes mtodos: ls *.ncl que lista todos os arquivos que terminam com .ncl ls teste?.ncl que lista todos os arquivos que comeam com teste, contenham qualquer caracter na posio do coringa ? e terminem com .ncl. ls teste[4,5].* que lista todos os arquivos que comeam com teste contenham nmeros de 4 e 5 naquela posio e terminem com qualquer extenso.

2.12 Nomes de dispositivos


Para se evitar que cada programa utilize um I/O (Input/Output ou Entrada/Saida de dados no programa) ou IRQ (Interrupt Request, sinalizao de um pedido de interrupo de hardware) diferente para cada parte do hardware como o mouse ou o modem, no sistema GNU/Linux so usados os nomes de dispositivos. Eles so acessados atravs do diretrio /dev. Por exemplo: aps configurar corretamente o modem, com sua porta I/O 0x2F8 e IRQ 3, ele identificado automaticamente por /dev/ttyS1. Daqui para frente basta se referir a /dev/ttyS1 para fazer alguma coisa com o modem. Voc tambm pode fazer um link de /dev/ttyS1 para um arquivo chamado /dev/modem. Dessa forma, voc pode fazer a configurao dos seus programas usando /dev/modem ao invs de /dev/ttyS1. Se precisar reconfigurar o seu modem e a porta serial mudar para /dev/ttyS3, ser necessrio somente apagar o link /dev/modem antigo e criar um novo, apontando para a porta serial /dev/ttyS3. No ser necessrio reconfigurar os programas que usam o modem, pois eles esto usando /dev/modem, que est apon-

27

CURSO DE LINUX BSICO: Mdulo I tando para a localizao correta. Isso muito til para um bom gerenciamento do sistema.

Saiba

Acesse http://focalinux.cipsga.org.br/guia/intermediario/ch-hardw.html

2.13 Listando as placas e outros hardwares em um computador


Administradores e tcnicos ao configurar uma mquina precisaro saber quais os hardwares ela possui, os perifricos, dispositivos e clock, para configurar tudo e ver a necessidade de atualizaes. Dispositivos PCI/AMR/CNR (como modens, placas de vdeo e udio) podem ser listados executando o comando cat /proc/pci. Outra forma de listar tais dispositivos usando o lspci. Se voc precisa de mais detalhes como o mapeamento de memria, use lspci -vv. O mapeamento de memria de dispositivos pode ser mostrado com o comando cat /proc/ioports, ou usando o comando lsdev. O barramento USB e dispositivos conectados a ele podem ser listados com o comando lsusb ou com cat /proc/bus/usb/devices. Hardwares disponveis na mquina, como placa me, clock multiplicador, discos, placas diversas, verses e nmeros seriais de dispositivos podem ser mostrados atravs do comando lshw. Use lshw -html para produzir a listagem em formato HTML, bem interessante para relatrios.

28

CURSO DE LINUX BSICO: Mdulo I

Comandos para manipulao de arquivos

Sero apresentados comandos utilizados para manipulao de arquivos neste captulo.

3.1 cat

Mostra o contedo de um arquivo binrio ou de texto. cat [opes] [diretrio/arquivo] [diretrio1/arquivo1] Onde: diretrio/arquivo Localizao do arquivo do qual se deseja visualizar o contedo. opes -n, --number Mostra o nmero das linhas enquanto o contedo do arquivo mostrado. -s, --squeeze-blank No mostra mais que uma linha em branco entre um pargrafo e outro. L a entrada padro. O comando cat trabalha com arquivos texto. Use o comando zcat para ver diretamente arquivos compactados com gzip. Exemplo: cat /usr/doc/copyright/GPL

3.2 tac
Mostra o contedo de um arquivo binrio ou de texto (como o cat) s que em ordem inversa. tac [opes] [diretrio/arquivo] [diretrio1/arquivo1] Onde: diretrio/arquivo Localizao do arquivo do qual se deseja visualizar o contedo opes -s [string] Usa o [string] como separador de registros. L a entrada padro. Exemplo: tac /usr/doc/copyright/GPL.

29

CURSO DE LINUX BSICO: Mdulo I

Apaga arquivos. Tambm pode ser usado para apagar diretrios e sub-diretrios vazios ou que contenham arquivos. rm [opes][caminho][arquivo/diretrio] diretrio1] Onde: caminho Localizao do arquivo que se deseja apagar. Se omitido, assume que o arquivo esteja no diretrio atual. arquivo/diretrio Arquivo que ser apagado. opes -i, --interactive Pergunta antes de remover, esta ativada por padro. -v, --verbose Mostra os arquivos na medida que so removidos. -r, --recursive Usado para remover arquivos em sub-diretrios. Esta opo tambm pode ser usada para remover sub-diretrios. -f, --force Remove os arquivos sem perguntar. -- arquivo Remove arquivos/diretrios que contm caracteres especiais. O separador -- funciona com todos os comandos do shell e permite que caracteres especiais, como *, ?, -, sejam interpretados como caracteres comuns. Use com ateno o comando rm, pois uma vez que arquivos e diretrios so apagados, eles no podem mais ser recuperados.
Exemplosrm teste.txt - Apaga o arquivo teste.txt no diretrio atual.

3.3 rm

[caminho1][arquivo1/

rm *.txt - Apaga todos os arquivos do diretrio atual que terminam com .txt.

rm *.txt teste.novo - Apaga todos os arquivos do diretrio atual que terminam com .txt e tambm o arquivo teste.novo.
rm -rf /tmp/teste/* - Apaga todos os arquivos e subdiretrios do diretrio /tmp/teste mas mantm o sub-diretrio / tmp/teste.

rm -rf /tmp/teste - Apaga todos os arquivos e subdiretrios do diretrio /tmp/teste, inclusive /tmp/teste.
rm -f -- --arquivo-- - Remove o arquivo de nome --arquivo--.

30

CURSO DE LINUX BSICO: Mdulo I

3.4 cp

Copia arquivos. cp [opes] [origem] [destino] Onde: origem Arquivo que ser copiado. Podem ser especificados mais de um arquivo para ser copiado usando Curingas, j vistos neste material. destino O caminho ou nome de arquivo onde ser copiado. Se o destino for um diretrio, os arquivos de origem sero copiados para dentro do diretrio. opes -i, --interactive Pergunta antes de substituir um arquivo existente. -f, --force No pergunta, substitui todos os arquivos caso j existam. -r Copia arquivos dos diretrios e subdiretrios da origem para o destino. recomendvel usar -R ao invs de -r. -R, --recursive Copia arquivos e sub-diretrios (como a opo -r) e tambm os arquivos especiais FIFO e dispositivos. -v, --verbose Mostra os arquivos enquanto esto sendo copiados. -s, --simbolic-link Cria link simblico ao invs de copiar. -l, --link Faz o link no destino ao invs de copiar os arquivos. -p, --preserve Preserva atributos do arquivo, se for possvel. -u, --update Copia somente se o arquivo de origem mais novo que o arquivo de destino ou quando o arquivo de destino no existe. -x No copia arquivos que esto localizados em um sistema de arquivos diferente de onde a cpia iniciou. O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos, origem e destino, tero o mesmo contedo aps a cpia. Exemplos: cp teste.txt teste1.txt - Copia o arquivo teste. txt para teste1.txt.

cp teste.txt /tmp - Copia o arquivo teste.txt para dentro

31

CURSO DE LINUX BSICO: Mdulo I

do diretrio /tmp. cp * /tmp - Copia todos os arquivos do diretrio atual para /tmp.
cp /bin/* . - Copia todos os arquivos do diretrio /bin para o diretrio em que nos encontramos no momento. cp -R /bin /tmp - Copia o diretrio /bin e todos os arquivos/subdiretrios existentes para o diretrio /tmp.

cp -R /bin/* /tmp - Copia todos os arquivos do diretrio /bin (exceto o diretrio /bin) e todos os arquivos/subdiretrios existentes dentro dele para /tmp.
cp -R /bin /tmp - Copia todos os arquivos e o diretrio / bin para /tmp.

Move ou renomeia arquivos e diretrios. O processo semelhante ao do comando cp, mas o arquivo de origem apagado aps o trmino da cpia. mv [opes] [origem] [destino] Onde: origem Arquivo/diretrio de origem. destino Local para onde ser movido ou novo nome do arquivo/ diretrio. opes -f, --force Substitui o arquivo de destino sem perguntar. -i, --interactive Pergunta antes de substituir. o padro. -v, --verbose Mostra os arquivos que esto sendo movidos. -u, --update Move somente se o arquivo de origem for mais novo que o de destino, ou se este no existir. O comando mv copia um arquivo da ORIGEM para o DESTINO (semelhante ao cp), mas aps a cpia, o arquivo de ORIGEM apagado.
Exemplos: mv teste.txt teste1.txt - Muda o nome do arquivo teste.txt para teste1.txt.

3.5 mv

mv teste.txt /tmp - Move o arquivo teste.txt para /tmp. Lembre-se que o arquivo de origem apagado aps ser movido.
mv teste.txt teste.new (supondo que teste.new j exista) - Copia o arquivo teste.txt por cima de teste.new e apaga teste.txt aps terminar a cpia.

32

CURSO DE LINUX BSICO: Mdulo I

Execuo de Programas

Este captulo explica como executar programas no GNU/ Linux e o uso das ferramentas de controle de execuo dos programas.

4.1 Executando um comando/programa


No aviso de comando # (root) ou $ (usurio), digite o nome do comando e tecle Enter. O programa/comando vai ser executado e receber um nmero de identificao (chamado de PID - Process Identification). Esse nmero identifica o processo no sistema e dessa maneira tem um controle sobre sua execuo (ser visto mais adiante neste captulo). Para rodar um comando, necessrio que ele tenha permisses de execuo (mais detalhes sero vistos mais adiante) e que esteja no caminho de procura de arquivos, como visto na prxima seo. Todo o programa recebe uma identificao de usurio (UID) quando executado, o que determina quais sero suas permisses de acesso. O programa normalmente usa o UID do usurio que o executou ou o usurio configurado pelo bit de permisso de acesso, caso este estiver definido. Tambm existem programas que so executados como root e modificam sua identificao de usurio para algum que tenha menos privilgios no sistema (como o Apache, por exemplo). Mais informaes sero dadas posteriormente. Exemplos de comandos: ls, df, pwd.

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

33

CURSO DE LINUX BSICO: Mdulo I

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

4.3 Tipos de Execuo de comandos/programas


1. Um programa pode ser rodado de duas formas: Primeiro Plano - Tambm chamado de foreground. Voc deve esperar o trmino da execuo do programa para rodar um novo comando. Somente mostrado o aviso de comando aps o trmino de sua execuo. 2. Segundo Plano - Tambm chamado de background. Voc no precisa esperar o trmino da execuo do programa para executar um novo comando. Aps iniciar um programa em background, mostrado um nmero PID (identificao do Processo) e o aviso de comando novamente mostrado, permitindo o uso normal do sistema.

O programa rodado em background continua sendo executado internamente. Aps ser concludo, o sistema retorna uma mensagem de pronto, acompanhado do nmero PID do processo que terminou. Para iniciar um programa em primeiro plano, basta digitar seu nome normalmente. Para iniciar um programa em segundo plano, acrescente o caractere & aps o final do comando. OBS: Mesmo que um usurio execute um programa em segundo plano e saia do sistema, o programa continuar rodando at que seja concludo ou finalizado pelo usurio que iniciou a execuo (ou pelo usurio root). Exemplo: find / -name boot.b & O comando ser executado em segundo plano e deixar o sistema livre para outras tarefas. Aps o comando find terminar, ser mostrada uma mensagem.

4.4 Executando programas em sequncia


Os comandos podem ser executados em sequncia (um aps o trmino do outro) se os separarmos com ;. Por exemplo: echo primeiro;echo segundo;echo terceiro

4.5 ps
Algumas vezes til ver quais processos esto sendo executados no computador. O comando ps faz isso, e tambm nos mostra qual usurio executou o programa, a hora que o processo foi iniciado e vrias outras informaes.

34

CURSO DE LINUX BSICO: Mdulo I

ps [opes] Onde as opes podem ser: a Mostra os processos criados por voc e de outros usurios do sistema. x Mostra processos que no so controlados pelo terminal. u Mostra o nome de usurio que iniciou o processo e a hora em que o processo foi iniciado. m Mostra a memria ocupada por cada processo em execuo. f Mostra a rvore de execuo de comandos (comandos que so chamados por outros comandos). e Mostra variveis de ambiente no momento da inicializao do processo. w Mostra a continuao da linha atual na prxima linha, ao invs de cortar o restante que no couber na tela. --sort:[coluna] Organiza a sada do comando ps de acordo com a coluna escolhida. Voc pode usar as colunas pid, utime, ppid, rss, size, user, priority. As opes acima podem ser combinadas para resultar numa listagem mais completa. Voc tambm pode usar pipes | para filtrar a sada do comando ps. Mais detalhes sobre pipe sero vistos mais adiante. Ao contrrio de outros comandos, o comando ps no precisa do hfen - para especificar os comandos. Isso porque ele no utiliza opes longas e no usa parmetros. EXEMPLO: digite em seu terminal ps au Voc ver na tela todos os processos criados por voc e por outros usurios, alm de mostrar nome de usurio, data e hora em que o processo foi iniciado.

4.6 top
Mostra os programas em execuo ativos, parados, tempo usado na CPU, detalhes sobre o uso da memria RAM, disponibilidade para execuo de programas no sistema e vrias

35

CURSO DE LINUX BSICO: Mdulo I

outras informaes relativas aos programas em execuo. top um programa que continua em execuo, mostrando continuamente os processos que esto rodando em seu computador e os recursos utilizados por eles. Para sair do top, pressione a tecla q. top [opes] Onde so opes: -d [tempo] Atualiza a tela aps o [tempo] (em segundos). -s Diz ao top para ser executado em modo seguro. -i Inicia o top, ignorando o tempo de processos zumbis. -c Mostra a linha de comando ao invs do nome do programa. A ajuda sobre o top pode ser obtida dentro do programa . Para isso, pressione a tecla h ou v at a pgina de manual (man top). Veja abaixo algumas teclas teis: espao - Atualiza imediatamente a tela. CTRL+L - Apaga e atualiza a tela.

h - Mostra a tela de ajuda do programa. So mostradas todas as teclas que podem ser usadas com o top. i - Ignora o tempo ocioso de processos zumbis. q - Sai do programa.

k - Finaliza um processo - semelhante ao comando kill. Voc ser perguntado pelo nmero de identificao do processo (PID). Esse comando no estar disponvel caso esteja usando o top com a opo -s. n - Muda o nmero de linhas mostradas na tela. Se 0 for especificado, ser usada toda a tela para listagem de processos.

4.7 Controle de execuo de processos


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

4.7.1 Interrompendo a execuo de um processo


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

36

CURSO DE LINUX BSICO: Mdulo I

4.7.2 Parando momentaneamente a execuo de um processo


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

4.7.3 jobs
O comando jobs mostra os processos que esto parados ou rodando em segundo plano. Processos em segundo plano so iniciados usando o smbolo & no final da linha de comando, como j visto neste material, ou atravs do comando bg. O nmero de identificao de cada processo parado ou em segundo plano (job) usado com os comandos fg e bg. Um processo interrompido pode ser finalizado usando-se o comando kill %[num], em que [num] o nmero do processo obtido pelo jobs.

4.7.4 fg
Permite fazer com que um programa rodado em segundo plano ou parado, rode em primeiro plano. Voc deve usar o comando jobs para pegar o nmero do processo executado em segundo plano ou interrompido. fg [nmero] Em que nmero o nmero obtido atravs do comando jobs. Caso seja executado sem parmetros, o fg utilizar o ltimo programa interrompido (o maior nmero obtido com o comando jobs). Exemplo: fg 1.

4.7.5 bg
Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo plano. Para fazer um programa em primeiro plano rodar em segundo, necessrio primeiro interromper a execuo do comando com CTRL+ Z. Ser mostrado o nmero da tarefa interrompida. Use esse nmero com o comando bg para iniciar a execuo do comando em segundo plano. bg [nmero] Onde: nmero o nmero do programa obtido com o pressionamento das teclas CTRL+Z ou atravs do comando jobs.

4.7.6 kill
Permite enviar um sinal a um comando/programa. Se usado sem

37

CURSO DE LINUX BSICO: Mdulo I

parmetros, o kill enviar um sinal de trmino ao processo sendo executado. kill [opes] [sinal] [nmero] Onde: nmero o nmero de identificao do processo obtido com o comando ps. Tambm pode ser o nmero aps o sinal de % obtido pelo comando jobs para matar uma tarefa interrompida. sinal Sinal que ser enviado ao processo. Se omitido usa -15 como padro. opes -9 Envia um sinal de destruio ao processo ou programa. Ele terminado imediatamente, sem chances de salvar os dados ou apagar os arquivos temporrios criados. Voc precisa ser o dono do processo ou o usurio root para termin-lo ou destru-lo. Para verificar se o processo foi finalizado, utilize o comando ps. Os tipos de sinais aceitos pelo GNU/Linux sero explicados em detalhes mais adiante. Exemplo: kill 500, kill -9 500, kill %1.

4.7.7 killall
Permite finalizar processos atravs do nome. killall [opes] [sinal] [processo] Onde: processo Nome do processo que deseja finalizar sinal Sinal que ser enviado ao processo opes -i Pede confirmao sobre a finalizao do processo. -l Lista o nome de todos os sinais conhecidos. -q Ignora a existncia do processo. -v Retorna se o sinal foi enviado com sucesso ao processo. -w Finaliza a execuo do killall somente aps finalizar todos os processos.

38

Os tipos de sinais aceitos pelo GNU/Linux so explicados em

CURSO DE LINUX BSICO: Mdulo I

detalhes logo adiante. Exemplo: killall -HUP inetd

4.7.9 Sinais do Sistema


Os 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 pr-programadas, o prprio Linux pode executar a ao de acordo com suas rotinas. O GNU/Linux suporta os sinais listados pelo comando kill l . Podemos saber qual a funo de cada sinal consultando a man page signal,com o comando: man signal. Veja a funo de alguns: SIGSTOP - interrompe a execuo de um processo e s reativ-lo aps o recebimento do sinal CONT; SIGCONT - instrui a execuo de um processo aps este ter sido interrompido; SIGSEGV - informa erros de endereos de memria; SIGTERM - termina completamente o processo, ou seja, este deixa de existir aps a finalizao; SIGILL - informa erros de instruo ilegal, por exemplo, quando ocorre diviso por zero; SIGKILL - mata um processo e usado em momentos de criticidade.

4.7.8 killall5
Envia um sinal de finalizao para todos os processos sendo executados. killall5 [sinal]

4.8 nohup
Executa um comando ignorando os sinais de interrupo. Esse comando pode ser executado at mesmo em segundo plano, caso seja feito o logout do sistema. nohup [comando que ser executado] As mensagens de sada do nohup so direcionadas para o arquivo $HOME/nohup.out. Exemplo: nohup find / -uid 0 >/tmp/rootfiles.txt &.

4.9 nice e renice


nice configura a prioridade da execuo de um comando/ programa. nice [opes] [comando/programa] Onde:

39

CURSO DE LINUX BSICO: Mdulo I

comando/programa Comando/programa que ter sua prioridade ajustada. opes -n [numero] Configura a prioridade com a qual o programa ser executado. Se um programa for executado com maior prioridade, ele usar mais recursos do sistema para seu processamento. Caso tenha uma prioridade baixa, ele permitir que outros programas tenham preferncia. A prioridade de execuo de um programa/comando pode ser ajustada de -19 (a mais alta) at 19 (a mais baixa). Exemplo: nice -n -19 find / -name apropos. renice troca a prioridade das aplicaes em execuo. renice [prioridade] [pid] Onde: prioridade Prioridade a ser configurada para o processo. Pode ser ajustada de -19 (a mais alta) at 19 (a mais baixa). pid pid do processo a ser configurado. Exemplo: renice +19 1000

4.10 fuser
Permite identificar e fechar os processos que esto utilizando arquivos e soquetes no sistema. fuser [opes] [nome] Onde: nome Especifica um nome de processo, diretrio, arquivo, etc. opes -k Finaliza os processos acessando o arquivo especificado. O sinal desejado deve ser especificado com a opo -signal [num], ou o sinal -9 ser enviado como padro. No possvel matar o prprio processo fuser. -i Pergunta antes de destruir um processo. Ser ignorada caso a opo -k no seja especificada. -l Lista todos os nomes de sinais conhecidos. -m [nome] Especifica um arquivo em um sistema de arquivos montado ou dispositivo de bloco que est montado. Sero listados todos os processos acessando aquele sistema de arquivos.

40

CURSO DE LINUX BSICO: Mdulo I

Diretrios so mostrados seguidos de uma / -signal [nmero] Usa o sinal especificado ao invs de -9 (SIGKILL) quando finalizar processos. -u Acrescenta o nome do dono de cada processo ao PID. -v Os processos so mostrados em um estilo idntico ao ps.

4.11 tload
Representa de forma grfica a carga do sistema. tload [opes] Onde: opes -s [nmero] Mostra uma escala vertical com espaamento especificado por [nmero]. recomendvel o uso de nmeros entre 1 e 10 para melhor visualizao da escala. -d [nmero] Especifica o intervalo entre atualizaes, em segundos.

4.12 vmstat
Mostra estatsticas sobre o uso da memria virtual do sistema. vmstat [intervalo] [contagem] Onde: intervalo Nmero especificado em segundos entre atualizaes. contagem Nmero de vezes que ser mostrado. Se no for especificado nenhum parmetro, o vmstat mostra o status da memria virtual e volta imediatamente para a linha de comando. A descrio dos campos do vmstat so as seguintes: Processos r Nmero de processos aguardando execuo. b Nmero de processos em espera no interrompveis. w Nmero de processos extrados do arquivo de troca ou caso contrrio em execuo. Memria swpd

41

CURSO DE LINUX BSICO: Mdulo I

A quantidade de memria virtual usada em Kb. free Quantidade de memria livre em Kb. buff Quantidade de memria usada como buffer em Kb. Memria Virtual si Quantidade de memria gravada para o disco em Kb/s. so Quantidade de memria retirada do disco em Kb/s. Entrada/Sada bi Blocos enviados para um dispositivo de bloco (medido em blocos por segundo). bo Blocos recebidos de um dispositivo de bloco (em blocos por segundo). Sistema in Nmero de interrupes por segundo, incluindo o clock. cs Nmero de mudanas de contexto por segundo. Porcentagem do total de tempo da CPU us Tempo do usurio sy Tempo do sistema id Tempo ocioso

4.13 pidof
Retorna o PID do processo especificado pidof [opes] [nome] Onde: nome Nome do processo para o qual se deseja obter o nmero PID opes -s Retorna somente o primeiro PID encontrado. -x

42

CURSO DE LINUX BSICO: Mdulo I

Retorna o PID do shell que est executando o script -o [PID] Ignora o processo com aquele PID. O PID especial %PPID pode ser usado para nomear o processo pai do programa pidof OBS: O programa pidof um link simblico ao programa killall5. Cuidado ao executar o killall5, pois as funes e opes so completamente diferentes, dependendo da forma como chamado na linha de comando! Exemplo: pidof -s init

4.14 pstree
Mostra a estrutura de processos em execuo no sistema em forma de rvore. pstree [opes] [pid] Onde: pid Nmero do processo que ter sua rvore listada. Se omitido, lista todos os processos. opes -a Mostra opes passadas na linha de comando. -c Mostra toda a estrutura (inclusive sub-processos do processo pai). -G Usa caracteres grficos no desenho da rvore de processos. -h Destaca o processo atual e seus antecessores. -H [pid] Destaca o processo especificado. -l No faz quebra de linha -n Classifica pelo nmero PID ao invs do nome. -p Mostra o nmero PID entre parnteses aps o nome do processo. -u Mostra tambm o dono do processo. -U Usa o conjunto de caracteres Unicode para o desenho da rvore.

43

CURSO DE LINUX BSICO: Mdulo I

4.15 Fechando um programa quando no se sabe como sair


Quando voc ainda um iniciante no GNU/Linux, talvez execute um programa e no saiba como fech-lo. Este captulo do material pretende ajud-lo a resolver esse tipo de problema. Isso tambm pode ocorrer com programadores que esto construindo seus programas e por algum motivo no implementam uma opo de sada. Ou implementam, mas ela no funciona.
1. Em nosso exemplo, vou supor que executamos um programa em desenvolvimento com o nome contagem (que conta o tempo, em segundos, a partir do momento que executado), mas que o programador esqueceu de colocar uma opo de sada. Normalmente, todos os programas UNIX podem ser interrompidos com o pressionamento das teclas <CTRL> e <C>. Tente isso, primeiramente, para finalizar um programa. Se voc estiver usando um Editor de Texto, provavelmente no ir funcionar (ele vai entender como um comando de menu). Normalmente, d certo para comandos que so executados e terminados sem a interveno do usurio.

Se no der certo,
2. Mude para um novo console (pressionando <ALT> e <F2>), e faa o login como usurio root.

Localize o PID (nmero de identificao do processo) usando o comando ps ax. Aparecero vrias linhas, cada uma com o nmero do processo na primeira coluna, e a linha de comando do programa na ltima coluna. Caso apaream vrios processos, voc pode usar ps ax|grep contagem. Nesse caso, o grep far uma filtragem da sada do comando ps ax, mostrando somente as linhas que tem a palavra contagem.
3. 4. Feche o processo, usando o comando kill PID (lembrese de substituir PID pelo nmero encontrado pelo comando ps ax acima).

O comando acima envia um sinal de trmino de execuo para o processo (neste caso, o programa contagem). O sinal de trmino mantm a chance do programa salvar seus dados ou apagar os arquivos temporrios que criou e ento ser finalizado.
5. Alterne para o console em que estava executando o programa contagem e verifique se ele ainda est rodando. Se ele estiver parado, mas o aviso de comando no estiver disponvel, pressione a tecla <ENTER>. Frequentemente acontece o mesmo com o comando kill: voc finaliza um programa, mas o aviso de comando no mostrado at que se pressione <ENTER>. 6. Caso o programa ainda no foi finalizado, repita o comando kill usando a opo -9: kill -9 PID. Este comando envia um sinal de DESTRUIO do processo, fazendo ele terminar na marra!

44

Uma ltima dica: todos os programas estveis (todos que

CURSO DE LINUX BSICO: Mdulo I

acompanham as boas distribuies GNU/Linux) tm sua opo de sada. Lembre-se que, quando um processo finalizado, todos os dados do programa em execuo podem ser perdidos (principalmente se estiver num editor de textos), mesmo usando o kill sem o parmetro -9. Procure a opo de sada de um programa consultando o help on line, as pginas de manual, a documentao que acompanha o programa, info pages. Detalhes de como encontrar a ajuda dos programas sero vistos mais frente.

4.16 Eliminando caracteres estranhos


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

45

Vous aimerez peut-être aussi