Apostila
Linux System Administration
www.3way.com.br
Linux System Administration
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br
SUMÁRIO
1. Introdução.................................................................................................... ..........................................................4 5 1.1. O que é Linux.................................................................................................... ..............................................4 5 1.2. Distribuições.................................................................................................... ...............................................4 5 1.3. Sistemas de Arquivos.................................................................................................... ...................................5 6 1.4. Instalação do Linux.................................................................................................... ......................................6 7 1.5. Virtual Console.................................................................................................... ..........................................12 14 1.6. Desligamento/Reinicialização.................................................................................................... ....................13 15 18 1.7. Laboratório.................................................................................................... ................................................15 20 1.8. Exercícios.................................................................................................... ..................................................17 21 2. Arquitetura de Sistema.................................................................................................... ....................................18 21 2.1. Alteração de runlevels.................................................................................................... ................................18 21 2.2. Comunicando com o processo INIT.................................................................................................... ............18 23 2.3. Outras funções do INIT.................................................................................................... ..............................19 23 2.4. Arquivo /etc/inittab.................................................................................................... ....................................19 26 2.5. O diretório /etc/rc.d/.................................................................................................... ...................................22 29 2.6. Laboratório .................................................................................................... ..............................................24 30 2.7. Exercícios.................................................................................................... ..................................................25 33 3. Comandos Básicos.................................................................................................... ............................................27 33 3.1. Trabalhando na linha de comando.................................................................................................... ..............27 33 3.1.1. Linha de comando.................................................................................................... .............................27 34 3.1.2. Shell.................................................................................................... ..................................................28 35 3.1.3. Variáveis.................................................................................................... ...........................................29 37 3.2. Comandos sequenciais.................................................................................................... ...............................31 38 3.3. Gerenciamento básico de arquivos.................................................................................................... ..............32 43 3.4. Metacaracteres.................................................................................................... ...........................................37 45 3.5. Streams de Texto usando filtros.................................................................................................... ..................38 53 3.6. Laboratório.................................................................................................... ................................................46 55 3.7. Exercícios.................................................................................................... ..................................................48 58 4. Streams, pipes e redirecionamentos.................................................................................................... .................50 58 4.1. Redirecionamentos.................................................................................................... .....................................50 58 4.1.1. Redirecionando a Saída.................................................................................................... ......................50 59 4.1.2. Redirecionando a Entrada.................................................................................................... ..................51 4.2. Pipes.................................................................................................... .........................................................59 51 62 4.3. Laboratório.................................................................................................... ................................................54 63 4.4. Exercícios.................................................................................................... ..................................................55 5. Criação, Monitoramento e finalização de processos............................................................................................ 64 56 5.1. Modificação da prioridade de execução de processos...................................................................................... 67 59 70 5.2. Laboratório.................................................................................................... ................................................61 71 5.3. Exercícios.................................................................................................... ..................................................62 6. Busca em arquivos texto com expressões regulares............................................................................................. 72 63 75 6.1. Laboratório.................................................................................................... ................................................66 76 6.2. Exercícios.................................................................................................... ..................................................67 77 7. Edição de arquivos com o VI.................................................................................................... ............................68 80 7.1. Laboratório.................................................................................................... ................................................71 83 7.2. Exercícios.................................................................................................... ..................................................73 84 8. Manipulação de disco.................................................................................................... .......................................74 8.1. Criação de partições e sistemas de arquivos.................................................................................................... 84 74 88 8.2. Arquivo /etc/fstab.................................................................................................... ......................................78 90 8.3. Laboratório.................................................................................................... ................................................80 91 8.4. Exercícios.................................................................................................... ..................................................81 Seja um Profissional Aprendendo com Profissionais
1
Linux System Administration
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks.
[email protected] | (62) 9333 www.3way.com.br
9. Links.................................................................................................... .................................................................82 92 9.1. Criação e alteração de links físicos e simbólicos.............................................................................................92 82 9.2. Laboratório.................................................................................................... ................................................84 95 9.3. Exercícios.................................................................................................... ..................................................85 96 10. Inicialização do Sistema.................................................................................................... .................................86 97 10.1. Instalação e configuração do Gestor de Início...............................................................................................98 87 10.1.1. Configuração do LILO.................................................................................................... .....................87 98 10.1.2. Configuração do GRUB.................................................................................................... ...................88 99 10.2. Laboratório.................................................................................................... ..............................................90 101 10.3. Exercícios.................................................................................................... ................................................91 102 11. Manuais e Documentação.................................................................................................... ...............................92 103 11.1. Laboratório.................................................................................................... ..............................................105 94 11.2. Exercícios.................................................................................................... ................................................106 95 12. Administração de usuários e grupos.................................................................................................... ..............96 107 12.1. Arquivo /etc/passwd.................................................................................................... .................................97 108 12.2. Arquivo /etc/shadow.................................................................................................... ................................98 110 12.3. Arquivo /etc/group.................................................................................................... .................................100 112 13. Permissões.................................................................................................... .................................................... 103 115 13.1. Permissões especiais.................................................................................................... .........................104 116 13.2. Laboratório.................................................................................................... ............................................107 119 121 13.3. Exercícios.................................................................................................... ..............................................108 123 14. ACL Posix.................................................................................................... .....................................................110 124 14.1. Configurando ACLs.................................................................................................... ...............................111 126 14.2. Comandos chattr e lsattr.................................................................................................... .........................113 129 14.4. Laboratório.................................................................................................... ............................................116 132 14.5. Exercícios.................................................................................................... ..............................................119 134 15. Localização de Arquivos.................................................................................................... ...............................120 135 15.1. Laboratório .................................................................................................... ...........................................121 136 15.2. Exercícios.................................................................................................... ..............................................122 137 16. Shell Scripts.................................................................................................... ..................................................123 137 16.1. Personalizando e trabalhando no ambiente shell.......................................................................................... 123 137 16.1.1. Alterando Variáveis.................................................................................................... ........................123 138 16.1.2. Funções.................................................................................................... .........................................124 138 16.2. Configuração do Bash.................................................................................................... ............................124 139 16.3. Programando no Linux.................................................................................................... ...........................125 139 16.3.1. Um Script simples.................................................................................................... ..........................125 140 16.3.2. Comentários .................................................................................................... .................................126 140 16.3.3. Variáveis especiais.................................................................................................... .........................126 140 16.3.4. Leitura de teclado e variáveis.................................................................................................... .........126 141 16.3.5. Estruturas de Decisão if then else.................................................................................................... ...127 142 16.3.6. Comando exit.................................................................................................... ................................128 142 16.3.7. Operadores de comparação.................................................................................................... .............128 144 16.3.8. Instrução case.................................................................................................... ................................130 145 16.3.9. Instruções de repetição.................................................................................................... ...................131 148 16.4. Laboratório .................................................................................................... ...........................................133 149 16.5. Exercícios.................................................................................................... ..............................................134 150 17. Compactadores, Empacotadores e Backup.................................................................................................... ..135 150 17.1. Compactadores de Arquivos.................................................................................................... ...................135 150 17.2. Empacotamento.................................................................................................... .....................................135 152 17.3. Backup.................................................................................................... .................................................. 137 155 17.4. Laboratório.................................................................................................... ............................................140
Seja um Profissional Aprendendo com Profissionais
2
Linux System Administration
Este material não pode serem distribuído. Curso Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br
17.5. Exercícios.................................................................................................... ..............................................141 156 18. Gerenciamento de Pacotes.................................................................................................... ............................142 158 18.1. Gerenciamento de pacotes redhat.................................................................................................... ............142 158 18.1.1. Instalando um pacote RPM.................................................................................................... .............142 158 18.1.2. Atualizando um pacote RPM.................................................................................................... ..........143 159 18.1.3. Desinstalando um pacote RPM.................................................................................................... .......144 160 18.1.4. Consultando um pacote RPM.................................................................................................... .........144 160 18.1.5. Extraindo dados de RPMs.................................................................................................... ..............145 161 18.1.6. Usando YUM.................................................................................................... .................................146 162 18.1.7. Configurando o YUM.................................................................................................... ....................147 163 163 18.1.8. Criação de um arquivo .repo.................................................................................................... ...........147 164 18.1.9. Assinaturas de pacotes.................................................................................................... ....................148 164 18.2. Gerenciamento de pacotes Debian.................................................................................................... ..........148 164 18.2.1. DPKG (Debian Package).................................................................................................... ................148 165 18.2.2. APT (Advanced Package Tool).................................................................................................... .......149 166 18.3. Compilação de programas.................................................................................................... ......................150 168 18.4. Gerenciamento de Bibliotecas Compartilhadas............................................................................................ 152 168 18.4.1. Localizando as Bibliotecas.................................................................................................... .............152 172 18.5. Laboratório.................................................................................................... ............................................155 174 18.6. Exercícios.................................................................................................... ..............................................157 175 19. Tarefas agendadas.................................................................................................... ........................................158 175 19.1. Criando cron jobs de sistema.................................................................................................... ..................158 177 19.2. Criando cron jobs de usuário.................................................................................................... ..................160 177 19.3. Anacron.................................................................................................... ................................................. 160 181 19.4. Laboratório.................................................................................................... ............................................163 182 19.5. Exercícios.................................................................................................... ..............................................164 183 20. Gerenciamento de logs.................................................................................................... .................................165 183 20.1. Formato de /etc/syslog.conf.................................................................................................... ....................165 185 20.2. Registrando logs manualmente.................................................................................................... ...............167 186 20.3. Laboratório.................................................................................................... ............................................169 187 20.4. Exercícios.................................................................................................... ..............................................170 188 21. Kernel.................................................................................................... ........................................................... 171 190 22.1. Compilação do Kernel.................................................................................................... ............................172 192 22.2. Configuração do novo Kernel no LILO.................................................................................................... ...174 192 22.3. Configuração do novo Kernel no GRUB.................................................................................................... .174 193 22.4. Atualizando o Kernel.................................................................................................... ..............................175 193 22.5. Recompilando Kernel em distribuições RPM.............................................................................................. 175 194 22.6. Laboratório.................................................................................................... ............................................176 196 22.7. Exercícios.................................................................................................... ..............................................178
Seja um Profissional Aprendendo com Profissionais
3
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
1. INTRODUÇÃO 1.1. O QUE É LINUX
Linux é ao mesmo tempo um kernel (ou núcleo) e o sistema operacional que roda sobre ele, dependendo do contexto em que você encontrar a referência. O kernel Linux foi criado em 1991 por Linus Torvalds, então um estudante finlandês, e hoje é mantido por uma comunidade mundial de desenvolvedores (que inclui programadores individuais e empresas como a IBM, a HP e a Hitachi), coordenada pelo mesmo Linus, agora um desenvolvedor reconhecido mundialmente e mais representativo Figura 2.4 – Layout Memória após inicialização integrante da Linux Foundation. //criando novo alias Carro carro2 = carro1;
1.2. DISTRIBUIÇÕES
Uma distribuição (ou simplesmente distro) é composta do kernel linux e um conjunto variável de softwares, dependendo de seus propósitos. Essa coleção de software livre (kernel) e não-livre (conjunto de softwares), é criada e mantida por indivíduos, grupos e organizações de todo o mundo, incluindo o grupo Linux. Indivíduos como Patrick Volkerding, companhias como a Red Hat, a SuSE, a Mandriva e a Canonical, bem como projetos de comunidades como o Debian ou o Gentoo, compilam softwares e fornecem a usuários diversos sistemas completos, prontos para instalação e uso. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto As distribuições do Linux começaram a receber uma popularidade limitada desde a segunda metade dos anos 90, como uma alternativa livre para os sistemas operacionais 2.3 MembrosMicrosoft de InstânciaWindows e Mac OS, principalmente por parte de pessoas acostumadas comcriado o Unix e nodetrabalho. sistema tornou-se Cada objeto deveránas ter universidades sua própria instância variáveis O Os valores das variáveis (atributos) pela classe. métodos definem o comportamento de um populardefinidas no mercado deOs Desktops e servidores, principalmente para a Web e em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da servidores de bancos de dados. o seu estado.
classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm De entre asasmaiores, podem-se citar: Debian, Slackware, Suse, Mandriva, é compartilhada por todas instâncias da classe.
o mesmo estado se suas
Fedora e RHEL (essas duas últimas da Red Hat). A maior diferençavariáveis é a organização membro têmeos 2.3.1 Invocação de Métodos pré-configuração de softwares. A distribuição Red Hat Enterprise Linux (RHEL) éa mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um distribuição mais utilizada noparticular mundo.invocando A Conectiva Linux tinha as suas objeto pode ter corporativa que mostrar um comportamento uma aplicações traduzidas português, o que que falam a língua operação apropriada que foiem definida no objeto. Em facilitou Java, isto éque feitousuários pela chamada de um método em um objeto usando o operador binário "." (ponto), portuguesa tenham aderido melhor a esta distribuição. Hoje esta distribuição foi devendo especificar a mensagemo completa: o objeto que é o recebedor da incorporada à Mandrake, que resultou na Mandriva. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo um Seja que esteja definido pelo objeto. com Profissionais
4
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
512
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; Principais Distribuições carro1.cor = "prata"; Distribuição Site Origem Descrição
Slackware
slackware.com
EUA
Distribuição base. É a mais antiga em atividade e caracteriza-se pela sua estabilidade.
Slax
slax.org
República Tcheca
Baseada no Slackware e é um Live Cd (cd de boot), mas pode ser executada em pendrive.
Debian
debian.org
Global
Distribuição base. Sua proposta é ser formada somente por softwares livres.
Ubuntu
ubuntu.com
Ilha de Man (Inglaterra)
Baseada no Debian e se propõe a ser uma distribuição de fácil manuseio. Reconhece muitos disposiivos.
RHEL redhat.com //criando novo alias Carro carro2 = carro1; CentOS centos.org
Red Hat Enterprise Linux. Figura EUA2.4 – Layout Memória após inicialização de maior uso corporativo.
Distribuição base. É a distro
Global
Baseada no Red Hat Enterprise. É praticamente a mesma, mas preparada para a livre distribuição.
Fedora
fedoraproject.org
EUA
É um projeto opensource da Red Hat.
Suse
novell.com/linux
Alemanha
Baseada inicialmente no Red Hat, mas hoje possui sua própria estrutura e é comercializada no meio corporativo.
openSuse
opensuse.org
Alemanha
É um projeto opensource da Suse.
D I C A
Maiores informações podem ser obtidas nos sites oficiais de cada distribuição e no www.distrowatch.com (em inglês).
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 1.3. SISTEMAS DE ARQUIVOS
Um sistema de arquivos é um conjunto de estruturas lógicas e de rotinas, permitem ao sistema operacional o acesso ao Cada objeto criado que deverá ter sua própria instância de variáveis controlar Os valores das variáveis disco rígido.OsDiferentes sistemas operacionais usam em diferentes (atributos) definidas pela classe. métodos definem o comportamento de um um objetosistemas constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da de arquivos. Conforme cresce a capacidade dos discos oeseu aumenta estado. o classe. Porém não devemos confundir isto com a implementação do método, que volume de arquivos e acessos, esta tarefa torna-se mais distintos e maistêm Dois objetos é compartilhada por todas as instâncias da classe. o mesmo estado se suas complicada, exigindo o uso de sistemas de arquivos cada vez mais complexos e variáveis membro têm robustos. Existem diversos sistemas de arquivos diferentes, que vão desde sistemas os 2.3.1 Invocação de Métodos mesmos valores. Objetos pela troca de mensagens, isto significa que um até sistemas simples comose ocomunicam FAT16, que utilizamos em cartões de memória, como o objeto pode ter que mostrar um comportamento particular invocando uma NTFS, EXT3 e ReiserFS, que incorporam recursos muito mais avançados. 2.3
Membros de Instância
operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de método Windows, em um objeto usandoapenas o operador "." (ponto), Noummundo temos trêsbinário sistemas de arquivos: FAT16, FAT32 devendo especificar a mensagem objetodesde que é os o recebedor da MS-DOS, enquanto o e NTFS. O FAT16 é o maiscompleta: antigo, ousado tempos do mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo 5 umSeja que esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
612
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); = "2001"; NTFScarro1.ano é o mais complexo e atual. Apesar disso, temos uma variedade muito grande carro1.modelo= "fusca"; de sistemas de arquivos diferentes no Linux (e outros sistemas Unix), que incluem o carro1.cor = "prata";
EXT2, EXT3, EXT4, ReiserFS, XFS, JFS e muitos outros. Para quem usa apenas o Windows, estes sistemas podem parecer exóticos, mas eles são velhos conhecidos de quem trabalha com servidores, já que neles o Linux é que é o sistema mais popular. No linux os utilitários mais usados para manipular sistemas de arquivos são fdisk, mkfs e mkswap, que serão vistos mais a posteriormente ainda neste documento.
1.4. INSTALAÇÃO DO LINUX A instalação do CentOS Linux pode ser de diversas formas, tais como Figura 2.4 – Layout Memória apósfeita inicialização CD, DVD, Pendrive, o próprio disco rígido ou por Rede (network installation), neste //criando novo alias Carro carro2 = carro1; caso, utilizando diversos protocolos, tais como NFS, FTP ou HTTP. Para utilizar a instalação via Rede, será necessário alterar a sequência de boot na inicialização do computador para que o boot seja feito através de uma mídia que suporte a esse tipo de instalação, além do mais o dispositivo de rede também deverá suportá-lo. A instalação que será demonstrada neste material é a por DVD da distribuição. No entanto, é importante preparar o disco rígido com as partições necessárias, normalmente o instalador traz um aplicativo chamado DiskDruid que cria as partições o disco. Na Figura 1, será solicitado o tipo da instalação: Gráfica (padrão) e Texto. Vamos pressionar ENTER para prosseguir com a instalação padrão. Caso seja necessário Figura instalar emMemória modo texto,referência bastaparadigitar linux text à frente da 2.5 – Layout duas variáveis o mesmo objeto palavra boot. 2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo umSeja que esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
6
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
712
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo aliasFigura 1: A instalação pode ser em modo gráfico ou texto Carro carro2 = carro1;
Em seguida será apresentada a tela de Teste da Mídia, caso tenha certeza da integridade da mesma é melhor escolher a opção SKIP. Pressionar NEXT na tela seguinte. A Figura 2 é a escolha do idioma da instalação do sistema. Escolheremos ENGLISH (preferencialmente).
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Figura 2: Seleção do idioma da instalação 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma Na próxima é a escolha do Layout do Teclado. Normalmente escolhemos operação apropriada que foi definida no objeto. Em Java, isto é feito pela BRAZILIAN ABNT2. Caso apareça abaixo após a escolha do layout de chamada de um método em um objeto usando ao mensagem operador binário "." (ponto), teclado:especificar a mensagem completa: o objeto que é o recebedor da devendo mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 7 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
812
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Figura 3: Seleção da opção para criação de partições Carro carro2 = carro1;
É melhor escolher YES para que o aplicativo permita a manipulação das partições do disco. A criação das permissões pode ser feita de forma predefinida ou personalizada. Na nossa instalação, escolheremos Create custom layout, como está na figura abaixo.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um Figura 4: Definição do layout do disco objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), A recomendação é criar um esquema de particionamento devendo especificar a mensagem completa: o objeto que é o recebedor da (Logical oVolume o sugerido mensagem, método aManager) ser invocadocomo e os argumentos paraabaixo: o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
baseado em LVM
8
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
912
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 10
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata"; Layout de Partições
Partições
LVM
Tamanho
/boot
não
256 MB
swap
sim
256 MB (ou 2x memória principal)
/tmp
sim
256 MB
sim
256 MB
sim
2 GB
/home /
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Apóscarro2 a seleção do layout Carro = carro1;
clique NEXT para a instalação do gerenciador de boot (GRUB). Em seguida lhe será solicitada a configuração de rede (Figuras 5 e 6), onde deverá ser feita a seguinte configuração:
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da Figura 5: Configuração das interfaces de rede (IP e máscara) classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
9
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 11
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Figura 6: Depois da configuração de IP e máscara das interfaces Carro carro2 = carro1;
A configuração do Fuso Horário deverá ser a da região onde o servidor está, ou seja, no nosso caso, America/Sao Paulo (deixar marcado a opção System Clock uses UTC), e em seguida, escolher a senha do super usuário (root). Agora é a hora de escolher os pacotes a serem instalados no sistema. Primeiramente, escolha o perfil de instalação Server, depois para personalizar os pacotes, escolher Customize now (Figuras 7 e 8).
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida noFigura objeto. Em doJava, isto é feito pela 7: Escolha perfil Server chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
10
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 12
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo aliasFigura 8-1: Desmarcar todos os servidores da opção Servers Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Figura 8-2: Em Base System, desmarcar Dialup Networking Support
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis próximas telasOssão as dedefinem instalação do sistemasdepropriamente dita. Após o (atributos) As definidas pela classe. métodos o comportamento um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da processo de cópia dos pacotes, clique em REBOOT para reinicializar o ocomputador seu estado. e classe. Porém não devemos confundir isto com a implementação do método, que finalizar a instalação com as configurações abaixo: Dois objetos distintos têm é compartilhada por todas as instâncias da classe. 2.3.1• Invocação de Métodos Em Firewall Configuration: Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter queDisabled mostrar um comportamento particular invocando uma Firewall: operação apropriada que foi definida no objeto. Em Java, isto é feito pela Disabled (ou Permissive) chamada SELinux: de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
11
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 13
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br
•
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano "2001"; desabilitar serviços Em System =Services, carro1.modelo= "fusca"; carro1.cor = "prata";
desnecessários no boot:
auditd, bluetooth, firstboot, gpm, haldaemon, hidd, ip6tables, iscsi, iscsid, kudzu, mcstrans, mdmonitor, messagebus, microcode_ctl, netfs, pcscd, readahead_early, restorecond, rpcgssd e sendmail. Caso só apareceça a tela de logon, e não, as opções descritas acima, basta logar no sistema com o usuário root e digitar o comando setup para que essas configurações apareçam.
Pronto, agora basta reiniciar sistema com o comando reboot para começar a Figura 2.4o– Layout Memória após inicialização usá-lo. novo alias //criando Carro carro2 = carro1;
1.5. VIRTUAL CONSOLE É uma combinação conceitual de teclado e tela para uma interface de usuário no computador. É uma característica marcante de sistemas operacionais Unix/Linux, em que o console do sistema do computador pode ser usado para alternar entre múltiplos consoles virtuais. No Linux, os primeiros 6 (seis) consoles virtuais fornecem um terminal de texto com um aviso de login para um shell. O X Window System começa no sétimo console virtual. Para alternar entre eles é necessário fazer uma combinação de teclas Alt e uma tecla de função. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma Figura 9: Tela de uma virtual console operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
12
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 14
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Virtual Console carro1.modelo= "fusca"; Combinação de Teclas = "prata"; Descrição carro1.cor Alt + F1 Acessa o console virtual 1 (tty1).
Alt + F2
Acessa o console virtual 2 (tty2).
Alt + ← (seta esquerda)
Volta para console anterior.
Alt + → (seta direita)
Vai para o console posterior
Ctrl + Alt + teclas de função
De F7 em diante alterna entre os consoles virtuais gráficos.
startx
Inicia interfaces gráficas quando se está em um console virtual de texto.
startx -- :2
Invoca um segundo console virtual gráfico, e assim por diante. Figura 2.4 – Layout Memória após inicialização
Com a popularização do servidor X e dos ambientes gráficos, surgiram os //criando novo alias emuladores de console virtual, tais como gnome-terminal (no ambiente gráfico Carro carro2 = carro1; gnome) ou konsole (no KDE), que disponibilizam vários terminais numa mesma janela.
1.6. DESLIGAMENTO/REINICIALIZAÇÃO Existem várias formas de se desligar o sistema através do console (todas como usuário super usuário). Comando poweroff
Descrição
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
shutdown -h now
2.3 init 0 Membros de Instância
Ambos são utilizados para desligar o sistema. Os dois primeiros também desligam a fonte atx em sistemas RHEL, somente o halt que não. Uma particularidade do shutdown é o envio de mensagens aos usuários.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis halt (atributos) definidas pela classe. Os métodos definem o comportamento de um ementre um objeto constituem Desliga o sistema em 30 minutos e envia a mensagem aspas duplas objeto. Isto-hé 30 importante, pois denota que um método pertence a cada objeto da shutdown “Mensagem” o seu estado. para todos usuários. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm shutdown -c Cancela algum comando shutdown que estiver sendo executado. é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos Para reiniciar o sistema também existem várias formas (também como valores. usuário mesmos Objetos se comunicam pela troca de mensagens, isto significa que um
superpode usuário): objeto ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
13
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 15
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 16
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks.
[email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Descrição Comando carro1.modelo= "fusca"; reboot carro1.cor = "prata"; shutdown -r now Ambos são utilizados para reiniciar o sistema. init 6
+ + Reinicia o sistema em 30 minutos e envia a mensagem qualquer entre aspas duplas para todos usuários.
shutdown -r 30 “Mensagem”
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
14
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 17
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br
1.7.
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Lcarro1.modelo= ABORATÓRIO "fusca"; carro1.cor = "prata";
Este laboratório consiste em fazer a instalação do Linux na estrutura LVM (Logical Volume Management) em uma máquina virtual previamente preparada. Os discos rígidos dessa máquina virtual deverão ser SATA e/ou SCSI. Para isso, você irá apoiar-se no tópico 1.6 deste capítulo (Instalação do Linux), mudando apenas o layout do disco rígido. 1) Na tela tipo de instalação pressione ENTER para iniciar a instalação em modo gráfico, pois o modo texto não comporta LVM. 2) Teste de mídia de instalação (DVD): SKIP. Figura 2.4 – Layout Memória após inicialização
3) Escolha do Idioma: ENGLISH.
//criando novo alias 4) Layout do=teclado: Brazilian ABNT2 Carro carro2 carro1;
5) Número de Instalação: Skip entering Installation Number 6) Layout do disco rígido: Create a Custom Layout
Para a instalação criaremos uma partição primária com 100MB para o ponto de montagem /boot – com sistema de arquivos ext3 – que ficará fora do LVM. O restante do disco será onde criaremos a estrutura do LVM. Dentro dele criaremos quatro volumes lógicos que representarão o Swap com 512MB (ou pelo menos o mesmo tamanho da RAM), /home com 2GB, o raiz ( / ) com 6GB e 1GB livre para experimentos futuros. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 2.3
Tanto o grupo de volumes quanto os próprios volumes lógicos possuem nomes, Membros I de Instância normalmente o usuário criar a sua própria nomenclatura. Como sugestão, o grupo se D
C Cada objeto criadovg1deverá ter sua própria de variáveis A chamará e os volumes lógicos lvswapinstância e lvraiz, respectivamente. (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir com a implementação do método, que 7) Configuração de Rede:isto Fornecida pelo instrutor é compartilhada por todas as instâncias da classe.
8) Fuso horário: America/Sao Paulo (Desmarcar UTC)
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
9) Senha root: Fornecida pelo instrutor 2.3.1 Invocação de de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um 10) Personalização dos Pacotes: Personalizar agora objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela A um escolha dosem pacotes vai depender do instrutor, então aguarde as instruções dele e as chamada de método um objeto usando o operador binário "." (ponto), anote, pois é comum realizar mais instalações ao longo do curso. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 15 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 18
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; ________________________________________________________________________________ carro1.cor = "prata";
________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________
11) Finalizar a instalação: Escolha as opções abaixo Figura 2.4 – Layout Memória após inicialização a) Contrato de licença (aceite para prosseguir);
//criando novo alias Carro = carro1; b)carro2 Firewall (desabilitar);
c) SELinux (desabilitar ou escolher permissivo); d) Kdump (não precisa habilitar); e) Data e hora; f) Atualizações (necessita de subscrição, então pule essa parte) g) Criação de um usuário comum (opcional) h) Teste da placa de som (caso o sistema encontre uma, faça o teste dela). Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
16
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 19
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS carro1.cor = "prata";
1.8. E •
Quais são as principais diferenças entre softwares proprietário e livre?
•
Relacione as principais vantagens e desvantagens dos tipos de licenciamento?
•
Em um cenário pessoal escolha qual tipo de licenciamento que mais lhe agrada e justifique.
•
Qual o tipo de licenciamento mais conveniente no âmbito acadêmico, por quê?
•
Dentre as distribuições mais conhecidas, quais são as mais indicadas respectivamente para uso doméstico e corporativo?
•
Quais são os métodos de instalação normalmente suportados nas principais distribuições Figura 2.4 – Layout Memória após inicialização Linux?
•
//criando novo alias Carro carro1; O quecarro2 significa= MBR e qual
a sua importância para o sistema operacional?
•
Relacione as características principais de pelo menos cinco tipos de sistemas de arquivos.
•
Qual o significado da sigla FHS e o que ele representa para no mundo Unix?
•
Os pontos de montagem /dev, /tmp e /proc possuem qual função? Desses três qual o único que pode estar em partição diferente da raiz?
•
Quantas consoles são de texto e quantas são gráficas? Como é feita a alternância entre elas?
•
Descreva a funcionalidade do comando startx -- :3?
•
Como se desliga e se reinicia um sistema Linux exibindo mensagens de aviso? Quem vê essas mensagens? Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
17
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 20
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
2. ARQUITETURA DE SISTEMA 2.1. ALTERAÇÃO DE RUNLEVELS Os runlevels são níveis ou formas de inicialização do sistema. Cada nível de execução possui diretórios específicos que contêm scripts de inicialização. Cada nível de execução é identificado por um números que vão de zero (0) a 6 (seis). Figura 2.4 – (distros Layout Memória após inicialização Níveis de execução baseadas no Red Hat) //criando novo alias Nível Descrição Carro carro2 = carro1; 0 Desliga o sistema (nunca definir como initdefault)
1
Mono-usuário
2
Multi-usuário sem acesso a rede
3
Multi-usuário com acesso a rede
4
Não é utilizado
5
Modo gráfico
6
Reinicia o sistema
Os níveis de 2 a 5 diferem entre as distribuições, por exemplo, no Debian o nível 2 por padrão é multi-usuário com suporte a rede e no Red Hat o nível 2 é multi2.5 – Layout Memória duas variáveis referência para o mesmo objeto usuário sem suporte aFigura rede. Para saber o nível de execução atual, basta utilizar o comando runlevel. 2.3
Membros de Instância O processo init é o primeiro processo a ser iniciado, para vê-lo basta executar
Cada objeto deverá suacomando própria instância de variáveis Os valores variáveis o comando ps auxcriado | grep init.ter Esse filtra apenas os processos que das contém a (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem palavra init em seu nome. O seu identificador de processo (PID) é o 1. Ele não pode objeto. Isto é importante, pois denota que um método pertence a cada objeto da ser finalizado atravésconfundir do kill,istoentão comandosdokill -9 1que e kill -15 1o seu nãoestado. surtirão classe. Porém não devemos com aos implementação método, Dois objetos distintos têm efeito. énenhum compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos 2.2. CObjetos OMUNICANDO COM O PROCESSO INIT isto significa que um se comunicam pela troca de mensagens, objeto pode ter que mostrar um comportamento particular invocando uma É possívelque comunicar comnoo objeto. processo init ou pelo seu link operação apropriada foi definida Em init Java,através isto é do feitocomando pela /sbin/telinit. chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 18 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 21
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 22
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); INIT carro1.ano – Muda o nível =de"2001"; execução atual aplicando imediatamente carro1.modelo= "fusca"; definitiva. carro1.cor = "prata";
seus efeitos. Essa mudança não é
Sintaxe: init nivel_execucao
O comando telinit, por ser um link, funciona de forma igual. O comando runlvel exibe o runlevel atual. Exemplos Comando
Descrição
init 5
Muda o runlevel atual para 5 (modo gráfico).
Figura 2.4para – Layout Memória após inicialização Muda o runlevel atual 3 (modo texto). //criando novo Mostra aliaso runlevel atual. Caso tenho feito outras alterações, elas também serão runlevel Carro carro2 = mostradas. carro1;
telinit 3
2.3. OUTRAS FUNÇÕES DO INIT O processo init é o único processo capaz de realizar outras tarefas além da inicialização do sistema, como o monitoramento e o desligamento automático do sistema. Monitoramento do sistema – se processos marcados como sempre vivos morrerem, o init tem a responsabilidade de executá-los novamente caso eles sejam exigidos. Um bom exemplo de processo que não pode morrer são os terminais, pois eles dão acesso ao sistema. Figura 2.5 – Layout Memória duas variáveis referência parade o mesmo objetomuito prolongada os noDesligamento automático – quando ocorre uma queda energia breaks mandam um sinal SIGPWR (30) ao processo init comunicando que a sua carga de energia é baixa, fazendo assim com que ele desligue corretamente a máquina. Caso a energia volte antes que 2.3 Membros de Instância a máquina seja desligada, o no-break manda essa informação ao init que aborta o processo de Cada objeto criado deverá ter sua própria de variáveis valores das variáveis desligamento enviando o sinalinstância -c do comando shutdownOsfazendo assim com (atributos) definidas pelaque classe. Os métodos definem o comportamento de um qualquer outro comando de desligamento anterior seja em cancelado. um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. 2.4. AObjetos RQUIVO /ETC/INITTAB se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma A composição arquivonoestá organizada em isto quatro campos operação apropriada que desse foi definida objeto. Em Java, é feito pelaseparados por dois pontos (:). chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método ser invocado e os argumentos para método (se houver). identificacao : anivel_de_execução : acao : oprocesso O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 19 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 23
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; identificacao= –"prata"; representa a identificação da linha. carro1.cor
O ideal é usar duas letras para manter compatibilidade. Nas versões mais recentes pode-se utilizar ate 4 caracteres. Esse valor é totalmente arbitrário, podendo ser escolhido qualquer combinação de caracteres, desde que seja único. nivel_de_execucao – informa o nível de execução do processo. Caso este campo esteja vazio, o processo executado em todos os níveis; se for S indica que deve ser executado somente no nível monousuário. acao – indica o tipo de ação que será executada para aquela identificação. As mais utilizadas são: Ação
Descrição – Layout Memória após inicialização respawn O respawn faz com Figura que o2.4 init re-execute o processo caso ele seja morto. wait //criando novo alias O init aguarda por uma decisão anterior para prosseguir = carro1; once Carro carro2 O processo será executado apenas uma vez, na inicialização do nível. initdefault Indica o nível que deve ser inicializado por padrão sysinit Indica o script de inicialização geral do sistema (/etc/rc.d/rc.sysinit) powerfail O processo será executado quando o init receber o sinal SIGPWR (30), falha de energia. powerokwait Indicador de restabelecimento de energia (é chamado somente após um powerfail) ctrlaltdel Indica o processo ou comando que será executado após pressionar as teclas ctrl+alt+del
processo – indica o processo ou comando a ser executado. D I C A
2.3
Saber o que significa cada parte do arquivo /etc/inittab é certamente um conhecimento importante para se fazer um exame LPCI. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Segue abaixo o conteúdo comentado do arquivo /etc/inittab: Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) pela classe. Os to métodos # Defaultdefinidas runlevel. (Do not set 0 or 6)definem o comportamento de um objeto. Isto é importante, pois denota que método por pertence a cada objeto da Seleciona o tipo do nível que deve ser um executado padrão (initdefault) classe. Porém não devemos confundir isto com a implementação do método, que éid:3:initdefault: compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos # System initialization (runs when system boots) mesmos valores. se comunicam pelaser troca de mensagens, um Indica Objetos que o script rc.S deve executado. Este isto serásignifica sempreque executado e somente uma vez objeto podee apenas ter quenamostrar um comportamento particular invocando umadevem ser carregadas para (sysinit), inicialização, pois possui informações gerais que operação apropriada que foi definida no objeto. Em Java, isto é feito pela qualquer nível de execução. chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da si: :sysinit:/etc/rc.d/rc.sysinit mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
20
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 24
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; Script to run when going single user (runlevel 1) carro1.cor = "prata";
# Script utilizando quando o lilo envia o sinal de inicialização no modo monousuário. Este script solicita a senha do usuário durante o processo de inicialização. Torna-se uma medida de segurança contra ataques de força bruta. su:1S:wait:/etc/rc.d/rc.K
# Script to run when going multi user Script utilizado para inicializar os runlevels 2, 3, 4 e 5. rc:2345:wait:/etc/rc.d/rc.M 2.4 – Layout Memória após inicialização # What to do at the "Three FingerFigura Salute" //criando novo alias Esta ação é definida para informar qual comando é executado quando as teclas CTRL+ALT+DEL Carro carro2 = carro1; são acionadas.
ca::ctrlaltdel:/sbin/shutdown -t5 -r now
Substituindo a linha abaixo, teremos outra mensagem: ca : : ctrlaltdel : echo "nao e possivel reiniciar desta forma digite reboot"
# Runlevel 0 halts the system Script que é executado quando o nível 0 é solicitado. Neste nível o sistema operacional é desligado. l0:0:wait:/etc/rc.d/rc.0 Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto # Runlevel 6 reboots the system Script que é executado quando o nível 6 é solicitado. Neste nível o sistema operacional é reiniciado.
2.3
Membros de Instância
l6:6:wait:/etc/rc.d/rc.6 Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Istotoé do importante, pois denota # What when power fails que um método pertence a cada objeto da o seu estado. classe. Porém nãorecebe devemos confundir isto com a(30) implementação do método, que Quando o init um sinal SIGPWR de um processo que monitora uma interface serialtêm Dois objetos distintos éligada compartilhada por todas as instâncias da classe. do computador a um no-break denominado UPS (Uninterrupted Power Supply – Suprimento
Ininterrupito de Energia) ele executa o comando shutdown.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca destart mensagens, isto significa que um pf::powerfail:/sbin/genpowerfail objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada foi the definida no objeto. Em Java, isto é feito pela # If power is back, que cancel running shutdown chamada de um método em um objeto usando o operador binário "." (ponto), Caso a energia seja reestabelecida o init recebe um sinal SIGPWR alertando que há um arquivo devendo especificar a mensagem completa: o objeto que é o recebedor da chamado /etc/powerstatus contendo a palavra OK. Isso significa que a energia elétrica voltou. Então mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 21 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 25
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; o shutdown anterior deve ser cancelado. carro1.modelo= "fusca"; carro1.cor = "prata"; pg::powerokwait:/sbin/genpowerfail stop
# caso a energia seja reestabelecida o init recebe um sinal SIGPWR alertando que há um arquivo chamado /etc/powerstatus contendo a palavra OK. Isso significa que a energia elétrica voltou. Então o shutdown anterior deve ser cancelado. pr:12345:powerokwait:/sbin/shutdown Cancelado!"
-c
"Energia
reestabelecida;
Shutdown
# These are the standard console login getties in multiuser mode Indica o número de consoles texto e gráfico por padrão. As linhas que estão habilitadas indicam o Figuracomentadas 2.4 – Layout Memória número de console texto e as linhas (#)apósouinicialização que não existem indicam as consoles //criando novo alias gráficas. Carro carro2 = carro1; c1:1235:respawn:/sbin/agetty 38400 tty1 linux c2:1235:respawn:/sbin/agetty 38400 tty2 linux c3:1235:respawn:/sbin/agetty 38400 tty3 linux c4:1235:respawn:/sbin/agetty 38400 tty4 linux c5:1235:respawn:/sbin/agetty 38400 tty5 linux c6:12345:respawn:/sbin/agetty 38400 tty6 linux
# Esta linha é executada somente quando o nível de execução é o 4. A execução desta linha faz com que o gerenciador de login do modo gráfico seja carregado. Dentro do arquivo prefdm. Existem 3 gerenciadores de login, o kdm do kde; o gdm do gnome e o xdm da Xfree86. x1:4:wait:/etc/rc.d/rc.4 Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Após a modificação do arquivo /etc/inittab deve-se executar o comando init q para efetuar a releitura do arquivo, isso evita reiniciar a máquina.
2.3
Membros de Instância
objeto criado ter sua própria instância de variáveis 2.5. OCada DIRETÓRIO /ETC/deverá RC.D/ Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Conhecendo os níveis demétodo inicialização sistema, é importante saber o que cada objeto. Isto é importante, pois denota que um pertencedoa cada objeto da o seu estado. um delesconfundir fazem, ou tipo de serviços eles vão classe. Porém não devemos istoseja, com aque implementação do método, quechamar e qual momento de Dois objetos distintos têm Cada nível de execução possui um diretório com seus arquivos para é compartilhada porfazê-los. todas as instâncias da classe.
o mesmo estado se suas inicialização, sendo o diretório /etc/rc.d/rc0.d/ para o nível 0, o diretório membro 2.3.1 Invocação de Métodos /etc/rc.d/rc1.d/ para o nível 1; /etc/rc.d/rc2.d/ para o 2 e assim por diantevariáveis até o nível 6. Atêm sua os mesmos valores. Objetos pela /etc/rc.d/rc.S troca de mensagens, isto significa queprocesso um chamada é feitasea comunicam partir do script que é executado pelo INIT.
objeto pode ter que mostrar um comportamento particular invocando uma Liste o conteúdo do diretório /etc/rc.d/rc3.d/ por exemplo. Observe que existem vários operação apropriada que foi definida no objeto. Em Java, isto é feito pela arquivos começam comobjeto a letrausando K ou com a letra binário S para "." indidar se o processo deve ser parado chamada dee estes um método em um o operador (ponto), (kill) ouespecificar iniciado (start), respectivamente. também, que após da uma dessas letras possue um devendo a mensagem completa: oObserve objeto que é o recebedor número que varia de 00 até 99 que determina a prioridade de execução mensagem, o método a ser invocado e os argumentos para o método (se houver).dos arquivos contidos neste O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 22 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 26
Linguagem de Programação Java
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 27
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; diretório. carro1.modelo= "fusca"; Para estes serviços podem ser utilizadas carro1.cor = "prata";
distribuições baseadas em RedHat. D I C A
as ferramentas ntsysv e chkconfig nas
O diretório de cada nível de execução pode variar de distribuição para distribuição. O exemplo acima retrata o diretório das distribuições baseadas em Red Hat.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
23
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 28
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; ABORATÓRIO carro1.cor = "prata";
2.6. L
Este laboratório tem o objetivo de realizar uma configuração do arquivo /etc/inittab para inicialização em modo texto. Passo 1) Abrir um terminal de comandos e, como root, editar o arquivo com a seguinte linha: vi /etc/inittab
Passo 2) Localizar dentro desse arquivo a opção initdefault e mudar o seu id para 3, como mostrado abaixo:Figura 2.4 – Layout Memória após inicialização //criando novo alias id:3:initdefault: Carro carro2 = carro1;
Passo 3) Agora é só salvar o arquivo e atualizar o processo init com o comando: init q
Também funciona se a máquina for reinicializada com reboot. Essa maneira é baseada em distribuições Red Hat. No Debian basta executar, também como root, o comando: D I C A
update-rc.d -f gdm remove (Gnome) ou update-rc.d kdmMemória remove (KDE)referência para o mesmo objeto Figura 2.5-f – Layout duas variáveis
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
24
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 29
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS = "prata"; carro1.cor
2.7. E
• O que significa BIOS e qual a sua função em um computador? • Qual a diferença entre os comandos LSPCI, LSUSB e LSMOD? Exemplifique cada um dos comandos através de suas saídas no sistema que está usando. • Quais são os arquivos que fornecem dados para a saída dos comandos citados acima? • Defina runlevel e descreva cada um deles. Quais runlevels não devem ser Figura 2.4 – Layout Memória após colocados como padrão na inicialização? Porinicialização quê? //criando novo alias
• Carro O arquivo manipula os runlevels é o /etc/inittab. Descreva os campos carro2que = carro1; desse arquivo baseados no esquema abaixo: identificacao : nivel_de_execução : acao : processo Campo
Descrição
identificacao nivel_de_execucao acao processo
• Qual a diretiva do arquivo o runlevel padrão? Figura 2.5 – Layout/etc/inittab Memória duas variáveisdefine referência para o mesmo objeto • Diferencie o comando init do processo init. 2.3 • Membros de Instância Dê exemplos de dispositivos COLDPLUG e HOTPLUG.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis • Dispositivos funcionam conjunto com subsistemas de constituem (atributos) definidas pela HOTPLUG classe. Os métodos definem oem comportamento de um em um objeto objeto. Isto é importante, pois denota que um método pertence a cada objeto da atualização de suas informações. Descreva brevemente o que cadao um desses seu estado. classe. Porém não devemos confundir isto com a implementação do método, que subsistemas faz. Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas
• Qual o diretório onde são encontrados os arquivos que representam os variáveis membro têm os 2.3.1 Invocação de Métodos dispositivos do sistema? mesmos valores.
Objetos se comunicam pela troca de mensagens, isto significa que um objeto• pode ter que mostrar um comportamento particular invocando Identifique a nomenclatura Linux dos dispositivos deuma armazenamento IDE, operação SATA apropriada que foi definida no objeto. Em Java, isto é feito pela e SCSI. Exemplifique como se cada dispositivo tivesse duas partições chamada de um método em um objeto usando o operador binário "." (ponto), devendo cada. especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
25
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 30
Siga-nos também no Twitter! twitter.com/3waynet
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
•
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Qual o comando que lista os dispositivos SCSI do sistema carro1.modelo= "fusca"; arquivo que fornece essas informações são extraídas. carro1.cor = "prata";
e qual o nome do
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Sejaque umesteja Profissional Aprendendo um definido pelo objeto.com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
26
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 32
Linux System LinguagemAdministration de Programação Java
Este material pode ser em distribuído. Curso não Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
3. COMANDOS BÁSICOS
Este capítulo será didaticamente abordado fazendo-se o agrupamento de determinados comandos por categorias afins.
3.1. TRABALHANDO NA LINHA DE COMANDO 3.1.1. LINHA DE COMANDO Dominar a linha de comando é dominar o linux e conhecer o shell é uma Figura 2.4 – Layout Memória após inicialização desse sistema operacional. das tarefas mais importantes no aprendizado //criando novo alias A linha de comando Carro carro2 = carro1;
apresenta o prompt que é a indicação que o sistema já pode receber comandos. Ela é formada basicamente por campos que expressam as seguintes informações: o usuário logado, o nome da máquina (host), o diretório corrente e o símbolo de usuário. [usuario@maquina diretorio]simbolo
Onde: usuario – pode ser root, que é o usuário administrador do sistema, ou outro nome qualquer, que será um usuário comum. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
maquina – representa o nome da máquina, normalmente formado pelo primeiro campo do comando hostname.
2.3
Membros de Instância
diretorio – representa o diretório atual do sistema.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um simbolo – representa se o usuário é administrativo (#) em ouum comum ou não objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. privilegiado ($). classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas Exemplo Descrição variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Usuário root,troca máquina gaviao, diretório símbolo administrativo (#). Objetos se comunicam pela de mensagens, isto corrente significaetc, que um de usuário
objeto pode ter etc]# que mostrar um comportamento particular invocando uma [root@gaviao Obs.: os colchetes [ ] são um padrão de distribuições derivadas do redhat, normalmente operação apropriada que foi definida no objeto. Em Java, isto é feito pela outras distribuições não os trazem. chamada de um método em um objeto usando o operador binário "." (ponto), Usuário user, máquina server, diretório corrente home (~ ou /home/user/), símbolo de devendo especificar [user@server ~]$ a mensagem completa: o objeto que é o recebedor da usuário comum mensagem, o método a ser invocado e os ($). argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Sejaesteja um Profissional Aprendendo um que definido pelo objeto. com Profissionais
27
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 33
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); mignon@noteb:tmp$ carro1.ano = "2001"; Usuário mignon, máquina noteb, diretório corrente tmp, símbolo de usuário comum ($). carro1.modelo= "fusca"; carro1.cor = "prata";
3.1.2. SHELL
D I C A
Você pode estar percebendo a diferença entre o último prompt dos exemplos em relação aos outros. Essa diferença é porque o último prompt é baseado em distribuições debian.
O shell é o ambiente que faz a intermediação entre o usuário e os recursos do computador, como se fosse um ambiente de programação em tempo real para executar tarefas. Em distribuições linux é comum encontrar o bash (Bourne Again como Figura 2.4 Shell) – Layout Memória apóspadrão, inicialização e este material não foge à //criandoregra. novo alias Carro carro2 = carro1;
Ele possui comando chamados embutidos, ou seja, comandos que já fazem parte do bash. Um exemplo é o comando alias que serve para facilitar a entrada de comandos que costumam ter muitos parâmetros. ALIAS – Mostra ou define aliases (apelidos) para comandos que normalmente possuem parâmetros longos. Sintaxe: alias [apelido='comando_longo'] Exemplos Comando
Descrição
alias
Mostra a lista de aliases (apelidos) do sistema.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
alias ls='ls -lah'
Define o apelido ls para o comando ls -lah.
2.3
Membros de Instância Define o apelido copia para o comando cp -r. Então quando for digitado o apelido copia
2.3.1
I apelido ls, a saída será a do apelido ls -lah. C Caso você queira usar o comando ls original, InvocaçãoA de Métodos
alias copia='cp -r'
Cada objeto criado deveráque terusar sua própria cpinstância de variáveis será o mesmo o comando recursivamente (cp -r). Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm Baseado segundo alias criado ( alias ls='ls -lah' ), toda vez que for utilizado o D é compartilhada por todas asnoinstâncias da classe. da contra-barra ( \ ): \ls
o mesmo estado se suas
será necessário que ele venha precedido variáveis membro têm os
mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação Devido apropriadaao quegrande foi definida no objeto. Em Java, isto é feito pelafoi criado um recurso número de comandos disponíveis, chamada de um método em um objeto usando o operador binário que agiliza a digitação de comandos, é a tecla [TAB] "." que(ponto), quando pressionada entre a devendo especificar a mensagem completa: o objeto que é o recebedor da digitaçãoo método de uma ser comando completar digitação prevendo as combinações mensagem, invocado etenta os argumentos para oa método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 28 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 34
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; possíveis para aquela digitação inicial. carro1.modelo= "fusca"; carro1.cor = "prata";
HISTORY – Exibe os últimos comando digitados no bash. O histórico de comandos fica armazenado no arquivo ~/.bash_history de cada usuário. Sintaxe: history [opcao] Exemplos Comando
Descrição
history
Exibe a lista de todos os comandos executados.
history -c
Apaga a todos os comandos da lista.
Figura 2.4 – Layout Memória após inicialização
Recupera todos os comandos executados. //criando novo alias novamente o n-ésimo comando da lista. Carro carro2Executa = carro1;
history -r !n
Executa novamente o último comando executado (cmd representa o comando).
!cmd
3.1.3. VARIÁVEIS São utilizadas como repositório temporário de dados. Os nomes seguem praticamente as mesmas regras das linguagens de programação, limitando-se a caracteres alfanuméricos: Variável
Descrição
MINHAVARIAVEL
Nome válido
2TESTE
Nome inválido (começa com número)
VARIAVEL EXEMPLO
Nome inválido (espaço entre os nomes, sugere-se usar underline ou traço)
Var
Nome válido
2.3
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis criar preencher umadefinem variável não se pode (atributos)Para definidas pelaou classe. Os métodos o comportamento de usar um objeto. Isto é importante, pois denota que um método pertence a cada objeto da comando. classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis
espaços na linha de em um objeto constituem
o seu estado. Dois objetos distintos têm o mesmo estado se suas Variável Descrição MINHAVAR=5 A variável MINHAVAR é criada recebendo o número 5 como seu variáveis conteúdo. membro têm os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um Var=“rm -rf”
A variável Var é criada recebendo o comando rm -rf.
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de método do em um usando éo feita operador binário "." (ponto),echo A um exibição seuobjeto conteúdo com o comando devendo a mensagem completa: o objeto que é o recebedor da variávelespecificar precedido do símbolo $ como parâmetro. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
com o nome da
29
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 35
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; Variável carro1.cor = "prata"; Descrição Considerando os exemplos anteriores, exibirá o número 5 como conteúdo da echo $MINHAVAR variável MINHAVAR.
Ainda considerando os exemplos anteriores, exibirá rm -rf como conteúdo da variável Var.
echo $Var
Existem dois tipos de variáveis, as globais e locais. Globais – São acessíveis a todos os processos em todas as sessões de shell. Locais – São acessíveisFigura somente na sessão shell atual. 2.4 – Layout Memória após inicialização //criando novo alias Carro carro2 = carro1; As variáveis criadas localmente podem ser exportadas para os shells descendentes, ou D seja, aqueles que foram originados a partir de um existente. I C Essas variáveis ficarão acessíveis na sessão atual e nas outras geradas a partir dela. A Então se em um outro shell, aberto em paralelo, as variáveis forem requeridas, elas não serão vistas (acessadas).
O comando set mostra todas as variáveis definidas e o comando env exibe somente as que foram exportadas pelo comando export. Outra função do comando set é definir variáveis, inclusive inicializando-as com valores, já o comando unset remove uma variável definida. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Exemplos
Variável set 2.3
MINHAVAR=5 Membros
Descrição
de InstânciaA variável MINHAVAR é criada recebendo o número 5 como seu conteúdo.
Cada objeto criado deverá ter Var suaé criada própria instância de variáveis Os valores das variáveis A variável recebendo o comando rm -rf. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem set Var= “rm -rf” Obs.: que Em relação ao nome das variáveis comumdao uso de letras maiúsculas para objeto. Isto é importante, pois denota um método pertence a cada éobjeto o seu estado. representá-las, também sejado permitido classe. Porém não devemos confundir isto com embora a implementação método,letras que minúsculas. Dois objetos distintos têm é export compartilhada por todas as instâncias da aclasse. Redefine variável PATH adicionando o diretório /usr/local/bin/ e exportando-a PATH=$PATH:/usr/local/bin/
para a sessão atual e todas as descendentes.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 de Métodos Remove a variável Var. unset Invocação Var Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação O apropriada foi definida objeto. muitas Em Java,variáveis isto é feitodepela próprioque sistema nos no fornece ambiente chamada de um método em um objeto usando o operador binário "." (ponto), elas são de grande ajuda para o sistema e para os programas, pois elas devendo especificar a mensagem completa: o objeto que é o recebedor da para otimização algumas mensagem, o método de a ser invocado tarefas. e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
pré-definidas, são utilizadas
30
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 36
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; Variáveis Pré-definidas carro1.cor = "prata"; Variável Descrição
DISPLAY
Determina em qual display do ambiente X o programa deve exibir suas janelas.
HISTFILE
Caminho para o histórico de comandos do usuário.
HOME
Caminho para o diretório pessoal do usuário.
LOGNAME
Nome do login do usuário logado.
PATH
Lista de diretórios nos quais programas serão procurados caso tenham seus nomes digitados sem a especificação do caminho absoluto.
PWD
Exibe o diretório corrente (atual).
SHELL ! $
Mostra o shell utilizado usuário logado. Figura 2.4 –pelo Layout Memória após inicialização
o PID do último processo executado. //criando novoMostra alias Carro carro2 =Mostra carro1; o PID do último processo atual.
?
Retorna os valores 0 ou 1 para denotar respectivamente que o último comando foi executado corretamente ou com falha.
~
Representa o diretório pessoal do usuário que o utilizar.
D I C A
Se algum programa (script ou comando) for criado em um diretório que não esteja especificado na variável PATH, então é necessário tomar dois cuidados no momento da sua chamada na linha de comando: 1º) Informar o caminho absoluto para esse programa. Ex.: /opt/programa1.sh ou exec /opt/programa1.sh 2º) UtilizarFigura o ponto para informar o programa localiza-se no diretório atual. 2.5 –(.) Layout Memória duas que variáveis referência para o mesmo objeto Ex.: ./programa2.sh
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um 3.2. COMANDOS SEQUENCIAIS em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir a implementação do método, quelinha de comando para a É muito comum o uso isto de com vários comandos numa mesma Dois objetos distintos têm éresolução compartilhada por todas as instâncias da classe. de determinados problemas do dia a dia. O bash disponibiliza símbolos separadores de
comandos para várias situações diferentes.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um Caracteres especiais no bash objeto pode ter que mostrar um comportamento particular invocando uma Símbolo apropriada Descrição que foi definida no objeto. Em Java, isto é feito pela operação chamada deUsado um método um objeto usando o operador "."linha (ponto), ; quando aem intenção é executar vários comandos binário na mesma de comando e não há a preocupação devendo especificar mensagem completa: o objeto que é o recebedor da de que elasa tenham êxito em suas execuções. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 31 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 37
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; Mesmo que um comando anterior não tenha êxito em sua execução o próximo será executado. carro1.cor = "prata"; Sintaxe: comando1 ; comando2 ; comando3
Usado quando a intenção é executar vários comandos na mesma linha de comando havendo a preocupação de o comando anterior ter sua execução com êxito para que os próximos sejam executados. &&
Se um comando não for executado corretamente, a execução para e os próximos não serão executados. Sintaxe: comando1 && comando2 && comando3
||
Usado quando a intenção é executar vários comandos na mesma linha de comando havendo a preocupação de pelo menos um dos comandos da linha tenha êxito em sua execução para que os outros sejam executados. 2.4 – Layout Memória após inicialização Se pelo menos um comando forFigura executado corretamente, os outros serão executados. //criando novo alias Carro carro2 = carro1; Sintaxe: comando1 || comando2 || comando3
3.3. GERENCIAMENTO BÁSICO DE ARQUIVOS LS – Lista o conteúdo de diretórios. Sintaxe: ls [opcoes] [alvo] Exemplos Comando
Descrição
ls -a
Lista todos os arquivos, incluindo os ocultos (que são representados por um ponto antes do nome).
ls -l
Lista arquivos no formato longo (mais detalhado).
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3 deosInstância ls -i Membros Lista arquivos do diretório atual mostrando seus respectivos inodes.
criado deverá ter sua própria instância de variáveis Os valores das variáveis ls -d Cada objeto Lista somente os diretórios ao invés do conteúdo. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem ls -la Lista todos os arquivos no formato longo.pertence a cada objeto da objeto. Isto é importante, pois denota que um método o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Lista todos os arquivos detalhadamente mostrando o tamanho dos arquivos em formato humano (ou ls -lah Dois objetos distintos têm seja, em Kilobyte, Megabyte, Gigabyte, Terabyte, etc). é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos FILE Objetos – Determina o tipopela do troca arquivo. se comunicam de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma Sintaxe:apropriada file alvoque foi definida no objeto. Em Java, isto é feito pela operação chamada de um método em um objeto usando o operador binário "." (ponto), $ file /sbin/shutdown Exemplo: devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
32
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 38
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); = "2001"; PWDcarro1.ano – Comando que exibe o diretório atual. carro1.modelo= "fusca"; carro1.cor = "prata"; Sintaxe: pwd
Exemplo: $
pwd
CD – Muda de diretório (Entrar/Sair). Sintaxe: cd [diretorio] Exemplos cd
cd /
Muda para o diretório home do usuário logado (/home/usuario). Existe mais duas alternativas para esse comando: Figura 2.4 – Layout Memória após inicialização cd ~ //criando novo alias cd $HOME Carro carro2 = carro1; Muda para o diretório raiz (não importando o diretório corrente).
cd ..
Muda para o diretório anterior ao atual (volta um nível na árvore de diretórios).
cd ../..
Volta dois níveis na árvore de diretórios a partir do diretório atual.
cd -
Muda para o diretório anteriormente acessado (é diferente do segundo exemplo, pois este comando não é relativo à árvore de diretórios, e sim, ao último diretório acessado).
cd /bin
Muda para o diretório /bin (independentemente do diretório atual mudará para o /bin).
MKDIR – Cria diretórios. Sintaxe: mkdir [opcao] nome_do_diretorio Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Exemplos
mkdir linux
Cria o diretório linux no diretório atual.
mkdir Membros /tmp/temporario 2.3 de InstânciaCria o subdiretório temporario dentro do diretório /tmp.
Cada/usr/dir2 objeto criado deverá sua dir1 própria instância mkdir dir1 Os valores das variáveis Cria oter diretório no diretório atualde e o variáveis dir2 em /usr simultaneamente. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Retornará a seguinte mensagem de erro: objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir istocannot com acreate implementação do método, que “mkdir: directory `/dir1/dir2/dir3': No suchDois file or directory” objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos Solução: a opção -p,isto que significa cria os diretórios caso eles valores. não Objetos se comunicam pela trocautilizar de mensagens, que umnecessários,mesmos mkdir /dir1/dir2/dir3
caso os diretórios dir1 e dir2 não existam antes da criação do dir3.
existam. objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto.instalar Em Java, é feito necessários pela Cria o subdiretório e os isto subdiretórios a sua criação, caso eles mkdir -p /opt/soft/instalar não existam. chamada de um método em um objeto usando o operador binário "." (ponto), devendo a mensagemCria completa: objeto quenaé raiz o recebedor mkdir -mespecificar 700 /compartilha o diretórioo compartilha do sistema jádacom as permissões 700. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 33 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 39
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); = "2001"; CP – carro1.ano Copia arquivos e/ou diretórios. carro1.modelo= "fusca"; carro1.cor "prata"; Sintaxe: cp [opcao]= origem destino
Exemplos cp /etc/passwd /root
Copia o arquivo de senhas /etc/passwd para o diretório /root.
cp /root/passwd /root/passwd.bkp
Cria o arquivo de backup passwd.bkp no mesmo diretório do arquivo de origem.
cp /etc/shadow /etc/group /root
Copia os arquivos shadow e group, ambos de /etc, para o diretório /root.
cp -r /var/log ~
Copia o subdiretório /var/log para o diretório home do usuário que executou o comando. A opção -r ou -R é usada para copiar um diretório e seu conteúdo. Figura 2.4 – Layout Memória após inicialização
//criando novo alias
Carro carro2 a=data carro1; TOUCH – Altera e hora do último acesso a um arquivo ou diretório.
Sintaxe: touch [opcao] alvo Exemplos touch -t 11231925 /root/passwd
Altera a data (mês e dia) e hora do último acesso ao arquivo /root/passwd para o dia 23/11 e hora 19:25.
touch -t 0011232025 /root/passwd.bkp
Altera a data (ano, mes e dia) e hora do último acesso ao arquivo /root/passwd.bkp para 23/11/2000 e hora 20:25.
touch /root/passwd
Altera a data e hora do arquivo /root/passwd para a atual.
touch senhas.txt
Cria um arquivo vazio chamado senhas.txt caso o mesmo não exista no diretório atual. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
RMDIR – Apaga/Remove diretórios vazios. 2.3 Membros Instância Sintaxe: rmdirde [opcao] nome_do_diretorio
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da Exemplos classe. Porém não devemos confundir isto com a implementação do método, que é Comando compartilhada por todas as instâncias da classe. Descrição
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas rmdir linux Apaga o diretório linux no diretório atual. variáveis membro têm os 2.3.1 Invocação de Métodos rmdir /tmp/temporario Apaga o subdiretório temporario dentro doque diretório Objetos se comunicam pela troca de mensagens, isto significa um /tmp. mesmos valores.
rmdir pode dir1 /usr/dir2 objeto ter que mostrar um comportamento uma Apaga o diretório dir1particular no diretórioinvocando atual e o dir2 em /usr simultaneamente. operação apropriada que foi definida no objeto. Em Java, isto é feito pela rmdir /dir1/dir2/dir3 Retornará a seguinte mensagem de erro: chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem“rmdir: completa: que é o recebedor dafile or directory” failed oto objeto remove `/dir1/dir2/dir3': No such mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
34
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 40
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; caso os diretórios dir1 e dir2 não existam antes da criação do dir3. carro1.modelo= "fusca"; Solução: utilizar a opção -p para a remoção dos diretórios e subdiretórios. carro1.cor = "prata"; Apaga o subdiretório instalar e os subdiretórios do caminho informado caso eles rmdir -p /opt/soft/instalar estejam vazios (sem arquivos ou subdiretórios).
RM – Remove arquivos e/ou diretórios (sem a obrigatoriedade de estarem vazios). Sintaxe: rm [opcao] alvo Exemplos Comando
Descrição
Remove todos osFigura arquivos com Memória a extensão que estiverem no diretório /tmp. 2.4 – Layout após.temp inicialização Em algumas distribuições será necessário confirmar as deleções. //criando novo alias Carro carro2 = carro1; Remove todos os arquivos com a extensão .conf do diretório /tmp sem solicitar confirmação /tmp/*.conf de deleção.
rm /tmp/*.temp rm -f
Remove todos os arquivos e subdiretórios (opção -r) do diretório /tmp sem pedir confirmação de deleção. Caso não seja utilizada a opção -r, a seguinte mensagem será exibida:
rm -rf /tmp/*
“rm: cannot remove `/tmp/dir': Is a directory”
D I C A
A opção -rf é perigosa se usada como super usuário e sem a devida atenção. É possível danificar parcial ou completamente o sistema caso algum arquivo importante for deletado sem seu conhecimento.
2.5 – Layout Memória duas variáveis referência para o mesmo objeto MV – Move/RenomeiaFigura arquivos e diretórios.
Sintaxe: mv [opcao] origem destino
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Exemplos (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da Comando Descrição o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que mv /root/passwd /tmp Move o arquivo /root/passwd para o diretórioDois /tmp.objetos distintos têm é compartilhada por todas as instâncias da classe. mv /tmp/passwd ~
o mesmo estado se suas Move o arquivo /tmp/passwd para o diretório home do usuário logado.
variáveis membro têm os mv /root/passwd.bkp /root/senhas.bkp 2.3.1 Invocação de Métodos Renomeia o arquivo /root/passwd.bkp para senhas.bkp. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significapara queo um Move o arquivo /root/passwd diretório /tmp mudando o seu mv /root/passwd /tmp/senhas.txt objeto pode ter que mostrar um comportamento nome para particular senhas.txt. invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 35 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 41
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); = "2001"; FINDcarro1.ano – Localiza arquivos de maneira recursiva na hierarquia de diretórios. carro1.modelo= "fusca"; carro1.cor = "prata"; Sintaxe: find [caminho_inicial_da_busca] [opcao] [expressao_de_busca]
Opções Opção
Descrição
-name
Indica busca por nomes. Neste caso será informada uma expressao_de_busca.
-iname
Indica busca por nomes (ignorando maiúsculas e minúsculas). Neste caso também será informada uma expressao_de_busca.
-lname
Indica busca por links. Necessário informar expressao_de_busca.
-type
Indica busca por tipo de arquivo. Onde d é diretório, f é arquivo e l é link. Figura 2.4 – Layout Memória após inicialização Busca por data de último acesso (atime) ao arquivo menor ou maior a n. Onde n corresponde ao número de dias (n*24 horas). //criando novo alias
-atime -/+n
Carro carro2 Busca=porcarro1; data criação (ctime) do último arquivo menor ou maior que n. Onde n corresponde ao número de dias (n*24 horas).
-ctime -/+n -mtime -/+n
Busca por data modificação (mtime) do último arquivo menor ou maior que n. Onde n corresponde ao número de dias (n*24 horas).
-amin -/+n
Busca por data do último acesso (amin) ao arquivo menor ou maior que n. Onde n corresponde a quantidade de minutos.
-cmin -/+n
Busca por data de criação (cmin) do arquivo menor ou maior que n. Onde n corresponde a quantidade de minutos.
-mmin -/+n
Busca por data de modificação (mmin) do arquivo menor ou maior que n. Onde n corresponde a quantidade de minutos.
D I C A
2.3
Layout utilizado Memória duas variáveisse referência parabusca o mesmo O comandoFigura find2.5 e –muito quando trata de deobjeto arquivos, portanto é recomendável o seu domínio total nos exames da certificação LPI.
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Exemplos (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que umDescrição método pertence a cada objeto da Comando o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que distintos Busca todos os arquivos, a partir do diretórioDois raiz objetos (/), que tenham a têm é find compartilhada todas as instâncias da classe. / -iname por “*lilo” expressão lilo na composição do seu nome. Além disso ignora se a
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos Busca através da raiz por arquivos (-type f) cujo mesmos nome contém a valores. Objetos se comunicam pela troca de mensagens, isto significa que um find / -name password -type f -print expressão password e mostra na tela (-print) a localização das expressão está em letras maiúsculas ou minúsculas (-iname).
objeto pode ter que mostrar um comportamento particular invocando uma ocorrências. operação apropriada que foi definida no objeto. Em Java, isto é feito pela Busca por arquivos dentro"." de /var/log find /var/log/ -atime -2 chamada de um método em um objeto usando o operador binário (ponto),que foram acessados (-atime) nos últimos 2 dias. devendo especificar a mensagem completa: o objeto que é o recebedor da find /etc/ -mmin -32 Busco porpara arquivos dentro(se de houver). /etc que foram modificados (-mmim) mensagem, o método a ser invocado e os argumentos o método O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 36 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 42
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; nos últimos 32 minutos. carro1.modelo= "fusca"; carro1.cor = "prata";
3.4. METACARACTERES São maneiras de representar nomes de arquivos. Combina-se caracteres coringas com partes dos nomes dos arquivos para a formar combinações globais ou genéricas. Metacaractere * ?
Descrição
Substitui qualquer número de caracteres (zero ou mais caracteres). Figura 2.4 – Layout Memória após inicialização Ex.: algo* retorna algo, algol, algoritmo, etc. //criando novo alias Substitui qualquer caractere individual (vazio também mas só um caractere). Carro carro2 = carro1; Ex.: algo? retorna algos, algol, algor, etc.
[caracteres]
Combina os caracteres dentro dos colchetes com textos fora dele. Ex.: ald[eé]ia pode significar aldeia ou aldéia.
[!caracteres]
Combina o texto fora dos colchetes com a negação dos que estão dentro dos colchetes. Ex.: alde[!io]o pode retornar aldeao e aldeu, menos aldeoi e aldeoo.
[a-z] [A-Z] [0-9]
- representa um caractere minúsculo compreendido entre a e z. - representa um caractere maiúsculo compreendido entre A e Z. - representa um caractere compreendido entre 0 e 9.
[!a-z] [!A-Z] [!0-9]
- representa a negação dos itens anteriores.
{frag1,frag2,...}
Combina os fragmentos entre colchetes com quaisquer outros fora dele. Ex.: nivel_{regular,bom,otimo} retorna nivel_regular, nivel_bom e nivel_otimo. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Considando, como exemplo, um diretório com os seguintes arquivos:
2.3 Membros Instância chap_a1 chap_a2 de chap_a3 chap_b1
chap_b2
chap_b3
sec1
sec2
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Ao utilizardefinidas o comandopela ls com o parâmetro s*, obteremos os arquivos cujo de nome porum s: objeto constituem (atributos) classe. Os métodos definemtodos o comportamento umcomece em objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. ls s* classe. sec1 Porém sec2 não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. Utilizando ls chap_?1, obtém-se o seguinte retorno:
2.3.1 Invocação de Métodos ls chap_?1 se comunicam pela troca de mensagens, isto significa que um chap_a1Objetos chap_b1 objeto pode ter que mostrar um comportamento particular invocando uma E ao executar o comando os nomes terminados b1 isto serãoémostrados: operação apropriada quels *b1 foi todos definida no objeto. Em com Java, feito pela chamada de um método em um objeto usando o operador binário "." (ponto), ls *b1 devendo chap_b1 especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
37
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 43
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; Para desabilitar esse comportamento é carro1.cor = "prata";
necessário usar uma barra invertida “\” antes do asterisco ou da interrogação na expressão. Outra maneira é colocar set -f no final da linha de comando. D I C A
Englobamento é muito parecido com expressões regulares, mas englobamento NÃO é uma aplicação de expressões regulares. A diferença básica é que englobamento se refere aos nomes de arquivos (ou diretórios) e não às cadeias de caracteres de texto dentro de um arquivo.
3.5. STREAMS DE TEXTO USANDO FILTROS Figura 2.4 – Layout Memória após inicialização
//criando novo alias
CAT Carro – Visualiza carro2o =conteúdo carro1; de arquivos (geralmente de texto). Sintaxe: cat [opcao] nome_do_arquivo Comando
Descrição
cat /etc/termcap
Mostra o conteúdo do arquivo /etc/termcap.
cat -n /etc/termcap
Mostra o conteúdo do arquivo /etc/termcap numerando suas as linhas (inclui linhas em branco).
cat -b /etc/termcap
Idem ao anterior, mas excluindo as linhas em branco.
O comando tac faz o inverso do cat.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
HEAD – Visualiza as primeiras de um arquivo.
2.3
Membros de Instância Sintaxe: head [opcao] arquivo Cada objeto criado deverá ter
sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Comando Descrição objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. não devemos confundir comasa10implementação que head Porém /etc/passwd Mostra poristo padrão primeiras linhasdo do método, arquivo /etc/passwd. Dois objetos distintos têm é compartilhada por todas as instâncias da classe. head -n20 /etc/passwd Mostra por padrão as 20 primeiras linhas do arquivo /etc/passwd.o mesmo estado se suas
membro têm os head -c30 /etc/passwd Mostra por padrão os 30 primeiros caracteres (bytes) iniciais dovariáveis arquivo /etc/passwd. 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma TAIL –apropriada Visualizaque as últimas linhas de umEmarquivo. operação foi definida no objeto. Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), Sintaxe: tail [opcao] arquivo devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 38 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 45
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Comando Descrição carro1.modelo= "fusca"; tail /etc/passwd Mostra por padrão as 10 últimas linhas do arquivo /etc/passwd. carro1.cor = "prata"; tail -n20 /etc/passwd
Mostra por padrão as 20 últimas linhas do arquivo /etc/passwd.
tail -f
Mostra em tempo real (-f) o conteúdo do arquivo de log /var/log/messages.
/var/log/messages
SORT – Ordena as linhas de arquivos de texto. Sintaxe: sort [opcao] arquivo Comando
Descrição
Ordena as linhas do arquivo /etc/group na ordem de dicionário (-d), ou seja, Figura 2.4 – Layout Memória após inicialização a,b,c,d,...,aa,ab,ac... //criando novo alias Ordena as linhas do arquivo /etc/group na ordem inversa do dicionario (-r), ou seja, -r /etc/group Carro carro2 = carro1; z,x,v...;zz,zx,zv...
sort -d /etc/group sort
WC – Conta caracteres, palavras e/ou linhas dos dados da entrada padrão e apresenta o resultado na saída padrão. Sintaxe: wc [opcao] arquivo Opção
Descrição
-l
Conta as linhas.
-w
Conta as palavras.
-c
Conta os byres Figura(caracteres). 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
-m
Conta os caracteres (bytes).
2.3 Membros deDescrição Instância Comando
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis wc -l texto.txt Conta a quantidade de linhas no arquivo texto.txt. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem wc -w Isto texto.txt objeto. é importante, pois denota que método pertence a cada objeto da Conta a quantidade deum palavras no arquivo texto.txt. o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que wc texto.txt Mostra a quantidade de caracteres, palavras e linhas, respecitvamente.Dois objetos distintos têm é compartilhada por todas as instâncias da classe. 2.3.1 Métodos NL – Invocação Utilizadodepara numerar as linhas de um arquivo. Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma Comandoapropriada queDescrição operação foi definida no objeto. Em Java, isto é feito pela chamada de um método Numera em um as objeto o operador binário "." (ponto), linhas usando do arquivo /etc/passwd. nl /etc/passwd Igual aos comandos cat -n /etc/passwd e /etc/passwd.da devendo especificar a mensagem completa: o objeto que écato-brecebedor mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
39
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 46
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); nl -bacarro1.ano /etc/passwd =Numera "2001"; as linhas do arquivo /etc/passwd (incluindo as linhas em branco). carro1.modelo= "fusca"; nl -bt /etc/passwd as linhas do arquivo /etc/passwd (excluindo as linhas em branco). carro1.cor =Numera "prata";
CUT – Formata (ou “recorta”) trechos de cada linha de um arquivo. Sintaxe: cut [opcao] arquivo Para exemplicação, supor um arquivo chamado teste_cut.txt como o seguinte conteúdo: 00:123:456:789 01:234:567:890 01:456:768:230 99:431:806:111
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Descrição Comando Carro carro2 = carro1; Seleciona os caracteres da coluna 1 e 2, produzindo a saída: 00 cut -c1,2 teste_cut.txt 01 01 99
cut -c1-5 teste_cut.txt
cut -c1,4-6 teste_cut.txt
Seleciona os caracteres da coluna 1 até a 5, produzindo a saída: 00:12 01:23 01:45 99:43 Seleciona os caracteres da coluna 1 e da 4ª até a 6ª coluna, produzindo a saída: 0123 0234 0456 Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 9431
Seleciona (recorta) as colunas que vão até o primeiro delimitador (neste caso é :). Tudo que ficar entre os : é considerado como campo. 2.3 Membros de Instância 00 cut -f1 -d: teste_cut.txt Cada objeto criado deverá Os valores das variáveis 01 ter sua própria instância de variáveis (atributos) definidas pela classe. Os01métodos definem o comportamento de um em um objeto constituem 99 que um método pertence a cada objeto da objeto. Isto é importante, pois denota o seu estado.
classe. Porém não devemos confundir isto com a implementação método, Seleciona (recorta) as colunas quedo estão após oque primeiroDois delimitador (:)distintos têm objetos é compartilhada por todas as instâncias 123 da classe.
o mesmo estado se suas
234 variáveis membro têm os 456 2.3.1 Invocação de Métodos mesmos valores. 431troca de mensagens, isto significa que um Objetos se comunicam pela objeto pode ter que mostrar umSeleciona comportamento (recorta) osparticular campos 2 einvocando 4, delimitadouma pelos (:) 123:789 operação apropriada que foi definida no objeto. Em Java, isto é feito pela cut -f2,4 234:890usando o operador binário "." (ponto), chamada de-d: um teste_cut.txt método em um objeto devendo especificar a mensagem456:230 completa: o objeto que é o recebedor da 431:111 mensagem, o método a ser invocado e os argumentos para o método (se houver). cut -f2 -d: teste_cut.txt
O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
40
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 47
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata"; EXPAND – Substitui espaços de tabulação (TAB)
distância aparente.
por espaços simples mantendo a
Sintaxe: expand [opcao] [arquivo] UNEXPAND – Substitui espaços simples (dois ou mais) em arquivos de texto por espaços de tabulação (TAB). Sintaxe: unexpand [opcao] [arquivo] Figura 2.4 – Layout Memória após inicialização OD – Converte arquivos de texto em octal e outros diferentes formatos.
//criando novo alias
Carro carro1; Sintaxe: od carro2 [opcao]= [arquivo]
SPLIT – Divide um arquivo em outros menores. A divisão pode ser por tamanho ou número de linhas. Sintaxe: split [opcao] [arquivo_original [partes]] Exemplos Comando
Descrição
split -b 256 teste_split
Divide o arquivo teste_split em partes de 256 bytes cada.
split -b 512k teste_split
Divide o arquivo teste_split em partes de 512 kilobytes cada.
Figura 2.5 – LayoutDivide Memóriaoduas variáveis referência para mesmopartes objeto de 512 kilobytes cada, arquivo teste_split em ovárias split -b 512k teste_split arq_ onde as partes terão nomes como arq_aa, arq_ab, arq_ac e assim
sucessivamente.
split Membros -l 5 texto_split.txt 2.3 de Instância
Divide o arquivo texto_split.txt em partes contendo 5 linhas cada.
Cada objeto criado deverá ter Divide sua própria de variáveis valores15das variáveis o arquivoinstância texto_split.txt em várias partesOs contendo linhas split -l 15 texto_split.txt (atributos) definidas pela classe.arqtxt_ Os métodos definem comportamento de um cada, onde as opartes terão nomes como arqtxt_aa, arqtxt_ab, em um objeto constituem arqtxt_ac e assim por diante. objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. 2.3.1
o mesmo estado se suas variáveis membro têm os mesmos valores.
D É possível juntar novamente as partes em um único arquivo, basta executar o comando InvocaçãoI de Métodos cat arq_* > copia_teste_split e o conteúdo das partes serão restauradas dentro do Objetos CAsearquivo comunicam pela troca de mensagens, isto significa que um copia_teste_split.
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo o objeto que número é o recebedor da FMT –especificar Formataa mensagem um texto completa: para determinado de caracteres mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
por linha (por 41
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 48
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano padrão 75 linhas). = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata"; Sintaxe: fmt [opcao] [arquivo]
Comando
Descrição
fmt arq1.txt
Mostra uma versão formatada do arquivo arq1.txt.
fmt < arq1.txt > arq2.txt
O comando recebe como entrada arq1.txt, o formata sem alterá-lo, e envia o resultado formatado para arq2.txt.
PASTE – Concatena arquivos em colunas dispostas lado a lado. Sintaxe: paste [opcao] ... [arquivo] ... Figura 2.4 – Layout Memória após inicialização //criando novo alias Para exemplicação, supor = umcarro1; arquivo chamado teste_paste.txt como o seguinte conteúdo: Carro carro2 cama mesa banho toalha
Comando
Descrição
paste teste_paste.txt teste_paste.txt
Concatena o arquivo teste_paste.txt duas vezes lado a lado, produzindo a saída: cama mesa cama mesa banho toalha banho toalha
paste teste_paste.txt teste_paste.txt > \ > teste_saida.txt
Concatena o arquivo teste_paste.txt duas vezes lado a lado, redirecionando a sua saída (a mesma do exemplo acima) para o arquivo teste_saida.txt.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
42
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 49
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; JOINcarro1.modelo= – Une arquivos que possuem colunas de "fusca"; carro1.cor = "prata"; primeira coluna).
índice em comum (normalmente a
Sintaxe: join [opcao] ... [arquivo1] [arquivo2] Supor dois arquivos teste_join1.txt e teste_join2.txt: teste_join1.txt 1 a1 x1 2 b1 y1 3 c1 z1
teste_join2.txt 1 a2 x2 2 b2 y2 3 c2 z2
Comando
Descrição Une as linhas dos arquivos teste_join1.txt e teste_join2.txt, baseados produzindo a saída:
Figura – Layout Memória após inicialização em2.4um índice comum (primeira coluna), join teste_join1.txt teste_join2.txt 1 a1 x1 a2 x2
//criando novo alias Carro carro2 = carro1;
2 b1 y1 b2 y2 3 c1 z1 c2 z2
PR – Faz a paginação de um arquivo texto e opcionalmente ajusta o número de colunas e mostra o resultado na saída padrão. Sintaxe: pr [opcao] [arquivo] Opções Opção
Descrição
+[NUM]
Inicia a numeração de páginas na página [PAGINA]
-[NUM]
Mostra a saída com [NUM] colunas.
-c
Imprime o caracter CTRL como “^” na saída padrão
-F, -f
2.3
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Usa avanço de página ao invés de linhas em branco para separar páginas.
Membros de Instância Usa o
-e [caracter][tamanho]
caracter [caracter] como tabulação (o padrão é tab) e o espaço da tabulação
Cada objeto criado[tamanho]. deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um -h [nome] Mostra [nome] ao invés do nome do arquivo no cabeçalho. objeto. Isto é importante, pois denota que um método pertence a cada objeto da -l [num] Define o número máximo de linhas por página para [num]. classe. Porém não devemos confundir isto com a implementação do método, que -m é compartilhada por todas asImprime instâncias da classe. vários arquivos em paralelo, um por coluna.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas -r Oculta mensagens de erro de abertura de arquivos. variáveis membro têm os 2.3.1 Invocação de Métodos -w [num] Ajusta a largura da página para [num] colunas (o padrão é 72). mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
Exemplo objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que pr foi -ldefinida no objeto. Em do Java, isto é teste_pr.txt feito pela 50 -h "novo cabecalho arquivo" chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da TR – Converte Recebe dados somente através da entrada mensagem, o métodocaracteres. a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
padrão. 43
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 50
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Curso Especialista em Redes Somente poderá ser utilizado por alunos da| 3Way Networks. [email protected] (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; Comando carro1.cor = "prata"; Descrição echo xyz | tr '[a-z]' '[A-Z]' Converte, caractere por caractere, a sequencia xyz em XYZ.
Converte o caractere – em todo arquivo teste_pr.txt pelo caractere *.
cat teste_tr.txt | tr '-' '*'
UNIQ – Exibe o conteúdo de arquivos eliminando as linhas sequenciais repetidas. Sintaxe: uniq [opcao] [arquivo_entrada] [arquivo_saida] SED – É um editor de fluxo de dados (bits) para filtragem e transformação de textos. Figura 2.4 – Layout Memória após inicialização Os usos mais comuns do comando são para substituição e deleção de strings em uma //criando novo alias entrada de dados. Carro carro2 = carro1; Sintaxe de substituição: sed 's/string_antiga/string_nova/g' arquivo Sintaxe de deleção: sed ',d' arquivo
Exemplos Conteúdo do arquivo teste_sed.txt Batatinha quando nasce, esparrama pelo chao Mamaezinha quando dorme, poe a mao no coração Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Comando
2.3 sed
Descrição
Membros de teste_sed.txt Instância 's/quando/se/g'
Substitui a palavra quando por se em todo o arquivo teste_sed.txt.
Cada objeto| sed criado deverá terSubstitui sua própria instância de variáveis Os por valores das variáveis cat teste_sed.txt 's/,/-/g' dentro do arquivo teste_sed.txt as vírgulas hífens. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem sed '2,4d' teste_sed.txt as linhaspertence 2, 3 e 4 do teste_sed.txt. objeto. Isto é importante, pois denota queDeleta um método a arquivo cada objeto da o seu estado. sed '1,/quando/d' teste_sed.txt classe. Porém não devemos confundir istoDeleta com aasimplementação do método, que linhas que possuam a palavra quando (a partir da primeira). Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela É muitoem comum, ao editarmos arquivosbinário de configuração, termos que fazer o seu chamada de um DImétodo um objeto usandoalguns o operador "." (ponto), backup, como no exemplo abaixo: C devendo especificar a mensagem completa: o objeto que é o recebedor da A mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
44
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 51
Linux System Administration Linguagem de Programação Java
Este material não Especialista pode ser distribuído. Curso em Redes Somente poderá ser utilizado por alunos da 3Way [email protected] | (62)Networks. 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); cat arq1.conf > arq.conf.bkp carro1.ano = "2001"; cat arq1.conf | sed '/palavra/d' > arq1.novo.conf carro1.modelo= "fusca"; mv arq1.novo.conf arq1.conf carro1.cor = "prata";
Com o comando sed é possível resumir esse trabalho todo em uma só linha: sed -i.arq1.conf.bkp
'/palavra/d'
arq1.conf
Ou seja, o termo palavra foi retirado do arq1.conf e ainda criado o backup arq1.conf.bkp.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Sejaque umesteja Profissional Aprendendo um definido pelo objeto.com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
45
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 52
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; ABORATÓRIO carro1.cor = "prata";
3.6. L
Passo 1) Crie a seguinte árvore de diretórios abaixo de SEU diretório home: diretório Home do Usuário | |_Pessoal | |__Contas | |__Trabalho | |_Especialista |__Redes |__Linux mkdir ~/Pessoal ~/Especialista mkdir ~/Pessoal/Contas ~/Pessoal/Trabalho Figura 2.4 – Layout Memória após inicialização mkdir ~/Especialista/Redes ~/Especialista/Linux
//criando novo alias Carro carro2 = carro1;
Passo2) Crie o arquivo anotacoesLinux dentro do diretório Pessoal. touch ~/Pessoal/anotacoesLinux
Passo 3) Renomeie o arquivo anotacoesLinux para auladeLinux1. mv ~/Pessoal/anotacoesLinux ~/Pessoal/auladeLinux1
Passo 4) Copie o arquivo aulaLinux1 para o diretório Linux. cp ~/Pessoal/aulaLinux1 ~/Especialista/Linux/
Passo 5) Crie o arquivo aulaLinux2 dentro do diretório Linux. touch ~/Especialista/Linux/aulaLinux2 Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Passo 6) Mostre o conteúdo do arquivo AulasdeLinux.
Membros de Instância cat ~/AulasdeLinux
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) Passo definidas classe. desde Os métodos decomecem um 7)pela Procure a raizdefinem todosooscomportamento arquivos que comobjeto a constituem em um objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. expressão Aula e terminem com um número. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada todasAula*[0-9] as instâncias da classe. find /por -name
o mesmo estado se suas têm os 2.3.1 Invocação Passo de 8)Métodos Supondo que o conteúdo do arquivo auladeLinux1variáveis tenha omembro conteúdo mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
“Linux é Multiusuário, Multitarefa, Mutiusuario e Transportável”, conte quantas
objeto pode ter que mostrar um comportamento particular invocando uma vezes aparece a palavra Multiusuário no arquivo aulaLinux1. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um“Multiusuário” método em um~/Pessoal/aulaLinux1 objeto usando o operador grep | wc binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
46
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 53
Linux System Administration Linguagem de Programação Java
Este material não Especialista pode ser distribuído. Curso em Redes Somente poderá ser utilizado por alunos da 3Way [email protected] | (62)Networks. 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Passo 9) Apague os arquivos AuladeLinux1 e AuladeLinux2. carro1.modelo= "fusca"; carro1.cor = "prata";~/Especialista/aulaLinux2 rm -f ~/Pessoal/aulaLinux1
Passo 10) Localize o binário do comando fmt no disco. which fmt
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Sejaque umesteja Profissional Aprendendo um definido pelo objeto.com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
47
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 54
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS = "prata"; carro1.cor
3.7. E
• Descreva sobre cada componente do prompt de comando do Linux. [usuario@maquina diretorio]simbolo
• O que representa o bash no para o sistema operacional? • O comando alias cria apelidos para os comandos. Se um apelido for criado com o mesmo nome do comando original, como é possível utilizar o original ao invés do apelido? 2.4 – Layout Memória após inicialização • Qual a diferença entre osFigura seguintes comandos: a) !23
b) !ls
//criando novo alias
• Carro Dê dois exemplos de variáveis inválidas e dois de válidas. Justifique o motivo carro2 = carro1; de cada exemplo. • Como se preenche e se visualiza o conteúdo de uma variável? • Para verificar qual é o arquivo que armazena o histórico de comandos é preciso utilizar qual comando? • Dê o significado das variáveis PATH, !, $, ? e ~. • Qual a diferença entre o comando set e env? • "A execução do programa pode ser feita pelo caminho completo ou relativo". Explique a frase usando exemplos. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
• O bash possui alguns caracteres especiais como o ponto e vírgula (;), duplo Ê comercial (&&) e duplo pipe (||). Qual a função deles? Responda com 2.3 Membros de Instância exemplos.
Cada objeto criado deverá ter sua própria instância de variáveis • Considere a linha genérica abaixo e responda (atributos) definidas pela classe.de Os comando métodos definem o comportamento de um objeto. Isto é importante, denota que um método pertence a cada objeto da comando2 e pois o comando3 serão executados. classe. Porém não devemos confundir || isto comando3 com a implementação do método, que comando1 && comando2 é compartilhada por todas as instâncias da classe.
Os valores das variáveis
em qual situação o em um objeto constituem
o seu estado. Dois objetos distintos têm o mesmo estado se suas • Crie situações onde o uso dos comandos abaixo seriam indispensáveis. variáveis membro têm os 2.3.1 Invocação de antes Métodos Pesquise de responder, quanto mais situações melhor será amesmos resposta. valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que comportamento particular invocando uma a) file b) mostrar pwd c)um touch operação apropriada que foi definida no objeto. Em Java, isto é feito pela • Explique como comando cd /tmp -lah chamada de um método em funciona um objeto o usando o operador binário&&"."ls (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da • Considere comando mensagem, o método aoser invocado eabaixo: os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
48
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 55
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); mkdir /tmp/testetmp/txt && cp ~/arq1.txt /tmp/testetmp/txt/ carro1.ano = "2001"; carro1.modelo= "fusca"; Se a estrutura= de diretórios testetmp/txt não existir no /tmp, a linha carro1.cor "prata";
de comando não funcionará corretamente. Como você corrigiria essa situação? (Considere a solução mais simples).
• Diferencie as quatro variantes abaixo do comando cd: a) cd
..
b) cd
/
c) cd
-
d) cd
~
• "Os comandos RMDIR e RM são comandos que se assemelham em um ponto e se distancia em outro". Explique essa frase com exemplos. • O comando MV é utilizado para mover arquivos. Como ele pode ser usado Figura 2.4 – Layout Memória após inicialização para renomear? •
//criando novo alias Carro carro2 = carro1; Usando o comando FIND,
crie exemplos para as seguintes necessidades:
a) procurar arquivos mais recentes que /dir1/arq1.txt b) encontrar links de arquivos que comecem com h em /dev/ c) achar arquivos em todo o sistema que combinem com a expressão "so" sendo ela maiúscula ou minuscula. • Para que são utilizados os comandos CAT, HEAD, TAIL e SORT? Exemplifique cada um deles. • Qual o resultado do comando cut -f1 -d: adaptado para exibir o shell do usuário?
/etc/passwd?
Como ele seria
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
• Crie um arquivo onde seja possível utilizar o comando UNEXPAND. Mostre o conteúdo do arquivo e um exemplo do comando para ele. Membros de Instância
• Cada Qualobjeto é o resultado do comando split criado deverá ter sua própria
? Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
-l 10 /etc/passwd instância de variáveis senha-
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
49
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 57
Linux System LinguagemAdministration de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos 3Way Networks. [email protected] da | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
4. STREAMS, PIPES E REDIRECIONAMENTOS 4.1. REDIRECIONAMENTOS Para nos comunicarmos com o computador fazemos uso de dispositivos de entrada e saída, respectivamente representados pelo teclado e monitor. No entanto existem outros meios de comunicação entre o usuário e o computador, tanto para entrada (scanner, leitor de código de barras, CD/DVD-ROM, disquete e a própria rede), quanto para saída de dados (impressora, CD, DVD, disco flexível, etc). Em ambientes UNIX são dispositivos Figurausados 2.4 – Layout 3 Memória após inicializaçãobásicos para fazer a entrada e
saída://criando
novo alias Carro carro2 = carro1;
Entrada padrão, também conhecido por STDIN
Os apelidos STDIN, STDOUT e STDERR tem sua utilidade mais clara em ambientes de programação ou sheel scripts.
Saída padrão, também conhecido por STDOUT
Saída de erro padrão, também conhecido por STDERR
Os sistemas UNIX também possuem um conceito interessante, onde “tudo é arquivo”. Este conceito permite escrever em dispositivos externos exatamente da mesma forma que se escreve em arquivos. Consequentemente os dispositivos básicos mencionados também são arquivos nesses tipos de sistema. Programas UNIX, incluindo o shell, lidam com arquivos através de Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto descritores, números que representam um determinado arquivo que está aberto para leitura e/ou escrita.
2.3
Membros de Instância A entrada, a saída e a saída de erros também possuem estes descritores.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Abaixo definidas há uma pela tabela queOsresume números e seus significados: (atributos) classe. métodosesses definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir istoPadrão com a implementação do método, que de Arquivo Dispositivo Mapeado por Para Número do Descritor Dois objetos Apelido distintos têm é compartilhada por todas as instâncias da classe. Entrada padrão
Teclado
0
o mesmo estado se suas STDIN variáveis membro têm os STDOUT mesmos valores.
Saída Invocação padrão Monitor 1 2.3.1 de Métodos Objetos se comunicam pela Monitor troca de mensagens, isto significa que2 um Saída de erros padrão objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela 4.1.1. R A SAÍDA chamada deEDIRECIONANDO um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da Consiste em transferir para um arquivo uma saída de dados mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo umSeja que esteja definido pelo objeto. com Profissionais
STDERR
padrão (código 1) 50
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 58
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); "2001"; ou decarro1.ano erros (código= 2). Usam-se os símbolos > carro1.modelo= "fusca"; esse tipo de redirecionamento. carro1.cor = "prata";
Comando
(maior) e >> (maior maior) para fazer
Descrição Envia a saída padrão do comando pwd para o arquivo saida1.txt. Se o arquivo não existir, ele será criado. Se existir, será substituído.
pwd > saida1.txt
Obs.: Não será exibida nenhuma mensagem referente a saída padrão, se houver será da saída de erros. Acrescenta a saída padrão do comando fdisk -l ao final do arquivo saida2.txt, mantendo seu conteúdo anterior. Caso o arquivo saida2.txt não exista, o mesmo será criado.
fdisk -l >> saida2.txt
Figura 2.4 – Layout Memória após inicialização Envia a saída de erros do comando
cat /proc/locks saida3.txt //criando2>novo alias
cat /proc/locks para o arquivo saida3.txt. A saída padrão será feita normalmente, somente os erros serão enviados para o arquivo.
Carro carro2 = carro1;
Envia a saída padrão e a saída de erros do comando ls -la /opt /mnt1 para o arquivo saida4.txt. Não haverá saída na tela.
ls -la /opt /mnt1 > saida4.txt 2>&1
4.1.2. REDIRECIONANDO A ENTRADA Usa-se o símbolo < (menor) para redirecionar o conteúdo de um arquivo para a entrada de algum comando. O comando tr não pode ler arquivos diretamente, então pode-se usar redirecionamento de entrada para trabalhar com ele. Veja o exemplo: Conteúdo do arquivo teste_redir_entrada.txt calda Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Comando
Descrição
tr 'd' 'c' < teste_redir_entrada.txt
Substitui a letra d pela letra c, produzindo a palavra calca.
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Tente perceber que um sempreaenvolve COMANDO e ARQUIVO, ou objeto. Isto é importante, pois denota queredirecionamento um método pertence cada objeto da o seu estado. D seja, a saída de um comando é enviada como conteúdo de um arquivo ou um comando classe. Porém nãoI devemos confundir isto com a implementação do método, que Dois objetos distintos têm C recebe como entrada o conteúdo de um arquivo. é compartilhada por todas as instâncias da classe. A Fique atento a esse detalhe nos exames de certificação, pois são comuns abordagens dessa natureza.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode 4.2. P IPESter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de método em umdo objeto o operador bináriocom "." (ponto), A um ideia principal usousando de pipe ( | ) é fazer que os devendo especificar a mensagem completa: o objeto que é o recebedor da em conjunto enviando suas saídas para a entradas de outros. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
comandos trabalhem Neste cenário, cada 51
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 59
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano "2001"; aplicativo executa =determinada operação, conclui carro1.modelo= "fusca"; próximo utilitário. = "prata"; carro1.cor
e passa o seu resultado para o
Um exemplo simples é o comando ls, se o executarmos em algum diretório com muitos arquivos o resultado será mostrado muito rapidamente, quase não dando para ver adequadamente o conteúdo. Para pausar a saída pode-se utilizar pipe juntamente com algum comando de paginação. ls /etc | more
ou
ls /etc | less
Comando
Descrição
cat cidades.txt | grep -i go
Figura o2.4conteúdo – Layout Memória após inicialização Filtra do arquivo cidades.txt procurando pelas ocorrências do termo go (maiúsculo ou minúsculo).
//criando novo alias Carro carro2 = carro1; Mostra as últimas 10 linhas do arquivo /etc/profile que são passadas pelo cat /etc/profile | tail comando cat.
TEE – Envia a saída padrão de um comando tanto para um arquivo quanto para a tela. Em conjunto com o pipe é um comando muito útil. Exemplos Comando
Descrição
cat cidades.txt | tee captura.txt
Envia o conteúdo do arquivo cidades.txt para o arquivo captura.txt e também para a tela. A saída do comando ls -lah é encaminhada ao tee por uma coloca a saída padrão em outro pipe para o comando paginador more e também no arquivo arq1.txt.
Figura 2.5 – Layout Memória duas variáveisO referência paratee o mesmo objeto canalização. comando por sua vez ls -l | tee arq1.txt | more
2.3 Membros de Instância ls -la | tee lista.txt
Mostra a listagem detalhada, incluindo arquivos ocultos, na tela e
envia para o arquivo lista.txt. Cada objeto criado deverá ter sua ainda própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um um objeto constituem Envia o conteúdo do diretório /usr/src/em para a tela atual e para ls -lah /usr/src/* | tee /dev/pts/1 objeto. Isto é importante, pois denota que um método pertence a cada objeto da outra tela (/dev/pts/1). o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos Os shells (-f7) de todos os usuários do sistema (/etc/passwd) sãotêm /etc/passswd cut -d: -f7 | tee é cat compartilhada por|todas as instâncias dashell classe. enviados para o arquivo shell e para a tela.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pelade troca mensagens,e isto significapara que a umentrada XARGS – Recebe a saída umdecomando repassa objeto pode ter que mostrar um comportamento particular invocando uma parâmetro (argumento). operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando oinicial]] operador binário "." (ponto), Sintaxe: xargs [comando [argumento devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
de outro como
52
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 60
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Exemplos carro1.modelo= "fusca"; Comando carro1.cor = "prata";
Descrição
ls /opt/* | xargs rm -rf
Apaga todos os arquivos ou diretórios presentes no diretório /opt/.
find /etc/ -name 'name*' | xargs ls -l
Procura por arquivos iniciados por name em /etc/ e os passa como parâmetro de entrada para o comando ls -l.
find /var/log/ -name "*.log" | xargs grep -E "error"
Procura em todos os arquivos .log de /var/log/ arquivos que contenham a palavra (ou frase) error.
find /etc/ -name '*.conf' | xargs tar -zcvf confs.tar.gz
Comprime todos os arquivos .conf do diretório /etc/ no arquivo confs.tar.gz.
Figura 2.4 – Layout Memória apósApaga inicialização silenciosamente
find /tmp/ -name vid* f | xargs rm -f //criando novo-type alias
Carro carro2 = carro1;
D I C A
(-f) todos os arquivos iniciados por vid que estão dentro do diretório /tmp/.
Os comandos tee e xargs são bem interessantes, eles podem fazer parte de linhas de comandos complexas. Eles são presença garantida nos exames de certificação LPIC.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
53
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 61
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; ABORATÓRIO carro1.cor = "prata";
4.3. L
Passo 1) Considere a árvore de diretórios abaixo: ~ | |_Pessoal | |_Especialista
Passo2) Crie o arquivo Anotacoes dentro do diretório Especilista contendo o texto: Linux é um sistema operacional moderno, modular e multiusuario. echo “Linux é um sistema operacional moderno, modular e multiusuario” > ~/Pessoal/Anotacoes Figura 2.4 – Layout Memória após inicialização
//criando alias ao Passo 3)novo Adicione Carro carro2 = carro1;
final do arquivo criado na questão anterior a frase “Linux e Windows é sinônimo de Ambientes Mistos”. echo “Linux e Windows é sinônimo de Ambientes Mistos” >> ~/Pessoal/Anotacoes
Passo 4) Copie os arquivos de configuração do diretório /etc/ para o diretório Especialista e envie os eventuais erros para o arquivo /tmp/erros.tmp. cp /etc/*.conf ~/Especialista/ 2> /tmp/erros.tmp
Passo 5) Modifique o passo 4 para que tanto os erros quanto os arquivos copiados sejam enviados para o arquivo /tmp/saida.tmp. cp /etc/*.conf ~/Especialista/ > /tmp/saida.tmp 2>&1 Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Passo 6) Apague o conteúdo do diretório Especialista enviando a saída para o arquivo /tmp/saida2.tmp e para a tela.
2.3
Membros de Instância rm -f ~/Especialista/*
| tee /tmp/saida2.tmp
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
54
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 62
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS = "prata"; carro1.cor
4.4. E
• Diferencie redirecionamento e o pipe. • Quais são os descritores, apelidos e dispositivos que representam a entrada de dados, saída de dados e a saída de erros? • Dê dois exemplos de cada redirecionamento de saída ( > e >> ). Explique cada um deles. • Cite exemplos de uma situação onde o uso do redirecionamento de entrada ( Figura 2.4 – Layout Memória após inicialização < ) seria bem vindo. •
//criando novo alias Carro = carro1; Qual carro2 a função e a sintaxe
do comando tee?
• O comando xargs é usado para passar parâmetros para outros comandos. Pensando nisso, crie dois exemplos onde os comandos xargs e tee funcionam em conjunto.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
55
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 63
Linux System LinguagemAdministration de Programação Java
Este material não pode serem distribuído. Curso Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
5. CRIAÇÃO, MONITORAMENTO E FINALIZAÇÃO DE PROCESSOS Genericamente, processos são que programas em execução, mas as vezes um programa pode lançar vários processos para funcionar. Para cada processo existente, o sistema operacional fornece um código (PID) que o identificará. O Linux pode executar mais de um processo simultaneamente, portanto é possível ter processos em primeiro plano (foreground) e também segundo plano (background). Os comandos ps, top, pstree, pidof, kill e killall são utilizados no gerenciamento de processos. Figura 2.4 – Layout Memória após inicialização
//criando novo alias
carro2 carro1; PS –Carro Mostra uma =visão estática dos processos ativos no sistema.
Sintaxe: ps [opcao]
TOP – Mostra em tempo real todos processos em execução no sistema. O mesmo comando apresenta informações sobre tempo ativo da máquina, quantidade de usuários logados, porcentagem de memória e processador. Também é possível mudar a prioridade dos processos (tecla [R] e o PID do processo). Sintaxe: top 2.5 – Layout Memória duas variáveis referência para o mesmo objeto PSTREE – Mostra a Figura árvore de processos do sistema.
Sintaxe: pstree [opcao]
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis PIDOF – Mostra o PID de programas em execução. (atributos) definidas pela classe. Os métodos definem o comportamento de um Sintaxe: [opcao]pois programa1 …] objeto. Isto épidof importante, denota que[programa2 um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas membro têm os KILL – Permite que o super usuário ou os donos dosvariáveis processos possam 2.3.1 Invocação de Métodos Objetoseliminar se comunicam pela troca de mensagens, istoa significa queseu um PID. mesmos valores. processos ativos no sistema partir de
objeto pode ter que mostrar um comportamento particular invocando uma Sintaxe: kill [opcao] [sinal] pid operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da KILLALL – Permite que oe super usuáriopara ouoos donos processos mensagem, o método a ser invocado os argumentos método (sedos houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Sejaesteja um Profissional Aprendendo um que definido pelo objeto. com Profissionais
possam eliminar 56
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 64
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano "2001";a partir do seu nome. processos ativos no=sistema carro1.modelo= "fusca"; carro1.cor = "prata"; Sintaxe: kill [opcao] [sinal] nome
Exemplos Comando
Descrição
ps aux
Mostra uma visão estática por usuário de todos os processos em execução.
top
Mostra uma visão dinâmica deMemória todos osapós processos em execução. Figura 2.4 – Layout inicialização
novoApresenta alias a árvore de processos do sistema e suas respectivas linhas de argumentos. Carro carro2 = carro1; pidof httpd Exibe todos os PID dos processos responsáveis pelo serviço httpd. pstree//criando -a
kill 1212
Envia o sinal 15 (SIGTERM) para o processo com PID 1212. Esse sinal promove o término amigável do processo, sem forçar a finalização abrupta.
kill -1 1213
Envia o sinal 1 (SIGHUP) para o processo com PID 1213. Normalmente esse sinal atualiza o processo através da releitura de seus arquivos de configuração.
kill -2 1214
Envia o sinal 2 (SIGINT) para o processo com PID 1214, que interrompe o processo como a combinação de teclas [CTRL]+[C].
killall -3 httpd
Envia o sinal 3 (SIGQUIT) para o programa httpd (Apache) fechando-o.
killall -9 firefox
Envia o sinal 9 (SIGKILL) para o programa firefox. Promove a finalização forçada do processo.
2.3
D I C A
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Todos os sinais possíveis de envio podem ser vistos usando-se a opção -l nos comandos kill e killall.
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis programa quando iniciado definem normalmente toma o foco da entrada ouobjeto saída constituem padrão (atributos)Um definidas pela classe. Os métodos o comportamento de um em um objeto. Isto é importante, denota que um método pertence cada objetojá da em segundo (respectivamente stdinpois e stdout), então para iniciar uma programa plano, basta o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que utilizar & no final da linha de comando. Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um Ele ganhará, além do seu PID, um identificador chamado job, que servirá para posterior objeto pode ter que mostrar um comportamento particular invocando uma manipulação do seu plano. operação apropriada que foi definida no objeto. Em Java, isto é feito pela comando &
chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da BG – Envia um execução pausado) para mensagem, o método a serprograma invocado e osem argumentos para o(ou método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
o segundo plano 57
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 65
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano (background). Após= o"2001"; envio, o programa ganha carro1.modelo= "fusca"; carro1.cor = "prata"; Sintaxe: bg [numero_job]
um job.
FG – Traz um programa em segundo plano para o primeiro (foreground). Sintaxe: fg [numero_job]
JOBS – Exibe todos os jobs existentes no sistema. Sintaxe: jobs Figura 2.4 – Layout Memória após inicialização Se houver somente um programa (job) sendo executado, pode-se utilizar bg e fg sem //criando novo alias argumentos. Para utilizar o nome do programa ao invés do job é necessário preceder o nome com Carro possibilidade carro2 = carro1; %?. Outra é utilizar o nome do processo no comando kill, basta que ele seja precedido de %.
Quando um usuário faz logout do sistema é enviado um sinal SIGHUP para todos os processos que ele tenha inicializado, isso altera de certa forma o estado do processo, podendo até finalizá-lo após o logout. Para que isso não ocorra é preciso fazer uso do comando nohup, que mantém o processo até o seu término natural e registra a sua atividade. nohup comando &
Todas as mensagens (saída padrão e saída de erros) são registradas no arquivo nohup.out criado no diretório corrente. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
FREE – Exibe informações sobre a quantidade total e livre da memória principal e swap. Utiliza como fonte o arquivo /proc/meminfo. Sempre que um processo estiver 2.3 Membros de Instância consumindo muita memória, pode-se utilizar esse comando para verificar o estado Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis desse recurso. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Istofree é importante, Sintaxe: [opcao] pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
o seu estado. Dois objetos distintos têm o mesmo estado se suas UPTIME – Mostra informações sobre o tempo de uso ininterrupto do sistema a os variáveis membro e têm 2.3.1 Invocação de Métodos mesmos valores. média Objetos geral de se consumo comunicam de pelarecursos. troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma Sintaxe: uptime operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), Exemplos devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
58
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 66
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Comando Descrição carro1.modelo= "fusca"; vi texto.txt & Inicia enviando para segundo plano o comando vi texto.txt. carro1.cor = "prata"; jobs Mostra todos os jobs do sistema. bg 1
Envia para segundo plano um programa cujo job seja 1.
fg 1
Traz para primeiro plano um programa cujo job seja 1.
fb %?vi
Traz para primeiro plano o programa vi sem a especificação de seu job. Caso haja mais de um comando vi em segundo plano retornará erro.
kill -9 %vi
Finaliza abruptamente o programa vi.
nohup wget ftp://teste.net/arq.bz2 &
Mantém o comando wget ftp://teste.net/arq.bz2 em execução mesmo após o usuário que iniciou o comando deslogar-se do sistema. Todas as saídas são registradas no arquivo nohup.out.
uptime//criando
FiguraMostra 2.4 – Layout Memória o tempo deapós usoinicialização ininterrupto
novo alias Carro carro2 = carro1;
do sistema e o consumo médio de recursos. Load average mostra o se o sistema está sendo muito exigido.
5.1. MODIFICAÇÃO DA PRIORIDADE DE EXECUÇÃO DE PROCESSOS Os processos podem assumir prioridades de processamento que vão de 19 a -20, sendo a primeira é a prioridade mais baixa e a segunda é a mais alta. Esse números são conhecidos como números nice. A prioridade padrão de lançamento de um processo é 0 (zero). Somente o usuário root pode aumentar a prioridade dos processos, o que significa reduzir o número nice. NICE – Esse comando executa outros comandos atribuindo a eles uma Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto determinada prioridade. 2.3
Sintaxe: nice [-n prioridade] comando Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe.aOsprioridade métodos definem comportamento um RENICE – Modifica de ocomandos em deexecução. Pode alterar a em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. prioridade de processos por PID, GID e por nome de usuário. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm renicepor prioridade [[-p pidda…] [-g pgrp …] [-u usuario]] éSintaxe: compartilhada todas as instâncias classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Exemplos Objetos se comunicam pela troca de mensagens, isto significa que um Comando Descrição objeto pode ter que mostrar um comportamento particular invocando uma nice -n apropriada 5 vi texto.txt Inicia o comando vi texto.txt com aisto prioridade operação que foi definida no objeto. Em Java, é feito5. pela chamada de um método em um objeto usando o operador binário "." para (ponto), renice -5 -p 1215 Muda a prioridade do processo de PID 1215 -5. devendo especificar a mensagem completa: o objeto que é o recebedor da renice 20 -g secretaria Altera a prioridade dos processos iniciados por qualquer membro do grupo secretaria mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 59 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 67
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected]| (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; para 20. carro1.modelo= "fusca"; renice -1 -u root Modifica a prioridade de todos os processos lançados pelo usuário root para -1. carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
60
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 68
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; ABORATÓRIO carro1.cor = "prata";
5.2. L
Passo 1) Visualize de forma paginada a árvore de processos do sistema exibindo os respectivos PIDs com o comando pstree. pstree -p | less
Passo 2) Abra o comando top para monitorar em tempo real a atividade do sistema. Em seguida, ainda com o top aberto, inicie o firefox para observar sua atividade. top Figura 2.4 – Layout Memória após inicialização firefox //criando novo alias Passo 3) Use o comando pidof para visualizar o PID Carro carro2 = carro1;
compare com o PID visto no top.
do firefox. Obs.:
pidof firefox-bin
Passo 4) Mate o processo referente ao firefox com o comando killall. killall -9 firefox-bin
Passo 5) Inicie o firefox, o vi e a calculadora de linha de comando, todos em segundo plano, e use o comando jobs para a visualização dos seus números job. firefox & vi & bc & jobs Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Passo 6) Trazer cada um dos processos em segundo plano para o primeiro. 2.3
fg job_do_firefox
fg job_do_vi Membros de Instância
fg job_do_bc Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem 7) Verifique a quantidade de pertence memória livre no sistema em megabytes e objeto. IstoPasso é importante, pois denota que um método a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que o tempo em ele está funcionado ininterruptamente. Dois objetos distintos têm é compartilhada free por -m todas as instâncias da classe. uptime
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
61
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 70
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS carro1.cor = "prata";
5.3. E
• Os comandos ps, top e pstree possuem uma estreita relação, mas no entanto possuem suas diferenças. Faça uma tabela comparativa entre eles com exemplos detalhados. • Tanto o comando kill quanto killall tem a mesma finalidade: enviar sinais para processos. Qual a diferença entre eles. • Relacione em um quadro os principais sinais que são enviados para os processos. Figura 2.4 – Layout Memória após inicialização
• //criando Explique novo o resultado da linha de comando killall -1 sshd. alias = carro1; • Carro Comocarro2 se inicia um comando em segundo plano (background) e como é feito o retorno dele para o primeiro plano (foreground)?
• Qual a diferença entre o job e PID de um processo? • O arquivo /proc/meminfo é consultado para retornar a saída de qual comando? Diga uma situação prática onde esse comando seria importante. • O que se pode deduzir de um servidor que possui um valor de uptime alto? • Os comandos nice e renice se relacionam com a prioridade dos processos. Qual a diferença entre eles? Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
62
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 71
Linux System LinguagemAdministration de Programação Java
Este material não pode serem distribuído. Curso Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
6. BUSCA EM ARQUIVOS TEXTO COM EXPRESSÕES REGULARES Uma expressão regular (regex) fornece uma maneira enxuta e flexível de identificar determinadas combinações de caracteres, como caracteres particulares, palavras ou padrões de caracteres. São escritas numa linguagem formal que pode ser interpretada por um processador de expressão regular, um programa (comando) que examina o texto identificando partes que casem com algum padrão dado. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Expressões Regulares: Caracteres Especiais Carro carro2 = carro1; Caractere Descrição ^
Início de linha.
$
Final de linha.
.
Qualquer caractere.
*
Qualquer sequencia de zero ou mais caracteres.
?
Nenhum ou um único caractere.
[]
Qualquer caractere presente dentro dos colchetes.
GREP – Procura por determinados padrões de texto (regex) dentro de um arquivo. Pode receber sua entrada através da entrada padrão Figura 2.5 – Layout Memória duas variáveis referência(stdin). para o mesmo objeto Sintaxe: grep [opcao] padrao_regex arquivo_texto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um EGREP – Procura por determinados padrões (eregex - expressões regulares em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. estendidas) de texto dentro de um arquivo. Pode receber sua entrada através da classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm entrada padrão (stdin). é compartilhada por todas as instâncias da classe.
É igual ao comando grep -E.
2.3.1 Invocação de Métodos Objetos comunicam pela troca dearquivo_texto mensagens, isto significa que um Sintaxe: egrepse[opcao] padrao_eregex objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da FGREP – Procura por determinados ocorrências de texto mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Sejaesteja um Profissional Aprendendo um que definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
dentro de um arquivo 63
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 72
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; ignorando os padrões regex, mesmo que se forneça caracteres especiais eles não carro1.modelo= "fusca"; serão carro1.cor tratados como= tal. Pode receber sua entrada através da entrada padrão (stdin). "prata";
É igual ao comando grep -F. Sintaxe: fgrep [opcao] padrao_nao_regex arquivo_texto
D I C A
As expressões regulares são importantes no cotidiano do administrador de sistemas e também nos exames da certificação LPIC. Dominá-las é um requisito importante para o sucesso no exame. Exemplos Figura 2.4 – Layout Memória após inicialização
Comando //criando novo alias Carro carro2 = carro1;
Descrição
grep -in 'go' cidades.txt
Procura por ocorrências do padrão go no arquivo cidades.txt, ignora se as ocorrências são maiúsculas ou minúsculas e numera cada linha encontrada.
grep -c 'tux' ~/teste
Retorna a quantidade de linhas onde o padrão tux foi encontrado no arquivo ~/teste.
cat paises.txt | grep -v 'brasil'
Recebe sua entrada do comando cat paises.txt e retorna todas as ocorrências onde o padrão brasil não for encontrado.
fgrep 'brasil' paises_cidades.txt
Busca por ocorrências exclusivas do padrão brasil no arquivo paises_cidades.txt. Dessa forma só serão retornadas as ocorrências onde o padrão brasil for encontrado não servindo brasileiro ou brasiliense.
SED – Procura e substitui padrões de texto (regex) dentro de um arquivo. Pode Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto receber sua entrada através da entrada padrão (stdin). Sintaxe: sed [opcoes] 'comando padrao_regex' [arquivo_texto]
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Exemplos Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Comando Descrição objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu /etc/inittab. estado. Elimina (comando d) asdolinhas de comentários do arquivo classe. Porém não devemos confundir isto com a implementação método, que sed '/^#/d' /etc/inittab Dois objetos distintos têm Na verdade essas linhas são as que se iniciam (^) com #. é compartilhada por todas as instâncias da classe. sed 's/tty/ttyS/g' /etc/inittab
mesmo se suas Substitui (s) as linhas onde são encontradas oopadrão ttyestado pelo padrão variáveis membro têm os ttyS em todo (g) o arquivo /etc/inittab.
2.3.1 Invocação de Métodos mesmos valores. se comunicam troca Insere de mensagens, isto do significa queantes um da primeira sed -e Objetos '1i Início do arquivo'pela \ o texto “Início arquivo” linha (1i) e apaga > -e '3d' /etc/inittab (d) a linha 3particular do arquivo invocando /etc/inittab. uma objeto pode ter que mostrar um comportamento operação apropriada que foi definida noExecuta objeto.o Em Java, isto texto.txt é feito pela sed -f arq-cmd /etc/inittab sed no arquivo lendo as expressões regulares e os chamada de um método em um objeto usando o operador binário (ponto), comandos a partir do arquivo"." arq-cmd (opção -f). devendo especificar a mensagem completa: o objeto que é o recebedor da Exemplo depara conteúdo de arq-cmd: mensagem, o método a ser invocado e os argumentos o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 64 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 73
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; 2d carro1.cor = "prata"; 5d s/tty/ttyS/d sed '/tty/w sotty.txt' /etc/inittab
Grava (w) no arquivo sotty.txt todas as linhas do arquivo /etc/inittab que contenham o padrão tty.
sed -n -e '/id/p' /etc/inittab
Exibe somente (-n) as linhas do arquivo /etc/inittab que contiverem o padrão id.
O comando sed não substitui o arquivo original, a não ser que seja feito um redirecionamento ( > ) para outro arquivo (ou o próprio arquivo original). No entanto, é preciso ter muita cautela para não prejudicar o funcionamento do sistema através de Figura 2.4 – Layout Memória após inicialização algum erro. //criando novo alias Carro carro2 = carro1; D I C A
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
65
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 74
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO "fusca"; carro1.cor = "prata";
6.1. L
Esse laboratório tem o objetivo de mostrar o funcionamento das expressões regulares (regex) em comandos que a suportam. Vamos utilizar o arquivo /etc/passwd como alvo da atividade. 1) Procurar pelo usuário root dentro do arquivo. grep 'root' /etc/passwd → Observe que a saída do comando nos trouxe duas ocorrências: do usuário root e operator, pois este último possui o /root como diretório home. Figura 2.4 – Layout Memória após inicialização
2) Para corrigir essa saída e trazer somente o termo root no início da linha. //criando novo alias Carro = carro1; grepcarro2 '^root' /etc/passwd
3) Trazer os usuário que possuem o bash como shell padrão. grep 'bash$' /etc/passwd
4) O arquivo passwd não possui linhas em branco, mas supondo que nele haja várias linhas em branco acidentalmente colocadas. Para eliminá-las basta usar ^$ (início de linha, final de linha). grep '^$' /etc/passwd
5) Localizar usuários em que nome comece com a letra B (maiúsculo ou minúsculo). grep '^[Bb]' /etc/passwd
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
6) Procurar usuários cujo nome comece com consoante. 2.3
grep '^[bcdfghjklmnpqrstwvxyz]' /etc/passwd
Membros de Instância
7) Nomes em deverá que a tersegunda letrainstância é vogal. Usamos oOsponto Cada objeto criado sua própria de variáveis valores(caractere das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um individual). em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. grep '^.[aeiou]' /etc/passwd classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as possuam instâncias dadez classe. 8) Linhas que caracteres de comprimento. grep '^..........$' /etc/passwd
2.3.1 Invocação de Métodos Objetos se comunicam pela trocapor de mensagens, istoo significa que um 9) Trocar a palavra bash sh em todo arquivo. objeto pode ter que mostrar um comportamento particular invocando uma sed 's/bash/sh/g' /etc/passwd operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
66
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 75
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS carro1.cor = "prata";
6.2. E
• O que são expressões regulares (RegEx)? • Explique a diferença entre expressões regulares e metacaracteres (Wildcards). • Quais são os comandos mais comuns que utilizam expressões regulares? • Qual a sintaxe do comando sed para substituição de uma palavra em um arquivo texto? Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
67
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 76
Linux System LinguagemAdministration de Programação Java
Este material pode ser em distribuído. Curso não Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
7. EDIÇÃO DE ARQUIVOS COM O VI
Ao iniciar o vi, ele se encontra no modo de navegação, modo utilizado para se percorrer o texto e fornecer comandos de navegação ao longo do texto. Teclas de Navegação
Figura 2.4 – Layout Memória após inicialização
Tecla
Descrição //criando novo alias O, $ Carro carro2 Vai para=o carro1; início da linha / vai para o final da linha. 1G, G
Vai para o início do documento / vai para o final do documento.
(,
Vai para o início da sentença / vai para o final de sentença.
)
w, W
Pula uma palavra / pula uma palavra incluindo a pontuação.
h, j, k, l
Simula as teclas direcionais para Esquerda, Baixo, Cima, Direita respectivamente.
/, ?
Busca termos na direção Cima para Baixo / busca de Baixo para Cima.
i
Aciona o modo de inserção.
a, A
Aciona modo de inserção após o cursor / aciona modo de inserção no final da linha.
o, O
Aciona modo de inserção no início da próxima linha / aciona modo de inserção no início da mesma linha.
s, S
Apaga um caractere e entra no modo de inserção / apaga a linha e entra no modo de inserção.
c
Modifica um item com a inserção de texto.
r
Substitui um único caractere (pressionar sobre o caractere e digitar o outro).
x 2.3
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
um caractere único (semelhante a tecla del em editores gráficos). MembrosApaga de Instância
Cada objeto deverá ter sua própria instância de variáveis dd Os valores das variáveis Apagacriado uma linha. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem y, yy Copia um caractere / copia uma linha. objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. p, P Porém não Cola o conteúdo copiado / cola o conteúdo copiadoque antes do cursor. classe. devemos confundir istoapós comdoa cursor implementação do método, Dois objetos distintos têm é compartilhada por todasa última as instâncias u Desfaz ação. da classe. ZZ
Fecha e salva o documento.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos ZQ Fecha o documento salvar. Objetos se comunicam pelasem troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela modo de em inserção é normalmente habilitado se pressionar chamada deOum método um objeto usando o operador binário "."ao (ponto), INSERT servindo para editar o texto. A tecla é usadadapara sair devendo especificar a mensagem completa: o objeto que éESC o recebedor mensagem, o método a sernavegação. invocado e os argumentos para o método (se houver). voltar para o modo O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo umSeja que esteja definido pelo objeto. com Profissionais
a tecla i, A ou deste modo e
68
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 77
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano "2001"; é acionado ao se teclar : no modo de navegação e serve O modo de=comando carro1.modelo= "fusca"; efetuar buscas,= gravar, sair, executar comandos no shell, alterar configurações do carro1.cor "prata";
para vi, etc.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
69
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 78
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Comandos básicos do vi carro1.modelo= "fusca"; Comando Descrição carro1.cor = "prata"; :! Permite a execução de comando no shell (deve-se informar o comando após a !). :q ou :quit
Sai do arquivo (caso não haja alteração) e fecha o editor.
:q! ou :quit!
Sai do arquivo sem salvar e fecha o editor.
:w, :w!
Salva as alterações feitas no arquivo / salva as alterações de forma forçada.
:wq
Salva o arquivo e sai do editor.
:x ou :e ou :exit
Fecha o arquivo, salva se necessário e sai do editor.
:e!
Fecha o arquivo, salva de forma forçada e sai do editor.
:visual
Volta para o modo navegação. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Há ainda uma versão melhorada do vi chamada vim (Vi Improved). Ele é uma versão mais poderosa e maior em termos de espaço em disco e requisitos de memória do editor de texto vi. Essa versão é mantida como software livre, com algumas cláusulas restritivas, e acompanha a maioria das distribuições Linux da atualidade. Está disponível também para variantes do UNIX, para Windows, Macintosh e outros sistemas operacionais. D I C A
2.3
Fique atento às teclas do quadro Teclas de Navegação, pois elas são o diferencial em questões que envolvem o editor texto vi. Então treine memorize Figura 2.5 – Layout Memóriade duas variáveis referência para oemesmo objeto todas as opções desse quadro.
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
70
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 79
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO "fusca"; carro1.cor = "prata";
7.1. L
Esse laboratório tem o objetivo de testar os comandos do editor de textos vi. 1) Edite um novo arquivo linustorvalds.txt com o texto abaixo, depois salve o conteúdo sem sair do vi. vi linustorvalds.txt
(…) Linus Torvalds pertence a comunidade dos Finlandssvensk, um extrato da populacao representando 6% dos habitantes da Finlandia, que falam sueco. Ele estudou na Universidade de Helsinki. Vive atualmente em Santa Clara, na California, com a sua mulher Tove e suas tres filhas. Atualmente trabalha na Open Source Development Labs (OSDL). (...) Figura 2.4 – Layout Memória após inicialização Wikipedia //criando (http://pt.wikipedia.org/wiki/Linus_Torvalds) novo alias Carro:wcarro2 = carro1;
2) Agora vá para o início do documento e apague as reticências cercadas pelos parêntesis. É preciso estar em modo de navegação. 1G 4x
3) Vá até o final do texto e apague a última linha. G dd
4) Localize, na mesma ordem, as palavras linus, Helsinki, California e extrato. ?Linus /Helsinki /California ?extrato
2.3
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
5) No de edição de próxima linha, digite a linha abaixo novamente e volte Membros de Instância
para oCada modo de navegação/comando. objeto criado deverá ter sua própria
instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um o digitacao da linha abaixo objeto. Isto é importante, pois denota que um método pertence a cada objeto da [ESC] classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas assomente instâncias da 7) Modifique o classe. caractere 6 (de 6%) da terceira
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm linha para 2 e saia do o mesmo estado se suas editor de texto salvando. variáveis membro têm os 2.3.1 Invocação de Métodos r2 mesmos valores. Objetos :wq se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma 8) Entre novamente no no arquivo, a última linha, operação apropriada que foi definida objeto. copie Em Java, isto é feito pelacole-a chamada de umlinha método em um usando o operador binário "." (ponto), da primeira e saia doobjeto arquivo salvando. devendo especificar a mensagem completa: o objeto que é o recebedor da vi linustorvalds.txt G mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
novamente antes
71
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 80
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); yy carro1.ano = "2001"; 1G carro1.modelo= "fusca"; P carro1.cor = "prata"; ZZ
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
72
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 82
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS carro1.cor = "prata";
7.2. E
• O vi possui três modos de funcionamento. Quais são eles e quais são suas diferenças? • Quais outros comandos têm o mesmo efeito que :x? • Em que situação é preciso fazer uma gravação forçada do texto? Qual o símbolo que normalmente é usado para salvar forçado? • Como se salva o documento atual em outro caminho (Salvar Como)? Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
73
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 83
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] da | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
8. MANIPULAÇÃO DE DISCO 8.1. CRIAÇÃO DE PARTIÇÕES E SISTEMAS DE ARQUIVOS O disco rígido pode ser dividido em várias partições para serem disponibilizadas em computadores pessoais. Um disco rígido pode ter até quatro partições primárias, sendo que uma delas pode ser estendida e abrigar várias partições lógicas. Então a partir dessa realidade, pode-se criar vários layouts de disco para as mais variadas situações. Figura 2.4 – Layout Memória após inicialização
//criando alias FDISK – Crianovo e manipula partições no sistema. É o programa padrão para essa Carro carro2 = carro1; finalidade no Linux.
Sintaxe: fdisk [opcao] ou fdisk dispositivo Comando
Descrição
fdisk -l
Lista os dispositivos e as partições existentes no sistema.
fdisk /dev/sda
Entra no modo de manipulação do disco /dev/sda. Uma vez nesse modo vários comandos podem ser fornecidos para manipulá-lo. Comandos do FDISK
p
Lista as partições (semelhante ao fdisk -l digitado fora do aplicativo fdisk).
n
Cria uma nova partição. Muda Figura o código da Memória partição. 2.5 – ID Layout duas variáveis referência para o mesmo objeto
t
2.3
Obs.: os códigos são expressos em valores hexadecimais. Os mais comuns são 82 (swap) e 83 (Linux nativa).
Membros de Instância
Lista osdeverá tipos (códigos ID) de partições conhecidas. Cada objeto criado ter sua própria instância de variáveis d (atributos) definidas pelaExclui classe. Ospartição. métodos definem o comportamento de um uma objeto. Isto é importante, denota um as método pertence q Saipois do fdisk semque gravar alterações feitas. a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que w Sai do fdisk gravando as alterações feitas. é compartilhada por todas as instâncias da classe. l
m
Imprime um menu de ajuda dos comandos do fdisk.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um Ainda hoje é comum encontrar servidores rodando uma em partições com sistema objeto pode ter que mostrar um comportamento particular invocando de arquivos ext2, ele no estando relação operação apropriada quemesmo foi definida objeto. devasado Em Java, istoem é feito pela aos mais novos ext3, chamada de um método em um objeto usando o operador binário "." (ponto), reiserfs e xfs. Estes últimos por sua vez possuem o recurso de journaling o que os devendo especificar a mensagem completa: o objeto que é o recebedor da tornam melhores. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo 74 umSeja que esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 84
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; D é a capacidade de registrar as alterações no disco antes antes mesmo de carro1.cor = "prata"; I Journaling C efetuá-las. Isso pode evitar erros em escritas causados por quedas abruptas no sistema. A
Para converter um sistema de arquivos ext2 em ext3 basta utilizar o comando tune2fs -j dispositivo.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
75
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 85
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Exemplos carro1.modelo= "fusca"; Comando carro1.cor =Descrição "prata"; tune2fs -j /dev/hda Converte o sistema de arquivos ext2 em ext3 de um disco rígido IDE (/dev/hda). tune2fs -j /dev/sda
Converte o sistema de arquivos ext2 em ext3 de um disco rígido SCSI (/dev/sda).
MKFS – Cria sistemas de arquivos em partições. Sintaxe: mkfs [opcao] dispositivo Exemplos Comando mkfs mkfs
Descrição
Figura 2.4 – Layout Memória após inicialização
Cria o sistema de arquivos ext2 na primeira partição (/dev/hda1) do primeiro disco -t ext2 /dev/hda1 //criando novo alias rígido IDE do sistema. Carro carro2 = carro1; Cria o sistema de arquivos ext3 na segunda partição (/dev/sda2) do primeiro disco -t ext3 /dev/sda2 rígido SCSI/SATA do sistema.
mkfs -t reiserfs /dev/sdb3
Cria o sistema de arquivos reiserfs na terceira partição (/dev/sdb3) do segundo disco rígido SCSI/SATA do sistema.
mkfs -t vfat /dev/fd0
Cria o sistema de arquivos vfat na unidade de disco flexível (/dev/fd0).
mkfs -t xfs /dev/fd1
Cria o sistema de arquivos xfs na unidade de disco flexível (/dev/fd1).
Obs.: O mkfs é um front-end para os comandos mkfs.ext2, mke2fs, mkfs.ext3, mkfs.xfs, mkreiserfs, mkdosfs e mkfs.vfat.
MKSWAP – Formata uma partição de swap.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Sintaxe: mkswap [opcao] dispostivo 2.3
Membros de Instância
Cada – objeto terou suaarquivo própria como instância de variáveis SWAPON Ativacriado uma deverá partição swap. (atributos) definidas pela classe. Os métodos definem o comportamento de um Sintaxe: [opcao] dispositivo objeto. Isto éswapon importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. Exemplos
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Comando Descrição 2.3.1 Invocação de Métodos se comunicam pela troca de mensagens, isto significa que um mkswap Objetos /dev/hda1 Formata a partição /dev/hda1 como swap. objeto pode ter que mostrar um comportamento particular invocando uma swapon /dev/hda1 Ativa no sistema a partição de swap /dev/hda1 formatada no exemplo anterior. operação apropriada que foi definida no objeto. Em Java, isto é feito pela swapon -a Ativa as partições especificadas no"." arquivo /etc/fstab. chamada de um método em umtodas objeto usando swap o operador binário (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
76
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 86
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Caso seja preciso especificar manualmente carro1.modelo= "fusca"; basta carro1.cor especificá-la da seguinte forma: = "prata"; /dev/hda1
swap
swap
uma partição swap no /etc/fstab,
defaults
0
0
As partições swap não possuem ponto de montagem. SWAPOFF – Desativa uma partição ou arquivo swap. Sintaxe: swapoff [opcao] dispositivo FSCK – Checa dispositivos e partições que apresentarem erros ou com desligamento Figura 2.4 – Layout Memória após inicialização deve estar desmontado ou incorreto. Para funcionar corretamente o dispositivo montado como somente leitura. //criando novo alias Carro carro2 = carro1;
Sintaxe: fsck [opcao] dispositivo Normalmente quando o fsck não resolve o problema de uma partição ou dispositivo, a última alternativa é utilizar o debugfs. Ele é um depurador interativo para sistema de arquivos ext2fs, ext3fs e ext4fs. Outros comandos como dumpe2fs e tune2fs também podem ser utilizados para trabalhar com esses sistema de arquivos. D I C A
O fsck é um front-end para os aplicativos fsck.ext2 (ou e2fsck), fsck.ext3, fsck.xfs, reiserfsck e dosfsck. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
DF – Exibe o espaço ocupado e disponível no dispositivo ou sistema de arquivos. As opções -h (formato humano) e -T (mostra o tipo dos sistemas de arquivos por 2.3 Membros de Instância dispositivo) são ascriado mais deverá utilizadas. Cada objeto ter sua própria instância de variáveis Os valores das variáveis
(atributos) pela classe. Os métodos definem o comportamento de um Sintaxe:definidas df [opcao] objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo se -s suas DU – Exibe o espaço ocupado por arquivos e/ou diretórios. Utilizado com aestado opção variáveis membro têm os (especifica o de diretório) da sua 2.3.1 Invocação Métodos e -h (formato humano) facilita muito a compreensão mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
saída.
objeto pode ter que mostrar um comportamento particular invocando uma Sintaxe:apropriada du [opcao] operação que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
77
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 87
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = FSTAB "2001"; RQUIVO ETC carro1.modelo= "fusca"; carro1.cor = "prata";
8.2. A
/
/
Serve para que os sistemas de arquivos do sistema sejam montados automaticamente, eles precisam ter uma entrada no arquivo /etc/fstab. Ele possui seis (6) campos. Campos do /etc/fstab Campo
Descrição
Dispositivo
Representa o dispositivo a ser montado automaticamente.
Ponto de montagem
Representa o diretório que responde no sistema a um determinado dispositivo.
É o sistema de arquivos do–dispositivo. Figura 2.4 Layout Memória após inicialização Sistema de arquivos //criando novo Obs.:alias A opção auto é usada para identificar automaticamente o sistema de arquivos. Carro carro2 = carro1; São as opções de montagem do dispositivo:
Opções
rw – representa leitura e escrita. ro – representa somente leitura. noauto – não permite a montagem automática dos sistemas de arquivos do /etc/fstab. users – permite a montagem e desmontagem por usuários comuns. user – permite acesso somente ao usuário que montou o dispositivo. owner – promove a herança das permissões de quem montou ao dispositivo. usrquota – aciona o uso de cotas de usuário. grpquota – aciona o uso de cotas de grupo. remount – remonta dispositivos podendo alterar as suas opções padrão.
dump
Determina se o aplicativo dump irá (valor 1) ou não (valor 0) ser executado no dispositivo.
fsck
Define a ordem de checagem do dispositivo pelo fsck durante o processo de boot. Tem que ser 1 para aFigura partição raiz (/). 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
MOUNT – Faz a montagem manual de dispositivos.
2.3
Membros de Instância
Sintaxe: mount [dispositivo] [ponto_de_montagem] Cada objeto [opcao] criado deverá ter sua própria instância de variáveis
Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, denota que um pertence aComo cada objeto da UMOUNT – Faz a pois desmontagem demétodo dispositivos. parâmetro podeo seu ser estado. utilizado classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm tanto o dispositivo quanto o ponto de montagem. é compartilhada por todas as instâncias da classe.
Sintaxe: umount dispositivo | ponto_de_montagem
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um Exemplos objeto pode ter que mostrar um comportamento particular invocando uma Comandoapropriada que foi definida Descrição operação no objeto. Em Java, isto é feito pela chamada um /dev/hda1 método em um objeto "."com (ponto), mount -tdeext2 /mnt Montausando em /mntoo operador dispositivobinário /dev/hda1 sistema de arquivos ext2. devendo especificar/mnt/pendrive a mensagem completa: o objeto que é o recebedor da mount /dev/sdb1 Monta um dispositivo em /dev/sdb1 em /mnt/pendrive com o sistema de mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 78 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 88
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; arquivos padrão (vfat). carro1.modelo= "fusca"; Funciona desde que haja uma entrada correspondente no /etc/fstab. Também = "prata"; mount carro1.cor /dev/fd0 pode ser utilizado o ponto de montagem ao invés do dispositivo. mount
Exibe os sistemas de arquivos montados.
umount /dev/hda1
Desmonta o dispositivo /dev/hda1.
umount /mnt
Faz o mesmo que o comando anterior.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
79
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 89
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO "fusca"; carro1.cor = "prata";
8.3. L
Esse laboratório tem o objetivo de criar um sistema de arquivos swap em um arquivo. Esse arquivo é automaticamente adicionado ao montante da partição swap. O arquivo de troca ficará disponível somente após o sistema de arquivos que o armazena (ext2, fat32, etc) estar montado. 1) Crie um arquivo chamado nswap vazio de 256Mb de tamanho em /tmp. dd if=/dev/zero of=/tmp/nswap bs=1024 count=256000 Figura 2.4 – Layout Memória após inicialização 2) Formate o arquivo de swap para que o sistema de arquivos seja criado e //criando novo alias disponibilizado para o uso.
Carro carro2 = carro1; mkswap /tmp/nswap
3) Ative o arquivo de troca. com o comando swapon /tmp/troca. swapon /tmp/nswap
4) Confira se o tamanho da memória virtual foi modificado. É importante saber o tamanho antigo da swap. cat /proc/meminfo
2.3
D I C A
ou
free
Podem ser usadas partições de troca e arquivos de troca juntos, sem problema. E caso Figurajá 2.5tenha – Layoutuma Memória duas variáveis referência para o mesmo objeto o seu sistema partição de swap, é recomendável deixar o acesso ao arquivo swap com uma prioridade menor. As prioridades vão de 0 a 32767, quanto maior o número maior será a prioridade.
Membros de Instância
Ex.: swapon -p 0 /tmp/nswap
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
80
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 90
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS carro1.cor = "prata";
8.4. E
• Qual é a quantidade máxima de partições primárias que podem existir em um disco? • Qual o código identificador (ID) de partições swap, linux nativa e linux lvm? • Em termos práticos, o que significa journaling? • O que faz a linha tune2fs -j /dev/hda? • Qual a linha de comando que formata a partição /dev/sdb3 com o sistema de Figura 2.4 – Layout Memória após inicialização arquivos reiserfs? //criando novo alias
• Carro Suponhamos a partição reservada para swap seja /dev/hdd1. Quais são os carro2 = que carro1; comandos responsáveis pela criação dessa partição e pela sua correta ativação? • Comente de maneira explicativa a frase “O fsck é um front-end para os aplicativos fsck.ext2, fsck.ext3, fsck.xfs, reiserfsck e dosfsck”. • Como se cria uma partição ext3 com os comandos mkfs e mke2fs? • O que faz o comando debugfs? Qual o caminho completo para o seu binário? • O que faz os comandos xfs_metadump e xfs_info? • Qual a diferença entre os comandos df -h e du -h? • Dê o significadoFigura de 2.5 cada campo do arquivo /etc/fstab. – Layout Memória duas variáveis referência para o mesmo objeto 2.3
• Como se monta automaticamente a partição /dev/sda2 cujo sistema de arquivos é NTFS no diretório /mnt/wind. Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
81
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 91
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
9. LINKS
9.1. CRIAÇÃO E ALTERAÇÃO DE LINKS FÍSICOS E SIMBÓLICOS Links são arquivos especiais que possuem a finalidade servir como atalho para algum outro arquivo para facilitar o seu acesso. Existem dois tipos de links: Links físicos (hardlinks) e Links simbólicos (softlinks). Hardlinks – Referem-se a um inode do sistema de arquivos. Cada arquivo é um hardlink para o seu próprio inode Figurano 2.4 –sistema. Layout Memória após inicialização //criando novo alias Os Hardlinks somente podem ser criados em um mesmo sistema de arquivos. Não se Carro carro2 = carro1; pode criar hardlinks para diretórios.
O inode identifica o arquivo no sistema de arquivos. Um arquivo pode ser composto por um ou mais inodes, sendo que o primeiro traz informações importantes sobre ele e também a localização dos outros inodes que o compõe.
D I C A
O comando ls com a sua opção -i mostra os inodes dos arquivos listados. O exemplo abaixo mostra uma lista detalhada dos arquivos do diretório /tmp juntamente com seus inodes. Ex.: ls -lai /tmp/ Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Softlinks – São atalhos que podem apontar para qualquer alvo (arquivo e diretório) em qualquer sistema de arquivos. São semelhantes aos atalhos do windows, 2.3 Membros Instância servindo para de facilitar a chamada do nome do arquivo. Eles possuem seus próprios Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis inodes.
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que Exemplos é compartilhada por todas as instâncias da classe. Comando Descrição
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os Cria um link físico para o arquivo teste.txt com o nome de lf_teste.txt. 2.3.1 Invocação de Métodos mesmos valores. ln teste.txt Objetoslf_teste.txt se comunicam pela troca de mensagens, isto significa que um Com o comando ls -i é possível verificar que os dois arquivos possuem o
objeto pode ter que mostrar um mesmo comportamento particular invocando uma inode. operação apropriada que foi definida no objeto. Em Java, isto é feito pela ln -s teste.txt ll_teste.txt Cria usando um link ológico (-s) chamado ll_teste.txt chamada de um método em um objeto operador binário "." (ponto), no diretório atual do arquivo teste.txt. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 82 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 92
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001";Verifique com o comando ls -li que os inodes são diferentes. Observe também carro1.modelo= "fusca"; que aparece a letra l no início das permissões do arquivo, que indica o tipo do carro1.cor = "prata"; arquivo, neste caso, um link lógico.
O tamanho de um link lógico é determinado pela quantidade de caracteres que o caminho do link possui. Neste caso, o tamanho é 9 (que são os caracteres do caminho teste.txt) ln -sf teste.txt ll_teste.txt
Cria um link lógico (-s) chamado ll_teste.txt no diretório atual do arquivo /tmp/teste.txt sobrescrevendo (-f) um eventual link anterior.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
83
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 93
Siga-nos também no Twitter! twitter.com/3waynet
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO "fusca"; carro1.cor = "prata";
9.2. L
Suponha que temos um computador dual boot, ou seja, com dois sistemas operacionais, no nosso caso: Windows e Linux. Windows possui duas partições NTFS: C: para o sistema e D: para os dados. Linux também possui duas partições: swap e /. Queremos ter acesso aos diretórios do Windows na Área de Trabalho do ambiente gráfico do Linux. Para isso vamos montar os diretórios em /mnt (diretório mais apropriado) e criar links para a área de trabalho. Figura 2.4 – Layout Memória após inicialização
//criando alias que 1) Crie onovo diretórios Carro carro2 = carro1;
vão representar as unidades Windows.
mkdir /mnt/winc /mnt/wind
2) Descobrir quais são as partições que representam as unidades C: e D: fdisk -l
(Suponha que a saída nos mostre que C: está em /dev/sda1 e D: em /dev/sda2)
3) Montar as partições Windows nos diretórios anteriormente criados. mount -t ntfs /dev/sda1 /mnt/winc mount -t ntfs /dev/sda2 /mnt/wind
4) Criar os links para a Área de Trabalho. ln -s /mnt/wincFigura ~/Desktop/SistemaWindows 2.5 – Layout Memória duas variáveis referência para o mesmo objeto ln -s /mnt/wind ~/Desktop/DadosWindows
2.3
Membros Instância 5) Já sede pode acessar os diretórios ~/Desktop/SistemaWindows e
2.3.1
D as linhas descritas abaixo no arquivo /etc/fstab. I InvocaçãoCde Métodos ntfs defaults isto 0 significa 0 Objetos Ase /dev/sda1 comunicam /mnt/winc pela troca de mensagens,
Cada objeto criado deverá ter sua própria instância de variáveis Os valores ~/Desktop/DadosWindows, pois os mesmos já representam as unidades C: edas D:variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem respectivamente do pois Windows. objeto. Isto é importante, denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada porPara todasque as esse instâncias classe. layout da também funcione após a reinicialização do sistema, basta colocar que um /dev/sda2 /mnt/wind ntfs defaults 0 0 objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
84
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 95
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS carro1.cor = "prata";
9.3. E
• Quais as diferenças entre Hardlink e Softlink? • Por que o link físico tem o mesmo inode do arquivo original? • Qual a sintaxe do comando ln para criação de links físicos e lógicos.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
85
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 96
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] da | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
10. INICIALIZAÇÃO DO SISTEMA BIOS → MBR(lilo/grub) → KERNEL → INIT → GETTY → LOGIN → SHELL
Quando o computador é ligado o primeiro programa a ser carregado é o SETUP que está no BIOS (Basic Input Output System). Este programa testa o funcionamento dos todos dispositivos, discos rígidos, memória, processadores, CD/DVD, etc. Depois desse teste, o BIOS carrega o Gestor de Início, localizado nos primeiros 1024 bytes do Figura 2.4 – Layout Memória após inicialização MBR (Master Boot Record). O MBR é responsável por carregar o Kernel do sistema //criando novo alias operacional escolhido ou encaminhar para quem o possa fazer. Carro carro2 = carro1; Ao carregar um gestor de início, ele passa por duas fases, a primeira é executar o setor de boot para permitir a inicialização de vários sistemas operacionais. A segunda é carregar a imagem do kernel escolhido. Depois que o Kernel é carregado, ele assume o controle do processo de inicialização, tendo a responsabilidade de detectar os dispositivos de hardware suportados e carregar seus módulos. Em seguida, ele passa o controle para o processo init que irá montar os sistemas de arquivos que o Kernel suporta, inicializará os serviços básicos da máquina (mouse, rede, teclado, etc) e outros que façam parte inicialização (http, smtp, samba, etc). Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Figura 10: Relação entre o Kernel, hardware e Objetos se comunicam pela troca de mensagens, software isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela Depois do init o getty executado parabinário disponibilizar chamada de um método em um objeto éusando o operador "." (ponto), devendo mensagem completa: objeto quegdm é o recebedor da como especificar mingettya (modo texto), kdmo (KDE), (GNOME) mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo umSeja que esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
as interfaces de login, ou xdm (Xfree86). A
86
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 97
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; interface de login aguarda a intervenção do usuário através do seu nome de usuário e carro1.modelo= "fusca"; senhacarro1.cor para poder =liberar o acesso ao sistema, obviamente depois da checagem dos "prata";
arquivos de autenticação /etc/passwd e /etc/shadow. Se bem sucedido, outros arquivos serão lidos – /etc/profile, ~/.bash_profile e ~/.bashrc. D I C A
O getty é o segundo dos três programas (init, getty e login) usados pelo sistema para permitir o acesso dos usuários. Ele é iniciado pelo processo init para: 1) Abrir as linhas tty e configurar o seu modo de funcionamento; 2) Imprimir a identificação de acesso ao sistema e receber o nome do usuário; 3) Iniciar o processo login para o usuário.
Arquivos lidos após a autenticação
Figura 2.4 – Layout Memória após inicialização
Arquivo Descrição //criando novo alias caminhos de binários-comandos (PATH), manuais das ferramentas (MANPATH), Carro carro2Indica = carro1; configuração de permissões, identificação do usuário e do grupo. Ele é indicado para passar /etc/profile caminhos de outras ferramentas necessárias a todos os usuários, evitando a configuração para cada usuário. ~/.bash_profile
É o arquivo pessoal que possui os caminhos dos binários de usuário e/ou ferramentas, scripts que devem ser executados somente para aquele usuário.
~/.bashrc
Armazena os aliases de comandos pessoais do usuário.
Após a execução sequencial desses três arquivos é então disponibilizado um interpretador de comandos (SHELL).
10.1. INSTALAÇÃO E CONFIGURAÇÃO DO GESTOR DE INÍCIO Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
LILO (LInux Loader) – é um gestor de início antigo mas ainda muito utilizado no Linux. Permite a configuração tanto por arquivos quanto por parâmetro 2.3 Membros dedaInstância na inicialização máquina.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) Seu definidas pela classe. Os métodos definem o comportamento de um arquivo de configuração é /etc/lilo.conf em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. Esse possui todas asa informações necessárias classe. Porém nãoarquivo devemos confundir isto com implementação do método, quepara a inicialização da Dois objetos distintos têm como as aspartições émáquina, compartilhada por todas instâncias daativas, classe. local para uma possível atualização do lilo,
o mesmo estado se suas
localização das diferentes imagens de kernel, arquivo que será apresentado para o variáveis membro têm os 2.3.1 Invocação de Métodos usuário ao iniciar o lilo, entre outras funções. mesmos valores.
Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma 10.1.1. apropriada CONFIGURAÇÃO LILOno objeto. Em Java, isto é feito pela operação que foiDO definida chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da Ediçãoa do /etc/lilo.conf: mensagem,1) o método ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
87
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 98
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
1 2 3 4 5 6 7 8 9 10 11 12 13
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= Instruções do lilo.conf "fusca"; Descrição carro1.cor = "prata"; boot=/dev/hda Informa a partição onde está instalado o setor de boot (MBR). map=/boot/map install=/boot/boot.b lba32 message=/boot/message timeout=100 image=/boot/vmlinuz root=/dev/hdaX label=linux read-only other=/dev/hdaY label=windows table=/dev/hda
Utilizado para gravar o setor de boot, armazena as opções de boot. Armazena os dados anteriores da MBR. Permite que o boot do linux seja instalado após o cilindro 1024. Mensagem que aparecerá para o usuário, ao carregar o lilo. Tempo (em décimos de segundos) para carregar o S.O. padrão. Indica onde se encontra a imagem do kernel do linux. Indica a partição X onde está montado o diretório raiz ( / ) do sistema Nome que será apresentado no momento da seleção da imagem. Para garantir a consistencia e integriade do disco, caso rode o fsck. Indica a partição Y de outro S.O instalado. Nome que será apresentado no momento da seleção do S.O. Indica a partição onde está armazenada a tabela de partições.
Figura 2.4 – Layout Memória após inicialização 2) Criação do arquivo /boot/message com a lista de sistemas operacionais que o LILO vai manipular. //criando novo alias
Carro carro2 = carro1;
3) Aplicar as alterações feitas no setor de boot com o comando lilo (/sbin/lilo). 10.1.2. CONFIGURAÇÃO DO GRUB O GRUB (GRand Unified Bootloader), assim como o LILO é um gerenciador de boot. Ele possui algumas vantagens sobre o LILO e é por isso que a maioria das distribuições o estão utilizando. Ele acessa diretamente o sistema de arquivos e carrega o kernel, com isso não é preciso ficar reinstalando o gerenciador no MBR toda vez que se fizer alterações. Possui uma menu interativo, bem ao estilo do bash, que permite ao usuário controlar Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto todo o gerenciador. Através desse menu é possível editar as instruções pré-definidas na configuração e alterar a forma como se faz o boot. 2.3
Membros de Instância É possível proteger com senha tanto para a edição da linha de boot de um
Cada objeto criado deverá ter sua própria instância de variáveis sistema quanto a inicialização desse sistema. (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. IstoSuporta é importante, denotavia queoum método pertence bootpois remoto protocolo TFTP.a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que O arquivo configuração é compartilhada por todasde as instâncias da classe.do GRUB geralmente é
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm /boot/grub/menu.lst. o mesmo estado se suas Muitas distribuições possuem esse arquivo como um link para /etc/grub.conf, nesses variáveis membro têm os 2.3.1 Invocação de Métodos casos, tanto faz editar um ou outro, pois surtirão o mesmo efeito. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma Instruções do menu.lst operação apropriada que foi definida no objeto. Em Java, isto é feitoDescrição pela Define os sistema padrão (no caso 1 default=0 chamada de um método em um objeto usando o operador binário "." (ponto), RedHat). devendo especificar a mensagem completa: o objeto que é o recebedor dade espera (em segundos) para a Tempo 2 timeout=5 escolha do sistema. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 88 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 99
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; splashimage=(hd0,4)/boot/grub/splash.xpm.gz carro1.modelo= "fusca"; title Red Hat Enterprise Linux Server (2.6.18-92.1.1.el5) carro1.cor = "prata";
Localização no disco da imagem de fundo do Grub. 4 Título do primeiro sistema operacional. Caminho onde é encontrada a partição root (hd0,3) 5 raiz do sistema. kernel /boot/vmlinuz-2.6.18-92.1.1.el5 ro root=LABEL=/1 Caminhos nde é encontrada a imagem do 6 rhgb quiet Kernel. Caminho onde é encontrada a imagem initrd /boot/initrd-2.6.18-92.1.1.el5.img 7 Initrd. 8 title Windows Título do segundo sistema operacional. Partição não será montada nem verificada pelo gerenciador. Fica sob a rootnoverify (hd0,1) 9 responsabilidade do outro sistema operacional. Faz a leitura e a execução do primeiro setor da partição especificada na linha 9, chainloader +1 10 ou seja, chama o gerenciador de boot do Figura 2.4 – Layout Memória após inicialização outro sistema. 3
//criando novo alias Carro carro2 = carro1;
O GRUB trata as partições de um modo diferente que o Linux, por exemplo, ao invés de usar /dev/hda1, ele usa (hd0,0). A sua nomenclatura não diferencia dispositivos IDE, SCSI ou SATA, todos seguem o mesmo padrão, como na tabela abaixo. D I C A
O GRUB detecta e identifica os discos rígidos automaticamente, já fazendo a conversão da nomenclatura. O arquivo /boot/grub/device.map contém a equivalência feita automaticamente pelo sistema, em caso de dúvidas, basta visualizar seu conteúdo. Nos exames LPI é muito comum a ocorrência de questões que abordam as diferenças de nomenclatura entre GRUB e LILO.
Nomenclatura GRUB Dispositivo Equivalente no GRUB Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto /dev/hda1 (hd0,0) - Partição 1 da IDE Primária Master /dev/hda2 (hd0,1) - Partição 2 da IDE Primária Master /dev/hdb1 (hd1,0) - Partição 1 da IDE Primária Slave 2.3 Membros de Instância /dev/hdc3 - Partição 3 daprópria IDE Secundária Master Cada objeto criado(hd2,2) deverá ter sua instância de variáveis Os valores das variáveis /dev/hdd2 (hd3,2) Partição 2definem da IDE Secundária Slave (atributos) definidas pela classe. Os -métodos o comportamento de um em um objeto constituem /dev/sda1 objeto. Isto é importante, pois(hd0,0) denota que um1método pertence a cadaMaster objeto da - Partição da SCSI/SATA Primária o seu estado. classe. Porém não devemos confundir isto com2 adaimplementação do método, /dev/sda2 (hd0,1) - Partição SCSI/SATA Primária Master que Dois objetos distintos têm
é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm Há umdearquivo do sistema, é o os 2.3.1 Invocação Métodos de log que registra todo o processo de boot Objetos se comunicam pela de trocafonte de mensagens, istopara significa um /var/log/dmesg, que serve de dados o que comando de mesmos mesmovalores. dmesg
objeto pode ter que particular invocando uma (/bin/dmesg) quemostrar exibe um todocomportamento esse processo já citado. O syslogd através do arquivo operação apropriada que foi definida no objeto. Em Java, isto é feito pela /var/log/messages também provê informações úteis sobre o processo de boot. chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 89 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 100
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO"fusca"; carro1.cor = "prata";
10.2. L
O objetivo desse laboratório é mostrar como se recupera o gerenciador de boot de um sistema Linux. GRUB Normalmente quando se perde o GRUB a única maneira de ter acesso ao sistema novamente é através de uma mídia de boot, pode ser um LiveCD, pendrive ou qualquer mídia inicializável. O importante é obter acesso ao shell em modo de recuperação. Figura 2.4 – Layout Memória após inicialização 1) Após ter tido acesso ao interpretador de comandos, acesse o menu //criando novo alias interativo GRUB. Carrodo carro2 = carro1;
grub install
Grub.
2) Localize o arquivo stage1. O sinal de maior abaixo representa o shell do > find /boot/grub/stage1 (hd0,0)
→ Esse comando retornará a localização do arquivo stage1.
3) Informe ao Grub onde está a raiz do sistema. > root (hd0,0) (hd0)
4) Agora grave novamente o Grub no MBR informando o disco rígido onde ele está localizado. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto setup (hd0)
5) Basta reiniciar a máquina para ter novamente a tela do Grub e o acesso a todos Cada os seus sistemas objeto criado operacionais. deverá ter sua própria instância de variáveis Os valores das variáveis
2.3
Membros de Instância
(atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. IstoLILO é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto écom a implementação do requer método, aque A recuperação do LILO simples e também obtenção de shell para atêm Dois objetos distintos é compartilhada por todas as instâncias da classe.
digitação dos comandos.
o mesmo estado se suas membro têm os 2.3.1 Invocação de Métodos 1) Monte a partição do disco onde se encontram os variáveis arquivos de boot mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um (suponhamos /dev/sda1).
objeto pode mount ter que mostrar /mnt um comportamento particular invocando uma /dev/sda1 operação apropriada que foi definida no objeto. Em Java, isto é feito pela 2)um Faça o confinamento desse diretório chamada de método em um objeto usando o operador montado. binário "." (ponto), chroot /mnt devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
90
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 101
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano "2001"; de instalação do LILO. 3) Execute =o utilitário carro1.modelo= "fusca"; lilo carro1.cor = "prata";
4) Agora basta reiniciar o sistema, pois o LILO foi re-escrito no MBR. D I C A
Pode ocorrer de algum dos arquivos stage serem apagados do disco por algum acidente. Nesse caso, devemos recorrer à ferramentas avançadas da sua própria distribuição como o rescue mode, do Debian, ou o linux rescue, do Red Hat, para poder recuperar o gerenciador de boot.
10.3. EXERCÍCIOS
Figura 2.4 – Layout Memória após inicialização
//criando novo alias
• Carro Descreva com detalhes qual é a sequencia de inicialização do sistema. carro2 = carro1; • O que aconteceria caso as informações contidas no Master Boot Record (MBR) fossem perdidas? • Após a carga do Kernel, qual é o primeiro processo que é inicializado? Qual a função desse processo? • Durante o processo normal de login quais são os arquivos consultados para validar ou não o acesso ao sistema? • Após o processo de autenticação são executados alguns arquivos de configuração, quais são eles?
2.3
Figura 2.5 – Layout Memória duas variáveis de referência para odo mesmo objeto e seus respectivos • Quais são os principais gerenciadores boot Linux arquivos de configuração? Como é feita a aplicação das configurações em cada um deles?
Membros de Instância
objeto um criado deverá ter de suaarmazenamento própria instância de variáveis valoresmaster das variáveis • Cada Suponha dispositivo IDE, instaladoOscomo na (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem IDE secundária e tendo três partições. Como o LILO e o GRUB identificaria objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. cadanão uma dessas partições? classe. Porém devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
91
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 102
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] da | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
11. MANUAIS E DOCUMENTAÇÃO Permitem obter informações sobre os comandos no Linux. As páginas de manual são agrupadas em seções (acompanhe na tabela abaixo) e os comandos certamente se encaixarão em alguma(s) delas. Não é necessário conhecer o número de uma seção específica de um comando para obter ajuda sobre ele, normalmente a seção padrão é mostrada, mesmo que ele esteja em mais de uma. Seções do Manual Seção
Descrição
1
Programas do usuário.
2 3
Figura 2.4 – Layout Memória após inicialização
Rotinas do sistema Unix e C. //criando novo alias Rotinas de bibliotecas da linguagem C. Carro carro2 = carro1;
4
Arquivos especiais (normalmente encontrados em /dev).
5
Convenções e formatos de arquivos.
6
Jogos.
7
Diversos (macros textuais etc).
8
Procedimentos administrativos (daemons).
MAN – Exibe seções de manuais disponíveis para os comandos. Sintaxe: man [opcao] [secao] item Exemplos
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Comando
Descrição
man ls
Mostra a página de manual padrão para o comando ls.
2.3 de Instância man 7 Membros man Mostra a página de manual da seção 7 do comando man.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis man -wa cp a localizações das páginas de manual disponíveis, em vez de exibi-las, para o comando cp. (atributos) definidas Exibe pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém nãoDdevemos confundir isto com a implementação do método, que Dois objetos distintos têm I todas as instâncias da classe. é compartilhada por Normalmente os arquivos dos manuais estão localizados em /usr/man/ e /usr/share/.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. se os comunicam pela troca mensagens, comando. isto significaÉ que INFO Objetos – Mostra informativos sobrededeterminado maisumcompleto que o man e seus objeto pode ter que mostrar um comportamento particular invocando uma arquivos podem ser encontrados em /usr/share/info/. C A
operação apropriada que foi definida no objeto. Em Java, isto é feito pela Sintaxe:deinfo chamada um[opcao] método [item] em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo umSeja que esteja definido pelo objeto. com Profissionais
92
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 103
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; WHATIS – Procura pela ocorrência exata de uma determinada carro1.modelo= "fusca"; que leva seu próprio nome (whatis). carro1.cor = "prata";
palavra chave no banco de dados
Sintaxe: whatis palavra_chave
APROPOS – Procura pela ocorrência aproximada de uma determinada palavra chave no banco de dados whatis. Sintaxe: apropos palavra_chave Exemplos Comando
Descrição
whatis man
Procura na base de dados whatis pela ocorrência exata da palavra man.
apropos man
Procura na base de dados whatis pela ocorrência Figura 2.4 – Layout Memória apósaproximada inicialização da palavra man.
//criando novo alias Carro = carro1; para Um carro2 lugar interessante
encontrar documentações como FAQ, HOWTO's, Readme, ChangeLog, Exemplos e Guia de usuário/administrador é o /usr/share/doc/. Os HOWTO´s mais atualizados podem ser encontrados no diretório do projeto de documentação do GNU/Linux (LDP – Linux Documentation Project) em ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/ ou traduzidos para o Português pelo LDP-BR em http://www.tldp.org/projetos/howto/traduzidos.php.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
93
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 104
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO"fusca"; carro1.cor = "prata";
11.1. L
O objetivo desse laboratório é mostrar como se procura ajuda no momento da instalação via código fonte de um software. Escolhemos o software Wine (versão 1.1.38, mas o processo é semelhante para outras versões). 1)
A primeira coisa é fazer o download. wget http://downloads.sourceforge.net/project/wine/Source/wine-1.1.39.tar.bz2
2)
Descompactar e entrar no diretório resultante. tar jzvf wine-1.1.39.tar.bz2 Figura 2.4 – Layout Memória após inicialização
//criando novo alias cd wine-1.1.39 Carro carro2 = carro1;
3) Estando dentro diretório é que vamos procurar a ajuda (normalmente em inglês) nos arquivos README ou INSTALL. less README
4) Então preste atenção ao que está escrito nas seções prerequisites, compilation e setup, pois são nelas que as ajudas mais importantes se encontram. 5) A instalação prosseguiria normalmente, mas este não é o intuito do laboratório. Continuaremos a partir deste ponto quando o assunto for a compilação. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
94
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 105
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS= "prata"; carro1.cor
11.2. E
• O comando man busca informações de quais diretórios? Como está organizada a estrutura de cada um deles? • As páginas info são mais completas que os manuais. Qual diretório fornece as suas informações? Como está organizado esse diretório? • Diferencie os comandos whatis e apropos usando exemplos. • Quais são os lugares e/ou meios que você usaria para procurar ajuda sobre o Figura 2.4 – Layout Memória após inicialização Linux? //criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
95
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 106
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] da | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
12. ADMINISTRAÇÃO DE USUÁRIOS E GRUPOS
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 11: Gerenciamento de usuários e grupos
O Linux, como a maioria dos sistemas operacionais modernos, é multiusuário, então para que ele seja utilizado por várias pessoas é necessário fazer o gerenciamento de usuários e grupos. USERADD – Cria os usuário do sistema. Somente o super usuário pode usá-lo. Esse comando não cria a senha, é preciso utilizar outro comando para isso. Sintaxe: useradd [opcao] nome_usuario Principais opções Opção
Descrição
-c comentario
Define um comentário para a conta de usuário.
-d diretorio
Define o caminho do diretório pessoal do usuário.
2.3 -g
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Membros de Instância grupo Define o grupo principal do usuário.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis -G grupo1, grupo2 Define grupos secundários usuário. (atributos) definidas pela classe. Os os métodos definem odo comportamento de um em um objeto constituem -u UID o UID Não informara um UID existente. objeto. Isto é importante, poisDefine denota que do umusuário. método pertence cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação que -s shell Define o shell do usuário. Deve constardo no método, arquivo /etc/shells. Dois objetos distintos têm é compartilhada por todas as instâncias da classe. -p senha
Define uma senha para o usuário. Informá-la entre aspas.
o mesmo estado se suas variáveis membro têm os mesmos valores.
-e data 2.3.1 Invocação de MétodosDefine uma data de validade para a conta de usuário. Objetos se comunicam pela troca dedomensagens, isto significa -k /etc/skel Copia o conteúdo diretório modelo /etc/skel/.que um objeto pode ter que mostrar um comportamento particular invocando uma -m Cria o diretório pessoal se ele não existir. Opção padrão em /etc/login.defs do RedHat. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da PASSWD – Cria ou altera a senha do usuário. Usuário comum somente pode mudar a mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo 96 umSeja que esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 107
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; própria senha. carro1.modelo= "fusca"; carro1.cor = "prata"; Sintaxe: passwd [opcao] [nome_usuario]
CHFN – Altera o campo comentário do arquivo /etc/passwd de um determinado usuário. Sintaxe: chfn [nome_usuario] CHSH – Altera o campo shell do arquivo /etc/passwd de um determinado usuário. Sintaxe: chsh [nome_usuario]Figura 2.4 – Layout Memória após inicialização //criando novo alias Carro carro2 = carro1;
USERDEL – Apaga uma conta de usuário. A opção -r exclui o diretório pessoal do usuário. Sintaxe: userdel [opcao] nome_usuario
D I C A
Ao se executar os comandos supracitados vários arquivos são alterados direta ou indiretamente: /etc/passwd, /etc/shadow e /etc/group.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
12.1. ARQUIVO /ETC/PASSWD 2.3
Membros de Instância Contém as informações de contas de usuário do sistema. É composto de
Cada objeto criado deverá ter sua instância Os valores das variáveis sete campos separados porprópria dois pontos (:).de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que umdiretamente método pertence cada objeto da qualquer É possível manipular o aarquivo com editor, mas o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que recomenda-se o uso do vipw (uma variante do vi), pois ele bloqueia Dois objetos distintos otêm é compartilhada por todas as instâncias da classe.
arquivo enquanto está sendo feita a alteração.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um Campos do /etc/passwd objeto pode ter que mostrar um comportamento particular invocando uma Campo operação apropriada queDescrição foi definida no objeto. Em Java, isto é feito pela 1 Login nome identifica a conta de usuário. chamada de um métodoOem umque objeto usando o operador binário "." (ponto), 2 Senha Contém a senha do usuário. Se x significa a senha criptografada está em /etc/shadow. devendo especificar a mensagem completa: o objeto que é que o recebedor da 3 UID É o número que identifica unicamente o usuário no sistema. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 97 umSeja que um esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 108
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
4 5 6 7
//atribuindo valor a variável referência Carro carro1 = new Carro(); GID É o"2001"; número de identificação do grupo principal do usuário. carro1.ano = Comentário Essa descrição do usuário é opcional. carro1.modelo= "fusca"; Diretório HOME = Especifica o diretório pessoal do usuário. carro1.cor "prata"; Shell Indica o Shell inicial do usuário, se estiver vazio, significa /bin/sh (link para /bin/bash).
12.2. ARQUIVO /ETC/SHADOW É usado em complemento ao /etc/passwd, que tem permissões (-rw-r--r--) frágeis, que por ser de leitura de todos, permite que senhas criptografadas sejam passíveis de decodificação. Suas permissões variam de acordo com a distribuição, mas em qualquer uma delas Figura deverá ser bem restritiva. Ele é composto de nove 2.4 – Layout Memória após inicialização campos separados por dois pontos (:). //criando novo alias Carro carro2 = carro1;
Esse arquivo pode ser editado por qualquer editor, assim como citado no caso do /etc/passwd, mas recomenda-se usar vipw -s para assegurar que não haja edições concorrentes desse arquivo, o que poderia acarretar inconsistência no seu conteúdo.
Campos de /etc/shadow Campo 1
Nome de usuário
Descrição Nome de usuário (normalmente o mesmo em /etc/passwd). Senha criptografada numa sequência de 13 caracteres. Se em branco, permite login sem senha, se asterisco (*) indica que a conta está bloqueada. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2
2.3
Senha criptografada
Atualmente é padrão a senha estar em /etc/shadow, mas antigamente ela era armazenada no próprio /etc/passwd.
Membros de Instância
É possível usar o comando pwconv para converter senhas de passwd para shadow. O
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis comando pwunconv faz o caminho inverso. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Dias de alteração 3 Número diasum em método que a senha foi criada (desde 01/01/1970). objeto. Isto é importante, pois denotadeque pertence a cada objeto da senha o seu estado. classe. Porém não devemos confundir isto com a implementação dosermétodo, quenovamente. Se zero (0) indica Número de dias até que uma senha possa modificada Dois objetos distintos têm 4 Dias mínimo haver tempo de espera. é compartilhada por todas as não instâncias da classe.
o mesmo estado se suas os
5 Dias alteração Número de dias em que a senha deverá ser alterada. Padrão 274 anos (ou 99999). variáveis membro têm 6 Dias expiraçãode Métodos Número de dias para o usuário receber uma mensagem de expiração da senha. 2.3.1 Invocação 7 Dias bloqueio Número de dias para bloqueio da conta após a expiração da senha. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um 8 Dias bloqueada Número de dias desde que a conta foi bloqueada (a partir de 01/01/1970). objeto pode ter que mostrar um comportamento particular invocando uma 9 Reservado Campo Reservado.
operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
98
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 110
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; CHAGE – Manipula as informações referentes carro1.modelo= "fusca"; carro1.cor = "prata"; Sintaxe: chage [opcao] nome_usuario
a validade da senha.
Principais opções Opção
Descrição
-m dias
Mínimo de dias até que o usuário possa trocar uma senha modificada.
-M dias
Máximo de dias em que a senha permanecerá válida.
-d dias
Número de dias decorridos desde 01/01/1970. Serve para determinar quando uma senha foi alterada.
Número de dias decorridos 01/01/1970 a partir dos quais a conta não estará mais Figura 2.4desde – Layout Memória após inicialização disponível. //criando novo alias dias Carro carro2 = carro1; Número de dias em que a conta poderá permanecer inativa antes de ser bloqueada.
-E dias -I
-w dias
Número de dias antes da expiração que começam os avisos da expiração.
-l usuario
Mostra as definições de validade para o usuário especificado. Usuários comuns só podem visualizar suas próprias contas.
USERMOD – Altera as definições de conta de usuário. Sintaxe: usermod [opcao] nome_usuario Principais opções
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Opção
Descrição
-c descrição
Descrição ou comentário do usuário.
2.3 Membros de Instância -d diretorio Diretório pessoal do usuário.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis -e valor Prazo de da definem conta (dd/mm/aaaa). (atributos) definidas pela classe. Osvalidade métodos o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota queapós um amétodo cada Número de dias conta terpertence expiradoaem queobjeto ela seráda bloqueada. O valor cancela o seu-1estado. -f valor função. isto com a implementação do método, que classe. Porém não devemosessa confundir Dois objetos distintos têm é -g compartilhada por todas as instâncias da classe. grupo Grupo principal. -G grupo1, grupo2
Grupos secundários.
2.3.1 Invocação de Métodos -l nomeObjetos se comunicam Nome pela do usuário. troca de mensagens, isto significa que um objeto pode ter que mostrar -p senha Senha.um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela -u UID Identificador de usuário. chamada de um método em um objeto usando o operador binário "." (ponto), -s shell Shell inicial do usuário. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
99
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 111
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
-L -U
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = Bloqueia "2001";a conta de usuário. É o mesmo que colocar o sinal ! antes senha do usuário. carro1.modelo= Costuma-se "fusca"; colocar no lugar do shell padrão um script explicando o motivo do bloqueio. carro1.cor = "prata"; Desbloqueia a conta de usuário. É o mesmo que retirar o sinal ! que está antes da senha.
Exemplos Comando
Descrição
useradd aluno1 useradd -d /home/alunodois aluno2 passwd aluno1 chfn aluno1
Figura 2.4 – Layout Memória após inicialização
chsh aluno2 vipw
//criando novo alias Carro carro2 = carro1;
Abre o arquivo /etc/passwd para edição sem permitir acessos concorrentes.
vipw -s
Abre o arquivo /etc/shadow para edição sem permitir acessos concorrentes.
userdel aluno1
Exclui a conta de usuário aluno1.
userdel -r aluno2
Exclui a conta de usuário aluno2, incluindo seu diretório pessoal.
chage -l aluno1
Se for o próprio usuário aluno1 ou o root, exibirá as informações de validade de senha. Caso seja outro usuário, não será permitida a visualização.
chage -w 5 aluno2
Define para 5 dias, antes do início da senha espirar, o início das mensagens de aviso da expiração.
usermod -d /home/Aum aluno1 usermod -u 1000 aluno2
usermod -s /bin/tcsh aluno2
2.3
Modifica o caminho do diretório pessoal de aluno1 para /home/Aum.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Membros de Instância
Muda o UID do usuário aluno2 para 1000. O novo UID não poderá estar ocupado. Altera o shel do usuário aluno2 para /bin/tcsh.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis 12.3. Adefinidas RQUIVOpela /ETC /GROUP (atributos) classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto comos a implementação do método, que Contém informações sobre grupos existente no sistema. Ele é composto Dois objetos distintosdetêm équatro compartilhada por todas as instâncias da classe. campos separados por dois pontos (:).
o mesmo estado se suas variáveisou membro têm os Esse arquivo pode ser editado diretamente por qualquer editor por uma 2.3.1 Invocação de Métodos mesmos valores. Objetos comunicam pela mensagens, istovigr. significa um com a opção variante do viseespecífica paratroca essedefim chamada Se que usado -s edita o
objeto pode ter que mostrar um comportamento particular invocando uma arquivo /etc/gshadow. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa:Campos o objeto que é o recebedor da do /etc/group mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
100
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 112
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); Campo carro1.ano Descrição = "2001"; 1 Nome grupo É o nome do grupo. carro1.modelo= "fusca"; a senha do grupo. Se x significa que a senha criptografada está em /etc/gshadow. carro1.cor Contém = "prata"; 2
Senha grupo
3 4
GID Membros
O comando grpconv converte senhas não criptografadas de /etc/group para criptografadas em /etc/gshadow. O comando grpunconv faz o caminho inverso. Número de identificação do grupo. Lista de membros do grupo (separados por vírgula).
GROUPADD – Adiciona um grupo ao sistema. A opção -g define um GID específico. Sintaxe: groupadd [opcao] nome_grupo Figura 2.4 – Layout Memória após inicialização
//criando novo alias GROUPDEL – Exclui um grupo do sistema. Carro carro2 = carro1;
Sintaxe: groupdel nome_grupo D I C A
Um grupo não pode ser excluído se nele ainda tiver algum usuário. Primeiramente eles devem ser excluídos para depois excluir o grupo.
GPASSWD – Gerencia amplamente o arquivo /etc/group. Principais sintaxes Sintaxes gpasswd nome_grupo gpasswd -r nome_grupo gpasswd -R nome_grupo
Descrição Muda a senha de um grupo.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Apaga a senha de um grupo.
2.3 Membros de Instância gpasswd -a nome_usuario nome_grupo
Desabilita o acesso ao grupo através da sua senha. Adiciona um usuário ao um grupo.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis gpasswd -d nome_usuario nome_grupo Apaga um usuário de um grupo. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem gpasswd nome_grupo que opertence usuário seja administrador objeto. Isto-Aé nome_usuario importante, pois denota que Faz um com método a cada objeto dado grupo. o seu estado. classe. Porém não devemos confundir isto com a implementação dodeterminado método, que Define os membros de um grupo. Os membros sãodistintos têm Dois objetos gpasswd -M membros nome_grupo é compartilhada por todas as instâncias da classe. informados entre vírgula. Essa opção pode vir em conjunto com -A.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos GROUPS – Mostra os grupos que um usuário pertente. Lembrando elemesmos só possui um valores. Objetos se comunicam pela troca de mensagens, isto significa que um
únicopode grupo objeto terprincipal. que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela Sintaxe: groups [opcao] [nome_usuario] chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
101
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 113
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); = "2001"; ID – carro1.ano Exibe os grupos aos quais o usuário pertence carro1.modelo= "fusca"; respectivos GIDs dos grupos. carro1.cor = "prata";
juntamente com seu UID e os
Sintaxe: id [opcao] [nome_usuario] GROUPMOD – Modifica as informações de grupo. As opções -g GID muda o GID e -n nome muda o nome do grupo. Sintaxe: groupmod [opcao] nome_grupo Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
102
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 114
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] da | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
13. PERMISSÕES
As permissões do Linux são um mecanismo de controle de acesso a arquivos e diretórios. Esse mecanismo é conhecido como DAC (Discretionary Access Control - Controle de Acesso Discricionário), ele define formas de acessar arquivos baseadas em três simples níveis de permissão: Usuário dono do arquivo (representando pela letra u), Grupo dono do arquivo (letra g) e Outros (letra g). Sobre permissões algumas premissas precisam ser conhecidas: Figura 2.4 – Layout Memória após inicialização
1) O super usuário tem permissões para acessar ou modificar qualquer //criando novo alias diretório; Carro arquivo carro2 =oucarro1; 2) Cada arquivo ou diretório está associado a um dono e a um grupo com suas respectivas permissões de acesso (r,w,x). Através da opção -l do comando ls é possível visualizar as permissões de qualquer objeto, seja ele arquivo ou diretório. ls -l $HOME total 64 -rw------drwxr-xr-x -rw-r--r--rw-r--r--
1 2 1 1
root root root root
root root root root
1319 4096 8125 4281
Dec Dec Dec Dec
11 11 11 11
10:51 10:59 10:51 10:51
anaconda-ks.cfg Desktop install.log install.log.syslog
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
A primeira letra de cada linha representa o tipo do objeto. 2.3
Membros de Instância
Significado dos tipos de arquivo Cada objeto criado deverá ter sua própria instância de variáveis Tipo Descrição (atributos) definidas pela classe. Os métodos definem o comportamento de um d Diretório objeto. Isto é importante, pois denota que um método pertence a cada objeto da l Link simbólico classe. Porém não devemos confundir isto com a implementação do método, que b Dispositivo especial de bloco é compartilhada por todas as instâncias dade classe. c Dispositivo especial caractere p Canal fifo s Socket 2.3.1 Invocação de Métodos Arquivo comum Objetos se comunicam pela troca de mensagens, isto significa que um
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela Os modos de acessos vêm depois do tipo do objeto e são chamada de um método em um objeto usando o operador binário "." (ponto), posições. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
num total de nove
103
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 115
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata"; Significados dos Modos de Acesso Modo Significado Arquivos
r
Leitura
w
Escrita
x
Execução
Diretórios
Pode ler o conteúdo do arquivo.
Pode visualizar o conteúdo do diretório.
Comando: cat arquivo
Comando: ls /diretorio/ Pode modificar o conteúdo do diretório.
Pode editar o arquivo. Comando: echo “mensagem” > arquivo
Comandos: mkdir /diretorio/novo_diretorio touch /diretorio/novo_arquivo
Pode executar o arquivo.
Pode entrar no diretório.
Comando: ./arquivo Comando: cd /diretorio/ Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Cada símbolo de permissão r, w, x possui um valor em octal. Valor Octal das permissões Dono
Grupo
Outros
r
w
x
r
w
x
r
w
x
4
2
1
4
2
1
4
2
1
13.1. PERMISSÕES ESPECIAIS Existem outras permissões que concedem características especiais para Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto arquivos e diretórios. São elas SUID, SGID e Sticky bit. Podem ser cumulativamente adicionadas respectivamente no campo execução (x) de 2.3 Membros de Instância Dono (SUID), Grupo (SGID) e Outros (Sticky bit). cada grupo de permissões:
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem – SetpoisUser item pertence (arquivo ouobjeto diretório) que opossuir essa objeto. 1) IstoSUID é importante, denotaID que–umOmétodo a cada da seu estado. classe. Porém não devemos confundir isto com a implementação do método, que permissão exporta para todos os outros usuários as mesmas permissões dotêm Dois objetos distintos é compartilhada por todas as instâncias da classe. dono do arquivo.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos pela ID troca–deOmensagens, significa essa que um 2)Objetos SGIDse –comunicam Set Group item queistopossuir permissão exporta para objeto pode ter que mostrar um comportamento particular invocando uma todos os outros grupos as mesmas permissões do grupo dono do arquivo. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da 3) Sticky Bit – O arquivo que possuir essa permissão após ser finalizado, mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional 104 um queum esteja definido Aprendendo pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 116
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; permanecerá na memória para uma eventual futura chamada. Isso agiliza o carro1.modelo= "fusca"; processo inicialização carro1.cor = "prata"; desse arquivo. Caso seja um diretório, ele não pode ser
apagado por outro usuário que não seja o próprio dono. Permissões Especiais Dono
r
w
Grupo S ou s
r
w
Outros S ou s
r
w
T ou t
Se antes da adição do SUID não existir a permissão de execução (x), então o símbolo que vai aparecer será S (maiúsculo), se já existir, será s (minúsculo) indicando a acumulação da permissão anterior o SUID. Figura 2.4 – Layout Memóriacom após inicialização //criando novo alias Carro–carro2 CHMOD Altera =ascarro1; permissões
de um arquivo ou diretório.
Sintaxe: chmod perm1[,perm2 …] arquivo ... arquivo ...
Comando
chmod u-x arq1.txt chmod -R u+w,o-x /opt/ chmod u+s arq2.txt chmod 755 dir1 chmod 1644 arq3.txt
ou
chmod perm-octal
Exemplos Descrição Retira a permissão de execução (x) do arquivo arq1.txt. Adiciona a permissão de escrita (w) para o dono e retira a permissão de execução (x) para outros do diretório /opt/ e todo seu conteúdo (-R). Adiciona a permissão especial de SUID (s) para o arquivo arq2.txt. Altera as permissões do diretório dir1 para rwx (dono) e para r-x (grupo e outros). Adiciona a permissão especial de Sticky bit (1) e as permissão 644 no arquivo arq3.txt. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
UMASK – Define a máscara de criação de arquivos e diretórios. O padrão é 0022, 2.3 Membros de Instância
que dáCada as permissões diretórios 644 para arquivos. objeto criadoresultantes deverá ter 755 sua para própria instância ede variáveis Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um Sintaxe: umask [valor_mascara] objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que éCHOWN compartilhada todasa as instâncias da classe. – por Muda propriedade do arquivo ou diretório.
2.3.1 Invocação de Métodos Sintaxe: chown [opcao] [dono][:[grupo]] arquivo ... Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma CHGRP – Mudaque o grupo do arquivo ou diretório. operação apropriada foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), Sintaxe:especificar chgrp [opcao] grupo arquivo devendo a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
105
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 117
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Exemplos carro1.modelo= "fusca"; Comando Descrição carro1.cor = "prata";
Informa a máscara atual.
umask
Define 0024 como a máscara atual.
umask 0024
Obs.: Também define permissão de criação 0753 (diretórios) e 0642 (arquivos).
chown user1 arq1.txt
Muda a propriedade do arquivo arq1.txt para o usuário user1.
chown user2:root arq2.txt
Muda a propriedade e o grupo do arquivo arq2.txt para o usuário user2 e grupo root.
chgrp administracao arq3.txt
Muda o grupo do arquivo arq3.txt para administracao. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
106
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 118
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO"fusca"; carro1.cor = "prata";
13.2. L
O objetivo desse laboratório é trabalhar os comandos de administração de usuários e grupos para recuperar a senha de root que foi esquecida. 1) É reiniciar o sistema com alguma ferramenta de recuperação de emergência, talvez um LiveCD, Pendrive bootável, etc. 2) Montar de forma enjaulada (chroot) a partição onde se encontra o arquivo que contém a senha (normalmente /etc/shadow). Suponhamos que seja /dev/sda2. Figura 2.4 – Layout Memória após inicialização mount /dev/sda1 /mnt //criando novo alias Carrochroot carro2 = carro1; /mnt cd /mnt
2) Copiar o campo senha (do shadow) de algum usuário do qual você se lembre da senha. vi etc/shadow copiar ou memorizar o campo senha de algum usuário
3) Colar essa senha no campo de senha do usuário root e reiniciar o sistema. reboot Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
→ Outra alternativa, até mais aplicada, é logar com alguma mídia de recuperação ou emergência e apagar o campo senha do usuário root no arquivo 2.3 Membros de Instância shadow. O supoer usuário ficará sem senha, só não se pode esquecer de criar uma Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis senha assim que o sistema voltar ao ar.
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
107
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 119
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS= "prata"; carro1.cor
13.3. E
• O comando useradd é usado para criar usuário, normalmente a criação de usuário não cria o diretório home do usuário. Qual o arquivo e a opção utilizados para configurar a criação automática do diretório home? • Qual a diferença entre as opções -g e -G do comando useradd? • Além de mudar a senha, que é padrão, quais são as outras opções do comando passwd? Figura 2.4 – Layout Memória inicialização apaga o diretório home? Dê • Qual a opções do comando userdel queapós também um exemplo. //criando novo alias
Carro carro2 = carro1;
• Explique com detalhes a estrutura de formação dos arquivos /etc/passwd, /etc/shadow e /etc/group. • Crie um exemplo de cada opções do comando chage. Esses exemplos deverão ser aplicados ao usuário fictício sysadmin. • Podemos alterar as definições das contas dos usuários simplesmente manipulando os arquivos passwd, shadow, group, etc. O comando usermod é específico para isso. Baseado no usuário sysadmin, crie e teste exemplo para as principais opções desse comando. • É possível manipularmos manualmente o arquivo /etc/group para 2.5 – Layout Memória duas variáveis referência para o mesmo adicionar/excluirFigura usuários dos grupos existentes. Qualobjeto o comando que faz o mesmo ao gerenciar esse arquivo? Dê um exemplo para cada sintaxe. 2.3 • Membros Ao criar de umInstância usuário chamado user1, automaticamente será criado um grupo de
Cada objeto criadopara deverá sua própria instância de variáveis Os valores variáveis mesmo nome ele.terUsando somente comandos para isso, qualdasseria a (atributos) definidas pela classe. Os métodos definem o comportamento de um emdiretório um objetohome constituem sequencia de comandos para mudar seu nome de usuário, seu e objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. o nome do seu confundir grupo para user-um. classe. Porém não devemos isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
• Como podemos ver as permissões de um determinado item odemesmo dadosestado (arquivo se suas variáveis membro têm os ou diretório)? 2.3.1 Invocação de Métodos mesmos valores.
comunicam pela troca de mensagens, isto significa que um • Objetos Qual osesignificado das permissões de leitura (r), escrita (w) e execução (x) para objeto pode ter que mostrar um comportamento particular invocando uma diretório? Explique suaEm resposta com comandos que podem ou não operação arquivos apropriadaeque foi definida no objeto. Java, isto é feito pela usadosem emumcada caso. chamada serem de um método objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da • Aso método permissões especiais SUID, SGID e Sticky Bit são mensagem, a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
utilizadas em quais 108
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 121
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
•
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano casos? Qual =o "2001"; comando que altera permissões? carro1.modelo= "fusca"; carro1.cor "prata"; Qual são as= permissões resultantes para arquivos
0022, 0023, 0000, 0077 e 0555?
e diretórios das máscaras
• Para mudar o dono e o grupo de um arquivo ou diretório podemos utilizar quais comandos? Exemplifique cada um deles.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
109
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 122
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] da | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
14. ACL POSIX
Sistemas Linux possuem por padrão as permissões de leitura, escrita e execução para dono, grupo e outros tanto em diretórios quanto arquivos. Essas permissões são importantes e representam a base do controle de acesso no Linux, mas quando o assunto é compartilhamento de arquivos, elas são consideradas limitadas se comparadas a outras soluções proprietárias, pois o fato de um item de dados (diretório ou arquivo) possuir somente as permissões padrão acabam por proporcionar uma certa rigidez nas regras de funcionamento de um servidor de arquivos. Atualmente esses servidores precisam Figura muito 2.4 – Layoutmais Memóriaque após inicialização ser dinâmicos e flexíveis, possuir três tipos de permissões, um grupo //criando novo alias ter permissões diferentes de outros grupos para um mesmo item de dado. Carro carro2 = carro1;
Para suprir essa necessidade que surgiram as Access Control Lists (ACLs – Listas de Controle de Acesso) do padrão POSIX. É suportado pelos sistemas de arquivos ext2fs, ext3fs, ReiserFS, JFS, XFS, etc, e já estão nativamente presentes no Linux a partir do Kernel 2.6.x. As referências oficiais desse projeto estão hospedadas em http://acl.bestbits.at. Com ACL pode-se ter um modelo mais refinado de permissões, pois além das permissões padrão, usuários e grupos adicionais de um determinado item de dados não são resumidos simplesmente na categoria outros, mas podem possuir um conjunto todo especial de permissões diferentes das originais. Para identificar sistemas com suporte a ACL basta executar o comando ls com Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto a listagem longa, se aparecer ao lado das permissões padrão o caractere +, significa que o item foi personalizado, portanto possui o suporte. 2.3
Membros de Instância
ls -l Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis -rw------root root 1245definem Jan o19 10:11 anaconda-ks.cfg (atributos) definidas1 pela classe. Os métodos comportamento de um em um objeto constituem -rw-r--r-1 root rootque4281 Jan pertence 19 10:11 objeto. Isto é importante, pois denota um método a cadainstall.log objeto da o seu estado. -rwxr-x---+ 1 joseconfundir redeisto19 Feb 10 17:51 teste.txt classe. Porém não devemos com a implementação do método, que Dois objetos distintos têm drxwr-xr-x+ 2 john dev 210 Feb 9 11:37 dirteste é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos Os sistemas Red Hat mais atuais trazem por padrão suporte a ACL no sistema mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
de arquivos raiz, mas não em ext3fs criado por usuários. Em outras distros é comum desejado através do
objeto pode ter que mostrar um comportamento particular invocando uma ter queapropriada instalar oquesuporte e habilitá-lo arquivos operação foi definida no objeto. no Em sistema Java, isto de é feito pela arquivos chamada de /etc/fstab. um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja que um esteja definido pelo objeto. com Profissionais
110
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 123
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); # /etc/fstab carro1.ano = "2001"; # carro1.modelo= "fusca"; /dev/sda1 / carro1.cor =reiserfs "prata"; noatime,acl,notail /dev/sda2 none swap sw
0 0
1 0
Se após a inserção da cláusula acl o sistema não puder ser reiniciado, então será preciso remontar a partição cujo suporte está sendo acrescido. mount / -o remount,acl
14.1. CONFIGURANDO ACLS – Layout Memória apósdas inicialização Para entender melhorFigura a 2.4 configuração ACLs, vai ser considerado o //criando novo alias seguinte cenário: um arquivo teste.txt (permissão: 750, dono: jose, grupo: rede) e o Carro carro2 = carro1; diretório dirteste (permissão: 755, dono: john, grupo: dev).
A questão principal é como fazer com que mais usuários possam ter acesso total ao arquivo teste.txt sem ter que colocá-los no grupo rede e depois mudar a permissão do grupo para rwx. Para se conseguir isso, é preciso configurar as ACLs através dos seus comandos mais básicos: setfacl e getfacl. GETFACL – Recupera as informações de permissões de um item de dados com ACL. Sintaxe: getfacl [opcao] arquivo/diretorio ... ou getfacl [opcao] Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
A primeira sintaxe é a mais comum, onde os itens de dados são informados na própria linha dedecomando, 2.3 Membros Instância já a segunda recebe da entrada padrão o caminho dos itens de dados serem criado verificados, com o pressionamento Cadaa objeto deverá éterfinalizada sua própria instância de variáveis das Osteclas valoresCTRL+D. das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem verificar asdenota outrasqueopções, consultar páginas comando. objeto. IstoPara é importante, pois um método pertenceas a cada objetode da manual do o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas SETFACL – de Define as permissões de um item de dados com ACL.variáveis membro têm os 2.3.1 Invocação Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
Sintaxe: arquivo/diretorio ... ou setfacl --restore=arquivo objeto podesetfacl ter que[opcao] mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). Opções O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
111
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 124
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
-m
-s
//atribuindo valor a variável referência Carro carro1 = new Carro(); Se o registro especificado já existir, os bits de permissão especificados serão atualizados. Se o registro ainda carro1.ano = "2001"; carro1.modelo= "fusca"; não existir, será adicionado à ACL. carro1.cor = "prata"; Configura a ACL. Quaisquer registros anteriores serão eliminados e substituídos pelos novos. Para a formação incremental da ACL, o parâmetro -m é mais indicado.
Ex.: setfacl -s u:jose:rwx,u:john:r-x,g:dev:rx Elimina o registro especificado.
-x
-M/S/X
teste.txt
Ex.: setfacl -x g:jose teste.txt Com significado idêntico aos respectivos parâmetros de letra minúscula, porém os registros são lidos de um arquivo (especificado logo depois deste parâmetro). O formato exigido é exatamente o formato gerado pelo comando getfacl. Para ler da entrada padrão, use o traço ('-'). Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
getfacl dirteste # file: dirteste # owner: john # group: dev user::rwx group:r-x mask:rwx other::---
Exemplos
Exibe as permissões ACL do diretório dirteste.
Configura a permissão adicional rwx para o usuário (opção u) jose. A partir de agora ele tem as mesmas permissões do dono (jonh). Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto setfacl -m g:rede:rw- dirteste Define a permissão de rw para o grupo (opção g) rede no diretório dirteste. setfacl -m m:rwx dirteste Altera a máscara (opção m) do diretório dirteste para rwx. Retira as permissões rwx dos outros usuários do diretório dirteste e as torna 2.3 Membros de Instância Default (d) para todo e qualquer arquivo/diretório criado em seu interior. Essa setfacl -m d:o::--- dirteste Cada objeto criado deveráopção ter desconsidera sua própria instância de definida variáveis a máscara padrão pelo comando umask das paravariáveis o Os valores (atributos) definidas pela classe. Os sistema. métodos definem o comportamento de um em um objeto constituem setfacl -m u:jose:rwx dirteste
getfacl objeto. Istodirteste é importante, pois denota que um método pertence a cada objeto da # file: dirteste classe. Porém não devemos confundir isto com a implementação do método, que # owner: john group: dev por todas as instâncias da classe. é #compartilhada
o seu estado. Dois objetos distintos têm o mesmo suas user::rwx Exibe as permissões ACL do diretório dirteste após a execução dosestado últimosse dois user:jose:rwx comandos. variáveis membro têm os 2.3.1 Invocação de Métodos group:r-x mesmos valores. group:rede:rwObjetos se comunicam pela troca de mensagens, isto significa que um mask:rwx
objeto pode ter que mostrar um comportamento particular invocando uma other::--operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), A mesma sistemática pode completa: ser usadao para de da arquivos. devendo especificar a mensagem objetoalterar que é as o ACLs recebedor mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
112
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 125
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); setfacl u::rwx arquivo= "2001";Muda para rwx as permissões do usuário-dono carro1.ano carro1.modelo= setfacl g::rwx arquivo "fusca"; Muda para rwx as permissões do grupo-dono carro1.cor = "prata"; setfacl o::rwx arquivo Muda para rwx as permissões dos outros usuários
14.2. COMANDOS CHATTR E LSATTR Os comandos chattr e lsattr servem para manipular e visualizar os atribuitos de arquivos e diretórios. Atributos são extensões que proíbem que o arquivo seja alterado, removido e renomeado, etc, eles têm efeito sobre qualquer usuário, incluindo o usuário administrativo (root). Os kernels da série 2.6.x já suportam 2.4 – Layout Memória após inicialização nativamente atributos, já osFigura anteriores precisam ser recompilados com essa //criando novo alias funcionalidade. Carro carro2 = carro1; D I C A
Entender que um atributo é diferente que permissão é de primordial importância, pois os comandos chattr/lsattr trabalham com atributos e chmod com com permissões.
CHATTR – Modifica os atributos de arquivos/diretórios. Sintaxe: chattr [opcao] [atributo] [arquivo/diretorio] -R
-V
2.3
Opções Modifica atributos recursivamente, ou seja, em subdiretórios. Mostra detalhes sobre a modificação do atributo. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Atributos de arquivo / diretório + Adiciona atributo - Remove atributo de Instância =Membros Define o atributo igual especificado
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um Atributos em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos isto com a implementação do método, que A Não modifica a hora deconfundir acesso ao arquivo (somente em kernel 2.2). Dois objetos distintos têm é compartilhada por arquivo todas aspode instâncias Append Only, somentedaserclasse. gravado em modo incrementado, ou seja, pode ser adicionado conteúdo
o mesmo estado se suas
a
somente no final do arquivo, não pode ser removido ou renomeado. variáveis membro têm os 2.3.1 Invocação de Métodos c Permite compactação nos arquivos especificados de forma transparente. mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um d Protege para o dump não fazer backup do arquivo. objeto pode ter que mostrar um comportamento particular invocando uma Imutáveis. Arquivos Imutáveis não podem ser modificados, gravados, removidos, renomeados. Até mesmo o i operação apropriada definida no alterar. objeto. Em Java, isto é feito pela usuário root com que pode foi máximo não pode chamada de um método em um objeto usando o operador binário "." (ponto), s É chamado de apagamento seguro, quando eliminado o arquivo é zerado sem possibilidade de recuperação. devendo especificar a mensagem completa: o objeto que é o recebedor da S Faz a gravação imediatamente para o arquivo especificado, como sync, ex: igual aos disquetes.
mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
113
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 126
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
u
//atribuindo valor a variável referência Carro carro1 = new Carro(); Écarro1.ano marcado como recuperável, quando apagado é salvo uma copia para permitir recuperação. = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
chattr +AsdiSu teste.txt
chattr -SdA teste.txt
chattr +iAd dirteste
Exemplos Adiciona os atributos A, s, d, i, S e u ao arquivo teste.txt. --S-iadA---------- teste.txt
Remove os atributos S, d e A ao arquivo teste.txt. ----ia------------ teste.txt
Adiciona novamente os atributos i, A, e d ao diretório dirteste. ----i-dA---------- dirteste Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
LSATTR – Lista os atributos atribuídos a um arquivo/diretório. Sintaxe: lsattr [opcao] [arquivo/diretorio] Opções -a -d -R -v
Lista todos os arquivo, incluindo os ocultos. Lista os atributos de diretórios. Lista um diretório e seus subdiretórios. Mostra versões dos arquivos.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Exemplos os atributos do diretório Cada objeto criadoLista deverá ter sua própriadirteste. instância de variáveis
lsattr -d dirteste (atributos) definidas pela classe. Os métodos definem o comportamento de um ----i-dA---------- dirteste objeto. Isto é importante, pois denota que um método pertence a cada objeto da Mostra a versão do arquivo teste.txt. do método, que classe. Porém não devemos confundir isto com a implementação lsattr -v teste.txt é compartilhada por todas as227244986 instâncias ----ia-----------da classe. teste.txt
Mostra a versão do diretório dirteste.
2.3.1 de Métodos lsattrInvocação -dv dirteste 2470624291 ----i-dA---------dirteste Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da Exemplo de remoção diretório mensagem, o método a ser invocado e os argumentos para ode método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
114
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 127
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); lsattrcarro1.ano -d dirteste = "2001"; Com a listagem dos atributos do diretório dirteste, percebe-se a presença ----i------------- dirteste carro1.modelo= "fusca"; do atribuito -i (imutável). carro1.cor = "prata"; rm -rfv dirteste Após a listagem, ocorre a tentativa de apagá-lo, operação que não é rm: cannot remove directory permitida devido ao atributo já citado, mesmo que o usuário seja root. `dirteste': Operation not permitted
D I C A
Para que o diretório seja removido existe a necessidade do atributo ser retirado, operação que só o root pode executar, após isso, o diretório pode ser removido com o comando rm normalmente. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
115
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 128
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO"fusca"; carro1.cor = "prata";
14.4. L
Este laboratório tem o objetivo de demonstrar o funcionamento das ACLs dentro de um cenário simples e realista. 1) Considerando a seguinte estrutura de diretórios com seus proprietária e permissões: / | |_Compras |__Consumo |__Duravel
(dono:compras, grupo:compras, permissões:750) (dono:consumo, grupo:consumo, permissões:700) (dono:duravel, grupo:duravel, permissões:700) Figura 2.4 – Layout Memória após inicialização
# mkdir novo -m 750 /Compras //criando alias # mkdir -m =700 /Compras/Consumo Carro carro2 carro1; # mkdir -m 700 /Compras/Duravel # useradd compras # useradd -G compras consumo # useradd -G compras duravel # chown consumo.consumo /Compras/Consumo # chown duravel.duravel /Compras/Duravel
2) Observando as permissões, percebemos que o acesso dos usuários consumo e duravel é de leitura e execução (r-x) no diretório /Compras/, total (rwx) em seus respectivos diretórios e sem permissões (---) no diretório do outro. Testes de Acesso Usuário Logado
2.3
Comando Testado Resultado Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
consumo
cd
consumo
cd /Compras/Consumo
consumo
cd /Compras/Duravel
Membros de Instância
/Compras
Ok Ok
Permissão Negada Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis duravel pela classe. Os métodos cd /Compras Ok (atributos) definidas definem o comportamento de um em um objeto constituem objeto. Isto duravel é importante, pois denota quecdum/Compras/Consumo método pertence a cada objeto da Permissão Negada o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que duravel cd /Compras/Duravel Dois objetos distintos têm Ok é compartilhada por todas as instâncias da classe.
o mesmo estado se suas Utilizaremos as ACLs para permitir que cada usuário (consumo e duravel variáveis membro têm) os 2.3.1 Invocação de Métodos mesmosde valores. acesseObjetos o diretório do outro de significa execução, leitura e escrita forma se comunicam pelacom trocaasdepermissões mensagens, isto que um
objeto pode teruma que de mostrar particular invocando sequencial, cada um vez,comportamento e a cada modificação faremos uma os testes. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de método em um objeto usando oaoperador binário "." (ponto), 3)um Vamos começar verificando presença de ACLs nos diretórios devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem,getfacl o método/Compras a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
em questão.
116
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 129
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); getfacl /Compras/Consumo carro1.ano = "2001"; getfacl /Compras/Duravel carro1.modelo= "fusca"; carro1.cor = "prata";
A saída dos três comandos acima mostram o cenário que criamos, sem muitas novidades. 4) Vamos adicionar a permissão de leitura no diretório /Compras/Consumo para o usuário duravel e em /Compras/Duravel para o usuário consumo. setfacl -m u:duravel:r /Compras/Consumo setfacl -m u:consumo:r /Compras/Duravel Testes de Acesso Usuário Logado
Comando Testado
duravel
ls -l /Compras/Consumo
Figura 2.4 – Layout Memória após inicialização
//criando novo alias consumo ls -l /Compras/Duravel Carro carro2 = carro1;
Resultado Ok Ok
Observe que o que antes era Negado, agora é permitido somente para o usuários que a ACL configurou. No entanto, só foi “liberada” a leitura nesse diretório, tente criar um item de dados (diretório ou arquivo) ou até mesmo entrar no diretório para que lhe seja exibida a mensagem de negação. Testes de Acesso
2.3
Usuário Logado
Comando Testado
consumo
cd
consumo
mkdir /Compras/Duravel/dirteste
Permissão Negada
consumo
touch /Compras/Duravel/arqteste
Permissão Negada
duravel
Figura – Layout Memória duas variáveis referência para o mesmoPermissão objeto cd 2.5 /Compras/Consumo
duravel
mkdir /Compras/Consumo/dirteste
Permissão Negada
duravel
touch /Compras/Consumo/arqteste
Permissão Negada
/Compras/Duravel
Membros de Instância
Resultado Permissão Negada
Negada
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Agorapela vamos asdefinem permissões de criaçãode(w) de dados e de (atributos)5) definidas classe.adicionar Os métodos o comportamento um de itens em um objeto constituem execução e novamente realizar testes.pertence a cada objeto da objeto. Isto é (x) importante, pois denota que umosmétodo o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que setfacl -m u:duravel:wx /Compras/Consumo Dois objetos distintos têm é compartilhada por todas as instâncias da classe. setfacl -m u:consumo:wx /Compras/Duravel
o mesmo estado se suas variáveis membro têm os mesmos valores.
Testes de Acesso 2.3.1 Invocação de Métodos Objetos seLogado comunicam pela troca de mensagens, isto significa que um Resultado Usuário Comando Testado objeto pode ter que mostrar um comportamento particular invocando uma consumo cd /Compras/Duravel Ok operação apropriada que foi definida no objeto. Em Java, isto é feito pela mkdir /Compras/Duravel/dirteste Ok chamada deconsumo um método em um objeto usando o operador binário "." (ponto), consumo touch /Compras/Duravel/arqteste devendo especificar a mensagem completa: o objeto que é o recebedor da Ok mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
117
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 130
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); duravel cd /Compras/Consumo carro1.ano = "2001"; carro1.modelo= "fusca"; duravel mkdir /Compras/Consumo/dirteste carro1.cor = "prata"; duravel
touch /Compras/Consumo/arqteste
Ok Ok Ok
6) Para finalizar, vamos conferir como ficou a configuração ACL de cada um dos diretório em questão. getfacl /Compras getfacl /Compras/Consumo getfacl /Compras/Duravel
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
118
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 131
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor XERCÍCIOS= "prata";
14.5. E
• As permissões padrão são baseadas em três tipos limitados, quais são eles? • Qual foi a motivação da criação das Listas de Controle de Acesso POSIX (ACL Posix)? • Quais são os sistemas de arquivos que já possuem suporte a ACLs? • Como se percebe que um item de dados está configurado com ACL? Dê um exemplo. 2.4 – Layout Memória após inicialização • Assim como as cotas de Figura disco, as ACLs precisam ser habilitadas em qual //criando novo alias arquivo? Exemplifique. Carro carro2 = carro1;
• Quais são os comandos de manipulação (recuperar e configurar) das permissões de items com ACL? • Fale sobre as diferenças entre as ACLs e os atributos de dados. • Para que servem os comandos lsattr e chattr? Forneça três exemplos de cada.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
119
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 132
Linux System LinguagemAdministration de Programação Java
Este material não pode serem distribuído. Curso Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
15. LOCALIZAÇÃO DE ARQUIVOS FIND – Localização recursiva. Sintaxe: find [onde_procurar] [criterio] LOCATE – Faz a localização baseada em banco de dados. Sintaxe: locate [opcao] padrao_busca 2.4 – Layout Memória após inicialização A base de dados do Figura locate é atualizada através do comando updatedb e configurada pelo arquivo //criando novo alias /etc/updatedb.conf, que normalmente consta dos diretórios Carro carro2 = carro1; desconsiderados pela base.
O locate é mais rápido que o find justamente por usar uma base de dados indexada, enquanto que o find faz buscas recursivas. WHEREIS – Localiza os arquivos binários, códigos fonte e as páginas de manual de um determinado comando. Sintaxe: whereis [opcao] comando WHICH – Retorna o caminho completo do binário de um comando. O comando Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto deve estar em algum dos diretórios da variável PATH. Sintaxe: which [opcao] comando
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Exemplos (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem Comando Descrição objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. updatedb Atualiza a basea de dados do comando locate. que classe. Porém não devemos confundir isto com implementação do método, Dois objetos distintos têm é compartilhada da classe. locate passwdpor todas as instâncias Localiza arquivos que possuem a palavra passwd em seu nome.
o mesmo estado se suas Retorna a quantidade de vezes que foram localizadas a palavra passwd. variáveis membro têm os 2.3.1 Invocação de Métodos mesmoschcon. valores. whereis chcon se comunicam pela Localiza binário, o códigoisto fontesignifica e as páginas Objetos trocaode mensagens, que de ummanual do comando locate -c passwd
objeto ter que mostrar um comportamento particular invocando uma whichpode shutdown Retorna o caminho completo do comando shutdown. operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo um Seja que esteja definido pelo objeto. com Profissionais
120
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 134
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO"fusca"; carro1.cor = "prata";
15.1. L
O objetivo desse laboratório é adicionar diretórios no bando de dados updatedb. Vamos retirar da atualização os diretórios /tmp/manual/, /opt/openoffice/ e /mnt/wind/. Também retirar os arquivos de extensão .sh e .bin. 1) Entrar no arquivo /etc/updatedb.conf. vi /etc/updatedb.conf
//criando novo alias Carro carro2 = à carro1; 2) Adicionar variável
Figura 2.4 – Layout Memória após inicialização
PRUNEPATHS os diretórios listados.
PRUNEPATHS = “/tmp/manual/ /opt/openoffice /mnt/wind”
3) Adicionar à variável PRUNENAMES as extensões .sh e .bin. PRUNENAMES = “.sh .bin”
4) Atualizar o bando de dados updatedb
Pronto, os diretórios já foram excluídos da atualização do ubdatedb e as extensões .sh e .bin também, consequentemente elas não virão como resultado buscas pelo comando locate. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto 2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
121
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 135
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS= "prata"; carro1.cor
15.2. E
• Quais são as principais diferenças entre o comando find e o locate? • Qual a função do whereis? Qual a diferença dele em relação ao which? • O que faz a linha de comando cp -r `whereis man` /tmp/manual/?
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
122
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 136
Linux System LinguagemAdministration de Programação Java
Este material não pode serem distribuído. Curso Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
16. SHELL SCRIPTS
16.1. PERSONALIZANDO E TRABALHANDO NO AMBIENTE SHELL A maioria dos sistemas operacionais Linux possuem shell (interpretador de comandos) programáveis, ou seja, permitem a criação de scripts com funcionalidades próximas de uma linguagem de programação. Os scripts shell permitem ao administrador do sistema automatizar tarefas, criar novos comandos para o seu auxílio, etc. Existem vários tipos de interpretadores para após o sistema Figura 2.4 – Layout Memória inicialização Linux, sendo os principais: bash, csh e tcsh. nome do interpretador utilizado fica armazenado na variável de //criando novoOalias Carro carro2 = carro1; ambiente SHELL. Para saber qual está sendo utilizado, basta utilizar o comando set | grep -i shell. Nos exemplos símbolo % significa prompt de comando, sem fazer distinção entre usuário comum ou superusuário. % set | grep -i shell SHELL=/bin/bash
Quando o usuário possui um interpretador de comandos e uma senha válida ele está apto a efetuar login no sistema, porém algumas vezes não é interessante que ele tenha acesso, mas que possua uma conta para acessar outros tipos de serviços do FiguraSAMBA 2.5 – Layout Memória duas variáveis referência para mesmo objeto do acesso ao sistema sistema, como internet, e outros serviços. A oremoção pode ser feita no arquivo /etc/passwd, devendo ser alterado o valor do campo responsável pelo shell (o último campo) para o valor /bin/false ou /sbin/nologin. 2.3 Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis 16.1.1. definidas ALTERANDO VARIÁVEIS (atributos) pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seuatravés estado. do Asnãovariáveis globaisisto são no login para que todo o sistema classe. Porém devemos confundir comdefinidas a implementação do método, Dois objetos distintos têm arquivo /etc/profile ou paradaum usuário específico pelo arquivo ~/.bash_profile. é compartilhada por todas as instâncias classe.
o mesmo estado se suas
Variáveis locais podem ser definidas em scripts ou na linha devariáveis comando, e se for membro têm os 2.3.1 Invocação de Métodos preciso torná-la disponível para outros shells basta exportá-la com o comando mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um export. objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela % export VAR=“Valor chamada de um método em da um variável” objeto usando o operador binário "." (ponto), % echo $VAR devendo especificar a mensagem completa: o objeto que é o recebedor da Valor da variável mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo um Seja que esteja definido pelo objeto. com Profissionais
123
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 137
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); % unset VAR carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor 16.1.2. FUNÇÕES = "prata";
As funções reúnem em um identificador definido pelo usuário uma série de comandos organizados para realizar uma determinada tarefa. Podem ser utilizadas como comando e definidas tanto na linha de comando quanto dentro de scripts. % > > >
function flistagem () { echo “Listagem detalhada do diretório $1: ” ls -lah $1 }
Dentro de um script:
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; function flistagem () { echo “Listagem detalhada do diretório $1: ” ls -lah $1 }
Se o script acima for adicionado no arquivo ~/.bashrc de outros usuários, a função poderá ser usada em outras sessões dos mesmos.
16.2. CONFIGURAÇÃO DO BASH O bash pode ser personalizado através da criação de variáveis, aliases, funções e outras configurações para facilitar o trabalho dos usuários e administradores do sistema. O shell pode ser iniciado no modo interativo, Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto quando aparece o prompt para digitação dos comandos, ou no modo não interativo, onde o usuário não se comunica através de scripts.
2.3
Membros de Instância
Quando interativo, ele primeiro lê e executa as instruções no arquivo
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis /etc/profile, se pela esseclasse. arquivo existir. Depois de ler esse dearquivo, o bash procura e (atributos) definidas Os métodos definem o comportamento um em um objeto constituem objeto. Isto nessa é importante, que um método pertence a~/.bash_login cada objeto da e ~/.profile. executa ordempois osdenota arquivos ~/.bash_profile, Quando o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que a sessão do shell termina, o bash executa as instruções do arquivo Dois ~/.bash_logout, objetos distintossetêm é compartilhada por todas as instâncias da classe.
ele existir.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos Quando o bash é invocado como shell interativo, mas não se trata de uma mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um sessão de login, o bash executa as instruções dos arquivos /etc/bash.bashrc e
objeto pode ter que mostrar um comportamento particular invocando uma ~/.bashrc (se existirem). operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
124
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 138
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; ROGRAMANDO NO INUX carro1.modelo= "fusca"; carro1.cor = "prata";
16.3. P
L
A maioria dos sistemas operacionais Linux possuem shell (interpretador de comandos) programáveis, ou seja, permitem a criação de scripts com funcionalidades próximas de uma linguagem de programação. Os scripts shell permitem ao administrador do sistema automatizar tarefas, criar novos comandos para o seu auxílio, etc. 16.3.1. UM SCRIPT SIMPLES Os scripts são simples arquivos de texto com a permissão de execução habilitada. Os comandos dentroFigura de2.4um script são mesmos utilizados em uma linha – Layout Memória apósos inicialização de comando, pois o arquivo //criando novo alias é lido de forma sequencial (de cima para baixo). Carro carro2 = carro1; % vi script1.sh #!/bin/bash echo "Olá Mundo!”
O script acima possui o cabeçalho #!/bin/bash que serve para informar qual será o interpretador de comandos a ser utilizado. Caso não seja informado, será utilizado interpretador padrão do sistema (definido na variável SHELL). O símbolo #! é chamado de shebang. Após a edição basta salvar o arquivo e alterar a sua permissão para executável: Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto % chmod u+x script1.sh
2.3
Para executá-lo, existem várias formas diferentes: Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos Formas definemdeoExecução comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. Forma Descrição classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm % bash script1.sh é compartilhada por todas as instâncias Usando da classe. o comando bash com o caminho do script como parâmetro.
o mesmo estado se suas variáveis membro têm % /caminho/absoluto/script1.sh Informando o caminho absoluto do script. Caminho absoluto é todo o os 2.3.1 Invocação de Métodos Ola Mundo! caminho percorrido atéisto chegar ao script. mesmos valores. Objetos se comunicam pela troca de mensagens, significa que um Ola Mundo!
objeto pode ter que mostrar um comportamento particular invocando uma Colocando ./ antes do nome do script. Serve para quando o caminho atual é o % . /script1.sh mesmo do script, neste caso não será consultada a variável PATH como operação apropriada que foi definida no objeto. Em Java, isto é feito pela Olá Mundo! forma de encontrar o script. chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 125 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 139
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; 16.3.2. COMENTÁRIOS carro1.modelo= "fusca"; carro1.cor = "prata"; Os comentários são feitos dentro dos scripts
utilizando o caractere # antes de uma linha de comando, então essa linha será ignorada durante a execução.
#!/bin/bash #--- programa simples de script shell --# --- Esse é um comentário e não será lido durante a execução --echo "Olá Mundo!"
16.3.3. VARIÁVEIS ESPECIAIS Os parâmetros passados para o script e outras informações úteis são Figura 2.4 – Layout Memória após inicialização retornados pelas variáveis especiais que estão descritas na tabela abaixo. //criando novo alias Carro carro2 = carro1;
Variáveis Especiais Variável
Descrição
$*
Todos os valores passados como argumentos.
$#
A quantidade de argumentos passados.
$0
O nome do script (inclui o caminho).
$n
O parâmetro informado na posição n.
$!
O PID do último programa executado.
$$
O PID do shell atual.
$?
Código de saída do último comando. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
16.3.4. LEITURA DE TECLADO E VARIÁVEIS 2.3
Membros Durantedea Instância execução do script pode ser solicitado a entrada de informações
Cada objeto criado deverá ter sua própria instância de variáveis para serem processadas. O comando que realiza essa tarefa é o read.Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. IstoSintaxe: é importante, pois denota queou um método pertence ]a "mensagem: cada objeto da " variavel read variavel read [opcao o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. Principais opções
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Opção Invocação de Métodos Descrição Objetos se comunicam pela troca de mensagens, isto do significa umdigitado. -p Solicita a informação e permite a visualização que estáque sendo objeto pode ter que mostrar um comportamento particular invocando uma -s masobjeto. não permite a sua visualização; operação apropriada Solicita que foia informação, definida no Em Java, isto é feitoutilizado pela para pedir senhas. -n X Permite a quantidade de caracteres a serem chamada de um método eminformar um objeto usando oX operador binário "."lidos. (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
126
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 140
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Exemplo: carro1.modelo= "fusca"; carro1.cor = "prata"; % vi script1.sh #!/bin/bash echo -n "Digite algo: " read resposta echo "Foi digitado: $resposta; o primeiro parâmetro é
$1 o segundo é $2"
Executar o arquivo script.sh com passagem de parâmetros: # ./script1.sh AAA BBB
Saída:
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Digite algo: ALGO Foi digitado: ALGO; o primeiro parâmetro é AAA o segundo é BBB.
16.3.5. ESTRUTURAS DE DECISÃO IF THEN ELSE A estrutura condicional permite definir uma decisão do programa; através de uma condição, que pode ser uma comparação entre dois valores, por exemplo. Sintaxe: if [ condicao ]; then comando fi 2.3
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
A estrutura if permite o uso de else para o tratamento de erro na condição sem Membros de Instância
detalhes para a programação: Cada objeto criado deverá
ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da if [ condicao ]; then classe. Porém não devemos confundir isto com a implementação do método, que comandos é compartilhada por todas as instâncias da classe.
else
2.3.1comandos Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um fi objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de método em um objeto o operador binário (ponto), O um script script2.sh queusando simula o sistema de"."login do devendo especificar a mensagem completa: o objeto que é o recebedor da estrutura condicional: mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
Linux explora essa
127
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 141
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); % vi script2.sh carro1.ano = "2001"; #!/bin/bash carro1.modelo= "fusca"; # Faz carro1.cor a leitura da= senha do usuário "prata"; echo “Digite a sua senha: ” read -s resposta senha="12345" # Comparação da senha com a registrada dentro do código if [ $resposta = $senha ]; then echo “Senha correta!” else echo “Senha Incorreta!” fi
# ./script2.sh Figura 2.4 – Layout Memória após inicialização
A opção -s para o read faz com que o comando não apresente na saída padrão //criando novo alias o que Carro o usuário está= digitando, servindo para aumentar a segurança. carro2 carro1; 16.3.6. COMANDO EXIT Para o sistema sair em qualquer ponto do script por falta de alguma informação ou informação errada pode ser utilizado o comando exit 0, então quando encontrada, essa instrução finalizará automaticamente a execução do script. O script script2.sh, com a inserção desse novo comando, poderia ser reescrito assim: % vi script2.sh #!/bin/bash #Faz a leitura da senha do usuário echo “Digite a sua senha:” read -s resposta senha="12345" Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto if [ $resposta = $senha ]; then echo “Senha correta!”
2.3 else Membros de Instância
echo Incorreta!” Cada “Senha objeto criado deverá ter sua própria instância de variáveis exit 0 (atributos) definidas pela classe. Os métodos definem o comportamento de um fi objeto. Isto é importante, pois denota que um método pertence a cada objeto da
Os valores das variáveis em um objeto constituem o seu estado. Na não estrutura acima caso oisto usuário a senhadoerrada o script classe. Porém devemos confundir com ainforme implementação método, que executa o comando exit Dois objetos distintos têm é0compartilhada porsair todas instâncias da classe. que serve para doas código e retornar o valor 0 como resultado do erro padrão (STDERR). o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos 16.3.7. OPERADORES DE COMPARAÇÃO mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um São utilizados para melhorar as condições de avaliação em uma estrutura condicional. objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida noOperadores objeto. Empara Java, isto é feito pela inteiros chamada um objeto usando o operador binário "." (ponto), Condiçãode um método emDescrição $a -eq $b devendo especificar a mensagem completa: o objeto que é o recebedor da $a = $b (igual) $a -le $b o método a ser invocado mensagem, os argumentos $a <= $b e (menor ou igual) para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
128
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 142
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); $a -ge carro1.ano $b $a >= $b (maior ou igual) = "2001"; $a -lt carro1.modelo= $b "fusca"; $a < $b (menor que) = "prata"; $a -gt carro1.cor $b $a > $b (maior que)
$a <> $b (diferente)
$a -ne $b
O uso dos sinais <, >, <=, >=, == e != podem ser usados para inteiros, desde que sejam executados entre dois parenteses (( )) ou pelo comando let. LET – Permite o uso de códigos parecidos com a linguagem C, como por exemplo o incremento ou decremento (++ ou –). Exemplos: let
var++
(incremento), let
var–-
(decremento).
Figura 2.4 – Layout Memória após inicialização
Operadores para strings //criando novo alias Condição Descrição Carro carro2 = carro1; -z $a Não existir mensagem -n $a A mensagem existir $a == $b O conteúdo de ambas as variáveis são iguais $a != $b O conteúdo das variáveis forem diferentes
Condição -e arquivo -x arquivo -d arquivo -l arquivo -s arquivo
Operadores para arquivos
Descrição é um arquivo regular arquivo é executável é um diretório for um link o arquivo existe e tem tamanho maior que zero Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Operadores para valores lógicos (booleanos) Condição Descrição exprA -a exprB ambas as expressões são verdadeiras (operador E) Membros de Instância exprA -o expreB uma das expressões for verdadeira (operador OU) Cada objeto criado deverá ter sua própria instância de variáveis !exprA a expressão for falsa
Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. O código abaixoconfundir demonstra usoade operadores de classe. Porém não devemos istoocom implementação do comparação método, que em um script que realiza Dois objetos distintos têm ébackups. compartilhada por todas as instâncias da classe. % vi script3.sh 2.3.1 Invocação de Métodos #!/bin/bash Objetos se comunicam pela troca de mensagens, isto significa que um #Faz apode leitura damostrar senha um do comportamento usuário objeto ter que particular invocando uma echo “Digite a sua senha:” operação apropriada que foi definida no objeto. Em Java, isto é feito pela read -s resposta chamada de um método em um objeto usando o operador binário "." (ponto), senha="12345"
devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método= a $senha ser invocado os argumentos para o método (se houver). if [ $resposta ]; e then O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definidoAprendendo pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
129
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 143
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); echo “Senha correta!” carro1.ano = "2001"; else carro1.modelo= "fusca"; echo “Senha Incorreta!” carro1.cor = "prata"; exit 0 fi
echo -n "Informe o caminho do diretório para backup:” read diretorio if [ -d $diretorio ]; then echo “Diretório encontrado. Aguarde... fazendo o backup!” tar cvfz backup.tar.gz $diretorio/* else echo “Diretório não encontrado!” exit 0 fi Figura 2.4 – Layout Memória após inicialização
16.3.8. INSTRUÇÃO CASE //criando novo alias Carro carro2 = carro1;
Permite a seleção de comandos específicos a partir de uma chave de seleção, ou seja, o usuário informa o que deseja fazer a partir de uma chave e os comando associados ao mesmo serão executados. Sintaxe: case chave in teste1) comandos;; teste2) comandos;; ... *) comandos;; esac Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Os itens teste1 e teste2 são opções que o conteúdo de chave pode ter, mas caso nenhuma opção for satisfeita, a opção * será utilizada.
2.3
Membros de Instância
% vi script4.sh Cada objeto criado deverá ter sua própria instância de variáveis #!/bin/bash (atributos) definidas pela classe. Os métodos definem o comportamento de um echo -e "\nMENU" objeto. Isto é importante, pois denota que um método pertence a cada objeto da echo "(1) ... Cria diretorio" classe. confundir isto com a implementação do método, que echo Porém "(2) não ... devemos Cria back-up" éecho compartilhada porDescompacta todas as instâncias da classe. "(3) ... arquivo.tar.bz2" echo "(4) ... Sai do script" read -p "Digite a opcao escolhida: " OP 2.3.1 Invocação de Métodos case "$OP" in Objetos se comunicam pela troca de mensagens, isto significa que um 1) pode ter que mostrar um comportamento particular invocando uma objeto read -p "Informa o nome do diretório: " nome_dir operaçãoifapropriada que foi definida no objeto. Em Java, isto é feito pela [ -d $nome_dir ]; then chamada de echo um método um objeto ja usando o operador binário "." (ponto), "Esteem diretorio existe..." devendo else especificar a mensagem completa: o objeto que é o recebedor da mensagem, omkdir método$nome_dir a ser invocado e os argumentos para o método (se houver).
O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
130
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 144
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br
2)
3)
4) *) esac
//atribuindo valor a variável referência Carro carro1 = new Carro(); echo "Diretorio criado com sucesso..." carro1.ano = "2001"; fi; carro1.modelo= "fusca"; ;; carro1.cor = "prata";
read -p "Informe o diretorio para back-up: " dir_bkp if [ -d $dir_bkp ]; then tar cvfj $dir_bkp.tar.bz2 $dir_bkp echo "Back-up criado com sucesso!" else echo "Diretódio não encontrado!" fi; ;; read -p "Informe o arquivo .tar.bz2: " arq_tar_bz2 if [ -e $arq_tar_bz2 ]; then tar xvfj $arq_tar_bz2 Figura 2.4 – Layout Memória após inicialização echo -e "\nArquivo descompactado em `pwd`" //criando novo alias else Carro carro2 = carro1; echo -e "\nArquivo nao encontrado" fi; ;; echo "Saindo ..." ;; echo "Opcao invalida, tente novamente ..." ;;
16.3.9. INSTRUÇÕES DE REPETIÇÃO FOR – Executa uma ou mais ações para cada elemento de uma lista. Neste caso, cada número gerado pelo comando seq. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto Sintaxe: 2.3 Membros de Instância for i in $(seq N); do Cada objeto criado deverá ter sua própria instância de variáveis comandos (atributos) definidas pela classe. Os métodos definem o comportamento de um done Isto é importante, pois denota que um método pertence a cada objeto da objeto.
Os valores das variáveis em um objeto constituem o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm Onde por i é atodas variável que será em 1 até o seu valor chegar a N, determinando a é compartilhada as instâncias daincrementada classe. o mesmo estado se suas quantidade de vezes que comandos será repetido. variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. se comunicam trocaaté deque mensagens, istoseja significa que um UNTILObjetos – Executa comandos pela em loop a condição verdadeira. objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela Sintaxe: chamada de um método em um objeto usando o operador binário "." (ponto), until condicao; doa mensagem completa: o objeto que é o recebedor da devendo especificar comandos mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
131
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 145
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br
done
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
WHILE – Executa comandos em loop até que a condição seja falsa. É o contrário do until. Sintaxe: while condicao; do comandos done D I C A
É altamente recomendável que os scripts contenham permissões adequadas, como por exemplo escrita somente para o dono, não possuir o bit SUID habilitado. Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definidoAprendendo pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
132
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 146
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO"fusca"; carro1.cor = "prata";
16.4. L
Este é um script simples inspirado no BrOffice em linha de comando que executa as seguintes ações: - Abre vários formatos de arquivos OpenOffice; - Visualiza arquivos do OpenOffice em modo somente leitura; - Executa apresentações do Impress e compatíveis; - Imprime documentos na impressora padrão; Figura 2.4 – Layout Memória após inicialização
//criando novo alias 1) Adicione conteúdo Carro carro2 = ocarro1;
abaixo no arquivo scriptoff.sh.
vi ~/scriptoff.sh
#!/bin/bash echo "Escolha uma opcao" select OP in Abertura Visualizacao Apresentacao Impressao Fim; do case $OP in "Abertura") echo -e "\nAbertura de formatos do OpenOffice ***" read -p "Endereco do(s) arquivo(s): " CAMINHO /usr/bin/soffice -o $CAMINHO ;; "Visualizacao") echo -e "\nVisualizacao em modo ReadOnly ***" read -p "Endereco do(s) arquivo(s): " CAMINHO /usr/bin/soffice -view $CAMINHO ;; "Apresentacao") echo -e "\nApresentacao de Slides" read -p "Endereco do(s) arquivo(s): " CAMINHO Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto /usr/bin/soffice -show $CAMINHO ;; "Impressao") echo -e "\nImpressao de arquivos OpenOffice - impressora padrao" -p "Endereco do(s) arquivo(s): " CAMINHO 2.3 Membros deread Instância /usr/bin/soffice -p $CAMINHO Cada objeto ;; criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um "Fim") em um objeto constituem echo -e denota "\nSaindo objeto. Isto é importante, pois que***" um método pertence a cada objeto da o seu estado. break classe. Porém não devemos confundir isto com a implementação do método, que ;; Dois objetos distintos têm *)todas as instâncias da classe. é compartilhada por echo -e "\nOpcao Invalida ***" o mesmo estado se suas echo "Escolha novamente ***\n" variáveis membro têm os ;; 2.3.1 Invocação de Métodos esac mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um done;
objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Java, executá-lo. isto é feito pela 2) Dê permissão de execução paraEmpoder chamada de um método em um objeto usando o operador binário "." (ponto), chmod u+x ~/scriptoff.sh devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). ~/scriptoff.sh O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
133
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 148
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS= "prata"; carro1.cor
16.5. E
• Como se faz para saber o shell padrão? • Como se remove o acesso de um usuário ao sistema? • Crie uma função para apagar o conteúdo do diretório /tmp. • Para que serve o comando export? • Na inicialização de shell interativo qual é a sequencia de execução dos arquivos relacionados com esse processo? Figura 2.4 – Layout Memória após inicialização
• O que podemos configurar no arquivo ~/.bash_profile? •
//criando novo alias Carro carro2 =um carro1; É necessário script
ter a extensão .sh? Justifique sua resposta.
• Quais são as variáveis especiais do shell e qual o significado de cada uma? • Relacione os principais comandos de entrada e saída do shell. Não esqueça de explicar suas sintaxes. • Qual a função de uma estrutura condicional? Exemplifique. • Quais são os operadores de comparação de valores inteiros e literais. • Como funciona e qual a sintaxe da estrutura de repetição for? Qual a sua diferença em relação ao while? • Para que ser o comando seq? Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto • Qual a finalidade e a sintaxe dos comandos sql INSERT, SELECT, UPDATE, DELETEdeeInstância INNER JOIN? 2.3 Membros
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
134
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 149
Linux System LinguagemAdministration de Programação Java
Este material não pode serem distribuído. Curso Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
17. COMPACTADORES, EMPACOTADORES E BACKUP 17.1. COMPACTADORES DE ARQUIVOS GZIP – Compacta/Descompacta arquivos. Sintaxe: gzip [opcao] [arquivo1] [arquivo2] [arquivoN] Figura 2.4 – Layout Memória após inicialização Exemplos
//criando novo alias Descrição Comando Carro carro2 = carro1; Compacta o arquivo senhas.txt do diretório /tmp. O arquivo resultante terá o nome gzip /tmp/senhas.txt senhas.txt.gz.
Descompacta o arquivo /tmp/senhas.txt.gz. Voltando ao nome original do arquivo senhas.txt. gzip -d /tmp/senhas.txt.gz
O comando gunzip pode ser utilizado para realizar a mesma tarefa: gunzip /tmp/senhas.txt.gz
BZIP2 – Compacta/Descompacta arquivos. Sintaxe: bzip2 [opcao] [arquivo1] [arquivo2] [arquivoN] Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Exemplos Comando
2.3
Membros de Instância
Descrição
Compacta diretório /tmp. O arquivo resultante terá o deverá ter suao arquivo própriasenhas.txt instânciado de variáveis Os valores das variáveis nome senhas.txt.bz2. (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem o arquivo /tmp/senhas.txt.bz2. ao nome original do objeto. Isto é importante, pois denotaDescompacta que um método pertence a cada objetoVoltando da o seu estado. senhas.txt. classe. Porém não devemos confundirarquivo isto com a implementação do método, que Dois objetos distintos têm bzip2 -d /tmp/senhas.txt.gz é compartilhada por todas as instâncias da classe.
objeto criado bzip2 Cada /tmp/senhas.txt
o mesmo estado se suas O comando bunzip2 pode ser utilizado para realizar a mesma tarefa:
2.3.1 Invocação de Métodos bunzip2 /tmp/senhas.txt.gz Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação que foi definida no objeto. Em Java, isto é feito pela 17.2. apropriada EMPACOTAMENTO chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da TAR – oCria/Restaura agrupamenos de para arquivos (pacotes). mensagem, método a ser invocado e os argumentos o método (se houver).O O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo um Seja que esteja definido pelo objeto. com Profissionais
variáveis membro têm os mesmos valores.
comando Tar permite 135
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 150
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); "2001"; que secarro1.ano crie, atualize= ou recupere backups. carro1.modelo= "fusca"; carro1.cor = arquivo1 "prata"; [lista_arquivos_do_pacote] Sintaxe: tar [opcao] D I C A
O empacotamento não é o mesmo que compactação. Enquanto que a compactação diminui o tamanho do arquivo, o empacotamento somente os reúne em um único arquivo. Fique atento a essa diferença nos exames da LPI.
Exemplos Comando
Descrição Cria um arquivo chamado pacote.tar com conteúdo de todos os arquivos do diretório /tmp. Onde as opções: Figura 2.4 – Layout Memória após inicialização
//criando alias tar cvf pacote.tar novo /tmp/*
c: cria o arquivo .tar. Carro carro2 = carro1; v: mostra os arquivos que estão sendo empacotados. f: indica o nome do arquivo que receberá os arquivos de /tmp, no caso pacote.tar. Exibe a lista de todos os arquivos empacotados dentro do arquivo pacote.tar.
tar tf pacote.tar
Onde as opções: t: lista arquivos empacotados.
tar rvf pacote.tar teste.txt
Acrescenta o arquivo teste.txt no arquivo pacote.tar. Onde a opção r indica que será acrescentado um novo ao arquivo .tar. Desempacota (extrai) o arquivo pacote.tar no diretório atual. Onde a opção x indica a extração dos arquivos.
tar xvf pacote.tar
2.3
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Membros de Instância
Dica: a opção -C indica um outro local para a extração dos arquivo. Então o comando abaixo extrai os arquivos de pacote.tar para o diretório /opt. tar xvf pacote.tar -C /opt
Cada objeto criado deveráEmpacota ter suae compacta própria todos instância de variáveis Os valores variáveis os arquivos do diretório /tmp dentro dodas arquivo (atributos) definidas pela classe. Os métodos definem o comportamento de um pacote.tar.gz. em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. tar zcvf arquivo.tar.gz a opção z é utilizada parado compactar classe. Porém não devemos/tmp/* confundirOnde isto com a implementação método,com queo gzip. No caso do escolhido Dois objetos distintos têm seja bzip2 a opção que deverá ser utilizada será j. é compartilhada por todas as instâncias daoclasse.
o mesmo estado se suas variáveis membro têm os mesmos valores.
tar jcvf arquivo.tar.gz /tmp/* 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma D As que operação apropriada foi opções definidausadas no objeto. Em Java,(r), istoextrair é feito mesmas para adicionar (x) pela e listar (t) podem ser I chamada de um Cmétodo emem umconjunto objetocom usando o operador binário "." utilizadas as opções de compactação (z e (ponto), j). A devendo especificar a mensagem completa: oe empacotadores objeto que é éoderecebedor da Conhecer os compactadores suma importância no exame de mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
136
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 151
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.anocertificação. = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
17.3. BACKUP CPIO – Copia arquivos para algum ou de algum arquivo. Possui muitas aplicações e um sintaxe é complexa, portanto não será visto em sua totalidade, somente os usos mais relevantes, uma delas é o backup. Figura 2.4 – Layout Memória após inicialização Opções
novo alias Opção//criando Descrição Carro carro2 = carro1; -i Extrai arquivos de backup. -o
Cria arquivos de backup.
-t
Mostra uma tabela com o conteúdo do arquivo de backup.
-F
Indica o nome do arquivo de backup.
-d
Cria diretórios se for necessário.
-c
Lê ou escreve informações de cabeçalho em caracteres ASCII.
-v
Mostra a saída em detalhes.
Exemplos Comando
Figura 2.5 –Descrição Layout Memória duas variáveis referência para o mesmo objeto
cpio -iF backup.cpio memo.ben
2.3
Restaura o arquivo memo.ben de um arquivo cpio chamado backup.cpio. Prática
Membros de Instância
Criar um diretório Cada objetode teste: criado deverá ter sua própria instância de variáveis mkdir ~/teste
(atributos) definidas pela classe. Os métodos definem o comportamento de um cd ~/teste objeto. Isto é importante, pois denota que um método pertence a cada objeto da Criar um subdiretório: classe. não devemos confundir isto com a implementação do método, que mkdirPorém ~/teste/exemplo cd ~/teste/exemplo é compartilhada por todas as instâncias da classe. Criar dois arquivos vazios nesse subdiretório:
touch Invocação arq1.txt arq2.txt 2.3.1 de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um Preencher o arquivo1 com um conteúdo aleatório: ls /tmp/* arq1.txt objeto pode> ter que mostrar um comportamento particular invocando uma operação que foi definida no objeto. Em Java, isto é feito pela Voltar aoapropriada diretório ~/testes: cd ~/testes chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar mensagem completa: o objeto que ~/teste/exemplo: é o recebedor da Fazer um backup dosa arquivos arq1.txt e arq2.txt do diretório find ~/teste/exemplo -name arq* |e cpio -o > ~/teste/exemplo/teste.bin mensagem, o método a ser invocado os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
137
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 152
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); = "2001"; Extraircarro1.ano o backup: cpio -iF ~/teste/exemplo/teste.bin carro1.modelo= "fusca"; carro1.cor = "prata";
O cpio extrairá os arquivos na certeza de que os arquivos do backup não sejam mais antigos que os do diretório ~/teste/exemplo. Para solucionar esse problema é interessante gerar uma lista dos arquivos antigos (extensão .old por exemplo) no diretório corrente como entrada para o cpio que vai criar um backup lendo ou escrevendo a informação de cabeçalho em caracteres ASCII em modo detalhado para um dispositivo de armazenamento em massa (pendrive por exemplo). Isso é útil quando as máquinas de origem e destino do backup não são as mesmas. Figura 2.4 – Layout Memória após inicialização
novo alias find . //criando -name “*.old” | cpio -ocBv > /dev/sdb1 Carro carro2 = carro1;
Para restaurar do dispositivo de armazenamento os arquivos possuem uma determinada palavra (“save” por exemplo). cpio -icdv “*save*” < /dev/sdb1
Para listar o conteúdo de um arquivo chamado cpio.bin: cpio -t < cpio.bin
Para gerar um Figura backup baseado em um arquivo texto (lista.txt por exemplo) 2.5 – Layout Memória duas variáveis referência para o mesmo objeto contendo a lista de arquivos a serem “backupeados”: cpio -oMembros < lista.txt cpio.bin 2.3 de>Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem D objeto. Isto é importante, pois denota que um método pertence a cada objeto da para realizar Da maneira como o comando cpio foi ilustrado é o suficiente bonsestado. o seu I classe. Porém nãoC devemos com a implementação do método, que backups econfundir responderisto as questões de certificação LPI. Dois objetos distintos têm A é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos DD – Objetos Converte e copia um arquivo, escreve cabeçalhos de discos, registros boot, mesmosde valores. se comunicam pela troca de mensagens, isto significa que um
cria disco etc. Ele possui muitasinvocando utilizações. objeto pode de ter boot, que mostrar umrealmente comportamento particular uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela Sintaxe: dd [opcoes] chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da Exemplos mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
138
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 153
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Comando Descrição carro1.modelo= "fusca"; dd if=/dev/sda of=/dev/sdb Clona um disco rígido (/dev/sda) para outro (/dev/sdb). carro1.cor = "prata"; Clona um disco rígido (/dev/sda) para uma imagem de dd if=/dev/hda of=/imagem.img disco (/imagem.img) dd if=/dev/hda bs=100M | gzip -c > /imagem.img
Clona um disco rígido (/dev/hda) compactando-o para um arquivo de imagem /imagem.img.
dd if=boot.img of=/dev/fd0 bs=1440
Cria um disquete de boot (/dev/fd0) a partir do arquivo boot.img.
dd if=arquivo1 of=arquivo2 conv=lcase
Converte todas as letras maiúsculas do arquivo1 para minúsculas no arquivo2.
dd if=arquivo2 of=arquivo3 conv=ucase
Converte as letras minúsculas do arquivo2 para maiúsculas no arquivo3.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
139
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 154
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO"fusca"; carro1.cor = "prata";
17.4. L
Este laboratório tem o objetivo de fazer o backup e a recuperação do setor de boot (MBR) de um disco rígido SCSI. Para isso usaremos o comando dd. O gestor de início e a tabela de partição são salvos no primeiro setor do disco rígido, o MBR, que contém apenas 512 bytes (446 bytes reservados para o setor de boot e 66 bytes guardam a tabela de partição). Normalmente na troca de sistema operacional, geralmente perde-se o MBR, pois o outro gestor de início o sobrescreve. A tabela de partição só é modificada ao criar ou deletar partições. Caso por qualquer motivo os 66 bytes desta tabela forem Figura 2.4 – Layout Memória após inicialização perdidos, o acesso ao disco rígido também será perdido. Para evitar isso, você pode //criando novo alias fazer Carro um backup MBR para recuperar tudo caso ocorra algum problema. carro2da = trilha carro1; 1) Para fazer o backup, copiaremos os primeiros 512 bytes do dispositivo /dev/sda (disco SCSI, mas pode ser outro) no arquivo backupmbr.img. dd if=/dev/sda of=backupmbr.img bs=512 count=1
2) A restauração poderá ser a qualquer momento que for necessário. dd if=backupmbr.img of=/dev/sda
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Lembre-se de que o backup vai armazenar a tabela de particionamento atual, sempre que for reparticionar o HD, não se esqueça de atualizar o backup, ou seja, fazê-lo Membros de Instância novamente. D I C A
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
140
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 155
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS= "prata"; carro1.cor
17.5. E
• É possível um compactador como o gzip ou bzip2 comprimir vários arquivos e/ou diretórios em um único arquivo? • Suponha um pacote chamado testepacote.tar. Com o comando tar, acrescente a ele todos os arquivos do diretório /tmp. • Qual é a sintaxe de criação de um arquivo compactado através do comando tar? • Qual a linha de comandoFigura que2.4descompacta o arquivo arq1.tar.gz escolhendo o – Layout Memória após inicialização local da descompactação (por exemplo /opt)? //criando novo alias carro2 = carro1; • Carro Suponha um arquivo de backup chamado backupdados.cpio que contém os dados de toda empresa. Você quer extrair o backup, qual a linha de comando que tornaria isso possível? E se fosse somente o arquivo senhas.txt?
• Usando o cpio como seria feito o backup de todos os arquivos de /tmp/? • Como se cria um pendrive de boot a partir de uma imagem chamada bootdiskusb.img? Considere que o dispositivo do pendrive seja /dev/sdb1.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
141
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 156
Siga-nos também no Twitter! twitter.com/3waynet
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Curso não Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] da | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
18. GERENCIAMENTO DE PACOTES 18.1. GERENCIAMENTO DE PACOTES REDHAT O formato de um arquivo RPM segue o seguinte padrão: emacs-20.711cl.i386.rpm. Os nomes dos arquivos RPM contém informações sobre a versão e a arquitetura queFigura eles destinam. caso acima, o arquivo diz que se 2.4 se – Layout Memória apósNo inicialização pacote do Emacs, versão 20.7, release 11cl e projetado para a //criando trata novo do alias Carro carro2 = carro1; plataforma Intel 386. Os pacotes com nomes no formato NomeDoPacote-versao.src.rpm não contém binários, somente os arquivos fontes relacionados ao aplicativo, quase sempre independentes de arquitetura. Apesar de várias distribuições de Linux utilizarem pacotes do tipo RPM, isso não significa que eles sejam iguais e que um pacote feito originalmente para uma distribuição irá funcionar perfeitamente em outra. Além dos arquivos que compõem um determinado aplicativo, o pacote RPM contém também informações de como instalar, em que local copiar os arquivos, como configurar, etc. Essas informações adicionais podem ser diferentes de 2.5 – Layout Memória duasevitar variáveis referência para o mesmo objetoo administrador deve uma distribuição para Figura outra, então, para inconvenientes, procurar sempre utilizar pacotes feitos especificamente para a sua distribuição. 2.3
Utilizando o RPM é possível: Instalar, Atualizar, Remover e Consultar Membros de Instância
Cada criado deverá ter sua própria instância de variáveis pacotes na objeto Base de Dados RPM. (atributos) definidas pela classe. Os métodos definem o comportamento de um comandos podem fazera alteração no objeto. IstoNormalmente é importante, poisos denota que um método pertence cada objeto da entãoPorém recomenda-se (root). classe. não devemos utilizados confundir istocomo com asuperusuário implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem sistema de arquivos, o seu estado. Dois objetos distintos têm o mesmo estado se suas 18.1.1. INSTALANDO UM PACOTE RPM variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
rpmcomportamento -ivh emacs-20.7-11cl.i386.rpm objeto pode ter que mostrar um particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), da Instalação devendo especificar a mensagem completa:Opções o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
142
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 158
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); = "2001"; Opção carro1.ano Descrição carro1.modelo= "fusca"; -i Indica=que o pacote será instalado. carro1.cor "prata"; -v
Mostra informações do processo de instalação.
-h
Indica a porcentagem da instalação utilizando # como indicador.
A instalação de pacotes foi desenvolvida para ser o mais simples possível, porém eventualmente alguns erros podem ocorrer, tais como o pacote já estar instalado, arquivos com conflitos e dependência. A tabela abaixo mostra alguns dos erros que podem ocorrer durante uma instalação. Figura 2.4 –comuns Layout Memória após inicialização Erros da Instalação
alias Erro //criando novoDescrição Carro carro2 = carro1; Se existir um arquivo já instalado por outro pacote, aparecerá a seguinte mensagem: Este pacote não pode ser instalado... Para ignorar esta mensagem e instalar o pacote deve ser Arquivos com conflitos acrescentado o parâmetro --replacefiles no comando. rpm -ivh emacs-20.7-11cl.i386.rpm --replacefiles
Pacote já instalado
Irá aparecer a mensagem: package pacote.rpm já está instalado! Para ignorar a mensagem e instalar o pacote novamente você deve indicar essa decisão ao RPM. Para isso acrescentar o parâmetro --force ao comando. rpm -ivh emacs-20.7-11cl.i386.rpm --force
Dependência
O pacote.rpm que está sendo instalado depende de outro pacote previamente instalado. Aparecerá a seguinte mensagem: falha de dependência: pacoteXYZ.rpm é necessário para pacote.rpm. Para ignorar essa mensagem deve-se usar o parâmetro --nodeps para realizar a instalação sem checar as dependências. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto rpm -ivh emacs-20.7-11cl.i386.rpm --nodeps
2.3
Membros de Instância
18.1.2.Cada ATUALIZANDO UM deverá PACOTEter RPM objeto criado sua
própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que umemacs-20.7-11cl.i386.rpm método pertence a cada objeto da rpm -Uvh classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. Opções da Atualização
2.3.1 Invocação de Métodos Opção Descrição Objetos se comunicam pela troca de mensagens, isto significa que um -U Indica que o pacote será Atualizado. particular invocando uma objeto pode ter que mostrar um comportamento -v operação apropriada que informações foi definida objeto. Em Java, isto é feito pela Mostra do no processo de instalação. chamada de um método em um objeto usando o operador "." (ponto), -h Indica a porcentagem da instalação utilizando #binário como indicador. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
143
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 159
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; A atualização de um pacote.rpm normalmente é carro1.modelo= "fusca"; posterior da versão= que está instalada, mas pode acontecer carro1.cor "prata";
feita para uma versão que a nova versão não satisfaça as necessidades, sendo assim necessário voltar para a versão antiga. Para que o RPM concorde em atualizar para uma versão mais antiga do pacote, será preciso fornecer o parâmetro --oldpackage. rpm -Uvh emacs-20.7-11cl.i386.rpm --oldpackage
A opção de atualização é com U maiúsculo. É comum em questões da certificação aparecerem com u minúsculo. esseinicialização detalhe, pois devido ao pouco tempo Figura 2.4 –Fique Layout atento Memóriaaapós é comum marcar erradamente. //criando novo alias Carro carro2 = carro1; D I C A
18.1.3. DESINSTALANDO UM PACOTE RPM rpm -e emacs Opções da Desinstalação Opção
Descrição
-e
Indica que o pacote será desinstalado. Para desinstalar um pacote deve ser informado apenas o nome do pacote, por exemplo, emacs. Isso porque o pacote já está instalado.
--allmatches
Desinstala não só o pacote mas tudo que pertence a ele. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Se um outro pacote instalado depender do pacote que está sendo desinstalado, aparecerá o seguinte erro: a remoção deste pacote quebraria dependência: Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis pacote.rpm é pela necessário para pacoteXYZ.rpm. Parade remover assim mesmo, (atributos) definidas classe. Os métodos definem o comportamento um em um objeto constituem acrescentar o parâmetro --nodeps. objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. 2.3
Membros de Instância
classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias darpm classe. -e emacs --nodeps
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um 18.1.4. CONSULTANDO UM PACOTE RPM objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando operador binário "." (ponto), rpmo -qXX emacs devendo especificar a mensagem completa: o objeto que é o recebedor da XX → Ée ooscomplemento opção q (queue(se – consulta). mensagem, o método a ser invocado argumentosdapara o método houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
144
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 160
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; Opções de Consulta carro1.cor = "prata"; Opção Descrição
Indica consulta no sistema de gerenciamento RPM. Normalmente essa opção vem juntamente com outras opções para especificação ou detalhamento da consulta. -q
O comando abaixo mostra apenas o nome do pacote emacs. rpm -q emacs
Mostra todos os pacotes que contenham o nome emacs. Este é o melhor comando para ser utilizado quando deseja consultar um pacote já instalado.
--qa
rpm -qa | grep emacs -qlp
-qi
2.4 –parte Layout após inicialização Para ver quais arquivosFigura fazem deMemória um determinado pacote. //criando novo alias rpm -qlp emacs-20.7-11cl.i386.rpm Carro carro2 = carro1; Para obter informações sobre um pacote instalado no sistema.
rpm -qi emacs
Obter informações de um pacote não instalado.
-qip
rpm -qip emacs-20.7-11cl.i386.rpm
D I C A
O gerenciador de pacotes RPM é um tópico que merece atenção, pois é muito cobrado no exame da certificação LPI. Consultar o manual oficial do RPM para informações mais detalhadas é uma boa prática para obter bom aproveitamento. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
18.1.5. EXTRAINDO DADOS DE RPMS
2.3
Membros de Instância
Usamos comando parainstância converter um arquivo RPMdasem um Cada objeto ocriado deverá rpm2cpio ter sua própria de variáveis Os valores variáveis arquivo definidas do tipo pela cpioclasse. para Os poder obter informações desse rpm (atributos) métodos definem o comportamento de umou extrair em umarquivos. objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu O comando converte arquivo emacs-20.7-11cl.i386.rpm noestado. arquivo classe. Porém não devemosabaixo confundir isto com aoimplementação do método, que Dois objetos distintos têm arqemacs.cpio. écpio compartilhada por todas as instâncias da classe. o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos rpm2cpio emacs-20.7-11cl.i386.rpm > arqemacs.cpio mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma A listagem arquivo emEmformato cpio podepela ser operação apropriada quedefoium definida no rpm objeto. Java, isto é feito chamada de um método em um objeto usando o operador binário "." (ponto), a seguir. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
feita com o comando
145
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 161
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano =rpm2cpio "2001"; emacs-20.7-11cl.i386.rpm | cpio -t carro1.modelo= "fusca"; carro1.cor = "prata";
Para extrair pode-se utilizar a opção -ivd.
rpm2cpio emacs-20.7-11cl.i386.rpm | cpio -ivd “*.txt”
18.1.6. USANDO YUM É um sistema gerenciador de pacotes RPM que manipula muito bem as dependências que os pacotes podem conter. Ele agiliza muito o processo de instalação, desinstalação, atualização e busca de informações de pacotes Figura 2.4 – Layout Memória após inicialização RPM.//criando Sua sintaxe é muito novo alias simples e está descrita abaixo. Carro carro2 = carro1;
Sintaxe: yum [opcao] [comando] [pacote] As opções são dependentes do comando que se usa. Os comandos estão relacionados no quadro a seguir e os pacotes representam o pacote a ser submetido ao yum. Comandos do YUM Comando
Descrição
install
Instala um ou mais pacotes indicados pelo nome incluindo suas dependências.
update
2.5indicado – Layout Memória variáveis o mesmo objeto Atualiza oFigura pacote com a duas versão maisreferência recentepara disponível.
check-update
Verifica se há versão mais recente disponível.
Semelhante ao update, incluindo a opção --obsoletes que manipula pacotes obsoletos sobretudo upgrade 2.3 Membros de Instância durante uma atualização de distribuição.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis remove ou erase pacotes sistema, definem assim como o rpm -e. (atributos) definidas Remove pela classe. Osdo métodos o comportamento de um em um objeto constituem list Isto é importante, objeto. denota que um pertence a cada objeto da Mostrapois informações sobre ummétodo determinado pacote. o seu estado. classe. confundir isto com a implementação do método, que searchPorém não devemos Realiza pesquisa em pacotes baseadas em um padrão de caracteres fornecidos. Dois objetos distintos têm é compartilhada por todas as instâncias da classe. clean
Limpa o cache de diretórios do Yum.
localinstall o pacote informado usando repositórios locais. 2.3.1 Invocação deInstala Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma yum operação Exemplo: apropriada que foi install definidaemacs no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
146
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 162
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; 18.1.7. CONFIGURANDO O YUM carro1.modelo= "fusca"; carro1.cor O arquivo =de"prata"; configuração do YUM
opções, veja as principais no quadro.
é /etc/yum.conf, ele possui muitas
Opções do /etc/yum.conf Opção
Descrição
cachedir
Informa o diretório de armazenamento dos pacotes e arquivos de dados. Normalmente é /var/cache/yum.
keepcache
Mantém os pacotes e arquivos após uma instalação (para valor 1, se valor 0 não mantém).
debuglevel
Determina o nível da mensagem de aviso. A faixa de valores vai de 0 a 10, sendo 2 o padrão. Figura 2.4 – Layout Memória após inicialização
novo alias Define o caminha para o arquivo de log. Carro carro2 = carro1; Determina o nível das mensagens de erro. A faixa de valores vai de 0 a 10, sendo 2 o errorlevel padrão. logfile //criando
gpgcheck
Define se o yum deve ou não fazer a verificação da assinatura GPG dos pacotes.
reposdir
Determina uma lista de caminhos onde o yum pode procurar por arquivos .repo (definição de repositórios). O padrão é /etc/yum.repos.d ou /etc/yum/repos.d.
18.1.8. CRIAÇÃO DE UM ARQUIVO .REPO Ele possui o seguinte formato:
2.3
[identificador_repositorio] Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto name=descricao_do_repositorio baseurl=caminho_repositorio enabled=valor gpgcheck=valor Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) Onde definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem identificador_repositorio representa o termo que identifica unicamente objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. o repositório, descricao_do_repositorio descreve o nome do repositório e base_url é classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm localizaçãopordotodas diretório que da contém éacompartilhada as instâncias classe. os arquivos (pacotes) do repositório – podendo
ser uma ou mais url http://, ftp://, file://.
o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um YUMDOWNLOADER – Ao invés de instalar uminvocando pacote, faz objeto pode ter que mostrar um comportamento particular uma o download do mesmo operação apropriada que Se foi quiser definida optar no objeto. Java, isto feitodo pela no diretório local. peloEmfonte em évez binário usa-se a opção chamada de um método em um objeto usando o operador binário "." (ponto), --source. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, método a ser invocado e os argumentos para o método (se houver). Sintaxe: oyumdownloader pacote O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 147 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 163
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; emacs Exemplos: yumdownloader e yumdownloader carro1.modelo= "fusca"; carro1.cor = "prata";
--source emacs
18.1.9. ASSINATURAS DE PACOTES
Para incorporar uma chave ao banco de dados RPM é necessário utilizar a opção --import do comando rpm. No redhat enterprise o diretório que contém as chaves é /etc/pki/rpm-gpg/. rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
A verificação de cada pacote copiado do repositório redhat pode ser feita Figura 2.4 – Layout Memória após inicialização quando utilizando-se a opção --checksig do comando rpm. //criando novo alias Carro carro2 = carro1; rpm --checksig nome_do_pacote
Já a integridade dos pacotes instalados pode se verificada com -V e a opção -Va verifica todos. D I C A
As verificações de assinatura (--checksig) e da integridade (-V) de pacotes RPM são presença garantida nas provas da LPI. Estude esses pontos e memorize as opções correspondentes.
18.2. GERENCIAMENTO DE PACOTES DEBIAN
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
18.2.1. DPKG de (DInstância EBIAN PACKAGE) 2.3 Membros
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem DPKG pois é odenota programa deo seu pacotes objeto. Isto O é importante, que um responsável método pertencepelo a cadagerenciamento objeto da estado.em classe. Porém não devemos confundir isto com a implementação do método, que sistemas Debian. Sua operação é feita em modo texto, muito com otêm Doisparecido objetos distintos é compartilhada por todas as instâncias da classe.
rpm, mas essa não é a única forma de utilizá-lo.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos Existem ferramentas mais amigáveis para a seleção e instalação de pacotes, mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
tais como o dselect (um front-end para o dpkg), o APT (Advanced Packaging Tool)
objeto pode ter que mostrar um comportamento particular invocando uma ou o aptitude (uma operação apropriada que evolução foi definidado noapt). objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador (ponto), Os usuários mais avançados do Debianbinário e os "." desenvolvedores usam o dpkg devendo especificar a mensagem completa: o objeto que é o recebedor da para instalação, manutenção e construção de seus próprios pacotes. O nome dos mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 148 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 164
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; pacotes Debian possuem o seguinte formato: carro1.modelo= "fusca"; carro1.cor = "prata"; nomepacote_versao-revisao.deb
dpkg -i [NomedoPacote] (ou –install) dpkg -l [NomedoPacote] (--list) dpkg -r [NomedoPacote] (--remove) dpkg --purge [NomedoPacote] dpkg -S arquivo (--search) dpkg -s pacote (--status)
Sintaxe / Opções DPKG Instala um pacote. Lista pacotes existentes no sistema. Remove um pacote. Remover um pacote e todos os diretórios e arquivos de configuração criados. Descobre a qual pacote do sistema o arquivo informado pertence. Verifica o status de um pacote no sistema.
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
18.2.2. APT (ADVANCED PACKAGE TOOL) O APT é o sistema de gerenciamento de pacotes de programas do Debian que possui resolução automática de dependências entre pacotes. É mais fácil instalar, operar e atualizar pacotes ou a distribuição. Ele funciona através de linha de comando, mesmo assim existem interfaces gráficas para o Apt como o Synaptic (modo gráfico) e o aptitude (front-end para o APT). Sintaxe / Opções APT Instala novos pacotes na distribuição. o pacote, os arquivos de configuração. Para remoção Figura 2.5 –Remove Layout Memória duas mantendo variáveis referência para o mesmo objeto apt-get remove [NomedoPacote] completa, adicionar a oção --purge. apt-get update Atualiza a lista de pacotes (obrigatório). apt-get -f dist-upgrade 2.3 Membros de Instância Atualiza a distribuição. apt-get install [NomedoPacote]
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é/etc/apt/sources.list importante, pois denota que um método pertence a cada objeto da Arquivo classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo suas Esse arquivo contém os endereços dos repositórios utilizados peloestado APT.seOs membro têm os 2.3.1 Invocaçãosão de Métodos repositórios divididos em três categorias: main (contém apenasvariáveis softwares livres), mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
contrib (contém software livre que dependem de software proprietário) e non-free DFSG - Definição
objeto pode ter que mostrar um comportamento particular invocando uma (contém software de código fechado ou que não se enquadra na operação apropriada que foi definida no objeto. Em Java, isto é feito pela Debiande deum Software Livre). chamada método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa:deo repositório objeto que éválido: o recebedor da Abaixo segue um exemplo mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
149
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 165
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; deb ftp://ftp.br.debian.org/debian/ lenny main contrib non-free carro1.cor = "prata";
Com esse repositório teria acesso a arquivos compilados (deb), no servidor (ftp://ftp.br.debian.org/debian/), para a distribuição lenny do debian e pacotes tenham os tipos main, contrib e non-free. Em alguns casos é possível encontrar repositórios adicionais no diretório /etc/apt/sources.list.d/. CONSULTA – Pode-se utilizar apt-cache search programa ou aptitude search programa. Figura 2.4 – Layout Memória após inicialização //criando novo alias Carro carro2 = carro1; INSTALAÇÃO – Pode
ser feita através de apt-get install nome_programa ou aptitude install nome_programa. RECONFIGURAÇÃO – Basta utilizar dpkg -reconfigure nome_programa.
18.3. COMPILAÇÃO DE PROGRAMAS Quando necessita-se instalar um programa cujo pacote pré-compilado não existe para uma determinada distribuição/plataforma ou para otimizar o pacote já existente, então será necessário instalar através da compilação do código fonte. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
O primeiro passo é obter o código fonte do programa, que geralmente é encontrado no site do próprio desenvolvedor ou em sites como o freshmeat.net e 2.3 Membros deAInstância sourceforge.net. maioria dos programas para linux são escritos na linguagem C ou Cada objeto criado deverá ter sua própria de variáveis Os valores variáveis C++ e são encontrados comumente na instância forma de arquivos tar.gz oudastar.bz2 (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem (empacotados e compactados). objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que Instalação Compilada é compartilhada por todas as instâncias da classe. Passo Descrição
2.3.1 de Métodos 1 Invocação Fazer o download do código fonte. Objetos se comunicam pela troca de mensagens, isto significa que um Ex.: programa1.tar.gz e programa2.tar.bz2) objeto pode ter que mostrar um comportamento particular invocando uma 2 código operaçãoDescompactar apropriada oque foi fonte. definida no objeto. Em Java, isto é feito pela tar zxvf programa1.tar.gz ou tar jxvf oprograma2.tar.bz2 chamada de um método em um objeto usando operador binário "." (ponto), 3 devendo Entrar especificar a mensagem completa: o objeto que é o recebedor da no diretório resultante da descompactação. cd o diretorio_do_programa mensagem, método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
150
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 166
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
4 5
6
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Examinar o conteúdo desse diretório (opcional, mas recomendado). carro1.modelo= "fusca"; ls -la carro1.cor = "prata"; Procurar por informações oficiais de instalação, tais como requisitos e detalhes técnicos (Encontradas nos arquivos README ou INSTALL). Um ambiente mínimo para a instalação compilada deve conter os pacotes: Compilador C e C++ GCC (pacotes gcc, cpp e g++), GNU Make e, em alguns casos, o autoconf e o automake.
Configurar o ambiente da instalação (script configure). Ele examina o sistema na busca por bibliotecas, arquivos de configuração e executáveis necessários para a compilação do programa. Se tudo estiver correto, ele gera um arquivo chamado Makefile, que será usado pelo comando make durante a compilação. Se alguma dependência for encontrada, a execução será encerrada e uma mensagem indicativa do erro será exibida. ./configure
7 8
Figura 2.4 – Layout Memória após inicialização
Compilar o programa com o comando make. //criando novo alias make Carro carro2 = carro1; Ao final da compilação, se não houver nenhum erro, muitos arquivos binários foram gerados, então este será o momento da instalação do programa. Essa etapa deverá ser realizada pelo superusuário (root), pois ocorrerão cópias de arquivos em lugares restritos. O comando su será necessário nesse momento e, após a digitação da senha de root, o make install. su
make install
D I C A
2.3
Basicamente a sequencia para a realização de uma instalação compilada, após a descompactação do código fonte do programa, já estando dentro do diretório descompactado são: $ ./configure $ make Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto # make install
Membros de Instância
Cada objeto criado ter do suascript própria instância de variáveis As opções mais deverá comuns configure podem ser listadas comdas a opção Os valores variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um --help. A mais usada, sem dúvida, é a --prefix, ela diz o caminhoemonde o programa um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. será instalado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
./configure --help
2.3.1 Invocação de Métodos ./configure --prefix=/usr/ Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que comando foi definidaexibe no objeto. Em Java,gerais isto é de feitoconfiguração pela O primeiro as opções chamada de um método em um objeto usando o operador binário "." (ponto), segunda especifica que o software e toda a sua área de diretórios serão devendo especificar a mensagem completa: o objeto que é o recebedor da diretório o/usr. mensagem, método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
do script e a instalados no
151
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 167
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano "2001"; A maioria =dos softwares disponibilizam um comando de desinstalação, seu carro1.modelo= "fusca"; objetivo é apagar os arquivos gerados pela compilação. Assim como o comando de carro1.cor = "prata";
instalação, esse também necessita de direitos de administrativos. make uninstall
É comum a atualização de sistemas ou até a reinstalação do mesmo, pensando-se nessa situação é que existe um comando que limpeza de resíduos (arquivos e diretórios) gerados de compilações anteriores. make clean
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
18.4. GERENCIAMENTO DE BIBLIOTECAS COMPARTILHADAS No mundo livre os desenvolvedores de softwares fazem uso constante de bibliotecas compartilhadas (semelhante às dlls do windows) como meio de torná-los cada vez mais portáveis e menores, pois ao usar uma biblioteca que já existe no sistema, o tamanho do programa diminui sensivelmente de tamanho e a possibilidade de o mesmo ser compatível com outras distribuições aumenta. Nesse contexto o gerenciamento de bibliotecas é necessário e vai além de apenas fazer a instalação ou a configuração das mesmas, é preciso conhecer seus princípios no Linux. Então vamos a eles. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
18.4.1. LOCALIZANDO AS BIBLIOTECAS
A localização das bibliotecas bibliotecas compartilhadas é um dos maiores desafios assunto programas podem apontar Cadaquando objeto o criado deveráé a tersua suamanipulação, própria instânciapois de os variáveis Os valores das variáveis para o definidas seu nome (como em libc.so.6) para seu decaminho (como (atributos) pela classe. Os métodos definem o ou comportamento um emcompleto um objeto constituem objeto. Isto é importante, pois denota que um métodoconfigurar pertence a cada objeto da de uma biblioteca, /lib/libc.so.6). No primeiro caso, deve-se o caminho o seu estado.um classe. Porém não devemos confundir isto com a implementação do método, que conjunto de diretórios em que os programas devem procurar pelas Istotêm Doisbibliotecas. objetos distintos é compartilhada por todas as instâncias da classe. o mesmo estado se suas pode ser feito tanto através de um arquivo de configuração global e através de uma membro têm os variável de ambiente. está errado, deve2.3.1 Invocação de MétodosSe um caminho estático para uma bibliotecavariáveis mesmos valores.de Objetos se comunicam pelade troca de mensagens, isto significa um estes casos, se encontrar uma maneira corrigir o problema. Em que todos depois objeto que mostrar um comportamento invocando fazer pode uma ter mudança, pode-se precisar usarparticular um comando parauma que o sistema reconheça operação apropriada que foi definida no objeto. Em Java, isto é feito pela a alteração. chamada de um método em um objeto usando o operador binário "." (ponto), 2.3
Membros de Instância
devendo especificar a mensagem o objeto que é o da recebedor da A primeira maneiracompleta: de definir o caminho biblioteca mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
é fazer a edição do 152
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 168
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001";Este arquivo contém o caminho das bibliotecas arquivo /etc/ld.so.conf. carro1.modelo= "fusca"; compartilhadas. distribuições possuem uma linha diferente neste arquivo, carro1.cor Algumas = "prata";
esta linha começa com a diretiva include, e na verdade, ela inclui as bibliotecas por programa específico: include /etc/ld.so.conf.d/*.conf
Dentro do diretório /etc/ls.so.conf.d/ encontram-se arquivos representativos das bibliotecas de programas instalados no sistema, como por exemplo, mysqli386.conf ou qt-i386.conf. Independente do arquivo de configuração manipulado, /etc/ld.so.conf ou /etc/ld.so.conf.d/*, é preciso executar o comando ldconfig para Figura 2.4 – Layout Memória após inicialização que as//criando alteraçõesnovo possam ficar disponíveis para o sistema. alias Essa é uma mudança permanente, no entanto para realizar uma mudança temporária é possível manipular a variável de ambiente LD_LIBRARY_PATH para especificar caminhos adicionais. A linha de comando abaixo adiciona os diretórios /usr/local/testelib/ e /opt/novalib/ como caminho de busca. Usa-se dois pontos ( : ) para separar os caminhos. Carro carro2 = carro1;
export LD_LIBRARY_PATH=/usr/local/testelib:/opt/novalib
Caso seja a necessidade, é possível colocar essa variável de ambiente para ser inicializada durante o boot do sistema, para isso, basta colocá-la em um dos scripts de inicialização, tais como /etc/profile, ~/.bash_profile, etc. Porém o arquivo Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto /etc/ld.so.conf é a forma mais apropriada. Os comandos para gerenciamento de bibliotecas compartilhadas no Linux são
2.3 ldd e Membros ldconfig.de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da LDD – Exibe a lista de bibliotecas compartilhadas das quais classe. Porém não devemos confundir isto com a implementação do método, que édepende. compartilhada por todas as instâncias da classe.
Sintaxe: ldd [opcao] ... arquivo …
Os valores das variáveis em um objeto constituem o seu estado. um arquivo binário Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um Exemplos objeto pode ter que mostrar um comportamento particular invocando uma operação Em Java, isto é feito pela Comandoapropriada que foi definida no objeto. Descrição chamada de um método em um objeto usando Mostra o operador "." (ponto), a listabinário de bibliotecas compartilhadas que o binário ls ldd /bin/ls devendo especificar a mensagem completa: o precisa objeto para queseu é perfeito o recebedor da funcionamento. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
153
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 170
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Exibe a lista de bibliotecas compartilhadas que o daemon do ssh ldd /usr/sbin/sshd carro1.modelo= "fusca"; depende. carro1.cor = "prata";
Pode-se executá-lo normalmente com usuário comum, mas caso não seja possível para algum comando, será necessário executá-lo como root. LDCONFIG – Faz a atualização da cache de bibliotecas compartilhadas. Sintaxe: ldconfig [opcao] O arquivo que armazena as bibliotecas encontradas no arquivo /etc/ld.so.conf e Figura 2.4 – Layout Memória após inicialização /etc/ld.so.conf.d/* emalias formato binário é /etc/ld.so.cache. //criando novo Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
154
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 171
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= ABORATÓRIO"fusca"; carro1.cor = "prata";
18.5. L
Este laboratório tem o objetivo de fazer criar um repositório local YUM baseado nos pacotes da mídia de instalação. Vamos supor que o repositório tenha o IP 192.168.0.100 e o seu IP seja 192.168.0.101. Outras considerações são que os pacotes referentes ao servidor web (apache) e o criador de repositórios (createrepo) devem estar instalados previamente no sistema. Figura 2.4 – Layout Memória após inicialização
Configuração Lado Repositório //criando novo alias Carro carro2 o = pacote carro1;CreateRepo, 1) Instalar
responsável pela criação de repositórios.
rpm -ivh createrepo-versao
2) Criar um diretório específico para o repositório. mkdir /var/www/html/repositorio
3) Copiar conteúdo da pasta Server do DVD para o diretório /var/www/html/repositorio/. cp -r DVD/Server /var/www/html/repositorio
3) Criar o repositório. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto createrepo /var/www/html/Server
2.3
4) Iniciar o servidor web:
Membros de Instância
Cada service objeto httpd criadostart deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. Configuração Lado Cliente classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da relacionado classe. 1) Criar o arquivo .repo com o repositório criado. vi /etc/yum.repos.d/repositorio.repo 2.3.1 Invocação de Métodos [repositorio] Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode name=repositorio ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela baseurl=http://192.168.0.100/repositorio chamada de um método em um objeto usando o operador binário "." (ponto), enabled=1 devendo especificar a mensagem completa: o objeto que é o recebedor da gpgcheck=0 mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
155
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 172
Linux System Administration Linguagem de Programação Java
Este material nãoEspecialista pode ser distribuído. Curso em Redes Somente poderá ser utilizado por alunos da |3Way [email protected] (62) Networks. 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; deve possuir o valor 1 para o tornar o repositório ativo, caso seja 0, o D A opção enabled carro1.modelo= "fusca"; I repositório estará desabilitado e você não poderá usar os pacotes dele. Tome cuidado carro1.cor = "prata"; C A com essa opção, pois ela pode causar problemas.
2) Atualizar o repositório para baixar a lista dos novos pacotes disponíveis. yum update
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Sejaque umesteja Profissional Aprendendo um definido pelo objeto.com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
156
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 173
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS= "prata"; carro1.cor
18.6. E
• Suponha que temos o pacote emacs-20.7-11cl.i386.rpm instalado e queremos instalar a versão anterior desse software (emacs-20.5-6.cl.i386.rpm por exemplo) no sistema. Qual seria o procedimento para conseguir isso? • Quais são as sintaxes de utilização do comando rpm para consulta? Exemplifique através de exemplos. • Qual o comando utilizado para extrair um ou mais arquivos de um pacote rpm? Tendo como base o arquivo proftpd-1.3.0a-3.el5.rf.i386.rpm, extraia o arquivo teste.c (fictício).Figura 2.4 – Layout Memória após inicialização //criando novo alias
• Carro Comocarro2 se checa a assinatura e a integridade de um pacote rpm? = carro1; • Quais são as sintaxes do yum para instalação? • Para que serve um arquivo .repo? Explique a sua estrutura básica. • Além do dpkg, quais são as principais ferramentas para manipulação de pacotes debian? • Qual a função do arquivo /etc/apt/sources.list para o APT? • Qual seria o procedimento (sequencia de comandos) para adicionar o repositório http://security.debian.org nas categorias updates, main, contrib e non-free da versão lenny do Debian? Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
• Como se faz para instalar um software através da compilação do seu código fonte? Enumere e explique os passos. Membros de Instância
• Cada Para objeto que serve do script configure? criadoa opção deverá --prefix ter sua própria instância de variáveis
Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um emsoftware? um objeto constituem • Qual a vantagem de se usar bibliotecas compartilhadas em um objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe.• Porém não devemos a implementação do método, que O comando do confundir sistemaisto quecom atualiza as bibliotecas compartilhadas é ldconfig. Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
Como se adiciona novos caminhos de bibliotecas no sistema?o mesmo estado se suas
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
variáveis membro têm os mesmos valores.
157
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 174
Linux System LinguagemAdministration de Programação Java
Este material não pode serem distribuído. Curso Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
19. TAREFAS AGENDADAS O agendador de tarefas do Linux é o cron, ele é um daemon, então ele roda continuamente, procurando por eventos que causem o início de uma tarefa. Diferentemente da maioria dos daemons, que são servidores de rede, cron responde a eventos temporais. Ele verifica e examina, uma vez a cada minuto, os arquivos de configuração contidos nos diretórios /var/spool/cron/, /etc/cron.d/ e também o arquivo /etc/crontab, para executar os comandos especificados neles cujo tempo coincida com o tempo listado neles. Existem dois tipos de tarefas agendadas: as do sistema e as do usuário. Figura 2.4 – Layout Memória após inicialização
Os agendamentos //criando novo alias do sistema são executados como root e executam tarefas de Carro carro2 = carro1; manutenção de todo sistema. Por padrão, a maioria das distribuições Linux inclui o cron para executar a limpeza dos arquivos antigos do diretório /tmp, executar a rotação do log e muitas outras tarefas. Os usuários comuns também podem criar seus próprios agendamentos para executar tarefas pessoais, enquanto o root é mais usado para tarefas administrativas mais abrangentes. Um dos pontos críticos para se lembrar ao trabalhar com o cron é que ele funciona sem supervisão, ou seja, sem a presença de alguém para fazer a entrada de dados. Portanto, não se deve chamar qualquer programa para o cron se esse programa necessitar da entrada do usuário, como por exemplo, um editor de textos.
19.1. CRIANDO CRONFigura JOBS DE SISTEMA 2.5 – Layout Memória duas variáveis referência para o mesmo objeto O arquivo /etc/crontab controla os jobs de sistema. Esse arquivo normalmente inicia-se com muitas linhas que configuram variáveis de ambiente, tais 2.3 Membros de Instância objeto criado deveráEle ter possui sua própria instância de variáveiscom o comoCada $PATH e $MAILTO. um conteúdo parecido Osabaixo: valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da SHELL=/bin/bash classe. Porém não devemos confundir isto com a implementação do método, que PATH=/sbin:/bin:/usr/sbin:/usr/bin é compartilhada MAILTO=rootpor todas as instâncias da classe. HOME=/
2.3.1 Invocação de Métodos # run-parts Objetos se comunicam pela troca de mensagens, isto significa que um 01 * * * * root run-parts /etc/cron.hourly objeto pode ter que mostrar um comportamento particular invocando uma 02 4 * * * root run-parts /etc/cron.daily operação definida no objeto. Em Java, isto é feito pela 22 4 apropriada * * 0 que rootfoi run-parts /etc/cron.weekly chamada de um método em um objeto usando o operador binário "." (ponto), 42 4 1 * * root run-parts /etc/cron.monthly devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo um Seja que esteja definido pelo objeto. com Profissionais
em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
158
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 175
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Essas linhas, com exceção da seção de variáveis de ambiente, carro1.modelo= "fusca"; formato. Esse formato é composto por cinco campos, que carro1.cor = "prata";
certo especificam tempo. Esses campos são respectivamente:
possuem um por sua vez
minuto (0-59), hora (0-23), dia do mes (1-31), mês (1-12), dia da semana (0-7, onde 0 e 7 representa domingo)
Para os valores do mês e do dia da semana pode-se usar as três primeiras letras do nome (em inglês) ao invés de números. Em muitos casos, pode-se especificar múltiplos valores de várias formas diferentes: Figura 2.4 – Layout Memória após inicialização
//criando novo alias
• Carro Um asterisco * ) representa todos os valores carro2 =( carro1; • Uma lista separadas por vírgula (como 0,4,8,12,16) representa valores específicos. • Dois valores separados por um travessão ( - ) indica uma faixa de valores no formato valor_inicial-valor_final, como por exemplo 8-18 representa de 8h a 18h. • Uma barra ( / ), quando usada em conjunto com algum outro valor múltiplo, especifica uma faixa de valores onde alguns membros são pulados. Por exemplo, */5 no campo minuto significa que algum job será executado a cada 5 minutos. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Depois dos primeiros cinco campos, as entradas do arquivo /etc/crontab continuam com o nome de usuário a ser usado na execução do programa 2.3 Membros de Instância Cada objeto criado ter sua própria instância (run-parts de variáveis /etc/cron.hourly Os valores das variáveis (normalmente root) e odeverá comando a ser executado como (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem na linha em destaque no exemplo acima).
objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém devemospadrão confundir com a implementação do método, que run-parts, cronloop, As não entradas deisto /etc/crontab usam normalmente Dois objetos distintos têm éou compartilhada por todas as instâncias da classe.qualquer script em um ditetório. Deste modo, na um utilitário similiar que executa
o mesmo estado se suas linha destacada do exemplo, são executados todos os scripts de /etc/cron.hourly no os variáveis membro têm 2.3.1 Invocação de Métodos valores. primeiro minuto de cadapela hora. distribuições incluem cron mensais Objetos se comunicam trocaMuitas de mensagens, isto significa que um jobs domesmos
objeto pode ter que mostrar um comportamento particular invocando uma (/etc/cron.monthly/), diários (/etc/cron.daily/), semanais (/etc/cron.weekly/) e de operação apropriada que foi definida no objeto. Em Java, isto é feito pela em hora (/etc/cron.hourly/), cada um correspondendo aos scripts contidos em chamada de um método em um objeto usando o operador binário "." (ponto), respectivos diretórios. devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
hora seus
159
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 176
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano "2001"; Para criar =novos jobs, pode-se criar os scripts para a realização da carro1.modelo= "fusca"; desejada e copiá-lo= para o diretório cron mais apropriado (/etc/cron.periodo/), carro1.cor "prata";
script será executado no período especificado.
tarefa que o
19.2. CRIANDO CRON JOBS DE USUÁRIO Para criar jobs de usuário é usado o utilitário crontab (não o arquivo /etc/crontab). A sintaxe desse utilitário é a seguinte: crontab [-u usuario] [-l | -e | -r] [arquivo] Figura 2.4 – Layout Memória após inicialização
Se não for informado a opção -u usuario, é considerado o usuário atual. A //criando novo alias opçãoCarro -l é utilizada forçar a entrada no cron job do usuário atual, -r remove o carro2 = para carro1; cron job atual e -e abre o editor padrão para edição do cron job do usuário atual. O editor padrão é o vi, mas poderá ser configurado através da variável de ambiente VISUAL ou EDITOR. Alternativamente, um cron job pode ser criado passando um arquivo de configuração como parâmetro: crontab -u user1 config_cron
Nesse exemplo, será criado um cron job para o usuário user1 tendo como base o arquivo de configuração config_cron. Abaixo tem-se um exemplo do conteúdo do arquivo config_cron: Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
SHELL=/bin/bash MAILTO=user1 HOME=/home/user1 2.3 Membros de Instância 0,30 * * * * /usr/bin/fetchmail -s Cada objeto criado deverá ter sua própria instância de variáveis 0 2 * * mon /opt/script_backup.sh
Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. e O não controle deconfundir acessoisto aocom cron é feito através dos arquivos /etc/cron.allow classe. Porém devemos a implementação do método, que Dois objetos distintos têm ondeas seu conteúdo será a relação dos usuários que, respectivamente, é/etc/cron.deny, compartilhada por todas instâncias da classe.
o mesmo estado se suas variáveis membro têm os mesmos valores.
terão ou não acesso ao cron.
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um 19.3.pode ANACRON objeto ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objetocron usandoseja o operador "." (ponto), Embora uma binário grande ferramenta devendo especificar a mensagem completa: tarefas o objeto agendadas que é o recebedor da determinadas em sistemas mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
para executar que não param 160
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 177
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); (comocarro1.ano servidores), =é "2001"; uma ferramenta muito menos útil em sistemas que ficam muito carro1.modelo= "fusca"; tempocarro1.cor desligados, =tais como notebooks ou mesmo desktops. Freqüentemente, cron "prata";
jobs que deveriam ser executados tarde da noite nunca são executadas nesses sistemas, podendo causar algumas situações indesejáveis, como arquivos de log muito grandes, conteúdo do diretório /tmp descontrolado e várias outras. Uma solução para esses problema é o anacron (http://anacron.sourceforge.net). Esse programa foi projetado como um complemento ao cron para certificar-se que alguns jobs serão executados em um intervalo de tempo razoável. Ele executa tarefas agendadas que por algum motivo não foram executadas pelo cron. Quando o sistema inicializa, o anacron verifica o arquivo /etc/anacrontab e caso algum agendamento nãoFigura tenha executado ele o fará imediatamente. 2.4 – sido Layout Memória após inicialização //criando novo alias Esse arquivo consiste Carro carro2 = carro1;
de três tipos principais de linhas: comentários (representados por #), variáveis de ambiente (como SHELL=/bin/bash), e definições de jobs. Esse último tipo é composto de quatro campos: periodo
atraso
identificador
comando
O periodo (period) é a frequencia, em dias, que o comando deveria ser executado. O atraso (delay) é o tempo, em minutos, entre a ativação da anacron e a execução da tarefa, se o tempo desde a última execução exceder o período de execução. O identificador (identifier) é um código que identifica o comando. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
E o comando (command) é o que se quer executar, podendo ser um script ou um comando.
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos)Abaixo definidas temos pela classe. métodosdesse definem o comportamento de um um Os exemplo arquivo: objeto. Isto é importante, pois denota que um método pertence a cada objeto da SHELL=/bin/sh classe. Porém não devemos confundir isto com a implementação do método, que PATH=/sbin:/bin:/usr/sbin:/usr/bin é compartilhada por todas as instâncias da classe. # format: period delay job-identifier command
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 de Métodos run-parts /etc/cron.daily 1 65Invocação cron.daily se comunicam pela troca de /etc/cron.weekly mensagens, isto significa que um 7 70Objetos cron.weekly run-parts objeto pode cron.monthly ter que mostrar um comportamento particular invocando uma 30 75 run-parts /etc/cron.monthly operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), Obviamente, para fazer tudo ocorretamente, anacrondaprecisa devendo especificar a mensagem completa: objeto que é o orecebedor si mesmo, e isso apode ser feito duas maneiras: mensagem, o método ser invocado e osde argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
ser iniciado por
161
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 178
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; 1)carro1.cor Via script de= inicialização: "prata";
- Algum script SysV de inicialização. - O script de inicialização local (/etc/rc.d/rc.local em sistemas Red Hat ou /etc/boot.d/boot.local em sistemas SUSE). 2) Via cron job: Criação de um cron job para executar o anacron. Não importa a forma como o anacron vai ser inicializado, o que importa é desabilitar os cron jobs que ele vai manipular. isso não for feito, as tarefas serão executadas Figura 2.4 – LayoutSe Memória após inicialização D I duas vezes. //criando novo alias C
Carro carro2 = carro1; A Também tenha atenção para executá-lo em intervalos diários, como padrão, eliminando os cron jobs configurados para ele e que estiverem sendo executados de hora em hora.
AT – Executa agendamentos uma única vez. Sintaxe: at HH:mm MM/DD/YYYY ATQ – Exibe a lista de agendamentos. ATRM – Apaga um agendamento feito pelo AT.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
at 08:00 at> cat /etc/passwd ~/saida.txt 2.3 Membros de >Instância at> rm -f ~/saida.txt
Exemplos Agenda os comandos digitados logo abaixo para serem executados as 08:00.
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis uma listagemde dosum jobs agendados juntamente com (atributos) pela classe. Os métodos definem oExibe comportamento atq ou atdefinidas -l em um objeto constituem seus ids. objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. Apaga umdojob identificado classe. Porém não devemos confundir isto com a implementação método, que pelo id_job. atrm id_job ou at -r id_job Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os 2.3.1 Invocação de Métodos O at suporta restrições de acesso, assim como no cron, através dos arquivos mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
/etc/at.allow e /etc/at.deny. Se nenhum desses arquivos existir, então somente o usuários todos os
objeto pode ter que mostrar um comportamento particular invocando uma usuário root poderá utilizar o comando at. Se existir somente at.allow, os operação apropriada que foi definida no objeto. Em Java, isto é feito pela que terão acesso ao em at, um deverão constaro nele. Caso somente o at.deny existir, chamada de um método objeto usando operador binário "." (ponto), usuários terão acesso ao at, completa: menos quem estiver nele. da devendo especificar a mensagem o objeto que élistado o recebedor mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
162
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 179
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; ABORATÓRIO"fusca"; carro1.modelo= carro1.cor = "prata";
19.4. L
Este laboratório tem o objetivo de mostrar o uso do cron para tarefas agendadas em um sistema onde não ocorre frequentes desligamentos. 1) Como usuário comum (Vamos supor o usuário user1) criar o script abaixo com o nome de cronjob. SHELL=/bin/bash MAILTO=user1 1 * * * * /sbin/ifconfig
2) Aplicar a tarefa do cron e esperar até o momento previsto para a execução. Figura 2.4 – Layout Memória após inicialização
crontab novo cronjob //criando alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
163
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 181
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= XERCÍCIOS "fusca"; carro1.cor = "prata";
19.5. E
• Descreva o processo de funcionamento do cron citando quais são os seus diretórios e arquivos de configuração. • Existem os agendamentos do sistema e de usuário. Quais são as situações mais indicadas para cada um deles? • Explique o formato (campos) do arquivo de agendamento do sistema /etc/crontab. • Qual é a sintaxe de criação de agendamento de usuário baseada em arquivo de Figura 2.4 – Layout Memória após inicialização configuração? Dê um exemplo. //criando novo alias
• Carro Quaiscarro2 são os= arquivos carro1; que provem o controle de acesso ao cron? Como eles funcionam? • Para que serve o anacron e em qual situação ele é mais indicado? • Qual o formato do arquivo /etc/anacron? Explique cada campo.
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
164
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 182
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
20. GERENCIAMENTO DE LOGS O Linux mantém arquivos de log que armazenam vários detalhes importantes da operação do sistema. Saber como alterar a configuração dos arquivos de log é uma importante atribuição de um administrador de sistemas. Isso pode ser feito configurando o daemon syslogd, normalmente proveniente do pacote sysklogd. Alguns servidores e programas possuem seus próprios logs e podem ser configurados independentemente do syslogd. Por medida de segurança pode ser configurado que um computador envie seus logs para outro na rede. Figura 2.4 – Layout Memória após inicialização
É importante ter consciência que deve ser feita a correta manipulação da //criando novo alias rotação de logs para que eles não cresçam indefinidamente e ocupem muito espaço Carro carro2 = carro1; em disco na partição em que estão armazenados. Assim como o syslogd, o klogd é um daemon, também instalado pelo mesmo pacote, que grava as mensagens de log do kernel. Para funcionar correta e harmoniosamente, o sistema de log precisa ser configurado. No caso do syslogd, o seu arquivo de configuração é /etc/syslog.conf. Conhecer o formato desse arquivo é importante para se configurar um bom servidor de logs.
20.1. FORMATO DE /ETC/SYSLOG.CONF Figurade 2.5 –comentários Layout Memória duas representadas variáveis referência para opelo mesmo símbolo objeto Ele possui linhas ( # ). As outras linhas são de configuração e são formadas basicamente por dois campos:
2.3
Membros de Instância
facilidade.prioridade
acao
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem objeto. IstoNa é importante, pois denota que um método pertence a cada objeto que da representa linha acima, a facilidade é uma palavra código tipo de o seu o estado. classe. Porém não devemos confundir isto com a implementação do método, que programa ou ferramenta que gerou a mensagem a ser armazenada (logada); Dois objetos distintos atêm é compartilhada por todas as instâncias da classe.
mesmo estado se suas prioridade é a palavra código que expressa a importância dessa omensagem para o variáveis membro têm sistema; e acao é um arquivo (caminho completo), computador remoto, ou outra os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam de mensagens, isto significa um localidade que aceitapela troca o armazenamento da que mensagem. O conjunto objeto pode ter que mostrar um comportamento particular invocando uma facilidade.prioridade é chamado de seletor. operação apropriada que foi definida no objeto. Em Java, isto é feito pela Códigos válidos são auth, chamada de um método em umpara objetofacilidade usando o operador binárioauthpriv, "." (ponto), cron, devendo especificar mensagem completa: o objeto é o recebedor da lpr, mail, mark,a news, security, user, uucp,que e local0 até local7 mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
daemon, kern,
165
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 183
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos Networks. [email protected]| 3Way (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; Muitos desses nomes referem-se a serviços específicos ou carro1.modelo= "fusca"; programas, por exemplo, os servidores de e-mail normalmente usam a carro1.cor = "prata";
classe de facilidade mail. Outros servidores que não possuem um nome específico usam o código daemon. A facilidade auth é usada para segurança, a facilidade mark é reservada para uso interno. Um asterisco (*) refere-se a todas as facilidades. Pode-se especificar várias faciliades em um seletor separando-as por (,). Códigos válidos para a prioridade são debug, info, notice, warning, warn, error, err, crit, alert, emerg, e panic. A prioridade warning é idêntica a warn, error é idêntica a err, e emerg é idêntico a panic. Os nomes das prioridades error, warn e panic são obsoletos, é 2.4 – Layout Memória após inicialização preciso usar seus equivalentes.FiguraExceto esses pares de prioridades, eles possuem //criando novo alias níveisCarro ascendentes de importância. O nível debug registra a maioria das informações; carro2 = carro1; ele é usado, como o nome indica, para programas que apresentam problemas de funcionamento. A prioridade emerg registra a maioria das mensagens indicativas de problemas muito sérios. Quando um programa envia uma mensagem ao sistema de log, ele inclui o código de prioridade, a mensagem só é registrada (em arquivo ou computador remoto) se estiver configurado um local para aquele nível. Deste modo, se foi especificado o código de prioridade alert, o sistema registrará mensagens que são classificadas como alert ou emerg mas não mensagens crit ou inferiores. Uma exceção a essa regra é se for feita uma configuração específica, precedendo a prioridade crit com um sinal de igualdade ( = ), que descreva o que fazer com Figura 2.5 Memória duas variáveis para o mesmo mensagens crit. Um sinal de– Layout exclamação ( ! )referência funciona comobjeto reversão da regra, ou seja, !crit faria com que todas as mensagens inferiores a crit fossem registradas. A prioridade * refere-se a todas as prioridades.
2.3
Membros de Instância
Cada criado deverá ter sua própria instância de uma variáveis Podeobjeto ser especificado múltiplos seletores para única acao separando-as Os valores das variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um um objeto constituem com ; (ponto e vírgula). Não confundir com a , (vírgula) queemsepara múltiplas objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. facilidades. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada todasmuito as instâncias da classe. Umapor acao, provavelmente, será um arquivo dentro da árvore /var/log/.
o mesmo estado se suas
Os arquivos messages, syslog e secure são arquivos importantesvariáveis e comuns dentro membro têm os 2.3.1 Invocação de Métodos daquele diretório, mas nem todas as distribuições usam todos eles. Outros locais mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um possíveis incluem arquivos de dispositivo de console (como /dev/console) para exibir objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada definida objeto. Em Java, isto é feito pela as mensagens na que tela,foinomes deno computadores remotos precedidos pelo símbolo ( @ ) chamada de um método em um objeto usando o operador binário "." (ponto), para gravar dados de um sistema específico, e uma lista de nome de usuários de devendo especificar a mensagem completa: o objeto que é o recebedor da pessoas logadas que deveriam ver essas mensagens, ou * para todos os usuários mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Seja Profissional um queum esteja definido Aprendendo pelo objeto. com Profissionais
166
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 184
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; logados. carro1.modelo= "fusca"; carro1.cor = "prata"; Exemplos Envia todas (*) as entradas de log identificas como mail para o mail.* /var/log/mail arquivo /var/log/mail. Envia todas as mensagens do nível emerg para a console de todos os *.emerg * usuários logados em ferramentas de modo texto. A primeira linha envia todas as mensagens de kernel para o arquivo /var/log/kernel; kern.* /var/log/kernel A segunda envia mensagens críticas (crit) de kernel para a máquina kern.crit @servidor-log.local servidor-log.local. A terceira envia uma cópia das mensagens críticas (crit) para a kern.crit /dev/console console (vistas somente em ferramentas baseadas no modo texto). kern.info;kern.!err /var/log/kernelinfo Figura 2.4 Layout Memória após inicialização A–última, envia mensagens que se localizam entre a prioridade info e err para o arquivos /var/log/kernelinfo. //criando novo alias Carro carro2 = carro1;
D I C A
Pelo fato de err ser de prioridade imediatamente inferior a crit, e por info ser de prioridade mais baixa ainda, essas linhas causam o registro duplo ou triplo de todas as mensagens de kernel: uma em /var/log/kernel, outra no computador remoto e na console ou /var/log/kernelinfo.
20.2. REGISTRANDO LOGS MANUALMENTE Casualmente, será preciso criar manualmente uma entrada de log ou ter um 2.5 – Layout Memória variáveis referência para o mesmo objeto script para fazer isso. AFigura ferramento paraduasfazer esse trabalho é conhecida como logger. 2.3 Membros de Instância LOGGER – Cria logs manuais.
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) classe. Os métodos definem o comportamento de um Sintaxe:definidas logger pela [opcao] objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. Opções -i
Grava o PID do processo a ser registrado.
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
2.3.1 Invocação dePossibilita Métodoscriar uma saída padronizada para determinados erros. -s Objetos se comunicam pela troca de mensagens, isto significa que um Indica um arquivo para a gravação dos registros de log. Ter cuidado com o tamanho desse arquivo, -f arquivo objeto pode ter que mostrar um comportamento particular invocando uma ele pode consumir espaço em disco e prejudicar o desempenho do sistema. operação apropriada que foi definida no objeto. Em Java, isto é feito pela -p prioridade Fornece uma prioridade para o registro de log. chamada de um método em um objeto usando o operador binário "." (ponto), -t tag texto que aparecerá no log para identificar o programa ou script responsável pelo registro. devendo especificarÉaummensagem completa: o objeto que é o recebedor da mensagem É aa mensagem queeirá no registro. mensagem, o método ser invocado osaparecer argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 167 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 185
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; ABORATÓRIO carro1.cor = "prata";
20.3. L
Este laboratório tem por objetivo personalizar o sistema de logs do sistema. Vamos fazer com que os registros de autenticações privadas (facilidade authpriv) sejam gravados no arquivo /var/log/seguro ao invés do atual (/var/log/secure). 1) Criar o arquivo /var/log/seguro, pois o mesmo não existe ainda: touch /var/log/seguro
2) Editar o arquivo /etc/syslog.conf com a seguinte alteração: Figura 2.4 – Layout Memória após inicialização
vi /etc/syslog.conf //criando novo alias/var/log/secure # authpriv.* Carroauthpriv.* carro2 = carro1; /var/log/seguro
3) Reinicie o syslog para que a alteração ter efeito. service syslog restart
de log.
4) Para testar, logue-se a partir de outra máquina e configura o novo arquivo ssh [email protected] cat /var/log/seguro
5) Encerre a conexão, verifique novamente a mensagem de finalização de conexão no arquivo /var/log/seguro e volte a configuração anterior. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
cat /var/log/seguro vi /etc/syslog.conf authpriv.* /var/log/secure # authpriv.* Membros de Instância/var/log/seguro service restart Cada objetosyslog criado deverá ter sua própria instância de variáveis
Os valores das variáveis
(atributos) definidas pela classe. Os métodos definem o comportamento de um objeto constituem 6) Teste novamente a conexão para verificar a gravação em no um arquivo de log objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. original. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. ssh [email protected] cat /var/log/secure
2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
169
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 186
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS= "prata"; carro1.cor
20.4. E
• Quais são os daemons responsáveis por gerenciar os logs no sistema? • Qual o arquivo de configuração do syslog? • O arquivo de configuração do syslog é formado por acao. Explique com detalhes cada um de seus campos.
•
facilidade.prioridade
Qual a sintaxe completa do comando utilizado para logar informações no sistema manualmente? Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
170
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 187
Linux System LinguagemAdministration de Programação Java
Este material não pode serem distribuído. Curso Especialista Redes Somente poderá ser utilizado por alunos da 3Way Networks. [email protected] | (62) 3232 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
21. KERNEL
O Kernel pode ser entendido com um conjunto de arquivos que constituem o núcleo do sistema operacional. Esse núcleo tem o objetivo de controlar todo o hardware do computador, através do gerenciamento de todos os processos e compartilhamento de memória do computador. Como acontece com muitos softwares comerciais, novas versões são lançadas, assim também é com o Kernel do Linux. A justificativa é quase sempre para prover melhorias em uma determinada função, fazer correções em pontos vulneráveis e/ou para acrescentar novas funcionalidades (recursos ou drivers). Figura 2.4 – Layout Memória após inicialização
As versões Kernel são formadas por 3 números distintos e separados por //criando novo do alias Carro carro2 carro1; pontos, sendo que=um quarto número poderá ser aplicado. A.B.C.D
→
2.6.18.1
O primeiro número (A) indica a sua versão; o segundo (B) indica a última revisão feita até o momento na mesma versão; o terceiro (C), por sua vez, indica uma revisão menor dentro da versão Y, esse terceiro número pode vir acompanhado de pequenas siglas indicativas de versões não oficiais ou compilações de empresas que produzem Linux (por exemplo, o RHEL usa 2.6.18-92.el5); um eventual quarto número (D) pode ser aplicado quando uma falha importante foi descoberta, sendo necessário atualizá-lo. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Antes da série 2.6.x do Kernel, o segundo número (B) tinha um significado diferente, se fosse ímpar, significava que ele fazia parte de uma série de 2.3 Membros de Instância desenvolvimento (instável). Se o número fosse par, significava que aquela série era Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis estável.
(atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem é preciso sempre últimapertence versãoa cada de um kernel, comoo seu se fosse objeto. Isto éNão importante, pois denota queter umamétodo objeto da estado.uma classe. Porém não devemos confundir isto com a implementação do método, que regra, mas é altamente recomendável que se faça atualizações, as de Doissobretudo objetos distintos têm é compartilhada por todas as instâncias da classe. segurança, ou promover a aplicação de patches (correção de problemas). 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um Profissional Aprendendo um Seja que esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
171
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 188
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização
//criando novo alias Carro carro2 = carro1; Figura 12: Organização do sistema linux em camadas
22.1. COMPILAÇÃO DO KERNEL A compilação do Kernel é uma tarefa que está amplamente relacionada a otimização. Uma compilação deve visar o aumento de desempenho, a inserção de uma melhoria ou de uma nova funcionalidade. E apesar das distribuições ou mesmo usuários poderem compilá-lo livremente, algumas distribuições fornecem Kernels modificados e, as vezes, as vezes fechados. É o caso das distribuições comerciais (Enterprise), elas fornecem cliente assinatura onde elaobjeto fornece todo o suporte Figura 2.5ao – Layout Memóriauma duas variáveis referência para o mesmo a distribuição, mas condicionada a não intervenção do usuário em itens sensíveis como o Kernel. Portanto, deve-se ter certeza da necessidade de compilar algo nesses 2.3 casos.Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis efetuá-la inicialmente será necessário verificar de constituem alguns (atributos) Para definidas pela classe. Os métodos definem o comportamento de uma existência em um objeto objeto. Isto é importante, pois denota que um método pertence a cada objeto da pacotes básicos para a sua correta execução. A linha de comando abaixo, o seuexecutada estado. classe. Porém não devemos confundir isto com a implementação do método, que como verifica a existência deles: Dois objetos distintos têm é compartilhada por todas as instâncias da classe.
o mesmo estado se suas variáveis membro têm os # rpmInvocação -qa gccdencurses \ 2.3.1 Métodos make kernel-devel autoconf automake ncurses-devel > redhat-rpm-config rpm-build mesmos valores. Objetos se comunicam pela troca de mensagens, isto significa que um
objeto pode ter que mostrar um comportamento particular invocando uma Compilação Kernel operação apropriada que foi definida no objeto. Em de Java, isto é feito pela chamada de um método em um objeto usando o operador binário 1 Obter o código fonte do Kernel desejado; ou baixar o código fonte"." no (ponto), site kernel.org. Seu formato será algo devendo especificar a mensagem completa: o objeto que é o recebedor da parecido com linux-versao.tar.bz2. mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 172 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 190
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br
2
//atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.45.tar.bz2 carro1.modelo= "fusca"; carro1.cor = "prata"; Como root, descompactar o código fonte obtido: tar jxvf linux-2.6.27.45 .tar.bz2 -C /usr/src/
3
Criar um link simbólico do no diretório surgido em /usr/src/ (provavelmente linux-2.6.27.45): ln -sf /usr/src/linux-2.6.27.45/ /usr/src/linux
4
Em caso de ter havido alguma compilação anterior é necessário retroceder ao estado padrão dos arquivos de configuração, isso é feito estando no diretório /usr/src/linux com o seguinte comando: make mrproper
5
Existem alguns arquivos previamente configurados para as plataformas suportadas pelo Kernel em /usr/src/linux/arch, então é possível aproveitá-los caso não se queira começar a configuração do zero. Figura 2.4 – Layout Memória após inicialização Copiar o arquivo de configuração básico da plataforma escolhida (defconfig) e nomeá-lo para .config em //criando novo alias /usr/src/linux: Carro carro2 = carro1; cp -f /usr/src/linux/arch/i386/defconfig /usr/src/linux/.config
Entrar no diretório base da compilação (/usr/src/linux) para continuidade do processo (configuração do kernel). Durante a configuração, pode-se escolher se o item será interno (com y ou *), um módulo (m) ou deixá-lo inativo (n). Após o término dessa etapa será gerado um novo arquivo .config. 6
cd /usr/src/linux make menuconfig ou make config
ou
make xconfig
Obs.: Em caso de recompilação, é utilizado o make oldconfig para aproveitar as configurações antigas. A compilação é feita após a configuração. Sua execução é obtida pelo comando abaixo (executado como root): 7
make
Essa etapa pode demorar, não há como abreviá-la sem diminuir os itens a serem compilados. O resultado dela são, Figura 2.5 – Layout duase variáveis referência mesmo objeto entre outras coisas, a imagem (bzImage ouMemória zImage) os módulos quepara vãoo compor o Kernel. A instalação dos módulos é feita (como root) com o comando: 8
2.3
make modules de Instância Membros make modules_install
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Como definidas exposto anteriormente, uma osérie de novos itens,de eles ser objeto transferidos para (atributos) pela classe. aOscompilação métodos gera definem comportamento umnecessitam em um constituem seus devidos lugares nopois sistema. Esses arquivos são bzImage, System.map e .config. objeto. Isto é importante, denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm Transferindo a imagem bzImage é compartilhada por todas as instâncias da classe. /boot/vmlinuz-2.6.27.45 cp /usr/src/linux/arch/i386/boot/bzImage
o mesmo estado se suas variáveis membro têm os mesmos valores.
9
2.3.1Transferindo Invocação de Métodos o mapa de sistema cp /usr/src/linux/System.map Objetos se comunicam pela/boot/System.map-2.6.27.45 troca de mensagens, isto significa que um ln -sf /boot/System.map-2.6.27.45 /boot/System.map objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela Transferindo o arquivo de configuração cp /usr/src/linux/.config chamada de um método em um /boot/config-2.6.27.45 objeto usando o operador binário "." (ponto), devendo mensagem objetopelo quekernel é o para recebedor 10 Criarespecificar o arquivo dea disco de RAMcompleta: inicial (eleoé usado carregarda drivers antes do boot). Ele não é mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 173 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 191
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano "2001"; necessário caso todo o=driver necessário tenha sido compilado no Kernel. carro1.modelo= "fusca"; carro1.cor = "prata"; Criando initrd (Red Hat) mkinitrd -v /boot/initrd-2.6.27.45 2.6.27.45
Criando initrd (Debian)
mkinitrd -o /boot/initrd-2.6.27.45 /lib/modules/2.6.27.45 11
A configuração no gerenciador de boot (GRUB / LILO) não faz parte do processo de compilação, mas é necessário caso se queira incluir o novo Kernel nas opções de boot ou até mesmo iniciá-lo.
Caso se queira personalizar a versão da compilação, basta editar as linhas VERSION, PATCHLEVEL, SUBLEVEL e EXTRAVERSION no arquivo Makefile, como no exemplo abaixo: VERSION = 2 PATCHLEVEL = 6 //criando SUBLEVEL = 27 novo alias Carro carro2 = carro1; EXTRAVERSION = .45-i386
Figura 2.4 – Layout Memória após inicialização
22.2. CONFIGURAÇÃO DO NOVO KERNEL NO LILO # /etc/lilo.conf boot=/dev/hda # grava o LILO na MBR map=/boot/map install=/boot/boot.b prompt # mostra o prompt do LILO timeout=50 # tempo de espera do prompt de 5 segundos default=linux # define o linux como sistema padrão image=/boot/vmlinuz-2.6.27.45 # arquivo com a imagem de kernel label=Linux-2.6.27.45 # nome do linux no menu do LILO root=/dev/hdXn # partição da imagem do kernel read-only Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto other=/dev/hda1 # partição do windows (C:\>) label=Windows # nome do windows no menu do LILO table=/dev/hda # disco rigido em que reside o windows
2.3
Membros de Instância
Cada objeto deverá ter sua própria oinstância de lilo variáveis Os valores variáveis Logo apóscriado a configuração, executar comando (como root) paradas gravar o (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem LILO no MBR: objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm élilo compartilhada por todas as instâncias da classe. 2.3.1 de Métodos DO NOVO KERNEL NO GRUB 22.3.Invocação CONFIGURAÇÃO Objetos se comunicam pela troca de mensagens, isto significa que um # /boot/grub/menu.lst objeto pode ter que mostrar um comportamento particular invocando uma default=0 operação apropriada que foi definida no objeto. Em Java, isto é feito pela timeout=30 chamada de um método em um objeto usando o operador binário "." (ponto), splashimage=(hd0,0)/grub/splash.xpm.gz devendo especificar a mensagem completa: o objeto que é o recebedor da hiddenmenu mensagem, o método a ser invocado e os argumentos para o método (se houver). title Linux O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
o mesmo estado se suas variáveis membro têm os mesmos valores.
174
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 192
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); root (hd0,1) = "2001"; carro1.ano kernel /vmlinuz-2.6.37.45 carro1.modelo= "fusca"; ro root=/dev/hda2 rhgb quiet vga=791 initrd /initrd-2.6.37.45.img carro1.cor = "prata"; title Windows rootnoverify (hd0,0) savedefault makeactive chainloader +1
22.4. ATUALIZANDO O KERNEL Faz parte das atividades de um administrador de sistemas saber aplicar patches de correção em Kernel, ou seja, atualizá-lo. Normalmente ele é encontrado no site kernel.org junto com váriosFigura códigos Enquanto 2.4 – Layoutfonte. Memória após inicialização que o código fonte possui o formato linux-versao1.tar.bz2, o formato de um patch seria parecido com patch//criando novo alias Carro carro2 = carro1; versao2.tar.bz2, por exemplo, o que indicaria uma atualização para a uma versão imediatamente superior ao kernel instalado. A aplicação do patch é feita de forma análoga à compilação, ou seja, o patch deve ser baixado e descompactado no diretório /usr/src/ para inicializar o processo. Atualização de Kernel 1
Obter o pacote que atualiza o Kernel no site kernel.org. wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.30.10.tar.bz2
2
Como root, descompactar o patch: tar jxvf patch-2.6.30.10.tar.bz2 -C /usr/src/ Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
Entrar no diretório /usr/src/patch-2.6.30.10 e aplicar o patch: cd /usr/src/patch-2.6.30.10
-dc ../patch-2.6.30.10.tar.bz2 3 bzip2 2.3 Membros de Instância
| patch -p1
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis Obs.: Para remover o patch, adicionar a opção -R: (atributos) definidas pela classe. Os métodos definem o comportamento de um em um objeto constituem bzip2 -dc ../patch-2.6.30.10.tar.bz2 | patch -p1 -R objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. classe. Porém não devemos confundir isto com a implementação do método, que Dois objetos distintos têm é compartilhada por todas as instâncias da classe. o mesmo estado se suas 22.5. RECOMPILANDO KERNEL EM DISTRIBUIÇÕES RPM variáveis membro têm os 2.3.1 Invocação de Métodos mesmos valores. Objetos se comunicam pela troca deé, mensagens, significa que um e envolve O processo de compilação de certaisto forma, simples passos bem objeto pode ter que mostrar um comportamento particular invocando uma documentados, mas em distribuições como Red Hat, Fedora, CentOS, Suse e operação apropriada que foi definida no objeto. Em Java, isto é feito pela Mandriva, utilizam como opacotes é altamente aconselhável chamada de umque método em um RPM objeto usando operador instaláveis, binário "." (ponto), gerar os RPMs do kernel em vez deo simplesmente devendo especificar a mensagem completa: objeto que é o compilá-lo recebedor da e instalá-lo a partir do mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo 175 umSeja queum esteja definido pelo objeto. com Profissionais Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 193
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano "2001"; código fonte, uma =vez que estes sistemas são carro1.modelo= "fusca"; RPMs. carro1.cor = "prata";
construídos para trabalhar e gerenciar
Antes de iniciar o processo de compilar o kernel e criar um RPM é preciso baixar o pacote SRPM (.src.rpm) e ter instalado o ambiente de desenvolvimento de RPMs. Será necessário ter os seguintes pacotes: rpmdevtools, yum-utils, rpmdevsetuptree, ncurses-devel, kernel-source, gcc, redhat-rpm-config. Eles podem ser instalados com o seguinte comando (baseado no Fedora): $ su -c 'yum install rpmdevtools yum-utils ncurses-devel gcc redhat-rpm-config' 2.4 – Layout Memória após Agora é preciso obter oFigura RPM contendo o inicialização código fonte do Kernel mais atual //criando novo alias nos repositórios da distribuição:
Carro carro2 = carro1;
$ yumdownloader updates-source --source kernel
22.6. LABORATÓRIO Seguindo os passos contidos na página 195/196 para compilação de kernel, faça a compilação e instalação do kernel mais atual e estável encontrado no site www.kernel.org. Esse lab deverá ser supervisionado pelo instrutor nas questões mais delicadas do processo. Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
1
Obter o código fonte do Kernel mais atual em www.kernel.org:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.x.x.tar.bz2
fonte obtido no diretório /usr/src: 2.3 Descompactar Membroso código de Instância 2
Cada objeto criado deverá ter sua própria instância de variáveis Os valores das variáveis tar jxvf linux-2.6.x.x.tar.bz2 -C /usr/src/ (atributos) definidas pela classe. Os métodos definem o comportamento de um Criar um link simbólico do diretório resultante da etapa anterior em /usr/src/: em um objeto constituem 3 objeto. Isto é importante, pois denota que um método pertence a cada objeto da o seu estado. ln Porém -sf /usr/src/linux-2.6.x.x/ classe. não devemos confundir /usr/src/linux isto com a implementação do método, que Voltar ao estado arquivos de (necessário estar em /usr/src/linux):Dois objetos distintos têm é compartilhada porpadrão todas dos as instâncias daconfiguração classe. 4
o mesmo estado se suas variáveis membro têm os 2.3.1Copiar Invocação dedeMétodos o arquivo configuração básico da sua plataforma (defconfig) para .config em /usr/src/linux: mesmos valores. 5 Objetos se comunicam pela troca de mensagens, isto significa que um make mrproper
cp -f /usr/src/linux/arch/i386/defconfig /usr/src/linux/.config objeto pode ter que mostrar um comportamento particular invocando uma Configurar o kernel: operação apropriada que foi definida no objeto. Em Java, isto é feito pela 6 chamada de um método em um objeto usando o operador binário "." (ponto), cd /usr/src/linux make menuconfig devendo especificar a mensagem completa: o objeto que é o recebedor da 7 Compilar o kernel: mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
176
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 194
Linux System Administration Linguagem de Programação Java
Este material não pode ser distribuído. Somente poderá ser utilizado por alunos da 3Way Networks. www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; make carro1.modelo= "fusca"; Compilar e Instalar os = módulos: carro1.cor "prata"; 8
make modules make modules_install
Transferir os arquivos gerados na compilação para os lugares corretos: bzImage
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.x.x 9
mapa de sistema
cp /usr/src/linux/System.map /boot/System.map-2.6.x.x ln -sf /boot/System.map-2.6.x.x /boot/System.map
arquivo de configuração
cp /usr/src/linux/.config /boot/config-2.6.x.x Figura 2.4 – Layout Memória após inicialização 10
Criar o initrd (Red Hat): //criando novo alias Carro-vcarro2 = carro1; mkinitrd /boot/initrd-2.6.27.45 2.6.x.x Adicionar uma nova entrada para esse novo kernel no GRUB:
vi /boot/grub/menu.lst 11 title NovoKernelLinux root (hd0,1) kernel /vmlinuz-2.6.x.x ro root=/dev/hda2 rhgb quiet vga=791 initrd /initrd-2.6.x.x.img
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
177
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 195
Linux System Administration Linguagem de Programação Java
Este material pode ser distribuído. Cursonão Especialista em Redes Somente poderá ser utilizado por alunos 3Way3232 Networks. [email protected] | (62) 9333 www.3way.com.br //atribuindo valor a variável referência Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; XERCÍCIOS= "prata"; carro1.cor
22.7. E
• O que é um Kernel e qual sua função no sistema operacional? • Digamos que um sistema Linux usa o kernel 2.6.27.45, o que significam esses números? • Qual a justificativa de se compilar um kernel? Em quais circustâncias devemos efetuá-la? • Qual a função dos comandos abaixo no processo de compilação? a) make mrproper modules_install //criando novo alias
b)Figura make menuconfig c) make modules 2.4 – Layout Memória após inicialização
d) make
Carro carro2 = carro1;
• O arquivo .config é um arquivo que normalmente não vem no código fonte do kernel. Qual a sua função e como ele é composto? • Qual seria o procedimento (passos) para se atualizar uma versão de kernel anterior para a versão 2.6.30.10? • O procedimento para compilar um kernel em distribuições baseadas em RPM é diferente das outras. Basicamente quais seriam as etapas mais importantes para compilar um kernel RPM?
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3
Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe. 2.3.1 Invocação de Métodos Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela chamada de um método em um objeto usando o operador binário "." (ponto), devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser Profissional Aprendendo umSeja queum esteja definido pelo objeto. com Profissionais
Os valores das variáveis em um objeto constituem o seu estado. Dois objetos distintos têm o mesmo estado se suas variáveis membro têm os mesmos valores.
178
Todos os direitos reservados a 3Way Networks
Seja um Profissional Aprendendo com Profissionais www.3way.com.br
12 196
Siga-nos também no Twitter! twitter.com/3waynet