linux

169
Conceitos, Instalação e Administração de Sistemas Linux

Upload: senac

Post on 17-Nov-2014

389 views

Category:

Internet


4 download

DESCRIPTION

Sistema Operacional Linux.

TRANSCRIPT

  • 1. Conceitos, Instalao e Administrao de Sistemas Linux

2. 2011 Alfamidia LTDA. Todos os direitos reservados para Alfamdia LTDA. AVISO DE RESPONSABILIDADE As informaes contidas neste material de treinamento so distribudas NO ESTADO EM QUE SE ENCONTRAM, sem qualquer garantia, expressa ou implcita. Embora todas as precaues tenham sido tomadas na preparao deste material, a Alfamdia LTDA. no tm qualquer responsabilidade sobre qualquer pessoa ou entidade com respeito responsabilidade, perda ou danos causados, ou alegadamente causados, direta ou indiretamente, pelas instrues contidas neste material ou pelo software de computador e produtos de hardware aqui descritos. Novembro 2011 Alfamdia LTDA http://www.alfamidia.com.br 3. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 3 UNIDADE 1. HISTRIA DO LINUX.............................................................................................................5 UNIX ..................................................................................................................................................................5 LINUX.................................................................................................................................................................5 GNU ..................................................................................................................................................................6 FSF (FREE SOFTWARE FOUNDATION) ................................................................................................................6 DISTRIBUIES LINUX.......................................................................................................................................7 UNIDADE 2. INSTALAO DO LINUX....................................................................................................10 REQUISITOS DE HARDWARE .............................................................................................................................10 COMPATIBILIDADE DE HARDWARE ..................................................................................................................10 INSTALANDO O UBUNTU LINUX 10.04..............................................................................................................11 GERENCIAMENTO DE DISCOS NO LINUX...........................................................................................................20 CONFIGURAO DE PLACAS DE EXPANSO......................................................................................................20 CONFIGURAO DE DISPOSITIVOS USB...........................................................................................................21 UNIDADE 3. INICIANDO E FINALIZANDO O USO DO SISTEMA .....................................................23 CONSIDERAES INICIAIS ................................................................................................................................23 LOGIN...............................................................................................................................................................23 CONSOLES VIRTUAIS........................................................................................................................................24 COMANDOS EM MODO TEXTO..........................................................................................................................24 O QUE SHELL?................................................................................................................................................24 CONFIGURAO DO SHELL...............................................................................................................................24 SAIR DO SHELL.................................................................................................................................................37 REINICIALIZANDO O LINUX ..............................................................................................................................37 DESLIGANDO O LINUX......................................................................................................................................37 UNIDADE 4. DISPOSITIVOS, SISTEMAS DE ARQUIVOS GNU/LINUX ............................................38 CRIAO DE PARTIES E SISTEMAS DE ARQUIVOS.........................................................................................38 CRIAO DE SISTEMAS DE ARQUIVOS..............................................................................................................39 UNIDADE 5. MANUTENO DA INTEGRIDADE DE SISTEMAS DE ARQUIVOS .........................41 CHECANDO O SISTEMA DE ARQUIVOS ..............................................................................................................41 EXAMINANDO E CORRIGINDO O SISTEMA DE ARQUIVOS ..................................................................................41 UNIDADE 6. ADMINISTRAO DE COTAS DE DISCO .......................................................................44 INTRODUO....................................................................................................................................................44 LIMITES DE QUOTAS.........................................................................................................................................44 CRIANDO E GERENCIANDO QUOTAS..................................................................................................................48 COMANDOS PARA MANIPULAO DE ARQUIVOS ..............................................................................................55 COMANDOS DE BUSCA .....................................................................................................................................67 UNIDADE 7. FLUXOS, CANALIZAO (PIPES) E REDIRECIONAMENTOS DE SADA..............71 REDIRECIONAMENTO........................................................................................................................................71 CANALIZAO (PIPE)........................................................................................................................................71 UNIDADE 8. GERENCIAMENTO DE PROCESSOS................................................................................73 TAREFAS EM PRIMEIRO E SEGUNDO PLANO .....................................................................................................74 MODIFICAR A PRIORIDADE DE EXECUO DE UM PROCESSO ...........................................................................75 UNIDADE 9. COMPACTADORES ..............................................................................................................77 COMPILAR E INSTALAR PROGRAMAS................................................................................................................81 UNIDADE 10. ADMINISTRANDO USURIOS E GRUPOS......................................................................83 ADICIONANDO UM NOVO GRUPO A UM USURIO...............................................................................................85 UNIDADE 11. PERMISSES DE ACESSO A ARQUIVOS E DIRETRIOS..........................................87 DONOS, GRUPOS E OUTROS USURIOS ..............................................................................................................87 TIPOS DE PERMISSES DE ACESSO ....................................................................................................................88 ETAPAS PARA ACESSO A UM ARQUIVO/DIRETRIO............................................................................................89 4. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 4 EXEMPLOS PRTICOS DE PERMISSES DE ACESSO.............................................................................................89 EXEMPLO DE ACESSO A UM DIRETRIO.............................................................................................................90 MODO DE PERMISSO OCTAL............................................................................................................................95 A CONTA ROOT.................................................................................................................................................98 UNIDADE 12. GERENCIAMENTO DE PACOTES.....................................................................................99 PACOTES ........................................................................................................................................................105 INSTALAR PACOTES ........................................................................................................................................105 O UTILITRIO 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. EXPRESSO REGULARES................................................................................................123 TERMINOLOGIA ..............................................................................................................................................123 METACARACTERES.........................................................................................................................................125 REPRESENTANTES ..........................................................................................................................................125 QUANTIFICADORES.........................................................................................................................................130 NCORAS .......................................................................................................................................................134 OUTROS..........................................................................................................................................................136 LINGUAGENS DE PROGRAMAO....................................................................................................................139 DIFERENAS DE METACARACTERES ENTRE APLICATIVOS ..............................................................................142 RESUMO DOS METACARACTERES E SEUS DETALHES ......................................................................................143 CARACTERES ASCII IMPRIMVEIS ..................................................................................................................144 UNIDADE 15. BACKUP ................................................................................................................................145 UNIDADE 16. RAID.......................................................................................................................................147 ESPELHAMENTO .............................................................................................................................................148 OUTROS SISTEMAS RAID...............................................................................................................................148 IMPLEMENTAO ...........................................................................................................................................149 UNIDADE 17. LOGS ......................................................................................................................................151 INTRODUO..................................................................................................................................................151 LOGS BSICOS.................................................................................................................................................151 LOGS GERADOS POR ALGUNS SERVIOS DE REDE............................................................................................154 UNIDADE 18. INICIALIZAO .................................................................................................................158 INICIALIZAO DO SISTEMA...........................................................................................................................158 UNIDADE 19. O KERNEL DO LINUX........................................................................................................164 UNIDADE 20. SERVIOS DE IMPRESSO..............................................................................................168 UNIDADE 21. O X11 SERVER .....................................................................................................................169 5. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 5 Unidade 1. Histria do Linux Unix A origem do Unix tem ligao com o sistema operacional Multics, projetado na dcada de 1960. Esse projeto era realizado pelo Massachusets Institute of Technology (MIT), pela General Eletric (GE) e pelos laboratrios Bell (Bell Labs) e American Telephone na Telegraph (AT&T). A inteno era de que o Multics tivesse caractersticas de tempo compartilhado (vrios usurios compartilhando os recursos de um nico computador), sendo assim o sistema mais arrojado da poca. Em 1969, j existia uma verso 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 ento, sua ideia no era continuar no Multics original e sim criar algo menor, mas que conservasse as ideias bsicas do sistema. A partir da, comea a saga do sistema Unix. Brian Kernighan, tambm 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 nvel, chamada C, desenvolvida por ele mesmo. Por causa disso, o sistema passou a ter grande aceitao por usurios externos Bell Labs. Entre 1977 e 1981, a AT&T, alterou o Unix, fazendo algumas mudanas particulares e lanou o System III. Em 1983, aps mais uma srie de modificaes, foi lanado o conhecido Unix System IV, que passou a ser vendido. At hoje esse sistema usado no mercado, tornando-se o padro internacional do Unix. Esse sistema comercializado por empresas como IBM, HP, Sun, etc. Linux A histria comea com um jovem chamado Linus Torvalds nasceu em 28 de dezembro de 1969 em Helsinki na Finlndia e sua famlia era uma das poucas cuja linguagem adotada como principal era o Sueco ao invs do Finlands. Embora fosse filho de jornalistas, Linus comeou a demonstrar seu interesse pelo mundo geek cedo, obtendo sempre grande destaque em campos como a Matemtica e Fsica. Em 1988, Linus ingressou na Universidade de Helsinki no curso de Cincias da Computao. Aps montar um computador no qual passou a adotar o Minix (um sistema operacional baseado no Unix, porm gratuito). Devido a observar as dificuldades deste sistema (especialmente com relao ao uso de terminal para conexo), Linus resolveu criar um programa para a emulao de terminal que funcionasse independente do Minix. Em 1991, com relao aos sistemas operacionais, voc tinha poucas escolhas. O DOS exercia sua soberania absoluta com relao aos computadores pessoais, at por uma questo de falta de escolha. Por mais que os Macs existissem seus preos eram astronmicos, fato que tornava quase impossvel a aquisio de um deles para um usurio final. Alm deles, havia o Unix que certamente era ainda mais caro do que um Mac e adotado quase exclusivamente por grandes empresas. Nessa altura, o cdigo do Unix, que uma vez foi 6. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 6 utilizado como material de estudo em universidades, j se encontrava proprietrio e no mais para conhecimento pblico. Nesse clima, um professor holands 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 acadmicos (o ensino do funcionamento de um SO em universidades), ele estava longe de resolver todos os problemas de um usurio final, porm seu cdigo-fonte era disponibilizado por Tanenbaum. Nesse ponto da histria, o estudante Linus Torvalds, frustrado com as carncias do Minix comeou a idealizar como seria bom ter um SO que, alm de gratuito, pudesse efetuar tarefas como emulao de terminal e transferncia e armazenamento de arquivos. Ento, 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, porm que no intencionava torn-lo uma coisa realmente grande e profissional como o GNU (SO de cdigo aberto baseado no Unix), Linus pretendia chamar sua criao de Freax, porm trocou para Linux ao aceitar esta sugesto de um de seus amigos. GNU Um fato importante de conhecer saber o que GNU. GNU um projeto que comeou em 1984, criado por Richard Stallman, com o objetivo de desenvolver um sistema operacional compatvel com os de padro Unix. O Linux em si, s um kernel. Linus Torvalds, na mesma poca que escrevia o cdigo-fonte do kernel, comeou a usar programas da GNU para fazer seu sistema. Gostando da ideia, resolveu deixar seu kernel dentro da mesma licena. Mas, o kernel por si s, no usvel. O kernel a parte mais importante, pois o ncleo e serve de comunicador entre o usurio 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 fundao sem fins lucrativos, que lutava contra as restries de cpia e alteraes de software, em outras palavras, incentivava a criao de programas livres para cpia e alterao, para isso a FSF criou a licena GNU e um conjunto de ferramentas prprias 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 cdigo-fonte do Linux sob a licena GNU a fim de conseguir ajuda de outros desenvolvedores. Muitos desenvolvedores se interessaram e comearam a adicionar novos recursos rapidamente, mas ficou limitado a este crculo tcnico, pois ainda estava em fase embrionria no sendo possvel a utilizao em larga escala. Em 5 de outubro de 1991, a primeira verso oficial do Linux foi divulgada, a verso 0.02, desde ento o nmero de desenvolvedores cresceu rapidamente. 7. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 7 Distribuies Linux Logo que Linus Torvalds disponibilizou, o seu Kernel Linux sob uma licena para software livre, mais precisamente sob a GNU General Public License (Licena Pblica Geral), ou GNU GPL (da FSF), o Projeto GNU, que j havia construdo todo um conjunto de softwares que compunham um sistema operacional, adotou-o como kernel para seu Sistema Operacional GNU, por sua vez tambm foi distribudo como software livre, para que pudesse ser modificado, melhorado, adaptado, e redistribudo com as modificaes. Muitos programadores individuais, grupos de programadores e organizaes de todo o mundo, passaram a realizar essas modificaes e redistribuir essas verses do Sistema GNU/Linux modificado, so as chamadas "Distribuies GNU/Linux", ou "Distros Linux". Portanto, uma distribuio Linux composta do kernel Linux e um conjunto varivel de software, dependendo de seus propsitos. Essa coleo de software livre criada e mantida por indivduos, grupos e organizaes de todo o mundo. As primeiras distribuies surgiram ainda em 1992, como MCC Interim Linux, o Yggdrasi e o SLS Linux, que aps uma reformulao originou o Slackware, em julho de 1993. Ainda em 1993 surgiu o Debian, e em 1994 o Red Hat. Essas trs grandes famlias de distribuies 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 chapu vermelho, foi uma das pioneiras no tratamento srio do Linux. Desde o incio ela uma das principais distribuies mundiais, e tem influncias em todos os lugares. Sua equipe no apenas ajuda na distribuio em si, mas tambm no prprio Linux (como o caso do kernel-hacker Alan Cox). Esta distribuio deu origem a muitas outras. Criadora do RPM, o gerenciador de pacotes mais usado atualmente no Linux, a Red Hat atualmente tm uma distribuio mais voltada para o mercado de servidores. Mas isso no quer dizer que ela no seja boa tambm para uso domstico. Voc encontra nela uma facilidade de manuseio, pacotes atualizados. http://www.redhat.com Slackware Podemos dizer que o Slackware uma das mais famosas distribuies para Linux, o seu criador, Patrick Volkerding, lanou a primeira verso da distribuio em Abril de 1992, e desde ento segue uma filosofia bem rgida: manter a distribuio o mais parecido com o UNIX possvel. As prioridades da distribuio so: estabilidade e simplicidade, e isso que a torna uma das mais populares distribuies disponveis. 8. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 8 Ele possui uma interface de instalao bem amigvel, alm de uma srie de scripts que ajudam na instalao e desinstalao de pacotes. O Slackware pode ser uma alternativa tanto para usurios iniciantes como os j experientes. As opes de instalao permitem que o usurio possa instalar em sua mquina uma distribuio que tem como caractersticas 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 necessrios (utilitrios de rede, servidores http, noticias, e-mail, ftp, etc). Os pacotes sempre esto em atualizao, mantidos por uma verso especial da distribuio: o slackware-current. Isto desfaz o mito de que o Slackware no uma distribuio "dinmica". Todos aqueles aplicativos esto disponveis, e so atualizados regularmente. http://www.slackware.com Debian Talvez a filosofia do Debian seja o ponto que mais chama ateno nesta popular distribuio. No incio, antes do Linux ser lanado oficialmente por Linus Torvalds, o projeto GNU j tinha vrias ferramentas Unix-like disponveis. O que faltava era um kernel, e ento quando Linus Torvalds lanou o seu kernel Linux, resolveram ento criar o GNU/Linux. O Debian GNU/Linux uma distribuio que segue toda esta filosofia do projeto GNU, oficialmente contendo apenas pacotes com programas de cdigo-fonte livre, feito por voluntrios 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 no 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 vrios kernels. E claro, isso tudo na filosofia GNU. O Debian tem uma quantidade incrvel de pacotes pr-compilados para vrios tipos de arquitetura. Alm do mais, ele o pai do apt, a ferramenta de atualizao de pacotes automtica, feita pela internet. Mas h quem diga que o Debian ainda tem muito que melhorar: Uma instalao complicada e ideologismo demasiados so alguns pontos fracos que muita gente encontra nesta distribuio. http://www.debian.org Ubuntu Ubuntu um sistema de cdigo aberto construdo em volta do ncleo Linux baseado no Debian, sendo o sistema operacional de cdigo aberto mais popular do mundo. patrocinado pela Canonical Ltd (dirigida por Jane Silber). O Ubuntu diferencia-se do Debian por ser lanado semestralmente, por disponibilizar suporte tcnico nos dezoito meses seguintes ao lanamento de cada verso (exceto nas verses LTS, ou seja, Long Term Support) (em ingls) e pela filosofia em torno de sua concepo. A proposta do Ubuntu oferecer um sistema operacional que qualquer pessoa possa utilizar sem dificuldades, 9. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 9 independentemente de nacionalidade, nvel de conhecimento ou limitaes fsicas. O sistema deve ser constitudo totalmente de software gratuito e livre, alm de isenta de qualquer taxa. A Comunidade Ubuntu ajuda-se mutuamente, no havendo distino de novatos ou veteranos; a informao deve ser compartilhada para que se possa ajudar quem quer que seja, independentemente do nvel de dificuldade. Os fs do Ubuntu so conhecidos como ubuntistas, ubunteiros ou ubunteros. O sistema operacional Ubuntu est em primeiro lugar no Distrowatch (www.distrowatch.com), pgina especializada em catalogar o desempenho e uso dos muitos sistemas operacionais com ncleo Linux. 10. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 10 Unidade 2. Instalao do Linux Requisitos de Hardware Para dimensionar o hardware correto para instalao do Linux devemos inicialmente saber qual distribuio que iremos trabalhar, pois cada distribuio pode exigir diferentes configuraes. Tomamos como base a distribuio Ubuntu 10.04. Requisitos mnimos para instalao do Ubuntu 10.04 Lucid Lynx Processador: 700mhz; Memria RAM: 512MB; Disco: 4GB; Placa Grfica: qualquer placa grfica (funcionamento do sistema de efeitos visuais poder estar condicionado conforme a placa grfica) Requisitos Recomendados: Processador: 1.2GHz; Memria RAM: 1GB; Disco: 10GB Placa Grfica: nVidia Compatibilidade de Hardware O Ubuntu conta com uma grande quantidade de drivers e uma grande aceitao dos fabricantes de hardware existe poucos casos de incompatibilidades de hardware no mercado em relao a esta distribuio. Uma boa prtica que antes de penar em uma instalao de um novo sistema operacional a verificao da lista de compatibilidade, de cada distribuio, 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 atualizao, j que seu sistema operacional est em constante desenvolvimento. 11. Conceitos, Instalao e Administrao 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 prprio de gravao de imagens, utilize um programa prprio 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 utilizao 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 no carregue est tela voc deve pressionar ESC, o Ubuntu iria iniciar sozinho, direcionando para o modo de instalao. 12. Conceitos, Instalao e Administrao 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 opo Experimente o Ubuntu sem instalar", esta opo a mais indicada pois caso haja algum tipo de incompatibilidade de hardware provavelmente ir ser detectada. Ao selecionar esta opo, o Ubuntu ir carregar-se, depois de algum tempo de espera, o usurio poder instalar o novo Ubuntu Lucid Lynx, e tambm experiment-lo, verificar se tudo compatvel e inclusive acessar a Internet. 13. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 13 Na prxima tela voc dever dar dois cliques em Instalar Ubuntu 10.04 LTS Clique no boto Avanar para prosseguir. 14. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 14 Neste prximo passo, deve-se selecionar o teclado correto. Este passo muito importante, pois existem muitos modelos de teclados e muitos deles tm poucas diferenas, mas que so importantes no dia-a-dia. Neste passo, a opo selecionada abaixo recomendada para aqueles que tm outro sistema operacional no PC. Outra opo a formatao do disco, e utilizar apenas o Ubuntu, claro que desta forma voc perder tudo que voc tinha anteriormente. 15. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 15 O Ubuntu ir analisar o seu disco e ir apresentar as parties que criou no passo anterior caso tenha usado a segunda opo. Quando o Ubuntu apresentar as parties, dever selecionar as devidas parties e definir os seus atributos, clicando no boto Modificar: A partio / deve ser do tipo de sistema de arquivo ext4 com um tamanho em torno de 10GB. 16. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 16 A partio /home dever ser a maior pelo motivo de ser o diretrio 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 poderamos trabalhar com os quesitos mnimos. No final deste procedimento, a lista de parties dever ter as caractersticas das parties semelhantes s da imagem abaixo, voc poder criar uma partio de swap em torno de 400 Mb. Depois de verificar se tudo est correto, clique no boto Avanar! 17. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 17 No passo seguinte, dever digitar o seu nome, o usurio, que servir depois para fazer o login no Ubuntu. Depois de preencher esses dados, clique no boto Avanar 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 pr um visto e clicar no boto Avanar 18. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 18 No passo final, voc deve rever todas as opes que escolheu e, caso precise de uma proxy, permite defini-la, essas opes esto disponveis atravs do boto Avanado. Para comear a instalao do Ubuntu clique Instalar. Enquanto a instalao est em processamento, pode navegar na Internet, ou mesmo jogar algum jogo disponvel por este Ubuntu no menu Aplicaes Jogos. 19. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 19 Quando a instalao estiver concluda 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 necessrios para poder ouvir quase qualquer tipo de msica e de vdeo, bem como qualquer arquivo compactado que lhe possa aparecer. Este Ubuntu, ainda no tem a mquina virtual Java para poder abrir determinadas aplicaes desse tipo nem o Adobe Flash para poder ver vdeos no Youtube. 20. Conceitos, Instalao e Administrao 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 so identificados atravs de um conjunto de trs nmeros chamado SCSI_ID: 1 O Canal SCSI. Cada adaptador SCSI suporta um canal de dados no qual so anexados os dispositivos SCSI. So numerados a partir de zero. 2 O ID do dispositivo. A cada dispositivo atribudo um nmero ID nico altervel atravs 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 nmero lgico da unidade (LUN). usado para determinar diferentes dispositivos dentro de um mesmo alvo SCSI. Pode indicar uma partio em um disco ou um dispositivo de fita especfico em um dispositivo multi-fita. Hoje no muito utilizado pois adaptadores SCSI esto mais baratos e podem comportar mais alvos por barramento. Todos dispositivos SCSI so 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 informaes 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 padro, 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 mquina. Configurao de Placas de Expanso A configurao de placas de expanso diversas engloba os aspectos abordados nos captulos anteriores, mais um conhecimento mais slido sobre coldplug, hotplug e inspeo de hardware. Em linhas gerais, coldplug significa a impossibilidade de se conectar dispositivo sem a necessidade de desligar a mquina. Exemplos de dispositivos coldplug so placas PCI, ISA e dispositivos IDE. Na 21. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 21 maioria dos computadores, CPU e pentes de memria so coldplug. Porm, alguns servidores de alta performance suportam hotplug para esses componentes. Hotplug o sistema que permite conectar novos dispositivos mquina em funcionamento e us-los imediatamente, como no caso de dispositivos USB. O sistema Hotplug foi incorporado ao ncleo 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, atravs da opo CONFIG_HOTPLUG. Dessa forma, haver o arquivo /proc/sys/kernel/hotplug contendo o caminho para o programa hotplug (normalmente em /sbin/hotplug). A ao 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 so 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 mquina ser ligada. Configurao de Dispositivos USB Dispositivos para interface USB (Universal Serial Bus) so 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. Conceitos, Instalao e Administrao 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 informaes detalhadas sobre os dispositivos USB conectadas so armazenadas no arquivo /proc/bus/usb/devices. O controle dos dispositivos USB feito pelo hotplug. Etapas executadas quando uma cmera USB conectada ao computador: Os mdulos USB do kernel identificam o evento USB e a ID vendor:product. Esses dados so passados para /sbin/hotplug (ou outro, se o indicado em /proc/sys/kernel/hotplug no for o padro) O agente USB respectivo (/etc/hotplug/usb.agent) associa o dispositivo ao produto correspondente. A relao entre dispositivo e mdulo consta no arquivo /etc/hotplug/usb.distmap. O primeiro estgio envolve procedimentos do kernel, enquanto o segundo e terceiro estgio envolvem o mecanismo do hotplug. O mapa USB correto precisa estar disponvel para iniciar corretamente o dispositivo. 23. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 23 Unidade 3. Iniciando e Finalizando o uso do Sistema Consideraes Iniciais Diferenciao entre letras maisculas e minsculas (case sensitive): todos os shells do Linux fazem esta diferenciao, isto significa que os nomes dos arquivos devem ser especificados com exatido, ou seja, o arquivo denominado Manual.txt um arquivo diferente do arquivo denominado manual.txt.. Histrico do shell: o shell padro do Linux, bash, grava os ltimos 1000 comandos em uma lista denominada .bash_history no diretrio home do usurio. Dessa forma as operaes 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 sobreposio de uma sequncia de caracteres (*), quanto para uma nica posio (?). 1. Acessando o diretrio boot da raiz, utilizando o curinga para sobreposio de uma sequncia de caracteres. root@localhost /]#cd bo* 2. Acessando o diretrio boot da raiz, utilizando o curinga de sobreposio nica. [root@localhost /root]#cd boo? Login Para que o usurio tenha acesso ao sistema necessrio 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. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 24 Last login: Thu Feb 8 14:06:27 on tty1 4. Logo aps o surgimento desta mensagem o shell do usurio disponibilizado. [root@localhost /root]# Consoles Virtuais O Linux permite o acesso diversas vezes e de forma independente, com diferentes usurios, atravs 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 operaes. Para alternar entre consoles basta manter pressionada a tecla Alt + a tecla de funo apropriada. Comandos em Modo Texto O que shell? Shell, ou interpretador de comandos o programa executado logo aps o login, cuja tarefa interpretar e executar os comandos do usurio. Por exemplo, quando o usurio digita no console "ls" e pressiona a tecla Enter, o shell l essa string e verifica se existe algum comando interno (embutido no prprio shell) com esse nome. Se houver, ele executa esse comando interno. Caso contrrio, ele vai procurar no PATH por algum programa que tenha esse nome. Se encontrar, ele executa esse programa, caso contrrio, 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 usurio: 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). Configurao do Shell Variveis de Ambiente do Shell O shell carrega vrios arquivos localizados em diferentes diretrios no sistema, denominados: arquivos de recursos, perfil e login. Os arquivos de perfil contm as variveis de ambiente, as quais so definies e valores que o shell ou outros programas reconhecem depois do acesso. 25. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 25 Exibir variveis de ambiente Para exibir o valor de uma determinada varivel ou uma lista das variveis 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 variveis do ambiente. Outra forma de exibir as variveis de ambiente atravs do comando env, que ao contrrio do comando printenv no exibe o valor de uma s varivel. Variveis de ambiente: EDITOR Editor padro do sistema HISTSIZE O nmero de linhas de comando memorizadas HOME O diretrio home do usurio atual HOSTTYPE A arquitetura do sistema em uso LOGNAME Nome do usurio atual MAIL O diretrio que contm as mensagens de correio eletrnico recebidas OSTYPE O sistema operacional em uso PATH O caminho (ou caminhos) a procurar os comandos PS1 Definio do prompt da linha de comando SHELL Nome do shell atualmente em uso SHLVL O nmero de shell atualmente em execuo TERM O tipo de terminal em uso USER O nome do usurio atual Definir uma varivel de ambiente Para definir uma varivel de ambiente no shell bash necessrio 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 variveis 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 varivel de ambiente Para excluir uma varivel de ambiente digite: unset NOME_VARIAVEL A varivel PATH Essa varivel define o diretrio ou diretrios onde o shell pode encontrar os programas executveis, caso a varivel no tenha sido definida corretamente ser necessrio 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. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 26 Estas instrues sobre como adicionar caminhos ao PATH so vlidas temporariamente, at sair do terminal. Para adicionar um caminho ao PATH de forma definitiva, para todo o sistema, necessrio editar o arquivo /etc/profile, para isso acesse o sistema como root. Personalizando o prompt da linha de comando A varivel de prompt do shell padro bash, PS1, definida no /etc/profile. A definio de prompt usa caracteres especiais reconhecidos pelo shell bash, conforme este exemplo: PS1="[u@h W]$" Esta linha deve existir, tambm, no arquivo .bash_profile. A varivel PS1 deve ser acrescentada linha de exportao no .bash_profile, desta forma: export USERNAME ENV PATH PS1 Caracteres do prompt do shell bash: ! Exibe o nmero de histrico do comando # Exibe o nmero desse comando $ Exibe # para root ou $ para usurio comum. W Exibe o nome bsico do diretrio de trabalho atual [ Indica a sequncia dos caracteres no imprimveisImprime uma barra invertida ] Finaliza a sequncia de caracteres no imprimveis 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 usurio w Exibe o diretrio atual de trabalho Exemplos: [leonardo@localhost root]# PS1='d t: ';export PS1 Sun Feb 18 18:45:07: Alias So redefinies 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. Conceitos, Instalao e Administrao 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 preferncia 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 executvel: chmod +x sistema Problemas na execuo do script "Comando no encontrado" O shell no 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 maisculas e minsculas so diferentes, ento 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 so os diretrios conhecidos, mova seu script para dentro de um deles, ou chame-o passando o caminho completo. Se o script estiver no diretrio corrente, chame-o com um "./" na frente, assim: prompt$ ./sistema Caso contrrio, especifique o caminho completo desde o diretrio raiz: prompt$ /tmp/scripts/sistema "Permisso Negada" O shell encontrou seu script, mas ele no executvel. Use o comando chmod +x seu-script para torn-lo um arquivo executvel. "Erro de Sintaxe" O shell encontrou e executou seu script, porm 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 no foram fechados. A prpria mensagem informa o nmero da linha onde o erro foi encontrado. 28. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 28 O primeiro shell script. Nesse ponto, voc j sabe o bsico necessrio para fazer um script em shell do zero e execut-lo. Mas apenas colocar os comandos em um arquivo no torna este script til. Vamos fazer algumas melhorias nele para que fique mais compreensvel. Executar os trs comandos seguidos resulta em um bolo de texto na tela, misturando as informaes e dificultando o entendimento. preciso trabalhar um pouco a sada do script, tornando-a mais legvel. O comando "echo" serve para mostrar mensagens na tela. Que tal anunciar cada comando antes de execut-lo? #!/bin/bash echo "Data e Horrio:" date echo echo "Uso do disco:" df echo echo "Usurios 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 interao mnima com o usurio, pedindo uma confirmao 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 Horrio:" date echo echo "Uso do disco:" df echo echo "Usurios conectados:" w O comando "read" leu o que o usurio digitou e guardou na varivel RESPOSTA. Logo em seguida, o comando "test" verificou se o contedo dessa varivel era "n". Se afirmativo, o comando "exit" foi chamado e o script foi finalizado. Nessa linha h vrios detalhes importantes: O contedo da varivel acessado colocando-se um cifro "$" na frente O comando test til para fazer vrios tipos de verificaes em textos e arquivos O operador lgico "&&", s executa o segundo comando caso o primeiro tenha sido OK. O operador inverso o "|| Com o tempo, o script vai crescer, mais comandos vo ser adicionados e quanto maior, mais difcil encontrar o ponto certo onde fazer a alterao ou corrigir algum erro. Para poupar horas de estresse, e facilitar as manutenes futuras, preciso deixar o cdigo visualmente mais agradvel e espaado, e colocar comentrios esclarecedores. #!/bin/bash # sistema - script que mostra informaes sobre o sistema 29. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 29 # Autor: Fulano da Silva # Pede uma confirmao do usurio 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 Horrio:" date echo # O df mostra as parties e quanto cada uma ocupa no disco echo "Uso do disco:" df echo # O w mostra os usurios que esto conectados nesta mquina echo "Usurios conectados:" w Basta iniciar a linha com um "#" e escrever o texto do comentrio em seguida. Estas linhas so ignoradas pelo shell durante a execuo. O cabealho com informaes sobre o script e seu autor tambm importante para ter-se uma viso geral do que o script faz, sem precisar decifrar seu cdigo. Tambm possvel colocar comentrios no meio da linha # como este Variveis As variveis so a base de qualquer script. dentro delas que os dados obtidos durante a execuo do script sero armazenados. Para definir uma varivel, 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$ No podem haver espaos ao redor do igual "=" Ainda possvel armazenar a sada de um comando dentro de uma varivel. Ao invs de aspas, o comando deve ser colocado entre "$(...)", veja: prompt$ HOJE=$(date) prompt$ echo "Hoje : $HOJE" Hoje : Sb Abr 24 18:40:00 BRT 2004 prompt$ unset HOJE prompt$ echo $HOJE prompt$ E finalmente, o comando "unset" apaga uma varivel. Para ver quais as variveis que o shell j define por padro, use o comando "env". Diferente de outras linguagens de programao, o shell no usa os parnteses para separar o comando de seus argumentos, mas sim o espao em branco. O formato de um comando sempre: COMANDO OPES PARMETROS 30. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 30 O comando "cat" mostra o contedo de um arquivo. O comando "cat -n sistema" mostra o nosso script, com as linhas numeradas. O "-n" a opo para o comando, que o instrui a numerar linhas, e "sistema" o ltimo argumento, o nome do arquivo. O "read" um comando do prprio shell, j o "date"" um executvel do sistema. Dentro de um script, no faz diferena usar um ou outro, pois o shell sabe como executar ambos. Assim, toda a gama de comandos disponveis no Unix/Linux pode ser usada em scripts! H vrios comandos que foram feitos para serem usados com o shell, so como ferramentas. Alguns deles: Comando Funo Opes 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 Incio -n, -c printf Mostra texto nenhuma rev Inverte texto nenhuma sed Edita texto -n,s/isso/aquilo/, d seq Conta Nmeros -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 informaes sobre cada um deles. E o melhor, em shell possvel combinar comandos, aplicando-os em sequncia, para formar um comando completo. Usando o pipe "|" possvel canalizar a sada 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 suo dos comandos do shell o "test", que consegue fazer vrios tipos de testes em nmeros, textos e arquivos. Ele possui vrias opes para indicar que tipo de teste ser feito, algumas delas: Testes em variveis Testes em arquivos lt Nm. menor que (LessThan) -d um diretrio -gt Nm. maior que (GreaterThan) -f um arquivo normal -le Nm. menor igual (LessEqual) -r O arquivo tem permisso de leitura -ge Nm. maior igual (GreaterEqual) -s O tamanho do arquivo maior que zero -eq Nm. igual (EQual) -w O arquivo tem permisso de escrita -ne Nm. diferente (NotEqual) -nt O arquivo mais recente (NewerThan) 31. Conceitos, Instalao e Administrao 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 no nula -a E lgico (AND) -z String nula -o OU lgico (OR) Exerccio: script que testa arquivos Tente fazer o script "testa-arquivos", que pede ao usurio para digitar um arquivo e testa se este arquivo existe. Se sim, diz se um arquivo ou um diretrio. Exemplo de uso: prompt$ testa-arquivos Digite o arquivo: /naoexiste O arquivo '/naoexiste' no foi encontrado prompt$ testa-arquivos Digite o arquivo: /tmp /tmp um diretrio prompt$ testa-arquivos Digite o arquivo: /etc/passwd /etc/passwd um arquivo prompt$ Conceitos avanados At agora vimos o bsico, o necessrio para se fazer um script de funcionalidade mnima. A seguir, conceitos novos que ampliaro as fronteiras de seus scripts! Recebimento de opes e parmetros Assim como os comandos do sistema que possuem opes e parmetros, os scripts tambm podem ser preparados para receber dados via linha de comando. Dentro do script, algumas variveis especiais so definidas automaticamente, em especial, "$1" contm 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 variveis 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 contedo de algumas variveis especiais, acompanhe: prompt$ ./argumentos um dois trs O nome deste script : ./argumentos Recebidos 3 argumentos: um dois trs O primeiro argumento recebido foi: um O segundo argumento recebido foi: dois O acesso direto, basta referenciar a varivel que o valor j estar definido. Assim possvel criar scripts que tenham opes como --help, --version e outras. 32. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 32 Expresses aritmticas O shell tambm sabe fazer contas. A construo usada para indicar uma expresso aritmtica "$((...))", com dois parnteses. 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 programao, o shell tambm tem estruturas para se fazer condicionais e loop. As mais usadas so 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 no uma condio. Porm como j conhecemos qual o comando do shell que testa condies, s us-lo em conjunto com o if. Por exemplo, para saber se uma varivel 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 so exatamente o mesmo comando, porm 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 [, tambm preciso fech-lo com o ], e sempre devem ter espaos ao redor. recomendado evitar esta sintaxe para diminuir suas chances de erro. J o while um lao 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 no removido: 33. Conceitos, Instalao e Administrao 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 trs quatro cinco do echo "Contando: $numero" done Uma ferramenta muito til para usar com o for o seq, que gera uma sequncia numrica. 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 sada usando o "break: while : do if test -f /tmp/lock then echo "Aguardando liberao do lock..." sleep 1 else break fi done Exerccios A melhor parte finalmente chegou, agora a sua vez de se divertir. Seguem alguns exerccios que podem ser resolvidos usando o que foi aprendido at aqui. Alguns exigiro pesquisa e necessitaro de algumas ferramentas que foram apenas citadas, mas no aprendidas. O shelleiro tambm tem que aprender a se virar sozinho! relacao.sh Recebe dois nmeros como parmetro e mostra a relao entre eles. Exemplo: prompt$ ./relacao.sh 3 5 34. Conceitos, Instalao e Administrao 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 nmero como parmetro 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 parmetro e verifica se a primeira palavra est contida dentro da segunda. S mostra mensagem informativa em caso de sucesso, do contrrio no 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 parmetros 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. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 35 users.sh Do arquivo /etc/passwd, mostra o usurio e o nome completo de cada usurio 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 usurios usam. No 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 parmetros recebidos na linha de comando, contando-os. Exemplo: prompt$ ./parametros.sh a b c d e f Parmetro 1: a Parmetro 2: b Parmetro 3: c Parmetro 4: d Parmetro 5: e Parmetro 6: f prompt$ Pesquise sobre o comando shift 36. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 36 Respostas dos exerccios Resista tentao de olhar as respostas antes de tentar fazer os exerccios! na prtica que se consolida os conhecimentos aprendidos, no pule este passo. Seja forte, insista, no desista! testa-arquivos #!/bin/bash echo -n "Digite o arquivo: " read ARQUIVO test -d "$ARQUIVO" && echo "$ARQUIVO um diretrio" test -f "$ARQUIVO" && echo "$ARQUIVO um arquivo" test -f "$ARQUIVO" -o -d "$ARQUIVO" || echo "O arquivo '$ARQUIVO' no 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. Conceitos, Instalao e Administrao 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 "Parmetro $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) so desmontados, os processos de usurio so finalizados, servidores so encerrados e finalmente o sistema de arquivo raiz desmontado. Proceda da forma adequada caso contrrio pode-se corromper o sistema de arquivos. Reinicializando o Linux Para reinicializar o sistema use o comando reboot ou shutdown com as opes 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 opes h now, conforme o exemplo abaixo: [root@localhost /root]# poweroff Ou [root@localhost /root]# halt Ou [root@localhost /root]# shutdown h now 38. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 38 Unidade 4. Dispositivos, Sistemas de Arquivos GNU/Linux Criao de Parties e Sistemas de Arquivos Discos IDE podem conter at 4 parties fsicas, das quais uma pode ser estendida. A partio estendida pode ser dividida em parties lgicas. Pode haver um mximo de 46 parties num disco IDE e 16 num disco SCSI. Fdisk O fdisk o programa padro para manipular parties no GNU/Linux. Com a opo -l lista os dispositivos e as parties 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 parties, o fdisk deve ser iniciado tendo como argumento o dispositivo em questo: # fdisk /dev/hda Uma vez dentro do fdisk, certas letras correspondero a comandos. Alguns comandos bastante utilizados: p Lista as parties n Cria uma nova partio interativamente t Muda a identificao da partio d Apaga uma partio q Sai do fdisk sem gravar as alteraes w Sai do fdisk e grava as alteraes m Mostra a ajuda de comandos Por padro, o fdisk cria novas parties identificadas como parties nativas de GNU/Linux, cujo cdigo hexadecimal 83 (0x83). O cdigo de identificao de parties do tipo swap 82 (0x82). 39. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 39 Criao 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 padro, o ext2 consiste em blocos de 1024 bytes. H trs tipos de blocos. Superblocks Repetem-se a cada 8193 blocos. Contm informaes 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 aps o inode so acessados sequencialmente. Se os dados excederem 12 blocos, blocos inode indiretos agem como espelho. Cada inode tem 256 bytes e contm a informao de usurio, grupo, permisses e data referente aos dados associados. Blocos de dados Os blocos que contm os arquivos e diretrios propriamente ditos. A diferena para um sistema de arquivos journalling que um sistema com essa capacidade registra de antemo todas as alteraes que ir realizar no disco. Dessa forma, erros de gravao (normalmente ocasionados por queda de energia ou desligamento incorreto) podem ser mais facilmente diagnosticados e sanados. possvel fazer a converso de ext2 para ext3 sem perda de dados. O comando mkfs cria sistemas de arquivos em parties. A opo -t indica o tipo do sistema de arquivos: Criar uma partio ext2 na partio /dev/hda3: # mkfs -t ext2 /dev/hda3 H tambm comandos especficos para cada sistema de arquivos: mkfs.ext2, mke2fs, mkfs.ext3, mkfs.xfs, mkreiserfs, mkdosfs e mkfs.vfat. Partio Swap Aps a partio swap ser criada pelo fdisk, ela precisa ser formatada com o comando mkswap: Formata como swap a partio /dev/hda2: # mkswap /dev/hda2 Aps criada e formatada, uma partio swap precisa ser ativada para ser usada como memria swap. 40. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 40 O comando swapon -a ativa todas parties swap que constarem em /etc/fstab. As entradas referentes a parties swap em /etc/fstab no tem ponto de montagem. Exemplo de entrada de partio swap em /etc/fstab: /dev/hda2 swap swap defaults 0 0 Normalmente, todas as parties swap contidas em /ect/fstab so ativadas pelos scripts de inicializao do sistema. Para ativar ou desativar essa partio manual manualmente, usa-se swapon /dev/hda2 ou swapoff /dev/hda2, respectivamente. Informaes sobre parties swap ativas so armazenadas em /proc/swaps. Exemplo de /proc/swaps: Filename Type Size Used Priority /dev/hda2 partition 160640 32632 -1 41. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 41 Unidade 5. Manuteno da Integridade de Sistemas de Arquivos Checando o Sistema de Arquivos O comando fsck deve ser executado em parties que apresentarem erros ou em dispositivos que foram desligados incorretamente. A partio dever estar desmontada ou montada como somente leitura (ro) para a verificao. Como o comando mkfs, o fsck possui a opo -t para especificar o tipo do sistema de arquivos e um comando especfico para cada partio: 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 diretrios, examina dados de inodes, apaga arquivos, cria links, mostra o log de journalling ext3, etc. usado em casos extremos, geralmente aps o fsck ter falhado. dumpe2fs Mostra informaes de grupo de blocos e de superblocks. tune2fs Configura parmetros ajustveis em sistemas de arquivos ext2, como rtulo e limites de montagem antes de checar automaticamente. df Mostra o espao disponvel em cada dispositivo. A anlise feita diretamente no dispositivo. Por padro, mostra o espao em unidades de 1kb. A opo -h usa medidas apropriadas para tornar a sada mais inteligvel. du Mostra o espao ocupado. Sem argumentos, mostra o uso de cada diretrio no sistema. Um diretrio especfico pode ser indicado atravs da opo -s. A opaco -h usa medidas apropriadas para tornar a sada mais inteligvel. 42. Conceitos, Instalao e Administrao 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 tabulaes ou espaos: 1. Dispositivo 2. Ponto de montagem ( swap se for uma partio de swap) 3. Tipo de sistema de arquivos 4. Opes 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 partio raiz (/), deve ser 1. Se ausente, 0 presumido e a checagem no ser feita no boot. Para permitir que usurios comuns montem e desmontem dispositivos geralmente, o caso de dispositivos removveis 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 posio 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. Tambm usado para montar dispositivos manualmente: O comando do exemplo acima monta o dispositivo /dev/cdrom contendo mdia com sistema de arquivos iso9660 no diretrio /mnt/cdrom, com permisso somente-leitura (ro). Para montar manualmente um dispositivo que conste em /etc/fstab, basta fornecer para o comando mount a localizao do dispositivo ou do diretrio alvo. Para desmontar um dispositivo, o comando umount utilizado tendo como argumento o dispositivo ou o diretrio alvo a ser desmontado. Usado com a opcao -a, o comando mount montar todos os dispositivos em /etc/fstab (exceto os marcados com a opo noauto). Opes de montagem As opes de montagem so as mesmas para /etc/fstab e para mount diretamente. Se mais de uma opo for fornecida, devero ser separadas por vrgula. rw ou ro Gravvel ou somente leitura noauto No e montado automaticamente users O dispositivo poder ser montado e desmontado por usurios comuns 43. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 43 user Apenas quem montou ter permisso de desmontar owner As permisses do dispositivo montado se adequaro ao usurio que o montou usrquota Habilita o uso de quotas de disco para usurio grpquota Habilita o uso de quotas de disco para grupo remount Remonta um dispositivo montado com outras opes. til para remontar um dispositivo como somente leitura, por exemplo. 44. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 44 Unidade 6. Administrao de Cotas de Disco Introduo No Linux podemos definir quotas de espao em disco por usurio ou grupos de usurios. Estas quotas garantem um limite de espao em disco, se este limite for ultrapassado, o usurio ou grupo de usurios no ser capaz de criar novos arquivos at que os mesmos sejam apagados ou a quota seja redimensionada. Desta maneira, esse recurso se torna indispensvel para aplicaes que envolvem ambientes multiusurios, servidores etc. Antes de partimos para a prtica, necessrio 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 so especificados em blocos (blocks) de 1024 bytes cada: Hard Limit (Limite Fsico) por usurio: o mximo de espao em disco que um usurio pode ter na partio configurada com quotas de disco. Uma vez que este limite de quota ultrapassado, o usurio no poder gravar arquivos na partio. Soft Limit (Limite Temporrio) por usurio: Indica a quantidade mxima de espao temporria em disco numa partio. Quando este limite ultrapassado, o usurio informado que seu espao em disco est terminando e o Grace Period acionado. O usurio ainda poder gravar arquivos at o Grace Period terminar ou at que o Hard Limit seja alcanado. Hard Limit para grupo de usurios: o mximo de espao em disco que um grupo de usurios pode ter. Quando esse limite ultrapassado, nenhum usurio poder gravar arquivos em disco mesmo que tenham espao disponvel. Soft Limit para grupo de usurios: 45. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 45 Indica a quantidade mxima de espao temporria em disco numa partio. Quando este limite ultrapassado, o grupo de usurios informado que seu espao em disco est terminando e o Grace Period acionado. Os usurios ainda podero gravar arquivos at o Grace Period terminar ou at que o Hard Limit por grupo seja alcanado. Layout de Discos em Sistemas x86 Comandos para gerncia de quotas quota O comando quota usado para visualizar informaes sobre as quotas de espao em disco configuradas para um determinado usurio ou grupo de usurios. Opes: -u - Mostra a quota definida para um determinado usurio; -g - Mostra a quota definida para um determinado grupo de usurios; -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 superusurio pode visualizar as informaes de quotas de outros usurios, sendo que um usurio 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 prvio de todas as quotas de disco configuradas em um ou mais sistemas de arquivos. Opes: 46. Conceitos, Instalao e Administrao 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 usurios 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 diretrio /home: # quotaon -gv /home quotaoff O comando quotaoff desabilita o gerenciamento de quotas de usurios ou grupos em um ou mais sistemas de arquivos. Opes: -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 usurios 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, ms), via cron. 47. Conceitos, Instalao e Administrao 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, seno as informaes coletadas da base de dados ficaro em memria e os arquivos com a base de dados no sero atualizados. Opes: -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 usurio; -v - Mostra todas as informaes executadas pelo quotacheck; # quotaoff -a # quotacheck -avug # quotaon -a edquota O comando edquota um utilitrio usado somente pelo superusurio para edio de quotas de usurios e grupos. O editor vi o editor padro usado com o edquota para editar os arquivos quota.user e quota.group. Opes: -r - Edita quotas em dispositivos remotos, um bom exemplo so os dispositivos que usam NFS; -u - Edita as quotas de usurios; -g - Edita as quotas de grupos de usurios; -p user - Copia as configuraes de uma quota de usurio padro para criar outra; -F format-name - Edita as quotas para um formato especfico (vfsold, vfsv0, rpc e xfs); -f filesystem - Realiza operaes especificas para um nico sistema de arquivos; -T - Edita o tempo limite de uso de quotas de usurios/grupos quando o softlimit excedido; -t - Edita o perodo de graa para os Soft Limits para cada sistema de arquivos; Observe a edio da quota do usurio 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. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 48 Agora, vamos mudar o perodo de soft limit de todos os usurios: # 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 perodo de graa para espao em disco est configurado para 5 dias e 3 dias para armazenamento de arquivos. repquota O comando repquota gera um relatrio do uso das quotas de discos de usurios e grupos de um determinado dispositivo. Opes: -a - Exibe um relatrio de todas as quotas dos sistemas de arquivos que esto contidos no arquivo /etc/mtab; -v - Cria um cabealho descritivo para o relatrio de quotas; -u - Cria um relatrio de utilizao por usurio; -g - Cria um relatrio de utilizao por grupo; -c - Faz cache das entradas para relatrio e traduz os UIDs/GIDs para nomes em uma grande amostra de usurios. um bom procedimento quando usado com o arquivo /etc/passwd; -C - Faz cach das entradas para relatrio individualmente. um bom procedimento quando os usurios esto armazenados em um banco de dados; -t - Trunca o nome de usurios ou grupos com mais de 9 caracteres; -n - No traduz UIDs/GIDs para nomes; -i - Ignora os pontos de montagem montados pelo automounter; -s - Testa para relatar o espao e o nmero de inodes usados; -F - Exibe um relatrio de quotas para um determinado formato. Esses formatos podem ser: vfsold, vfsv0 e xfs; Criando e gerenciando quotas Nesse tpico, abordaremos todos os procedimentos para a criao e gerenciamento de quotas. 49. Conceitos, Instalao e Administrao 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 permisso de acesso somente para o root no diretrio /home: # touch /home/quota.user /home/quota.group # chmod 600 /home/quota.user /home/quota.group Estes dois arquivos so os bancos de dados de quotas de usurios e grupos. Nesse exemplo, estamos utilizando quota verso-1, caso algum esteja usando a verso-2, os nomes dos arquivos devem ser aquota.user e aquota.group. Agora devemos reiniciar o sistema para que as configuraes de quota entrem em vigor. # shutdown -r now Aps a reinicializao do sistema, use o comando quotacheck para inicializar os bancos de dados: # quotacheck -avug Adicione as quotas de usurios: # 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 usurios e grupos podero 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. Conceitos, Instalao e Administrao 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 diretrio que o sistema utiliza para inicializar os servios automaticamente, normalmente o diretrio /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 diretrio /etc/cron.weekly: # vi checaquotas.sh #!/bin/bash /usr/sbin/quotacheck -avug No esquea de dar permisso de execuo ao arquivo: # chmod 760 checaquotas.sh Execute o comando "repquota -v /home" para visualizar o relatrio de quotas: # repquota -v /home 51. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 51 Estrutura de Diretrios Um sistema de arquivos a coleo de arquivos e a hierarquia de diretrios em um sistema. Primeiro, mude para o diretrio root digitando o comando cd / [root@bwpx01 ~]# cd / Para mostrar uma lista do seu contedo 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 "binrios", ou executveis. nesse diretrio 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. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 52 Esses so os arquivos que contm programas. Quando voc executa cp, est executando o programa /bin/cp. /dev Os arquivos em /dev so conhecidos como controladores de dispositivo (device drivers) e so usados para acessar os dispositivos ou recursos do sistema, como discos rgidos, modems, memria, etc. Por exemplo, da mesma forma que voc pode lear dados de um arquivo, pode tambm ler da entrada do mouse, lendo /dev/mouse. Os arquivos que comeam com fd so 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 especficos 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 no tenha algum dos dispositivos listados, ter entradas em dev de qualquer forma. /dev/console faz referncia ao console do sistema, quer dizer, ao monitor conectado em seu sistema. Os dispositivos /dev/ttyS e /dev/cua so usados para acessar as portas seriais. Por exemplo, /dev/ttyS0 faz referncia a "COM1", sob o MS-DOS. Os dispositivos /dev/cua so "callout" e so usados em conjunto com um modem. Os nomes dos dispositivos que comeam por hd acessam a discos rgidos. /dev/hda se refere a todo o primeiro disco, enquanto que /dev/hda1 se refere a primeira partio em /dev/hda. Os nomes de dispositivo que comenam com sd so dispositivos SCSI. Se voc tem um disco rgido SCSI, no lugar de acess-lo com /dev/hda, vai acess-lo com /dev/sda. As fitas SCSI so acessadas via dispositivos st e os CD-ROM SCSI via sr. Os nomes que comenam 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 sada para a tela de um comando, pode enviar a sada para /dev/null. Falaremos mais sobre isto depois. Os nomes que comeam por /dev/tty se referem a "consoles virtuais" de seu sistema (acessveis 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 comeam com /dev/pty so "pseudoterminais". So usados para proporcionar um "terminal" a sesses remotas. Por exemplo, se sua mquina est em uma rede, o telnet de entrada usar um dos dispositivos /dev/pty. /etc /etc contm uma srie de arquivos de configurao do sistema. Isto inclui o /etc/passwd (a base de dados de usurios), o /etc/rc (instrues de inicializao do sistema), etc. /sbin /sbin usado para armazenar programas esenciis do sistema, usados pelo administrador do sistema. 53. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 53 /home /home contm os diretrios "home" dos usurios. Por exemplo, /home/larry o diretrio do usurio "larry". Em um sistema recm instalado, esse diretrio estar vazio. /lib /lib contm as imagens das bibliotecas compartilhadas. Esses arquivos contm cdigo que muitos programas compartilham. Ao invs de cada programa ter uma cpia prpria das funes compartilhadas, elas so guardadas em um lugar comum, o /lib. Isso faz com que os programas executveis sejam menores e reduzam o espao usado em disco. /proc /proc um "sistema de arquivos virtual". Os arquivos que esto no /proc residem verdadeiramente na memria, e no no disco. Esses arquivos se referem a vrios processos que rodam no sistema e permitem obter informao sobre programas e processos que esto rodando num dado momento. /tmp Muitos programas tm necessidade de gerar alguma informao temporria e de guardar essa informao em um arquivo temporrio. O lugar para esses arquivos o /tmp. /usr /usr um diretrio muito importante. Contm uma srie de subdiretrios que por sua vez contm alguns dos mais importantes e teis programas e arquivos de configurao usados no sistema. Os vrios diretrios descritos acima so essenciais para o sistema operar, mas a maioria dos itens no /usr so opcionais. Entretanto, so 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 contm a maioria dos pacotes grandes de software e os arquivos de configurao que os acompanham. /usr/X11R6 /usr/X11R6 contm o sistema X Window se voc o instalou el sistema X Window se voc o instalou. O sistema X Window um ambiente grfico poderoso que proporciona um grande nmero de ferramentas e programas grficos, 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 diretrio /usr/X11R6 contm todos os executveis do X Window, arquivos de configurao e suporte. /usr/bin /usr/bin contm a maioria dos programas executveis no encontrados em outras partes, como no /bin. /usr/etc Como o /etc, contm diferentes arquivos de configurao e programas do sistema, /usr/etc contm inclusive mais que o anterior. Em geral, os arquivos que se encontram em /usr/etc no so essenciais para o sistema, diferentemente dos que se encontram no /etc. 54. Conceitos, Instalao e Administrao de Sistemas Linux 2011 Alfamidia Prow 54 /usr/include /usr/include contm 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 so usados quando programando no nvel do sistema UNIX. Se voc est familiarizado com programao C, encontrar arquivos como stdio.h, o qual declara funes como printf(). /usr/g++-include /usr/g++-include contm arquivos de incluso para o computador C++ (muito parecido ao /usr/include). /usr/lib /usr/lib contm 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 cdigo real da biblioteca. Alm disso, vrios programas armazenam arquivos de configurao no /usr/lib. /usr/local /usr/local muito parecido ao /usr. Ele contm programas e arquivos no essenciais ao sistema, mas que tornam o sistema mais divertido e excitante. Em geral, os programas que se encontram em /usr/local so especficos do seu sistema, isto , o diretrio /ussr/local difere bastante entre os sistemas UNIX. Aqui encontrar grandes programas, como o TeX (sistema de formatao de documentos) e Emacs (editor grande e poderoso), se os instalar. /usr/man Esse diretrio contm as pginas de manual. H dois subdiretrios para cada seo de pgina de manual (use o comando "man man" para detalhes). Por exemplo, /usr/man/man1 contm os fontes (isto , o original no formatado) para as pginas de manual na seo 1, e /usr/man/cat1 contm as pginas de manual f