109
Cadernos de Informatica CURSO DE CAPACITAÇÃO EM INFORMÁTICA INSTRUMENTAL CURSO DE MONTAGEM E MANUTENÇÃO DE COMPUTADORES CURSO SOBRE O SISTEMA OPERACIONAL LINUX CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE INTRODUÇÃO A BANCOS DE DADOS CURSO DE CONSTRUÇÃO DE WEB SITES CURSO DE EDITORAÇÃO ELETRÔNICA CURSO DE ILUSTRAÇÃO DIGITAL CURSO DE PRODUÇÃO FONOGRÁFICA CURSO DE COMPUTAÇÃO GRÁFICA 3D CURSO DE PROJETO AUXILIADO POR COMPUTADOR CURSO DE MULTIMÍDIA NA EDUCAÇÃO PROJETO ESCOLAS - REFERÊNCIA Compromisso com a Excelência na Escola Pública

Curso Sobre o Sistema Operacional Linux - Projeto Escolas

Embed Size (px)

Citation preview

  • Cade

    rnos

    deIn

    form

    atic

    aCURSO DE CAPACITAO EM INFORMTICA INSTRUMENTAL

    CURSO DE MONTAGEM E MANUTENO DE COMPUTADORES

    CURSO SOBRE O SISTEMA OPERACIONAL LINUX

    CURSO DE PROGRAMAO EM JAVA

    CURSO DE INTRODUO A BANCOS DE DADOS

    CURSO DE CONSTRUO DE WEB SITES

    CURSO DE EDITORAO ELETRNICA

    CURSO DE ILUSTRAO DIGITAL

    CURSO DE PRODUO FONOGRFICA

    CURSO DE COMPUTAO GRFICA 3D

    CURSO DE PROJETO AUXILIADO POR COMPUTADOR

    CURSO DE MULTIMDIA NA EDUCAO

    PROJETO ESCOLAS - REFERNCIACompromisso com a Excelncia na Escola Pblica

  • Cade

    rnos

    deIn

    form

    atic

    a

    CURSO SOBRE OSISTEMA OPERACIONAL

    LINUXEdsio Costa e Silva

    Coordenador:Carlos Eduardo Hermeto de S Motta

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    4

    Cade

    rnos

    de In

    form

    tica

  • Cade

    rnos

    de In

    form

    tica

    5

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    Os computadores que esto sendo instalados pela SEE nas escolas estaduais devero serutilizados para propsitos administrativos e pedaggicos. Para isso, desenvolveu-seum conjunto de cursos destinados a potencializar a utilizao desses equipamentos.So doze cursos que esto sendo disponibilizados para as escolas para enriquecimentodo seu plano curricular. Esses cursos no so profissionalizantes. So cursosintrodutrios, de formao inicial para o trabalho, cujo objetivo ampliar o horizontede conhecimentodos alunos para facilitar a futura escolha de uma profisso.

    Todos os cursos foram elaborados para serem realizados em 40 mdulos-aula, cada umdeles podendo ser desenvolvidos em um semestre (com 2 mdulos-aula semanais) ouem 10 semanas (com 4 mdulos-aula semanais). Em 2006, esses cursos devero seroferecidos para os alunos que desejarem curs-los, em carter opcional e horrio extra-turno.

    Em 2007, eles cursos devero ser includos na matriz curricular da escola, na srie ousries por ela definida, integrando a Parte Diversificada do currculo.

    Esses cursos foram concebidos para dar aos professores, alunos e funcionrios umadimenso do modo como o computador influencia, hoje, o nosso modo de vida e osmeios de produo. Para cada curso selecionado pela escola devero ser indicados pelomenos dois ou, no mximo, trs professores (efetivos, de preferncia) para serem capa-citados pela SEE. Esses professores iro atuar como multiplicadores, ministrando-os aoutros servidores da escola e aos alunos.

    CURSO DE CAPACITAO EM INFORMTICA INSTRUMENTAL

    Este curso ser implantado obrigatoriamente em todas as escolas estaduais em que forinstalado laboratrio de informtica. Iniciando pelas Escolas-Referncia, todos os pro-fessores e demais servidores sero capacitados para que possam fazer uso adequado eproveitoso desses equipamentos tanto na administrao da escola como nas atividadesdidticas.

    um curso voltado para a desmistificao da tecnologia que est sendo implantada. Ouso do computador ainda algo difcil para muitas pessoas que ainda no esto muitofamiliarizadas com essas novas tecnologias que esto ocupando um espao cada vezmaior na escola e na vida de todos. Este curso vai motivar os participantes para umaaproximao com essas tecnologias, favorecendo a transformao dos recursos deinformtica em instrumentos de produo e integrao entre gestores, professores edemais servidores. As caractersticas dos equipamentos e as funcionalidades dos pro-gramas sero apresentadas de maneira gradual e num contexto prtico. Essas.situaesprticas sero apresentadas de maneira que o participante perceba o seu objetivo e ovalor de incorpor-las ao seu trabalho cotidiano. Os participantes sero preparados

    APRESENTAO

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    6

    Cade

    rnos

    de In

    form

    tica

    para navegar e pesquisar na internet; enviar, receber e administrar correspondnciaeletrnica, alm de criar e editar documentos (textos, planilhas e apresentaes) deinteresse acadmico e profissional. Esse um curso fundamental, base e pr-requisitopara todos os demais.

    CURSO DE MONTAGEM E MANUTENO DE COMPUTADORES

    Este curso ser implantado em, pelo menos, uma escola do municpio sede de cadaSuperintendncia Regional de Ensino. A indicao da escola dever ser feita pela pr-pria S.R.E, levando-se em conta as condies de infra-estrutura nas Escolas-Refernciaexistentes no municpio. Nas escolas escolhidas ser montado um laboratrio deinformtica especialmente para a oferta desse curso.

    O objetivo deste curso capacitar tecnicamente os alunos de ensino mdio que queiramaprender a montar, fazer a manuteno e configurar microcomputadores. Pode ser ofe-recido para alunos de outras escolas, para professores e demais servidores da escola epara a comunidade, aos finais de semana ou horrios em que o laboratrio esteja dis-ponvel.

    Neste curso o participante aprender a funo de cada um dos componentes domicrocomputador. Aprender como montar um computador e como configur-lo, insta-lando o sistema operacional, particionando e formatando discos rgidos, instalando pla-cas de fax/modem, rede, vdeo, som e outros dispositivos. Conhecer, ainda, as tcnicasde avaliao do funcionamento e configurao de microcomputadores que esteja preci-sando de manuteno preventiva ou corretiva, alm de procedimentos para especificaode um computador para atender as necessidades requeridas por um cliente.

    Dos cursos que se seguem, as Escolas-Referncia devero escolher pelo menos dois paraimplantar em 2006.

    No perodo de 13 a 25 de maro/2006, estar disponvel no stio da SEE(www.educacao.mg.gov.br) um formulrio eletrnico para que cada diretor das Escolas-Referncia possa informar quais os cursos escolhidos pela sua escola e quais os profes-sores que devero ser capacitados. Durante o perodo de capacitao, os professoressero substitudos por professores-designados para que as atividades didticas da es-cola no sejam prejudicadas.

    1. CURSO SOBRE O SISTEMA OPERACIONAL LINUX

    destinado queles que desejam conhecer ferramentas padro do ambiente Unix. umcurso voltado para a explorao e organizao de contedo. So ferramentas tipica-mente usadas por usurios avanados do sistema operacional. Tem por finalidade apre-sentar alguns dos programas mais simples e comuns do ambiente; mostrar que, mesmocom um conjunto pequeno de programas, possvel resolver problemas reais; explicar

  • Cade

    rnos

    de In

    form

    tica

    7

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    a comunicao entre programas via rede e estender o ambiente atravs de novos pro-gramas. O texto didtico deste curso apresenta os recursos a serem estudados e propeexerccios. um curso para aqueles que gostam de enfrentar desafios.

    Ementa: Histrico e desenvolvimento do Unix e Linux. Descrio dos conceitos de arqui-vo e diretrio. Operaes simples sobre arquivos e diretrios. Sistema de permisses equotas.

    Procurando arquivos. Executando e controlando programas. Processamnto de texto.Expresses regulares. Estendendo o ambiente. Trabalho em rede. Sistema de arquivoscomo um Banco de Dados.

    2. CURSO DE PROGRAMAO EM JAVA

    um curso de programao introdutrio que utiliza a linguagem Java. Essa linguagemse torna, a cada dia, mais popular entre os programadores profissionais. O curso foidesenvolvido em forma de tutorial. O participante vai construir na prtica um aplicativocompleto (um jogo de batalha naval) que utiliza o sistema grfico e que pode ser utili-zado em qualquer sistema operacional. Os elementos de programao so apresentadosem atividades prticas medida em que se fazem necessrios. Aqueles que desejamconhecer os mtodos de produo de programas de computadores tero, nesse curso,uma boa viso do processo.

    Ementa: Conceitos de linguagem de programao, edio, compilao, depurao e exe-cuo de programas. Conceitos fundamentais de linguagens de programao orientadaa objetos.

    Tipos primitivos da linguagem Java, comandos de atribuio e comandos de repetio.Conceito de herana e programao dirigida por eventos. Tratamento de eventos. Pro-gramao da interface grfica. Arrays. Nmeros aleatrios.

    3. CURSO DE INTRODUO AO BANCOS DE DADOS

    Este curso mostrar aos participantes os conceitos fundamentais do armazenamento,gerenciamento e pesquisa de dados em computadores. Um banco de dados umrepositrio de informaes que modelam entidades do mundo real. O Sistema Gerenciadordo Banco de Dados permite introduzir, modificar, remover, selecionar e organizar asinformaes armazenadas. O curso mostra como os bancos de dados so criados eestruturados atravs de exemplos prticos. Ao final, apresenta os elementos da lingua-gem SQL (Structured Query Language Linguagem Estruturada de Pesquisa) que umalinguagem universal para gerenciamento de informaes de bancos de dados e os ele-mentos bsicos da administrao desses repositrios de informao..Apesar de ser denvel introdutrio, o curso apresenta todos os tpicos de interesse relacionados rea. um curso voltado para aqueles que desejam conhecer os sistemas que gerenciam volu-

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    8

    Cade

    rnos

    de In

    form

    tica

    mes grandes e variados de informaes, largamente utilizados no mundo empresarial.

    Ementa: Modelagem de dados. Normalizao. Linguagem SQL. Mecanismos de consulta.Criao e alterao de tabelas. Manipulao e formatao de dados. Organizao deresultados de pesquisa. Acesso ao servidor de bancos de dados. Contas de usurios.Segurana. Administrao de bancos de dados. Manuteno. Integridade.

    4. CURSO DE CONSTRUO DE WEB SITES

    Este curso mostrar aos participantes como construir pginas HTML que forma a estru-tura de um site na internet. A primeira parte do curso voltada para a construo depginas; a segunda parte, para a estruturao do conjunto de pginas que formao osite, incluindo elementos de programao. Explicar os conceitos elementares da webe mostrar como que se implementa o conjunto de pginas que forma o site numservidor.

    Ementa: Linguagem HTML. Apresentao dos principais navegadors disponveis no mer-cado.

    Construo de uma pgina HTML simples respeitando os padres W3C. Recursos deformatao de texto. Recursos de listas, multimdia e navegao. Tabelas e Frames.Folha de Estilo. Elementos de Formulrio. Linguagem Javascript. Interao do Javascriptcom os elementos HTML. Linguagem PHP. Conceitos de Transmisso de Site e critriospara avaliao de servidores.

    1. CURSO DE EDITORAO ELETRNICA

    Voltado para a produo de documentos fsicos (livros, jornais, revistas) e eletrnicos.Apresenta as ferramentas de produo de texto e as ferramentas de montagem de ele-mentos grficos numa pgina. O texto tratado como elemento de composio grfica,juntamente com a pintura digital, o desenho digital e outros elementos grficos utiliza-dos para promover a integrao dos elementos grficos.

    O curso explora de maneira extensiva os conceitos relacionados aparncia do textorelativos aos tipos de impresso (fontes). Mostra diversos mecanismos de produodos mais variados tipos de material impresso, de texto comum s frmulas matemti-cas. Finalmente, discute a metodologia de gerenciamento de documentos.

    Ementa: Editor de textos. Formatadores de texto. Tipos e Fontes. Gerenciamento deprojetos.

    Publicaes. Programas para editorao. Programas acessrios. Impresso. Desenvolvi-mento de um projeto.

  • Cade

    rnos

    de In

    form

    tica

    9

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    2. CURSO DE ILUSTRAO DIGITAL

    Desenvolvido sobre um nico aplicativo de tratamento de imagens e pintura digital, oGIMP (GNU Image Manipulation Program Programa de Manipulao de Imagens GNU).

    Este curso ensina, passo a passo, como utilizar ferramentas do programa para produzirilustraes de qualidade que podem ser utilizadas para qualquer finalidade. A pinturadigital diferente do desenho digital. O desenho se aplica a diagramas e grficos, porexemplo. A pintura tem um escopo muito mais abrangente e uma forma de criaomais livre, do ponto de vista formal. basicamente a diferena que h entre o desenhoartstico e o desenho tcnico. , portanto, um curso voltado para aqueles que tm inte-resses e vocaes artsticas.

    Ementa: A imagem digital. Espaos de cores. Digitalizao de imagens. Fotomontagem ecolagem digital. Ferramentas de desenho. Ferramentas de pintura. Finalizao e sada.

    3. CURSO DE PRODUO FONOGRFICA

    Curso voltado para aqueles que tm interesse na produo musical. Explica, atravs deprogramas, como que se capturam, modificam e agrupam os sons musicais para pro-duzir arranjos musicais. um curso introdutrio com uma boa viso da totalidade dosprocedimentos que levam produo de um disco.

    Ementa: O Fenmeno Sonoro. O Ambiente Sonoro. A Linguagem Musical. Pr-Produo.O Padro MIDI. A Gravao. A Edio. Ps-processamento. Mixagem. Finalizao.

    4. CURSO DE COMPUTAO GRFICA

    Curso introdutrio de modelagem, renderizao e animao de objetos tridimensionais.

    Esse curso a base para utilizao de animaes tridimensionais em filmes. Conduzidocomo um tutorial do programa BLENDER, apresenta a interface do programa e suasoperaes elementares. Destinado queles que tm ambies de produzir animaes dealta qualidade para a educao ou para a mdia.

    Ementa: Introduo Computao Grfica. Conceitos bsicos 2D e 3D. Interface princi-pal do programa Blender. Espao de trabalho. Navegao em 3D. Modelagem em 3D.Primitivas bsicas. Movimentao de objetos. Edio de objetos. Composio de cenas.Materiais e texturas. Aplicao de materiais. UV Mapping. Luzes e Cmeras. Iluminaode cena. Posicionamento e manipulao de cmera. Renderizao still frame. Formatosde sada. Animao bsica. Movimentao de cmera e objetos. Renderizao da anima-o. Formatos de sada.

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    10

    Cade

    rnos

    de In

    form

    tica

    5. CURSO DE PROJETO AUXILIADO POR COMPUTADOR

    Os programas de CAD (Computer Aided Design Projeto Auxiliado por Computador) soutilizados para composio de desenhos tcnicos. Diferentemente dos programas depintura eletrnica (como o GIMP), fornecem ao usurio ferramentas para desenhar compreciso e anotar os desenhos de acordo com as normas tcnicas. Alm de ensinar aousurio a utilizar um programa de CAD (QCad), o curso apresenta elementos bsicos dedesenho tcnico e construes geomtricas diversas visando preparar o participantepara um aprimoramento em reas tpicas das engenharias e da arquitetura..Ementa:Informtica aplicada ao desenho tcnico. Conceitos bsicos: construes geomtricas,escalas, dimensionamento, projees ortogrficas e perspectivas. Sistemas de coorde-nadas cartesiano e polar. Novas entidades geomtricas bsicas: polgonos e crculos.

    Operaes geomtricas bsicas. Tipos de unidades de medida. Criao de um padro de

    formato. Organizao de um desenho por nveis. Construes geomtricas diversas. Ateoria dos conjuntos aplicada ao desenho. Propriedades dos objetos. Edio do dese-nho.

    Movimento, rotao, escalamento e deformao de objetos. Agrupamento de objetosem blocos.

    6. CURSO DE MULTIMDIA NA EDUCAO

    O curso est dividido em trs partes: a) utilizao da multimdia no contexto educa-cional; b) autoria de apresentaes multimdia; c) projetos de aprendizagem mediadapor tecnologia. Este curso o fundamento para a criao dos cursos de educao adistncia.

    Apresenta os elementos que compem os sistemas de multimdia, as comunidades vir-tuais de aprendizagem, o planejamento e a preparao de uma apresentao e de umalio de curso e, finalmente, a tecnologia de objetos de aprendizado multimdia.

    Ementa: Introduo Multimdia e seus componentes. Multimdia na Educao. Comu-nidades Virtuais de Aprendizagem. Webquest: Desafios Investigativos baseados naInternet (Web).

    Preparao de uma apresentao multimdia.

  • Cade

    rnos

    de In

    form

    tica

    11

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    SUMRIO

    Mdulo 1 ................................................................................... 13

    Prembulo .......................................................................................... 13

    Onde podemos chegar? ......................................................................... 13

    Introduo .......................................................................................... 15

    Preliminares ........................................................................................ 16

    Shell: Introduo ................................................................................. 20

    Sistema de Arquivos ............................................................................. 24

    Mdulo 2 ................................................................................... 32

    Shell: Bsico ........................................................................................ 32

    Arquivos padro ................................................................................... 32

    ls ....................................................................................................... 41

    find .................................................................................................... 44

    ln ....................................................................................................... 46

    cp & mv & rm ....................................................................................... 47

    chown & chmod ................................................................................... 50

    Mdulo 3 ................................................................................... 52

    file ..................................................................................................... 52

    du & df ............................................................................................... 53

    mkdir & rmdir ...................................................................................... 56

    cmp .................................................................................................... 58

    Sistema de Arquivos - Exerccios ............................................................ 59

    Mdulo 4 ................................................................................... 60

    Processamento de Textos ...................................................................... 60

    echo ................................................................................................... 61

    cat ...................................................................................................... 62

    head & tail .......................................................................................... 64

    sort .................................................................................................... 65

    cut ..................................................................................................... 68

    uniq ................................................................................................... 70

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    12

    Cade

    rnos

    de In

    form

    tica

    Mdulo 5 ................................................................................... 71

    tr ....................................................................................................... 71

    wc ...................................................................................................... 73

    grep ................................................................................................... 74

    sed ..................................................................................................... 79

    Mdulo 6 ................................................................................... 81

    awk .................................................................................................... 81

    more & less ......................................................................................... 83

    join .................................................................................................... 84

    diff ..................................................................................................... 85

    Mdulo 7 ................................................................................... 87

    Shell: Avanado ................................................................................... 87

    Processamento de Textos - Exerccios ..................................................... 90

    Mdulo 8 ................................................................................... 92

    Acesso a Rede ...................................................................................... 92

    Acesso a Rede - Exerccios ..................................................................... 97

    Mdulo 9 ................................................................................... 98

    Estendendo o Ambiente ........................................................................ 98

    Mdulo 10 ............................................................................... 102

    O Sistema de Arquivos como Base de Dados ........................................... 102

    Os prximos passos ............................................................................ 106

    Glossrio ................................................................................. 108

  • Cade

    rnos

    de In

    form

    tica

    13

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    MDULO 1

    PREMBULO

    Bem-vindo ao curso de Introduo ao Sistema Operacional Linux!

    O nosso objetivo :

    1. Antes de mais nada, interessar voc em computao e desmistificar o acesso aoscomputadores

    2. Definir o contexto dos sistemas Unix e Linux em particular

    3. Apresentar alguns dos programas mais simples e comuns do ambiente

    4. Mostrar que, mesmo com um conjunto pequeno de programas, possvel resolverproblemas reais

    5. Explicar a comunicao entre programas via rede

    6. Estender o ambiente atravs de novos programas

    Todo o material apresentado em um ambiente apenas de texto. Se a interface quevoc dispe grfica, utilizaremos um emulador de terminal.

    Tentamos organizar o material como uma apresentao, seguida de exemplos, seguidosde exerccios. Os dois ltimos mdulos deste curso so quase desafios. Neles voc po-der verificar a compreeno do material e resolver novos problemas.

    ONDE PODEMOS CHEGAR?

    Com o material deste curso, mais curiosidade e um pouco de esforo, voc ser capaz decriar um programa capaz de gerenciar receitas. Veja como ele seria usado:

    Procurando receitas usando um ingrediente:

    mimbar:~:4> Receitas com ovos

    001: Abbora sua 016: Misto quente com cobertura 018: Omelete Bsica 020: Piperade 022: Pudim de abacaxi 025: Rolinhos de Siri 027: Salada Dinamarquesa 034: Torta de Fub mimbar:~:5> Receitas com chuchu

    Ingrediente chuchu nao encontrado em nenhuma receita!

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    14

    Cade

    rnos

    de In

    form

    tica

    Procurando receitas de um determinado autor:

    mimbar:~:6> Receitas de Felipe

    004: Cocada 005: Creme de banana e laranja 008: Frango empanado com queijo parmeso 010: Gelado de Morango 012: Lasanha aos Quatro Queijos 015: Manjar de coco com calda de amora 022: Pudim de abacaxi 023: Pudim de maria-mole enriquecido 024: 026: Salada alem 028: Salada colorida 029: Salada da Copa 030: Salada de macarro com brcolis 032: Sanduche pizza 033: Gelado de Morango

    034: Torta de Fub

    Listando uma receita especfica:

    mimbar:~:7> Receitas lista 024

    nome: Quibe Autor: Felipe Miranda Autor: Cssia Rodrigues Tipo: Lanche Ingrediente: 500g de patinho modo Ingrediente: 500g de trigo para quibe Ingrediente: 01 cebola mdia picada Ingrediente: salsinha e folhas de hortel a gosto Ingrediente: sal e pimenta-do-reino e malagueta a gosto Preparo: Colocar o trigo de molho em gua quente por 10 minutos. Preparo: Espremer o trigo entre as mos, retirando o excesso de gua. Preparo: Passar na mquina de moer carne a cebola, a salsinha, o hortel, o trigo e a carne por duas vezes (para a massa ficar bem fina). Preparo: Temperar com o sal e as pimentas e enrole.

    Preparo: Fritar em leo quente.

    Um programa parecido poderia ser criado para gerenciar livros, discos, CDs, fotografias, etc.

    Interessa? Ento, mos a obra!

  • Cade

    rnos

    de In

    form

    tica

    15

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    INTRODUOConceitos

    O sistema operacional o encarregado de gerenciar o hardware (equipamento) edisponibiliza-lo de maneira a ser utilizado pelo usurio e seus programas atravs deabstraes (o sistema operacional cria um ambiente simulado onde podemos enviar umdocumento uma impressora sem precisar saber o tipo, modelo e forma de conexo daimpressora). Ele intermedia os acessos ao hardware e pode prover recursos que no sodiretamente disponveis.

    O que hoje chamamos de sistema operacional composto de duas camadas:

    kernel esta a parte mais bsica do sistema e, em princpio, a nica que conversacom o hardware. Ele prov diversos servios prxima camada.

    utilitrios so os diversos programas fornecidos junto com o kernel atravs do qualo usurio interage com o kernel. No meio deles esto tambm programas de adminis-trao e de uso genrico e freqente. Normalmente so pequenas aplicaes.

    Os utilitrios podem ser divididos em duas grandes classes:

    os bsicos, comuns a maioria dos sistemas e necessrios administrao do ambienteoperacional. Normalmente so programas mais simples e com uma interface bem defi-nida. Eles podem ser usados como blocos de construo para resolver problemas maiscomplexos.

    os de usurios, que so aplicaes mais complexas como ambiente grfico, editor detexto, navegao na internet (browser), jogos, etc.

    O nosso enfoque ser nos programas bsicos.

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    16

    Cade

    rnos

    de In

    form

    tica

    Preliminares

    Antes de alcanar o nosso objetivo, vamos s preliminares. Nas sesses abaixo temosuma referncia rpida a alguns comandos e seqencia de teclas que sero teis duranteo aprendizado. Quando voc tiver uma dvida, pode voltar aqui para procurar a respos-ta (no que todas as respostas estejam aqui...)

    Comandos de teclado

    Abaixo algumas sequencias de tecladas teis. Ctrl-n quer dizer: pressione a tecla Ctrl edepois a tecla n. Solte a tecla n e a tecla Ctrl.

    Ctrl-CCtrl-CCtrl-CCtrl-CCtrl-C cancelar um comando

    Ctrl-DCtrl-DCtrl-DCtrl-DCtrl-D indicar fim de dados

    Ctrl-UCtrl-UCtrl-UCtrl-UCtrl-U para apagar a linha corrente

    Ctrl-SCtrl-SCtrl-SCtrl-SCtrl-S para suspender a impresso

    Ctrl-QCtrl-QCtrl-QCtrl-QCtrl-Q para continuar a impresso

    Caminhando na Lista de Comandos

    Utilizando as setinhas do teclado possvel caminhar na lista de comandos recente-mente digitados. Use

    seta para cimaseta para cimaseta para cimaseta para cimaseta para cima para ver um comando anterior

    seta para baixoseta para baixoseta para baixoseta para baixoseta para baixo para ver um comando posterior

    seta para a esquerdaseta para a esquerdaseta para a esquerdaseta para a esquerdaseta para a esquerda move o cursor para a esquerda

    seta para a direitaseta para a direitaseta para a direitaseta para a direitaseta para a direita move o cursor para a direita

    No so todos os programas que aceitam as setinhas. As aes acima valem para oba sh e se seu terminal estiver corretamente configurado.

    Comandos para Manipular Diretrios

    pwdpwdpwdpwdpwd informa o diretrio corrente

    findfindfindfindfind procura um arquivo ou diretrio no sistema de arquivos

    cdcdcdcdcd muda de diretrio

    mkdirmkdirmkdirmkdirmkdir cria um diretrio

    rmdirrmdirrmdirrmdirrmdir remove um diretrio vazio

    Comandos para Manipular Arquivos

    cpcpcpcpcp copia um (ou mais) arquivos

    mvmvmvmvmv move (renomeia) um (ou mais) arquivos

    rmrmrmrmrm remove um (ou mais) arquivos

  • Cade

    rnos

    de In

    form

    tica

    17

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    Comandos para Manipular o Contedo de Arquivos

    catcatcatcatcat lista um (ou mais) arquivos

    cmpcmpcmpcmpcmp compara dois arquivos

    sortsortsortsortsort ordena as linhas de um (ou mais) arquivos

    wcwcwcwcwc conta o nmero de linhas, caracteres e palavras de um arquivo

    Comandos para Utilizar Disquete

    mdirmdirmdirmdirmdir lista o contedo do disquete

    mcopymcopymcopymcopymcopy copia arquivos de/para um disquete

    mdelmdelmdelmdelmdel apaga arquivos em disquete

    Notas

    Comandos longos para o shell podem ser divididos em mltiplas linhas terminandocada linha, exceto a ltima, com \\\\\ (barra invertida). Neste caso, o prompt muda para > .

    Mltiplos comandos podem ser colocados em uma mesma linha separados por ;;;;; (pon-to-e-vrgula).

    Apenas um pequeno conjunto de comandos e opes descrito no texto. Maioresinformaes podem ser obtidas atravs do comando manmanmanmanman. Ateno: a traduo das p-ginas dos manuais em portugus , no mnimo, deficiente.

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    18

    Cade

    rnos

    de In

    form

    tica

    Histria

    O Linux uma verso de Unix. Existem outras, algumas livres, disponveis gratuita-mente ou com baixo custo e com o cdigo fonte liberado, por exemplo, o Minix, FreeBSDe OpenBSD. E existem as proprietrias, criadas ou mantidas por grandes fabricantes deequipamento ou software. Como exemplo temos o AIX da IBM, o Solaris da Sun e o HP-UX da HP. Foi inicialmente desenvolvido do nada por Linus Torvalds, em 1991. Na-quela poca, ele era um estudante na Finlndia. Ele colocou a verso 0.02 disponvel naInternet e, a partir da, muitas pessoas colaboraram com o seu desenvolvimento. Aindahoje, Linus encabea o projeto no papel de ditador benevolente.

    J o Unix foi criado por Ken Thompson e Dennis Ritchie em 1969 no Bell Labs (labora-trio de pesquisa da AT&T). Foi inicialmente criado para jogar Space Travel e rodava emum computador PDP-7 que estava abandonado num canto. O nome Unix veio de umabrincadeira com Multics. O Multics era/seria um sistema operacional muito pretenciosodo qual a AT&T participou. O mu do nome significava Multiplexed (multiplexado, nocaso, dividido em pedaos). Enquanto o Unix seria de um nico pedao.

    Em 1973 o sistema foi reescrito para rodar em um computador de maior porte(para a poca), o PDP-11/20. Agora, ao invs de linguagem Assembler, o sistemafoi escrito em C. A idia era que isto facilitaria o eventual transporte do sistemapara novos computadores, e eles estavam certos. Desde o incio o cdigo fonte(programas) estavam disponveis aos funcionrios do Bell Labs. Uma conseqnciadisto era que qualquer usurio que encontrasse um erro ou deficincia no sistemapoderia san-la.

    Duas caractersticas marcaram o desenvolvimento do Unix desde o princpio:

    o pequeno porte da mquina disponvel

    o fato dos primeiros usurios serem programadores.

    O fato de a mquina ser pobre em recursos levou a criao de um sistema operacionalenxuto, contendo apenas o necessrio para trabalhar de modo eficiente. Um exem-plo disso o fato das letras maisculas e minsculas serem diferentes e significa-tivas nos nomes dos arquivos (ao contrrio do que acontece no Microsoft Windows).Simplesmente seria necessrio mais cdigo para compara-las caso fossem iguais.

    Sendo os usurios programadores (e com todo o cdigo do sistema sempre disponvel)era fcil criar novos programas, corrigir os problemas e testar novas idias. Bons pro-gramadores so tambm preguiosos. Por isto, a maioria dos programas utilitrios tmnomes compostos por duas ou trs letras.

    Distribuies

    O Ambiente Linux composto do kernel (sistema operacional) linux propriamentedito e um grande conjunto de programas. Dependendo de quem seleciona e empacotao ambiente so criadas distribuies. Algumas das distribuies mais conhecidas so:

    Red Hat

    SuSE

    Debian

  • Cade

    rnos

    de In

    form

    tica

    19

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    Ubuntu

    Turbolinux

    Knoppix

    Conectiva/Mandrake/Mandriva

    Metasys

    Cada uma delas tem uma peculiaridade ou foi criada para um tipo especfico de usurio.Veja no glossrio uma rpida descrio das distribuies.

    Apesar das diversas distribuies existe um padro para os programas disponveis e sualocalizao no disco. Por isso, possvel usar uma ou outra distribuio sem grandestranstornos. Os exemplos desta apostila foram executados em uma distribuio Debian.Os resultados podem ser diferentes no Metasys, que a distribuio utilizada pela Se-cretaria de Educao. Em particular, as mensagens no Metasys devem aparecer emportugues.

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    20

    Cade

    rnos

    de In

    form

    tica

    SHELL: INTRODUO

    Quando se esta utilizando a console (o conjunto de monitor, teclado e mouse) ou umemulador de terminais (um programa, em um ambiente grfico, que simula uma conso-le), existe um programa que interpreta as requisies do usurio. Este programa oshell. Shell em ingls quer dizer casca e faz sentido. O que voc manipula numa ostra oumarisco a concha. E ela protege o ncleo (kernel) do animal.

    Um ponto interessante que o shellshellshellshellshell no um programa especial. um programa deusurio como qualquer outro. Se voc quiser pode escrever o seu prprio interpretadorde comandos.

    No Linux existem diversos programas shell. O que ns utilizaremos o bashbashbashbashbash (BBBBBourneAAAAAgain SHSHSHSHSHell).

    Existem duas formas de utilizar um shell:

    modo interativo que veremos a seguir

    modo batch, script, lote ou no-interativo que veremos em Shell: Avanado

    Modo Interativo

    O modo interativo onde o usurio digita um comando e espera a execuo dele antesde passar ao prximo comando. Um exemplo quando se lista o contedo de umdiretrio. Voc digita o comando e l a listagem produzida.

    Por exemplo, para saber que horas so podemos fazer o seguinte:

    mimbar:~/local/wikit:2> date

    Mon May 29 18:52:16 BRT 2006

    mimbar:~/local/wikit:3>

    datedatedatedatedate o nome do programa que informa a data corrente.

    A linha de comando

    Pode parecer ultrapassado nos dias de hoje, com todos os recursos grficos dispon-veis, ainda utilizar a linha de comandos. Este um ponto interessante. Existem, pelomenos, trs bons motivos:

    a ferramenta (programa) grfica pode no ser capaz de realizar a funo que deseja-mos.

    podemos estar acessando o computador atravs de uma conexo de baixa velocidade(linha discada) e o ambiente grfico no funciona bem nestas circunstancias.

    as aplicaes grficas podem ser muito pesadaspesadaspesadaspesadaspesadas, demandarem mais recursos do que ocomputador dispe. O computador pode ser mais antigo, ter menos memria ou espaoem disco.

    Vamos entrar em detalhes apenas sobre o primeiro motivo.

    As ferramentas so timas quando utilizadas para resolver o problema para o qual fo-ram desenvolvidas. Infelizmente elas falham quando o problema um pouco diferente

  • Cade

    rnos

    de In

    form

    tica

    21

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    do previsto. Um exemplo bem simples:

    Voc pode usar uma ferramenta grfica, similar ao Windows Explorer, para descobrirtodos os arquivos com um determinado nome ou extenso (.doc). Mas ela no capazde contar quantos arquivos foram encontrados. Voc precisa fazer isto manualmente(se forem poucos arquivos). Outro exemplo, voc quer renomear (mover) um conjuntode arquivos. A ferramenta pode fazer isto para voc. Mas, e se voc quiser colocar a datade hoje antes dos nomes de arquivos? Voc vai ter que fazer isto arquivo a arquivo.

    O grande poder do Unix, e por consequencia do Linux, que existem diversas ferra-mentas (programas) que fazem uma funo e a faz bem feita. E, atravs do shell, existeuma forma de combinar diversas ferramentas para resolver novos problemas.

    Executando um programa

    Na sua forma mais simples basta digitar o nome do programa que se quer executar. Veja

    o exemplo abaixo:

    mimbar:~:7> date

    Mon Aug 29 17:12:18 BRT 2005 mimbar:~:8>

    Vejamos cada uma das linhas acima:

    mimbar:~:7>

    o PromptPromptPromptPromptPrompt do shell. Ele indica que o shell esta pronto para receber um comando.

    date

    o comando propriamente dito e

    Mon Aug 29 17:12:18 BRT 2005

    o resultado da execuo do comando.

    mimbar:~:8>

    O shell informa que esta pronto para um novo comando.

    Caso o programa no exista, o shell envia uma mensagem de erro:

    mimbar:~:27> data

    -bash: data: command not found

    Passando argumentos

    Quando o shell recebe uma linha com um comando para executar, ele a divide em pala-pala-pala-pala-pala-vrasvrasvrasvrasvras. As palavras so seqencias de caracteres separadas por seqencias de espaos embranco. A primeira palavra o nome do comando e as prximas (se existirem) os argu-mentos e opes.

    Os argumentos modificam a execuo dos comandos. Por exemplo, o comando calcalcalcalcal (decalendario) precisa de dois argumentos, o mes e o ano a ser impresso:

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    22

    Cade

    rnos

    de In

    form

    tica

    mimbar:/usr/share/linux.see:20> cal 12 2005

    December 2005

    Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

    18 19 20 21 22 23 24

    25 26 27 28 29 30 31

    Alguns dos argumentos podem ser opes. O primeiro caractere das opes um -----(hfen ou sinal de menos). As opes devem preceder os demais argumentos. Por exem-plo, o comando calcalcalcalcal aceita a opo -m-m-m-m-m faz com que o calendrio seja listado com a segun-

    da-feira na primeira coluna. Sem esta opo o domingo aparece na primeira coluna.

    mimbar:/usr/share/linux.see:21> cal -m 12 2005

    December 2005 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

    Exerccios

    Experimente digitar os seguintes programas, um por linha, terminando cada linha porENTER:

    date

    whoami

    hostname

    echo que lindo dia, nao?

    pwd

    dir

    ls

    LS

    ls -a

    echo $SHELL

    Os resultados esperados so:

    horrio corrente

    nome do usurio

    nome da mquina

    o texto que lindo dia, nao? (sem as aspas). Observe que os espaos entre que e

  • Cade

    rnos

    de In

    form

    tica

    23

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    lindo foram preservados! As aspas () e os apstrofes ( ) permitem utilizar textoscom espaos como uma unidade (palavra). Veremos mais detalhes adiante.

    o diretrio onde voc est (provavelmente /home/usuario veremos isto depois)

    talvez um erro, se o programa dir no existir

    a lista de arquivos do diretrio corrente

    erro. As letras letras minsculas e maisculas so diferentes no Unix. Os comandos sogeralmente em minsculas.

    a lista de arquivos do diretrio corrente, incluindo os arquivos ocultos

    /bin/bash

    Caracteres especiais

    Voc reparou que o comando echo sumiu com as aspas? E percebeu que o ltimocomando no escreveu $SHELL? Existem alguns caracteres que so especiais para oshell. Eles so expandidos antes da execuo da linha de comando. Os principais so:

    $$$$$ (dollar ou cifro) o identificador a seguir o nome de uma varivel

    ***** (asterisco) expande para uma lista de arquivos

    ~~~~~ (til) substitudo pela varivel HOME (o shell original /bin/sh/bin/sh/bin/sh/bin/sh/bin/sh no suporta o ~~~~~)

    ????? (interrogao) no nome dos arquivos, vale por qualquer caractere

    (acento grave) execuo de comando

    > (maior) redirecionamento da sada padro

    ||||| (barra vertical) composio de programas

    \\\\\ (barra invertida) protege o prximo caractere

    (aspas) texto com substituio de variveis (exemplo: texto entre aspas)

    (apstrofe) texto sem substituio de variveis (exemplo: texto entre apstrofes)

    ((((( (abre-parentesis) sub-shell termina com ) (fecha-parentesis)

    !!!!! (exclamao) acesso a histria de comandos (apenas em modo interativo)

    Veremos os detalhes mais adiante, na sesso de Shell: BsicoShell: BsicoShell: BsicoShell: BsicoShell: Bsico. Por enquanto, se vocprecisar utilizar um dos caracteres especiais acima, coloque uma barra invertida (\)antes do caractere.

    Exerccio

    Repita os dois exerccios acima que no imprimiram o resultado esperado protegendoos caracteres especiais.

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    24

    Cade

    rnos

    de In

    form

    tica

    SISTEMA DE ARQUIVOS

    O objetivo das tarefas propostas explicar como utilizar o sistema de arquivos do Unix.Explicar o que um arquivo, um diretrio e como manipula-los.

    Conceitos

    O que um arquivo?

    O conceito de arquivo no Unix no difere muito do conceito de arquivo no mundo real. uma coleo de informaes. Estas informaes podem ser homogneas (terem sem-pre o mesmo formato) como as fichas de inscrio (todas iguais). Ou podem ser hetero-gneas (cada qual de tamanho, cor, etc. diferentes) como um agregado de folhas comanotaes.

    At o advento do Unix, os sistemas operacionais exigiam que as informaes sobre osdados (que chamados de meta-data) fossem estabelecidas no instante da criao doarquivo e que fossem imutveis. Em alguns sistemas as exigncias eram ainda maisseveras: apenas o administrador podia criar os arquivos e tinha que especificar onde eleseria armazenado, o tamanho de registro e o tamanho mximo do arquivo.

    No Unix, o sistema se preocupa apenas em arrumar espao em disco para o arquivo. Eleno faz nenhuma interpretao do seu contedo. Isto permitiu uma grande flexibilidadeaos programas e usurios. Outra caracterstica dos arquivos (e diretrios) no Unix queeles possuem nome. Pode parecer estranho mas havia sistemas onde isso no acontecia.

    Apesar de o Unix aceitar quase todos os caracteres no nome de arquivo, deve-se evitaro uso de caracteres acentuados, ponto-e-vrgula (;)(;)(;)(;)(;), espaos em branco e tabulaes,barra-invertida (\) (\) (\) (\) (\) e &&&&& (e comercial). Evite tambm arquivos comeados por hfen oumenos (-)(-)(-)(-)(-).O caractere ponto (.) no especial, no sentido de definir um tipo ou extenso para umarquivo. O nome sistema.de.arquivos.no.Unix perfeitamenta aceitvel. Nomes que co-meam por ponto (.), por conveno no so usualmente listados. Estes nomes sogeralmente utilizados pelos arquivos de configurao dos programas. Mais exemplosem Introduo ao Shell.

    Sistema de arquivos

    Alguns sistemas operacionais organizam todos os arquivos do sistema em um balaio degato. Todos os arquivos esto juntos. Isto funciona para sistemas pequenos onde sopoucos os arquivos. Os disquetes so um exemplo.

    A medida que o nmero de arquivos cresce fica cada vez mais difcil definir nomesnicos aos arquivos e encontr-los. Alm disso, dois usurios no podem ter arquivoscom o mesmo nome.

    Outros sistemas dividem os arquivos em duas parties: um conjunto de usurios e,para cada usurio, seus arquivos. Este tipo de organizao inclusive diminui a interfern-cia entre os diversos usurios. Esta estrutura era adotada pelo DOS/BATCH da Digital.

    Os sistemas operacionais modernos possuem uma estrutura mais flexvel onde, alm de

  • Cade

    rnos

    de In

    form

    tica

    25

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    arquivos em um diretrio, podem existir tambm diretrios. Isto permite definir umahierarquia para o armazenamento dos arquivos. Grosseiramente falando, voc pode terum diretrio para a empresa, dentro dele um diretrio para cada departamento, dentrode cada departamento, um diretrio para cada sesso e assim por diante at chegar emdiretrios que s possuem arquivos.

    Os diretrios so chamados de pastas no Windows.

    O que um diretrio?

    Diretrios so utilizados para manter arquivos relacionados juntos. Podem ser arquivosexecutveis (programas), arquivos de dados, arquivos de um projeto ou tema, arquivosde uma determinada data, etc. Distribuindo os arquivos em diretrios facilita a manipu-lao (cpia, acesso, compartilhamento) dos mesmos.

    No Unix, e em alguns outros sistemas operacionais, os arquivos so organizados emdiretrios que so, basicamente, arquivos com o nome de outros arquivos. No incio doUnix, os mesmos programas que processavam arquivos texto podiam ser usados paraprocessar diretrios. Depois, por questes administrativas e de segurana isto mudou.Agora os programas mkdir & rmdir so utilizados para criar e remover diretrios.

    Estrutura de diretrio

    A estrutura de diretrios pode ser imaginada como uma rvore de cabea para baixo.

    O ponto de partida chamado raiz (root) e representado por uma barra (/) (/) (/) (/) (/). A partir daesto os outros diretrios que, por sua vez, podem possuir outros diretrios.

    Os diretrios abaixo de um diretrio so chamados de filhos. O diretrio imediatamenteacima chamado diretrio pai. Um diretrio pode ter inmeros filhos e apenas um pai.O diretrio pai referenciado com o nome .......... (ponto-ponto).

    No caminhar pela rvore de diretrios, usam-se os termos subir (ir para um diretrioanterior (pai)) e descer (ir para um diretrio contido no diretrio em questo(filho)).Diretrios do mesmo nvel e com o mesmo pai so chamados de irmos.

    Existe um padro, nem sempre seguido, de estrutura de diretrios do Linux. Ela des-crita em Estrutura de diretrios porque relativamente extensa.

    Estrutura de diretrios

    Em um sistema Unix tpico existem centenas ou mesmo milhares de arquivos. Diversosdestes arquivos so colocados em posies bem definidas de forma que as pessoas e osprogramas saibam onde achar diversas informaes sobre o sistema.

    A estrutura de diretrio organizada como uma rvore de cabea para baixo, ou seja,com a raiz desenhada no nvel mais alto e as olhas no nvel mais baixo.

    O caractere / (barra) utilizado como separador dos componentes do nome do arquivo.

    / tambm utilizada para representar o primeiro nvel (raiz) da rvore.

    Os principais diretrios so:

    ///// (raiz) incio do sistema de arquivos

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    26

    Cade

    rnos

    de In

    form

    tica

    /bin/bin/bin/bin/bin utilitrios mais comuns (essenciais)

    /dev/dev/dev/dev/dev dispositivos do sistema

    /etc/etc/etc/etc/etc informaes e definies do sistema

    /home/home/home/home/home diretrio dos usurios

    /lib/lib/lib/lib/lib bibliotecas mais comuns

    /man/man/man/man/man manuais do sistema

    /mnt/mnt/mnt/mnt/mnt ponto de montagem de sistemas de arquivos

    /opt/opt/opt/opt/opt pacotes opcionais

    /proc/proc/proc/proc/proc situao do sistema

    /sbin/sbin/sbin/sbin/sbin utilitrios para o administrador

    /tmp/tmp/tmp/tmp/tmp diretrio temporrio

    /usr/usr/usr/usr/usr aplicaes/programas/utilitrios de usurios

    /var/var/var/var/var arquivos de trabalho

    Nem todos estes diretrios precisam existir em todos os sistemas. Existe uma certaflexibilidade. E existe tambm a limitao do espao em disco.

    A seguir, descrevemos um pouco mais detalhadamente estes diretrios.

    ///// A imagem (kernel) do sistema operacional fica aqui. O diretrio do adminis-trador do sistema tambm.

    /bin/bin/bin/bin/bin Os utilitrios imprescindveis, sem os quais o sistema no pode funcionar,como ls, cat, grep, cp,mv,rm, bash ficam neste diretrio. Estes programas so usadospelo prprio sistema para manter a casa. Por exemplo, o comando rm utilizado pararemover os arquivos temporrios do diretrio /tmp.

    /dev/dev/dev/dev/dev Os diversos dispositivos que o sistema suporta (impressoras, teclado, mouse,sada de som, entre outros) tem sua interface aqui. O arquivo /dev/lp0 um nome co-mum para a primeira impressora do sistema.

    Aqui esto tambm pseudo-dispositivos. Os mais famosos so /dev/null, utilizado paradescartar a sada de um programa, e o /dev/zero que retorna um nmero infinito denulos (zeros).

    /etc/etc/etc/etc/etc As principais informaes (estticas) do sistema esto neste diretrio. A mai-oria dos arquivos deste diretrio so arquivos texto que podem ser editados pelo admi-nistrador do sistema.Por exemplo, a relao de usurios est no arquivo /etc/passwd.

    Voc pode lista-lo com o comando abaixo:

    cat /etc/passwd

    root:x:0:0:root:/root:/bin/bash sync:x:4:65534:sync:/bin:/bin/sync *** vrias linhas suprimidas ***

    Note que o nome e login do usurio esto neste arquivo mas no sua senha! A senha

    fica no arquivo /etc/shadow. Vamos lista-lo:

  • Cade

    rnos

    de In

    form

    tica

    27

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    cat /etc/shadow

    cat: /etc/shadow: Permission denied

    Este arquivo , por motivos bvios, protegido contra a leitura e escrita. Um usuriocomum no pode l-lo.

    Diversos arquivos de configurao dos programas do sistema esto aqui. O /etc/inetd.conf, por exemplo, contm os programas que devem ser disparados quandoum determinado servio (e-mail) solicitado.

    /home/home/home/home/home Este o local onde tradicionalmente so criados os diretrios dos diversosusurios do sistema.

    Muitas vezes este diretrio est em um ou mais discos a parte permitindo assim que novos

    usurios possam ser adicionados ao sistema e tambm para aumentar o espao em disco.

    /lib/lib/lib/lib/lib Aqui ficam as bibliotecas, que so arquivos com vrias funes dentro, que soutilizados por vrios programas. As bibliotecas so parecidas com as bibliotecas domundo real. Nelas so compartilhados os livros que so do interesse de diversas pesso-

    as. Serve tambm como um repositrio de conhecimento.

    /man/man/man/man/man Os manuais dos programas, bibliotecas, arquivos de configurao, entre ou-

    tros ficam neste diretrio.

    /mn/mn/mn/mn/mnttttt Atualmente caindo em desuso, o diretrio /mnt, o ponto de montagem deoutros sistemas de arquivos. Por exemplo, para se utilizar um disquete no Unix ele pode

    ser montado em /mnt/floppy.

    /o/o/o/o/optptptptpt Grandes pacotes, opcionais, do sistema so comumente instalados aqui. Os siste-

    mas de gerenciamento do ambiente grfico (KDE e GNOME) s vezes so instalados aqui.

    /pro/pro/pro/pro/proccccc Nem todo sistema Unix possui este diretrio. Ele foi criado pela Sun parapermitir o acesso, atravs do sistema de arquivo, informaes dinmicas do sistema.Informaes como o processador do sistema (/proc/cpuinfo), sistemas de arquivos su-portados (/proc/filesystems) e dispositivos (/proc/devices) podem ser encontradas aqui.

    Ao contrrio dos arquivos em /etc, as informaes aqui mudam sem que o administra-

    dor precise edita-las.

    /sbin/sbin/sbin/sbin/sbin Utilitrios de uso restrito ao administrador, como criao de novos usurios,

    formatao de discos, ficam neste diretrio ao qual normalmente os usurios no tem acesso.

    /tmp/tmp/tmp/tmp/tmp s vezes, durante a execuo de um programa, necessria a criao de arqui-vos intermedirios (temporrios) que no precisam serem preservados. Um bom localpara cri-los no /tmp. Periodicamente, normalmente durante a madrugada, ou quan-do a mquina inicializada (boot) este diretrio apagado e recriado. Assim, todos osarquivos no /tmp so perdidos.

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    28

    Cade

    rnos

    de In

    form

    tica

    /usr/usr/usr/usr/usr Utilitrios mais complexos (exemplo: latex) ou menos utilizados (nroff, agrep)e arquivos maiores (fonte do sistema) so colocados aqui. Muitas vezes o /usr umapartio ou um disco a parte. Normalmente montado apenas para leitura. Dentro dele

    existem diversos subdiretrios:

    /usr/bin/usr/bin/usr/bin/usr/bin/usr/bin mais utilitrios

    /usr/lib/usr/lib/usr/lib/usr/lib/usr/lib bibliotecas usadas pelos utilitrios em /usr/bin

    /usr/local/usr/local/usr/local/usr/local/usr/local arquivos instalados pelo administrador

    /usr/share/usr/share/usr/share/usr/share/usr/share arquivos compartilhados (apenas leitura)

    /usr/src/usr/src/usr/src/usr/src/usr/src fonte do sistema e seus utilitrios

    Quando diversos computadores esto ligados em rede, o administrador pode optar porcompartilhar este diretrio entre eles. Isto economiza espao em disco e facilita a ins-talao de novos aplicativos. Basta fazer uma instalao e todos os computadores temacesso aos novos aplicativos.

    /var/var/var/var/var Nesta partio so colocados os arquivos e diretrios temporrios que devemser preservados quando a mquina reiniciada. As mensagens de e-mail e os arquivosde log (registro de acontecimentos) ficam neste diretrio.

    Anteriormente os diretrios /usr e /var eram um s. Com o passar do tempo e o aumen-to do nmero de arquivos eles foram separados. Atualmente o /usr pode ser montadoread-only (acesso apenas para leitura) e o /var montado para escrita. Esta separaodificulta a ao dos vrus, cavalos de Tria e outros problemas de segurana e agiliza ainicializao (boot) da mquina.

    Diretrio corrente

    Sempre que um programa executado no Unix ele roda no diretrio corrente, que olocal na hierarquia de diretrios onde o shell (e portanto o usurio) esta. Ele referenciado por . (ponto). Quando um usurio entra (loga) no sistema ele usualmentevai para o seu diretrio $HOME. A partir de l, utilizando o comando do shell cd, ele

    pode se mover na estrutura de diretrios (rvore de arquivos).

    mimbar:/usr/share/linux.see:7> pwd

    /usr/share/linux.see

    Recaptulando as convenes de diretrios:

    ..... diretrio corrente

    .......... diretrio pai ou diretrio acima

    ///// diretrio raiz (origem)

    ~~~~~ diretrio $HOME (nem todo shell ou programa aceita ~)

    Referenciando arquivos e diretrios

    Como foi dito acima, todos os arquivos e diretrios no Unix possuem, pelo menos, umnome. No texto que segue, no h diferenas entre arquivos e diretrios, portanto, para

  • Cade

    rnos

    de In

    form

    tica

    29

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    simplificar, falaremos apenas de arquivos.

    As referncias aos arquivos podem ser de dois tipos:

    absoluta quando o primeiro caractere do nome do arquivo uma barra (/)(/)(/)(/)(/), indican-do que o nome deve ser analisado a partir do diretrio raiz. Exemplo: /var/log/messages

    relativa quando o nome do arquivo no comea com /////. Neste caso, o arquivo deveser procurado a partir do diretrio corrente Exemplo: .bash_profile

    Supondo que estamos no diretrio /usr/share/linux.see e que ele contm o arquivo

    citacao, todos os nomes abaixo acessam o mesmo arquivo:

    mimbar:/usr/share/linux.see:9> ls - l citacao

    -rw-rr 1 edesio edesio 42 Sep 13 18:48 citacao mimbar:/usr/share/linux.see:10> ls - l ./citacao -rw-rr 1 edesio edesio 42 Sep 13 18:48 ./citacao mimbar:/usr/share/linux.see:11> ls - l ../linux.see/citacao -rw-rr 1 edesio edesio 42 Sep 13 18:48 ../linux.see/citacao mimbar:/usr/share/linux.see:12> ls - l /usr/share/linux.see/citacao -rw-rr 1 edesio edesio 42 Sep 13 18:48 /usr/share/linux.see/citacao mimbar:/usr/share/linux.see:12> ls - l ././././././citacao -rw-rr 1 edesio edesio 42 Sep 13 18:48 ././././././citacao

    Outra caracteristica do sistema de arquivos do Unix a homogeneidade. Todos os meiosde armazenamento aparecem na mesma rvore. No h o conceito de discos (C:, D:)(C:, D:)(C:, D:)(C:, D:)(C:, D:) doDOS/WindowsDOS/WindowsDOS/WindowsDOS/WindowsDOS/Windows. Disquetes, fitas, CD-ROMs, at uma impressora, aparecem como arquivosou diretrios.

    Permisses dos arquivos e diretrios

    A partir do momento em que um computador utilizado por mais de um usurio passaa ser importante definir quem pode fazer o que com os arquivos. E mesmo o que o donodo arquivo pode fazer com ele.

    No Unix as permisses de acesso aos arquivos (e diretrios) so divididas em trs con-juntos:

    o que o dono do arquivo pode fazer

    o que os usurios do mesmo grupo do dono pode fazer

    todos os outros usurios

    So trs as operaes sobre os arquivos ou diretrios:

    r r r r r (Read leitura)

    wwwww (Write escrita)

    x x x x x (eXecute execuo)

    Para ilustrar veja a permisso do diretrio / / / / / (raiz):

    mimbar:/usr/share/linux.see:13> ls -ld /

    drwxr-xr-x 21 root root 1024 Aug 5 15:59 /

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    30

    Cade

    rnos

    de In

    form

    tica

    d para indicar diretrio

    rwx so as permisses para o dono do diretrio

    r-x as permisses para usurios do grupo do dono

    r-x as permisses para os outros usurios

    21 o nmero de sub-diretrios neste diretrio

    root o dono

    root o grupo do dono

    1024 o nmero de bytes (caracteres) que o diretrio ocupa

    Aug 5 15:59 a data da ltima alterao (escrita) neste diretrio

    / o nome do diretrio

    Detalhes e exerccios sobre este importante assunto sero apresentados em lse chown & chmod.

    O administrador do sistema (root) no est limitado s permisses dos arquivos ediretrios!

    Horrios dos arquivos e diretrios

    Alm de permisses, os arquivos e diretrios no Unix possuem trs horrios (timestand):

    atimeatimeatimeatimeatime horrio do ltimo acesso ao arquivo (alterado quando se l)

    ctimectimectimectimectime horrio da ltima alterao de status do arquivo (alterado quando o arquivo criado ou quando o dono ou as permisses so alteradas)

    mtimemtimemtimemtimemtime horrio da ltima alterao do arquivo (escrita)

    Estes horrios podem ser exibidos atravs do programa ls e so teis para fazer backupseficientes (copiando apenas os arquivos novos ou alterados). O comando find permitea identificao destes arquivos.

    Observao: algumas implementaes de sistemas de arquivos podem no implementartodos estes horrios ou mante-los atualizados. Por exemplo, no possvel alterar oatime de um arquivo que est em um CD-ROM.

    Note que o atime pode ser maior ou menor que o mtime. O shell utiliza isto para detec-tar a chegada de e-mail. Quando uma mensagem nova chega ela escrita no arquivo dacaixa postal do usurio e, portanto modifica o mtime. Se o mtime > atime existe umamensagem nova e o shell informa isto ao usurio logo que possvel. Quando o usuriol a mensagem o atime atualizado e agora temos atime > mtime.

    Quotas de espao em disco

    Como o espao em disco compartilhado pelos usurios, pode ser importante restringirquanto de espao em disco cada um pode utilizar. Para tal, so definidas quotas. Umavez atingido o limite de sua quota, o usurio tem restries sobre o espao em discoque pode alocar.

  • Cade

    rnos

    de In

    form

    tica

    31

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    Meio de armazenamento

    O sistema de arquivo muitas vezes referenciado como disco. Na quase totalidade dasinstalaes, os arquivos so armazenados em discos rgidos, tambm chamados dewinchesters e HDs. Os disquetes por sua vez so conhecidos como discos flexveis). Omeio fsico onde esta o sistema de arquivo transparente para o usurio, ou seja, eleno precisa saber o meio de armazenamento.

    Sistema de Arquivos como Banco de Dados

    O sistema de arquivos pode funcionar como um banco de dados (ver Glossrio) emdiversas situaes. Para tal, o que precisamos encontrar uma representao adequadaaos dados. Voltaremos a este tpico mais adiante, aps conhecermos os utilitrios demanipulao de arquivos, diretrios e textos.

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    32

    Cade

    rnos

    de In

    form

    tica

    MDULO 2

    SHELL: BSICO

    At agora vimos apenas como executar programas simples no Unix, programas queapenas imprimiam alguma coisa no terminal. Mas os programas podem tambm lerinformaes do terminal e emitir mensagens de erro.

    H tambm recursos no modo interativo para facilitar a vida do usurio. Veremos al-guns destes recursos aqui.

    ARQUIVOS PADRO

    Quando um programa executado no Unix ele herda trs arquivos abertos:

    stdinstdinstdinstdinstdin entrada padro (descritor 0)

    stdout stdout stdout stdout stdout sada padro (descritor 1)

    stderr stderr stderr stderr stderr sada de erros (descritor 2)

    No modo interativo, o shell associa todos estes arquivos ao terminal do usurio. Maisadiante veremos como enviar o resultado do programa para um arquivo ou impressorae como ler os dados de um arquivo.

    O shell um programa como qualquer outro, l a entrada padro e escreve na sadapadro. Quando voc digita o nome de um programa e o shell o executa, o shell para deler e escrever e passa os arquivos padro (entrada, sada e erros) para o programa.Tudo o que voc digitar ser lido pelo programa. E o que o programa escrever aparecerna tela. Quando o programa terminar, o controle do computador retornar ao shell que

    voltar a ler e escrever no terminal. Vamos a um exemplo:

    mimbar:~:2> wc

    Procurando bem Todo mumto tem pereba Marca de bexiga ou vacina E tem piriri, tem lombriga, tem ameba ^D 2 18 101

    mimbar:~:3>

    O shell estava esperando um comando (indicado pelo prompt mimbar:~:2> ), vocdigitou wc. O programa wc foi executado, leu as primeiras quatro linhas, o Ctrl-D (^D)que indica fim de texto, e imprimiu os nmeors 4 (nmero de linhas no texto), 18(nmero de palavras) e 101 (nmero de caracteres), e terminou. O shell voltou a espe-rar um comando (indicado pelo prompt).

    Uma caracterstica de muitos dos utilitrios do Unix que eles so escritos como filtros.Os Filtros lem a entrada padro, processam cada linha do arquivo e escrevem os resul-tados na sada padro. Eventuais erros so enviados para a sada de erros.

  • Cade

    rnos

    de In

    form

    tica

    33

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    Outros recursos que o shell oferece em modo interativo so: histrico de comandos ecompletar nomes.

    Histrico de Comandos

    O bash armazena os ltimos comandos que voc digitou. Atravs do recurso de histri-co de comandos voc pode reexecuta-los, com ou sem alterao. Isto muito til quan-do os comandos so mais longos.

    Dependendo da configurao do seu terminal, as setinhas para cima e para baixo an-dam no histrico de comandos. As setinhas para a esquerda e para a direita andamdentro da linha. Para inserir um texto, basta digit-lo. Para apagar um texto use a teclaDEL ou BACKSPACK ou ^U (Ctrl-U).

    O comando history lista a relao de ltimos comandos. Voc pode repetir o ltimo deles teclando!!. Pode repetir um comando arbitrrio digitando !nnn onde nnn o nmero do comando nalista. Ou pode utilizar !?palavra para repetir o ltimo comando que contm a palavra palavra.

    Veja abaixo um exemplo:

    mimbar:~:12> cd /usr/share/linux.see

    mimbar:/usr/share/linux.see:13> echo $PS1 \h:\w:\#> mimbar:/usr/share/linux.see:14> date Wed Dec 14 22:52:53 BRST 2005 mimbar:/usr/share/linux.see:15> ls Bilhetes assinatura.tcl dominios.txt rascunho.txt Lista-de-Palavras.txt campeoes.txt doms revision-1.txt MaryPoppins-1.txt capitais frutas revision-2.txt MaryPoppins-2.txt cidades mlang10.zip sigla-capital Receitas citacao morse.txt sigla-estado assinatura.pl dict-port.txt mword10.zip assinatura.sh discurso.txt pequeno.dicionario mimbar:/usr/share/linux.see:16> history 5

    512 cd /usr/share/linux.see513 echo $PS1514 date515 ls516 history 5

    mimbar:/usr/share/linux.see:17> !date date Wed Dec 14 22:53:14 BRST 2005 mimbar:/usr/share/linux.see:18> !?see cd /usr/share/linux.see mimbar:/usr/share/linux.see:19> !513 echo $PS1

    \h:\w:\#>

    history 5history 5history 5history 5history 5 lista os ultimos 5 comandos.!date!date!date!date!date reexecuta o ultimo comando date!?see!?see!?see!?see!?see reexecuta a ultima linha que contem o texto seeseeseeseesee

    Cuidado com a repetio de comandos, principalmente o !? porque voc pode estar nodiretrio errado para o comando!

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    34

    Cade

    rnos

    de In

    form

    tica

    Completar Nomes

    Voc pode digitar apenas o incio do nome do programa ou arquivo e o shell o completapara voc. Para isto voc digita o incio do nome e pressiona TAB. Se s existir umaalternativa o shell completa a palavra. Se existir mais de uma soar um beep. Nestecaso, tecle TAB duas vezes para ver a lista de alternativas, digite mais alguns caracterese pressione TAB novamente.

    Quando se pressiona TAB na primeira palavra da linha de comando (o nome do progra-ma a executar) o shell tenta fazer a expanso examinando cada alternativa na varivel$PATH (esta e outras variveis so descritas logo abaixo).

    Aps a primeira palavra o shell tenta expandir nomes de arquivos no diretrio corrente.

    Para cancelar a execuo de um programa, pressione simultaneamente as teclas Ctrl e C.

    Por exemplo, digite cd /etc (sem as aspas). Depois digite echo pasTAB. O shellcompletar o comando como echo passwd, porque o nico arquivo que existe nodiretrio /etc que comea com pas passwd. Experimente.

    Observao: quando o shell expande um nome de diretrio, com o recurso de completarnomes, ele coloca uma barra (/) para facilitar a digitao de um nome de arquivo.

    Variveis

    Apertem os cintos que vamos ver um conceito um pouquinho mais complicado agora: variveis.

    Pode-se imaginar uma varivel como uma caixa onde se pode guardar um texto. Comopode existir mais de uma caixa, cada caixa tem um nome nico. Por exemplo, voc podeter uma caixa azul onde guarda a conta de telefone e uma caixa vermelha onde guardao telefone da padaria.

    Seguindo a metfora da caixa, voc pode pedir a algum: me passe a caixa vermelhae me passe o contedo da caixa vermelha. So duas coisas bem diferentes.

    No shell, para voc colocar algo em uma varivel voc utiliza um comando da forma:

    nome=value

    Exemplo:

    mimbar:~:117> PADARIA=3261-3460"

    Para obter o valor de uma varivel voc coloca um caractere dollar/cifro ($$$$$) antes do

    nome da varivel. Veja:

    mimbar:~:118> echo PADARIA

    PADARIA

    mimbar:~:119> echo $PADARIA

    3261-3460

    L atrs, em Shell: Introduo, falamos dos caracteres aspas () e apstrofes (). Vejacomo a expanso das variveis se comporta:

  • Cade

    rnos

    de In

    form

    tica

    35

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    mimbar:~:120> echo $PADARIA

    3261-3460

    mimbar:~:121> echo $PADARIA

    $PADARIA mimbar:~:122> echo O telefone da padaria e $PADARIA O telefone da padaria e 3261-3460

    e ainda,

    mimbar:~:123> echo \$PADARIA

    $PADARIA

    Ateno: no pode haver espaos em branco ao redor do sinal de igual (=====)!

    E quando usamos variveis? Quando queremos utilizar um texto mais de uma vez. Sevamos utilizar o mesmo texto diversas vezes, podemos coloca-lo em uma varivel ereferenciar a varivel diversas vezes. Outra situao so nos comandos que veremos emShell: Avanado.

    Por fim, duas observaes sobre variveis:

    elas so efmeras, ou seja, quando o shell termina (ou sua sesso) as variveis soperdidas.

    a qualquer momento voc pode alterar o valor de uma varivel, afinal ela no umaconstante :-)

    Variveis do shell

    O shell suporta e utiliza diversas variveis. Algumas variveis importantes so:

    PS1PS1PS1PS1PS1 indicador que o shell esta pronto para receber um comando (prompt) veja abaixo

    HOMEHOMEHOMEHOMEHOME diretrio principal do usurio

    PATHPATHPATHPATHPATH relao de diretrios onde esto os programas

    TERMTERMTERMTERMTERM definio do terminal

    Alm destas, existem outras variveis definidas no ambiente que so utilizados poroutros programas. Por exemplo,

    EDITOREDITOREDITOREDITOREDITOR editor preferido pelo usurio (ver emacs e vi)

    PAGERPAGERPAGERPAGERPAGER programa de paginao (ver more & less)

    O usurio pode definir suas prprias variveis, desde que no conflitem com asutilizadas pelo sistema. Por conveno, as variveis do sistema so escritas sempreem maisculas.

    As variveis podem ser utilizadas para passar informaes entre programas ou paraarmazenar valores temporrios.

    Voc pode listar todas as variveis definidas no ambiente atravs do programa env. Oulistar individualmente com o comando echo $varivel. Exemplo:

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    36

    Cade

    rnos

    de In

    form

    tica

    mimbar:~:1# env

    HZ=100

    SHELL=/bin/bash TERM=xterm USER=root MAIL=/var/mail/root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11 PWD=/root PS1=\h:\w:\## SHLVL=1 HOME=/root LOGNAME=root _=/usr/bin/env

    mimbar:~:2#

    Ou

    mimbar:~:2# echo $PATH

    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11 mimbar:~:3#

    O Prompt

    Existem na realidade 4 prompts no shell:

    PS1 PS1 PS1 PS1 PS1 Este o prompt primrio. Existem algumas seqencias de escape que so expan-didas antes da sua exibio.

    \h \h \h \h \h significa o nome do computador

    \w \w \w \w \w significa o nome do diretrio corrente

    \# \# \# \# \# nmero do comando na histria de comandos

    PS2 PS2 PS2 PS2 PS2 Utilizado para indicar que o comando est incompleto. O shell aguarda continuao.

    PS3 PS3 PS3 PS3 PS3 Exibido durante o comando [Select].

    PS4 PS4 PS4 PS4 PS4 Usado quando o shell est executando em modo de depurao.

    Voc pode examinar o contedo destas variveis com o comando

    mimbar:/usr/src:26> echo $PS1

    \h:\w:\#>

    mimbar:/usr/src:27>

    E pode alterar com

    mimbar:/usr/src:27> PS1=Pronto?

    Pronto? pwd

    /usr/src

    O valor inicial da varivel PS1 (prompt) depende de cada distribuio. Pode ir desde um simples$ at prompts coloridos que ocupam mais de uma linha. Em todo caso, voc pode alterar o valordesta varivel na Configurao do Shell que veremos na sesso Shell: Avanado.

  • Cade

    rnos

    de In

    form

    tica

    37

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    O prompt deve transmitir alguma informao ao usurio alm de que o shell est prontopara o prximo comando. A definio do prompt nesta apostila \h:\w:\#> . Istopermite saber em que mquina (\\\\\hhhhh) o usurio est (podem existir mais de um emuladorde terminal aberto e cada um deles em uma mquina diferente), qual o diretrio corren-te (\\\\\wwwww) e qual o nmero do comando corrente (\\\\\#####). O nmero do comando corrente til para repetir um comando anterior pelo nmero (!nnn!nnn!nnn!nnn!nnn).

    Entrada e Sada

    Como dito acima, muitos programas recebem seus dados via entrada padro e escrevemos resultados na sada padro. Porm nem sempre isto desejado, por exemplo, seusdados podem estar gravados em um arquivo. Para estas situaes o shell implementa oredirecionamento. Atravs do redirecionamento o programa l ou escreve em arquivosdefinidos pelo usurio. E isto sem que o programa perceba!

    As formas mais comuns de redirecionamento so:

    > da sada padro, sobrescreve

    >>>>>>>>>> da sada padro, adiciona

    2>2>2>2>2> da sada de erros

    ||||| da sada padro para a entrada padro (pipe)

    Vamos dar alguns exemplos utilizando os comandos echoechoechoechoecho, catcatcatcatcat, wcwcwcwcwc e datedatedatedatedate. Estes coman-dos sero detalhados posteriormente. Rapidamente:

    echoechoechoechoecho imprime os argumentos

    catcatcatcatcat lista o contedo de um arquivo

    wcwcwcwcwc conta os linhas, palavras e caracteres de um arquivo

    datedatedatedatedate imprime a data corrente

    mimbar:~/local/wikit/sh-exemplos:18> ls -l

    total 0 mimbar:~/local/wikit/sh-exemplos:19> echo era uma vez... era uma vez... mimbar:~/local/wikit/sh-exemplos:20> echo era uma vez...>historia mimbar:~/local/wikit/sh-exemplos:21> ls -l total 4 -rw-rr 1 edesio edesio 15 Feb 19 21:36 historia mimbar:~/local/wikit/sh-exemplos:22> cat historia era uma vez... mimbar:~/local/wikit/sh-exemplos:23> wc historia 1 3 15 historia mimbar:~/local/wikit/sh-exemplos:24> echo era uma vez... | wc 1 3 15 mimbar:~/local/wikit/sh-exemplos:25> cat date >>historia mimbar:~/local/wikit/sh-exemplos:27> cat historia

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    38

    Cade

    rnos

    de In

    form

    tica

    era uma vez...

    Sun Feb 19 21:38:06 BRT 2006

    mimbar:~/local/wikit/sh-exemplos:28> date >historia mimbar:~/local/wikit/sh-exemplos:29> cat historia Sun Feb 19 21:38:16 BRT 2006 mimbar:~/local/wikit/sh-exemplos:30> rm historia mimbar:~/local/wikit/sh-exemplos:31> cat historia cat: historia: No such file or directory mimbar:~/local/wikit/sh-exemplos:32> cat historia 2>erros mimbar:~/local/wikit/sh-exemplos:33> ls -l total 4 -rw-rr 1 edesio edesio 41 Feb 19 21:44 erros mimbar:~/local/wikit/sh-exemplos:34> cat erros cat: historia: No such file or directory mimbar:~/local/wikit/sh-exemplos:35> cd .. mimbar:~/local/wikit:36> ls -1 CVS Index.txt Pages dump.log error.txt history linux.see notes.tkd rascunho.txt savelog.txt sh-exemplos should-not-be-here-linux.see tmp wikit.copia wikit.tkd mimbar:~/local/wikit:37> ls -1 | wc -l 15

    mimbar:~/local/wikit:38>

    O que aconteceu acima? Vejamos usando o nmero do comando como referncia:

    #18#18#18#18#18 o diretrio est vazio

    #19#19#19#19#19 usamos o echo que escreve na sada padro

    #20#20#20#20#20 redirecionamos a sada o echo para o arquivo historia

    #21#21#21#21#21 dados do arquivo criado

    #22#22#22#22#22 usando o cat para exibir o contedo do arquivo criado

    #23#23#23#23#23 contando as linhas, palavras e caracteres do arquivo

    #24#24#24#24#24 usando o pipepipepipepipepipe ao invs de um arquivo intermedirio

    #25#25#25#25#25 o cat listando a entrada padro (porque foi executado sem argumentos)

    #26#26#26#26#26 colocando a data atual no finalfinalfinalfinalfinal do arquivo de historia (adicionado)

    #27#27#27#27#27 novo contedo do arquivo historia

    #28#28#28#28#28 sobrescrevendo o arquivo historia, o contedo anterior perdido

  • Cade

    rnos

    de In

    form

    tica

    39

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    #29#29#29#29#29 novo contedo do arquivo historia

    #30#30#30#30#30 removendo o arquivo criado

    #31#31#31#31#31 tentando exibir o contedo de um arquivo inexistente (erro)

    #32#32#32#32#32 a mensagem de erro escrita no arquivo erro

    #33#33#33#33#33 contedo do diretrio

    #34#34#34#34#34 contedo do arquivo erro

    #35#35#35#35#35 movendo para o diretrio acima

    #36#36#36#36#36 listando os arquivos do diretrio

    #37#37#37#37#37 contando os arquivos do diretrio

    Shell Scripts

    Um script um roteiro de comandos a executar. No caso de shell script o script executa-do pelo shell. Existem outros interpretadores mas no entraremos em detalhes por agora.

    Um shell script um arquivo texto, marcado como executvel (programa) e que tem na primei-ra linha #!/bin/sh#!/bin/sh#!/bin/sh#!/bin/sh#!/bin/sh. O shell l e executa cada uma das linhas e exibe o resultado na tela.

    Para que serve um shell script? Um shell script permite automatizar algumas funes.Vamos imaginar que voc quer descobrir qual o arquivo mais recente de um diretrio.

    Voc pode utilizar os seguintes comandos:

    mimbar:~:18> cd /tmp

    mimbar:/tmp:19> ls -1t | head -1 plugtmp-10

    mimbar:/tmp:20>

    Ou pode criar um script com um editor de texto, como o vi, assim:

    mimbar:/tmp:22> cat >mnovo

    #!/bin/sh cd $1 ls -1t | head -1 ^D mimbar:/tmp:23> chmod +x mnovo mimbar:/tmp:24> ./mnovo /tmp mnovo

    mimbar:/tmp:25>

    O script mnovo lista o arquivo mais recente do diretrio passado como argumento.

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    40

    Cade

    rnos

    de In

    form

    tica

    Utilitrios de manipulao de arquivos e diretrios

    1. ls listar contedo de diretrio

    2. find procurar arquivos

    3. ln criar um sinnimo para um arquivo

    4. cp & mv & rm copiar, renomear e remover arquivos

    5. chown & chmod alterar dono e permisses dos arquivos

    6. file informar o tipo de um arquivo examinando seu contedo

    7. du & df utilizao de espao em disco

    8. mkdir & rmdir criar e remover diretrios

    9. cmp comparar dois arquivos

  • Cade

    rnos

    de In

    form

    tica

    41

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    ls

    ls a abreviatura de list. Sua funo listar diretrios.

    As principais opes do programa lslslslsls so:

    -d-d-d-d-d lista as informaes do diretrio e no do seu contedo

    -l-l-l-l-l lista alm do nome, diversas informaes sobre os arquivos

    -t-t-t-t-t ordena a lista de arquivos pela data de ltima alterao

    -S-S-S-S-S ordena a lista de arquivos por tamanho (decrescente)

    -a-a-a-a-a lista os arquivos ocultos

    Veja como fica a mesma listagem do diretrio raiz (/////) com as diversas opes:

    mimbar:/:2> ls

    bin cdrom etc initrd lib media opt root srv tmp var boot dev home initrd.img lost+found mnt proc sbin sys usr vmlinuz mimbar:/:6> ls -a . boot etc initrd.img media proc srv usr .. cdrom home lib mnt root sys var bin dev initrd lost+found opt sbin tmp vmlinuz

    Por conveno, os arquivos que comeam por ponto (.....) no so usualmente listados.

    Muitos dos arquivos de configurao comeam por (.....)..... Veja em Introduo ao Shell.

    mimbar:/:3> ls -l

    total 60 drwxr-xr-x 2 root root 2048 Aug 15 18:30 bin drwxr-xr-x 3 root root 1024 Aug 22 14:23 boot lrwxrwxrwx 1 root root 11 Aug 5 15:56 cdrom -> media/cdrom drwxr-xr-x 11 root root 24576 Aug 28 12:44 dev drwxr-xr-x 79 root root 4096 Aug 29 23:23 etc drwxrwsr-x 6 root staff 128 Aug 10 13:04 home drwxr-xr-x 2 root root 1024 Aug 5 15:57 initrd lrwxrwxrwx 1 root root 28 Aug 5 15:59 initrd.img -> boot/initrd.img-2.4.27-2-386 drwxr-xr-x 8 root root 4096 Aug 22 14:21 lib drwxr-xr-x 2 root root 12288 Aug 5 15:56 lost+found drwxr-xr-x 3 root root 1024 Aug 5 15:56 media drwxr-xr-x 15 root root 1024 Aug 5 21:32 mnt drwxr-xr-x 2 root root 1024 Aug 5 15:57 opt dr-xr-xr-x 121 root root 0 Aug 28 12:42 proc drwxr-xr-x 6 root root 1024 Aug 23 11:48 root drwxr-xr-x 2 root root 3072 Aug 22 14:21 sbin drwxr-xr-x 2 root root 1024 Aug 5 15:57 srv drwxr-xr-x 9 root root 0 Aug 28 12:42 sys drwxrwxrwt 9 root root 1024 Sep 2 17:48 tmp drwxr-xr-x 13 root root 1024 Aug 5 20:50 usr drwxr-xr-x 15 root root 1024 Aug 8 16:12 var lrwxrwxrwx 1 root root 25 Aug 5 15:59 vmlinuz -> boot/vmlinuz-2.4.27-2-386

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    42

    Cade

    rnos

    de In

    form

    tica

    Na listagem longa os campos so os seguintes:

    1. tipo do arquivo (l)

    2. permisses do dono (rwx)

    3. permisses do grupo (rwx)

    4. permisses dos outros (rwx)

    5. nmero de links

    6. dono do arquivo

    7. grupo do arquivo

    8. tamanho em bytes do arquivo

    9. data da ltima alterao

    10. nome do arquivo

    11. nome do destino (em caso de symlink)

    O dono e as permisses podem ser alterados atravs dos comandos chown & chmod.

    Maiores detalhes no item Sistema de Arquivos.

    mimbar:/:5> ls -Sl

    total 60 drwxr-xr-x 11 root root 24576 Aug 28 12:44 dev drwxr-xr-x 2 root root 12288 Aug 5 15:56 lost+found drwxr-xr-x 79 root root 4096 Aug 29 23:23 etc drwxr-xr-x 8 root root 4096 Aug 22 14:21 lib drwxr-xr-x 2 root root 3072 Aug 22 14:21 sbin drwxr-xr-x 2 root root 2048 Aug 15 18:30 bin drwxr-xr-x 3 root root 1024 Aug 22 14:23 boot drwxr-xr-x 2 root root 1024 Aug 5 15:57 initrd drwxr-xr-x 3 root root 1024 Aug 5 15:56 media drwxr-xr-x 15 root root 1024 Aug 5 21:32 mnt drwxr-xr-x 2 root root 1024 Aug 5 15:57 opt drwxr-xr-x 6 root root 1024 Aug 23 11:48 root drwxr-xr-x 2 root root 1024 Aug 5 15:57 srv drwxrwxrwt 9 root root 1024 Sep 2 17:48 tmp drwxr-xr-x 13 root root 1024 Aug 5 20:50 usr drwxr-xr-x 15 root root 1024 Aug 8 16:12 var drwxrwsr-x 6 root staff 128 Aug 10 13:04 home lrwxrwxrwx 1 root root 28 Aug 5 15:59 initrd.img -> boot/initrd.img-2.4.27-2-386 lrwxrwxrwx 1 root root 25 Aug 5 15:59 vmlinuz -> boot/vmlinuz-2.4.27-2-386 lrwxrwxrwx 1 root root 11 Aug 5 15:56 cdrom -> media/cdrom dr-xr-xr-x 120 root root 0 Aug 28 12:42 proc drwxr-xr-x 9 root root 0 Aug 28 12:42 sys

    mimbar:/:7> ls -lt total 60 drwxrwxrwt 9 root root 1024 Sep 2 17:48 tmp drwxr-xr-x 79 root root 4096 Aug 29 23:23 etc drwxr-xr-x 11 root root 24576 Aug 28 12:44 dev drwxr-xr-x 9 root root 0 Aug 28 12:42 sys

  • Cade

    rnos

    de In

    form

    tica

    43

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    dr-xr-xr-x 120 root root 0 Aug 28 12:42 proc

    drwxr-xr-x 6 root root 1024 Aug 23 11:48 root drwxr-xr-x 3 root root 1024 Aug 22 14:23 boot drwxr-xr-x 8 root root 4096 Aug 22 14:21 lib drwxr-xr-x 2 root root 3072 Aug 22 14:21 sbin drwxr-xr-x 2 root root 2048 Aug 15 18:30 bin drwxrwsr-x 6 root staff 128 Aug 10 13:04 home drwxr-xr-x 15 root root 1024 Aug 8 16:12 var drwxr-xr-x 15 root root 1024 Aug 5 21:32 mnt drwxr-xr-x 13 root root 1024 Aug 5 20:50 usr lrwxrwxrwx 1 root root 28 Aug 5 15:59 initrd.img -> boot/initrd.img-2.4.27-2-386 lrwxrwxrwx 1 root root 25 Aug 5 15:59 vmlinuz -> boot/vmlinuz-2.4.27-2-386 drwxr-xr-x 2 root root 1024 Aug 5 15:57 initrd drwxr-xr-x 2 root root 1024 Aug 5 15:57 opt drwxr-xr-x 2 root root 1024 Aug 5 15:57 srv lrwxrwxrwx 1 root root 11 Aug 5 15:56 cdrom -> media/cdrom drwxr-xr-x 3 root root 1024 Aug 5 15:56 media drwxr-xr-x 2 root root 12288 Aug 5 15:56 lost+found mimbar:/:4> ls -ld drwxr-xr-x 21 root root 1024 Aug 5 15:59 .

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    44

    Cade

    rnos

    de In

    form

    tica

    find

    find quer dizer ache/procure. Este utilitrio procura um ou mais arquivos ou diretriosdentro do sistema de arquivos. Ele flexvel para pesquisar por diversos atributos. A

    chamada tem esta forma:

    mimbar:/usr/share/linux.see:23> find /usr -name rascunho.txt

    /usr/share/linux.see/rascunho.txt

    As principais opes so:

    name padroname padroname padroname padroname padro procura por padro

    size tamanhosize tamanhosize tamanhosize tamanhosize tamanho procura por arquivos de um determinado tamanho

    xdevxdevxdevxdevxdev no muda de sistema de arquivos

    followfollowfollowfollowfollow segue os links simblicos (symlinks)

    typetypetypetypetype tipo de arquivo (arquivo, diretrio, symlinks, dispositivos)

    maxdepth nmaxdepth nmaxdepth nmaxdepth nmaxdepth n permite limitar a profundidade da pesquisa

    Como j vimos, o espao em disco um recurso escasso. O administrador (root) podequerer saber todos os arquivos que ocupam mais de 10 MB (milhes de caracteres) nos

    diretrios dos usurios. Ele pode usar um comando como este:

    mimbar:/usr/share/linux.see:3> find /home -size +10240k

    /home/archive/tar/jre-1_5_0_04-linux-i586.bin /home/archive/linux-2.6.12.3.tar.gz

    Ou pode querer encontrar todas as cpias do firefox que esto em disco:

    mimbar:/usr/share/linux.see:5> find / -type f -name firefox

    /usr/lib/mozilla-firefox/firefox

    No caso, s encontrou uma cpia.

    Ou listar o primeiro nvel de diretrios abaixo dos diretrios /usr e /var:

    mimbar:/:108> find /usr /var -maxdepth 1 -type d

    /usr /usr/lost+found /usr/share /usr/bin /usr/doc /usr/games /usr/include /usr/lib /usr/sbin /usr/src /usr/local /usr/X11R6 /var /var/lost+found /var/lib /var/cache /var/backups

  • Cade

    rnos

    de In

    form

    tica

    45

    CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    /var/local /var/lock /var/log /var/run /var/spool /var/tmp /var/opt /var/mail /var/www mimbar:/:109>

    updatedb/locate

    Em sistemas de arquivos muito grandes, o tempo de execuo do find pode ser considervel(vrios minutos). Muitas instalaes executam, durante a madrugada, um script chamadoupdatedb que percorre todo o sistema de arquivos e coleta o nome de cada arquivo (semdistino de tipo). Durante o dia, os usurios podem utilizar o comando locate para encon-trar os arquivos por padro. As informaes retornadas pelo locate podem estar desatualizadas,no contm os arquivos criados desde a execuo do updatedb e ainda contm os arquivosque j foram removidos. Porm, a resposta dele quase instantnea.

    Usando o locate:

    mimbar:/usr/share/linux.see:10> time locate */firefox

    /usr/bin/firefox /usr/lib/mozilla-firefox/firefox

    O locate reportou um arquivo a mais que o find (/usr/bin/firefox que um symlink)porque ele no consegue distinguir os tipos de arquivos.A ttulo de exemplo, o comando find acima demorou mais de 9 minutos, enquanto olocate gastou 0.2 segundos.

    Exerccio

    Quantos arquivos e diretrios existem na sua mquina? Utilize o comando wc (visto emIntroduo ao Shell) para a contagem.

  • CURSO DE INTRODUO AO SISTEMA OPERACIONAL LINUXSecretaria de Estado de Educao MG

    46

    Cade

    rnos

    de In

    form

    tica

    ln

    No Unix em geral, e no Linux em particular, o contedo de um arquivo esta, num certo sentido,dissociado do seu nome. Como vimos no item Sistema de Arquivos, os diretrios armazenam o nomedo arquivo e um apontador para o seu contedo. Ento poderamos ter dois (ou mais) nomescompartilhando o mesmo apontador e, portanto, o mesmo contedo. O ln realiza esta funo.

    ln vem de link, que quer dizer conectar. Na nossa rea, pensamos mais em apontar. Onome de um arquivo aponta para seu contedo.

    Um arquivo pode ter um ou mais link. O programa ls exibe esta informao. Os diretriostambm possuem links. Na realidade, possuem pelo menos dois:

    um vem do diretrio pai (..........) (que o antecede na hierarquia de diretrios)

    o outro vem dele mesmo (.....) (cada diretrio aponta para si mesmo)

    Quando de linka um arquivo, o nmero de links incrementado. Quando se remove um link(arquivo) [veja cp & mv & rm] o nmero decrementado. Apenas quando o nmero de linkschega a zero o contedo do arquivo removido e a rea em disco ocupada por ele liberada.

    S se podem criar links (hardlinks) para arquivos. Uma vez criado o link, o nome novoe o nome velho