CURSO DE LINUX BÁSICO: Módulo IMódulo I 1 CURSO DE LINUX BÁSICO: Módulo I Universidade Federal de Viçosa Nilda de Fátima Ferreira Soares - Reitora Demétrius David da Silva - Vice-Reitor CEAD - Coodenadoria de Educação Aberta e a Distância Frederico Vieira Passos - Diretor VAREJÃO-JR, C.G; COSTA,M.H. - Curso de Linux - Módulo I. Viçosa, 2010. Layout: José Timóteo Júnior Edição de imagens e capa: Diogo Rodrigues Editoração Eletrônica: Diogo Rodrigues e Hamilton Henrique Teixeira Reis Revisão Final: João Batista Mota CEAD - Prédio CEE, Avenida PH Rolfs s/n Campus Universitário, 36570-000, Viçosa/MG Telefone: (31) 3899 2858 | Fax: (31) 3899 3352 2 CURSO DE LINUX BÁSICO: Módulo I Sumário ApreSentAção do CurSo.................................................................................................................4 1.i ntrodução ...............................................................................................................6 1.1 - SiStemA operACionAl.....................................................................................................6 1.2 - o linux..........................................................................................................................6 1.3 - diStribuiçõeS do linux.................................................................................................10 1.4 - SoftwAre livre............................................................................................................13 2.AlgunS ConCeitoS báSiCoS........................................................................................................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 diretório...........................................................................................................................18 2.10 nomeAndo ArquivoS e diretórioS....................................................................................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 mAnipulAção de ArquivoS.............................................................................29 3.1CAt.....................................................................................................................................29 3.2 tAC.....................................................................................................................................29 3.3 rm......................................................................................................................................30 3.4 Cp......................................................................................................................................31 3.5 mv......................................................................................................................................32 4.exeCução de progrAmAS.............................................................................................................33 4.1 exeCutAndo um ComAndo/progrAmA...................................................................................33 4.2 pAtH...................................................................................................................................33 4.3 tipoS de exeCução de ComAndoS/progrAmAS........................................................................34 4.4 exeCutAndo progrAmAS emSequênCiA.................................................................................34 4.5 pS......................................................................................................................................34 4.6 top....................................................................................................................................35 4.7 Controle dA exeCução 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 não Se SAbe Como SAir....................................................44 4.16 eliminAndo CArACtereS eStrAnHoS....................................................................................45 3 CURSO DE LINUX BÁSICO: Módulo I MÓDULO I Material ampliado e adaptado do Guia Foca Linux Apresentação do Curso O material deste curso está organizado em módulos, para que possa ser disponibilizado na web à medida que o curso se desenvolver. Cada módulo corresponde a uma aula, e vem acompanhado de alguns exercícios, para que o estudante possa revisar o conteúdo abordado na respectiva aula. Apesar de haver um professor ou monitor disponível (através de e-mail ou fórum) para tirar as dúvidas dos alunos, é imprescindível que o aluno se esforce para tirar suas dúvidas na internet, através dos sites de busca e fóruns disponíveis na web. Isso faz parte do aprendizado e é importante para a independência do profissional de Linux. Visitas ao Google e a listas de discussão fazem parte da vida de um administrador de sistemas Linux – se você está quebrando a cabeça com algum problema no seu Linux, provavelmente alguém já passou pelo mesmo problema e a solução está disponível na Internet. Além do mais, o linux é bem documentado e existem muitos tutoriais e HOW TOs disponíveis para quase tudo que se deseja fazer nele. Portanto, a primeira lição deste curso é: “Google is your friend!” (a propósito, buscas em inglês são na maioria das vezes mais eficientes). Em vista dessas buscas por informação na Internet, o estudante e futuro administrador de sistemas linux deverá ler constantemente grandes quantidades de informação. É muito importante que o estudante não tenha preguiça de ler, pois, afinal, esse é o único jeito de se encontrar o que se está procurando, estudar e então praticar no seu linux. Além do mais, com as leituras durante a busca de uma solução para um problema, acaba-se aprendendo muito sobre assuntos relacionados, o que contribui bastante para a evolução do estudante e do profissional linux. Em caso de dúvidas, entre em contato com o professor/monitor do curso ou troque ideias com os outros alunos através do nosso fórum de discussão. Lembre-se que ensinar é uma ótima maneira de fixar o aprendizado, e os fóruns da Internet são excelentes lugares para aprender, ensinar e se manter atualizado. Dicas para um bom começo: • • • Recomendo que faça a leitura deste guia e pratique imediatamente o que aprendeu. Isso facilita o entendimento do programa/comando/ configuração. É preciso ter interesse em aprender. Se você tiver vontade em aprender algo, você terá menos dificuldade do que em algo que não gosta e está se obrigando a aprender. Decorar não adianta: pelo contrário, só atrapalha o aprendizado. Você precisa entender o que o comando faz, pois dessa forma estará também usando e desenvolvendo sua interpretação, e entenderá 4 Peça ajuda a outros usuários do Linux quando estiver em dúvida ou não souber fazer alguma coisa no sistema.0. hardware.. software. procure ajuda nas páginas de manual. mas isso é porque ele requer que a pessoa realmente aprenda e conheça computadores e seus periféricos antes de fazer qualquer coisa (principalmente se você é um técnico em manutenção. Certamente você buscará documentos na Internet que falem sobre algum assunto que este guia ainda não explica.30. O Linux é considerado um sistema mais difícil do que os outros. interesse e capacidade de cada um. Ninguém pode saber tudo da noite para o dia. Você pode entrar em contato com outros usuários através de listas de discussão. É comum você encontrar na Internet documentos da época quando o kernel (o núcleo ou a base de um sistema operacional) estava na versão 2. verifique a data de atualização do documento. Muito cuidado! O Linux é um sistema que cresce muito rapidamente: a cada semana uma nova versão é lançada. Para evitar tais problemas. senão você não entenderá nada. Uma pessoa pode ter mais experiência em um assunto do sistema. seria maravilhoso se a documentação fosse atualizada com a mesma frequência. Você conhecerá mais sobre computadores. novos recursos são adicionados. mas podem trazer problemas ou causar má impressão do Linux em outras pessoas. Infelizmente a atualização da documentação não segue o mesmo ritmo (principalmente aqui no Brasil). como compilação de programas. discos. Curiosidade também é importante. por exemplo. redes ou instalações e deseja oferecer suporte profissional a esse sistema). Você pode ter certeza que o aprendizado no Linux ajudará a ter sucesso e menos dificuldade em usar qualquer outro sistema operacional. procure ler novamente a seção do guia.20.0. etc. as possibilidades de crescimento neste sistema operacional dependem do conhecimento. redes.. Se mesmo assim não tenha entendido. Caso tenha dúvidas sobre o sistema. mas os melhores recursos e flexibilidade estão na linha de comando.. saberá avaliar os problemas e a buscar a melhor solução. Não procure saber tudo sobre o sistema de uma só vez. • • • • • • • • • Boa Sorte e bem vindo ao Linux! 5 . Enfim. e você pode ter mais interesse em redes. Eles são úteis para pessoas que usem as versões antigas do Kernel Linux.CURSO DE LINUX BÁSICO: Módulo I melhor o assunto (talvez até me dê uma força para melhorar o guia). configuração. Não desanime vendo outras pessoas que sabem mais que você. A interface gráfica existe. 2. lembre-se que ninguém nasce sabendo. e a Novell. GNU/Linux refere-se a qualquer sistema operacional do tipo Unix que utiliza o núcleo Linux e também os programas de sistema GNU. O kernel poderá ser construído de acordo com a configuração do seu computador e dos periféricos que ele possui. frequentemente GNU/Linux e Linux são sinônimos. ascendendo como principal sistema operacional para servidores – oito dos dez serviços de hospedagem mais confiáveis da Internet utilizam o sistema Linux em seus servidores web. 6 . Inicialmente desenvolvido e utilizado por nichos de entusiastas em computadores pessoais. considerado o Núcleo (ou “cerne”. O Linux é. a Sun Microsystems. o Kernel mais o conjunto de ferramentas GNU compõem o Sistema Operacional. modificar e distribuir livremente. estudar. É um dos mais proeminentes exemplos de desenvolvimento com código aberto e de software livre. e vem se tornando bastante popular no mercado de computadores pessoais. que recursos (memória. periféricos) podem ser utilizados. O seu código fonte está disponível sob GPL (GNU General Public License (Licença Pública Geral)) para qualquer pessoa utilizar.CURSO DE LINUX BÁSICO: Módulo I 1 Introdução Atenção Este capítulo traz uma explicação básica sobre o sistema operacional Linux e algumas das principais distribuições existentes 1. existem dois modos distintos de conceituar um sistema operacional: (i) pela perspectiva do usuário (visão “top-down”). É comum utilizar a abreviatura SO (em português) ou OS (do inglês “Operating System”). Segundo Tanenbaum e Silberschatz. controla quais aplicações (processos) podem ser executadas. O Linux tornou-se o sistema capaz de funcionar no maior número de arquiteturas computacionais disponíveis. todo programa desenvolvido deveria saber como comunicar-se com os dispositivos do computador que precisasse utilizar. a Hewlett-Packard. por isso podemos chamá-lo de GNU/Linux. de baixo para cima. 1. quando. ou seja. No Linux. se não existissem os sistemas operacionais. fazendo o papel de intermediário entre o aplicativo (programa) e os componentes físicos do computador (hardware). “coração”. (ii) numa visão “bottom-up”. como a IBM. Portanto. É utilizado em aparelhos variando desde supercomputadores até celulares. o sistema Linux passou a ter a colaboração de grandes empresas. Como os casos de sistemas de núcleo Linux sem os programas de sistema GNU são raros. é um gerenciador de recursos. disco. geralmente. é uma abstração do hardware.2 O Linux O termo Linux refere-se a qualquer sistema operacional do tipo Unix que utiliza o núcleo Linux.1 Sistema Operacional O Sistema Operacional é um programa (software) ou um conjunto de programas cuja função é servir de interface entre computador e usuário. solicita aos utilizadores que se refiram aos sistemas baseados no Linux como o sistema completo GNU/Linux. criador e líder do projeto GNU.minix: “Você suspira pelos bons tempos do Minix-1. utilitários. (0. muitos programadores têm respondido ao seu chamado. finalmente. gnu-sed. entre outros. AMD). Como eu mencionei há um mês atrás.O. segundo Tanenbaum e Schilberschatz.02. desde mainframes até um relógio de pulso. contudo eu tive sucesso ao executar bash. como handheld. vídeo-jogos e centros multimídia. Alpha etc. passando por várias arquiteturas: x86 (Intel. e têm ajudado a fazer do Linux o sistema operacional que é hoje. gnu-make. nas suas próprias palavras. Richard M.2. Entretanto. 1.os. Ele está.02). Tanenbaum. compressão e outras coisas nele. StrongARM. um pequeno sistema UNIX desenvolvido por Andrew S. 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? Então esta mensagem pode ser exatamente para você. escrito por Linus Torvalds. Finlândia. quando os homens eram homens e escreviam seus próprios “device drivers”? Você está sem um bom projeto em mãos e está desejando trabalhar num S. hackers e colaboradores espalhados ao redor do mundo. gcc. Ele está na versão 0. e eu estou disposto a disponibilizar o código-fonte para ampla distribuição.. que oferece um interpretador de comandos. bibliotecas e compiladores. E depois de algum tempo de trabalho no projeto. com grande penetração também em sistema embutidos. inspirado pelo seu interesse no Minix.. Desde então. AMD64). “um Minix melhor que o Minix” (“a better Minix than Minix”). ele enviou a seguinte mensagem para comp. similar ao Minix para computadores AT-386.1 História do Linux O Kernel do Linux foi. 1.. sozinho. na Califórnia) e tipicamente usam XFree86 ou X.” No dia 5 de outubro de 1991. do Departamento de Ciência da Computação da Universidade de Helsinki. ele pode ser considerado o próprio SO. PowerPC. incluindo o núcleo Linux e outros programas de sistema. Nos meios de comunicação. PVR. Linus Torvalds começou o desenvolvimento do kernel como um projeto particular. originalmente.org para oferecer a funcionalidade dos sistemas de janelas X . Stallman. quando este é definido como gerenciador de recursos de hardware.1. Sistemas completos construídos em torno do kernel Linux majoritariamente utilizam o sistema GNU. Ele limitou-se a criar.2 Algumas Características do Linux • É livre e desenvolvido voluntariamente por programadores experientes. A maioria dos sistemas também inclui ferramentas e utilitários baseados no BSD (Berkeley Software Distribution é um Sistema Operacional UNIX desenvolvido pela Universidade de Berkeley.interface gráfica. Linux refere-se ao sistema completo.2. estou trabalhando numa versão independente de um S. Linus Torvalds anunciou a primeira versão “oficial” do Linux. x86-64 (Intel EM64T. próximo do estado em que poderá ser utilizado (embora possa não ser o que você está esperando).O. O Linux hoje funciona em dezenas de plataformas. com a ajuda de vários programadores voluntários ligados pela Usenet. que têm como objetivo a contribuição para a melhoria e crescimen- 7 .CURSO DE LINUX BÁSICO: Módulo I do inglês kernel) do sistema operacional. Windows. diretórios e programas em execução na memória RAM. Novell. liberando totalmente a memória assim que o programa/dispositivo é finalizado. que é recomendado 8MB de RAM). O LINUX NÃO É VULNERÁVEL A VÍRUS! Devido à separação de privilégios entre processos e respeitadas as recomendações padrão de política de segurança e uso de contas privilegiadas (como a de root. a cada nova versão os desenvolvedores procuram buscar maior compatibilidade. A rede TCP/IP (TCP (Transmission Control Protocol) e IP (Internet Protocol). Acessa corretamente discos formatados pelo DOS. pois tem sua ação limitada pelas restrições de acesso do sistema de arquivos e execução. acrescentar recursos úteis e melhorar o desempenho do sistema (como o que aconteceu na passagem do kernel 2. Em geral. Devido à modularização. O sistema roda bem em computadores 386Sx 25 com 4MB de memória RAM (sem rodar o sistema gráfico X.2. O GNU/Linux é licenciado de acordo com os termos da GPL. Já pensou no seu desempenho em um AM2 ou um Core 2 Duo? O crescimento e novas versões do sistema não provocam lentidão. ARM. ou falha em algum hardware (como a queima do processador ou placa mãe). Multitarefa real (capaz de executar várias tarefas ao mesmo tempo) Multiusuário (suporta mais de um usuário ao mesmo tempo) Suporte a nomes extensos de arquivos e diretórios (255 caracteres). Os drivers (módulos) ocupam pouco espaço quando carregados na memória RAM (cerca de 6Kb para a Placa de rede NE 2000. pelo contrário. programas como vírus tornam-se inúteis. NTFS. Mac etc. Convivem sem nenhum tipo de conflito com outros sistemas operacionais (com o DOS. usando uma boa distribuição que tenha um bom sistema de atualização resolve em 99. Não é preciso um processador potente para funcionar. Modularização . Windows. SunOS.9% os problemas com exploits. Somente é necessário reiniciar o sistema no caso de uma instalação interna de um novo periférico.x). Sun. Unix.CURSO DE LINUX BÁSICO: Módulo I to desse sistema operacional. Proteção entre processos executados na memória RAM. Alpha. Erroneamente esse tipo de ataque é classificado como vírus por pessoas mal informadas e são resolvidas com sistemas bem mantidos. Utiliza permissões de acesso a arquivos. Amiga. Conectividade com outros tipos de plataformas como Apple. OS/2) no mesmo computador. Macintosh. Suporte a mais de 63 terminais virtuais (consoles). PowerPc. como veremos adiante). Muitos deles estavam cansados do excesso de propaganda e baixa qualidade de sistemas comerciais existentes.x para 2. por exemplo). O TCP/IP é um conjunto (ou pilha) de protocolos de co- • • • • • • • • • • • • • • • • • 8 . os drivers dos periféricos e recursos do sistema podem ser carregados e removidos completamente da memória RAM a qualquer momento. OS/2. Não é requerida uma licença para seu uso.0. Atari. Não há a necessidade de se reiniciar o sistema após modificar a configuração de qualquer periférico ou parâmetros de rede. Frequentemente são criados exploits que tentam se aproveitar de falhas existentes em sistemas desatualizados e usá-las para danificar o sistema. Windows e DOS.O GNU/Linux somente carrega para a memória o que é usado durante o processamento. Qualquer programa (nocivo ou não) poderá alterar partes do sistema que possui permissões (será abordado como alterar permissões e tornar seu sistema mais restrito no decorrer do curso). Sparc. é distribuído gratuitamente junto com a maioria das distribuições Linux. porém com transferência mais rápida dos dados). Suporte a dispositivos infravermelho. mas o usuário que se conecta tem a impressão que a rede possui servidores diferentes. a velocidade de transmissão é 10% maior. Para se ter uma idéia. News e outros com um baixo custo e alta performance. Roda aplicações DOS através do DOSEMU. Existem consultores técnicos especializados no suporte ao sistema espalhados por todo o mundo. como o WinSock. sendo muito útil para situações de manutenção em servidores de redes ou para a emulação (simulação feita por um software que reproduz as funções de um determinado ambiente. Possui recursos para atender a mais de um endereço IP na mesma placa de rede. Suporte a dispositivos USB. Suporte a dispositivos Plug-and-Play (dispositivos que são reconhecidos e configurados automaticamente pelo computador). O sistema de arquivos usado pelo GNU/Linux (Ext2) organiza os arquivos de forma inteligente. O GNU/Linux tem suporte nativo a redes TCP/IP e não depende de uma camada intermediária. 9 . E-mail. Os servidores WEB e FTP podem estar localizados no mesmo computador. você pode ver o que o código fonte (instruções digitadas pelo programador) faz e adaptá-lo às suas necessidades ou de sua empresa. O melhor servidor Web do mercado. Permite a montagem de servidores Web. É mais rápida que no Windows e tem suas pilhas constantemente melhoradas. Roda aplicações Windows através do WINE. Suporte a diversos dispositivos e periféricos disponíveis no mercado. • • • • • • • • • • • • • • • • • Existem também muitas outras características. enquanto está processando o programa). as quais você descobrirá durante o uso do sistema. Em acessos à Internet via modem. a fim de permitir a execução de outros softwares sobre ele) de “mais computadores” virtualmente. tanto os novos como obsoletos. Pode ser executado em várias arquiteturas diferentes (Intel. o Apache. Alpha e Arm por exemplo).CURSO DE LINUX BÁSICO: Módulo I municação entre computadores em rede. BOCHS. Vários tipos de firewalls (dispositivo de rede para aplicar política de segurança) de alta qualidade e com grande poder de segurança de graça. Macintosh. QEMU. O mesmo acontece com o Sendmail. evitando a fragmentação e fazendo dele um poderoso sistema para gravações intensivas e aplicações multi-usuárias exigentes. onde cada camada é responsável por um grupo de tarefas. é possível dar o boot em um sistema DOS qualquer dentro dele e ao mesmo tempo usar a multitarefa deste sistema. Suporte a Fireware (Tecnologia semelhante a do USB. Suporte a rede via rádio amador. Por ser um sistema operacional de código aberto. fornecendo um conjunto de serviços bem definidos para o protocolo da camada superior. O conjunto de protocolos pode ser visto como um modelo de camadas. Dispositivos Wireless. Essa característica é uma segurança a mais para quem precisa se defender contra roubo de dados (você não sabe o que um sistema sem código fonte faz na realidade. Não adianta muito recorrer a chats e fóruns sobre qual é a melhor distribuição. Red Hat. apesar de ser o principal. nomes de arquivos de configuração. seguindo o estilo de desenvolvimento GNU/Linux. tem suporte a dez arquiteturas diferentes (como i386. A escolha de sua distribuição deve ser feita com muita atenção. bancos de dados. Mandriva. Os pacotes podem ser instalados através de Tarefas. por exemplo. Esse é o significado básico de distribuição. Arm) e aproximadamente 15 sub-arquiteturas. contendo seleções de pacotes de acordo com a utilização do computador. Possui suporte para língua Portuguesa.CURSO DE LINUX BÁSICO: Módulo I 1. Sparc. A instalação da distribuição pode ser feita tanto através de Disquetes. jogos. Debian. portanto. Por esse motivo. muito menos ser levado pelas propagandas ou pelo vizinho. Alpha. É a única distribuição não comercial onde todos podem contribuir com seu conhecimento para o seu desenvolvimento. Seguem abaixo as características de algumas distribuições.3 Distribuições do Linux Só o kernel GNU/Linux não é suficiente para se ter uma sistema funcional. formatação de documentos e firewalls). Tftp.) ou através de uma seleção indi- 10 . desenvolvimento. jogos. O melhor caminho para a escolha da distribuição é perguntar as características de cada uma e o porquê dessa pessoa gostar dela. A atualização da distribuição ou de pacotes individuais pode ser feita facilmente através de dois comandos. Possui tanto ferramentas para administração de redes e servidores quanto para desktops. como o sistema de instalação. planilhas. Ftp. desenvolvimento e web. essa mesma distribuição pode não ser a melhor para lhe atender. Suse.org/) Distribuição desenvolvida e atualizada através do esforço de voluntários espalhados ao redor do mundo. como o GNU hurd). são feitos extensivos testes antes do lançamento de cada versão. Macintosh. foi adotada como a distribuição oficial do projeto GNU. Gentoo. que encaminha a falha encontrada diretamente ao responsável para avaliação e correção. todas usando o SO Linux como kernel principal (a Debian é uma distribuição independente de kernel e pode ser executada sob outros kernels. Existem grupos de pessoas. NFS ou através da combinação de vários destes em cada etapa de instalação. desktop etc. estações multimídia. (servidor Web. seguidas do endereço do site principal: Debian (Saiba mais em http://www. Para gerenciar os voluntários. Ubuntu. conta com centenas de listas de discussão envolvendo determinados desenvolvedores das mais diversas partes do mundo. pois cada um usa uma distribuição que se encaixa de acordo com suas necessidades. Não pergunte qual é a melhor versão. PowerPc.debian. TeX. ambientes de programação. empresas e organizações que decidem “distribuir” o Linux junto com outros programas essenciais (como. Cada distribuição tem sua característica própria. editores gráficos. Para atingir um alto grau de confiabilidade. o seu objetivo. CDROM. não requerendo adquirir um novo CD para usar a última versão da distribuição. Os erros encontradas nos pacotes podem ser relatados através de um sistema de tratamento de falhas. A escolha de uma distribuição é pessoal e depende das necessidades de cada um. Algumas distribuições muito conhecidas são: Slackware. a localização de programas. Qualquer um pode receber a lista de falhas ou sugestões sobre a distribuição: basta cadastrar-se numa das listas de discussão que tratam especificamente da solução de falhas encontradas na distribuição (disponível na página principal da distribuição). Debian Security Alert) e disponibilizada uma atualização para correção das diversas versões da Debian. independente de registro. O suporte ao usuário e o desenvolvimento da distribuição são feitos através de listas de discussões e canais IRC. gráficos. Foi a primeira distribuição a ser lançada no mundo e costuma trazer o que há de mais novo enquanto mantém uma certa tradição. Isso é geralmente feito em menos de 48 horas desde a descoberta da falha até a divulgação da correção. Ela não está disponível para download. lançada em Abril de 1993. Como quase todas as falhas são descobertas em programas. Red Hat Enterprise Linux (Saiba mais em http://www. e todos os outros pacotes) que possam comprometer o servidor.) ou através da seleção individual de pacotes. mais parecida com UNIX. garantindo que somente os pacotes selecionados sejam instalados. A atualização da distribuição pode ser feita através do CD-ROM de uma nova versão ou baixando pacotes pela internet. provendo simplicidade. facilidade de uso e. apenas vendida a custos desde 179 dólares (a versão workstation) até 1499 dólares (advanced server). Também conta com uma certificação chamada RHCE. ou seja. que é um padrão de organização de diretórios e arquivos para as distribuições. SuSE (Saiba mais em http://www. servidor de rede. específica desta distro. Sua instalação pode ser feita via CD-ROM ou DVD (é a primeira distribuição com instalação através de DVD). Existe um time de desenvolvedores com a tarefa específica de monitorar atualizações de segurança em serviços (apache. o Projeto Slackware Linux tem buscado produzir a distribuição Linux mais UNIX-like. 11 . Usuários registrados têm direito a suporte de instalação via e-mail.com/) Distribuição desenvolvida por Patrick Volkerding.com/) Distribuição comercial Alemã com a coordenação sendo feita através dos processos administrativos dos desenvolvedores e de seu braço norte-americano.slackware.2). O Slackware segue os padrões Linux como o Linux File System Standard.redhat. programadores e administradores. ou seja. flexibilidade e poder. com isso. A base de dados de suporte também é excelente e está disponível na web para qualquer usuário. etc.CURSO DE LINUX BÁSICO: Módulo I vidual de pacotes. a fim de alcançar facilidade de uso e estabilidade como prioridades principais. Slackware (Saiba mais em http://www.suse. A seleção de pacotes durante a instalação pode ser feita através da seleção do perfil de máquina (developer. o Slackware era o melhor para o usuário mais “velho”. é enviado uma alerta (DSA . esse método também pode ser usado por administradores de outras distribuições para manterem seu sistema seguro e atualizado. O foco da Suse é o usuário com conhecimento técnico no Linux e não o usuário iniciante no Linux (até a versão 6. O sistema de gerenciamento de pacotes é o RPM padronizado.com/) Distribuição comercial suportada pela Red Hat e voltada a servidores de grandes e médias empresas. Assim que uma falha é descoberta. sendmail. Enquanto as pessoas diziam que a Red Hat era a melhor distribuição para o usuário iniciante. estação gnome. estação kde. deixando-o vulnerável a ataques. Desde a primeira versão. é de muito fácil utilização e suporta uma boa quantidade de hardwares disponíveis. voltadas para eles. o Fedora conta com um o up2date (um software para manter o sistema atualizado) e utiliza pacotes de programas no formato RPM. 12 . Video Players ou NTFS (Discos do Windows) em virtude de problemas legais. a MandrakeSoft anunciou a compra da Conectiva. obviamente. a distribuição mais utilizada do mundo.CURSO DE LINUX BÁSICO: Módulo I Fedora (Saiba mais em http://fedora. Existia. possui funções de servidor e aplicativos para produtividade e desenvolvimento de softwares. mas pouca gente (nova) sabe que Conectiva e Mandrake já tiveram seu grande reinado. apesar da popularidade e do uso serem baixos no Brasil. a primeira distribuição nacional. A distribuição Fedora dá prioridade ao uso do computador como estação de trabalho.net/kurumin/index.com/) O Fedora Linux é a distribuição de desenvolvimento aberto patrocinada pela RedHat e pela comunidade. inclusive. na época. Além de contar com uma ampla gama de ferramentas de escritório. Caso goste. Aqui (no Brasil) as distros mais usadas são as baseadas em Debian.3 milhões. suporte para a maioria dos winmodens encontrados no Brasil. todos eles pagos. sendo ideal para quem deseja testar uma distribuição Linux. a empresa passou a se chamar Mandriva.php/) Uma distribuição baseada em Debian que roda diretamente a partir do CD.redhat. Ela não é suportada pela Red Hat como distribuição oficial (a empresa suporta apenas a linha Red Hat Enterprise Linux). Já o Mandriva Free não contém aplicativos ou drivers proprietários nem suporte oficial. não possui suporte a MP3. terá de procurar distribuidores independentes ou fazer o download dos quatro CDs pelo site oficial. O Fedora não é distribuído oficialmente através de mídias ou CDs. Kurumin (Saiba mais em http://guiadohardware. sendo necessário o download de alguns plugins para a utilização destas funções. o usuário pode instalá-la diretamente no disco rígido. devendo obter suporte através da comunidade ou outros meios. no dia 24 de fevereiro de 2005. Por outro lado. é baseada na versão da antiga linha de produtos RedHat Linux. Criada em 2002. O antigo Mandrake foi uma das primeiras distribuições a usar um instalador gráfico e era. na época. Considerado um dos sistemas mais fáceis de instalar e utilizar. por US$2. Enfim. composto pelo Discovery (iniciantes). mais robustas e antigas. inclui tradução para português do Brasil e suporte às plataformas Intel e 64 bits. Distribuída a partir do CD. A partir daí. Por basear-se no RedHat. de muito fácil operação. A versão instalada possui. com um suporte gigantesco aos usuários brasileiros e líder na América Latina. Mandriva O Mandriva é uma das distribuições Linux mais fáceis de usar. O Mandriva possui duas versões: o pacote comercial. Powerpack (para experientes) e Powerpack+ (pequenas e médias empresas). porém tem o download disponibilizado livremente. quando a maioria dos usuários de Linux era de técnicos e as distribuições. Se você quiser obtê-lo. a Conectiva. um dos mais comuns. é qualquer programa de computador que pode ser usado. A maneira usual de distribuição de software livre é anexar a ele uma licença de software livre e tornar o código fonte do programa disponível.4 Software Livre Software livre.CURSO DE LINUX BÁSICO: Módulo I Gentoo Linux É uma distribuição gratuita do sistema operacional GNU/Linux baseada na GNU General Public License. pois cada pacote é compilado durante a instalação. que se opõe ao modelo de software proprietário. estudado. que dá ao usuário a possibilidade de ter um sistema adaptado ao seu perfil. Essa liberdade é um conceito central. é aconselhada também a todos que queiram saber o máximo sobre GNU/Linux. Essa distribuição é direcionada para usuários avançados ou experientes. A distribuição adotada neste curso é a Debian. Acesso ao código-fonte é um pré-requisito para esta liberdade • A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo (liberdade nº2) • A liberdade de aperfeiçoar o programa e liberar os seus aperfeiçoamentos. a distribuição se torna mais veloz. Quando bem instalada e configurada. Um software é considerado como livre quando atende aos quatro tipos de liberdade para usuários do software definidos pela Free Software Foundation: • A liberdade para executar o programa. O diferencial do Gentoo Linux em relação às outras distribuições está no uso da ferramenta Portage. segundo a definição criada pela Free Sofware Foudation. copiado. O acesso ao código-fonte é um pré-requisito para esta liberdade. correndo programas emulados mais rápido que o próprio Windows. otimizada e com todas as dependências resolvidas. Entretanto. O software livre também é conhecido pelo acrônimo FLOSS (do inglês Free/Libre Open Source Software). baseado nas especificações dadas pelo usuário). para qualquer propósito (liberdade nº 0) • A liberdade para estudar como o programa funciona e adaptá-lo para as suas necessidades (liberdade nº1). devido à complexidade de executar tarefas que em outras distribuições são realizadas de forma simples. Porém. mas não ao software que é vendido almejando lucro (software comercial). de forma automatizada. modificado e redistribuído sem nenhuma restrição. Devido a essas características. de modo que toda a comunidade se beneficie (liberdade nº3). o Gentoo Linux é considerado uma meta-distribuição (Meta-distribuição é um termo referente a uma distribuição de software adaptável e capaz de construir a si mesmo. boa parte do conteúdo abordado é válido para qualquer distribuição Linux. Atenção 1. 13 . você deve segurar CTRL+ALT enquanto pressiona uma tecla de <F1> a <F6>. placa de fax. que pode ser acessada no computador local ou remotamente. etc). você pode acessar outros terminais virtuais segurando a tecla ALT e pressionando F1 a F6. discos rígidos. por motivos de economia de memória RAM (cada terminal virtual ocupa aproximadamente 350 Kb de memória RAM. 2. etc). No GNU/Linux. scripts. Se estiver usando o modo gráfico. A posição onde o comando será digitado é marcada com um “traço” piscante chamado de cursor. segure ALT enquanto pressiona <F2> para abrir o segundo terminal virtual e faça o login como “root”. em modo texto. 2. Um exemplo prático: Se você estiver usando o sistema no Terminal 1 com o nome “joao” e desejar entrar como “root” para instalar algum programa. O aviso de comando do usuário root é identificado por uma “#” (tralha). por exemplo. 2. O GNU/Linux faz uso de sua característica multi-usuária usando os “terminais virtuais”.1 Hardware e Software • • Hardware significa parte física do computador (disquete. que serão passados ao interpretador de comandos para sua execução. via ssh.3 Aviso de comando (Prompt) Atenção Aviso de comando (ou Prompt). neste capítulo. é a linha mostrada na tela do terminal para digitação de comandos. impressoras. banco de dados. Cada tecla de função corresponde a um número de terminal do 1 ao 6 (o sétimo é usado por padrão pelo ambiente gráfico X). Um terminal virtual é uma segunda seção de trabalho completamente independente de outras.2 Terminal Virtual (console) Terminal (ou console) é o teclado e tela conectados em seu computador. comandos. Desative a quantidade que não estiver usando para liberar memória RAM para uso de outros programas!). Softwares são os programas usados no computador (sistema operacional. placa mãe. monitores. Será aberta uma nova seção para o usuário “root” e você poderá retornar a hora que quiser para o primeiro terminal pressionando ALT+<F1>. O GNU/Linux possui mais de 63 terminais virtuais. planilha. mas apenas seis estão disponíveis inicialmente. processador de textos. alguns conceitos relacionados ao computador e ao sistema operacional. 14 . É necessário o uso do cursor para sabermos onde iniciar a digitação de textos e nos orientarmos quanto à posição na tela.CURSO DE LINUX BÁSICO: Módulo I 2 Alguns Conceitos Básicos Atenção São apresentados. É a principal ligação entre o usuário. Isto é feito pressionando-se a tecla TAB. • Pressione CTRL+U para apagar o que estiver à esquerda do cursor.4 Interpretador de comandos Também conhecido como “shell”. Pressione CTRL+Y para colocar o texto que foi apagado na posição atual do cursor. Você pode retornar a comandos já digitados pressionando as teclas Seta para cima / Seta para baixo. O GNU/Linux possui diversos tipos de interpretadores de comandos. o computador executa os comandos do arquivo um por um. ou o próximo comando. por exemplo. Os comandos podem ser enviados de duas maneiras para o interpretador: interativa e não-interativa: Interativa Os comandos são digitados no aviso de comando e passados ao interpretador de comandos um a um. O conteúdo apagado é copiado para uso com CTRL+y. Não-interativa São usados arquivos de comandos criados pelo usuário (scripts) para o computador executar tais comandos na ordem encontrada no arquivo. Se você apertar novamente a tecla TAB 15 . o interpretador de comandos é o programa responsável em interpretar as instruções enviadas pelo usuário e seus programas ao sistema operacional (o kernel). ou para compilar algum programa complexo.CURSO DE LINUX BÁSICO: Módulo I e o aviso de comando de usuários é identificado pelo símbolo “$”. O shell Bash possui ainda outra característica interessante: A completação dos nomes. Neste modo. se digitar “ls tes” e pressionar <tab>. Por exemplo. • Pressione CTRL+L para limpar a tela e manter o texto que estiver sendo digitado na linha de comando (parecido com o comando clear). 2. • Pressione CTRL+K para apagar o que estiver à direita do cursor. o script pode checar qual será o próximo comando que será executado e dar continuidade ao processamento. os programas e o kernel. • Pressione CTRL+E para mover o cursor para o fim da linha de comandos. Isso é padrão em sistemas UNIX. Logo abaixo. é emitido um beep. A tela pode ser rolada para baixo ou para cima segurando a tecla SHIFT e pressionando PGUP ou PGDOWN. O conteúdo apagado é copiado para uso com CTRL+y. Ele que executa comandos lidos do dispositivo de entrada padrão (teclado) ou de um arquivo executável. o computador depende do usuário para executar uma tarefa. Isto é útil para ver textos que rolaram rapidamente para cima. veja algumas dicas sobre a edição da linha de comandos (não é necessário se preocupar em decorá-los): • Pressione a tecla Back Space (“<--”) para apagar um caractere à esquerda do cursor. • Pressione CTRL+A para mover o cursor para o inicio da linha de mandos. • Pressione a tecla Del para apagar o caractere acima do cursor. Este sistema é útil quando temos que digitar por várias vezes seguidas um mesmo comando. ou nenhuma. Caso a completação de nomes encontre mais do que uma expressão que satisfaça a pesquisa. Neste modo. o Bash localizará todos os arquivos que iniciam com “tes” e completará o restante do nome. e dependendo do término do comando. sendo que entre eles o mais usado é o bash. Por exemplo. exit ou CTRL+D ou quando o sistema é reiniciado ou desligado. Podem ser usadas mais de uma opção com um único hífen.. origem. 2. entrada padrão ou saída padrão que será passada ao comando.7 Comandos Comandos são ordens que passamos ao sistema operacional para executar uma determinada tarefa. Um comando pode receber opções e parâmetros: opções As opções são usadas para controlar como o comando será executado. Neste caso queremos que ele liste os arquivos do diretório /usr/doc/copyright. É sempre usado um espaço depois do comando para separá-lo de uma opção ou parâmetro que será passado para o processamento. ls tes(pressione TAB) 2. grupo e tamanho dos arquivos você deve digitar ls -l. 2. /usr/doc/copyright será o parâmetro passado ao comando ls. Por exemplo: . É normal errar o nome de comandos.CURSO DE LINUX BÁSICO: Módulo I imediatamente depois do beep.5 Login Login é a entrada no sistema. para que você possa escolher a que lhe interessa. Cada comando tem uma função específica – devemos saber a função de cada comando e escolher o mais adequado para fazer o que desejamos. mas há casos em que somente “-” ou “--” esta disponível. Pode ser usado tanto “-” como “--”. mais adiante. quando você digita seu nome e senha. uma lista de vários comandos organizados por categoria com a explicação sobre o seu funcionamento e as opções aceitas (incluindo alguns exemplos).Para mudar de diretório Este material inclui. mas não se preocupe. Quando isto acontecer. destino. O comando ls --all é equivalente a ls -a. o sistema mostrará a mensagem command not found (co- 16 .Mostra arquivos de diretórios . parâmetros Um parâmetro identifica o caminho. para fazer uma listagem mostrando o dono.ls .cd . Exemplos: ech(pressione TAB). A saída do sistema é feita pelos comandos logout. Se você digitar: ls /usr/doc/copyright.6 Logout Logout é a saída do sistema. O comando ls -l -a é a mesma coisa de ls -la -Opção identificada por um nome. A completação de nomes funciona sem problemas para comandos internos. o interpretador de comandos irá listar as diversas possibilidades que satisfaçam a pesquisa. Opções podem ser passadas ao comando através de um “-” ou “--”: Opção identificada por uma letra. ou seja. mas é conveniente o seu uso para determinarmos facilmente o tipo de arquivo e de que programa precisaremos para abri-lo. • system.Arquivo compactado pelo utilitário gzip. uma planilha e vários outras informações. Prefira. para que ele possa ser encontrado facilmente quando for utilizado. Um arquivo pode conter um texto feito por nós. • index.log .txt é um texto simples e podemos ver seu conteúdo através do comando cat. A extensão de um arquivo também ajuda identificar que programa precisa ser utilizado para abri-lo. • arquivo. Seção 2.2 Tamanho de arquivos A unidade de medida padrão nos computadores é o bit. um programa. usar letras minúsculas para identificar seus arquivos.txt . se você criar um arquivo 17 .html contém uma página de Internet e precisaremos de um navegador para poder visualizá-lo (como o lynx. você tem a possibilidade de criar comandos personalizados usando outros comandos mais simples (isto será visto mais adiante). Um arquivo oculto no GNU/Linux é identificado por um “.2. ele diferencia letras maiúsculas e minúsculas nos nomes de arquivos. A um conjunto de 8 bits nós chamamos de byte. uma música.Registro de algum programa no sistema. No GNU/ Linux. Por exemplo. O byte representa uma letra em texto. Deve ser usado o comando ls –a para também listar arquivos ocultos. o arquivo relatório. O GNU/Linux é Case Sensitive.8.sh . Assim. pois quase todos os comandos do sistema estão em minúsculas. Os comandos se encaixam em duas categorias: Comandos Internos e Comandos Externos. nada melhor que salvá-lo com o nome historia.3).” no início do nome (por exemplo. 2.txt indica que o conteúdo é um arquivo texto. A extensão (na maioria dos casos) não é requerida pelo sistema operacional GNU/Linux. em “ls -la /usr/doc”. • script.bashrc). Essa regra também é válida para os comandos e diretórios. -la é a opção passada ao comando.CURSO DE LINUX BÁSICO: Módulo I mando não encontrado) e voltará ao aviso de comando. somente dizem que algo deu errado para que você possa corrigir e entender o que aconteceu. Por exemplo: • relatório.Página de Internet (formato Hypertexto). e /usr/doc é o diretório passado como parâmetro ao comando ls. Por exemplo.O . Cada arquivo/diretório possui um tamanho que indica o espaço que ele ocupa no disco. Cada arquivo deve ser identificado por um nome. sempre que possível. Arquivos ocultos não aparecem em listagens normais de diretórios. Já o arquivo index.8 Arquivo É onde gravamos nossos dados.gz . Atenção 2. Se estiver fazendo um trabalho de história.Arquivo de Script (interpretado por /bin/sh). Um arquivo pode ser binário ou texto (para detalhes veja Arquivo texto e binário.8.1 Extensão de arquivos A extensão serve para identificar o tipo do arquivo.” no nome de um arquivo. Firefox ou o Netscape). O arquivo historia é completamente diferente de Historia. e isto é medido em bytes. . ls é o comando. As mensagens de erro não fazem nenhum mal ao seu sistema. A extensão é formada pelas letras após um “. 2.html . e /usr/doc é o diretório passado como parâmetro ao comando ls. Um arquivo texto pode ser uma carta. um programa de computador escrito pelo programador. 2.1Kilo é igual Atenção Por exemplo.048.741. e assim por diante. ls é o comando. Estas letras servem para facilitar a leitura em arquivos de grande tamanho. Binário Seu conteúdo somente pode ser entendido por computadores. 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. 1Mb (ou 1M) é igual a um arquivo de 1024K ou 1024x1024 = 1. Uma forma que pode inicialmente lhe ajudar a lembrar: K vem de Kilo que é igual a 1000 . Espaços em branco e novas linhas também ocupam bytes. Mbytes.CURSO DE LINUX BÁSICO: Módulo I vazio. -la é a opção passada ao comando. também é “Case Sensitive” (diretório /teste é completa- 18 . um script. Compilação é basicamente a conversão de um programa em linguagem humana (texto) para a linguagem de máquina (binário).741. A lista completa em ordem progressiva das unidades de medida é a seguinte: Símb. certo?.073. conhecidos como pastas.9 Diretório Diretório é o local utilizado para armazenar conjuntos de arquivos para melhor organização e localização.741. etc. a 1000 gramas. o “M” por 10^6. arquivo de configuração.576 bytes 1Gb (ou 1G) é igual a um arquivo de 1024Mb ou 1048576Kb ou 1. Contém caracteres incompreensíveis para pessoas normais. O “K” significa multiplicar por 10^3. como o arquivo. T (tera) vêm da matemática.824 bytes (1 Gb é igual a 1.824 bytes.824 bytes. existem as medidas Kbytes.073. um arquivo pode ser de texto ou binário: Texto Seu conteúdo é compreendido pelas pessoas. Os prefixos K (quilo). Além do byte. Um arquivo binário é gerado por um arquivo de programa (formato texto) através de um processo chamado de compilação. O diretório. G (giga).3 Arquivo texto e binário Quanto ao tipo. em “ls -la /usr/doc”. Gbytes. M (mega). escrever o nome Linux e salvar o arquivo. Um arquivo de 1K é a mesma coisa de um arquivo de 1024 bytes. este terá o tamanho de 5 bytes. Deu pra notar que é mais fácil escrever e entender como 1Gb do que como 1.073. Da mesma forma. são muitos números!).8. Seu uso é útil para identificar de forma fácil tipos de arquivos nas listagens de diretórios. caminho1/arquivo1 Outro diretório/arquivo que será listado. • • • always .. exceto o diretório atual e o de nível anterior. Não podem existir dois arquivos com o mesmo nome em um diretório. -h. -d. --almost-all Lista todos os arquivos (inclusive os ocultos) de um diretório. auto .Sempre lista em cores conforme o tipo de arquivo. opções -a. --directory Lista os nomes dos diretórios ao invés do conteúdo. --no-group Oculta a coluna de grupo do arquivo. -A. 2. --all Lista todos os arquivos (inclusive os ocultos) de um diretório.. -F Insere um caracter após arquivos executáveis (‘*’).Somente colore a listagem se estiver em um terminal. 19 . Onde: caminho/arquivo Diretório/arquivo que será listado. ls [opções] [caminho/arquivo] [caminho1/arquivo1] . conforme o tipo de arquivo. diretórios (‘/’). Podem ser feitas várias listagens de uma só vez. -f Não classifica a listagem. Mbytes. que será visto mais adiante. --ignore-backups Não lista arquivos que terminam com ~ (Backup). Para criar um diretório utilizamos o comando mkdir. Os diretório nos sistemas Linux são especificados por uma “/”.Nunca lista em cores (mesma coisa de não usar o parâmetro --color). -B. --color=PARAM Mostra os arquivos em cores diferentes.9.CURSO DE LINUX BÁSICO: Módulo I mente diferente do diretório /Teste).1 Comandos para manipulação de diretórios ls Lista os arquivos de um diretório. Gbytes. link simbólico (‘@’) e pipe (‘|’). --human-readable Mostra o tamanho dos arquivos em Kbytes. PARAM pode ser: never . -G. ou um sub-diretório com um mesmo nome de um arquivo em um mesmo diretório. soquete (‘=’). etc. Lista as permissões. -r Inverte a ordem de classificação. Classificação da listagem A listagem pode ser classificada usando-se as seguintes opções: -f Não classifica. Esta opção é típica de sistemas Linux. --full-time Lista data e hora completa. Gbytes. mas usa unidades de 1000 ao invés de 1024 para especificar Kbytes. -c Classifica pela data de alteração. mas não inclui o símbolo ‘*’ em arquivos executáveis. donos. -o Usa a listagem longa sem os donos dos arquivos (mesma coisa que -lG). -l Usa o formato longo para listagem de arquivos. -n Usa a identificação de usuário e grupo numérica ao invés dos nomes. lista os arquivos na ordem do diretório.CURSO DE LINUX BÁSICO: Módulo I -H Faz o mesmo que -h. -U Não classifica. --dereference Lista o arquivo original e não o link referente ao arquivo.1 gleydson user 8192 nov 4 16:00 teste Abaixo as explicações de cada parte: -rwxr-xr-- 20 . Uma listagem feita com o comando ls -la normalmente é mostrada da seguinte maneira: -rwxr-xr-. Mbytes. -X Classifica pela extensão. e usa -au para listar os arquivos. -p Mesma coisa que -F. -L. -R Lista diretórios e sub-diretórios recursivamente. data de modificação. grupos. Se o arquivo foi criado há mais de um ano. Como uma pessoa organizada. teste Nome do arquivo. O diretório pode ser entendido como uma pasta em que você guarda seus papéis (arquivos). A primeira letra (da esquerda) identifica o tipo do arquivo.Listagem completa (vertical) dos arquivos do diretório /bin inclusive os ocultos. se tiver um d é um diretório. criando um diretório ‘vendas’ para guardar seus arquivos relacionados a vendas naquele local. Você pode usar o comando pwd para verificar em qual diretório se encontra (caso seu aviso de comandos não mostre isso).CURSO DE LINUX BÁSICO: Módulo I São as permissões de acesso ao arquivo teste. As permissões de acesso serão explicadas em detalhes mais adiante. 8192 Tamanho do arquivo (em bytes). 1 Se for um diretório. Caso for um arquivo. Um diretório é usado para armazenar arquivos de um determinado tipo. ls /bin /sbin .Lista os arquivos do diretório atual. nov Mês da criação/última modificação do arquivo. mkdir [opções] [caminho/diretório] [caminho1/diretório1] Onde: mkdir 21 . você utilizará uma pasta para guardar cada tipo de documento. mostra a quantidade de sub-diretórios existentes dentro dele. se tiver um “-” é um arquivo normal. será 1. 16:00 Hora em que o arquivo foi criado/modificado.Lista os arquivos do diretório /bin e /sbin • ls -la /bin . pwd Cria um diretório no sistema. user Nome do grupo ao qual o arquivo teste pertence. Exemplos do uso do comando ls: • • ls . 4 Dia em que o arquivo foi criado. Por exemplo. gleydson Nome do dono do arquivo teste. Mostra o nome e caminho do diretório atual. em seu lugar é mostrado o ano da criação do arquivo. você retornará ao seu diretório de usuário (diretório home). Estes são chamados de sub-diretórios já que estão dentro do diretório “/”. /sbin./bin. sobe um diretório. As mensagens de erro serão mostradas mesmo que essa opção não seja usada. /usr/local. Para criar um novo diretório...3 pwd Mostra o nome e caminho do diretório atual. Exemplos: • Usando cd sem parâmetros ou cd ~. • cd . Dentro dele estão todos os outros diretórios do sistema. Assim. • cd .9.2 cd Entra em um diretório. opções: --verbose Exibe uma mensagem para cada diretório criado. • cd -./[diretório]. você deve ter permissão de gravação. 2.. /usr. você deve usar o comando mkdir / tmp/teste. Nele estão localizados outros diretórios como o /bin. sobe um diretório e entra imediatamente no próximo (por exemplo. O diretório Raíz é representado por uma “/”.CURSO DE LINUX BÁSICO: Módulo I caminho Caminho onde o diretório será criado. A estrutura de diretórios e sub-diretórios pode ser identificada da seguinte maneira: • / • /bin • /sbin • /usr • /usr/local • /mnt • /tmp 22 . 2. 2. o comando cd retorna um diretório (/usr) e entra imediatamente no diretório bin (/usr/bin). /tmp. se você digitar o comando cd / você estará acessando este diretório. retornará ao diretório anteriormente acessado. Por exemplo.9. diretório Nome do diretório que será criado.5 Diretório Raiz Este é o diretório principal do sistema. para criar um diretório em /tmp com o nome de teste que será usado para gravar arquivos de teste.Você precisa ter a permissão de execução para entrar no diretório..9.diretório que deseja entrar. cd [diretório] Onde: diretório . Você pode usar o comando pwd para verificar em qual diretório se encontra (caso seu aviso de comandos não mostre isso). retornará ao diretório raíz. /var e /home. Pode ser criado mais de um diretório com um único comando (mkdir / tmp/teste /tmp/teste1 /tmp/teste2). /mnt. quando você está em /usr/sbin. você digita cd . • cd /. você pode retornar facilmente para o diretório /usr/local usando cd -.9.. você pode digitar tanto o comando ls / home/joao como ls ~ para listar os arquivos de seu diretório home. 2. O diretório home também é identificado por um ~ (til). (2 pontos).. Caso estiver no diretório /usr/local e quiser listar os arquivos do diretório /usr você pode digitar. o diretório de usuário pode ter a seguinte forma: /home/[primeira_letra_do_nome]/[login]... “ls .9 Diretório Anterior O diretório anterior é identificado por “-”. Você pode digitar o comando pwd para verificar qual é seu diretório atual. Mudar o diretório atual para /usr/doc/copyright com o comando cd / usr/doc/copyright e usar o comando cat GPL 23 . Em sistemas GNU/Linux cada usuário (inclusive o root) possui seu próprio diretório onde poderá armazenar seus programas e arquivos pessoais.. O diretório atual também é identificado por um “. Dependendo de sua configuração e do número de usuários em seu sistema.6 Diretório atual É o diretório em que nos encontramos no momento. Este diretório está localizado em /home/[login]. pode ser usado para listar seus arquivos (é claro que isto é desnecessário porque se não digitar nenhum diretório. O comando ls. Ou se você estiver no diretório /usr/local e quiser mudar para o diretório superior /usr basta digitar “cd .CURSO DE LINUX BÁSICO: Módulo I • • /var /home A estrutura de diretórios também é chamada de Árvore de Diretórios porque é parecida com uma árvore de cabeça para baixo./. Cada diretório do sistema tem seus respectivos arquivos que são armazenados conforme regras definidas pela FHS (FileSystem Hierarchy Standard .9. se quiser ir direto do diretório /usr/local para o diretório raiz / digite “cd . Neste caso se o seu login for “joao” o seu diretório home será /home/joao. definindo que tipo de arquivo deve ser armazenado em cada diretório. etc.” . Ou ainda.9.8 Diretório Superior O diretório superior (Upper Directory) é identificado por . neste caso se o seu login for “joao” o seu diretório home será /home/j/joao. Se desejar ver o arquivo /usr/doc/copyright/GPL você tem duas opções: 1.9. 2. 2.7 Diretório home Também chamado de diretório de usuário. Se estive no diretório /usr/local e digitar cd /lib. Essa forma só seria realmente útil em um sistema com uma grande quantidade de usuários. o comando ls sozinho listará o conteúdo do diretório atual). 2.9.” (ponto).0.10 Caminho na estrutura de diretórios O caminho na estrutura de diretórios são os diretórios que teremos que percorrer até chegar ao arquivo ou diretório que procuramos. O diretório home do usuário root (na maioria das distribuições GNU/ Linux) está localizado em /root. mover arquivos/diretórios.” .” Este recurso também pode ser usado para copiar. É útil para retornar ao último diretório usado. 2.Hierarquia Padrão do Sistema de Arquivos) versão 2. Neste caso. Atenção EXEMPLO Um exemplo de diretório é o seu diretório de usuário. /usr/doc/copyright é o caminho de diretório que devemos percorrer para chegar até o arquivo GPL. mes02-99. mes03-99 são diretórios usados para armazenar os arquivos de pedidos do mês e ano correspondente. mes03-99 é um subdiretório que contém os arquivos de vendas do mês 03/1999. mes02-99 é um subdiretório que contém os arquivos de vendas do mês 02/1999. um exemplo de uma empresa que precisa controlar os arquivos de pedidos que emite para as fábricas: /pub/vendas . • Na segunda. mes0299 e mes03-99? É porque eles estão dentro do diretório vendas.diretório contendo vendas do mês 02/1999 /pub/vendas/mes03-99 .diretório contendo vendas do mês 03/1999 • • • • o diretório vendas é o diretório principal. você muda o diretório padrão para /usr/doc/copyright (confira digitando pwd) e depois o comando cat GPL. 2. Um diretório também pode conter outro diretório. Usar o comando “cat” especificando o caminho completo na estrutura de diretórios e o nome do arquivo: cat /usr/doc/copyright/GPL.CURSO DE LINUX BÁSICO: Módulo I O caminho de diretórios é necessário para dizer ao sistema operacional onde encontrar um arquivo na “árvore” de diretórios. Você pode listar os arquivos do diretório /usr/doc/copyright com o comando “ls”. vendas é um sub-diretório de pub. Isso é útil quando temos muitos arquivos e queremos melhorar sua organização. mes01-99. As duas soluções acima permitem que você veja o arquivo GPL. Da mesma forma. Todos seus arquivos essenciais devem ser colocados neste diretório. você continuará no diretório padrão (confira digitando pwd). A diferença entre as duas é a seguinte: • Na primeira. Você reparou que usei a palavra sub-diretório para mes01-99.diretório contendo vendas do mês 01/1999 /pub/vendas/mes02-99 . mes01-99 é um subdiretório que contém os arquivos de vendas do mês 01/1999. Digitando ls.diretório principal de vendas /pub/vendas/mes01-99 . os arquivos do diretório atual serão listados. é digitado o caminho completo para o comando cat localizar o arquivo GPL: cat /usr/doc/copyright/GPL. Abaixo. pois se todos os pedidos fossem colocados diretamente no diretório vendas. seria muito difícil encontrar o arquivo do cliente “João”. 24 . Isso é essencial para organização. text ou trabalho. spool de impressora. Por exemplo. /var Contém maior parte dos arquivos que são gravados com freqüência pelos programas do sistema.txt. Os programas executáveis do GNU/Linux. Ao invés de usar espaços.9.com ou . controle e manutenção do sistema.12 Estrutura básica de diretórios do Sistema Linux O sistema GNU/Linux possui a seguinte estrutura básica de diretórios organizados segundo o FHS (Filesystem Hierarchy Standard): /bin Contém arquivos programas do sistema que são usados com freqüência pelos usuários. 2. etc.ext2. Você pode identificá-los com uma extensão (um conjunto de letras separadas do nome do arquivo por um “. /lib Bibliotecas compartilhadas pelos programas do sistema e módulos do kernel. cat “Trabalho de Historia. /tmp Diretório para armazenamento de arquivos temporários criados por programas.exe. /dev Contém arquivos usados para acessar dispositivos (periféricos) existentes no computador. /mnt Ponto de montagem temporário. /proc Sistema de arquivos do kernel.10 Nomeando Arquivos e Diretórios No GNU/Linux. .bat. Normalmente acessível somente como leitura. 25 .”).txt”). /usr Contém maior parte de seus programas. ao contrário dos programas de DOS e Windows. mas não é recomendado gravar nomes de arquivos e diretórios com espaços porque será necessário colocar o nome do arquivo entre “aspas” para acessá-lo (por exemplo. como e-mails. /floppy Ponto de montagem de unidade de disquetes /home Diretórios contendo os arquivos dos usuários. prefira capitalizar o arquivo (usar letras maiúsculas e minúsculas para identifica-lo).CURSO DE LINUX BÁSICO: Módulo I 2. /boot Contém arquivos necessários para a inicialização do sistema. independente de sua extensão. Cada partição possui seu próprio diretório lost+found. /lost+found Local para a gravação de arquivos/diretórios recuperados pelo utilitário fsck. os arquivos e diretórios podem ter o tamanho de até 255 letras. /root Diretório do superusuário root. ele é colocado lá pelo kernel e usado por diversos programas que fazem sua leitura. um trabalho de história pode ser identificado mais facilmente caso fosse gravado com o nome trabalho.txt. O GNU/Linux (como todos os sistemas POSIX) usa a permissão de execução de arquivo para identificar se um arquivo pode ou não ser executado. não são executados a partir de extensões . Este diretório não existe em seu disco rígido.txt. /etc Arquivos de configuração de seu computador local. /sbin Diretório de programas usados pelo superusuário (root) para administração. /cdrom Ponto de montagem da unidade de CD-ROM. Também é permitido gravar o arquivo com o nome Trabalho de Historia. verificam configurações do sistema ou modificam o funcionamento de dispositivos do sistema através da alteração em seus arquivos. como TrabalhodeHistoria. apagar.Faz referência a uma faixa de caracteres de um arquivo/ diretório. de um arquivo ou diretório.0] . [^abc] faz referência a qualquer caractere exceto a. O uso de curingas será útil ao copiar arquivos. “[]”) podem ser usados juntos. mover.Faz referência a intervalo de caracteres de a até z ou 1 ou 0 naquela posição. A procura de caracteres é “Case Sensitive”. Aliás. 26 . Depende do gosto de cada um. O importante aqui foi mostrar como especificar mais de um arquivo de uma só vez. Caso a expressão seja precedida por um ^. esta é uma característica do GNU/Linux: permitir que a mesma coisa possa ser feita de várias maneiras diferentes.Faz referência a uma letra naquela posição.1. Padrão pode ser: [a-z][0-9] .Faz referência a caracteres de a até z seguido de um caractere de 0 até 9.11 Curingas Curingas (ou referência global) é um recurso usado para especificar um ou mais arquivos ou diretórios do sistema de uma só vez.Faz referência a um nome completo ou restante. ? (ponto de interrogação) . Lembrando que os três tipos de curingas (“*”. renomear e nas mais diversas partes do sistema. faz referência a qualquer caractere exceto o da expressão.CURSO DE LINUX BÁSICO: Módulo I 2.Faz a referência aos caracteres a e z seguido de um caractere 1 ou 0 naquela posição. Existem muitas outras formas de se fazer a mesma coisa. [az][1. São usados três tipos de curingas: • • • • • • * (asterisco) . Este recurso permite que você faça a filtragem do que será listado.0] . copiado e apagado. Por exemplo. “?”.A-Z]. [padrão] . [a-z. b e c. se você deseja que sejam localizados todos os caracteres alfabéticos você deve usar [a-z. Assim. txt.ncl e teste5. txt.ncl. • • • • • 2.txt. com sua porta I/O 0x2F8 e IRQ 3. teste2.ncl. Não será necessário reconfigurar os programas que usam o modem.ncl.txt.CURSO DE LINUX BÁSICO: Módulo I EXEMPLO Para entender melhor.txt este também seria listado. você pode fazer a configuração dos seus programas usando /dev/modem ao invés de /dev/ttyS1. pois o coringa ? especifica qualquer caracter naquela posição e [] especifica números. Com o exemplo acima teste*. txt também faria a mesma coisa.txt. tenham qualquer caractere entre o número 1-3 no lugar da 6ª letra e terminem com . teste3. Dessa forma. com exceção de teste4. que pega todos os arquivos que começam com qualquer nome e terminam com . Por exemplo: após configurar corretamente o modem.ncl ls teste?. sendo eles teste1. que pega todos os arquivos que começam com o nome teste. teste2.txt. ele é identificado automaticamente por /dev/ttyS1. pois eles estão usando /dev/modem. pois todos os arquivos serão listados se o ls for usado sem nenhum Curinga. sinalização de um pedido de interrupção de hardware) diferente para cada parte do hardware como o mouse ou o modem. Usando o comando ls teste?. vamos à prática: Vamos dizer que tenha 5 arquivos no diretório /usr/teste.txt. teste5. Neste caso se obtém uma filtragem mais exata. para listar todos os arquivos com extensão txt (teste1. contenham qualquer caracter na posição do coringa ? e terminem com .* que lista todos os arquivos que começam com teste contenham números de 4 e 5 naquela posição e terminem com qualquer extensão.ncl que lista todos os arquivos que terminam com .ncl podemos usar os seguintes métodos: ls *. Caso deseje listar todos os arquivos do diretório /usr/teste você pode usar o coringa “*” para especificar todos os arquivos do diretório: cd /usr/teste e ls * ou ls /usr/teste/*. Você também pode fazer um link de /dev/ttyS1 para um arquivo chamado /dev/modem. teste3.txt. ls teste[4. no sistema GNU/Linux são usados os nomes de dispositivos.txt. Eles são acessados através do diretório /dev. será necessário somente apagar o link /dev/modem antigo e criar um novo. que pega todos os arquivos que começam com o nome teste. Agora para listar somente teste4. tenham qualquer caractere no lugar do coringa ? e terminem com .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. teste5. podemos usar inicialmente 3 métodos: • • Usando o comando ls *. Agora. Não tem muito sentido usar o comando ls com “*”. mas se também tivéssemos um arquivo chamado teste10. letras ou intervalo que será usado.ncl. Se precisar reconfigurar o seu modem e a porta serial mudar para /dev/ttyS3.txt). apontando para a porta serial /dev/ttyS3.txt.txt. teste4.ncl. Daqui para frente basta se referir a /dev/ttyS1 para fazer alguma coisa com o modem. que está apon- 27 .5]. Usando o comando ls teste[1-3].ncl que lista todos os arquivos que começam com teste. placas diversas. Outra forma de listar tais dispositivos é usando o lspci. discos. como placa mãe. Se você precisa de mais detalhes como o mapeamento de memória. Saiba Acesse http://focalinux. ou usando o comando lsdev. use lspci -vv.html 2. para configurar tudo e ver a necessidade de atualizações. 28 . Isso é muito útil para um bom gerenciamento do sistema. clock multiplicador.org. bem interessante para relatórios. O mapeamento de memória de dispositivos pode ser mostrado com o comando cat /proc/ioports. Use lshw -html para produzir a listagem em formato HTML.13 Listando as placas e outros hardwares em um computador Administradores e técnicos ao configurar uma máquina precisarão saber quais os hardwares ela possui. Hardwares disponíveis na máquina.cipsga. dispositivos e clock.br/guia/intermediario/ch-hardw. versões e números seriais de dispositivos podem ser mostrados através do comando lshw. O barramento USB e dispositivos conectados a ele podem ser listados com o comando lsusb ou com cat /proc/bus/usb/devices. os periféricos. Dispositivos PCI/AMR/CNR (como modens.CURSO DE LINUX BÁSICO: Módulo I tando para a localização correta. placas de vídeo e áudio) podem ser listados executando o comando cat /proc/pci. Use o comando zcat para ver diretamente arquivos compactados com gzip. cat [opções] [diretório/arquivo] [diretório1/arquivo1] Onde: diretório/arquivo Localização do arquivo do qual se deseja visualizar o conteúdo.1 cat Mostra o conteúdo de um arquivo binário ou de texto. 3. Exemplo: cat /usr/doc/copyright/GPL 3. --number Mostra o número das linhas enquanto o conteúdo do arquivo é mostrado. Lê a entrada padrão.2 tac Mostra o conteúdo de um arquivo binário ou de texto (como o cat) só que em ordem inversa. Lê a entrada padrão.CURSO DE LINUX BÁSICO: Módulo I 3 Comandos para manipulação de arquivos Serão apresentados comandos utilizados para manipulação de arquivos neste capítulo. tac [opções] [diretório/arquivo] [diretório1/arquivo1] Onde: diretório/arquivo Localização do arquivo do qual se deseja visualizar o conteúdo opções -s [string] Usa o [string] como separador de registros. O comando cat trabalha com arquivos texto. --squeeze-blank Não mostra mais que uma linha em branco entre um parágrafo e outro. 29 . Exemplo: tac /usr/doc/copyright/GPL. opções -n. -s. rm -rf /tmp/teste . --recursive Usado para remover arquivos em sub-diretórios.Apaga todos os arquivos e subdiretórios do diretório /tmp/teste mas mantém o sub-diretório / tmp/teste. --force Remove os arquivos sem perguntar.txt e também o arquivo teste. Se omitido. Esta opção também pode ser usada para remover sub-diretórios.txt. pois uma vez que arquivos e diretórios são apagados. Use com atenção o comando rm. assume que o arquivo esteja no diretório atual.novo. “?”.txt .txt no diretório atual. opções -i.CURSO DE LINUX BÁSICO: Módulo I Apaga arquivos.Apaga todos os arquivos do diretório atual que terminam com . • • rm -f -.txt . --verbose Mostra os arquivos na medida que são removidos. --interactive Pergunta antes de remover.Apaga o arquivo teste.novo .Remove o arquivo de nome --arquivo--. 3. rm [opções][caminho][arquivo/diretório] diretório1] Onde: caminho Localização do arquivo que se deseja apagar. eles não podem mais ser recuperados..txt teste. -. arquivo/diretório Arquivo que será apagado. inclusive /tmp/teste. O separador “--” funciona com todos os comandos do shell e permite que caracteres especiais. 30 .Apaga todos os arquivos do diretório atual que terminam com . -f.Apaga todos os arquivos e subdiretórios do diretório /tmp/teste. -r.--arquivo-. como “*”. sejam interpretados como caracteres comuns. • Exemplosrm teste.3 rm [caminho1][arquivo1/ rm *. -v. esta é ativada por padrão.arquivo Remove arquivos/diretórios que contém caracteres especiais. • • rm *. Também pode ser usado para apagar diretórios e sub-diretórios vazios ou que contenham arquivos. • rm -rf /tmp/teste/* . “-”. É recomendável usar -R ao invés de -r. -s. -r Copia arquivos dos diretórios e subdiretórios da origem para o destino. --simbolic-link Cria link simbólico ao invés de copiar. -u. já vistos neste material. --verbose Mostra os arquivos enquanto estão sendo copiados. opções -i. --interactive Pergunta antes de substituir um arquivo existente. os arquivos de origem serão copiados para dentro do diretório. O comando cp copia arquivos da ORIGEM para o DESTINO.txt . Podem ser especificados mais de um arquivo para ser copiado usando “Curingas”. --preserve Preserva atributos do arquivo. se for possível. Ambos. origem e destino. --link Faz o link no destino ao invés de copiar os arquivos. cp [opções] [origem] [destino] Onde: origem Arquivo que será copiado. destino O caminho ou nome de arquivo onde será copiado. --recursive Copia arquivos e sub-diretórios (como a opção -r) e também os arquivos especiais FIFO e dispositivos. --update Copia somente se o arquivo de origem é mais novo que o arquivo de destino ou quando o arquivo de destino não existe. txt para teste1.txt teste1.Copia o arquivo teste. Exemplos: cp teste. Se o destino for um diretório. • • cp teste.4 cp Copia arquivos. -R.Copia o arquivo teste. -f. -p. terão o mesmo conteúdo após a cópia. -v. -x Não copia arquivos que estão localizados em um sistema de arquivos diferente de onde a cópia iniciou. substitui todos os arquivos caso já existam. -l.txt para dentro 31 .CURSO DE LINUX BÁSICO: Módulo I 3. --force Não pergunta.txt.txt /tmp . Move ou renomeia arquivos e diretórios. -i. • • cp -R /bin /tmp .txt para teste1. --force Substitui o arquivo de destino sem perguntar. opções -f. Lembre-se que o arquivo de origem é apagado após ser movido. cp * /tmp .txt teste1.txt /tmp . destino Local para onde será movido ou novo nome do arquivo/ diretório.new (supondo que teste.Copia todos os arquivos do diretório /bin para o diretório em que nos encontramos no momento. --interactive Pergunta antes de substituir. O comando mv copia um arquivo da ORIGEM para o DESTINO (semelhante ao cp).Copia todos os arquivos do diretório atual para /tmp. mas após a cópia. mv [opções] [origem] [destino] Onde: origem Arquivo/diretório de origem. • Exemplos: mv teste.Copia todos os arquivos do diretório /bin (exceto o diretório /bin) e todos os arquivos/subdiretórios existentes dentro dele para /tmp. O processo é semelhante ao do comando cp. o arquivo de ORIGEM é apagado.txt.new já exista) . -v. • cp -R /bin /tmp . -u. --update Move somente se o arquivo de origem for mais novo que o de destino. ou se este não existir.txt para /tmp. --verbose Mostra os arquivos que estão sendo movidos.5 mv mv teste.txt teste. • • cp /bin/* . • • mv teste.CURSO DE LINUX BÁSICO: Módulo I do diretório /tmp. mas o arquivo de origem é apagado após o término da cópia. .txt . É o padrão. cp -R /bin/* /tmp .Move o arquivo teste. 3.Copia o arquivo teste.Copia todos os arquivos e o diretório / bin para /tmp.new e apaga teste.txt por cima de teste.Copia o diretório /bin e todos os arquivos/subdiretórios existentes para o diretório /tmp.Muda o nome do arquivo teste.txt após terminar a cópia. 32 . é mostrada a seguinte mensagem: bash: ls: command not found (comando não encontrado). O path (caminho) é armazenado na variável de ambiente PATH. Também existem programas que são executados como root e modificam sua identificação de usuário para algum que tenha menos privilégios no sistema (como o Apache. Caso deseje alterar o caminho para todos os usuários. O caminho de diretórios vem configurado na instalação do Linux. Esse número identifica o processo no sistema e dessa maneira tem um controle sobre sua execução (será visto mais adiante neste capítulo). df.CURSO DE LINUX BÁSICO: Módulo I 4 Execução de Programas Este capítulo explica como executar programas no GNU/ Linux e o uso das ferramentas de controle de execução dos programas.Process Identification). Por exemplo. até que encontre o arquivo procurado. pois 33 . O programa/comando vai ser executado e receberá um número de identificação (chamado de PID . caso este estiver definido. pwd. Exemplos de comandos: ls. 4. e assim sucessivamente. 4. Caso não encontre o arquivo. 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 diretório /usr/local/ bin. Você pode ver o conteúdo dela usando o comando echo $PATH. O programa normalmente usa o UID do usuário que o executou ou o usuário configurado pelo bit de permissão de acesso. Se o interpretador de comandos chegue até o último diretório do path e não encontre o arquivo/comando digitado. como visto na próxima seção.2 path Path é o caminho de procura dos arquivos/comandos executáveis. ele inicia a procura em /usr/bin. Mais informações serão dadas posteriormente. é necessário que ele tenha permissões de execução (mais detalhes serão vistos mais adiante) e que esteja no caminho de procura de arquivos. por exemplo). digite o nome do comando e tecle Enter. esse arquivo é o melhor lugar. o que determina quais serão suas permissões de acesso. mas pode ser alterado no arquivo /etc/profile. Todo o programa recebe uma identificação de usuário (UID) quando é executado. Para rodar um comando.1 Executando um comando/programa No aviso de comando # (root) ou $ (usuário). 4.CURSO DE LINUX BÁSICO: Módulo I ele é lido por todos os usuários no momento do login. O programa rodado em background continua sendo executado internamente. a hora que o processo foi iniciado e várias outras informações. acompanhado do número PID do processo que terminou. 2./ na frente do comando. acrescente o caractere “&” após o final do comando. Por exemplo: echo primeiro. modifique o arquivo . Após ser concluído. Se um arquivo/comando não está localizado em nenhum dos diretórios do path. 4. Se deseja alterar o path para um único usuário. OBS: Mesmo que um usuário execute um programa em segundo plano e saia do sistema. Um programa pode ser rodado de duas formas: Primeiro Plano . Segundo Plano .Também chamado de foreground.bash_profile no seu diretório de usuário (home). Você deve esperar o término da execução do programa para rodar um novo comando.Também chamado de background.3 Tipos de Execução de comandos/programas 1. permitindo o uso normal do sistema. 34 .”. e também nos mostra qual usuário executou o programa.b & O comando será executado em segundo plano e deixará o sistema livre para outras tarefas. é mostrado um número PID (identificação do Processo) e o aviso de comando é novamente mostrado. você deve executá-lo usando um . basta digitar seu nome normalmente. será mostrada uma mensagem.echo segundo.4 Executando programas em sequência Os comandos podem ser executados em sequência (um após o término do outro) se os separarmos com “. Após o comando find terminar. Para iniciar um programa em segundo plano. Você não precisa esperar o término da execução do programa para executar um novo comando. Para iniciar um programa em primeiro plano. não inclua o diretório atual $PWD no path. OBSERVAÇÃO: Por motivos de segurança. Somente é mostrado o aviso de comando após o término de sua execução. o sistema retorna uma mensagem de pronto. O comando ps faz isso. Após iniciar um programa em background.echo terceiro 4. o programa continuará rodando até que seja concluído ou finalizado pelo usuário que iniciou a execução (ou pelo usuário root). Exemplo: find / -name boot.5 ps Algumas vezes é útil ver quais processos estão sendo executados no computador. Isso porque ele não utiliza opções longas e não usa parâmetros. As opções acima podem ser combinadas para resultar numa listagem mais completa. data e hora em que o processo foi iniciado. ao invés de cortar o restante que não couber na tela. e Mostra variáveis de ambiente no momento da inicialização do processo. EXEMPLO: digite em seu terminal ps au Você verá na tela todos os processos criados por você e por outros usuários. u Mostra o nome de usuário que iniciou o processo e a hora em que o processo foi iniciado. disponibilidade para execução de programas no sistema e várias 35 . priority. user. além de mostrar nome de usuário. m Mostra a memória ocupada por cada processo em execução. Ao contrário de outros comandos.6 top Mostra os programas em execução ativos. x Mostra processos que não são controlados pelo terminal. 4. ppid. Você pode usar as colunas pid. Você também pode usar pipes “|” para filtrar a saída do comando ps. Mais detalhes sobre pipe serão vistos mais adiante. f Mostra a árvore de execução de comandos (comandos que são chamados por outros comandos). --sort:[coluna] Organiza a saída do comando ps de acordo com a coluna escolhida. parados.CURSO DE LINUX BÁSICO: Módulo I ps [opções] Onde as opções podem ser: a Mostra os processos criados por você e de outros usuários do sistema. utime. o comando ps não precisa do hífen “-” para especificar os comandos. size. detalhes sobre o uso da memória RAM. w Mostra a continuação da linha atual na próxima linha. rss. tempo usado na CPU. 4.Apaga e atualiza a tela.Muda o número de linhas mostradas na tela.7. pressione a tecla q. • h . Se 0 for especificado. Esse comando não estará disponível caso esteja usando o top com a opção -s. pressione a tecla h ou vá até a página de manual (man top). Para sair do top. basta pressionar as teclas CTRL+C. • n . A execução do programa será cancelada e será mostrado o aviso de comando. q . 36 . São mostradas todas as teclas que podem ser usadas com o top.CURSO DE LINUX BÁSICO: Módulo I outras informações relativas aos programas em execução. top [opções] Onde são opções: -d [tempo] Atualiza a tela após o [tempo] (em segundos). Para isso. 4. CTRL+L . • k . -c Mostra a linha de comando ao invés do nome do programa. será usada toda a tela para listagem de processos. Você também pode usar o comando kill. • • i . -i Inicia o top. -s Diz ao top para ser executado em modo seguro. Veja abaixo algumas teclas úteis: • • espaço .Mostra a tela de ajuda do programa.Finaliza um processo . top é um programa que continua em execução. descrito logo adiante.1 Interrompendo a execução de um processo Para cancelar a execução de algum processo rodando em primeiro plano. Você será perguntado pelo número de identificação do processo (PID). mostrando continuamente os processos que estão rodando em seu computador e os recursos utilizados por eles. A ajuda sobre o top pode ser obtida dentro do programa .Ignora o tempo ocioso de processos zumbis.semelhante ao comando kill. ignorando o tempo de processos zumbis.Sai do programa.Atualiza imediatamente a tela. para interromper um processo sendo executado.7 Controle de execução de processos Seguem alguns comandos e métodos úteis para o controle da execução de processos no GNU/Linux. 4. é necessário primeiro interromper a execução do comando com CTRL+ Z. como já visto neste material.7. ou através do comando bg. o fg utilizará o último programa interrompido (o maior número obtido com o comando jobs).7.4 fg Permite fazer com que um programa rodado em segundo plano ou parado.2 Parando momentaneamente a execução de um processo Para parar a execução de um processo rodado em primeiro plano. 4. Um processo interrompido pode ser finalizado usando-se o comando kill %[num]. Para fazer um programa em primeiro plano rodar em segundo. Se usado sem 37 . 4. O programa permanece na memória no ponto de processamento em que parou quando ele é interrompido. rode em primeiro plano.7.7. Use esse número com o comando bg para iniciar a execução do comando em segundo plano.3 jobs O comando jobs mostra os processos que estão parados ou rodando em segundo plano. 4.5 bg Permite fazer um programa rodando em primeiro plano ou parado. basta pressionar as teclas CTRL+Z. em que [num] é o número do processo obtido pelo jobs.7. Para retornar à execução de um comando pausado. bg [número] Onde: número é o número do programa obtido com o pressionamento das teclas CTRL+Z ou através do comando jobs. Você pode usar outros comandos ou rodar outros programas enquanto o programa atual está interrompido. Você deve usar o comando jobs para pegar o número do processo executado em segundo plano ou interrompido. Caso seja executado sem parâmetros. Será mostrado o número da tarefa interrompida. O programa em execução será pausado e será exibido o número de seu job e o aviso de comando. use os comandos fg ou bg. fg [número] Em que número é o número obtido através do comando jobs.CURSO DE LINUX BÁSICO: Módulo I 4.6 kill Permite enviar um sinal a um comando/programa. Exemplo: fg 1. O número de identificação de cada processo parado ou em segundo plano (job) é usado com os comandos fg e bg. rodar em segundo plano. descritos à frente. Processos em segundo plano são iniciados usando o símbolo “&” no final da linha de comando. killall [opções] [sinal] [processo] Onde: processo Nome do processo que deseja finalizar sinal Sinal que será enviado ao processo opções -i Pede confirmação sobre a finalização do processo.7. o kill enviará um sinal de término ao processo sendo executado. Você precisa ser o dono do processo ou o usuário root para terminá-lo ou destruí-lo. -l Lista o nome de todos os sinais conhecidos. -v Retorna se o sinal foi enviado com sucesso ao processo. Para verificar se o processo foi finalizado. kill %1.CURSO DE LINUX BÁSICO: Módulo I parâmetros. 4.7 killall Permite finalizar processos através do nome. -q Ignora a existência do processo. Se omitido usa -15 como padrão. 38 Os tipos de sinais aceitos pelo GNU/Linux são explicados em . sinal Sinal que será enviado ao processo. kill [opções] [sinal] [número] Onde: número É o número de identificação do processo obtido com o comando ps. Os tipos de sinais aceitos pelo GNU/Linux serão explicados em detalhes mais adiante. Exemplo: kill 500. kill -9 500. -w Finaliza a execução do killall somente após finalizar todos os processos. Ele é terminado imediatamente. Também pode ser o número após o sinal de % obtido pelo comando jobs para matar uma tarefa interrompida. utilize o comando ps. opções -9 Envia um sinal de destruição ao processo ou programa. sem chances de salvar os dados ou apagar os arquivos temporários criados. se o usuário executar o comando kill para interromper um processo.7. • SIGILL .informa erros de endereços de memória.out. • SIGTERM .com o comando: man signal.instrui a execução de um processo após este ter sido interrompido. quando ocorre divisão por zero.9 nice e renice nice configura a prioridade da execução de um comando/ programa. o próprio Linux pode executar a ação de acordo com suas rotinas. O GNU/Linux suporta os sinais listados pelo comando kill –l .8 killall5 Envia um sinal de finalização para todos os processos sendo executados. isso será feito por meio de um sinal. caso seja feito o logout do sistema.“mata” um processo e é usado em momentos de criticidade. killall5 [sinal] 4.txt &. nohup [comando que será executado] As mensagens de saída do nohup são direcionadas para o arquivo $HOME/nohup. tal ação é colocada em prática.7. Esse comando pode ser executado até mesmo em segundo plano.8 nohup Executa um comando ignorando os sinais de interrupção. Veja a função de alguns: • SIGSTOP .informa erros de instrução ilegal. Por exemplo. 4.CURSO DE LINUX BÁSICO: Módulo I detalhes logo adiante. nice [opções] [comando/programa] Onde: 39 .interrompe a execução de um processo e só reativá-lo após o recebimento do sinal CONT. • SIGCONT . Exemplo: nohup find / -uid 0 >/tmp/rootfiles.termina completamente o processo. ou seja. este deixa de existir após a finalização. por exemplo. • SIGKILL . Podemos saber qual a função de cada sinal consultando a man page signal. 4.9 Sinais do Sistema Os sinais são meios usados para que os processos possam se comunicar e para que o sistema possa interferir em seu funcionamento. Se não houver instruções pré-programadas. Quando um processo recebe um determinado sinal e conta com instruções sobre o que fazer com ele. Exemplo: killall -HUP inetd 4. • SIGSEGV . 40 . Pode ser ajustada de -19 (a mais alta) até 19 (a mais baixa). diretório. renice [prioridade] [pid] Onde: prioridade Prioridade a ser configurada para o processo. -l Lista todos os nomes de sinais conhecidos.CURSO DE LINUX BÁSICO: Módulo I comando/programa Comando/programa que terá sua prioridade ajustada. A prioridade de execução de um programa/comando pode ser ajustada de -19 (a mais alta) até 19 (a mais baixa). opções -k Finaliza os processos acessando o arquivo especificado. fuser [opções] [nome] Onde: nome Especifica um nome de processo. etc. ou o sinal -9 será enviado como padrão. renice troca a prioridade das aplicações em execução. ele permitirá que outros programas tenham preferência. Exemplo: nice -n -19 find / -name apropos. arquivo. ele usará mais recursos do sistema para seu processamento. Exemplo: renice +19 1000 4. Caso tenha uma prioridade baixa. Será ignorada caso a opção -k não seja especificada. Não é possível matar o próprio processo fuser. -i Pergunta antes de destruir um processo. O sinal desejado deve ser especificado com a opção -signal [num]. Serão listados todos os processos acessando aquele sistema de arquivos. Se um programa for executado com maior prioridade. -m [nome] Especifica um arquivo em um sistema de arquivos montado ou dispositivo de bloco que está montado. opções -n [numero] Configura a prioridade com a qual o programa será executado. pid pid do processo a ser configurado.10 fuser Permite identificar e fechar os processos que estão utilizando arquivos e soquetes no sistema. Memória swpd 41 .CURSO DE LINUX BÁSICO: Módulo I Diretórios são mostrados seguidos de uma / -signal [número] Usa o sinal especificado ao invés de -9 (SIGKILL) quando finalizar processos. b Número de processos em espera não interrompíveis. 4. w Número de processos extraídos do arquivo de troca ou caso contrário em execução.12 vmstat Mostra estatísticas sobre o uso da memória virtual do sistema. contagem Número de vezes que será mostrado. 4. Se não for especificado nenhum parâmetro. -d [número] Especifica o intervalo entre atualizações. em segundos. É recomendável o uso de números entre 1 e 10 para melhor visualização da escala. A descrição dos campos do vmstat são as seguintes: Processos r Número de processos aguardando execução. vmstat [intervalo] [contagem] Onde: intervalo Número especificado em segundos entre atualizações.11 tload Representa de forma gráfica a carga do sistema. tload [opções] Onde: opções -s [número] Mostra uma escala vertical com espaçamento especificado por [número]. -v Os processos são mostrados em um estilo idêntico ao ps. -u Acrescenta o nome do dono de cada processo ao PID. o vmstat mostra o status da memória virtual e volta imediatamente para a linha de comando. incluindo o clock. Sistema in Número de interrupções por segundo. Memória Virtual si Quantidade de memória gravada para o disco em Kb/s. -x 42 . bo Blocos recebidos de um dispositivo de bloco (em blocos por segundo). Entrada/Saída bi Blocos enviados para um dispositivo de bloco (medido em blocos por segundo). free Quantidade de memória livre em Kb.CURSO DE LINUX BÁSICO: Módulo I A quantidade de memória virtual usada em Kb. cs Número de mudanças de contexto por segundo. so Quantidade de memória retirada do disco em Kb/s.13 pidof Retorna o PID do processo especificado pidof [opções] [nome] Onde: nome Nome do processo para o qual se deseja obter o número PID opções -s Retorna somente o primeiro PID encontrado. buff Quantidade de memória usada como buffer em Kb. Porcentagem do total de tempo da CPU us Tempo do usuário sy Tempo do sistema id Tempo ocioso 4. dependendo da forma como é chamado na linha de comando! Exemplo: pidof -s init 4.14 pstree Mostra a estrutura de processos em execução no sistema em forma de árvore. -l Não faz quebra de linha -n Classifica pelo número PID ao invés do nome. -u Mostra também o dono do processo. Cuidado ao executar o killall5. pstree [opções] [pid] Onde: pid Número do processo que terá sua árvore listada. pois as funções e opções são completamente diferentes. -h Destaca o processo atual e seus antecessores. opções -a Mostra opções passadas na linha de comando. O PID especial %PPID pode ser usado para nomear o processo pai do programa pidof OBS: O programa pidof é um link simbólico ao programa killall5. -G Usa caracteres gráficos no desenho da árvore de processos.CURSO DE LINUX BÁSICO: Módulo I Retorna o PID do shell que está executando o script -o [PID] Ignora o processo com aquele PID. Se omitido. 43 . -U Usa o conjunto de caracteres Unicode para o desenho da árvore. -p Mostra o número PID entre parênteses após o nome do processo. -H [pid] Destaca o processo especificado. -c Mostra toda a estrutura (inclusive sub-processos do processo pai). lista todos os processos. primeiramente. Caso o programa ainda não foi finalizado. vou supor que executamos um programa em desenvolvimento com o nome contagem (que conta o tempo. 6. Alterne para o console em que estava executando o programa contagem e verifique se ele ainda está rodando. Se ele estiver parado. O sinal de término mantém a chance do programa salvar seus dados ou apagar os arquivos temporários que criou e então ser finalizado. em segundos. dá certo para comandos que são executados e terminados sem a intervenção do usuário. 5. o programa contagem). o grep fará uma filtragem da saída do comando ps ax. Tente isso. mostrando somente as linhas que tem a palavra “contagem”. Em nosso exemplo.15 Fechando um programa quando não se sabe como sair Quando você ainda é um iniciante no GNU/Linux. a partir do momento que é executado). Normalmente. fazendo ele terminar “na marra”! 44 Uma última dica: todos os programas estáveis (todos que . você pode usar ps ax|grep contagem. para finalizar um programa. pressione a tecla <ENTER>. Nesse caso. Normalmente. provavelmente não irá funcionar (ele vai entender como um comando de menu). Caso apareçam vários processos. Mude para um novo console (pressionando <ALT> e <F2>).CURSO DE LINUX BÁSICO: Módulo I 4. mas ela não funciona. 1. Este comando envia um sinal de DESTRUIÇÃO do processo. Ou implementam. Aparecerão várias linhas. 2. todos os programas UNIX podem ser interrompidos com o pressionamento das teclas <CTRL> e <C>. Feche o processo. mas que o programador esqueceu de colocar uma opção de saída. e a linha de comando do programa na última coluna. talvez execute um programa e não saiba como fechá-lo. Se não der certo. repita o comando kill usando a opção -9: kill -9 PID. Se você estiver usando um Editor de Texto. O comando acima envia um sinal de término de execução para o processo (neste caso. mas o aviso de comando não é mostrado até que se pressione <ENTER>. 3. cada uma com o número do processo na primeira coluna. 4. Frequentemente acontece o mesmo com o comando kill: você finaliza um programa. e faça o login como usuário root. Este capítulo do material pretende ajudá-lo a resolver esse tipo de problema. mas o aviso de comando não estiver disponível. usando o comando kill PID (lembrese de substituir PID pelo número encontrado pelo comando ps ax acima). Localize o PID (número de identificação do processo) usando o comando ps ax. Isso também pode ocorrer com programadores que estão construindo seus programas e por algum motivo não implementam uma opção de saída. a documentação que acompanha o programa. Para fazer tudo voltar ao normal. Procure a opção de saída de um programa consultando o help on line. Note que. Não se preocupe! Basta digitar corretamente e bater ENTER. basta digitar reset e teclar ENTER. aparecerão caracteres estranhos ao invés das letras. é possível que o aviso de comando (prompt) volte com caracteres estranhos. Ele apenas fará tudo voltar ao normal.16 Eliminando caracteres estranhos Às vezes. info pages. todos os dados do programa em execução podem ser perdidos (principalmente se estiver num editor de textos). quando um programa mal comportado é finalizado ou quando você visualiza um arquivo binário através do comando cat. quando um processo é finalizado. Lembre-se que. Detalhes de como encontrar a ajuda dos programas serão vistos mais à frente. enquanto você digitar reset. as páginas de manual.CURSO DE LINUX BÁSICO: Módulo I acompanham as boas distribuições GNU/Linux) têm sua opção de saída. mesmo usando o kill sem o parâmetro -9. o comando reset não reiniciará seu computador (como o botão reset do seu computador faz). 45 . O aviso de comando voltará ao normal. 4. Não se preocupe.