Linux

611 views

Published on

Sistema Operacional Linux.

Published in: Internet
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
611
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Linux

  1. 1. Conceitos, Instalação e Administração de Sistemas Linux
  2. 2. 2011 Alfamidia LTDA. Todos os direitos reservados para Alfamídia LTDA. AVISO DE RESPONSABILIDADE As informações contidas neste material de treinamento são distribuídas “NO ESTADO EM QUE SE ENCONTRAM”, sem qualquer garantia, expressa ou implícita. Embora todas as precauções tenham sido tomadas na preparação deste material, a Alfamídia LTDA. não têm qualquer responsabilidade sobre qualquer pessoa ou entidade com respeito à responsabilidade, perda ou danos causados, ou alegadamente causados, direta ou indiretamente, pelas instruções contidas neste material ou pelo software de computador e produtos de hardware aqui descritos. Novembro 2011 Alfamídia LTDA http://www.alfamidia.com.br
  3. 3. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 3 UNIDADE 1. HISTÓRIA DO LINUX.............................................................................................................5 UNIX ..................................................................................................................................................................5 LINUX.................................................................................................................................................................5 GNU ..................................................................................................................................................................6 FSF (FREE SOFTWARE FOUNDATION) ................................................................................................................6 DISTRIBUIÇÕES LINUX.......................................................................................................................................7 UNIDADE 2. INSTALAÇÃO DO LINUX....................................................................................................10 REQUISITOS DE HARDWARE .............................................................................................................................10 COMPATIBILIDADE DE HARDWARE ..................................................................................................................10 INSTALANDO O UBUNTU LINUX 10.04..............................................................................................................11 GERENCIAMENTO DE DISCOS NO LINUX...........................................................................................................20 CONFIGURAÇÃO DE PLACAS DE EXPANSÃO......................................................................................................20 CONFIGURAÇÃO DE DISPOSITIVOS USB...........................................................................................................21 UNIDADE 3. INICIANDO E FINALIZANDO O USO DO SISTEMA .....................................................23 CONSIDERAÇÕES INICIAIS ................................................................................................................................23 LOGIN...............................................................................................................................................................23 CONSOLES VIRTUAIS........................................................................................................................................24 COMANDOS EM MODO TEXTO..........................................................................................................................24 O QUE É SHELL?................................................................................................................................................24 CONFIGURAÇÃO DO SHELL...............................................................................................................................24 SAIR DO SHELL.................................................................................................................................................37 REINICIALIZANDO O LINUX ..............................................................................................................................37 DESLIGANDO O LINUX......................................................................................................................................37 UNIDADE 4. DISPOSITIVOS, SISTEMAS DE ARQUIVOS GNU/LINUX ............................................38 CRIAÇÃO DE PARTIÇÕES E SISTEMAS DE ARQUIVOS.........................................................................................38 CRIAÇÃO DE SISTEMAS DE ARQUIVOS..............................................................................................................39 UNIDADE 5. MANUTENÇÃO DA INTEGRIDADE DE SISTEMAS DE ARQUIVOS .........................41 CHECANDO O SISTEMA DE ARQUIVOS ..............................................................................................................41 EXAMINANDO E CORRIGINDO O SISTEMA DE ARQUIVOS ..................................................................................41 UNIDADE 6. ADMINISTRAÇÃO DE COTAS DE DISCO .......................................................................44 INTRODUÇÃO....................................................................................................................................................44 LIMITES DE QUOTAS.........................................................................................................................................44 CRIANDO E GERENCIANDO QUOTAS..................................................................................................................48 COMANDOS PARA MANIPULAÇÃO DE ARQUIVOS ..............................................................................................55 COMANDOS DE BUSCA .....................................................................................................................................67 UNIDADE 7. FLUXOS, CANALIZAÇÃO (PIPES) E REDIRECIONAMENTOS DE SAÍDA..............71 REDIRECIONAMENTO........................................................................................................................................71 CANALIZAÇÃO (PIPE)........................................................................................................................................71 UNIDADE 8. GERENCIAMENTO DE PROCESSOS................................................................................73 TAREFAS EM PRIMEIRO E SEGUNDO PLANO .....................................................................................................74 MODIFICAR A PRIORIDADE DE EXECUÇÃO DE UM PROCESSO ...........................................................................75 UNIDADE 9. COMPACTADORES ..............................................................................................................77 COMPILAR E INSTALAR PROGRAMAS................................................................................................................81 UNIDADE 10. ADMINISTRANDO USUÁRIOS E GRUPOS......................................................................83 ADICIONANDO UM NOVO GRUPO A UM USUÁRIO...............................................................................................85 UNIDADE 11. PERMISSÕES DE ACESSO A ARQUIVOS E DIRETÓRIOS..........................................87 DONOS, GRUPOS E OUTROS USUÁRIOS ..............................................................................................................87 TIPOS DE PERMISSÕES DE ACESSO ....................................................................................................................88 ETAPAS PARA ACESSO A UM ARQUIVO/DIRETÓRIO............................................................................................89
  4. 4. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 4 EXEMPLOS PRÁTICOS DE PERMISSÕES DE ACESSO.............................................................................................89 EXEMPLO DE ACESSO A UM DIRETÓRIO.............................................................................................................90 MODO DE PERMISSÃO OCTAL............................................................................................................................95 A CONTA ROOT.................................................................................................................................................98 UNIDADE 12. GERENCIAMENTO DE PACOTES.....................................................................................99 PACOTES ........................................................................................................................................................105 INSTALAR PACOTES ........................................................................................................................................105 O UTILITÁRIO APT...........................................................................................................................................108 UNIDADE 13. USANDO O EDITOR VI ......................................................................................................115 CONCEITOS.....................................................................................................................................................115 INICIANDO O VI...............................................................................................................................................115 INSERINDO TEXTO ..........................................................................................................................................116 APAGANDO TEXTO .........................................................................................................................................117 MODIFICANDO TEXTO.....................................................................................................................................118 COMANDOS PARA MOVIMENTAR O CURSOR....................................................................................................119 SALVANDO ARQUIVOS E SAINDO DO VI...........................................................................................................120 EDITANDO OUTRO ARQUIVO...........................................................................................................................120 INCLUINDO OUTROS ARQUIVOS ......................................................................................................................121 RODANDO COMANDOS DO SHELL....................................................................................................................121 AJUDA NO VI ..................................................................................................................................................122 UNIDADE 14. EXPRESSÃO REGULARES................................................................................................123 TERMINOLOGIA ..............................................................................................................................................123 METACARACTERES.........................................................................................................................................125 REPRESENTANTES ..........................................................................................................................................125 QUANTIFICADORES.........................................................................................................................................130 ÂNCORAS .......................................................................................................................................................134 OUTROS..........................................................................................................................................................136 LINGUAGENS DE PROGRAMAÇÃO....................................................................................................................139 DIFERENÇAS DE METACARACTERES ENTRE APLICATIVOS ..............................................................................142 RESUMO DOS METACARACTERES E SEUS DETALHES ......................................................................................143 CARACTERES ASCII IMPRIMÍVEIS ..................................................................................................................144 UNIDADE 15. BACKUP ................................................................................................................................145 UNIDADE 16. RAID.......................................................................................................................................147 ESPELHAMENTO .............................................................................................................................................148 OUTROS SISTEMAS RAID...............................................................................................................................148 IMPLEMENTAÇÃO ...........................................................................................................................................149 UNIDADE 17. LOGS ......................................................................................................................................151 INTRODUÇÃO..................................................................................................................................................151 LOGS BÁSICOS.................................................................................................................................................151 LOGS GERADOS POR ALGUNS SERVIÇOS DE REDE............................................................................................154 UNIDADE 18. INICIALIZAÇÃO .................................................................................................................158 INICIALIZAÇÃO DO SISTEMA...........................................................................................................................158 UNIDADE 19. O KERNEL DO LINUX........................................................................................................164 UNIDADE 20. SERVIÇOS DE IMPRESSÃO..............................................................................................168 UNIDADE 21. O X11 SERVER .....................................................................................................................169
  5. 5. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 5 Unidade 1. História do Linux Unix A origem do Unix tem ligação com o sistema operacional Multics, projetado na década de 1960. Esse projeto era realizado pelo Massachusets Institute of Technology (MIT), pela General Eletric (GE) e pelos laboratórios Bell (Bell Labs) e American Telephone na Telegraph (AT&T). A intenção era de que o Multics tivesse características de tempo compartilhado (vários usuários compartilhando os recursos de um único computador), sendo assim o sistema mais arrojado da época. Em 1969, já existia uma versão do Multics rodando num computador GE645. Ken Thompsom era um pesquisador do Multics e trabalhava na Bell Labs. No entanto, a empresa se retirou do projeto tempos depois, mas ele continuou seus estudos no sistema. Desde então, sua ideia não era continuar no Multics original e sim criar algo menor, mas que conservasse as ideias básicas do sistema. A partir daí, começa a saga do sistema Unix. Brian Kernighan, também pesquisador da Bell Labs, foi quem deu esse nome. Em 1973, outro pesquisador da Bell Labs, Dennis Ritchie, reescreveu todo o sistema Unix numa linguagem de alto nível, chamada C, desenvolvida por ele mesmo. Por causa disso, o sistema passou a ter grande aceitação por usuários externos à Bell Labs. Entre 1977 e 1981, a AT&T, alterou o Unix, fazendo algumas mudanças particulares e lançou o System III. Em 1983, após mais uma série de modificações, foi lançado o conhecido Unix System IV, que passou a ser vendido. Até hoje esse sistema é usado no mercado, tornando-se o padrão internacional do Unix. Esse sistema é comercializado por empresas como IBM, HP, Sun, etc. Linux A história começa com um jovem chamado Linus Torvalds nasceu em 28 de dezembro de 1969 em Helsinki na Finlândia e sua família era uma das poucas cuja linguagem adotada como principal era o Sueco ao invés do Finlandês. Embora fosse filho de jornalistas, Linus começou a demonstrar seu interesse pelo “mundo geek” cedo, obtendo sempre grande destaque em campos como a Matemática e Física. Em 1988, Linus ingressou na Universidade de Helsinki no curso de Ciências da Computação. Após montar um computador no qual passou a adotar o Minix (um sistema operacional baseado no Unix, porém gratuito). Devido a observar as dificuldades deste sistema (especialmente com relação ao uso de terminal para conexão), Linus resolveu criar um programa para a emulação de terminal que funcionasse independente do Minix. Em 1991, com relação aos sistemas operacionais, você tinha poucas escolhas. O DOS exercia sua soberania absoluta com relação aos computadores pessoais, até por uma questão de falta de escolha. Por mais que os Macs existissem seus preços eram astronômicos, fato que tornava quase impossível a aquisição de um deles para um usuário final. Além deles, havia o Unix que certamente era ainda mais caro do que um Mac e adotado quase exclusivamente por grandes empresas. Nessa altura, o código do Unix, que uma vez foi
  6. 6. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 6 utilizado como material de estudo em universidades, já se encontrava proprietário e não mais para conhecimento público. Nesse clima, um professor holandês chamado Andrew S. Tanenbaum criou um sistema operacional baseado no Unix, o Minix. Montado para funcionar com a linha de processadores Intel 8086. Como primariamente, o Minix tinha objetivos acadêmicos (o ensino do funcionamento de um SO em universidades), ele estava longe de resolver todos os problemas de um usuário final, porém seu código-fonte era disponibilizado por Tanenbaum. Nesse ponto da história, o estudante Linus Torvalds, frustrado com as carências do Minix começou a idealizar como seria bom ter um SO que, além de gratuito, pudesse efetuar tarefas como emulação de terminal e transferência e armazenamento de arquivos. Então, em 25 de agosto de 1991, Linus anunciou por meio de um email na Usenet (a Unix User Network) que estava desenvolvendo um sistema operacional. O famoso e-mail relata que ele estava criando um sistema operacional desde abril do mesmo ano, porém que não intencionava torná-lo uma coisa realmente grande e profissional como o GNU (SO de código aberto baseado no Unix), Linus pretendia chamar sua criação de “Freax”, porém trocou para Linux ao aceitar esta sugestão de um de seus amigos. GNU Um fato importante de conhecer é saber o que é GNU. GNU é um projeto que começou em 1984, criado por Richard Stallman, com o objetivo de desenvolver um sistema operacional compatível com os de padrão Unix. O Linux em si, é só um kernel. Linus Torvalds, na mesma época que escrevia o código-fonte do kernel, começou a usar programas da GNU para fazer seu sistema. Gostando da ideia, resolveu deixar seu kernel dentro da mesma licença. Mas, o kernel por si só, não é usável. O kernel é a parte mais importante, pois é o núcleo e serve de comunicador entre o usuário e o computador. Por isso, com o uso de variantes dos sistemas GNU junto com o kernel, o Linux se tornou um sistema operacional. FSF (Free Software Foundation) Por volta de 1983, Richard Stallman criava a Free Software Foundation (FSF), uma fundação sem fins lucrativos, que lutava contra as restrições de cópia e alterações de software, em outras palavras, incentivava a criação de programas livres para cópia e alteração, para isso a FSF criou a licença GNU e um conjunto de ferramentas próprias para esse fim. Em 1991, a FSF estava criando um sistema operacional chamado Hurd, mas ainda em fase inicial. Por volta dessa mesma época Linus Torvalds resolveu disponibilizar o código-fonte do Linux sob a licença GNU a fim de conseguir ajuda de outros desenvolvedores. Muitos desenvolvedores se interessaram e começaram a adicionar novos recursos rapidamente, mas ficou limitado a este círculo técnico, pois ainda estava em fase embrionária não sendo possível a utilização em larga escala. Em 5 de outubro de 1991, a primeira versão oficial do Linux foi divulgada, a versão 0.02, desde então o número de desenvolvedores cresceu rapidamente.
  7. 7. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 7 Distribuições Linux Logo que Linus Torvalds disponibilizou, o seu Kernel Linux sob uma licença para software livre, mais precisamente sob a GNU General Public License (Licença Pública Geral), ou GNU GPL (da FSF), o Projeto GNU, que já havia construído todo um conjunto de softwares que compunham um sistema operacional, adotou-o como kernel para seu Sistema Operacional GNU, por sua vez também foi distribuído como software livre, para que pudesse ser modificado, melhorado, adaptado, e redistribuído com as modificações. Muitos programadores individuais, grupos de programadores e organizações de todo o mundo, passaram a realizar essas modificações e redistribuir essas versões do Sistema GNU/Linux modificado, são as chamadas "Distribuições GNU/Linux", ou "Distros Linux". Portanto, uma distribuição Linux “é composta do kernel Linux e um conjunto variável de software, dependendo de seus propósitos”. Essa coleção de software livre é criada e mantida por indivíduos, grupos e organizações de todo o mundo. As primeiras distribuições surgiram ainda em 1992, como MCC Interim Linux, o Yggdrasi e o SLS Linux, que após uma reformulação originou o Slackware, em julho de 1993. Ainda em 1993 surgiu o Debian, e em 1994 o Red Hat. Essas três grandes famílias de distribuições GNU/Linux, Slackware, Debian e Red Hat, deram origem a outras distros, muitas das quais foram continuadas, deram origem a outras distros, e outras foram descontinuadas. Red Hat A empresa americana Red Hat, caracterizada com uma pessoa "sombra" com um chapéu vermelho, foi uma das pioneiras no tratamento sério do Linux. Desde o início ela é uma das principais distribuições mundiais, e tem influências em todos os lugares. Sua equipe não apenas ajuda na distribuição em si, mas também no próprio Linux (como é o caso do kernel-hacker Alan Cox). Esta distribuição deu origem a muitas outras. Criadora do RPM, o gerenciador de pacotes mais usado atualmente no Linux, a Red Hat atualmente têm uma distribuição mais voltada para o mercado de servidores. Mas isso não quer dizer que ela não seja boa também para uso doméstico. Você encontra nela uma facilidade de manuseio, pacotes atualizados. http://www.redhat.com Slackware Podemos dizer que o Slackware é uma das mais famosas distribuições para Linux, o seu criador, Patrick Volkerding, lançou a primeira versão da distribuição em Abril de 1992, e desde então segue uma filosofia bem rígida: manter a distribuição o mais parecido com o UNIX possível. As prioridades da distribuição são: estabilidade e simplicidade, e é isso que a torna uma das mais populares distribuições disponíveis.
  8. 8. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 8 Ele possui uma interface de instalação bem amigável, além de uma série de scripts que ajudam na instalação e desinstalação de pacotes. O Slackware pode ser uma alternativa tanto para usuários iniciantes como os já experientes. As opções de instalação permitem que o usuário possa instalar em sua máquina uma distribuição que tem como características uma grande variedade de desktops (gerenciadores de janelas como o Gnome, KDE, Window Maker, Enlightenment, fvwm), ou como um poderoso servidor com todos os recursos necessários (utilitários de rede, servidores http, noticias, e-mail, ftp, etc). Os pacotes sempre estão em atualização, mantidos por uma versão especial da distribuição: o slackware-current. Isto desfaz o mito de que o Slackware não é uma distribuição "dinâmica". Todos aqueles aplicativos estão disponíveis, e são atualizados regularmente. http://www.slackware.com Debian Talvez a filosofia do Debian seja o ponto que mais chama atenção nesta popular distribuição. No início, antes do Linux ser lançado oficialmente por Linus Torvalds, o projeto GNU já tinha várias ferramentas Unix-like disponíveis. O que faltava era um kernel, e então quando Linus Torvalds lançou o seu kernel Linux, resolveram então criar o GNU/Linux. O Debian GNU/Linux é uma distribuição que segue toda esta filosofia do projeto GNU, oficialmente contendo apenas pacotes com programas de código-fonte livre, feito por voluntários espalhados pelo mundo, e sem fins lucrativos alguns. Apesar de atualmente o Debian ser usado com o kernel Linux, ele se intitula como um sistema operacional que pode usar não apenas o kernel do Linux em si, mas outros kernels como o Hurd (projeto de kernel livre feito fora do escopo do Linux). Isso o faz o "Sistema Operacional Universal", pois o principal objetivo deles é fazer um sistema que rode em todos os lugares e com vários kernels. E claro, isso tudo na filosofia GNU. O Debian tem uma quantidade incrível de pacotes pré-compilados para vários tipos de arquitetura. Além do mais, ele é o pai do apt, a ferramenta de atualização de pacotes automática, feita pela internet. Mas há quem diga que o Debian ainda tem muito que melhorar: Uma instalação complicada e ideologismo demasiados são alguns pontos fracos que muita gente encontra nesta distribuição. http://www.debian.org Ubuntu Ubuntu é um sistema de código aberto construído em volta do núcleo Linux baseado no Debian, sendo o sistema operacional de código aberto mais popular do mundo. É patrocinado pela Canonical Ltd (dirigida por Jane Silber). O Ubuntu diferencia-se do Debian por ser lançado semestralmente, por disponibilizar suporte técnico nos dezoito meses seguintes ao lançamento de cada versão (exceto nas versões LTS, ou seja, Long Term Support) (em inglês) e pela filosofia em torno de sua concepção. A proposta do Ubuntu é oferecer um sistema operacional que qualquer pessoa possa utilizar sem dificuldades,
  9. 9. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 9 independentemente de nacionalidade, nível de conhecimento ou limitações físicas. O sistema deve ser constituído totalmente de software gratuito e livre, além de isenta de qualquer taxa. A Comunidade Ubuntu ajuda-se mutuamente, não havendo distinção de novatos ou veteranos; a informação deve ser compartilhada para que se possa ajudar quem quer que seja, independentemente do nível de dificuldade. Os fãs do Ubuntu são conhecidos como ubuntistas, ubunteiros ou ubunteros. O sistema operacional Ubuntu está em primeiro lugar no Distrowatch (www.distrowatch.com), página especializada em catalogar o desempenho e uso dos muitos sistemas operacionais com núcleo Linux.
  10. 10. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 10 Unidade 2. Instalação do Linux Requisitos de Hardware Para dimensionar o hardware correto para instalação do Linux devemos inicialmente saber qual distribuição que iremos trabalhar, pois cada distribuição pode exigir diferentes configurações. Tomamos como base a distribuição Ubuntu 10.04. Requisitos mínimos para instalação do Ubuntu 10.04 Lucid Lynx Processador: 700mhz; Memória RAM: 512MB; Disco: 4GB; Placa Gráfica: qualquer placa gráfica (funcionamento do sistema de efeitos visuais poderá estar condicionado conforme a placa gráfica) Requisitos Recomendados: Processador: 1.2GHz; Memória RAM: 1GB; Disco: 10GB Placa Gráfica: nVidia Compatibilidade de Hardware O Ubuntu conta com uma grande quantidade de drivers e uma grande aceitação dos fabricantes de hardware existe poucos casos de incompatibilidades de hardware no mercado em relação a esta distribuição. Uma boa prática é que antes de penar em uma instalação de um novo sistema operacional é a verificação da lista de compatibilidade, de cada distribuição, para evitar transtornos e perda de tempo. A lista de compatibilidade de hardware do Ubuntu pode ser encontrada em www.ubuntu.com/certification/catalog, esta lista se encontra em constante atualização, já que seu sistema operacional está em constante desenvolvimento.
  11. 11. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 11 Instalando o Ubuntu Linux 10.04 Se gravar a imagem do Linux Ubuntu em um CD, deverá utilizar um programa próprio de gravação de imagens, utilize um programa próprio para fazer o “Burn” da imagem no disco (exemplo: Nero 9/Nero 10, Alcohol 120%) Neste momento o Windows 7 consegue gravar imagem em disco, sem utilização de programa algum. Configure a BIOS de forma que o computador inicialize pelo CD ou pela Pen. Reinicie o computador para ele inicialize ou pelo CD ou pela pen. Se tudo correr bem, irá aparecer uma janela semelhante à seguinte: Caso não carregue está tela você deve pressionar ESC, o Ubuntu iria iniciar sozinho, direcionando para o modo de instalação.
  12. 12. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 12 Escolha o idioma desejado conforme a tela abaixo. Quando clicar na tecla Enter para selecionar a linguagem, irá aparecer o seguinte menu onde deverá escolher a opção “Experimente o Ubuntu sem instalar", esta opção é a mais indicada pois caso haja algum tipo de incompatibilidade de hardware provavelmente irá ser detectada. Ao selecionar esta opção, o Ubuntu irá carregar-se, depois de algum tempo de espera, o usuário poderá instalar o novo Ubuntu Lucid Lynx, e também experimentá-lo, verificar se tudo é compatível e inclusive acessar a Internet.
  13. 13. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 13 Na próxima tela você deverá dar dois cliques em “Instalar Ubuntu 10.04 LTS” Clique no botão “Avançar” para prosseguir.
  14. 14. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 14 Neste próximo passo, deve-se selecionar o teclado correto. Este passo é muito importante, pois existem muitos modelos de teclados e muitos deles têm poucas diferenças, mas que são importantes no dia-a-dia. Neste passo, a opção selecionada abaixo é recomendada para aqueles que têm outro sistema operacional no PC. Outra opção é a formatação do disco, e utilizar apenas o Ubuntu, claro que desta forma você perderá tudo que você tinha anteriormente.
  15. 15. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 15 O Ubuntu irá analisar o seu disco e irá apresentar as partições que criou no passo anterior caso tenha usado a segunda opção. Quando o Ubuntu apresentar as partições, deverá selecionar as devidas partições e definir os seus atributos, clicando no botão “Modificar…“: A partição / deve ser do tipo de sistema de arquivo ext4 com um tamanho em torno de 10GB.
  16. 16. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 16 A partição /home deverá ser a maior pelo motivo de ser o diretório que mais cresce em um sistema Linux, algo em torno de 50 GB, lembrando que isso tudo isso é em caso de utilizarmos um HD de bom tamanho, caso contrario poderíamos trabalhar com os quesitos mínimos. No final deste procedimento, a lista de partições deverá ter as características das partições semelhantes às da imagem abaixo, você poderá criar uma partição de swap em torno de 400 Mb. Depois de verificar se tudo está correto, clique no botão “Avançar!
  17. 17. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 17 No passo seguinte, deverá digitar o seu nome, o usuário, que servirá depois para fazer o login no Ubuntu. Depois de preencher esses dados, clique no botão “Avançar” para prosseguir ao passo seguinte. No passo seguinte serve para importar arquivos que existam em outros sistemas operacionais. Se quiser migrar algum desses dados listados, basta pôr um visto e clicar no botão “Avançar
  18. 18. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 18 No passo final, você deve rever todas as opções que escolheu e, caso precise de uma proxy, permite defini-la, essas opções estão disponíveis através do botão “Avançado“. Para começar a instalação do Ubuntu clique “Instalar”. Enquanto a instalação está em processamento, pode navegar na Internet, ou mesmo jogar algum jogo disponível por este Ubuntu no menu Aplicações → Jogos.
  19. 19. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 19 Quando a instalação estiver concluída com sucesso, será apresentada a janela abaixo e pedirá para reiniciar o Ubuntu para puder utilizar o seu novo Ubuntu! Depois de ter o Ubuntu instalado, você deve instalar todos os codecs necessários para poder ouvir quase qualquer tipo de música e de vídeo, bem como qualquer arquivo compactado que lhe possa aparecer. Este Ubuntu, ainda não tem a máquina virtual Java para poder abrir determinadas aplicações desse tipo nem o Adobe Flash para poder ver vídeos no Youtube.
  20. 20. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 20 Gerenciamento de Discos no Linux CSI (scuzzy) Há dois tipos de dispositivos SCSI: 8 bit: 8 dispositivos incluindo o controlador. 16 bit: 16 dispositivos incluindo o controlador. Dispositivos SCSI são identificados através de um conjunto de três números chamado SCSI_ID: 1 O Canal SCSI. Cada adaptador SCSI suporta um canal de dados no qual são anexados os dispositivos SCSI. São numerados a partir de zero. 2 O ID do dispositivo. A cada dispositivo é atribuído um número ID único alterável através de jumpers. A gama de Ids vai de 0 a 7 em controladores de 8 bit e de 0 a 15 em controladores de 16 bit. O ID do controlador costuma ser 7. 3 O número lógico da unidade (LUN). É usado para determinar diferentes dispositivos dentro de um mesmo alvo SCSI. Pode indicar uma partição em um disco ou um dispositivo de fita específico em um dispositivo multi-fita. Hoje não é muito utilizado pois adaptadores SCSI estão mais baratos e podem comportar mais alvos por barramento. Todos dispositivos SCSI são listados em /proc/scsi/scsi: # cat /proc/scsi/scsi Attached devices: Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: HL-DT-ST Model: RW/DVD GCC-4521B Rev: 1.00 Type: CD-ROM ANSI SCSI revision: 02 O comando scsi_info usa as informações deste arquivo para mostrar o SCSI_ID e o modelo do dispositivo solicitado: # scsi_info /dev/scd0 SCSI_ID="0,0,0" HOST="1" MODEL="HL-DT-ST RW/DVD GCC-4521B" FW_REV="1.00" Por padrão, o dispositivo SCSI de boot é o de ID 0, o que pode ser alterado na BIOS SCSI. Se existirem tanto dispositivos SCSI quanto IDE, a ordem do boot precisa ser especificada na BIOS da máquina. Configuração de Placas de Expansão A configuração de placas de expansão diversas engloba os aspectos abordados nos capítulos anteriores, mais um conhecimento mais sólido sobre coldplug, hotplug e inspeção de hardware. Em linhas gerais, coldplug significa a impossibilidade de se conectar dispositivo sem a necessidade de desligar a máquina. Exemplos de dispositivos coldplug são placas PCI, ISA e dispositivos IDE. Na
  21. 21. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 21 maioria dos computadores, CPU e pentes de memória são coldplug. Porém, alguns servidores de alta performance suportam hotplug para esses componentes. Hotplug é o sistema que permite conectar novos dispositivos à máquina em funcionamento e usá-los imediatamente, como no caso de dispositivos USB. O sistema Hotplug foi incorporado ao núcleo do modelo de driver do kernel 2.6, assim qualquer barramento ou classe pode disparar eventos hotplug quando um dispositivo é conectado ou desconectado. Assim que um dispositivo é conectado ou desconectado, o hotplug dispara um evento correspondente, geralmente trabalhando junto do subsistema udev, que atualiza os arquivos de dispositivos em /dev. O hotplug precisa estar liberado no kernel, através da opção CONFIG_HOTPLUG. Dessa forma, haverá o arquivo /proc/sys/kernel/hotplug contendo o caminho para o programa hotplug (normalmente em /sbin/hotplug). A ação tomada pelo hotplug dependerá do nome do agente passado pelo kernel (nomes de agentes podem ser “usb”, “pci”, “net”, etc.). Para cada agente existe um script correspondente em /etc/hoplug/, que se encarrega de configurar corretamente o dispositivo no sistema. Mesmo alguns dispositivos coldplug são configurados pelo sistema hotplug. Na hora do boot, o script /etc/init.d/hotplug (ou /etc/rc.d/rc.hotplug no slackware) dispara os agentes em /etc/hotplug/ para configurar aqueles dispositivos presentes antes da máquina ser ligada. Configuração de Dispositivos USB Dispositivos para interface USB (Universal Serial Bus) são divididos em classes:  Display Devices  Communication Devices  Audio Devices  Mass Storage Devices  Human Interface Devices (HID)  porta USB é operada por um controlador (Host Controller):  OHCI (compaq)  UHCI (intel)  EHCI (USB v2.0)
  22. 22. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 22 Uma vez conectados, os dispositivos USB podem ser inspecionados com o comando lsusb. # lsusb Bus 002 Device 003: ID 05a9:a511 OmniVision Technologies, Inc. OV511+ WebCam Bus 002 Device 002: ID 0f2d:9308 ViPower, Inc. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 As informações detalhadas sobre os dispositivos USB conectadas são armazenadas no arquivo /proc/bus/usb/devices. O controle dos dispositivos USB é feito pelo hotplug. Etapas executadas quando uma câmera USB é conectada ao computador:  Os módulos USB do kernel identificam o evento USB e a ID vendor:product.  Esses dados são passados para /sbin/hotplug (ou outro, se o indicado em /proc/sys/kernel/hotplug não for o padrão)  O agente USB respectivo (/etc/hotplug/usb.agent) associa o dispositivo ao produto correspondente. A relação entre dispositivo e módulo consta no arquivo /etc/hotplug/usb.distmap. O primeiro estágio envolve procedimentos do kernel, enquanto o segundo e terceiro estágio envolvem o mecanismo do hotplug. O mapa USB correto precisa estar disponível para iniciar corretamente o dispositivo.
  23. 23. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 23 Unidade 3. Iniciando e Finalizando o uso do Sistema Considerações Iniciais Diferenciação entre letras maiúsculas e minúsculas (case sensitive): todos os shells do Linux fazem esta diferenciação, isto significa que os nomes dos arquivos devem ser especificados com exatidão, ou seja, o arquivo denominado Manual.txt é um arquivo diferente do arquivo denominado manual.txt.. Histórico do shell: o shell padrão do Linux, bash, grava os últimos 1000 comandos em uma lista denominada .bash_history no diretório home do usuário. Dessa forma as operações por linha de comando ganham em agilidade. A fim de percorrer o .bash_history, use as teclas do cursor para cima e para baixo. Tecla Tab: outro recurso do bash é o autopreenchimento de comandos . Vejamos o exemplo abaixo: 1. Digite as primeiras letras do nome de um comando, neste exemplo será utilizado o comando date. [root@localhost /root]# da 2. Pressione a tecla Tab e o shell irá completar o nome do comando. [root@localhost /root]# date Curingas: o Linux permite o uso de curingas tanto para sobreposição de uma sequência de caracteres (*), quanto para uma única posição (?). 1. Acessando o diretório boot da raiz, utilizando o curinga para sobreposição de uma sequência de caracteres. root@localhost /]#cd bo* 2. Acessando o diretório boot da raiz, utilizando o curinga de sobreposição única. [root@localhost /root]#cd boo? Login Para que o usuário tenha acesso ao sistema é necessário que ele possua uma conta, ou seja, um login e senha. 1. No prompt de logon digite o nome da conta e pressione a tecla enter. Localhost login: root Password: ******* 2. No prompt da senha digite a sua senha e pressione a tecla enter. 3. Caso o processo de logon tenha sido realizado com êxito, surge na tela uma mensagem do sistema conforme o exemplo abaixo:
  24. 24. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 24 Last login: Thu Feb 8 14:06:27 on tty1 4. Logo após o surgimento desta mensagem o shell do usuário é disponibilizado. [root@localhost /root]# Consoles Virtuais O Linux permite o acesso diversas vezes e de forma independente, com diferentes usuários, através do uso de consoles virtuais. Estes consoles oferecem um meio de executar diferentes shells ao mesmo tempo. O Linux suporta pelo menos 6 consoles virtuais. Vejamos como proceder para utilizar consoles virtuais: 1. Depois de obter acesso ao sistema, mantenha pressionada a tecla Alt e pressione as teclas F2, F3, F4, F5 ou F6. 2. Repita o processo de login, para cada console, a fim de iniciar as operações. Para alternar entre consoles basta manter pressionada a tecla Alt + a tecla de função apropriada. Comandos em Modo Texto O que é shell? Shell, ou interpretador de comandos é o programa executado logo após o login, cuja tarefa é interpretar e executar os comandos do usuário. Por exemplo, quando o usuário digita no console "ls" e pressiona a tecla Enter, o shell lê essa string e verifica se existe algum comando interno (embutido no próprio shell) com esse nome. Se houver, ele executa esse comando interno. Caso contrário, ele vai procurar no PATH por algum programa que tenha esse nome. Se encontrar, ele executa esse programa, caso contrário, ele retorna uma mensagem de erro. Para cada terminal ou console aberto, existe um shell sendo executado. Ao digitar o comando "ps" (process status), podemos verificar que um dos programas rodando é o shell do usuário: PID TTY TIME CMD 13299 pts/1 00:00:00 su 13300 pts/1 00:00:00 bash 13337 pts/1 00:00:00 ps Existem diversos tipos de shell: bash, csh, ksh, ash, etc. O mais utilizado atualmente é o bash (GNU Bourne-Again SHell). Configuração do Shell Variáveis de Ambiente do Shell O shell carrega vários arquivos localizados em diferentes diretórios no sistema, denominados: arquivos de recursos, perfil e login. Os arquivos de perfil contêm as variáveis de ambiente, as quais são definições e valores que o shell ou outros programas reconhecem depois do acesso.
  25. 25. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 25 Exibir variáveis de ambiente Para exibir o valor de uma determinada variável ou uma lista das variáveis de ambiente atualmente definidas, podemos utilizar o comando printenv conforme o exemplo abaixo: Exemplos: [leonardo@localhost root]# printenv PATH Se digitarmos apenas printenv, teremos uma lista com o valor das variáveis do ambiente. Outra forma de exibir as variáveis de ambiente é através do comando env, que ao contrário do comando printenv não exibe o valor de uma só variável. Variáveis de ambiente: EDITOR Editor padrão do sistema HISTSIZE O número de linhas de comando memorizadas HOME O diretório home do usuário atual HOSTTYPE A arquitetura do sistema em uso LOGNAME Nome do usuário atual MAIL O diretório que contém as mensagens de correio eletrônico recebidas OSTYPE O sistema operacional em uso PATH O caminho (ou caminhos) a procurar os comandos PS1 Definição do prompt da linha de comando SHELL Nome do shell atualmente em uso SHLVL O número de shell atualmente em execução TERM O tipo de terminal em uso USER O nome do usuário atual Definir uma variável de ambiente Para definir uma variável de ambiente no shell bash é necessário utilizar o comando export, obedecendo a seguinte sintaxe: NOME_VARIAVEL="valor";export NOME_VARIAVEL. Exemplos: [leonardo@localhost root]# EDITOR ="/bin/vi" ; export EDITOR Outra forma de definir variáveis de ambiente a partir da linha de comando de qualquer shell é usar o comando env, conforme a seguinte sintaxe: env NOME_VARIAVEL=valor Excluir uma variável de ambiente Para excluir uma variável de ambiente digite: unset NOME_VARIAVEL A variável PATH Essa variável define o diretório ou diretórios onde o shell pode encontrar os programas executáveis, caso a variável não tenha sido definida corretamente será necessário digitar todo o caminho para o programa. Exemplos: [leonardo@localhost root]# echo $PATH /sbin:/bin [leonardo@localhost root]# env PATH=$PATH:/home [leonardo@localhost root]# echo $PATH /sbin:/bin:/home
  26. 26. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 26 Estas instruções sobre como adicionar caminhos ao PATH são válidas temporariamente, até sair do terminal. Para adicionar um caminho ao PATH de forma definitiva, para todo o sistema, é necessário editar o arquivo /etc/profile, para isso acesse o sistema como root. Personalizando o prompt da linha de comando A variável de prompt do shell padrão bash, PS1, é definida no /etc/profile. A definição de prompt usa caracteres especiais reconhecidos pelo shell bash, conforme este exemplo: PS1="[u@h W]$" Esta linha deve existir, também, no arquivo .bash_profile. A variável PS1 deve ser acrescentada à linha de exportação no .bash_profile, desta forma: export USERNAME ENV PATH PS1 Caracteres do prompt do shell bash: ! Exibe o número de histórico do comando # Exibe o número desse comando $ Exibe # para root ou $ para usuário comum. W Exibe o nome básico do diretório de trabalho atual [ Indica a sequência dos caracteres não imprimíveis Imprime uma barra invertida ] Finaliza a sequência de caracteres não imprimíveis d Usa a data no prompt h Usa o nome de host do computador no prompt n Exibe uma nova linha de prompt s Exibe o nome do shell t Exibe a hora u Exibe o nome atual do usuário w Exibe o diretório atual de trabalho Exemplos: [leonardo@localhost root]# PS1='d t: ';export PS1 Sun Feb 18 18:45:07: Alias São redefinições de comandos inseridas, pelo root, no arquivo /etc/bashrc que permitem maior agilidade no uso dos comandos. Exemplos: alias cp="cp -i" alias mv="mv -i"
  27. 27. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 27 Criar o arquivo e colocar nele os comandos Use o nano, VI ou outro editor de textos de sua preferência para colocar todos os comandos dentro do arquivo. A primeira linha do script deve ser: #!/bin/bash Para que ao ser executado, o sistema saiba que é o shell quem irá interpretar estes comandos. Para tornar o script um arquivo executável: chmod +x sistema Problemas na execução do script "Comando não encontrado" O shell não encontrou o seu script. Verifique se o comando que você está chamando tem exatamente o mesmo nome do seu script. Lembre-se que no Unix/Linux as letras maiúsculas e minúsculas são diferentes, então o comando "SISTEMA" é diferente do comando "sistema". Caso o nome esteja correto, verifique se ele está no PATH do sistema. O comando "echo $PATH" mostra quais são os diretórios conhecidos, mova seu script para dentro de um deles, ou chame-o passando o caminho completo. Se o script estiver no diretório corrente, chame-o com um "./" na frente, assim: prompt$ ./sistema Caso contrário, especifique o caminho completo desde o diretório raiz: prompt$ /tmp/scripts/sistema "Permissão Negada" O shell encontrou seu script, mas ele não é executável. Use o comando chmod +x seu-script para torná-lo um arquivo executável. "Erro de Sintaxe" O shell encontrou e executou seu script, porém ele tem erros. Um script só é executado quando sua sintaxe está 100% correta. Verifique os seus comandos, geralmente o erro é algum IF ou aspas que foram abertos e não foram fechados. A própria mensagem informa o número da linha onde o erro foi encontrado.
  28. 28. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 28 O primeiro shell script. Nesse ponto, você já sabe o básico necessário para fazer um script em shell do zero e executá-lo. Mas apenas colocar os comandos em um arquivo não torna este script útil. Vamos fazer algumas melhorias nele para que fique mais compreensível. Executar os três comandos seguidos resulta em um bolo de texto na tela, misturando as informações e dificultando o entendimento. É preciso trabalhar um pouco a saída do script, tornando-a mais legível. O comando "echo" serve para mostrar mensagens na tela. Que tal anunciar cada comando antes de executá-lo? #!/bin/bash echo "Data e Horário:" date echo echo "Uso do disco:" df echo echo "Usuários conectados:" w Para usar o echo, basta colocar o texto entre "aspas". Se nenhum texto for colocado, uma linha em branco é mostrada. Para o script ficar mais completo, vamos colocar uma interação mínima com o usuário, pedindo uma confirmação antes de executar os comandos. #!/bin/bash echo "Vou buscar os dados do sistema. Posso continuar? [sn] " read RESPOSTA test "$RESPOSTA" = "n" && exit echo "Data e Horário:" date echo echo "Uso do disco:" df echo echo "Usuários conectados:" w O comando "read" leu o que o usuário digitou e guardou na variável RESPOSTA. Logo em seguida, o comando "test" verificou se o conteúdo dessa variável era "n". Se afirmativo, o comando "exit" foi chamado e o script foi finalizado. Nessa linha há vários detalhes importantes:  O conteúdo da variável é acessado colocando-se um cifrão "$" na frente  O comando test é útil para fazer vários tipos de verificações em textos e arquivos  O operador lógico "&&", só executa o segundo comando caso o primeiro tenha sido OK. O operador inverso é o "||” Com o tempo, o script vai crescer, mais comandos vão ser adicionados e quanto maior, mais difícil encontrar o ponto certo onde fazer a alteração ou corrigir algum erro. Para poupar horas de estresse, e facilitar as manutenções futuras, é preciso deixar o código visualmente mais agradável e espaçado, e colocar comentários esclarecedores. #!/bin/bash # sistema - script que mostra informações sobre o sistema
  29. 29. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 29 # Autor: Fulano da Silva # Pede uma confirmação do usuário antes de executar echo "Vou buscar os dados do sistema. Posso continuar? [sn] " read RESPOSTA # Se ele digitou 'n', vamos interromper o script test "$RESPOSTA" = "n" && exit # O date mostra a data e a hora correntes echo "Data e Horário:" date echo # O df mostra as partições e quanto cada uma ocupa no disco echo "Uso do disco:" df echo # O w mostra os usuários que estão conectados nesta máquina echo "Usuários conectados:" w Basta iniciar a linha com um "#" e escrever o texto do comentário em seguida. Estas linhas são ignoradas pelo shell durante a execução. O cabeçalho com informações sobre o script e seu autor também é importante para ter-se uma visão geral do que o script faz, sem precisar decifrar seu código. Também é possível colocar comentários no meio da linha # como este Variáveis As variáveis são a base de qualquer script. É dentro delas que os dados obtidos durante a execução do script serão armazenados. Para definir uma variável, basta usar o sinal de igual "=" e para ver seu valor, usa-se o "echo": prompt$ VARIAVEL="um dois tres" prompt$ echo $VARIAVEL um dois tres prompt$ echo $VARIAVEL $VARIAVEL um dois tres um dois tres prompt$ Não podem haver espaços ao redor do igual "=" Ainda é possível armazenar a saída de um comando dentro de uma variável. Ao invés de aspas, o comando deve ser colocado entre "$(...)", veja: prompt$ HOJE=$(date) prompt$ echo "Hoje é: $HOJE" Hoje é: Sáb Abr 24 18:40:00 BRT 2004 prompt$ unset HOJE prompt$ echo $HOJE prompt$ E finalmente, o comando "unset" apaga uma variável. Para ver quais as variáveis que o shell já define por padrão, use o comando "env". Diferente de outras linguagens de programação, o shell não usa os parênteses para separar o comando de seus argumentos, mas sim o espaço em branco. O formato de um comando é sempre: COMANDO OPÇÕES PARÂMETROS
  30. 30. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 30 O comando "cat" mostra o conteúdo de um arquivo. O comando "cat -n sistema" mostra o nosso script, com as linhas numeradas. O "-n" é a opção para o comando, que o instrui a numerar linhas, e "sistema" é o último argumento, o nome do arquivo. O "read" é um comando do próprio shell, já o "date"" é um executável do sistema. Dentro de um script, não faz diferença usar um ou outro, pois o shell sabe como executar ambos. Assim, toda a gama de comandos disponíveis no Unix/Linux pode ser usada em scripts! Há vários comandos que foram feitos para serem usados com o shell, são como ferramentas. Alguns deles: Comando Função Opções cat Mostra arquivo -n, -s cut Extrai campo -d, -f, -c date Mostra data -d, +'...' find Encontra arquivos -name, -iname,-type,f, -exec grep Encontra texto -i, -v, -r, -qs, -w,-x head Mostra Início -n, -c printf Mostra texto nenhuma rev Inverte texto nenhuma sed Edita texto -n,s/isso/aquilo/, d seq Conta Números -s, -f sort Ordena texto -n, -f, -r, -k -t, -o tail Mostra Final -n, -c, -f tr Transforma texto -d, -s, A-Z a-z uniq Remove duplicatas -i, -d, -u wc Conta Letras -c, -w, -l, -L Use "man comando" ou "comando --help" para obter mais informações sobre cada um deles. E o melhor, em shell é possível combinar comandos, aplicando-os em sequência, para formar um comando completo. Usando o pipe "|" é possível canalizar a saída de um comando diretamente para a entrada de outro, fazendo uma cadeia de comandos. Exemplo: prompt$ cat /etc/passwd | grep root | cut -c1-10 root:x:0:0 operator:x prompt$ O comando test O canivete suíço dos comandos do shell é o "test", que consegue fazer vários tipos de testes em números, textos e arquivos. Ele possui várias opções para indicar que tipo de teste será feito, algumas delas: Testes em variáveis Testes em arquivos lt Núm. é menor que (LessThan) -d É um diretório -gt Núm. é maior que (GreaterThan) -f É um arquivo normal -le Núm. é menor igual (LessEqual) -r O arquivo tem permissão de leitura -ge Núm. é maior igual (GreaterEqual) -s O tamanho do arquivo é maior que zero -eq Núm. é igual (EQual) -w O arquivo tem permissão de escrita -ne Núm. é diferente (NotEqual) -nt O arquivo é mais recente (NewerThan)
  31. 31. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 31 = String é igual -ot O arquivo é mais antigo (OlderThan) != String é diferente -ef O arquivo é o mesmo (EqualFile) -n String é não nula -a E lógico (AND) -z String é nula -o OU lógico (OR) Exercício: script que testa arquivos Tente fazer o script "testa-arquivos", que pede ao usuário para digitar um arquivo e testa se este arquivo existe. Se sim, diz se é um arquivo ou um diretório. Exemplo de uso: prompt$ testa-arquivos Digite o arquivo: /naoexiste O arquivo '/naoexiste' não foi encontrado prompt$ testa-arquivos Digite o arquivo: /tmp /tmp é um diretório prompt$ testa-arquivos Digite o arquivo: /etc/passwd /etc/passwd é um arquivo prompt$ Conceitos avançados Até agora vimos o básico, o necessário para se fazer um script de funcionalidade mínima. A seguir, conceitos novos que ampliarão as fronteiras de seus scripts! Recebimento de opções e parâmetros Assim como os comandos do sistema que possuem opções e parâmetros, os scripts também podem ser preparados para receber dados via linha de comando. Dentro do script, algumas variáveis especiais são definidas automaticamente, em especial, "$1" contém o primeiro argumento recebido na linha de comando, "$2" o segundo, e assim por diante. Veja o script "argumentos": #!/bin/sh # argumentos - mostra o valor das variáveis especiais echo "O nome deste script é: $0" echo "Recebidos $# argumentos: $*" echo "O primeiro argumento recebido foi: $1" echo "O segundo argumento recebido foi: $2" Ele serve para demonstrar o conteúdo de algumas variáveis especiais, acompanhe: prompt$ ./argumentos um dois três O nome deste script é: ./argumentos Recebidos 3 argumentos: um dois três O primeiro argumento recebido foi: um O segundo argumento recebido foi: dois O acesso é direto, basta referenciar a variável que o valor já estará definido. Assim é possível criar scripts que tenham opções como --help, --version e outras.
  32. 32. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 32 Expressões aritméticas O shell também sabe fazer contas. A construção usada para indicar uma expressão aritmética é "$((...))", com dois parênteses. prompt$ echo $((2*3)) 6 prompt$ echo $((2*3-2/2+3)) 8 prompt$ NUM=44 prompt$ echo $((NUM*2)) 88 prompt$ NUM=$((NUM+1)) prompt$ echo $NUM 45 If, for e while Assim como qualquer outra linguagem de programação, o shell também tem estruturas para se fazer condicionais e loop. As mais usadas são if, for e while. if COMANDO for VAR in LISTA while COMANDO then do do comandos comandos comandos else done done comandos fi Diferente de outras linguagens, o if testa um comando e não uma condição. Porém como já conhecemos qual o comando do shell que testa condições, é só usá-lo em conjunto com o if. Por exemplo, para saber se uma variável é maior ou menor do que 10 e mostrar uma mensagem na tela informando: if test "$VARIAVEL" -gt 10 then echo "é maior que 10" else echo "é menor que 10" fi Há um atalho para o test , que é o comando [. Ambos são exatamente o mesmo comando, porém usar o [ deixa o if mais parecido com o formato tradicional de outras linguagens: if [ "$VARIAVEL" -gt 10 ] then echo "é maior que 10" else echo "é menor que 10" fi Se usar o [, também é preciso fechá-lo com o ], e sempre devem ter espaços ao redor. É recomendado evitar esta sintaxe para diminuir suas chances de erro. Já o while é um laço que é executado enquanto um comando retorna OK. Novamente o test é bom de ser usado. Por exemplo, para segurar o processamento do script enquanto um arquivo de lock não é removido:
  33. 33. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 33 while test -f /tmp/lock do echo "Script travado..." sleep 1 done E por fim, o for percorre uma lista de palavras, pegando uma por vez: for numero in um dois três quatro cinco do echo "Contando: $numero" done Uma ferramenta muito útil para usar com o for é o seq, que gera uma sequência numérica. Para fazer o loop andar 10 passos, pode-se fazer: for passo in $(seq 10) O mesmo pode ser feito com o while, usando um contador: i=0 while test $i -le 10 do i=$((i+1)) echo "Contando: $i" done E temos ainda o loop infinito, com condicional de saída usando o "break¨: while : do if test -f /tmp/lock then echo "Aguardando liberação do lock..." sleep 1 else break fi done Exercícios A melhor parte finalmente chegou, agora é a sua vez de se divertir. Seguem alguns exercícios que podem ser resolvidos usando o que foi aprendido até aqui. Alguns exigirão pesquisa e necessitarão de algumas ferramentas que foram apenas citadas, mas não aprendidas. O shelleiro também tem que aprender a se virar sozinho! relacao.sh Recebe dois números como parâmetro e mostra a relação entre eles. Exemplo: prompt$ ./relacao.sh 3 5
  34. 34. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 34 3 é menor que 5 prompt$ ./relacao.sh 5 3 5 é maior que 3 prompt$ ./relacao.sh 5 5 5 é igual a 5 prompt$ zerador.sh Recebe um número como parâmetro e o diminui até chegar a zero, mostrando na tela cada passo, em uma mesma linha. Exemplo: prompt$ ./zerador.sh 5 5 4 3 2 1 0 prompt$ ./zerador.sh 10 10 9 8 7 6 5 4 3 2 1 0 prompt$ substring.sh Recebe duas palavras como parâmetro e verifica se a primeira palavra está contida dentro da segunda. Só mostra mensagem informativa em caso de sucesso, do contrário não mostra nada. Exemplo: prompt$ ./substring.sh ana banana ana está contida em banana prompt$ ./substring.sh banana maria prompt$ ./substring.sh banana prompt$ ./substring.sh prompt$ Pesquise sobre o comando grep juntatudo.sh Mostra na tela "grudados" todos os parâmetros recebidos na linha de comando, como uma única palavra. Exemplo: prompt$ ./juntatudo.sh a b c d e f verde azul abcdefverdeazul prompt$ Pesquise sobre o comando tr
  35. 35. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 35 users.sh Do arquivo /etc/passwd, mostra o usuário e o nome completo de cada usuário do sistema (campos 1 e 5) separados por um TAB. Exemplo: prompt$ ./users.sh ftp FTP User nobody Nobody named Domain name server xfs X Font Server mysql MySQL server aurelio Aurelio Marinho Jargas prompt$ Pesquise sobre o comando cut shells.sh Do arquivo /etc/passwd, mostra todos os shells (último campo) que os usuários usam. Não mostrar linhas repetidas. Exemplo: prompt$ ./shells.sh /bin/bash /bin/false /bin/sync /sbin/halt /sbin/shutdown prompt$ Pesquise sobre o comando uniq parametros.sh Mostra na tela todos os parâmetros recebidos na linha de comando, contando-os. Exemplo: prompt$ ./parametros.sh a b c d e f Parâmetro 1: a Parâmetro 2: b Parâmetro 3: c Parâmetro 4: d Parâmetro 5: e Parâmetro 6: f prompt$ Pesquise sobre o comando shift
  36. 36. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 36 Respostas dos exercícios Resista à tentação de olhar as respostas antes de tentar fazer os exercícios! É na prática que se consolida os conhecimentos aprendidos, não pule este passo. Seja forte, insista, não desista! testa-arquivos #!/bin/bash echo -n "Digite o arquivo: " read ARQUIVO test -d "$ARQUIVO" && echo "$ARQUIVO é um diretório" test -f "$ARQUIVO" && echo "$ARQUIVO é um arquivo" test -f "$ARQUIVO" -o -d "$ARQUIVO" || echo "O arquivo '$ARQUIVO' não foi encontrado" echo relacao.sh #!/bin/bash if test $1 -eq $2 then echo "$1 é igual a $2" elif test $1 -lt $2 then echo "$1 é menor que $2" else echo "$1 é maior que $2" fi zerador.sh #!/bin/bash i=$1 while test $i -ge 0 do echo -n "$i " i=$((i-1)) done echo substring.sh #!/bin/bash test $# -ne 2 && exit echo $2 | grep -qs $1 && echo "$1 está contida em $2" juntatudo.sh #!/bin/bash echo $* | tr -d ' '
  37. 37. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 37 users.sh #!/bin/bash cat /etc/passwd | cut -d : -f 1,5 | tr : 't' shells.sh #!/bin/bash cat /etc/passwd | cut -d : -f 7 | sort | uniq parametros.sh #!/bin/bash i=0 while test "$1" do i=$((i+1)) echo "Parâmetro $i: $1" shift done Sair do Shell Para finalizar o shell, basta utilizar os comandos exit, logout ou Ctrl + D. Quando o encerramento do sistema tem inicio, todos os sistemas de arquivos (exceto o raiz) são desmontados, os processos de usuário são finalizados, servidores são encerrados e finalmente o sistema de arquivo raiz é desmontado. Proceda da forma adequada caso contrário pode-se corromper o sistema de arquivos. Reinicializando o Linux Para reinicializar o sistema use o comando reboot ou shutdown com as opções –r now, conforme o exemplo abaixo: [root@localhost /root]# reboot ou [root@localhost /root]# shutdown –r now Desligando o Linux Para desligar o sistema use comando poweroff ou shutdown com as opções –h now, conforme o exemplo abaixo: [root@localhost /root]# poweroff Ou [root@localhost /root]# halt Ou [root@localhost /root]# shutdown –h now
  38. 38. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 38 Unidade 4. Dispositivos, Sistemas de Arquivos GNU/Linux Criação de Partições e Sistemas de Arquivos Discos IDE podem conter até 4 partições físicas, das quais uma pode ser estendida. A partição estendida pode ser dividida em partições lógicas. Pode haver um máximo de 46 partições num disco IDE e 16 num disco SCSI. Fdisk O fdisk é o programa padrão para manipular partições no GNU/Linux. Com a opção -l lista os dispositivos e as partições existentes: # fdisk -l Disk /dev/hda: 10.0 GB, 10005037568 bytes 255 heads, 63 sectors/track, 1216 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Dispositivo Boot Start End Blocks Id System /dev/hda1 * 1 153 1228941 b W95 FAT32 /dev/hda2 154 173 160650 82 Linux swap /dev/hda3 174 782 4891792+ 83 Linux /dev/hda4 783 1216 3486105 83 Linux Disk /dev/hdb: 2111 MB, 2111864832 bytes 64 heads, 63 sectors/track, 1023 cylinders Units = cilindros of 4032 * 512 = 2064384 bytes Dispositivo Boot Start End Blocks Id System /dev/hdb1 1 1023 2062336+ c W95 FAT32 (LBA) Para manipular partições, o fdisk deve ser iniciado tendo como argumento o dispositivo em questão: # fdisk /dev/hda Uma vez dentro do fdisk, certas letras corresponderão a comandos. Alguns comandos bastante utilizados: p → Lista as partições n → Cria uma nova partição interativamente t → Muda a identificação da partição d → Apaga uma partição q → Sai do fdisk sem gravar as alterações w → Sai do fdisk e grava as alterações m → Mostra a ajuda de comandos Por padrão, o fdisk cria novas partições identificadas como partições nativas de GNU/Linux, cujo código hexadecimal é 83 (0x83). O código de identificação de partições do tipo swap é 82 (0x82).
  39. 39. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 39 Criação de Sistemas de Arquivos Durante muito tempo o sistema de arquivos mais utilizado no GNU/Linux foi o ext2 (second extended). No entanto, hoje muito se usa sistemas de arquivos journalling, como o ext3 e o ReiserFS. Por padrão, o ext2 consiste em blocos de 1024 bytes. Há três tipos de blocos. Superblocks Repetem-se a cada 8193 blocos. Contém informações sobre o tamanho dos blocos, inodes livres, data da última montagem, etc. inodes Indicadores para os blocos de dados. Os 12 primeiros blocos de dados após o inode são acessados sequencialmente. Se os dados excederem 12 blocos, blocos inode indiretos agem como espelho. Cada inode tem 256 bytes e contém a informação de usuário, grupo, permissões e data referente aos dados associados. Blocos de dados Os blocos que contém os arquivos e diretórios propriamente ditos. A diferença para um sistema de arquivos journalling é que um sistema com essa capacidade registra de antemão todas as alterações que irá realizar no disco. Dessa forma, erros de gravação (normalmente ocasionados por queda de energia ou desligamento incorreto) podem ser mais facilmente diagnosticados e sanados. É possível fazer a conversão de ext2 para ext3 sem perda de dados. O comando mkfs cria sistemas de arquivos em partições. A opção -t indica o tipo do sistema de arquivos: Criar uma partição ext2 na partição /dev/hda3: # mkfs -t ext2 /dev/hda3 Há também comandos específicos para cada sistema de arquivos: mkfs.ext2, mke2fs, mkfs.ext3, mkfs.xfs, mkreiserfs, mkdosfs e mkfs.vfat. Partição Swap Após a partição swap ser criada pelo fdisk, ela precisa ser formatada com o comando mkswap: Formata como swap a partição /dev/hda2: # mkswap /dev/hda2 Após criada e formatada, uma partição swap precisa ser ativada para ser usada como memória swap.
  40. 40. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 40 O comando swapon -a ativa todas partições swap que constarem em /etc/fstab. As entradas referentes a partições swap em /etc/fstab não tem ponto de montagem. Exemplo de entrada de partição swap em /etc/fstab: /dev/hda2 swap swap defaults 0 0 Normalmente, todas as partições swap contidas em /ect/fstab são ativadas pelos scripts de inicialização do sistema. Para ativar ou desativar essa partição manual manualmente, usa-se swapon /dev/hda2 ou swapoff /dev/hda2, respectivamente. Informações sobre partições swap ativas são armazenadas em /proc/swaps. Exemplo de /proc/swaps: Filename Type Size Used Priority /dev/hda2 partition 160640 32632 -1
  41. 41. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 41 Unidade 5. Manutenção da Integridade de Sistemas de Arquivos Checando o Sistema de Arquivos O comando fsck deve ser executado em partições que apresentarem erros ou em dispositivos que foram desligados incorretamente. A partição deverá estar desmontada ou montada como somente leitura (ro) para a verificação. Como o comando mkfs, o fsck possui a opção -t para especificar o tipo do sistema de arquivos e um comando específico para cada partição: fsck.ext2 ou e2fsck, fsck.ext3, fsck.xfs, reiserfsck e dosfsck. Examinando e corrigindo o Sistema de Arquivos debugfs Depurador interativo de sistemas de arquivos. Examina sistemas ext2 e ext3. Muda diretórios, examina dados de inodes, apaga arquivos, cria links, mostra o log de journalling ext3, etc. É usado em casos extremos, geralmente após o fsck ter falhado. dumpe2fs Mostra informações de grupo de blocos e de superblocks. tune2fs Configura parâmetros ajustáveis em sistemas de arquivos ext2, como rótulo e limites de montagem antes de checar automaticamente. df Mostra o espaço disponível em cada dispositivo. A análise é feita diretamente no dispositivo. Por padrão, mostra o espaço em unidades de 1kb. A opção -h usa medidas apropriadas para tornar a saída mais inteligível. du Mostra o espaço ocupado. Sem argumentos, mostra o uso de cada diretório no sistema. Um diretório específico pode ser indicado através da opção -s. A opaco -h usa medidas apropriadas para tornar a saída mais inteligível.
  42. 42. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 42 Montagem e Desmontagem dos Sistemas de Arquivos /etc/fstab Durante os procedimentos de carregamento do sistema, é o arquivo /etc/fstab que determina os pontos de montagem dos dispositivos. Cada linha corresponde a um dispositivo, contendo os seguintes termos separados por tabulações ou espaços: 1. Dispositivo 2. Ponto de montagem ( “swap” se for uma partição de swap) 3. Tipo de sistema de arquivos 4. Opções 5. Dump (0 ou 1). Determina se dispositivo deverá ser considerado pelo comando dump. Se ausente, 0 é considerado. 6. fsck (1 ou 2). Determina a ordem da checagem feita pelo fsck durante o boot. Para a partição raiz (/), deve ser 1. Se ausente, 0 é presumido e a checagem não será feita no boot. Para permitir que usuários comuns montem e desmontem dispositivos – geralmente, o caso de dispositivos removíveis – deve-se incluir a opaco “users” para o respectivo dispositivo. Exemplo: /dev/cdrom /mnt/cdrom auto noauto,users,ro 0 0 A palavra “auto” na posição referente ao sistema de arquivos indica que o sistema de arquivos deve ser identificado automaticamente. mount O comando mount usado sem argumentos mostra os dispositivos montados e outros detalhes, como ponto de montagem e tipo do sistema de arquivos. Também é usado para montar dispositivos manualmente: O comando do exemplo acima monta o dispositivo /dev/cdrom contendo mídia com sistema de arquivos iso9660 no diretório /mnt/cdrom, com permissão somente-leitura (ro). Para montar manualmente um dispositivo que conste em /etc/fstab, basta fornecer para o comando mount a localização do dispositivo ou do diretório alvo. Para desmontar um dispositivo, o comando umount é utilizado tendo como argumento o dispositivo ou o diretório alvo a ser desmontado. Usado com a opcao -a, o comando mount montará todos os dispositivos em /etc/fstab (exceto os marcados com a opção noauto). Opções de montagem As opções de montagem são as mesmas para /etc/fstab e para mount diretamente. Se mais de uma opção for fornecida, deverão ser separadas por vírgula. rw ou ro Gravável ou somente leitura noauto Não e montado automaticamente users O dispositivo poderá ser montado e desmontado por usuários comuns
  43. 43. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 43 user Apenas quem montou terá permissão de desmontar owner As permissões do dispositivo montado se adequarão ao usuário que o montou usrquota Habilita o uso de quotas de disco para usuário grpquota Habilita o uso de quotas de disco para grupo remount Remonta um dispositivo montado com outras opções. Útil para remontar um dispositivo como somente leitura, por exemplo.
  44. 44. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 44 Unidade 6. Administração de Cotas de Disco Introdução No Linux podemos definir quotas de espaço em disco por usuário ou grupos de usuários. Estas quotas garantem um limite de espaço em disco, se este limite for ultrapassado, o usuário ou grupo de usuários não será capaz de criar novos arquivos até que os mesmos sejam apagados ou a quota seja redimensionada. Desta maneira, esse recurso se torna indispensável para aplicações que envolvem ambientes multiusuários, servidores etc. Antes de partimos para a prática, é necessário saber se o suporte a quotas foi compilado no Kernel do sistema. Limites de Quotas Cada sistema de arquivos pode ter cinco tipos de limites de quotas, que são especificados em blocos (blocks) de 1024 bytes cada: Hard Limit (Limite Físico) por usuário: É o máximo de espaço em disco que um usuário pode ter na partição configurada com quotas de disco. Uma vez que este limite de quota é ultrapassado, o usuário não poderá gravar arquivos na partição. Soft Limit (Limite Temporário) por usuário: Indica a quantidade máxima de espaço temporária em disco numa partição. Quando este limite é ultrapassado, o usuário é informado que seu espaço em disco está terminando e o Grace Period é acionado. O usuário ainda poderá gravar arquivos até o Grace Period terminar ou até que o Hard Limit seja alcançado. Hard Limit para grupo de usuários: É o máximo de espaço em disco que um grupo de usuários pode ter. Quando esse limite é ultrapassado, nenhum usuário poderá gravar arquivos em disco mesmo que tenham espaço disponível. Soft Limit para grupo de usuários:
  45. 45. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 45 Indica a quantidade máxima de espaço temporária em disco numa partição. Quando este limite é ultrapassado, o grupo de usuários é informado que seu espaço em disco está terminando e o Grace Period é acionado. Os usuários ainda poderão gravar arquivos até o Grace Period terminar ou até que o Hard Limit por grupo seja alcançado. Layout de Discos em Sistemas x86 Comandos para gerência de quotas quota O comando quota é usado para visualizar informações sobre as quotas de espaço em disco configuradas para um determinado usuário ou grupo de usuários. Opções: -u - Mostra a quota definida para um determinado usuário; -g - Mostra a quota definida para um determinado grupo de usuários; -v - Mostra as quotas mesmo que nenhuma esteja definida; -q - Mostra somente quando a rota for excedida; -i - Ignora pontos de montagem montados pelo automounter; -l - Mostra apenas quotas de sistemas de arquivos locais; Somente o superusuário pode visualizar as informações de quotas de outros usuários, sendo que um usuário comum só pode ver a sua quota e a quota do grupo que ele pertence. $ quota -u mark Disk quotas for user mark (uid 1000): Filesystem blocks quota limit grace files quota limit grace /dev/sdb2 2740* 1000 2000 60 0 0 quotaon O comando quotaon habilita o gerenciamento prévio de todas as quotas de disco configuradas em um ou mais sistemas de arquivos. Opções:
  46. 46. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 46 -a -- Habilita o gerenciamento de todas as quotas de disco para todos os sistemas de arquivos configurados para controle de quotas no arquivo /etc/fstab; -v - Mostra uma mensagem para cada sistema de arquivos com quotas habilitadas; -u - Habilita o gerenciamento de quotas de usuários em um determinado dispositivo; -g - Habilita o gerenciamento de quotas de grupos em um determinado dispositivo; # quotaon -aguv /dev/sdb2 [/mnt/particao1]: group quotas turned on /dev/sdb2 [/mnt/particao1]: user quotas turned on Vamos supor que eu necessite habilitar as quotas de grupo somente do sistema de arquivos localizado no diretório /home: # quotaon -gv /home quotaoff O comando quotaoff desabilita o gerenciamento de quotas de usuários ou grupos em um ou mais sistemas de arquivos. Opções: -a - Desabilita o gerenciamento de todas as quotas de disco para todos os sistemas de arquivos configurados para controle de quotas no arquivo /etc/fstab; -v - Mostra uma mensagem para cada sistema de arquivos com quotas desabilitadas; -u - Desabilita o gerenciamento de quotas de usuários em um determinado dispositivo; -g - Desabilita o gerenciamento de quotas de grupos em um determinado dispositivo; # quotaoff -aguv /dev/sdb2 [/mnt/particao1]: group quotas turned off /dev/sdb2 [/mnt/particao1]: user quotas turned off quotacheck Faz uma checagem nos sistemas de arquivos configurados com gerenciamento de quotas, compila e atualiza os bancos de dados de quotas (usrquota e grpquota). É recomendado que o quotacheck seja executado toda vez que o sistema é inicializado ou periodicamente (dia, semana, mês), via cron.
  47. 47. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 47 Desta maneira, ele garante que o banco de dados esteja no seu mais recente estado. É importante saber que as quotas para um determinado dispositivo devem ser desabilitadas antes do uso do comando quotacheck, senão as informações coletadas da base de dados ficarão em memória e os arquivos com a base de dados não serão atualizados. Opções: -a - Checa todas as quotas configuradas para os sistemas de arquivos mencionados no arquivo /etc/fstab; -g grupo - Cria a base de dados para um determinado grupo; -u user - Cria a base de dados para um determinado usuário; -v - Mostra todas as informações executadas pelo quotacheck; # quotaoff -a # quotacheck -avug # quotaon -a edquota O comando edquota é um utilitário usado somente pelo superusuário para edição de quotas de usuários e grupos. O editor vi é o editor padrão usado com o edquota para editar os arquivos quota.user e quota.group. Opções: -r - Edita quotas em dispositivos remotos, um bom exemplo são os dispositivos que usam NFS; -u - Edita as quotas de usuários; -g - Edita as quotas de grupos de usuários; -p user - Copia as configurações de uma quota de usuário padrão para criar outra; -F format-name - Edita as quotas para um formato específico (vfsold, vfsv0, rpc e xfs); -f filesystem - Realiza operações especificas para um único sistema de arquivos; -T - Edita o tempo limite de uso de quotas de usuários/grupos quando o softlimit é excedido; -t - Edita o período de graça para os Soft Limits para cada sistema de arquivos; Observe a edição da quota do usuário mark: # edquota -u mark Disk quotas for user mark (uid 1000): Filesystem blocks soft hard inodes soft hard /dev/sdb2 2740 3000 5000 60 0 0
  48. 48. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 48 Agora, vamos mudar o período de soft limit de todos os usuários: # edquota -tu Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/sdb2 5days 3days Podemos usar dias, horas, minutos ou segundos para configurar o Soft Limit, no exemplo acima, o período de graça para espaço em disco está configurado para 5 dias e 3 dias para armazenamento de arquivos. repquota O comando repquota gera um relatório do uso das quotas de discos de usuários e grupos de um determinado dispositivo. Opções: -a - Exibe um relatório de todas as quotas dos sistemas de arquivos que estão contidos no arquivo /etc/mtab; -v - Cria um cabeçalho descritivo para o relatório de quotas; -u - Cria um relatório de utilização por usuário; -g - Cria um relatório de utilização por grupo; -c - Faz cache das entradas para relatório e traduz os UIDs/GIDs para nomes em uma grande amostra de usuários. É um bom procedimento quando usado com o arquivo /etc/passwd; -C - Faz cachê das entradas para relatório individualmente. É um bom procedimento quando os usuários estão armazenados em um banco de dados; -t - Trunca o nome de usuários ou grupos com mais de 9 caracteres; -n - Não traduz UIDs/GIDs para nomes; -i - Ignora os pontos de montagem montados pelo automounter; -s - Testa para relatar o espaço e o número de inodes usados; -F - Exibe um relatório de quotas para um determinado formato. Esses formatos podem ser: vfsold, vfsv0 e xfs; Criando e gerenciando quotas Nesse tópico, abordaremos todos os procedimentos para a criação e gerenciamento de quotas.
  49. 49. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 49 Edite e insira no arquivo /etc/fstab a linha abaixo: /dev/sda8 /home ext3 defaults,usrquota,grpquota 1 2 Crie os arquivos quota.user e quota.group e dê permissão de acesso somente para o root no diretório /home: # touch /home/quota.user /home/quota.group # chmod 600 /home/quota.user /home/quota.group Estes dois arquivos são os bancos de dados de quotas de usuários e grupos. Nesse exemplo, estamos utilizando quota versão-1, caso alguém esteja usando a versão-2, os nomes dos arquivos devem ser aquota.user e aquota.group. Agora devemos reiniciar o sistema para que as configurações de quota entrem em vigor. # shutdown -r now Após a reinicialização do sistema, use o comando quotacheck para inicializar os bancos de dados: # quotacheck -avug Adicione as quotas de usuários: # edquota -u mark Disk quotas for user mark (uid 1000): Filesystem blocks soft hard inodes soft hard /dev/sda8 28 9000 10000 7 4000 5000 /dev/sdb2 2740 3000 5000 60 0 0 Adicione as quotas de grupo: # edquota -g santos Disk quotas for group santos (gid 1001): Filesystem blocks soft hard inodes soft hard /dev/sda8 0 100000 120000 0 0 0 /dev/sdb2 16 300000 350000 0 4 0 Adicione o tempo limite que os usuários e grupos poderão ter as suas quotas excedidas: # edquota -t Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/sda8 7days 7days /dev/sdb2 7days 7days
  50. 50. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 50 Crie um script para iniciar e verificar o sistema de quotas toda vez que ele é inicializado. Este script deve ser criado no diretório que o sistema utiliza para inicializar os serviços automaticamente, normalmente é o diretório /etc/init.d: # vi quotas.sh #!/bin/bash # Checa e ativa o sistema de quotas if [ -x /usr/sbin/quotacheck ] then echo "Checando sistema de quotas. " /usr/sbin/quotacheck -avug echo " Sistema de Quotas OK." fi if [ -x /usr/sbin/quotaon ] then echo "Ativando sistema de quotas." /usr/sbin/quotaon -avug fi Adicione o comando quotacheck no cron para que seja executado semanalmente: # crontab -e 0 3 * * 0 /usr/sbin/quotacheck -avug Ou se preferir, adicione um script no diretório /etc/cron.weekly: # vi checaquotas.sh #!/bin/bash /usr/sbin/quotacheck -avug Não esqueça de dar permissão de execução ao arquivo: # chmod 760 checaquotas.sh Execute o comando "repquota -v /home" para visualizar o relatório de quotas: # repquota -v /home
  51. 51. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 51 Estrutura de Diretórios Um sistema de arquivos é a coleção de arquivos e a hierarquia de diretórios em um sistema. Primeiro, mude para o diretório root digitando o comando “cd /” [root@bwpx01 ~]# cd / Para mostrar uma lista do seu conteúdo digite o comando “ls –l”. [root@bwpx01 /]# ls -l total 195 drwxr-xr-x 2 root root 4096 Jul 29 17:52 bin drwxr-xr-x 4 root root 1024 Jul 29 12:08 boot drwxr-xr-x 8 cduser cduser 4096 Sep 2 17:07 cdunix drwxr-xr-x 16 root root 7760 Aug 10 17:54 dev drwxr-xr-x 105 root root 12288 Sep 14 11:40 etc drwxr-xr-x 133 root root 4096 Aug 27 19:02 home drwxr-xr-x 11 root root 4096 Jul 29 17:50 lib drwxr-xr-x 7 root root 12288 Jul 30 11:35 lib64 drwx------ 2 root root 16384 Jul 29 11:15 lost+found drwxr-xr-x 2 root root 4096 Oct 1 2009 media drwxr-xr-x 2 root root 0 Aug 10 17:50 misc drwxr-xr-x 3 root root 4096 Jul 30 14:34 mnt drwxr-xr-x 2 root root 0 Aug 10 17:50 net drwxr-xr-x 8 root root 4096 Jul 30 11:51 opt dr-xr-xr-x 357 root root 0 Aug 10 17:49 proc drwxr-x--- 9 root root 4096 Aug 24 11:36 root drwxr-xr-x 2 root root 12288 Jul 29 17:52 sbin drwxr-xr-x 2 root root 4096 Jul 29 11:19 selinux drwxr-xr-x 2 root root 4096 Oct 1 2009 srv drwxr-xr-x 11 root root 0 Aug 10 17:49 sys drwxr-xr-x 3 root root 4096 Jul 29 11:50 tftpboot drwxrwxrwt 9 root root 4096 Sep 15 09:03 tmp drwxr-xr-x 18 root root 4096 Apr 26 09:06 usr drwxr-xr-x 23 root root 4096 Jul 29 16:01 var /bin /bin é uma abreviatura para "binários", ou executáveis. É nesse diretório onde residem a maioria dos programas essencias do sistema. Use o comando "ls -l /bin" para listar os arquivos. [root@bwpx01 /]# ls /bin alsacard dbus-uuidgen gunzip mknod rpm traceroute alsaunmute dd gzip mktemp rvi traceroute6 arch df hostname more rview tracert awk dmesg igawk mount sed true basename dnsdomainname ipcalc mountpoint setfont umount bash doexec kbd_mode mv setserial uname cat domainname kill netstat sh unicode_start chgrp dumpkeys ksh nice sleep unicode_stop chmod echo ksh93 nisdomainname sort unlink chown ed link pgawk stty usleep cp egrep ln ping su vi cpio env loadkeys ping6 sync view csh ex loadkeys.static ps tar ypdomainname cut false logger pwd taskset zcat date fgrep login raw tcptraceroute zsh dbus-cleanup-sockets gawk ls red tcsh dbus-daemon gettext mail redhat_lsb_init touch dbus-monitor grep mailx rm tracepath dbus-send gtar mkdir rmdir tracepath6
  52. 52. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 52 Esses são os arquivos que contêm programas. Quando você executa cp, está executando o programa /bin/cp. /dev Os arquivos em /dev são conhecidos como controladores de dispositivo (device drivers) e são usados para acessar os dispositivos ou recursos do sistema, como discos rígidos, modems, memória, etc. Por exemplo, da mesma forma que você pode lear dados de um arquivo, pode também ler da entrada do mouse, lendo /dev/mouse. Os arquivos que começam com fd são os controladores de disquete. fd0 é o primeiro drive, e fd1 o segundo. Note que há mais controladores de dispositivo para drivers do que mencionamos. Eles representam tipos específicos de discos. Por exemplo, fd1H1440 acessa discos de 3.5'' de alta densidade no drive 1. Aqui temos uma lista de alguns dos controladores de dispositivos mais usados. Note que mesmo que você não tenha algum dos dispositivos listados, terá entradas em dev de qualquer forma.  /dev/console faz referência ao console do sistema, quer dizer, ao monitor conectado em seu sistema.  Os dispositivos /dev/ttyS e /dev/cua são usados para acessar as portas seriais. Por exemplo, /dev/ttyS0 faz referência a "COM1", sob o MS-DOS. Os dispositivos /dev/cua são "callout" e são usados em conjunto com um modem.  Os nomes dos dispositivos que começam por hd acessam a discos rígidos. /dev/hda se refere a todo o primeiro disco, enquanto que /dev/hda1 se refere a primeira partição em /dev/hda.  Os nomes de dispositivo que començam com sd são dispositivos SCSI. Se você tem um disco rígido SCSI, no lugar de acessá-lo com /dev/hda, vai acessá-lo com /dev/sda. As fitas SCSI são acessadas via dispositivos st e os CD-ROM SCSI via sr.  Os nomes que començam por lp acessam as portas paralelas. /dev/lp0 se refere a "LPT1" no mundo MS-DOS.  /dev/null é usado como "buraco negro", qualquer dado enviado a este dispositivo desaparece. Para que pode ser útil isto?. Bem, se deseja suprimir a saída para a tela de um comando, pode enviar a saída para /dev/null. Falaremos mais sobre isto depois.  Os nomes que começam por /dev/tty se referem a "consoles virtuais" de seu sistema (acessíveis mediante as teclas Alt-F1, Alt-F2, etc).  /dev/tty1 se refere a primeira VC, /dev/tty2 a segunda, etc.  Os nomes de dispositivo que começam com /dev/pty são "pseudoterminais". São usados para proporcionar um "terminal" a sessões remotas. Por exemplo, se sua máquina está em uma rede, o telnet de entrada usará um dos dispositivos /dev/pty. /etc /etc contém uma série de arquivos de configuração do sistema. Isto inclui o /etc/passwd (a base de dados de usuários), o /etc/rc (instruções de inicialização do sistema), etc. /sbin /sbin é usado para armazenar programas esenciáis do sistema, usados pelo administrador do sistema.
  53. 53. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 53 /home /home contém os diretórios "home" dos usuários. Por exemplo, /home/larry é o diretório do usuário "larry". Em um sistema recém instalado, esse diretório estará vazio. /lib /lib contém as imagens das bibliotecas compartilhadas. Esses arquivos contêm código que muitos programas compartilham. Ao invés de cada programa ter uma cópia própria das funções compartilhadas, elas são guardadas em um lugar comum, o /lib. Isso faz com que os programas executáveis sejam menores e reduzam o espaço usado em disco. /proc /proc é um "sistema de arquivos virtual". Os arquivos que estão no /proc residem verdadeiramente na memória, e não no disco. Esses arquivos se referem a vários processos que rodam no sistema e permitem obter informação sobre programas e processos que estão rodando num dado momento. /tmp Muitos programas têm necessidade de gerar alguma informação temporária e de guardar essa informação em um arquivo temporário. O lugar para esses arquivos é o /tmp. /usr /usr é um diretório muito importante. Contém uma série de subdiretórios que por sua vez contêm alguns dos mais importantes e úteis programas e arquivos de configuração usados no sistema. Os vários diretórios descritos acima são essenciais para o sistema operar, mas a maioria dos itens no /usr são opcionais. Entretanto, são esses itens opcionais que tornam o sistema útil e interessante. Sem o /usr, você teria um sistema tedioso que suportaria somente programas como cp e ls. O /usr contém a maioria dos pacotes grandes de software e os arquivos de configuração que os acompanham. /usr/X11R6 /usr/X11R6 contém o sistema X Window se você o instalou el sistema X Window se você o instalou. O sistema X Window é um ambiente gráfico poderoso que proporciona um grande número de ferramentas e programas gráficos, mostrados em janelas na sua tela. Se você está familiarizado com os ambientes MS Windows ou Macintosh, o X Window lhe será muito familiar. O diretório /usr/X11R6 contém todos os executáveis do X Window, arquivos de configuração e suporte. /usr/bin /usr/bin contém a maioria dos programas executáveis não encontrados em outras partes, como no /bin. /usr/etc Como o /etc, contém diferentes arquivos de configuração e programas do sistema, /usr/etc contém inclusive mais que o anterior. Em geral, os arquivos que se encontram em /usr/etc não são essenciais para o sistema, diferentemente dos que se encontram no /etc.
  54. 54. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 54 /usr/include /usr/include contém os arquivos include para o compilador C. Esse arquivos (a maioria dos quais termina com .h, de "header") declaram estruturas de dados, subrotinas e constantes usadas no desenvolvimento de programas em C. Os arquivos que se encontram em /usr/include/sys geralmente são usados quando programando no nível do sistema UNIX. Se você está familiarizado com programação C, encontrará arquivos como stdio.h, o qual declara funções como printf(). /usr/g++-include /usr/g++-include contém arquivos de inclusão para o computador C++ (muito parecido ao /usr/include). /usr/lib /usr/lib contém as bibliotecas "stub" e "static" equivalentes aos arquivos encontrados em /lib. Ao compilar um programa, ele é "linkado" com as bibliotecas que se encontram em /usr/lib, as quais direcionam o programa para o /lib, quando precisa buscar o código real da biblioteca. Além disso, vários programas armazenam arquivos de configuração no /usr/lib. /usr/local /usr/local é muito parecido ao /usr. Ele contém programas e arquivos não essenciais ao sistema, mas que tornam o sistema mais divertido e excitante. Em geral, os programas que se encontram em /usr/local são específicos do seu sistema, isto é, o diretório /ussr/local difere bastante entre os sistemas UNIX. Aqui encontrará grandes programas, como o TeX (sistema de formatação de documentos) e Emacs (editor grande e poderoso), se os instalar. /usr/man Esse diretório contém as páginas de manual. Há dois subdiretórios para cada seção de página de manual (use o comando "man man" para detalhes). Por exemplo, /usr/man/man1 contém os fontes (isto é, o original não formatado) para as páginas de manual na seção 1, e /usr/man/cat1 contém as páginas de manual formatadas para a seção 1. /usr/src /usr/src contém o código fonte (programas a compilar) de vários programas do sistema. O subdiretório mais importante é o /usr/src/linux, que contém o código fonte do kernel do Linux. /var /var contém diretórios que freqëntemente mudam de tamanho ou tendem a crescer. Muitos desses diretórios residiam antes em /usr, mas desde que estamos tratando de deixar o /usr inalterado, os diretórios que mudam de tamanho foram levados para o /var. Alguns deles são: /var/adm /var/adm contém vários arquivos de interesse para o administrador do sistema, especificamente históricos do sistema, que armazenam erros ou problemas com o sistema. Outros arquivos guardam logins do sistema, assim como tentativas frustradas. O capítulo 4 abordará este assunto.
  55. 55. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 55 /var/spool /var/spool contém arquivos que vão ser passados a outros programas. Por exemplo, se sua máquina está conectada a uma rede, o correio de entrada será armazenado em /var/spool/mail até que você o leia ou apague. Artigos novos dos News, tanto os que entram quanto os que saem, se encontram em /var/spool/news, etc. Comandos para manipulação de Arquivos O comando rm Remove arquivos. Também pode ser usado para apagar diretórios, vazios ou não. Note que no UNIX quando um arquivo é removido, ele não é mais recuperável (como no MS-DOS, onde você pode usar o "undelete", ou no Windows, com a lixeira). Sintaxe: rm [opções] [caminho][arquivo/diretório] onde: caminho - Localização do arquivo que deseja apagar. Se omitido, assume que o arquivo esteja no diretório atual. arquivo/diretório - Arquivo/diretório que será apagado. opções - Modificam o comportamento do comando: -i --interactive Confirma antes de remover, esta é ativada por padrão. -f --force Remove os arquivos sem confirmação. -r --recursive Usado para remover arquivos em sub-diretórios. Esta opção também pode ser usada para remover sub-diretórios. Exemplos: rm teste.txt Remove o arquivo teste.txt do diretório atual. rm *.txt Remove todos os arquivos do diretório atual que terminam com .txt. rm *.txt teste.novo Remove todos os arquivos do diretório atual que terminam com .txt e também o arquivo teste.novo. rm -rf /tmp/teste/* Remove todos os arquivos e sub-diretórios do diretório /tmp/teste mas mantém o sub-diretório /tmp/teste. rm -rf /tmp/teste Remove todos os arquivos e sub-diretórios do diretório /tmp/teste, inclusive /tmp/teste. O comando cp Copia arquivos.
  56. 56. Conceitos, Instalação e Administração de Sistemas Linux  2011 Alfamidia Prow 56 Sintaxe: cp [opções] [origem] [destino] onde: origem - Arquivo que será copiado. Podem ser especificados mais de um arquivo para ser copiado usando "Curingas". destino - O caminho ou nome de arquivo onde será copiado. Se o destino for um diretório, os arquivos de origem serão copiados para dentro do diretório. Opções - Modificam o comportamento do comando: -f --force Não confirma, substitui arquivos caso já existam. -i –interactive Confirma antes de substituir arquivos existentes. -u –update Copia somente se o arquivo de origem é mais novo que o arquivo de destino ou quando o arquivo de destino não existe. -r Copia arquivos e sub-diretórios, com exceção de arquivos especiais FIFO e dispositivos. -R --recursive Copia arquivos e sub-diretórios, inclusive arquivos especiais FIFO e dispositivos. -p --preserve Preserva atributos do arquivo, se for possível. O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos origem e destino terão o mesmo conteúdo após a cópia. Exemplos: cp teste teste1 Copia o arquivo teste para teste1 cp teste /tmp Copia o arquivo teste para dentro do diretório /tmp. cp * /tmp Copia todos os arquivos do diretório atual para /tmp. cp /bin/* . Copia todos os arquivos do diretório /bin para o diretório atual. cp -R /bin /tmp Copia o diretório /bin e todos os arquivos/sub-diretórios existentes para o diretório /tmp. cp -R /bin/* /tmp Copia todos os arquivos do diretório /bin (exceto o próprio diretório /bin) e todos os arquivos/sub-diretórios existentes dentro dele para /tmp. cp -R /bin /tmp Copia todos os arquivos e o diretório /bin para /tmp. O comando mv Move ou renomeia arquivos e diretórios. O processo é semelhante ao do comando cp mas o arquivo de origem é apagado após o término da cópia. Sintaxe: mv [opções] [origem] [destino] Onde:

×