Documente Academic
Documente Profesional
Documente Cultură
Mdulo I
Universidade Federal de Viosa Nilda de Ftima Ferreira Soares - Reitora Demtrius David da Silva - Vice-Reitor
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
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
MDULO I
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.
Introduo
Ateno
Este captulo traz uma explicao bsica sobre o sistema operacional Linux e algumas das principais distribuies existentes
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.
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
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
13
Ateno
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.
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
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
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
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.
25
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.
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
28
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
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
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.
31
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
Execuo de Programas
Este captulo explica como executar programas no GNU/ Linux e o uso das ferramentas de controle de execuo dos programas.
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
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.
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.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
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
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.
36
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
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
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 &.
39
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
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
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
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
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
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.
45