Gerencia de Redes

206
Odilson Tadeu Valle Julho de 2008 Linux Básico, Gerência, Segurança e Monitoramento de Redes

description

Gerencia de Redes

Transcript of Gerencia de Redes

  • Odilson Tadeu Valle Julho de 2008

    LinuxBsico,

    Gerncia,Segurana e

    Monitoramento de Redes

  • CEFETSC - Unidade So Jos 2rea de TelecomunicaesOdilson Tadeu Valle

    PrefcioEsta apostila pretende atender as demandas curriculares de algumas disciplinas dos cursos na rea de telecomunicaes da Unidade So Jos do Centro Federal de Educao Tecnolgica de Santa Catarina.Nela so abordados dezenas de tpicos desde a parte introdutria at a parte mais avanada na administrao de servios de rede usando o Linux. A relao de tpicos abordados extensa, mas no pretendemos nos aprofundar muito em cada um deles, para isto existem literaturas especficas, muitas vezes abordando um nico tpico.Gostaramos de salientar tambm que toda a parte de instalao e configurao est escrita em cima dos procedimentos necessrios para a distribuio Mandriva 2008, portanto, dependendo da distribuio adotada, podem ser necessrios ajustes.Alguns tpicos foram escritos de prprio punho e em outros os textos foram coletados da Internet e adaptados, procuramos ser fiis nas referncias, mas peo desculpas antecipadas caso tenha omitido alguma.

    isto!Odilson Tadeu Valle

    Julho de 2008

  • CEFETSC - Unidade So Jos 3rea de TelecomunicaesOdilson Tadeu Valle

    SumrioLinux Bsico

    1 Sistema Operacional.........................................................................................11 2 Linux..................................................................................................................12

    2.1 Histrico.....................................................................................................12 2.2 Uma viso geral do LINUX..........................................................................14 2.3 A estrutura do LINUX..................................................................................15

    2.3.1 Kernel/Shell..........................................................................................15 2.3.2 Utilitrios.............................................................................................16

    3 Processos..........................................................................................................16 4 Comandos bsicos.............................................................................................17

    4.1 Introduo..................................................................................................17 4.2 Ciclo de Execuo do Comando..................................................................17 4.3 Login...........................................................................................................18 4.4 Logout........................................................................................................19 4.5 Reboot........................................................................................................19 4.6 Halt.............................................................................................................19 4.7 Man.............................................................................................................20

    5 Estrutura de Arquivos e Diretrios....................................................................20 5.1 Diretrios....................................................................................................21

    5.1.1 Diretrio de Entrada............................................................................21 5.1.2 Diretrios Corrente..............................................................................22

    5.2 Substituio do Nome do Arquivo..............................................................23 5.2.1 Asterisco..............................................................................................23 5.2.2 Ponto de interrogao.........................................................................23 5.2.3 Colchetes.............................................................................................23

    5.3 Marcao do Caractere Especial.................................................................24 5.3.1 Aspas...................................................................................................24 5.3.2 Apstrofe.............................................................................................24 5.3.3 Barra invertida.....................................................................................24

    6 Manipulando Arquivos e Diretrios....................................................................24 6.1 Introduo..................................................................................................24 6.2 Identificando o Diretrio Corrente..............................................................25 6.3 Criando diretrios.......................................................................................25 6.4 Listando diretrios......................................................................................26 6.5 Mudando de diretrio.................................................................................26 6.6 Criando arquivos vazios..............................................................................27 6.7 Inserindo texto em arquivos.......................................................................27 6.8 Contedo de um arquivo............................................................................27 6.9 Copiando arquivos......................................................................................27 6.10 Movendo/Renomeando arquivos..............................................................28 6.11 Como ligar arquivos..................................................................................28

    6.11.1 Notas:................................................................................................29 6.12 Como remover arquivos...........................................................................29

  • CEFETSC - Unidade So Jos 4rea de TelecomunicaesOdilson Tadeu Valle

    6.13 Localizando arquivos................................................................................30 6.13.1 Notas:................................................................................................31

    6.14 Procurando nos arquivos..........................................................................31 6.15 More/less..................................................................................................32 6.16 Head e Tail...............................................................................................32

    6.16.1 Opes...............................................................................................32 6.17 Gzip e Gunzip...........................................................................................32 6.18 Tar............................................................................................................32

    6.18.1 Usando o TAR....................................................................................33 7 Permisso de Acesso Diretrios e Arquivos....................................................34

    7.1 Permisses de acesso:................................................................................34 7.2 Verificando as permisses de acesso.........................................................35 7.3 Alterando a permisso de acesso...............................................................36

    7.3.1 Formato octal do modo de permisses................................................36 7.3.2 Formato simblico do modo de permisses.........................................36

    7.4 Mudando as permisses padro.................................................................37 7.5 "group-id" de um arquivo...........................................................................38 7.6 "owner" de um arquivo...............................................................................39

    8 Redirecionamentos...........................................................................................39 8.1 Entrada e Sada dos comandos..................................................................39 8.2 Entrada e Sada Padro..............................................................................39 8.3 Redirecionamento de E/S...........................................................................40

    8.3.1 Smbolos de redirecionamento............................................................40 8.3.2 Redirecionamento de entrada.............................................................41 8.3.3 Redirecionamento de sada.................................................................41 8.3.4 Pipes....................................................................................................41 8.3.5 Redirecionamentos mltiplos..............................................................42 8.3.6 Redirecionamento de erro padro.......................................................43

    9 Editor vi.............................................................................................................44 9.1 Os trs modos de operao do VI...............................................................44 9.2 O Buffer de edio......................................................................................44 9.3 Criao e edio de arquivos.....................................................................45

    10 KDE..................................................................................................................46 10.1 Alguns aplicativos do KDE........................................................................47

    Gerncia de Redes 11 Gerncia de Redes..........................................................................................50 12 Inittab..............................................................................................................51 13 Instalao de aplicativos com RPM.................................................................52

    13.1 Base de Dados RPM..................................................................................52 13.2 Rtulo dos Pacotes...................................................................................52 13.3 Vantagens e desvantagens do formato....................................................53 13.4 Acessrios relacionados...........................................................................53 13.5 Instalao/desinstalao de aplicativos com URPMI.................................53 13.6 Mdias do URPMI.......................................................................................54

    14 Sistema de arquivos........................................................................................54 14.1 Particionando e formatando discos..........................................................56 14.2 Montando parties..................................................................................58

  • CEFETSC - Unidade So Jos 5rea de TelecomunicaesOdilson Tadeu Valle

    14.3 A estrutura de diretrios...........................................................................60 15 LVM- Logical Volume Manager .......................................................................61

    15.1 Introduo................................................................................................61 15.2 Implantando LVM......................................................................................63 15.3 Aumentando ou diminuindo o tamanho de parties LVM.......................64

    16 Gerncia de usurios e grupos........................................................................65 16.1 Introduo................................................................................................65 16.2 Criao de conta.......................................................................................65 16.3 Parmetros das Contas.............................................................................66 16.4 Alterando parmetros das contas.............................................................68 16.5 Removendo Contas..................................................................................68

    17 Permisso de Acesso Diretrios e Arquivos..................................................68 17.1 Permisses de acesso:..............................................................................69 17.2 Verificando as permisses de acesso.......................................................70 17.3 Alterando a permisso de acesso.............................................................70

    17.3.1 Formato octal do modo de permisses..............................................70 17.3.2 Formato simblico do modo de permisses......................................71

    17.4 Mudando as permisses padro...............................................................72 17.5 "group-id" de um arquivo.........................................................................73 17.6 "owner" de um arquivo.............................................................................73

    18 Cotas em disco para usurios e grupos..........................................................73 18.1 Introduo................................................................................................73 18.2 Implementao.........................................................................................74 18.3 Estabelecendo cotas para vrios usurios e/ou grupos............................76 18.4 Verificando cotas de usurios...................................................................76

    19 Agendamento de tarefas com Crontab...........................................................76 19.1 Introduo................................................................................................76 19.2 Uso do Crontab.........................................................................................77

    20 Servidor de backups Amanda..........................................................................78 20.1 Introduo................................................................................................78 20.2 Configurao do servidor Amanda...........................................................79

    20.2.1 amanda.conf......................................................................................79 20.2.2 disklist................................................................................................80

    20.3 Configurando o cliente.............................................................................81 20.4 Backups com o Amanda...........................................................................81 20.5 Restaurando os backups com o Amanda..................................................82 20.6 Comandos Extras do Amanda...................................................................82

    21 Programao do Shell.....................................................................................83 21.1 Introduo................................................................................................83 21.2 Scripts Shell..............................................................................................83 21.3 Variveis e Parmetros.............................................................................84

    21.3.1 Algumas variveis pr-definidas........................................................84 21.3.2 Substituio avanada de variveis..................................................84 21.3.3 Parmetros........................................................................................84

    21.4 Entrada-Sada Bsica................................................................................86 21.5 Testes.......................................................................................................86

    21.5.1 Um problema a resolver....................................................................86 21.5.2 Comandos de testes no shell.............................................................87

  • CEFETSC - Unidade So Jos 6rea de TelecomunicaesOdilson Tadeu Valle

    21.5.3 Incio do script scan...........................................................................88 21.5.4 Testes com [ ... ]................................................................................88 21.5.5 A construo case..............................................................................89

    21.6 Laos........................................................................................................90 21.6.1 O comando while...............................................................................90 21.6.2 O comando for...................................................................................90

    21.7 Funes....................................................................................................91 21.8 Sinais e Traps...........................................................................................92 21.9 Depurao................................................................................................93 21.10 Tcnicas Avanadas...............................................................................93

    21.10.1 eval..................................................................................................94 21.10.2 Voltando ao programa scan.............................................................94

    21.11 Um Exemplo Final...................................................................................96 21.11.1 Definio do Problema.....................................................................96 21.11.2 Informao adicional necessria......................................................97

    22 Configurao da interface de rede..................................................................99 22.1 Introduo................................................................................................99 22.2 Configurao............................................................................................99

    22.2.1 Configurao do ifcfg-ethN................................................................99 22.2.2 Configurao do network.................................................................100 22.2.3 Configurao do resolv.conf............................................................100 22.2.4 Finalizando.......................................................................................100

    22.3 Apelidos de ip.........................................................................................101 23 Roteadores e sub-redes................................................................................101

    23.1 Introduo..............................................................................................101 23.2 Entendendo Rotas..................................................................................102 23.3 Configurando o roteador........................................................................103 23.4 Configurando sub-redes.........................................................................103 23.5 Caso de estudo.......................................................................................104

    23.5.1 Roteadores .......................................104 23.5.2 Configurao do Cliente...................................................................105 23.5.3 Testes..............................................................................................105

    24 NAT - Network Address Translator................................................................106 25 Servidor DNS - Domain Name System com Bind...........................................106

    25.1 Introduo..............................................................................................106 25.2 Configurao de um servidor DNS..........................................................107

    25.2.1 Caso de estudo................................................................................108 25.2.2 Testes..............................................................................................109

    26 Servidor de pginas Apache..........................................................................109 26.1 Introduo..............................................................................................109 26.2 Instalao e configurao.......................................................................110 26.3 Domnios virtuais....................................................................................110 26.4 Pginas de Usurios...............................................................................111

    27 Servidor de correio eletrnico Postfix...........................................................112 27.1 Introduo..............................................................................................112 27.2 Funcionamento do Correio Eletrnico.....................................................113 27.3 Instalao e configurao.......................................................................114 27.4 Testes.....................................................................................................114

  • CEFETSC - Unidade So Jos 7rea de TelecomunicaesOdilson Tadeu Valle

    28 Servidor SMB, Server Message Block, Samba...............................................115 28.1 Introduo..............................................................................................115 28.2 Instalao e configurao.......................................................................116 28.3 Testes.....................................................................................................117

    29 Servidor LDAP Lightweight Directory Access Protocol com OpenLdap..........118 29.1 Introduo..............................................................................................118 29.2 Instalao e configurao bsica............................................................119 29.3 Para configurar um cliente Linux............................................................123 29.4 Testes.....................................................................................................126

    30 Servidor NFS Network File System................................................................126 30.1 Introduo..............................................................................................126 30.2 Instalao e configurao.......................................................................126 30.3 Testes.....................................................................................................127

    31 Servidor DHCP Dynamic Host Configuration Protocol...................................128 31.1 Introduo..............................................................................................128 31.2 O protocolo DHCP...................................................................................128 31.3 Instalao e configurao.......................................................................130 31.4 Testes.....................................................................................................131

    32 Servidor FTP File Transfer Protocol................................................................132 32.1 Introduo..............................................................................................132 32.2 Instalao e configurao.......................................................................132 32.3 Testes.....................................................................................................132

    33 Servidor SSH Secure Shell com OpenSSH.....................................................133 33.1 Introduo..............................................................................................133 33.2 Instalao e configurao.......................................................................133 33.3 Testes.....................................................................................................134

    Segurana e Monitoramento de Redes 34 Servidor cache/proxy Squid..........................................................................135

    34.1 Introduo..............................................................................................135 34.2 Instalao e configurao.......................................................................135

    34.2.1 Testes..............................................................................................136 34.3 Listas de controle de acesso..................................................................137

    34.3.1 Exemplos.........................................................................................138 35 Firewall com iptables.....................................................................................138

    35.1 Introduo..............................................................................................138 35.1.1 Caractersticas do firewall iptables..................................................140 35.1.2 Como funciona um firewall ?............................................................140

    35.2 Cadeias iptables.....................................................................................141 35.3 Tabela Filter............................................................................................142

    35.3.1 So trs, as possveis chains:..........................................................142 35.3.2 As principais opes so:.................................................................142 35.3.3 Chains..............................................................................................143 35.3.4 Dados...............................................................................................143 35.3.5 Aes...............................................................................................145 35.3.6 Exemplos comentados de regras de firewall (tabela filter).............145 35.3.7 Impasses..........................................................................................146 35.3.8 Extenses........................................................................................147

  • CEFETSC - Unidade So Jos 8rea de TelecomunicaesOdilson Tadeu Valle

    35.4 Tabela NAT - Network Address Translator..............................................147 35.4.1 Mascaramento.................................................................................147 35.4.2 Redirecionamento de portas............................................................148 35.4.3 Redirecionamento de servidores.....................................................149 35.4.4 Proxy transparente..........................................................................149 35.4.5 Balanceamento de carga.................................................................149 35.4.6 Diviso do NAT.................................................................................149 35.4.7 Regras de NAT.................................................................................149

    35.4.7.1 Chains.......................................................................................149 35.4.7.2 Opes......................................................................................150 35.4.7.3 Dados........................................................................................150 35.4.7.4 Aes........................................................................................150

    35.4.8 Exemplos comentados de regras de firewall (tabela nat)................151 35.5 Salvando e recuperando tudo................................................................152 35.6 Aumentando o nvel de segurana.........................................................152 35.7 Instalando e configurando......................................................................153

    36 Firewall com Shorewall..................................................................................153 36.1 Introduo..............................................................................................153 36.2 Zonas......................................................................................................154

    36.2.1 Arquitetura de zonas ......................................................................154 36.2.2 Zona "fw" ........................................................................................154

    36.3 Arquivos de configurao.......................................................................154 36.3.1 shorewall.conf .................................................................................154 36.3.2 zones ..............................................................................................155 36.3.3 interfaces ........................................................................................155 36.3.4 policy ..............................................................................................155 36.3.5 rules ................................................................................................156 36.3.6 masq ...............................................................................................156 36.3.7 Outros .............................................................................................157

    36.4 Alguns exemplos reais........................................................................157 36.4.1 Firewall standalone..........................................................................157 36.4.2 Firewall numa tpica rede de zonas e interfaces..............................158 36.4.3 Mltiplas zonas sobre uma interface...............................................159 36.4.4 Proxy transparente com Squid.........................................................161 36.4.5 Regras para P2P...............................................................................162 36.4.6 Regras para DNAT...........................................................................162

    36.5 Instalao e configurao.......................................................................162 37 Anti-vrus.......................................................................................................162

    37.1 Introduo..............................................................................................162 37.1.1 Mas ento, qual a funo do antivrus no Linux?..........................164

    37.2 Instalando e configurando o antivrus CLAMAV......................................164 37.3 Integrando o CLAMAV ao Postfix............................................................166 37.4 Integrando o CLAMAV ao Samba............................................................166 37.5 Escanear diretrios em busca de vrus...................................................166

    38 Redes Virtuais Privadas - VPN.......................................................................168 38.1 Introduo..............................................................................................168 38.2 Aplicaes para redes privadas virtuais.................................................168

    38.2.1 Acesso remoto via Internet .............................................................168

  • CEFETSC - Unidade So Jos 9rea de TelecomunicaesOdilson Tadeu Valle

    38.2.2 Conexo de LANs via Internet .........................................................169 38.2.3 Conexo de computadores numa intranet .....................................169

    38.3 Requisitos bsicos..................................................................................170 38.4 Tunelamento..........................................................................................171 38.5 Protocolos de tunelamento.....................................................................172

    38.5.1 Tunelamento em Nvel 2 - Enlace - (PPP sobre IP) ..........................172 38.5.2 Tunelamento em Nvel 3 - Rede - (IP sobre IP) ...............................172

    38.6 O funcionamento dos tneis...................................................................173 38.7 Protocolos Requisitos de tunelamento................................................173

    38.7.1 Autenticao de usurio..................................................................173 38.7.2 Suporte a token card.......................................................................173 38.7.3 Endereamento dinmico................................................................174 38.7.4 Compresso de dados.....................................................................174 38.7.5 Criptografia de dados......................................................................174 38.7.6 Gerenciamento de chaves...............................................................174 38.7.7 Suporte a mltiplos protocolos........................................................174

    38.8 Tipos de tneis.......................................................................................174 38.8.1 Tunelamento voluntrio ..................................................................175 38.8.2 Tunelamento compulsrio...............................................................175

    38.9 IPSEC Internet Protocol Security..........................................................176 38.9.1 Negociao do nvel de segurana..................................................176 38.9.2 Autenticao e integridade..............................................................177 38.9.3 Confidencialidade............................................................................177

    38.10 Algumas concluses.............................................................................178 38.11 Instalao e configurao.....................................................................178

    38.11.1 Configurao na Matriz..................................................................179 38.11.2 Configurao na filial.....................................................................180 38.11.3 Configuraes nos firewalls...........................................................182

    39 SNMP - Simple Network Management Protocol e MRTG - The Multi Router Traffic Grapher....................................................................................................183

    39.1 Introudo..............................................................................................183 39.1.1 Gerente da rede...............................................................................183 39.1.2 Componentes Bsicos do SNMP.......................................................184 39.1.3 Arquitetura.......................................................................................184

    39.1.3.1 Master Agent.............................................................................184 39.1.3.2 Subagent...................................................................................184 39.1.3.3 Management Station.................................................................185

    39.1.4 O SNMP e o ASN.1............................................................................185 39.1.5 Comandos do SNMP.........................................................................185 39.1.6 Nomes de objetos e MIB..................................................................186 39.1.7 SNMPv2 e SNMPv3...........................................................................186

    39.2 Instalao e Configurao......................................................................186 39.2.1 Instalando o SNMP...........................................................................186

    39.2.1.1 Testes.......................................................................................187 39.2.2 Instalando o MRTG...........................................................................188 39.2.3 Otimizando e Protegendo................................................................189

    39.3 Testes.....................................................................................................190 40 Nagios...........................................................................................................190

  • CEFETSC - Unidade So Jos 10rea de TelecomunicaesOdilson Tadeu Valle

    40.1 Introduo..............................................................................................190 40.2 Instalando e configurando o Nagios.......................................................191

    40.2.1 Monitorando outras mquinas.........................................................192 40.3 Testes.....................................................................................................195

    41 Cacti..............................................................................................................196 41.1 Introduo..............................................................................................196 41.2 Instalao e configurao.......................................................................196

    42 DenyHosts.....................................................................................................198 42.1 Introduo..............................................................................................198 42.2 Instalando o DenyHosts..........................................................................199 42.3 Testes.....................................................................................................201

    43 Webmin.........................................................................................................201 43.1 Introduo..............................................................................................201 43.2 Instalao e configurao.......................................................................202

    44 Referncias bibliogrficas.............................................................................203 44.1 Livros/apostilas.......................................................................................203 44.2 Pgina de Gerncia de Redes do CEFETSC - Unidade So Jos..............204 44.3 Sites de dicas Linux:...............................................................................204 44.4 Sites com dicas do Amanda....................................................................205 44.5 Sites com dicas do Postfix e listas de discusso.....................................205

  • CEFETSC - Unidade So Jos 11rea de TelecomunicaesOdilson Tadeu Valle

    Linux Bsico

    1 Sistema OperacionalO Sistema Operacional um programa especial que gerencia todos os recursos da mquina, tais como memria, teclado, vdeo (monitor), mouse, entre outros. atravs do Sistema Operacional que executamos outros programas, gravamos ou lemos informaes em disquetes, visualizamos textos em vdeo ou impressora, etc. Sem o Sistema Operacional no conseguiramos realizar estas tarefas. Ou seja, simplesmente no poderamos utilizar o computador.Existem inmeros Sistemas Operacionais, tais como: MS-DOS, UNIX, OS/2, VM/CMS, QNN, etc. Cada um deles possuem caractersticas prprias e so executados em mquinas diferentes. Assim, no podemos executar um programa em Sistemas Operacionais distintos, a no ser que o fabricante do programa nos garanta esta portabilidade. de responsabilidade do Sistema Operacional:

    Carregar e executar programas. Controlar dispositivos de entrada e sada (teclado, monitor, mouse,

    etc). Gerenciar arquivos e diretrios. Gerenciar a memria RAM

    Todo e qualquer programa executado em um computador utiliza a memria RAM. Da mesma forma, o Sistema Operacional deve ser carregado, ou seja, copiado do disco rgido ou disco flexvel para a memria RAM. Denominamos este processo de BOOT. Toda vez que ligamos o computador, feita uma srie de testes para verificar o funcionamento dos perifricos e se tudo estiver perfeito, o Sistema Operacional pode ser carregado.Os Sistemas Operacionais ainda podem ser classificados quanto ao nmero de pessoas que podem utilizar os recursos ao mesmo tempo e quanto ao nmero de programas que podem ser executados em uma mesma mquina.

    1. Monousurio: permitem apenas um usurio.2. Multiusurio: permitem vrios usurios.3. Monotarefa: apenas um programa pode ser executado de cada vez.4. Multitarefa: vrios programas podem ser executados ao mesmo

    tempo.Em geral Sistemas Operacionais que so multiusurios so tambm multitarefa, como o UNIX, QNN e atuais verses do Windows, onde

  • CEFETSC - Unidade So Jos 12rea de TelecomunicaesOdilson Tadeu Valle

    podemos ter vrios usurios em terminais distintos executando, cada um, uma srie de programas diferentes ao mesmo tempo.Alm disto, Sistemas Operacionais podem ser classificados quanto ao tipo de comunicao com o usurio, podendo ser:

    1. Interface por linha de comando: quando o usurio tem que digitar o comando por extenso na tela do computador. A comunicao, em geral feita em modo texto. Preferencialmente utilizada por especialistas.

    2. Interface grfica para usurios (GUI) : quando os comandos so executados em um ambiente grfico com o uso do mouse. Voltada principalmente para o usurio final.

    2 Linux

    2.1 HistricoO Sistema Operacional UNIX foi desenvolvido nos laboratrios da AT&T para uso prprio, baseado em um antigo projeto que deveria ser o primeiro Sistema Operacional multiusurio e multitarefa, o MULTICS.Porm, este projeto estava muito alm da capacidade dos equipamentos para a poca. Desta forma o projeto foi arquivado, mas alguns de seus idealizadores (Ken Thompson, Dennis Ritchie e Rudd Canadaday) resolveram escrever uma verso simplificada e monousurio para um computador com menores recursos. O resultado impressionou, mesmo sendo utilizada uma mquina limitada.Assim, o cdigo foi reescrito para outros computadores melhores, apresentando excelentes resultados. Por coincidncia ou no, estes computadores para os quais o Sistema Operacional foi reescrito eram utilizados por quase todas as Universidades que se interessaram por este Sistema Operacional muito superior aos que vinham sendo utilizados nos laboratrios de computao.A partir de ento, a AT&T licenciou seu mais novo projeto para as Universidades, mostrando uma enorme viso e capacidade inovadora, pois alm do Sistema Operacional, foi cedido o cdigo do mesmo para as Universidades, que no mediram esforos em depurar o programa e incluir novas caractersticas.Foi dentro das Universidades que o UNIX cresceu e adquiriu muitas das caractersticas que o tornam poderoso, dando origem a diversas verses alm da original proveniente dos laboratrios da AT&T. Esta caracterstica tornou o UNIX um sistema poderoso na medida em que foi concebido no apenas por uma equipe de projetistas, mas sim por toda uma comunidade de pessoas interessadas em extrair o melhor das mquinas. A princpio, o cdigo do UNIX foi escrito em linguagem assembler ou de mquina que altamente dependente do hardware ou parte fsica do computador. Para que o cdigo fosse reescrito, era necessrio muito esforo e tempo.

  • CEFETSC - Unidade So Jos 13rea de TelecomunicaesOdilson Tadeu Valle

    Entretanto, um dos criadores do Sistema Operacional UNIX resolveu utilizar uma nova linguagem para escrever o UNIX, era a linguagem C que oferecia o poder da linguagem de mquina com a facilidade das linguagens estruturadas de alto nvel.A grande vantagem de se utilizar a linguagem C ao invs da linguagem de mquina prpria do computador a de que a primeira altamente portvel, isto , um programa escrito em C para um determinado computador poder ser executado quase sem nenhuma modificao em outro tipo de mquina completamente diferente. Enquanto que se fosse feito um programa em linguagem de mquina para um determinado computador o programa seria executado somente neste tipo de computador e no nos demais, para isto, seria preciso reescrever todo o programa.O UNIX foi projetado para ser executado em computadores de grande capacidade, ou seja, mini e supercomputadores, pois somente estas mquinas podiam oferecer suporte aos recursos necessrios para o ambiente gerado pelo Sistema Operacional.Crescendo longe do alcance dos usurios de microcomputadores, o UNIX atingiu uma estabilidade e estrutura jamais alcanada por um Sistema Operacional. Mas nestes quase quarenta anos de existncia do UNIX, os microcomputadores evoluram a ponto de fornecer o mnimo de condies para que este poderoso Sistema Operacional pudesse ser implementado para os micros IBM -PC e compatveis.Diversas verses do UNIX foram escritas e licenciadas para venda com nomes semelhantes (XENIX, UNISYS, AIX, etc) porm com as mesmas caractersticas essenciais, sendo que atualmente existem inmeras verses comerciais e outras tantas verses livres que foram desenvolvidas em Universidades ou por hackers atravs da rede Internet.Apesar de ter sido desenvolvido para lidar com dispositivos de caracteres, UNIX foi pioneiro na rea de grficos em estaes de trabalhos. As primeiras interfaces grficas para usurios (GUI) foram projetadas e utilizadas em Sistemas operacionais UNIX, desenvolvidas pelo MIT (Massachussets Institute of Technology). Trata-se do X Window System.Como se pode notar, UNIX um sistema de inmeras possibilidades. Praticamente todos os recursos que os sistemas operacionais mais atuais utilizam j haviam sido executados em UNIX h muito. Todas as reas da computao puderam ser desenvolvidas com o UNIX.As tendncias atuais levam a uma tentativa de padronizar o Sistema Operacional UNIX combinando as melhores caractersticas das diversas verses do mesmo. Prova disto a criao do POSIX, um padro de Sistema Operacional desenvolvido pela IEEE (Institute of Eletrical and Eletronic Engineers). Alm da OSF (Open System Fundation) que rene as principais lderes do mercado de equipamentos para definir o padro de GUI (interfaces grficas) para UNIX.A verso que ser abordada durante este curso o LINUX, um clone do

  • CEFETSC - Unidade So Jos 14rea de TelecomunicaesOdilson Tadeu Valle

    Sistema Operacional UNIX para microcomputadores IBM -PC 386 e compatveis. O LINUX foi desenvolvido inicialmente por Linus Torvalds na Universidade de Helsinski na Finlndia.O LINUX possui a vantagem de ser um software livre e ser compatvel com o padro POSIX. Alm de unir em um nico Sistema Operacional as vantagens das diferentes verses de UNIX comerciais disponveis. Desta forma, LINUX torna -se a melhor opo para que usurios de microcomputadores possam usufruir da capacidade do UNIX.Apesar de no poder rodar aplicativos para MS- DOS, o LINUX pode rodar todos os softwares de desenvolvidos para UNIX, alm de estarem disponveis softwares que permitem a emulao do MS-DOS e do WINDOWS.O LINUX pode ser til em empresas que desejam possuir estaes de trabalho com poder razoavelmente comparvel s estaes existentes como SUNs e outras usando PCs, com fiel semelhana no seu uso.O LINUX pode conviver pacificamente com outros sistemas operacionais no PC. Existe uma infinidade de formas de instal-lo: em uma partio DOS j existente, pode ainda ser instalado em um HD exclusivamente dedicado a ele.Para conviver com outros sistemas operacionais, existem algumas maneiras de carregar o sistema operacional, o Lilo (Linux Loader) que pode funcionar como um BOOT manager no qual se escolhe qual partio ou drive ir dar a partida, o loadlin que um utilitrio DOS para carregar o LINUX a partir do DOS, ou por meio de um disco de boot.O LINUX pode ser obtido de diversas formas diferentes, existem diversos livros venda, os quais incluem CDs com distribuies do LINUX. Outra forma de obt-lo inteiramente grtis e via ftp pela INTERNET.Existe hoje, um movimento no sentido de tornar o LINUX um sistema popular, dado que superioridade tcnica ele j possui.Existem algumas outras verses de UNIX para PCs, tais como Xenix, SCO Unix, FreeBSD e NetBSD, as ltimas duas tambm livres, no entanto alm de mais popular, o LINUX possui uma srie de caractersticas a mais, no encontradas em outras verses, mesmo comerciais, de UNIX.

    2.2 Uma viso geral do LINUXUm Sistema Operacional deve gerenciar os recursos da mquina da melhor maneira possvel de forma a poder oferecer aos usurios o mximo do computador. Dentre as principais funes do sistema Operacional, podemos destacar:

    Criar e manipular uma estrutura de arquivos e diretrios. Controlar o acesso memria e outros dispositivos controlados pelo

    microprocessador, como monitor, teclado, impressora, etc. Gerenciar a execuo de programas, trazendo-os da memria para o

  • CEFETSC - Unidade So Jos 15rea de TelecomunicaesOdilson Tadeu Valle

    microprocessador.A primeira vista, parece que o LINUX nada possui de diferente de qualquer outro Sistema Operacional, mas nenhum to bom em unir e integrar o que h de melhor em um computador de forma harmoniosa e eficiente devido a sua prpria origem em meio a toda uma comunidade de pessoas interessadas em obter o mximo e o melhor em desempenho. Cabe ressaltar tambm que o Linux possui todas as caractersticas que fazem do UNIX um excelente sistema operacional, entre elas : Portabilidade, Multiusurio e Multitarefa, Estrutura hierrquica de arquivos, Ferramentas e Utilitrios, Comunicao com outros sistemas.Daremos uma rpida olhada em algumas das principais caractersticas e vantagens que fazem o LINUX nico :Multitarefa. Linux, como as outras verses do UNIX um sistema multitarefa, possibilitando a execuo de mltiplas aplicaes de diferentes usurios no mesmo sistema ao mesmo tempo.O X Window System , de fato, um padro na indstria de sistemas grficos para mquinas UNIX. Uma verso completa do X Window System, conhecida como Xfree86 est disponvel para Linux.TCP/IP (Transmission Control Protocol / Internet Protocol), este um conjunto de protocolos que liga milhes de universidades e empresas numa rede mundial conhecida como Internet. Com uma conexo Ethernet o Linux permite que seja feita uma conexo da Internet a uma rede local.Memria Virtual. O Linux pode usar parte do seu HD como memria virtual, aumentando assim a capacidade da memria RAM.Compatibilidade com o IEEE POSIX. Linux foi desenvolvido com a portabilidade de software em mente.

    2.3 A estrutura do LINUX

    2.3.1 Kernel/ShellKernel o ncleo do Sistema Operacional LINUX, que permanece residente na memria. Atravs dele que o usurio possui o acesso aos recursos oferecidos pelo hardware (o computador em si). Todo o gerenciamento de memria, dispositivos, processos, entre outros coordenado pelo kernel. Basicamente est dividido em duas partes:

    Gerenciamento de dispositivos: supervisiona a transmisso de dados entre a memria principal e os dispositivos perifricos. Desta forma, o kernel abrange todos os drivers controladores de dispositivos que podem ser ligados a um computador

    Gerenciamento de processos: aloca recursos, escalona processos e atende a solicitao de servios dos processos

    Shell o interpretador de comandos do LINUX. ele quem fornece uma

  • CEFETSC - Unidade So Jos 16rea de TelecomunicaesOdilson Tadeu Valle

    interface para que o usurio possa dizer ao Sistema Operacional o que deve ser feito. O shell traduz o comando digitado em chamadas de sistema que so executadas em linguagem de mquina pelo kernel. Alm disto, fornece um ambiente programvel atravs de scripts.Existem inmeros shells cada um com ligeiras diferenas entre si. Muitas vezes possvel utilizar vrios shells diferentes em um mesmo micro rodando LINUX, isto porque ele multitarefa e multiusurio, de modo que cada usurio poderia utilizar o shell que lhe agradar mais. Entre os mais utilizados esto o Bourne Shell, o C shell e o Korn Shell.

    2.3.2 UtilitriosExistem centenas de utilitrios (comandos) para a realizao de tarefas especializadas ou rotineiras, entre elas manipulao e formatao de textos, clculos matemticos, gerenciamento e manuteno de arquivos e diretrios, administrao de sistemas, manuteno de segurana, controle da sada para impressora, desenvolvimento de programas e filtragem de dados.Cada um destes utilitrios digitado na linha de comando do LINUX que ser interpretado pelo Shell do sistema. Este por sua vez se encarregar de realizar diversas chamadas ao Kernel para a execuo do comando.Como as interfaces grficas so muito recentes, o LINUX teve toda a sua potencialidade explorada em termos de ambiente de desenvolvimentos. Isto equivale a dizer que o que se pode fazer com um software de Formatao de Textos do tipo aponte e clique, pode ser realizada atravs do antigo modo de linha de comando no LINUX.Mas isto no impede que as facilidades do ambiente de janelas seja explorado, pelo contrrio. Os mais profissionais programas aplicativos rodam sobre o Sistema Operacional LINUX, entre eles o Gerenciador de Banco de Dados ORACLE, INGRES e FoxBASE+, formatadores de textos Postscript etc.

    3 ProcessosQuando um programa ou utilitrio executado, passa a se chamar processo. Cada processo iniciado possui um estado indicando sua condio (em execuo, parado, interrompido, etc) e a prioridade. Sendo que os processos do sistema possuem prioridades sobre os do usurio.Com base nas informaes sobre os processos em andamento, a CPU precisa escalonar os processos para dedicar a cada um, um determinado tempo dando a impresso de que vrios processos esto sendo executados ao mesmo tempo.Para vermos uma fotografia dos processos rodando na mquina podemos usar o comando ps aux, ax mostra todos os processos e u informa a mais os usurios donos dos processos.

  • CEFETSC - Unidade So Jos 17rea de TelecomunicaesOdilson Tadeu Valle

    Podemos usar tambm o top. Neste caso haver atualizao peridica da tela, fazendo uma amostra on-line processos ativos. Mostra ainda outras informaes da mquina, como uso de memria, tempo de atividade, uso de cpu etc. Para navegar entre janelas usa-se as teclas .Para matarmos um processo em execuo usamos o comando kill seguido do nmero do processo (PID). A principal flag o -9, que mata o processo sem salvar dados da memria, se existirem. Podemos usar tambm o killall seguido do nome do processo (comando). Neste caso mata-se todos os processos com mesmo nome.

    4 Comandos bsicos

    4.1 IntroduoCertos comandos so interativos e outros n o - interativos . Comandos interativos so aqueles que aps serem executados, exigem que algumas perguntas sejam respondidas para que possam prosseguir. Comandos no interativos simplesmente executam os comandos sem nada perguntar e retornam linha de comando do LINUX.Exemplos de comandos no interativos:

    ls exibe lista do contedo do diretrio corrente

    date exibe a data e hora do sistema

    cal exibe calendrio do ano especificado

    who exibe lista de todos os usurios ativos no sistema

    clear limpa a tela

    Exemplos de comandos interativos:passwdmodifica a senha

    ftp permite transferncia de arquivos

    4.2 Ciclo de Execuo do ComandoO shell analisa a linha do comando separando seus vrios componentes com o uso de espaos em branco. Este procedimento conhecido como parsing (anlise), e composto dos seguintes passos:

    1. O shell examina se h algum caractere especial a ser interpretado na linha de comando;

    2. Supondo que os caracteres at o primeiro branco se referem a um comando, o shell procura um arquivo executvel (programa) com o mesmo nome;

  • CEFETSC - Unidade So Jos 18rea de TelecomunicaesOdilson Tadeu Valle

    3. Se o shell localiza o programa, ele verifica se o usurio que fez o pedido tem permisso de acesso para usar o comando;

    4. O shell continua a examinar o resto da linha de comando para ver a formatao;

    5. Finalmente, ela informa ao kernel para executar o programa, passando todas as opes e argumentos vlidos para o programa;

    6. Enquanto o kernel copia o arquivo executvel do disco para a memria e executa-o, o shell permanece inativo at que o programa tenha encerrado. O programa em execuo na memria chamado de processo;

    7. Quando o processo termina de ser executado, o controle retorna ao shell que exibe novamente o prompt para avisar que est pronto para o prximo comando;

    4.3 LoginPor ser um Sistema Operacional que suporta vrios usurios (multiusurio), antes de tudo, preciso se identificar. O LINUX ento se encarregar de permitir ou no seu acesso verificando sua senha, se estiver correta libera o diretrio de entrada e executa arquivos de inicializao locais e o interpretador apropriado. Aps este processo, voc estar apto a executar os comandos do LINUX.Quando o terminal estiver ligado, provavelmente ser apresentado um sinal de prontido do sistema da seguinte forma:Login:

    Isto significa que o sistema est esperando para que o usurio se identifique com o nome de usurio que lhe foi concedido pelo Administrador de Sistema junto com uma senha de acesso. Aps digitar o nome de usurio, pressione ENTER. Ser apresentada um novo sinal de prontido:Password:

    Este sinal pede que seja digitada a sua senha. Note que a medida que forem digitados os caracteres, eles no aparecero no vdeo por medidas de segurana.Se algo deu errado (foi novamente apresentado o sinal de login), tente novamente, certificando-se de ter digitado o nome de usurio e a senha exatamente como recebeu do Administrador pois o LINUX diferencia as letras maisculas das minsculas. Isto quer dizer que para o LINUX A (letra a maiscula) diferente de a (letra a minscula). Esta uma dica que serve no apenas para iniciar a sesso, mas tambm para todos os comandos LINUX.Tendo o usurio se identificado com o nome da conta e a senha (se esta existir, pois existem contas criadas especialmente para uso sem senha), o

  • CEFETSC - Unidade So Jos 19rea de TelecomunicaesOdilson Tadeu Valle

    LINUX checa em um arquivo de configurao pelo nome da conta e a senha correspondente devidamente encriptada. Estando ambas registradas e corretas, o Sistema Operacional permite o acesso ao usurio executando o shell indicado tambm neste arquivo.O shell providencia uma interface de comunicao entre o kernel e o usurio. Esta interface consiste de uma linha de comand o (ou prompt) na qual deve ser digitado o comando por extenso seguido por seus parmetros (se tiver). Em uma linha de comando podemos ter mais de um comando em seqncia para serem executados.Em geral esta linha de comando formada por um smbolo que pode ser de porcentagem (%) ou cifro ($) para usurios comuns e grade (#) para usurios com privilgio de raiz, dependendo do tipo de shell usado.Os parmetros que aparecem aps o nome do comando podem ser nomes de arquivos e/ou caminhos de diretrios. Eles devem sempre ser digitados com um espao entre si e depois do comando. Muitas vezes alguns smbolos que aparecem na linha de comando no so parmetros, mas sim comandos para o shell determinando a seqncia em que o(s) comando(s) devem ser executados.O LINUX aceita e executa um comando quando, ao terminarmos de digitarmos o comando, pressionarmos a tecla ENTER, RETURN ou (varia de computador para computador).Caso seja encontrado algum erro na digitao do comando antes que a tecla ENTER seja pressionada, podemos corrig-lo utilizando as teclas de direo e para posicionarmos o cursor na posio em que o erro foi cometido. Cursor o smbolo grfico que aparece logo aps a linha de comando e que se movimenta a medida em que caractere so digitados e aparecem na tela.

    4.4 LogoutEste comando permite sairmos de nossa seo shell, ou seja, desconectarmos nosso usurio do sistema.

    4.5 RebootEste comando equivalente init 6 e com ele podemos reiniciar nosso sistema, sem desligamento do hardware.

    4.6 HaltEste comando equivalente shutdown -r now e permite desligar o sistema, caso nossa mquina tenha fonte ATX.

  • CEFETSC - Unidade So Jos 20rea de TelecomunicaesOdilson Tadeu Valle

    4.7 ManPginas de manual ou man pages so pequenos arquivos de ajuda que podem ser invocados pelo comando man a partir de linha de comando de sistemas baseados em Unix e Linux.A forma de invocar a ajuda :$ man []

    5 Estrutura de Arquivos e DiretriosExistem 4 tipos bsicos de arquivos em LINUX :

    Arquivo diretrio; Arquivo convencional; Arquivo de dispositivo; Arquivo simblico ou de ligao;

    Um arquivo diretrio nada mais do que um tipo de arquivo contendo informaes sobre arquivos que conceitualmente (e no fisicamente) esto contidos nele. Isso significa que o contedo de seus arquivos no est armazenados dentro do diretrio. Assim sendo, no h limite para o tamanho de um diretrio. Teoricamente voc poderia colocar no seu diretrio tantos arquivos quanto quisesse, at o ponto de estourar a capacidade do seu disco.Os dados contidos no arquivo diretrio so apenas o nome de cada arquivo e seu ponteiro para uma tabela de informaes de controle de todos os arquivos do sistema. Esta tabela contm informaes administrativas do arquivo, como dados de segurana, tipo, tamanho, datas de acesso e dados que indicam onde ele est gravado no disco.Quando voc vai usar um arquivo, o sistema operacional consulta o diretrio para verificar se existe no disco um com o nome que voc especificou. Em caso afirmativo, o sistema obtm, da tabela as informaes necessrias para poder manipul- lo. Caso contrrio, o sistema envia uma mensagem informando que no foi possvel encontrar o arquivo.Um diretrio pode conter outros diretrios, aos quais chamamos subdiretrios. Um subdiretrio pode conter outros arquivos e subdiretrios, que tambm podem conter arquivos e subdiretrios e assim por diante. Este um relacionamento pai/filho entre um diretrio e seus arquivos e diretrios subordinados. Cada diretrio pai guarda informaes sobre os arquivos e diretrios que esto a um nvel abaixo dele-seus filhos.Um arquivo convenciona l um conjunto de caracteres presentes em algum meio de armazenamento, como por exemplo um disco. Ele pode conter texto para uma carta, cdigo de programa ou qualquer informao armazenada para um futuro uso.

  • CEFETSC - Unidade So Jos 21rea de TelecomunicaesOdilson Tadeu Valle

    Um arquivo de dispositiv o , como um diretrio, no contm dados. Ele basicamente um ponteiro para um dispositivo perifrico, como por exemplo uma unidade de disco, um terminal ou uma impressora. Os arquivos especiais associados aos dispositivos perifricos esto localizados no diretrio /dev.Um arquivo simblic o um arquivo convencional que aponta para outro arquivo em qualquer lugar do sistema de arquivos LINUX.

    5.1 DiretriosTodos os arquivos fazem parte de algum diretrio. Assim, eles so mantidos organizadamente. Se todos os arquivos do sistema fossem armazenados em um mesmo lugar, o LINUX levaria muito tempo para verificar todos os arquivos at encontrar aquele que est procurando. Os diretrios so um meio de oferecer endereos dos arquivos, de maneira que o LINUX possa acess-los rpida e facilmente.Ao entrar pela primeira vez em sua conta, voc j est em um subdiretrio do sistema LINUX, chamado seu diretrio de entrada (home directory). A menos que voc crie alguns subdiretrios em sua conta, todos os seus arquivos sero armazenados em seu diretrio de entrada. Teoricamente, voc pode fazer isso, mas a manuteno de seus arquivos ser mais eficiente se voc criar seu prprio sistema se subdiretrios. Assim ficar mais fcil manter o controle de seus arquivos porque eles estaro agrupados em diretrios por assunto ou por tipo. O LINUX tambm realiza buscas de maneiras mais eficiente em diretrios pequenos que nos grandes.

    5.1.1 Diretrio de EntradaSeu diretrio de entrada aquele em que voc colocado quando abre uma sesso em um sistema LINUX. Esse diretrio tem o mesmo nome que seu nome de login. Voc pode pensar em sua conta como uma verso em miniatura do sistema de arquivos do LINUX. No alto de seu sistema pessoal de arquivos, em vez do diretrio raiz, est seu diretrio de entrada. Abaixo dele estaro os subdiretrios que voc criar, que podem, por sua vez, se ramificar em subdiretrios e/ou arquivos.Os diretrios de entrada dos usurios so iguais a qualquer outro diretrio de um diagrama de sistema de arquivos. Entretanto, sendo o diretrio principal de sua conta, seu diretrio de entrada tem um status especial. Sempre que voc entra no sistema, o LINUX define uma varivel chamada HOME que identifica o seu diretrio de entrada. O LINUX usa o valor da varivel HOME como ponto de referncia para determinar quais arquivos e diretrios do sistema de arquivos voc pode acessar e tambm para orientar-se para onde lev-lo quando voc deseja mudar de diretrio corrente.

  • CEFETSC - Unidade So Jos 22rea de TelecomunicaesOdilson Tadeu Valle

    5.1.2 Diretrios CorrenteO diretrio corrente, ou de trabalho (working directory), o diretrio em que voc est em um determinado momento. Por exemplo, quando voc entra no sistema, o diretrio corrente sempre seu diretrio de entrada. Se voc passar para um de seus subdiretrios, este passar a ser o diretrio corrente.Durante toda a sesso, o LINUX mantm o controle de seu diretrio corrente. Todos os comandos so executados sobre o diretrio corrente, a menos que voc especifique outro. Por exemplo, qualquer arquivo ou subdiretrio que voc criar ser em princpio criado no diretrio corrente. Sempre que voc digitar ls, ver uma lista dos arquivos e diretrios do diretrio corrente.Todos os diretrios do LINUX contm um arquivo chamado . (ponto), que um arquivo especial que representa o diretrio corrente (um sinnimo). Sempre que voc quiser se referir ao diretrio corrente, pode faz-lo usando um ponto (.). Outro arquivo especial, chamado .. (dois pontos) representa o diretrio pai do diretrio corrente (o diretrio ao qual o diretrio corrente pertence). Quando precisar se referir ao diretrio pai do diretrio corrente, voc pode usar dois pontos (..) em vez do nome do diretrio.Quando voc digita um comando que opera sobre um arquivo ou diretrio, precisa especificar o nome do arquivo ou do diretrio desejado. O caminho, de um arquivo ou diretrio a lista de todos os diretrios que formam a ligao entre ele e o diretrio raiz.Voc s pode identificar individualmente cada arquivo e diretrio por seu nome e caminho, porque seu nome pode ser idntico ao de outro arquivo em outro local do sistema. Por exemplo, suponha que haja duas contas de usurio, chamadas luciene e alfredo, cada uma contendo um subdiretrio chamado vendas. O LINUX pode diferenciar esses dois subdiretrios por seus caminhos. Um deles seria /.../luciene/vendas e o outro seria /.../alfredo/vendas, onde as reticncias representam os diretrios intermedirios. Embora voc possa se referir a um arquivo ou diretrio dentro de seu diretrio de entrada usando apenas seu nome, o LINUX sempre interpretar o nome do arquivo ou diretrio como seu nome e caminho inteiro, porque ele mantm o controle de seu diretrio corrente e pode preencher a parte do nome de caminho que falta.Alm do caminho absoluto, voc tambm pode usar o caminho relativo, de um arquivo ou diretrio. O caminho relativo no comea com o diretrio raiz, mas com o diretrio mais prximo do diretrio cujo caminho est sendo definido. Para especificar um caminho relativo para seu diretrio de entrada, voc pode comear o caminho com$HOME ou com um ~ (til), que um sinnimo para $HOME. Por exemplo, se seu diretrio de entrada marco, a varivel HOME ter o valor /.../marco, onde as reticncias representam os diretrios entre o diretrio raiz (/) e o diretrio marco. Sempre que voc digitar $HOME ou ~ como parte de um

  • CEFETSC - Unidade So Jos 23rea de TelecomunicaesOdilson Tadeu Valle

    nome de caminho, o LINUX o interpretar como o nome de caminho completo de seu diretrio de entrada.Para especificar um caminho a partir do diretrio corrente, voc pode iniciar o caminho com um . (que representa o diretrio corrente), ou com o nome do primeiro subdiretrio naquele caminho. O ponto opcional neste caso porque se o nome de caminho no comear com uma /, o LINUX considera que voc quer que ele comece com o diretrio corrente.Se voc j tiver mudado de diretrio algumas vezes, talvez no esteja seguro de qual o diretrio corrente no momento. Para descobrir, use o comando ls e poder se lembrar do nome do diretrio pela lista dos arquivos que ele contm. Entretanto, uma maneira mais simples de saber qual o diretrio corrente digitar pwd, que ser apresentado mais adiante. O comando pwd imprime o caminho completo do diretrio corrente.

    5.2 Substituio do Nome do ArquivoTrs caracteres especiais permitem a referncia a grupos de arquivos ou diretrios em uma linha de comando. Estes caracteres so chamados Meta caracteres ou Coringas.

    5.2.1 Asterisco O * substitui qualquer conjunto de caracteres.

    5.2.2 Ponto de interrogao O caractere ? substitui qualquer caractere.

    5.2.3 ColchetesO smbolo [] contm uma lista de caracteres. Um dos caracteres dentro do colchetes ser substitudo. Um hfen separando os caracteres que esto entre colchetes indica um intervalo. Um ! dentro do colchetes indica o sentido da procura invertido.Esses caracteres especiais poupam tempo de digitao. O mais importante que eles podem ser usados para fazer referncia a arquivos cujo nome no se conhece exatamente.Exemplos : 1- Liste todos os arquivos com extenso .new :$ ls *.new

    File.new arquivo.new

    2- Liste todos os arquivos cujo nome termine com um numero entre 1 e 5 :$ ls *[1-5]

  • CEFETSC - Unidade So Jos 24rea de TelecomunicaesOdilson Tadeu Valle

    file1

    arquivo3

    dir5

    3- Liste todos os arquivos cujo nome tem trs caracteres e comeam com f :$ ls f??

    fig fin

    5.3 Marcao do Caractere EspecialPara usar literalmente um caractere especial sem que o Shell interprete seu significado ele deve ser marcado. O shell trata um caractere especial marcado como um ca ractere normal.

    5.3.1 AspasQuando se coloca um caractere especial entre aspas , o Shell ignora todos os caracteres especiais exceto o cifro ($), o acento grave () e a barra invertida (\);

    5.3.2 ApstrofeO apstrofe mais restritivo. Todos os caracteres especiais entre apstrofes so ignorados ;

    5.3.3 Barra invertidaGeralmente, a barra invertida faz o mesmo que colocar um caractere entre apstrofes. Quando uma barra invertida usada, ela deve preceder cada caractere a ser marcado;

    6 Manipulando Arquivos e Diretrios

    6.1 IntroduoA funo essencial de um computador armazenar informaes (arquivos) e catalog-los de forma adequada em diretrios, fornecendo, se possvel, algum esquema de segurana de modo que pessoas no autorizadas no tenham acesso a arquivos importantes.Neste captulo voc aprender como manipular arquivos e diretrios no LINUX. Saber copiar, mover, exibir o contedo de um arquivo, e localizar um arquivo so algumas das atividades que veremos neste captulo.Os comandos aqui apresentados no so a totalidade dos comandos

  • CEFETSC - Unidade So Jos 25rea de TelecomunicaesOdilson Tadeu Valle

    disponveis, mas certamente so suficientes para que voc consiga executar funes tpicas e usuais de um programador ou de um usurio de aplicativos em ambiente LINUX.

    6.2 Identificando o Diretrio CorrentepwdO comando pwd (print working directory) no possui nenhuma opo ou argumento. Este comando mostra o nome do diretrio corrente ou de diretrio de trabalho (working directory). Voc pode utiliz-lo para se situar no sistema de arquivos. Por exemplo, sempre til verificar o diretrio corrente antes de criar ou remover arquivos e diretrios. Do mesmo modo, o pwd til para confirmar o diretrio corrente aps vrias trocas de diretrios.

    6.3 Criando diretriosmkdirNos diretrios podemos agrupar informaes afins, isto , arquivos que possuem alguma inter-relao. O nome do diretrio deve ser significativo e permitir um acesso e uma localizao rpida dos arquivos armazenados no seu sistema de arquivos.O comando mkdir (make directory) utilizado para criar diretrios. Os nomes dos diretrios a serem criados so passados como argumentos para o comando. Estes nomes podem ter at 255 caracteres, e devem ser nicos, isto , no pode haver dois diretrios com mesmo nome dentro de um mesmo subdiretrio, nem mesmo um arquivo e um diretrio iguais em um mesmo subdiretrio.Opes:-m modo Especifica o modo de permisso de acesso para o diretrio que est sendo criado;-p Cria os diretrios pai citados no nome do diretrio que est sendo criado;Exemplos : 1-Crie um diretrio chamado teste com o seguinte modo de permisso 711$mkdir -m 711 teste

    $ls-l

    total 1

    drwx--x-- x 2 guest users 1024 May 15 21:27 teste/

    2-Crie um diretrio chamado curso com um diretrio filho chamado aula1

  • CEFETSC - Unidade So Jos 26rea de TelecomunicaesOdilson Tadeu Valle

    $mkdir-p curso/aula1

    $ls-l

    total 2

    drwx--x-- x 2 guest users 1024 May 15 21:27 teste/

    drwxr- xr- x 3 guest users 1024 May 15 21:33 curso/

    $ls-l curso total 1

    drwxr- xr- x 2 guest users 1024 May 15 21:33 aula1/

    6.4 Listando diretriosls [AaCFpdlmRrstucx] [nomes]Normalmente o contedo de um diretrio listado em ordem alfabtica, um item por linha. As diversas opes do comando ls permitem adaptar o formato da listagem.Se nada for especificado em nomes todos os itens do diretrio corrente so listados. Entretanto em nomes possvel determinar mscaras (filtros) para selecionar padres de nomes de itens a serem listados.Principais opes:

    -a All. Lista todos os itens , inclusive os que comeam com pontos; -l Long. Lista o contedo de um item que diretrio; -R Recursive. Lista todos os diretrios encontrados e seus

    subdiretrios; -t Time. Ordena os itens por hora/data de modificao;

    Exemplo: $ ls -la

    6.5 Mudando de diretriocd O comando cd (change directory) utilizado para mudar o diretrio de trabalho corrente. No h opes para este comando. O nome do novo diretrio de trabalho indicado em nome-do-diretrio. Se voc no especificar um diretrio, cd far com que o seu diretrio de entrada (home directory) se torne o seu diretrio corrente. Se nome-do-diretrio for um subdiretrio do seu diretrio corrente, basta informar o nome dele. Caso contrrio voc pode informar o nome relativo ou absoluto do diretrio para o qual voc quer mudar.

  • CEFETSC - Unidade So Jos 27rea de TelecomunicaesOdilson Tadeu Valle

    6.6 Criando arquivos vaziostouch Cria um arquivo vazio de nome arquivo.Exemplo:1- Crie um arquivo vazio de nome teste.file$ touch teste.file

    6.7 Inserindo texto em arquivosecho texto a ser inserido >> Insere o texto a ser inserido ao final do arquivo.Exemplo:$ echo teste texto >> teste.file

    6.8 Contedo de um arquivocat [svte] O comando cat mostra o contedo de arquivos (ou da entrada padro), apresentado-o na tela (de fato, na sada padro). possvel utilizar o cat para criar, exibir e juntar arquivos. Quando utiliza-se o cat para concatenar arquivos, os arquivos da origem permanecem intactos.Opes:Exemplo: 1- Mostre o contedo do arquivo teste.file :$cat teste.file curso

    teste texto

    6.9 Copiando arquivoscp O comando cp (copy) copia, isto , cria uma cpia de um arquivo com outro nome ou em outro diretrio sem afetar o arquivo original. Voc pode usar esse comando para criar cpias de segurana de arquivos importantes ou para copiar arquivos que queira modificar. Se h algum arquivo que voc quer ter em mais de um diretrio, pode usar o comando cp para copi-lo para outros diretrios.Na linha de comando, arquivo-origem o nome do arquivo que voc quer copiar e arquivo-destino o nome que voc quer dar cpia. Lembre-se: se voc fizer uma cpia de um arquivo no mesmo diretrio, ela no poder

  • CEFETSC - Unidade So Jos 28rea de TelecomunicaesOdilson Tadeu Valle

    ter o mesmo nome de arquivo-origem. Com este comando voc pode acidentalmente perder arquivos se j existir um arquivo com o nome arquivo-destino, neste caso o comando cp escreve o novo arquivo por cima do antigo.Exemplo:1- Copie o arquivo file.teste para teste:$ cp file.teste file.teste.2

    6.10 Movendo/Renomeando arquivosmv O comando mv (move) funciona com arquivos da mesma maneira como funciona com diretrios. Pode-se usar mv para renomear um arquivo ou para mov-lo para outro diretrio, dependendo dos argumentos que voc utilizar.Na linha de comando, arquivo-origem o nome do arquivo cujo nome voc deseja mudar, e arquivo-destino o novo nome para este arquivo. Se arquivo-destino j existir, mv primeiro remove o arquivo j existente e depois renomeia arquivo-origem com o novo nome. Para evitar este problema, voc tem duas opes:

    Examinar o contedo do diretrio antes de renomear um arquivo, para verificar se o novo nome que voc deseja atribuir j existe;

    Usar a opo -i (interactive) que permite uma confirmao da remoo de um arquivo entes de o comando mv remov-lo.

    Se arquivo-destino for o nome de um diretrio presente no diretrio corrente, ento o comando mv entende que arquivo-origem deve ser movido para o diretrio arquivo-destino, e no que este deve ser eliminado e substitudo por arquivo-origem.Se voc mover um arquivo para um novo diretrio, o arquivo ter o mesmo nome de arquivo-origem, a menos que voc especifique o novo nome tambm, dando o nome do caminho (relativo ou absoluto) antes do nome do arquivo.Exemplo: 1- Mova o arquivo file.teste para o diretrio teste interativamente :$ mv-i file.teste.2 teste

    6.11 Como ligar arquivosln [-opes] fonte destinoUma ligao uma entrada em um diretrio que aponta para um arquivo. O Sistema operacional cria a primeira ligao a um arquivo quando este criado. O comando ln geralmente usado para criar mltiplas referncias ao arquivo em outros diretrios. Uma ligao no cria uma cpia de um

  • CEFETSC - Unidade So Jos 29rea de TelecomunicaesOdilson Tadeu Valle

    arquivo, ela simplesmente outra indicao para os mesmos dados. Quaisquer alteraes em um arquivo so independentes do nome usado para se referir ao arquivo, ou seja, alterando o arquivo ou a ligao o efeito o mesmo.As ligaes no podem ser feitas entre sistemas de arquivos, a menos que a opo -s seja usada. Esta opo cria uma ligao simblica que um arquivo que contm o nome do caminho do arquivo ao qual ele est ligado.Opes:-s Permite a construo de um arquivo de ligao simblica para ligar um arquivo em um outro sistema de arquivos. Um arquivo de ligao simblica contm o nome absoluto do arquivo no outro sistema de arquivos;Exemplo: 1- Crie uma ligao simblica para o arquivo teste chamado slink :$ ln -s file.teste slink

    $ ls -l

    6.11.1 Notas: Quando voc liga um arquivo a outro, no est criando outro arquivo,

    mas simplesmente dando ao arquivo antigo outro endereo. As mudanas feitas no arquivo ou em uma de suas ligaes afetam tanto o arquivo como todas as suas ligaes.

    As permisses so as mesmas para todas as ligaes de um arquivo. Alterar as permisses de uma das ligaes implica em alterar as permisses de todas as ligaes automaticamente.

    As ligaes criadas com ln podem ser removidas com rm. Isto no significa que o arquivo original ser removido.

    6.12 Como remover arquivos rm [ -opes ] arquivo(s)O comando rm remove o arquivo e/ou as ligaes. Quando a ltima ligao removida, o arquivo no pode mais ser acessado e o sistema libera o espao ocupado pelo arquivo para outro uso. Se o arquivo for de ligao simblica, a ligao do arquivo removida.Para remover um arquivo exigida a permisso de gravao do diretrio pai do arquivo. Entretanto no exigido o acesso de leitura ou gravao ao arquivo. Os caracteres especiais podem ser usados para se referir a vrios arquivos sem indicar cada nome separadamente.Opes :-f Fora a remoo de arquivos com proteo de gravao.

  • CEFETSC - Unidade So Jos 30rea de TelecomunicaesOdilson Tadeu Valle

    -r Remove recursivamente o diretrio citado e seus subdiretrios.

    6.13 Localizando arquivosfind diretrios [expresso]O comando find procura recursivamente por arquivos em diretrios do sistema de arquivos.O argumento diretrios especifica em quais diretrios a busca deve ocorrer. A busca recursiva faz com que a busca ocorra no apenas nos diretrios especificados, mas em todos os subdiretrios dos diretrios especificados, nos subdiretrios dos subdiretrios deles, etc. O argumento expresso consiste em um ou mais argumentos, que podem ser um critrio de busca ou uma ao que o find deve tomar, ou ainda ambos os casos. Se vrios argumentos forem especificados, eles devem ser separados por espao em branco.O comando find tambm possui um grande nmero de opes que podem ser utilizados na busca por arquivos em um sistema de arquivos. Neste curso vamos abordar apenas os mais usuais, suficientes para compreender o funcionamento do comando.Expresso:-iname arquivo Seleciona os arquivos com nomes que correspondam a arquivo, ignorando (i) maisculas e minsculas, sendo que arquivo pode ser um nome de arquivo, ou um padro de nomes de arquivos (especificado com o uso de *), mas deve ser precedido de uma barra invertida;-user nome Seleciona arquivos que pertencem ao usurio nome;-exec cmd {} \; Executa o comando cmd nos arquivos selecionados pelo comando find; Um par de chaves representa cada nome de arquivo que est sendo avaliado; Um ponto e vrgula marcado encerra a ao;! Inverte o sentido do argumento que o sucede. Por exemplo, "!-iname arquivo" seleciona um arquivo cujo nome no corresponde a arquivo;-o Permite uma seleo disjuntiva de arquivos, especificada por dois argumentos distintos. Isto , quando usamos dois argumentos para especificar a busca, o arquivo selecionado se satisfizer ambos os critrios de busca. Com -o podemos selecionar arquivos que satisfazem um ou outro dos argumentos especificado para a busca. Por exemplo, "-iname arquivo-o-user nome" selecionar arquivos que possuem nomes correspondentes a arquivo ou cujo usurio seja correspondente a nome;Exemplos :1-Encontre o arquivo teste.file a partir do seu diretrio base, imprima os caminhos$ find ~ -iname teste.file

    ./curso/aula1/teste.file

  • CEFETSC - Unidade So Jos 31rea de TelecomunicaesOdilson Tadeu Valle

    ./teste.file

    2-Encontre todos os seus arquivos a partir do diretrio curso :$ find ~/curso -user aluno

    /home/guest/curso/aula1

    ...

    3-Encontre e apague todos os seus arquivos teste.file :

    $ find ~ -iname teste.file -exec rm {} \;

    6.13.1 Notas:Como o comando find verifica todos os arquivos em um diretrio especificado em todos os subdiretrios contidos nele, o comando pode tornar-se demorado. Veja mais adiante como execut- lo em background.

    6.14 Procurando nos arquivosgrep [-opes] sequncia de caracteres arquivo(s)O comando grep procura uma seqncia de caracteres em um ou mais arquivos, linha por linha. A ao especificada pelas opes executada em cada linha que contm a seqncia de caracteres procurada.Se mais de um arquivo for indicado como argumento do comando, o grep antecede cada linha de sada que contm a seqncia de caracteres com o nome do arquivo e dois pontos. O nome do arquivo mostrado para cada ocorrncia da seqncia de caracteres em um determinado arquivo.Opes :-i Ignora maisculas ou minsculas;-n Mostra o nmero de linhas com o output das linhas que contm a sequncia de caracteres;-v Anlise contrria. Mostra todas as linhas que no contm a seqncia de caracteres;Exemplos: 1- Procure a seqncia 'root' no arquivo /etc/passwd :$ grep root /etc/passwd

    2-Procure a seqncia 'root' em todos os arquivos do diretrio /etc, independente de maisculas ou minsculas :$ grep -i root /etc/*

  • CEFETSC - Unidade So Jos 32rea de TelecomunicaesOdilson Tadeu Valle

    6.15 More/lessPaginadores para visualizao em tela. Quando usamos o cat para ver o contedo de um arquivo, e se o mesmo for muito extenso, teremos dificuldade em ver o incio do mesmo. Com o more/less possvel navegar pelo contedo dos arquivos ou da da sada padro.Exemplo:$ more /etc/passwd

    6.16 Head e TailMostram na tela as 10 primeiras ou 10 ltimas linhas de um arquivos, respectivamente. Muito teis para anlise de log's.

    6.16.1 Opes-n num muda a quantidade de linhas a serem apresentadas. Por

    exemplo -n 30 mostra 30 linhas do arquivo.

    -f atualiza continuamente o contedo do arquivo, ou seja, se o arquivo estiver sendo modificado as alteraes aparecero na tela.

    Exemplos:$ tail -n 20 /etc/passwd

    $ head -n 10 /etc/passwd

    6.17 Gzip e GunzipCompacta e descompacta arquivos, respectivamente. Um nico por vez, mudando a extenso do mesmo.Exemplos:$ gzip teste.file.2

    $ ls -l

    $ gunzip teste.file.2.gz

    $ ls -l

    6.18 Tar1TAR ou tar (abreviatura de Tape ARchive), um formato de

    1 http://pt.wikipedia.org/wiki/TAR

  • CEFETSC - Unidade So Jos 33rea de TelecomunicaesOdilson Tadeu Valle

    arquivamento de arquivos. Apesar do nome "tar" ser derivado de "tape archive", o seu uso no se restringe a fitas magnticas. Ele se tornou largamente usado para armazenar vrios arquivos em um nico, preservando informaes como datas e permisses. Normalmente produzido pelo comando "tar". suportado pelo programa Winrar.tar tambm o nome de um programa de arquivamento desenvolvido para armazenar (backup) e extrair arquivos de um arquivo tar (que contm os demais) conhecido como tarfile ou tarball. O primeiro argumento para tar deve ser uma das seguintes opes: Acdrtux, seguido por uma das seguintes funes adicionais. Os argumento finais do tar so os nomes dos arquivos ou diretrios nos quais eles podem ser arquivados. O uso de um nome de diretrio, implica sempre que os subdiretrios sob ele, sero includos no arquivo.

    6.18.1 Usando o TARO que o GZIP no consegue fazer, o TAR (Tape ARchives) faz. Ele um aplicativo capaz de armazenar vrios arquivos em um s. Porm, no capaz de compactar os arquivos armazenados. Como possvel notar, o TAR serve de complemento para o GZIP e vice-versa. Por isso, foi criado um parmetro no TAR para que ambos os programas possam trabalhar juntos. Assim, o TAR "junta" os arquivos em um s. Este arquivo, por sua vez, ento compactado pela GZIP.O TAR tambm consegue gravar a propriedade e as permisses dos arquivos. Ainda, consegue manter a estrutura de diretrios original (se houve compactao com diretrios), assim como as ligaes diretas e simblicas.A sintaxe do TAR :

    tar [parmetros] [-f arquivo] [arquivos...].Abaixo, segue a lista de parmetros.Parmetros principais:-c cria um novo arquivo tar;-p mantm as permisses originais do(s) arquivo(s);-r acrescenta arquivos a um arquivo tar;-t exibe o contedo de um arquivo tar;-v exibe detalhes da operao;-x extrai arquivos de um arquivo tar;-z comprime o arquivo tar resultante com o gzip;-f especifica o arquivo tar a ser usado;A seguir mostramos exemplos de utilizao do TAR. Em alguns parmetros o uso de '-' (hfen) no necessrio. Desta vez, os comandos no sero explicados. Execute-os e descubra o que cada um faz. Repare na combinao de parmetros e tente entend-la. Assim, voc saber exatamente o que est fazendo. Bom aprendizado!

  • CEFETSC - Unidade So Jos 34rea de TelecomunicaesOdilson Tadeu Valle

    tar -cvf arq.tar arq1 arq2

    tar -czvf arq.tgz *

    tar -rf arq.tar arq*

    tar -tzf arq.tar

    tar -xv -f arq.tar

    7 Permisso de Acesso Diretrios e ArquivosH uma maneira de restringir o acesso aos arquivos e diretrios para que somente determinados usurios possam acess-los. A cada arquivo e diretrio associado um conjunto de permisses. Essas permisses determinam quais usurios podem ler, e escrever (alterar) um arquivo e, no caso de ser um arquivo executvel, quais usurios podem execut-lo. Se um usurio tem permisso de execuo para um diretrio, significa que ele pode realizar buscas dentro daquele diretrio, e no execut-lo como se fosse um programa.Quando um usurio cria um arquivo ou um diretrio, o LINUX determina que ele o proprietrio (owner) daquele arquivo ou diretrio. O esquema de permisses do LINUX permite que o proprietrio determine quem tem acesso e em que modalidade eles podero acessar os arquivos e diretrios que ele criou. O super-usurio (root), entretanto, tem acesso a qualquer arquivo ou diretrio do sistema de arquivos.

    7.1 Permisses de acesso:O conjunto de permisses dividido em trs classes: proprietrio, grupo e usurios. Um grupo pode conter pessoas do mesmo departamento ou quem est trabalhando junto em um projeto. Os usurios que pertencem ao mesmo grupo recebem o mesmo nmero do grupo (tambm chamado de Group Id ou GID). Este nmero armazenado no arquivo /etc/passwd junto com outras informaes de identificao sobre cada usurio. O arquivo /etc/group contm informaes de controle sobre todos os grupos do sistema. Assim, pode -se dar permisses de acesso diferentes para cada uma destas trs classes.Quando voc executa ls -l em um diretrio qualquer, os arquivos so exibidos de maneira semelhante a seguinte:total 403196drwxr-xr-x 4 odilson admin 4096 Abr 2 14:48 BrOffice_2.1_Intalacao_Windows/-rw-r--r-- 1 luizp admin 113811828 Out 31 21:28 broffice.org.2.0.4.rpm.tar.bz2-rw-r--r-- 1 root root 117324614 Dez 27 14:47 broffice.org.2.1.0.rpm.tar.bz2-rw-r--r-- 1 luizp admin 90390186 Out 31 22:04 BrOo_2.0.4_Win32Intel_install_pt-BR.exe

  • CEFETSC - Unidade So Jos 35rea de TelecomunicaesOdilson Tadeu Valle

    -rw-r--r-- 1 root root 91327615 Jan 5 21:27 BrOo_2.1.0_070105_Win32Intel_install_pt-BR.exe

    As colunas que aparecem na listagem so:1. Esquema de permisses;2. Nmero de ligaes do arquivo ou diretrio;3. Nome do usurio dono do arquivo ou diretrio;4. Nome do grupo dono do arquivo ou diretrio;5. Tamanho do arquivo, em bytes;6. Ms da criao do arquiv