RESUMO LPI 1 - PROVA 101Sumário Tópico 101: Arquitetura de Sistema .......................................................................................................................... 1 101.1 Determinar e configurar o Hardware - Peso 2 .......................................................................................................... 1 101.2 Boot the system - Peso 3 .......................................................................................................................................... 7 101.3 Alterar o RunLevel e o processo de Shutdown e Restart - Peso 2 ............................................................................ 8 Tópico 102: Instalação do Linux e Gerenciamento de Pacote..................................................................................... 10 102.1 – Projeto de layout de disco rígido - Peso 2 ........................................................................................................... 10 102.2 – Instalar um Gerenciador de Boot - Peso 2 ........................................................................................................... 14 102.3 – Gerenciar Bibliotecas Compartilhadas - Peso 1 ................................................................................................... 16 102.4 – Gerenciamento de pacotes no debian - Peso 3 ................................................................................................... 17 102.5 – Gerenciamento de pacotes com RPM e YUM - Peso 3 ....................................................................................... 20 Tópico 103: GNU e Comandos Unix .......................................................................................................................... 22 103.1 – Trabalhar com linhas de comando - Peso 4 ......................................................................................................... 22 103.2 – Processar texto utilizando filtros - Peso 3 ............................................................................................................ 26 103.3 – Realizar Gerenciamento Básico de Arquivos - Peso 4 .......................................................................................... 30 103.4 – Usar Streams, Pipes e Redirecionamento - Peso 4 ............................................................................................. 33 103.5 – Criar, monitor e matar processos - Peso 4 ........................................................................................................... 34 103.6 – Modificar as Prioridades de Execução de Processo - Peso 2 ............................................................................... 37 103.7 – Buscar em Arquivos de Texto Usando Expressões Regulares - Peso 2 ................................................................ 38 103.8 – Edição básica de arquivo utilizando o vi - Peso 3 ................................................................................................ 40 Tópico 104: GNU e Comandos Unix .......................................................................................................................... 41 104.1 – Dispositivos, Sistemas de Arquivos Linux e o Filesytem Hierarchy Standard - Peso 2 ........................................ 41 104.2 – Manter a Integridade dos Sistemas de Arquivos - Peso 2 ................................................................................... 44 104.3 – Controlar a Montagem e a Desmontagem do Sistema de Arquivos - Peso 3 ...................................................... 46 104.4 – Definir e Visualizar Cotas de Disco - Peso 1 ......................................................................................................... 48 104.5 – Usar Permissões de Arquivos para Controlar o Acesso aos Arquivos - Peso 3 .................................................... 51 104.6 – Criar e Modificar Links Físicos e Simbólicos - Peso 2 ........................................................................................... 54 104.7 – Encontrar Arquivos de Sistema e Colocar Arquivos no Local Correto - Peso 2 ................................................... 55 1 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Tópico 101: Arquitetura de Sistema 101.1 Determinar e configurar o Hardware - Peso 2 ACPI A interface avançada de configuração e energia (ACPI - Advanced Configuration and Power Interface) é o padrão atual para o modo como o BIOS funciona. Algumas versões de BIOS baseadas em ACPI não são compatíveis com o padrão. Quanto mais recente for a versão do BIOS de ACPI, maiores serão as chances de compatibilidade. Um BIOS baseado em ACPI que não seja compatível com o padrão ACPI talvez não forneça suporte a comunicação viável entre o sistema operacional (ou a instalação) e o hardware. Se não houver suporte para comunicação viável, a instalação irá parar e exibir instruções sobre como contatar o fabricante do hardware e como realizar outros procedimentos para solucionar o problema. Desativar essa opção na bios pode aumentar a chance com o que os dispositivos sejam reconhecidos durante o boot. APM (Advanced Power Management) A sua principal função é controlar diversos componentes do sistema de modo a ativar modos de poupança de energia quando não estão a ser utilizados. Recentemente esta tecnologia tem vindo a ser substituída pela norma ACPI, que não se limita à gestão do consumo de energia. Alguns computadores mais recentes já não são compatíveis com APM. IRQs sinais elétricos enviados para o microprocessador do PC, instruindo-o a interromper sua atividade atual e responder a um evento assíncrono. Endereços de E/S são localizados no mapa de memória do microprocessador. Este escreve nos dispositivos da mesma forma que escreve na memória. DMA permite que alguns dispositivos acessem diretamente a memória, através de um canal DMA, liberando o microprocessador para outras tarefas. Dispositivo Endereço de E/S IRQ DMA ttyS0 (Com1) 3f8 4 NA ttyS1 (Com2) 2f8 3 NA ttyS3 (Com3) 3e8 4 NA ttyS4 (Com4) 2e8 3 NA lp0 (LPT1) 378-37f 7 NA lp1 (LPT2) 278-27f 5 NA fd0,fd1 (disquete 1 e 2) 3f0-3f7 6 2 fd2,fd3 (disquete 3 e 4) 370-377 10 3 ttyS0 a ttyS3 portas seriais COM1 A COM4 lp0 e lp1 porta paralela (LPT) 2 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Modems Dispositivo serial. Em um PC normal com as duas portas seriais embutidas (ttyS0 e ttyS1), o modem interno aparecerá como uma terceira porta (ttyS2). Winmodems são modems elaborados para funcionar especificamente com o Windows, dependem da CPU e de um driver específico para lidar com parte do processamento das comunicações, não tendo, portanto, todas as capacidades de hardware dos modems padrões. Em questão de instalação, alertar para que, se o modem estiver compartilhando uma interrupção com uma outra porta serial, essa porta não poderá ser usada ao mesmo tempo em que o modem. Dispositivos de Som -O Kernel já possui drivers nativos (AC97 e SoundBlaster), caso a placa não seja reconhecida, utilizar uma ferramenta como o sndconfig, ou para hardwares ISA, isapnp. O driver de áudio é um módulo do kernel que tem as suas configurações armazenadas em /etc/modules.conf . sndconfig [opções] configura a placa de som para o kernel do Linux. Vasculha por dispositivos PnP. Se nenhum for encontrado, pede que selecione a placa a propriedade e as configurações de E/S --help exibe informações de ajuda e finaliza --noprobe Instrui o sndconfig a não procurar por dispositivos PnP. --noautoconfig Instrui o sndconfig a não auto-configurar nenhum dispositivo PnP. isapnp [opções] conffile usada para configurar dispositivos PnP ISA. O arquivo de configuração (conffile) pode ser ou um arquivo de texto ou um hiffen(-), o que indica que o arquivo de configuração deve ser lido a partir de um STDIN. -h exibe informações de ajuda e finaliza -v informa a versão do isapnptools. O kernel se comunica com os dispositivos representados por um arquivo correspondente dentro do sistema de arquivos. Exceções a esta regra são as placas de rede. O local desses arquivos é o /dev. O diretório /dev consiste de um filesystem especial e pode ser de dois tipos: devfs é o mais antigo tendo sido substituído pelo udev a partir do kernel 2.6.12. No devfs os arquivos de dispositivos são criados uma única vez, dessa forma, o diretório /dev contém os dispositivos para todos os hardwares suportados pelo Linux, não importando se eles estão disponíveis na máquina ou não. udev - os dispositivos são criados de acordo com a disponibilidade no sistema. Dessa forma, o diretório contém apenas os arquivos de dispositivo para os hardwares presentes na máquina. Método de configuração em /dev/udev/ Tipos de Dispositivo: bloco utilizados para transferência de dados para hardwares de armazenamento de dados como discos rígidos; caracter conhecido também como "unbuffered" é utilizado para comunicação com hardwares como mouse e terminais; 3 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] FIFO (PIPE)conhecido também como pipe nomeado (named pipe) é um dispositivo utilizado para realizar a comunicação entre dois processos independentes; Socket um dispositivo do tipo socket é utilizado para criar um ponto de comunicação. Quando usamos dispositivos seguindo padrões como /dev/hda3 ou /dev/sda5, estamos especificando um dispositivo que pode vir a receber outro nome se houver alguma modificação no disco, isso implica no sistema não mais encontrar a partição especificada pois seu nome foi modificado. Uma alternativa inteligente para isso é utilizar o método UUID - Universally Unique Identifier ou utilizar o método de Lables. Para descobrirmos o UUID de nossas partições podemos utilizar o comando: blkid. Módulos built-in estão dentro do kernel, sendo carregados quando o computador é ligado. Isso é independente se tem o hardware ou não. Módulos não built-in ficam fora do kernel sendo carregados manualmente, ou se colocados em um script para atenderem um hardware especifico. A vantagem de se ter os módulos dentro do kernel é que o torna compatível com vários hardwares diferentes, porém, ele perde um pouco de desempenho, pois estará “inchado” com vários módulos que não estará usando. Já a vantagem em se usar modulos externos, é que podem ser desativados quando não estiverem sendo usados, poupando recursos da maquina. #lspci lista todos os dispositivos pci #lsmod (/proc/modules) mostra os módulos carregados pelo kernel. Alternativa ao cat /proc/modules. #modprobe nome_do_modulo ativa ou desativa o módulo. Resolve dependências. #modprobe –l exibe os módulos que estão compilados. Os módulos ficam localizados em /lib/modules/$(uname -r) #modprobe –r nome_do_modulo desativa o módulo #insmod módulo levanta o módulo sem dependência #rmmod módulo derruba o módulo sem dependência #modinfo modulo exibe informações sobre o módulo SYSFS O sistema de arquivos sysfs é considerado uma fusão dos sistemas de arquivos proc, devfs, e devpty. O sistema de arquivos sysfs enumera os dispositivos e barramentos conectados a um sistema em uma hierarquia que pode ser acessada do “espaço de usuário” ( ou seja, sem ser o root ). O sysfs é projetado para lidar com opções específicas de dispositivos e drivers que anteriormente eram mantidas no /proc/, e trazia a inclusão dinâmica de dispositivos oferecida anterioemente pelo devfs. DBUS É um sistema de comunicação entre processos numa mesma máquina. Todo sistema operacional que se preze dispõe de recursos de IPC (inter-process comunication), contudo D-Bus foi criado visando 4 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] facilitar e estabelecer um padrão para a comunicação entre aplicações do desktop. Diferente de outros métodos de IPC ou das conexões TCP, que transportam dados como fluxos indistintos de bits, D-Bus transporta mensagens contendo dados de tipos bem definidos. UDEV é um gerenciador dinâmico de dispositivos para o Linux 2.6. A sua função principal é o gerenciamentos de nós de dispositivo no diretório /dev. Ele é o sucessor do DEVFS e do hotplug. Ele cria ou remove nós de dispositivo que estão presentes no diretório /dev HALD (hardware abstraction layer daemon ) é um serviço que gerencia o banco de dados de dispositivos que estão conectados ao sistema em tempo real. o serviço utiliza o DBUS para operar os dispositivos. Por exemplo, quando você conecta o pendrive no micro, o dbus inicia o disposivo e já monta ele automaticamente para uso. SCSI interface para comunicação entre dispositivos gerais e dispositivos de armazenamento de blocos (Drivers de fita, HD, CD-ROMS,etc). É mais flexível e rápido do que a interface IDE(ATA), porém mais cara. Define um qualidade bus ao qual múltiplos dispositivos são conectados por meio de um cabo de alta ou uma série de cabos conectados aos dispositivos em série.. Um dos dispositivos na cadeia é o controlador SCSI. O controlador e cada um dos dispositivos do bus recebe um endereço SCSI permanente, também conhecido por SCSI ID, que define cada dispositivo singular no bus. O controlador pode acessar os dispositivos individualmente usando o SCSI ID. Tipos de SCSI SCSI-1 8 bits, 5 MBps, conector Centronics de 50 pinos SCSI 2 8 bits, 5 MBps, conector Micro-D de 50 pinos. Intercambiável com SCSI-1. Adequada pra drivers de fita de baixo para médio desempenho, mas lenta para hds. Wide SCSI 16bits, 10 MBps, conector Micro-D de 68 pinos. Usa bus mais largo para atingir melhores velocidade. Fast SCSI 8 bits, 10 MBps, conector Micro-D de 50 pinos. A velocidade mais rápida é atingida dobrando-se a taxa de clock original. Fast Wide SCSI 16 bits, 20 MBps, conector Micro-D de 68 pinos. Usa taxa de clock alto e bus mais largo. Ultra SCSI 8 bits, 20 MBps, conector Micro-D de 50 pinos. Modificações adicionais ao clocking vem gerando um desempenho ainda melhor. Ultra Wide SCSI (SCSI-3)16bits, 40 MBps Ultra 2 8bits, 40Mbps Wide Ultra2 16 bits, 80 MBps SCSI IDs Os Buses SCSI de 8 bits tem três linhas de endereço, e portanto, acomodan 2³=8 dispositivos, incluindo o controlador. Buses de 16 Bits, há quatro linhas, resultando em 2 4 =16 dispositivos possíveis. Isso resulta em 7 5 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] ou 15 dispositivos. Os endereços vão de 0 a 7 para buses de 8 bits, e de 0 a 15 para buses de 16 bits. O controlador comumente ocupa o endereço 7 para ambos os tipos de buses. Número de unidades lógicas SCSI Dispositivos SCSI, como controladores RAID aparecem para o controlador SCSI como um drive de disco com um único endereço SCSI. Para que o controlador possa acessar múltiplos dispositivos lógicos, através de um único endereço SCSI, um número de unidade lógica (logical unit number – LUN) é retornado ao controlador. Arquivos de dispositivos de disco SCSI no Linux Hd’s IDE hda master ide1 hda1 partição 1 no disco hda hda2 particao 2 no disco hda hdb slave ide1 hdc master ide2 hdd slave ide2 Hd’s SCSI/SATA/USB sda (disco 1), sdb (disco 2)........ sda1(partição 1 no disco sda), sda2(partição 2 no disco sda) Dispositivo Endereço SCSI LUN Dispositivo Linux Disco 0 0 - /dev/sda Disco 1 1 - /dev/sdb Drive de Fita 5 - /dev/st0 Dispositivo 0 do controlador RAID 6 0 /dev/sdc Dispositivo 1 do controlador RAID 6 1 /dev/sdd Controlador 7 - - Terminação Em um bus SCSI as extremidades possuem terminadores, que são simples dispositivos elétricos que condicionam o sinal e reduzem o sinal elétrico no bus. A terminação pode ser problemática quando, em um bus de 16 bits, misturamos dispositivos de 8 e 16 bits e utilizamos um terminador de 8 bits, deixando metade do bus sem terminação. 6 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] É possível utilizar o barramento SCSI em um PC, necessitando de uma placa de expansão que contenha a bios para tal atividade. Endereço do controlador SCSI geralmente é o 7, mas pode usar qualquer endereço. Dispositivo de boot padrão geralmente é definido como o endereço 0 para um HD. Terminação onboard dependendo do uso do controlador( bus externo, interno ou ambos) você pode optar por ativar a terminação do controlador. Velocidade do bus SCSI dispositivos que trabalham em altas velocidades podem ser configurados manualmente para rodarem a velocidades mais baixas. Dispositivos Plug and Play Dispositivos ISA por exemplo, requerem configuração manual. As metodologias de configuração de dispositivos se dividem em 3 eras gerais: A era dos jumpers A configuração é feita através de jumpers na MB. Desvantagens: requer acesso interno ao PC e documentação de configuração dos jumpers. Vantagens: utiliza apenas hadrware e as configurações são óbvias ao observador; A era não-volátil utilizam softwares para configurar dispositivo. Vantagem: não requer acesso interno ao PC. Desvantagem: os fabricantes precisam criar programas (em MS-DOS). Utilizar essas ferramentas para uso no Linux poderá requerer uma máquina MS-DOS para fornecer a conf. Inicial. Era moderna Utilizam dispositivos PCI que se configuram automaticamente. Usando o sistema de arquivos /proc repositório de status do kernel. Os arquivos de /proc, interrupts, dma e ioports, lhe mostram como os recursos do sistema estão sendo utilizados. /proc/interrupts Informa quais interrupções de hardware estão em uso. /proc/dma informa quais canais de acesso direto à memória (Direct Memory Access) estão sendo utilizados atualmente. /proc/ioports Informa quais portas de entrada e saída estão em uso no momento. /proc/cmdline passa comandos para o kernel. /proc/modules módulos ativos do sistema. #lsmod -l Os dispositivos USB são conectados a um host em uma árvore, através de um número qualquer de dispositivos hub. lsusb –t usado para ver como os dispositivos se encontram conectados fisicamente a um sistema Linux. Controladores USB Interface de Controlador Host Aberta (Open Host Controller Interface, ou OHCI) especificação USB 1.1, capaz de transmitir 12 Mbps; 7 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Interface de Controlador Host Universal (Universal Host Controller Interface, ou UHCI) especificação USB 1.1, capaz de transmitir 12 Mbps; Interface de Controlador Host Aprimorada (Enhanced Host Controller Interface, ou EHCI) especificação USB 2.0, capaz de transmitir 480 Mbps; Drivers USB O suporte a USB foi adicionado ao Kernel 2.3.x depois portado retroativamente para 2.2.x sem o suporte aos dispositivos de armazenamento em massa USB. Não há suporte ao USB no kernel 2.0x e anteriores. Os drivers recaem em 3 categorias: Drivers de controlador host incluem usb-ohci.o (driver OHCI), usb-uhci.o (driver UHCI), uhci.o (antigo driver UHCI alternative) e ehci-hcd.o(driver EHCI) Drivers de classe incluem hid.o (dispositivo de interface humana), usb-storage.o (armazenamento em massa), acm.o (driver de comunicação Automated Control Modem [ACM], que lida com modems que emulam a interface de comando AT padrão para modems seriais), printer., e áudio.o. 101.2 Boot the system - Peso 3 BIOS Basic input/output system. Fornece interface de baixo nível para que o usuário possa configurar o hardware. Algumas configurações da BIOS se referem a interrupções (IRQs), para os endereços de E/S e para canais de Acesso Direto a Memória (DMA). dmesg mostra informações a respeito do Kernel, como inicialização de módulos, montagens, suporte de dispositivos e sistemas de arquivos. Exibe todos os hardwares encontrados e informações do boot. Alimentado pelo /var/log/messages 8 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] init processo pai de todos os outros processos da máquina. É o primeiro processo inicializado após o boot e é o responsável por inicializar os outros processos. Possui pid 1. BootLoader é o responsável por inicializar o kernel no momento de boot. Para configurar os parâmetros existem duas maneiras, uma através do arquivo do bootloader (/boot/grub/menu.lst) e outra através de parâmetros na hora do boot (tecla c). Ex: fazer boot em uma outra partição não padrão grub> linux root=/dev/hda9 /etc/modules.conf Arquivo de configuração dos módulos do kernel, lido no momento do boot. Geralmente são configurados endereços de E/S, interrupção e canal de DMA. /var/log/messages alimentado pelo syslog. Contém informações atualizadas sobre o status do hardware e do sistema. /etc/issue arquivo exibido antes do usuário efetuar o login. /etc/motd arquivo exibido após o usuário efetuar o login. 101.3 Alterar o RunLevel e o processo de Shutdown e Restart - Peso 2 O boot loader inicia o carregamento do kernel na memória RAM e passa o controle do sistema para ele. Uma vez que o kernel já esteja controlando a máquina é iniciada a fase de subir os serviços necessários para a utilização do sistema. Este último estágio é o que trataremos agora. Existem dois estilos de init: o BSD e o System V. Em um sistema padrão System V, haverá níveis de inicialização (runlevels), sendo eles: Nível 0: desliga o sistema; 9 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Nível 1 ou S ou s: carrega os serviços mínimos essenciais ao sistema. Nesse modo, os serviços de rede tais como servidores web e compartilhamento de arquivos não são iniciados. É usado para a manutenção do sistema; Níveis 2 a 5: multiusuário; Nível 6: reinicia o sistema; Quando um sistema Linux se inicializa, o processo init é responsável por levantar o sistema ao nível de execução padrão, que geralmente é 2,3 ou 5, dependendo da distribuição e o do uso previsto para a máquina. /etc/inittab configura o runlevel padrão do sistema. A linha id: X :initdefault: especifica o runlevel padrão. #runlevel exibe o runlevel padrão do sistema. #init -q faz com o que as alterações no /etc/inittab sejam aplicadas imediatamente sem precisar reiniciar a máquina. Debian - 2 0 -Halt (Desliga a máquina) 1 -Single, ou seja monousuário - é o root e mais ninguém aqui! 2 - 5 - O Debian do nível 2 ao 5 trabalha com multiusuário e não faz distinção de modo texto ou gráfico. Você tem que definir o que realmente quer que ele inicie. O runlevel padrão do Debian é 2. 6- Reboot (Reinicia o sistema) RedHat - 5 0 - Halt (Desliga a máquina) 1 - Single, ou seja monousuário - é o root e mais ninguém nesse nível 2 - Multiusuário sem o compartilhamento de arquivos NFS (Modo de segurança) 3 - Multiusuário com rede e modo texto (modo de segurança com rede) 4 - Não usado, porém pode ser personalizado pelo o usuário 5 - Multiusuário completo com parte gráfica (padrão) 6 - Reboot (Reinicia o sistema) rc.sysinit e /etc/init.d/rcS script iniciado por init no momento do boot. Cuida de algumas tarefas essenciais para preparar o sistema para o uso, como montar os sistemas de arquivo. /etc/init.d contém todos scripts dos serviços (daemons) do sistema; /etc/rc.local Executa após todos os scripts de inicialização terem sido iniciados. Contém customizações locais que afetam a inicialização do sistema e fornecem uma alternativa à modificação dos outros arquivos de init. Mais seguro alterar o rc.local. 10 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] /etc/rcS.d/ diretório que guarda links dos scripts essenciais a inicialização. /etc/rc1.d a /etc/rc6.d guardam links scripts de inicialização dos runleves de 1 a 6. Os scripts seguem o padrão : SXXnome e KXXnome Que significam: XX - Número que especifica a ordem de iniciar ou derrubar S - Iniciar o serviço K - Não iniciar telinit é simplesmente um link para init, e os dois podem ser usados intercambiavelmente. shutdown [opções] hora [mensagem_de_aviso] finaliza o sistema de forma segura e organizada. O argumento hora pode ser uma hora do dia, no formato hh:mm, ou pode ser +n , onde n é um número de minutos a se esperar. Hora também pode ser “now”. Se a hora especificada estiver a mais de 15 minutos, shutdown esperará até que faltem 15 minutos antes da finalização para emitir o seu primeiro anúncio ao usuários (mensagem_de_aviso). -f (fast) boot rápido; pula as verificações do sistema de arquivos no próximo boot. -h (halt) desliga o sistema após a finalização -k não faz a finalização, mas envia as mensagens de aviso. -r (reboot) faz reboot após a finalização. -F (FORCE) força as verificações do sistema no próximo boot do sistema. -c (cancel) cancela o shutdown programado systemd alternativa ao SystemV. upstart sistema de init utilizado pelo Ubuntu. Ubuntu não utiliza SystemV. #halt / #init 0 / telinit 0 / shutdown -h now “Seu sistema vai desligar” desliga a máquina. Tópico 102: Instalação do Linux e Gerenciamento de Pacote 102.1 – Projeto de layout de disco rígido - Peso 2 Mantenha o sistema de arquivos root (/) simples, pois é menos provável de corromper; Separe uma pequena partição /boot abaixo do cilindo 1024 para os kernels instalados que serão usados no boot do sistema; Separe /var. Certifique de que ele será grande o suficiente para guardar os logs e o esquema de rotação deles; Separe /tmp. Deverá ser grande o suficiente para acomodar os arquivos temporários dos programas; 11 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Separe /usr e faça-o grande o suficiente para acomodar a criação do kernel. Torná-lo um diretório separado permite compartilhamento somente leitura via NFS; Separe /home para máquinas com vários usuários ou para qualquer máquina em que você não queira afetar os dados durante a distribuição de upgrades de software. Para melhorar a performance, coloque essa partição em um disco espelhado. Define o swap com pelo menos o dobro de RAM. Estrutura de Diretórios O Sistema de Arquivos root (/) Deve conter utilitários e arquivos suficientes para dar boot Deve conter utilitários para que o administrador repare ou restaure o sistema Deve ser relativamente pequeno Softwares não devem criar arquivos nem diretórios no sistema de arquivos root Diretórios Essenciais (devem ficar no mesmo diretório que /) /bin (binaries) contêm binários essenciais ao sistema /dev (devices) arquivos de disposistivos /etc (Editable Text Configuration) informações de configurações únicas para o sistema /lib (library) bibliotecas compartilhadas essenciais à inicialização do S.O. /mnt (mount) montagem temporárias do sistema /root diretório inicial padrão do root. /sbin (super binaries) contêm binários usados para administração. Só root tem acesso a eles. Diretórios Não-Essenciais: /boot arquivos essenciais para o carregador de boot. /home arquivos pessoais dos usuários /opt arquivos de programas não incluídos no pacote do sistema operacional. Browsers, Players /tmp arquivos temporários /usr (unix shared resources) arquivos de programas não essenciais para procedimentos de emergência. Contém dados somente-leitura e, freqüentemente, é montado localmente, e compartilhado via NFS de somente-leitura. /var (variable) arquivos de logs /sys contém os módulos de dispositivos usb O Sistema de Arquivos /usr - Unix System Resources /usr/X11R6contém arquivos para o XFree86 12 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] /usr/bin principal localização para comandos de usuário que não sejam considerados essenciais para manutenção de emergência do sistema. /usr/include localização padrão para arquivos include ou header, usada em C, C++ /usr/lib biliotecas compartilhadas não essenciais ao sistema. /usr/local nível mais alto de outra hierarquia de arquivos binários, para uso do administrador do sistema. Contêm diretórios parecidos com os do /usr. /usr/sbin principal localização para comandos de super-usuários que não sejam considerados essenciais para manutenção de emergência do sistema. /usr/share contém uma hierarquia de arquivos de dados que são independentes, e portanto, podem ser compartilhados entre, várias arquiteturas de hardware e versões de S.O. /usr/srcdiretório opcional. Contém códigos fontes. O sistema de Arquivos Var /var/account dados de contabilidade de processo /var/cache armazenamento temporário de dados intermediários, como por exemplo, resultado de computações extensas. /var/crash dumps de informações sobre quedas de sistema. /var/games armazena informações de estado, dados de pontuações do usuários e outros itens transitórios /var/lockarquivos de lock, usados pelos aplicativos para indicar a sua existência para outros processos. /var/log repositório principal de logs do sistema. /var/mail caixa de correio do sistema, com arquivos de mail para cada usuário /var/opt localidade para arquivos temporários de programas armazenados em /opt /var/run arquivos que descrevem o estado do sistema /var/spool informações que são enfileiradas para processamento. /var/state armazena informações que ajudem os aplicativos a preservar o estado ao longo de múltiplas chamadas ou instancias. /var/tmp arquivo temporários, mas que sobrevivem após vários boots do sistema. /var/yp contém os arquivos de banco de dados do NIS (network information service). LVM (Logical Volume Manager) é um gerenciador de discos que trabalha com camadas lógicas, que podem ser redimensionadas, aumentando ou diminuindo sem prejudicar o funcionamento do sistema. Phisical Volume (PV) são as partições ou discos que serão usados para compor um disco no formato LVM, eles servem para dar o UUID, que é número de identificação de cada disco. Volume Group (VG) é um agrupamento de PV’s. Logical Volume (LV) Os LVs são os pedaços criados a partir de um VG. Podemos classificá-los como sendo as partições de um VG e o VG sendo o disco. Eles são as partes que podem ser acessadas pelos usuários e que serão associados a um ponto de montagem específico. Criando uma LVM no Linux 13 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Criando o Phisical Volume # aptitude install mdadm (já está instalado) # mdadm --create --verbose /dev/md1 --level=5 --raid-devices=4 /dev/sdc /dev/sdd /dev/sde /dev/sdf # vi /etc/mdadm/mdadm.conf DEVICE /dev/sdc /dev/sdd /dev/sde /dev/sdf ARRAY /dev/md1 devices=/dev/sdc,/dev/sdd,/dev/sde,/dev/sdf # aptitude install lvm2 # pvcreate /dev/md1 cria o volume físico composto de 4 partições # pvscan Criando o Volume Group # vgcreate vg_home /dev/md1 cria o grupo de volume # vgchange -a y # vgdisplay -v vg_home Criando os Logical Volume # lvcreate -L 8g -n lv_home vg_home # vgscan # lvdisplay -v /dev/vg_home/lv_home # mkfs.ext4 /dev/vg_home/lv_home # cd /home # mv * /root # mount -t ext4 /dev/vg_home/lv_home /home # mount # vim /etc/fstab Acrescente a linha em /etc/fstab: /dev/vg_home/lv_home /home ext4 defaults 0 0 Aumentando a LVM # umount /home # lvextend -L +4g /dev/vg_home/lv_home # e2fsck -f /dev/vg_home/lv_home # resize2fs /dev/vg_home/lv_home # mount /home # df –h Reduzindo a LVM # umount /home # e2fsck -f /dev/vg_home/lv_home # resize2fs /dev/vg_home/lv_home 6g 14 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] # lvreduce -L 6g /dev/vg_home/lv_home # resize2fs /dev/vg_home/lv_home # mount /home # df -h 102.2 – Instalar um Gerenciador de Boot - Peso 2 Processo de inicialização: Rodar o carregador de boot a partir do dispositivo de boot Encontrar o Kernel selecionado e carregá-lo na memória; Iniciar o Kernel do Linux e iniciar os processos o carregador de boot inicia o kernel especificado. Neste ponto a tarefa do carregador está completa e o hardware já foi colocado sob o controle do kernel sendo executado, o qual entra em ação e começa a executar processos. GRUB Carregador de boot bastante flexível, possibilitando boot de kernels arbitrários e vários sistemas operacionais diferentes. Nomeação de dispositivos no GRUB (xdn[,m]) o xd será fd (floppy disk) ou hd(hard disk). O n refere-se ao número de discos enxergados pela BIOS, começando por 0. O ,m opcional indica o número da partição, começando também por 0. Exemplos: (fd0) primeiro drive de disquete (hd0) primeiro disco rígido (hd0,1) segunda partição do primeiro disco O GRUB não faz distinção entre discos IDE ou SCSI. Leva em consideração como a BIOS enxerga o disco. Modificando a ordem na BIOS, modifica no GRUB. Intalando o GRUB Instalando o grub no MBR do primeiro disco # grub-install ‘(hd0)’ ou #/sbin/grub-install grub-install procura por um arquivo de mapa de dispositivo (/boot/grub/device.map) para determinar o mapeamento de drivers da BIOS. Se o arquivo não existir, ele tenta adivinhar. Caso ocorrar problemas, bastar editar o arquivo de mapa e re-executar o grub-install. O arquivo de mapa pode conter quantas linhas com este formato: (disco) /dev/device (fd0) /dev/fd0 15 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] (hd0) /dev/das O grub também pode ser instalado usando-se o comando grub. #grub grub> root (hd0,0) grub> setup (hd0) Fazendo boot através do GRUB Se não houver nenhum arquivo de configuração, o GRUB exibira um prompt ao se inicializar: grub> O GRUB espera uma sequência de comandos: 1. root dispositivo 2. kernel nome_do_arquivo [opções] 3. (opcional) initrd nome_do_arquivo 4. Boot Exemplo de um RedHat 8.0 com /boot em /dev/hda1 e / em /dev/hda2: grub> root (hd0,0) grub> kernel /vmlinuz-2.4.18-14 ro root=dev/hda2 indica o kernel a ser usado grub> initrd /initrd-2.4.18-14.img grub>boot O arquivo de configuração do GRUB Define o layout gráfico do menu de boot do sistema. Em Debian o arquivo fica em /boot/grub/menu.lst e em Red Hat fica em /boot/grub/grub.conf. Exemplo do arquivo anterior no GRUB Default=0 Timeout=3 Title Red Hat Linux (2.4.18-14) Root (hd0,0) Kernel /vmlinuz-2.4.18-14 ro root=/dev/hda2 Initrd /initrd-2.4.18-14.img GRUB 2 Apoio de scripts Módulo de carregamento dinâmico Modo de recuperação Menus personalizados Temas 16 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Suporte ao menu gráfico Imagens iso de Live CD de boot diretamente do disco rígido Nova estrutura de arquivos de configuração Suporte universal a UUIDs (não apenas o Ubuntu) Arquivos de configuração: /boot/grub/menu.lst do GRUB legacy foi substituido por /boot/grub/grub.cfg no GRUB 2 O arquivo grub.cfg é atualizado automaticamente sempre que for incluida ou retirada uma versão do kernel. As configurações do menu principal residem no arquivo /etc/default/grub Para acrescentar entradas adicionais ao menu utilize o arquivo etc/grub.d/40_custom Para que as atualizações seja efetivadas é necessário executar o update-grub LILO /etc/lilo.conf arquivo de configuração do lilo.conf #lilo ou #sbin/lilo instala o lilo #lilo -u desinstala o lolo 102.3 – Gerenciar Bibliotecas Compartilhadas - Peso 1 Programas estaticamente vinculados programas que copiam o código de uma biblioteca para dentro do seu executável. Programas desse tipo podem ser muito grandes, pois incluem executáveis para todas as funções da bib. , e desperdiçam muita memória quando vários programas utilizam a mesma biblioteca. Programas dinamicamentes vinculados utilizam as mesmas rotinas, mas não incorporam o código das bibliotecas. Programas menores e com menor consumo de memória, pois todos os programas utilizam a mesma biblioteca compartilhada. $ ldd programas exibem as bibliotecas compartilhadas por cada um dos programas listados. (library display) #ldd /bin/lsmod Vinculando as bibliotecas compartilhadas Os executáveis dinamicamente vinculados são examinados no momento da execução pelo ld.so. Este programa procura dependências no executável e tenta satisfazer qualquer dependências que não foi encontrada. Se falhar, o programa não roda. Para encontrar a biblioteca, ld.so precisa ser configurado a procurar em /usr/local/lib. Pode ser fazer isso adicionando os diretórios, separados por virgulas, na variável LD_LIBRARY_PATH, ou incluir o índice /etc/ld.so.cache (arquivo Binário) através do arquivo ld.so.conf que contêm os diretórios a serem indexados pelo ldconfig. /etc/ld.so.conf aponta para /etc/ld.so.conf.d que contêm os arquivos libc.conf e i486-linux- gnu.conf. (library directory system operation) 17 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] #ldconfig [opções] diretórios_de_bibliotecas -p exibe o conteúdo do cachê atual, em vez de recriá-lo -v Modo verbose. Exibe o progresso durante a execução Exemplo: # ldconfig –p # ldconfig reconstrói o cachê baseado no ld.so.conf 102.4 – Gerenciamento de pacotes no debian - Peso 3 Cada pacote do debian contém arquivos de programas e de configurações, documentação e indicação de dependências. Os nomes dos pacotes seguem o seguinte padrão: Pacote_Ver.Software-Ver.Pacote deb pacote_1.0-2.deb Nome do pacote: pacote Versão do Software : 1.0 Versão do Pacote : 2.0 Nome do pacote nome curto e descritivo. Se houver mais de uma palavra, a separação é feita por hífen (-). A ferramenta original de gerenciamento de pacotes é dpkg, que opera diretamente sobre os arquivos .deb e pode ser usada para automatizar a instalação e a manutenção dos pacotes de software. A ferramenta alternativa apt-get opera usando nomes de pacotes, obtendo-os a partir da internet ou mídias. O comando dselect oferece um menu interativo para instalação dos pacotes. O comando alien permite o uso de pacotes não debian , como o formato rmp do red hat. dpkg dpkg [opções] ação Consiste de uma action que especifica um modo principal de operação, bem como zero ou mais opções, as quais modificam o comportamento da ação. /var/lib/dpkg armazena informações (banco de dados) do dpkg. Há dois arquivos que são de particular interesse:l available é a lista de todos os pacotes disponíveis status contém atributos dos pacotes (se ele está instalado ou se está marcado para ser removido) Opções frequentemente usadas -E instrui o comando a não sobrescrever um pacote, previamente instalado, da mesma versão -G instrui o comando a não sobrescrever um pacote, previamente instalado , por uma versão mais antiga do que a instalada. -R (--recursive) processa recursivamente arquivos de pacotes em subdiretórios especificados. --configure package configura um pacote desempacotado. Requer o setup de arquivos de conf. -i package_file (--install) instala o pacote. -l [pattern] (--list) exibe informações de pacotes instalados que coincide com pattern 18 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] -L package (--listfiles) lista os arquivos instalados a partir do pacote. --print-avail package exibe os detalhes encontrados em /var/lib/dpkg/available sobre package --purge package remove tudo a respeito de package -r package (--remove) remove tudo, exceto os arquivos de configuração de package -s package (--status) relata o status de package -S search_pattern (--search) procura por um nome de arquivo, dos pacotes instalados, que bata com search_pattern --unpack package_file desempacote o pacote mas não o instala. --contents pacote exibe os arquivos do pacote dpkg-reconfigure [opções] pacote reconfigura um pacote já instalado. Irá fazer perguntas de configuração, à semelhança de quando o pacote foi instalado pela primeira vez. -a –all reconfigura todos os pacotes que utilizam debconf. apt-get front-end para o apt apt-get [opções] [comando] [nome_do_pacote] Faz parte do sistema de gerenciamento Ferramenta de Pacotes Avançada. Não utiliza arquivos .deb e sim uso de nome de pacotes. Resolve dependências. Opções frequentemente usadas -d faz o download de pacotes mas não instala -s simula os passos em uma modificação de pacotes. -y responde Yes automaticamente em todos os prompts Comandos frequentemente usados dist-upgrade faz upgrade automaticamente para novas versões do Debian Linux install instala ou faz upgrade de um ou mais pacotes, por nome remove remove os pacotes especificados purge remove os pacotes especificados e os arquivos de configurações update atualiza a lista de pacotes disponíveis. upgrade faz o upgrade de todos os pacotes do sistema mas não processa upgrades que possam gerar conflitos. aptitude front-end para o apt aptitude search <descrição> procura por pacotes que batam com <descrição> aptitude show <pacote> mostra informações detalhadas sobre o pacote aptitude update atualiza o cachê do apt de acordo com os repositórios em /etc/apt/sources.list aptitude install <pacote> instala o pacote aptitude remove <pacote> remove o pacote aptitude safe-upgrade atualiza o sistema de forma segura, ou seja, atualiza todos os pacotes que não precisam que suas dependências sejam atualizadas aptitude full-upgrade atualiza todos os pacotes, incluindo as dependências. 19 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Apt-Get x Aptitude aptitude é um front-end otimizado que usa o apt-get. O apt-get ao remover um software, não remove as depedências caso estas não sejam utilizadas por outro software. O Aptitude remove as depedências. Digamos que o aptitude é um apt-get melhorado. /etc/apt/sources.list Arquivo de repositórios do apt. deb http://ftp.br.debian.org/debian squeeze main non-free contrib deb-src http://ftp.br.debian.org/debian squeeze main non-free contrib deb http://security.debian.org/squeeze/updates main contrib non-free deb-src http://security.debian.org/squeeze/updates main contrib non-free O deb é pra obter os arquivos binários. O deb-src é para obter os fontes squeeze é a versão estável do debian main são os pacotes principais contrib são os pacotes não principais non-free são pacotes que fogem da política de pacotes do debian, podendo ser softwares não livres e outros. stable Versão ATUAL TOTALMENTE HOMOLOGADA E TESTADA PELA EQUIPE. Em contra partida, com o tempo acaba se tornando um pouco desatualizada na questão de versões de aplicativos e recursos. testing A próxima VERSÃO do Debian que está sendo TESTADA para se tornar STABLE. Que tem versões mais atuais, mas não sempre as últimas (é relativo) unstable Versões mais NOVAS! Porém quase ninguém testou no Debian ainda, isso não significa que não funcione ou tenha BUG, mas sim que a Debian ainda não deu um OK.Sendo que a escolha de stable, testing e unstable, sempre vamos optar no MIRROR no arquivo sources.list! squeeze codinome para versão estável do debian. O mesmo que stable wheezy versão testing do debian. /var/cache/apt/archives Diretório onde ficam armazenados os pacotes obtidos pelo apt. aptitude clean limpa esse diretório. dselect Ferramente front ent para dkpg interativa e baseada em menus e geralmente é chamada sem parâmetros. alien alien [--to-deb] [--patch=patchfile] [opções] arquivo 20 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Converte ou instala um pacote não Debian. rpm (Red hat), slp (slackware), slp(stampede) além de arquivos .tar.gz. O RPM precisa estar instalado no sistema para que haja a conversão. -i instala automaticamente o pacote de saída e remove o arquivo convertido -r converte o pacote para formato RPM -t converte o pacote em um gzip tar (tar.gz) apt-cache executa uma variedade de opções no cachê do APT. Não manipula o estado do sistema mas fornece ferramentas para gerar informações interessantes a partir dos meta-dados do pacote. apt-cache search descrição procura por descrição nos pacotes. Ex.: apt-cache search atari. apt-cache show pacote mostra informações detalhadas do pacote. Ex.: apt-cache show stella. apt-cache showpkg pacote mostra informações de dependências e versão. o #apt-cache showpkg stella. apt-cache depends pacote exibe quais pacotes dependem do pacote especificado. 102.5 – Gerenciamento de pacotes com RPM e YUM - Peso 3 Modo de instalação / upgrade rpm –i [opções] (--install) instala pacotes rpm –U [opções] (--upgrade) atualiza pacotes rpm –F [opções] (--upgrade) só faz upgrade de pacotes que possuem versões antigas instaladas no sistemas. Não lida com modificações de dependências, ou seja, se a nova versão do pacote exigir que outro pacote seja instalado, F não instala automaticamente o pacote. Opções: --force permite a substituição de pacotes já instalados, não levando em conta a versão do pacote. -h (--hash) exibe o indicador de progresso da instalação (########) --nodeps permite instalar o pacote sem verificar dependências --test executa todas as etapas da instalação mas não grava em disco. -v verbose -vv verbose completo Modo de desinstalação rpm –e [opções] (--uninstall) (e-excluir) Opções: --nodeps pula a verificação de dependências 21 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] --test simula a desinstalação. Modo de consulta rpm –q [opções] (--query) Opções: -a (--all) exibe uma lista de todos pacotes instalados no sistema -f nome_do_arquivo (--file) exibe o pacote que contém determinado arquivo -p nome_de_arquivo_do_pacote Consulta o arquivo de um pacote -c (--configfiles) Lista apenas arquivos de configuração -d (--docfiles) Lista apenas arquivos de documentação -i package exibe informação sobre um pacote instalado. -l package (--list) Lista todos os arquivos contidos no pacote -R (--requires) lista os pacotes dos quais este pacote depende Modo de verificação rpm –v [opções] (--verify) Opções: --nofiles ignora arquivos que estejam faltando --nomd5 ignora erros de checksum MD5 --nopgp ignora erros de verificação de PGP rpm -V [opções] [pacote] verifica a integridade dos arquivos instalados usando rpm -V. Essa etapa garante que os arquivos não foram modificados desde que foram instalados do rpm. Opções: -a verifica por todos pacotes instalados. yum Ferramenta similar ao apt. /etc/yum.conf arquivo de configuração do yum /etc/yum.repos.d diretório que guarda cada repositório (.repo) utilizado pelo yum. /var/cache/yum diretório onde ficam os arquivos baixados pelo yum. 22 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] yum install pacote instala o pacote yum remove pacote remove o pacote yum search descrição procura por descrição nos pacotes yum list descrição busca mais restrita, apenas no nome do pacote yum update pacote atualiza um pacote yum check-update lista todas as atualizações disponíveis para o sistema yum update sem parâmetros, atualiza todo o sistema Arquivo .repo [fedora] name=Fedora $releasever - $basearch baseurl=http://fedora.c3sl.ufpr.br/linux/releases/ $releasever/Everything/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm- gpg/RPM-GPG-KEY name: Descrição: Fedora e versão da distribuição - (arquitetura da distribuição, como, por exemplo: i386); baseurl: O endereço que contém a lista dos programas e os pacotes; enabled: Se o repositório está habilitado ou não (1 significa sim, 0 significa não); gpgcheck: Se todos os pacotes devem ter sua autenticidade verificada (1 significa sim, 0 significa não); gpgkey: Especifica qual chave criptográfica utilizar para a verificação dos pacotes. rpm2cpio converte um arquivo rpm para o formato cpio. yumdownloader pacote faz o download do pacote para o diretório atual. Tópico 103: GNU e Comandos Unix 103.1 – Trabalhar com linhas de comando - Peso 4 Shell Interface entre o usuário e kernel. O Shell padrão do Unix é o sh. O Shell do Linux é o bash – bourne again Shell. 23 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Variáveis do Shell Definindo variáveis MYVAR=15 PS1 (Prompt String 1) armazena o conteúdo do prompt de comando que é exibido quando o bash está pronto para aceitar comandos. \u@\h:\w\$ : Vagner@debian:~$ . \u nome do usuário \h nome do host da maquina \w path não qualificado. \$ substituído por $ quando é usuário e # quando é root PS2 usada quando o Bach precisa de entrada com múltiplas linhas para completar um comando. HOME define o local do home do usuário, LANG idioma utilizado no console HISTSIZE controla o tamanho do histórico; PATH contém uma lista de todos os diretórios que tenham comandos ou outros programas que o usuário utiliza. Para executar programas, o caminho do diretório deverá estar dentro de PATH ou então o usuário precisará digitar o caminho completo (/usr/bin/less). Nem o diretório atual é incluído no PATH implicitamente, nem explicitamente. Para executar um programa chamado foo no diretório atual, basta roda ./foo. Para rodar um comando, há três formas: O comando é interno ao bash O programa executável é localizado em um diretório listado em PATH Definido explicitamente Para incluir um diretório na PATH permanentemente, altere o arquivo /etc/profile Variáveis de ambiente variáveis que são passadas para os programas e para outros shells, e juntas, formam o chamado ambiente, no qual os programas roda. PATH é sempre transformado em variável de ambiente. $export MYVAR exporta a variável, a transformando em variável de ambiente. $unset VAR_AMBIENTE exclui a variável de ambiente. $set visualiza as variáveis locais $env visualiza as variáveis de ambiente Digitando comandos no prompt de comando Os comandos no Shell consistem de quatro componentes: Um comando válido Opções de comando , em geral precedidas por um hífen 24 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Argumentos Aceitação da linha (Enter) ls lista os arquivos do diretório atual ls –l lista os arquivos em formato longo e detalhado. ls –la / ls –l –a / ls –l –all lista os arquivos em formato detalhado, incluindo os ocultos (.arquivo) -d Uma opção frequentemente instrui o comando de que o item subseqüente na linha de comando é um argumento específico. Por exemplo: $tar cf mytarfile file 1 file 2 file3 $tar –cf mytarfile file 1 file 2 file 3 A opção f diz a tar que o arquivo chamado mytarfile segue logo após a opção. Digitando comandos que não estejam no PATH Para diretórios que não estejam listados no PATH, é necessário digitar o seu caminho completo. Ex: $/bin/ls. Digitando comandos de múltiplas linhas interativamente O Shell permite utilizar comandos de linguagem de programação como for’s if’s , etc.. Quando se inicia um comando como esses, os quais normalmente se prolongam por diversas linhas, o bash lhe pede as linhas subseqüentes e exibe o caractere especificado em PS2 (>). Digitando sequências de comandos Para digitar vários comandos na mesma linha, separe-os por “;”. $ls ; os Histórico e Edição dos Comandos O bash mantém uma lista de comandos digitados, permitindo ao usuário acessá-lo de forma facilmente, sem ter que digitar o comando novamente. A lista de histórico é controlada pela variável HISTSIZE e seu tramanho padrão é definido em 500 linhas. Os comandos de sessões anteriores são armazenados em ~/.bash_history. $history exibe os comandos digitados pelo usuário. HISTSIZE variável que controla o tamanho da lista de histórico. Designadores de expansão do histórico de comandos: !! (bang-bang) executa o último comando do histórico !n executa o n comando na lista de histórico ! –n refere-se ao comando atual menos n do histórico 25 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] !string refere-se ao comando mais recente que comece com string !?string referece-se ao comando mais recente que contenha string ^string1^string2 substituição rápida. Repete o último comando, substituindo string1 por string 2. C-p (Control p) ou seta para cima linha anterior. Mostra o último comando C-n ou seta para baixo próxima linha C-b ou seta para esquerda voltar um caractere C-f ou seta para direita avançar um caractere C-a ou home Começo de linha C-e ou end fim de linha C-l limpa a tela M-< (alt <) Início do histórico M-> Final do histórico C-d apaga o caractere a direita C-k apaga o texto do cursos até o fim da linha C-y cola o texto anteriormente apagado com C-k M-d apaga a palavra C-rtext busca reversa por text C-stext busca adiante por text #fc abre um editor de texto com uma lista de comandos recentemente utilizados no bash. Quando o editor é fechado, os comandos nele listados são executados. Aplicando-se comandos recursivamente através de um árvore de diretórios $find procura por arquivos/diretórios no disco. $ find src –name “*.c” procura em src por arquivos do tipo c $ find / -name “root” $ find /etc -maxdepth 1 -name *.conf Limite a profundidade de busca na árvore de diretórios. Neste caso, só procurará em / # find ~ -amin -5 procura arquivos na home acessados a 5 minutos atrás # find ~ -atime -10 procura por arquivos na home acessados a 10 dias atrás # find / -uid 1000 procura arquivos cujo dono tenha uid 1000 # find / -user aluno procura arquivos cujo dono seja aluno # find / -perm 644 arquivo com permissão 644 # find / -size +1M arquivos maiores que 1 mb #find / -perm +4000 -exec ls -ld {} \; arquivos com suid ativado #find / -mtime +7 procura por arquivo modificados em 7 dias (7 * 24) -type tipo o b -bloco o c- caractere o d -diretório 26 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] o p- pipe o f - arquivo regular o l- link simbólico o s - socket echo String imprime string na tela exec executa um processo usando o mesmo PID do processo que o chamou e fazendo com que o processo executado por ele herde esse PID. Exemplo: #!/bin/bash exec echo "Hello World!" echo "Nunca serei impresso." Somente 'Hello World!' será impresso já que ele herdou o PID corrente, fazendo com que 'echo "Nunca serei impresso."' fique "órfão". pwd exibe o diretório corrente uname –a exibe todas informações sobre o kernel man comando exibe o manual do programa 103.2 – Processar texto utilizando filtros - Peso 3 cut opções [arquivos] corta ou exibe colunas ou campos selecionados a partir de um ou mais arquivos. Por padrão, os recortes são delimitados por um caractere tab. -b list exibe os bytes nas posições list -c list exibe os caracteres nas colunas list -d delim define o delimitador de campo para –f -f list exibe os campos de list #cut -f1,5,6 -d ':' --output-delimiter ' - ' /etc/passwd exibe o login do usuário, campo de comentário e diretório home. Todos os campos serão exibidos usando o caracter ‘ - ‘ como separador. $cut –d: -f1 /etc/passwd exibe o primeiro campo do arquivo /etc/passwd. expand [opções] [arquivos] Converte tabs em espaços. Um tab = oito espaços. -t número especifica o número de espaços de tab, ao invés de 8. - i inicial; converte apenas o ínicio das linhas 27 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] fmt [opções [arquivos] formata o texto com uma extensão especificada. Preenchendo linhas e removendo caracteres de nova linha. Se forem especificados múltiplos arquivos na linha de comando, eles serão concatenados. -u usa espaçamento uniforme: um espaço entre palavras e dois entre setenças. -w largura define a largura da linha. O padrão é de 75 caracteres. head [opções] [arquivos] exibe as primeiras linhas de um ou mais arquivos. -c n exbe os primeiros n bytes ou , se n for seguido por k(kilobyte) ou m(megabyte). -n n exibe as primeiras n linhas. O padrão é 10. cat /etc/passwd | head -c 4 exibe os 4 primeiros caracteres do arquivo o root join [opções] arquivo1 arquivo2 junta dois arquivos que possuem um índice em comum. -j1 campo junção no campo de arquivo 1 -j2 campo junção no campo de arquivo 2 -j campo junção tanto no campo de arquivo 1 como no de arquivo 2 Arquivo 1: 1 one Arquivo 2: 1 11 $join –j1 arquivo1 arquivo 2 1 one 11 nl [opções] [arquivos] numera as linhas de arquivos incluindo opções especiais para cabeçalho(\:\:\: abre cabeçalho e \:\: fecha cabeçalho) e rodapé (\: inicia cabeçalho). -b estilo define o estilo da numeração do corpo como estilo, o padrão é t. -f estilo define o estilo da numeração do rodapé como estilo, o padrão é n. -h estilo define o estilo da numeração do cabeçalho como estilo, o padrão é n. Estilos: a númera todas as linhas t numera apenas as linhas não vazias n não numera as linhas 28 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] od [opções] [arquivos] faz dumping de arquivos em octal e em outros formatos. Exibe uma listagem do conteúdo de um arquivo em uma série de formatos. -t tipo especifica o tipo de saída: o a caractere nomeado o c caractere ASCII ou escape com barra invertida o o octal o x hexadecimal paste [opções] [arquivos] cola as linhas correspondentes, de um ou mais arquivos, em colunas verticais. -dn separa as colunas com o caracter n no lugar do tab padrão -s funde as linhas de um arquivo em uma só linha. Arquivo 1 Arquivo 2 1 A 2 B 3 C $paste arquivo1 arquivo2 1 A 2 B 3 C $paste –d’@’ arquivo1 arquivo2 1@A 2@B 3@C $paste –s arquivo1 arquivo2 1 2 3 A B C pr [opções] [arquivos] Converte um texto em uma versão paginada, em colunas, com cabeçalhos e preenchimentos de páginas. -d espaço duplo -h cabeçalho usa cabeçalho no lugar do nome do arquivo, no cabeçalho. -l linhas defina a extensão da página em linhas. O padrão é 66. -o largura define a margem esquerda como largura. 29 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] #pr -h “Arquivo Fstab” fstab.txt sort [opções][arquivos] Ordena o arquivo -f classificação insensível ao caso -k POS1[,POS2] classifica pela coluna começando em POS1 e (opcionalmente) terminando em POS2. -n classifica numericamente -r classifica em ordem reversa -t SEP usa sep como separador das chaves. O padrão é usar espaços em branco como separador. -u elimina as linhas duplicadas. o $sort -u teste.txt split [opção] [arquivo_de_entrada] [arquivo_de_saida] divide o arquivo de entrada em um número especificado de linhas, com a saída indo para uma sucessão de arquivo_de_saidaaa, arquivo_de_saidaab , etc.. -n divide o arquivo em segmentos com n linhas. O padrão é 1000. #dmesg > dmesg.txt #split -100 dmesg.txt dmesg divide dmesg em arquivos de 100 linhas cat [arquivo] envia os arquivos de textos para a saída padrão. cat /etc/passwd exibe o conteúdo do arquivo cat > fileone cria o arquivo fileone. Para sair e salvar, se estiver no meio de uma linha Crtl + d 2 vezes; Se estiver no inicio de linha Crtl+d 1 vez; Crtl + Z sai -n enumera as linhas tac [arquivo]envia os arquivos de textos para a saída padrão, mas em ordem reversa (o contrário de cat); tail [opções] [arquivos] exibe as últimas linhas de um ou mais arquivos. Quando é especificado mais de um arquivo, é impresso um cabeçalho no início de cada arquivo. -c nexibe os últimos nbytes, ou, se n for seguido por k ou m, kilo ou megabytes. -n m exibe as últimas m linhas. O padrão é 10. o tail -n +10 exibe n linhas - 10. Se o arquivo tiver 400 linhas, irá exibir 390 linhas -f exibe continuamente um arquivo a medida que ele vai sendo ativamente escrito por um outro processo. Útil em logs. tr [opções] [string [string2]] traduz caracteres de string1 para os caracteres correspondentes em string2. Tr não possui argumentos para especificar arquivos e,portanto, precisar usar a entrada e a saída padrão. -c usa o complemento de string1. -d apaga os caracteres em string1 da saída. 30 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] -s retira da saída os caracteres repetidos em string1. $cat arquivo1 | tr a-z A-Z $cat arquivo1 | tr ‘[:lower:]’ ‘[:upper:]’ $cat /etc/passwd | tr a-z A-Z unexpand [opções] [arquivos] converte espaços em tabs. -a converte todos os espaços, e não só os iniciais. Unexpand só funciona em espaços no ínicio de cada linha. Utilizando a opção –a faz com que todos os espaços sejam transformados em tabulações t n especifica a extensão dos tabs, no lugar padrão de 8 espaços. uniq [opções][input [output]] escreve input(ou stdin) em output(ou stdout), eliminando linhas duplicatas adjacentes. -d processa apenas as linhas não-únicas (que se repetem) -u processa apenas as linhas únicas (que não se repetem). # uniq teste.txt wc [opções][arquivos] exibe contagem de caracteres, palavras e linhas para arquivos. Quando múltiplos arquivos são listados. As estatísticas de cada arquivo são mostradas em linhas separadas. Sendo apresentado por último um total acumulado. -c exibe apenas a contagem de caracteres -l exibe apenas a contagem de linhas -w exibe apenas a contagem de palavras. $wc /etc/passwd o 33 51 1526 103.3 – Realizar Gerenciamento Básico de Arquivos - Peso 4 O sistema é organizado de forma hierárquica, permitindo que dois arquivos/diretórios com o mesmo nome existam em regiões diferentes do disco. Cada objeto é armazenado em uma tabela e cada objeto recebe um número único. Diretórios e arquivos Um diretório é um contêiner criado para armazenar objetos. O arquivo é utilizado para armazenar dados. Inodes Número de identificação para cada objeto do sistema. cp [opções] arquivo1 arquivo2 copia o arquivo1 para o arquivo2. Se o arquivo2 existir, ele será sobrescrito, a menos que use a opção –i. 31 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] cp [opções] arquivos diretório copia os arquivos para o diretório -f força a sobrescrita dos arquivos existentes no local do diretório. -i pede confirmação interativamente antes de sobrescrever os arquivos do local de destino. -p preserva todas as informações, incluindo proprietário, o grupo, as permissões e os timestamps. -r, -R copia diretórios recursivamente. -v exibe o nome completo de cada arquivo antes de fazer a cópia. cp -pR /etc /tmp/etcbkp copia o diretório de origem /etc e seus subdiretórios para o diretório de destino /tmp/etcbkp preservando os atributos originais dos arquivos mkdir [opções] diretórios cria um ou mais diretórios. -m mode define o modo de acesso para os diretórios – 444 – 777 -p cria diretórios ascendentes intervenientes, caso eles não existam. mkdir -p dir/subdir1/subdir2 cria a estrutura de diretórios dir/subdir1/subdir2 mv [opções] fonte alvo move ou renomeia arquivos e diretórios. -f força a remoção mesmo que alvo exista, suprimindo as mensagens de aviso. -i consulta interativamente o usuário antes de mover arquivos. rm [opções] [arquivos] apaga um ou mais arquivos do sistema de arquivos. -d remove diretórios mesmo que não estejam vazios. -f força a remoção de arquivos protegidos contra escrita, sem pedir a confirmação do usuário. -i consulta o usuário interativamente antes de remover os arquivos. -r, -R se o arquivo for um diretório, remove recursivamente o diretório inteiro e todo o seu conteúdo, incluindo sub-diretórios. rmdir [opção] diretórios apaga os diretórios que precisam estar vazios. -p remove os diretórios e quaisquer diretórios ascendentes intervenientes que fiquem vazios como resultado. Útil para remover árvores de subdiretórios. touch [opções] arquivos muda o registro da data e hora de acesso e/ou modificação dos arquivos. Utilizado para criar arquivos. -a modifica somente a hora do acesso -m modifica somente a hora da modificação -t timestamp em vez de hora atual, usa timestamp [[CC]AA]MMDDhhmm[.ss]] 32 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] dd if=origem of=destino faz uma cópia bloco a bloco. $ dd if=/home/felipe/Downloads/netbeans-6.9.1-ml-linux.sh of=/home/felipe/netbeans.sh copia o arquivo de download para Felipe # dd if=/dev/sda of=~/backup_hd.img cria uma imagem em home da partição das # dd if=backup_hd.img of=/dev/sda2 caminho inverso ao de cima # dd if=/dev/sda9 of=/dev/sda11 copia partição dd if=/dev/sda1 | gzip > backup_hd.img.gz cópia do HD para um arquivo compactado tar <operações/opções> f <arquivo_tar> [<arquivos_de_entrada>] Consiste de um arquivo no formato de árvore de diretórios, contendo os arquivos do programa, juntamente com o código fonte em C, um Makefile e alguma documentação. Para melhorar a distribuição, costuma-se comprimir esse arquivo com um algoritmo gzip ou bzip2, ficando com a extensão final (tar.gz ou tar.bz2) <operações> c - criar o arquivo tar; r - adicionar (concatenar) conteúdo a um arquivo tar; x - extrair o conteúdo de um arquivo tar; t - listar o conteúdo de um arquivo tar. <opções> v - Verbose tar; z - utilizar com compressão gZip, tanto na criação como na extração de um arquivo tar; j -utilizar com compressão bzip2, tanto na criação como na extração de um arquivo tar; Z - utilizar com compressão compress, tanto na criação como na extração de um arquivo tar. <arquivo_tar> é o nome do arquivo tar sob o qual se está trabalhando. Deve ser precedido pela letra f de file. <arquivos_de_entrada> listagem dos arquivos que serão adicionados ao arquivo tar. # tar cvf /root/arquivo.tar /etc cpio # ls | cpio -ov > pacote.cpio O comando acima empacotará todos os objetos da saida do comando ls. # cpio -iv < pacote.cpio extrai o conteúdo de pacote.cpio gzip [opções] [arquivo] utiliza os algoritmos LZ77 e Huffman coding; -d descompacta o arquivo -v verbose -t testa a integridade do arquivo $ gzip –d tarball.tar.gz (descomprime o arquivo zipado) $ tar xvf tarball.tar (extrai o arquivo) O gunzip faz o mesmo processo $ gunzip tarball.tar.gz (descomprime o arquivo zipado) 33 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] $ tar xvf tarball.tar (extrai o arquivo) $ gzip –dc tarball.tar.gz | tar xv $ tar zxvf tarball.tar.gz bzip2 [arquivo] utiliza os algoritmos Burrows-Wheeler transform e Huffman coding. -d descompacta o arquivo -z compacta o arquivo -t testa a integridade do arquivo -v verbose $ bzip2 –dc tarball.tar.bz2 | tar xv $ tar jxvf tarball.tar.bz2 File Globbing * zero ou mais caracteres. x* corresponde a xyz xxx xy.txt ? um caractere. x? corresponde a xy xz xx, mas não a xyz [caracteres] corresponde aos caracteres listados entre colchetes. x[yz] = xy e xz [!caracteres] corresponde a qualquer caractere, menos os listados entre colchetes. [a-z]corresponde a qualquer caracter dentre a faixa de caracteres listada entre os colchetes e indicada pelo hífen. Por exemplo, x[0-9] corresponde a x0 e x1. [a-zA-z] = xa ou XÁ [!a-z] corresponde a qualquer caracter, menos os listados entre colchetes. {frag1,frag2,frag3} $echo string_{a,b,c} = string_a string_b string_c 103.4 – Usar Streams, Pipes e Redirecionamento - Peso 4 Entrada padrão (Standard input ou stdin) entrada de texto. Por padrão está vinculado ao teclado. Saída padrão (standard output ou stdout) saída de texto. Por padrão, está vinculado ao terminal. Erro padrão (standard error ou stderror) saída de texto. Por padrão, está vinculado ao terminal. A saída padrão e o erro padrão são separados porque frequentemente é útil processar a saída normal dos programas de forma diferente dos erros. Pipes Envia a saída de um programa para a entrada de outro. $grep “01523” order* | less Redirecionamento Envia a saída de um programa para um arquivo. $cat /etc/passwd > in.txt > cria o arquivo. Se o arquivo existir, apaga seu conteúdo e o sobrescreve. >> cria o arquivo se não existir. Caso exista, anexa o conteúdo no final do arquivo. < altera a entrada padrão do programa. $mail –s “inode list” jdean < in.txt 2> saida de erro 34 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] o abc 2> abc.error executa abc e joga a saída de erro para o arquivo abc.error cmd 1> arquivo envia stdout para arquivo cmd 2> arquivo envia stderr para arquivo cmd > arquivo 2>&1 envia stdout e stderr para arquivo cmd > arquivo1 2> arquivo2 envia stdout para arquivo1 e stderr para arquivo2 cmd < arquivo recebe stdin de arquivo cmd >> arquivo e cmd 1>> arquivo adiciona stdout ao final de arquivo cmd 2>> arquivo adiciona stderr ao final de arquivo cmd >> arquivo 2>&1 adiciona stdout e stderr ao final de arquivo cdm1 | cmd2 Envia stdout de cmd1 para cmd2 cmd1 2>&1 | cmd2 Envia stdout e stderr de cmd1 para cmd2 tee [opções] arquivos lê a partir da entrada padrão e escreve em um ou mais arquivos e, ao mesmo tempo, na saída padrão. -a anexa aos arquivos, ao invés de sobrescrevê-los. cmd1 | tee arquivo_cmd1 | cmd2 | cm3 > arquivo1 envia a saída final para arquivo 1, mas os resultados intermediários de cmd1 serão colocados em arquivo_cmd1 xargs xargs facilita a repetição de um certo comando para cada entrada fornecida para ele. Peraí, vamos entender melhor. Considere que eu queira apagar os arquivos terminados em ~ no diretório atual. Poderíamos utilizar a dupla da seguinte maneira: $ find . -name "*~" | xargs rm o find retornaria uma saída com os arquivos terminados em ~ e o xargs executaria o comando rm para cada uma das saídas. 103.5 – Criar, monitor e matar processos - Peso 4 Processo: programa em execução que possui: Tempo de vida Tempo que o processo leva, desde a execução, até o seu término ou encerramento. ID do processo (PID) número inteiro atribuído a um processo quando o mesmo é iniciado. ID do Usuário (UID) e ID do Grupo (GID) id e grupo do usuário que iniciou o processo. Processo parente processo pai do processo atual. O primeiro processo (pid 1) é o init. ID do processo parente id do processo que criou o processo em questão. Ambiente lista de variáveis e dos seus valores associados. Sub-processo herda o ambiente. Diretório de trabalho atual diretório associado ao processo. O processo escreverá e lerá arquivos desse diretório; pidof nome_do_processo ou pgrep nome_do_processo lista o pid do processo 35 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] #pidof bash o 1614 #pgrep bash o 1614 ps [opções] exibe os processos em execução -a mostra os processos do usuário atual. -f modo floresta. -l formato longo, inclui prioridade, pid e outras informações. -u formato do usuário, inclui nome dos usuários e a hora de início. -w formato de saída ampla, usada para eliminar o truncamenteo de linhas de saída padrão. -x inclui processos que não tenham terminais de controle. Útil para ver processos daemons. -C cmd exibe as instancias do comando cmd. $ps –aux inclui processos de outros usuários, daemons e exibidos no modo usuário. pstree [opções] [pid/usuário] equivalente a os –f. Se o pid for especificado, a árvore exibida tem a sua raiz no processo em questão. -a exibe os argumentos de linha de comando usados para se iniciar processos. -c desabilita a compactação de sub-arvores idênticas. -Gusa os caracteres de desenho de linha VT100, em vez dos caracteres simples, para exibir a árvore. -h destaca os ancestrais do processo atual (normalmente o Shell) -n muda a ordem de classificação padrão dos processos para numérica (PID), ao invés de alfanumérica. -p incluis pids na saída. top [opções] similar a ps, porém oferece uma exibição continuamente atualizada. Permite matar e alterar a prioridade do processo. -b roda em modo de lote (batch). Útil para enviar a saída para outros programas ou arquivo. -d atraso especifica o atraso, em segundos, entra as atualizações da tela. O padrão é 5s. -i ignora os processos ociosos. -n num exibe um número n um de iterações e depois termina. -q roda sem nenhum atraso. -s roda em modo seguro. Operações interativas Crtl-L Recarrega a tela h gera uma tela de ajuda k termina um processo. Será pedido o PID do processos o sinal para enviar a ele. n modifica o número de processos a serem exibidos. q sai do programa 36 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] r modifica a prioridade de um processo (renice). s modifica o atraso, em segundo, entre as atualizações. Assinalando processos ativos Nome do Sinal Número Significado e uso SIGHUP 1 Hang up(desconectar). Utilizado para fazer logout ou desconectar o modem. SIGINT 2 Interromper, parar a execução. Similar a Crtl-C. SIGKILL 9 Terminar; pára imediata; interrupção de emergência. SIGTERM 15 Terminar, de forma elegante se possível. SIGTSTP 20 Pára a execução, pronto para continuar. Similar a Crtl-Z SIGCONT 18 Continua a execução. Kill [-s sigspec | -sigspec] [pids] Envia um sinal ao processo. Pode ser em format número ou literal, se não for especificado nada, sigspec terá o valor 15 ou TERM. $kill –SIGTERM 1000 1001; $kill 1000 1001; $kill –TERM 1000 1001; $kill –s 15 1000 1001. Kill –l [signum] traduz o número em nome do sinal. $kill –l 15 -> TERM Controle das Tarefas do Shell Programa em foreground é quando ele está associado a um terminal. Programa em background não aceita nenhuma entrada para o processo, somente a possibilidade de enviar sinais ao mesmo. Quando um processo está em background, é criada uma tarefa. Cada tarefa possui um número que se inicia com 1 e aumenta sequencialmente. A principal razão de rodar um programa em background é liberar o shell. jobs [opções] [job] Lista as tarefas ativas iniciadas pelo usuário em backgrounds. O argumento opcional job restringe a saída da informações sobre essas tarefas. -l lista também os PIDs #jobs o [1]+ Running updatedb & job = 1 Kill %job mata o processo pelo número do job e não pelo pid. Kill %1 mata updatedb no exemplo acima $mozilla & envia o Mozilla para background. Se você esquecer-se do caractere &, basta dar um Crtl-Z para interromper o processo e digitar bg em seguida para reiniciar o processo. Crtl –Z interrompe o processo e coloca ele em background $fg coloca a tarefa especificada em foreground, transformando-a na tarefa atual. Se job não for especificado, será usada a noção de tarefa atual do shell. 37 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] #fg 1 traz o processo para o primeiro plano. Também pode ser usado #fg %1 bg [job]coloca job em background. Usar este comando em uma tarefa pausada,permitirá que ela rode em background. #bg 1 roda o programa parado com job = 1 em background. Também pode ser usado #bg %1 nohup [comand&] roda um comando em background e faz com que o mesmo fique imune a sinais de hangup. Útil quando quer utilizar um comando e desconectar do terminal. free [opções] exibe informações de consumo de memória RAM e de swap. -m exibe os resultados em megabytes -t mostra um total, somando a memória RAM e swap uptime mostra quanto tempo o sistema está ligado, quantos usuários estão logados na máquinas e qual foi a carga do sistema do último minuto, dos 5 e 15 minutos passados. uptime o 12:06:07 up 1:07, 1 user , load average: 0.00, 0.00, 0.00 killall [nome_do_processo] ao contrário do kill, mata o processo pelo nome 103.6 – Modificar as Prioridades de Execução de Processo - Peso 2 Nice ajusta a prioridade do processo no momento da inicialização. O ajuste é um nº inteiro que varia de +1 a +19 (baixa prioridade), caso seja usuário normal, e -20 (Alta Prioridade) a +19(baixa prioridade) para superusuários. Caso não seja especificado o ajuste, Nice inicializará o processo com ajuste 10. Todos processos iniciados pelo sistema contêm prioridade 0. nice [-n ajuste] [comando] nice [-ajuste] [comando] renice [+|-] número_nice [opção] alvos altera a prioridade de um processo em tempo de execução. -u Interpreta alvos como nomes de usuários, afetando todos processos destes usuários; -p interpreta alvos como PIDs (o padrão) $renice 20 501 $renice -10 –u jdean –p 501 38 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] 103.7 – Buscar em Arquivos de Texto Usando Expressões Regulares - Peso 2 Âncoras de posição: usada para especificar a posição de um ou mais conjuntos de caracteres em relação a linha inteira (ex.: início de linha); Conjuntos de Caracteres: corresponde a um texto. Pode ser uma série de literais, metacaracteres para corresponder a caracteres individuasi ou multiplos, ou uma combinação dos dois. Expressão Regular Descrição ^ Início de linha. Só faz sentido quando ^ se encontra do lado esquerdo de regex. $ Final de linha. Só faz sentido quando $ se encontra do lado direito de regex. \< >\ Limites de palavras (espaços em brancos, início e final de linha, pontuação). As barras são obrigatórias. Modificadores de Quantidade: seguem após um conj. De caracteres e indicam o número de vezes que o conjunto deve ser repetido. Expressão Regular Descrição [abb] [a-z] Grupo e faixas de caracteres únicos. [abc] corresponde aos caracteres a,b e c. [a-z] corresponde a qualquer caractere entre a e z, também pode ser usado [[:lower]] [^abc] [^a-z] Correspondência inversa. Corresponde a qualquer caractere que não esteja especificado nos colchetes. . Corresponde a qualquer character, exceto o de nova linha Expressão Regular Básica Expressão Regular Estendida (egrep) Descrição * * Zero ou mais caracteres que o precede \? ? Zero ou mais instâncias da regex precedente /+ + Corresponde a uma ou mais instâncias da regez precedente \{n,m\} {n,m} \{n\} corresponde a n ocorrências, \{n,\} corresponde a no mínimo n ocorrências e \{n,m\} corresponde a qualquer nº de ocorrências, de n a m, inclusive \| | Alternagem. Corresponde à regez especificada antes ou depois da barra vertical \(regex\) (regex) Agrupamento. Corresponde à regez, mas pode ser modificado como um todo e usado em referências retroativas. grep [opções] regex [arquivos] Busca nos arquivos ou na entrada padrão por linhas contend regex. -c exibe apenas uma contagem das linhas encontradas. 39 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] -h exibe as linhas encontradas, mas não inclui o nomes dos arquivos, no caso de entrada múltipla. -I ignora a distinção entre maiúsculas e minúsculas. -n exibe as linhas encontradas juntamente com o número da linha. -v exibe todas as linhas que não batam com regex (negação). -E interpreta regex como uma expressão regular estendida. -F procura por strings literais e não por expressões regulares. egrep regex [arquivos] similar ao grep –E egrep '^(root|daniel):' /etc/passwd exibe somente as linhas referente aos logins root e daniel do arquivo /etc/passwd fgrep regex [arquivos] similar ao grep – F. sed, o editor de streams, é um poderoso programa de filtragem, utilizado para automatizar tarefas de edição repetitivas ou para processor textos em pipes de commandos Unix. sed [opções] ‘comando1’ [arquivos] forma com um comando1 de apenas uma linha. sed [opções] –e ‘comando1’ [-e ‘comando2’…] [arquivos] forma com dois ou mais commandos. O –e é obrigatório sed [opções] –f script [arquivos] recebe um script de comandos. -e cmd especifica que o argument após –e é um comando. -f arquivo especifica que o argument após -f é um arquivo de scripts. -g trata todas as substituições como globais. Endereçamento: permite localizer a linha dentro do arquivo. Nº de linha. $ indica a última linha da entrada. (inicial,final) especifica uma faixa de numerous, 1,$ é a entrada inteira. Uma expressão regular delimitada por barras. Nº de linha com um interval. n~s onde n é o número inicial e s é o intervalo. 1~2 (comece na linha 1 e encontre cada duas linhas a partir dela). Se não for fornecido nenhum endereço, os commandos serão aplicados à todas as linhas. Comandos d apaga linhas s faz substituições. s/padrão/substituição/ [flags] o g substitui todas as instâncias de padrão, e não somente a primeira o n substitui a n-ésima instância de padrão; o padrão é 1 o pexibe a linha caso a substituição tenha sido feita. o w arquivo grava a linha, caso a substituição tenha sido feita. o y traduz caracteres. 40 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] 103.8 – Edição básica de arquivo utilizando o vi - Peso 3 Tecla de comando Descrição Comandos básicos de movimentação h Move o cursor um caractere para a esquerda. j Move o cursor uma linha para baixo. k Move o cursor uma linha para cima. l Move o cursor um caractere para a direita. H Move o cursor para o alto da tela. L Move o cursor para o final da tela. w Move o cursor uma palavra para a frente. b Move o cursor uma palavra pra trás. 0(zero) Move o cursor para o início da linha atual. ^ Move o cursor para o primeiro caractere da linha atual que não seja um espaço em branco $ Move o cursor para o final da linha atual. Crtl-B Move o cursor uma tela para trás. Crtl-F Move o cursor uma tela para a frente. nG Move o cursor para a linha n :n Move o cursor para a linha n gg Move o cursor para a primeira linha do arquivo G Move o cursor para o fim do arquivo. Comandos básicos de inserção de texto i Insere na posição atual do cursor. I Insere no início da linha atual. a Anexa após a posição atual do cursor. A Anexa ao início da linha atual. o Inicia uma nova linha após a linha atual. O Inicia uma nova linha antes da linha atual. Comandos básicos de alteração r Substitui o caractere da posição atual do cursor. R Começa a substituir (sobrescrever) na posição atual do cursor. x Apaga o caractere da posição atual do cursor. X Apaga o caractere imediatamente antes (à esquerda) da posição atual do cursor. s Apaga o caractere da posição atual do cursor e entra no modo insert. (Equivalente a xi.) S Apaga o conteúdo da linha atual e entra no modo insert dX Dado um comando de movimento X, corta(apaga) o número apropriado de caractere, palavras ou linhas a partir da posição atual do cursor. D Deleta a partir da posição atual do cursor até o final da linha e entra no modo insert (Equivalente d$.) dw Deleta a palavra, da posição atual do cursor até o final dd Deleta a linha atual. :A,Bd Deleta da linha A até a linha B, copia para área de transferência rx Substitui o caractere sob o cursor pelo especificado em x 41 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] u Desfaz a última modificação U Desfaz todas as modificações feitas na linha atual J Une a linha corrente a próxima yy Copia 1 linha para a área de transferência yNy Copia N linhas para a área de transferência p Cola o conteúdo da área de transferência Np Cola N vezes o conteúdo da área de transferência cc Apaga o conteúdo da linha, e copia para área de transferência cNc Apaga o conteúdo de N linhas, e copia para área de transferência :%s/string1/string2/g Substitui "string1" por "string2" Comandos básicos para localizar texto /palavra Busca pela palavra ou caractere em todo o texto ?palavra Move o cursor para a ocorrência anterior da palavra n Repete o último comando / ou ? N Repete o último comando / ou ?, na direção reversa Crtl+g Mostra o nome do arquivo, o número da linha atual e o total de linhas Comandos para salvar o texto :wq ou :x ou Shift+ZZ Salvam o arquivo e saem do editor :w nome_do_arquivo Salva o arquivo corrente com o nome especificado :w! nome_do_arquivo O mesmo que :w, mas forçando sobrescrita :q Sai do editor :q! Sai do editor sem salvar as alterações realizadas Outros comandos :set number Enumera as linhas do arquivo :set nu! Tira as linhas do arquivo :syntax on Habilita cores no vi :set hlsearch mostra o que está sendo buscado em cores :set background=dark Configura o background :!comando Executa o comando sem sair do vi Tópico 104: GNU e Comandos Unix 104.1 – Dispositivos, Sistemas de Arquivos Linux e o Filesytem Hierarchy Standard - Peso 2 Sistema de arquivos maneira como os dados são alocados fisicamente no disco. Se refere também à estrutura e ao conteúdo de alguma mídia de armazenamento. Partições de disco 42 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Em um disco IDE, é possível ter 4 partições primárias, ou 3 primárias, 1 estendida e 12 partições lógicas dentro do contâiner da partição estendida. Partição estendida não contêm dados. Uma das partições primárias é eleita ativa, e a bios poderá dar boot no SO a partir dela. /dev/hda (primária), /dev/hdb(estendida),/dev/hda5(lógica),/dev/hda6(lógica) O sistema de arquivos root filesystem e os pontos de montagem / (diretório root) Único sistema de arquivos montado durante o boot, certos diretórios precisam fazer parte dele para o processo de boot: /bin contêm programas essenciais ao sistema; /sbin contêm programas que permitem inicializar, reparar, restaurar e/ou recuperar o sistema, somente root tem acesso; /dev contém arquivos de dispositivos; /etc arquivos de configuração usadas no boot e por programas; /lib bibliotecas compartilhadas e módulos do kernel; /bootarquivos estáticos utilizados durante o boot e a imagem do kernel; /home arquivos pessoais do usuários. Geralmente é colocada numa partição separada; /tmp arquivos temporários. Geralmente é colocada numa partição separada afim de não permitir que os arquivos lotem o sistema de arquivos root; /var arquivos de logs. Geralmente é colocada numa partição separada afim de não permitir que os arquivos lotem o sistema de arquivos root; /usr contêm programas que não são essenciais ao sistema (browser, players,etc..). Geralmente é colocado em uma partição separada; /media ponto de montagem de dispositivos removíveis; /mnt montagem temporárias, tais como, compartilhamento de arquivos; /opt utilizado por programas proprietários; Geralmente é colocada em uma partição separada; Além disso é necessário criar uma partição de swap, geralmente com tamanho igual ao dobro de RAM. Gerenciando Partições fdisk [dispositivo] exibe a tabela de particionamento para dispositivo (partição) usando uma interface de texto interativa. Se omitido, o padrão é /dev/hda. Comandos frequentemente usados a ativa ou desativa o flag bootable (ativa) para uma partição primária; d apaga uma partição l lista os tipos de partições conhecidos. 43 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] m exibe o breve menu de ajuda. n adiciona novas partições p exibe a tabela de partição na forma como ela existe na memória q sai sem salvar as modificações t muda a id do sistema de uma partição. Cada tipo de partição (ext2, swap) possui um id. w salva a tabela de partições no disco e sai. Criando sistema de arquivos (Formatando) mkfs [-t fstype] [fs_opções] dispositivo front end para criação de sistema de arquivos. Cria um sistema de arquivos do tipo fstype em dispositivo. Se fstype for omitido, o padrão é ext2. -c verifica se existem bad blocks em dispositivo (mke2fs e mkdosfs) -L rotulo define o rótulo do volume para o sistema de arquivos (mke2fs) -n rótulo define o rótulo de volume com 11 caracteres, para o sistema de arquivos (mkdosfs) -q mkfs em modo silencioso, resultando em uma saída bastante reduzida. -v modo verbose -j cria um arquivo journal ext3 (mke2fs). Usar –t ext3 ou executar mkfs.ext tem o mesmo efeito que usar a opção –j. mkfs.ext2 dispositivo formata em ext2 #mkfs.ext2 /dev/sda1 mkfs.ext3 dispositivo formata em ext3 #mkfs.ext3 /dev/sda1 mkfs.ext4 dispositivo formata em ext4 #mkfs.ext4 /dev/sda1 mkfs.ntfs dispositivo formata em ntfs #mkfs.ntfs /dev/sda1 mkswap dispositivo formata a partição em swap. Após criar a partição, é necessário rodar o comando swapon para habilitar a partição para área de troca. Swapoff desabilita. #mkswap /dev/hda5; swapon /dev/hda5 mke2fs [opções] [dispositivo] cria um sistema de arquivo ext2 e ext3 -b num especifica num bytes por bloco. -c verifica e formata o disco usando um método mais rápido. 44 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] -m num reserva num% de espaço no disco para o superusuário. # mke2fs /dev/hda1 formara hda1 em ext2 104.2 – Manter a Integridade dos Sistemas de Arquivos - Peso 2 Monitorando o espaço livre em disco e os inodes Inodes são estrutura de dados, dentro dos sistemas de arquivos, que descrevem os arquivos disco. Todo sistema de arquivos tem uma quantidade finita de inodes. df [opções] [arquivo [arquivo...]] exibe informações gerais sobre a utilização do disco para sistemas de arquivos montados em um arquivo (/dev/hda por exemplo). Se arquivo for omitido, são exibido informações de todos sistemas de arquivos montados em /etc/fstab. Aplicado a disco -h exibe os resultados em formato legível, incluindo sufixos como M (Megabyte) e G (Gigabyte) -i exibe informações sobre os inodes restantes. Monitorando o uso do disco du [opções] [diretórios] exibe informações de utilização de disco para diretórios. Se diretórios forem omitidos, a busca é feita no diretório de trabalho atual. Aplicado a diretório -a mostra todos os arquivos, e não apenas diretórios. -c produz um total geral para todos os itens listados. -h exibe resultados em um formato legível, incluindo M e G. -s exibe um resumo para cada um dos diretórios especificados. -S exclui subdiretórios de contagens e de totais, limitando os totais aos diretórios. Modificando um sistema de arquivos tune2fs [opções] dispositivo modifica parâmetros ajustáveis do sistema de arquivos ext2 ou ext3 no dispositivo. Com a opção -j, converte de ext2 para ext3. -l lista os parâmetros ajustáveis para o dispositivo. -c n define a contagem máxima de montagem como n. Quanto o sistema de arquivos é montado n vezes, é feita uma verificação com e2fsck. Definir n como 0 ignora a contagem de montagem. -i n define n o tempo máximo entre duas verificações do sistema de arquivos. n acompanhado por d, dias, por w, semanas, por m, meses. 0 desabilita esta verificação. -L rotulo define o rotúlo. -j adiciona um arquivo journaling ext3 ao sistema de arquivos e configura o flag de recurso hás_journal. -m n define como n a porentagem de blocos reservados para root. O padrão é 5%. -r n define como n o numero de blocos reseravados. Similar a m, porém utiliza nºs ao invés de %. 45 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Verificando e Consertando Sistema de Arquivos fsck [opções] [-t tipo] [fs-opções] sistemas de arquivos verifica se há erros nos sitemas de arquivos e, opcionalmente, os corrige. Por padrão, fsck assume que o S.A é o ext2, e roda interativamente, pausando para lhe pedir permissão antes de aplicar quaisquer reparos. -A roda verificações em todos os sistemas de arquivos especificados em /etc/fstab. -N não executa, mas mostra o que seria feito. -t tipo especifica o tipo de sistema de arquivos a ser verificado; o padrão é ext2. O código de erro retornado é a soma das seguintes condições: 0 - nenhum erro. 1 - erros do sistema de arquivos corrigidos. 2 - o sistema deve ser reiniciado. 4 - erros do sistema de arquivos não corrigidos. 8 - erro operacional. 16 - erro de uso ou de sintaxe. 128 - erro de biblioteca compartilhada. e2fsck [opções] dispositivo é o fsck para sistemas de arquivos ext2 e ext3 e ext4. -b superbloco usa uma cópia alternativa do superbloco. -c verifica se há badblocs -f força uma verificação, mesmo que o sistema de arquivos pareça estar ok -p repara automaticamente o sistema de arquivos, sem pedir confirmação -y responde Yes a todos prompts. fsck.ext2 [opções] dispositivo link para e2fsck com filetype ext2. fsck.ext3 [opções] dispositivo link para e2fsck com filetype ext3. fsck.ext4 [opções] dispositivo link para e2fsck com filetype ext4. debugfs [ -w ] [ -f arquivo-de-comandos ] [ -R solicitação ] [ -V ] [ dispositivo ] faz debug interativo do sistema de arquivos ext2 , etx3 e etx4. -w Especifica que o sistema de arquivos deve ser aberto em modo de leitura e gravação. Sem esta opção, o sistema de arquivos é aberto em modo somente de leitura. -f arquivo-de-comandos faz com que debugfs leia os comandos em arquivo-de-comandos, e execute-os. Quando debugfs terminar de executar os comandos, ele irá terminar. -R solicitação Faz com que debugfs execute o único comando solicitação, e então terminar. -V Exibe o número de versão de debugfs e encerra sua execução. dumpe2fs [opções] [partição] mostra informações do superbloco de uma partição linux. Partição – Identificação da partição que será usada. -b mostra somente os blocos marcados como defeituosos no sistema de arquivos especificado. 46 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] -h exibe apenas informações do bloco e não o bloco em si dumpe2fs /dev/sda1; dumpe2fs -b /dev/sda1 xfs tools (xfs_metadump e xfs_info) não acompanha a distribuição debian. Faz parte do pacote xfsprogs (aptitude install xfsprogs). xfs_metadump [origem] [destino] copia um sistema de arquivos xfs para um arquivo xfs_info expande um sistema de arquivo nfs 104.3 – Controlar a Montagem e a Desmontagem do Sistema de Arquivos - Peso 3 O arquivo /etc/fstab contêm seis campos: Dispositivo especifica o arquivo de dispositivo em /etc Ponto de montagem local onde o sistema de arquivos deve ser montado. Tipo do sistema de arquivos especifica o tipo do sistema de arquivos. Opções de montagem contém uma lista de opções separadas por vírgulas. o async estabele E/S assíncrona para o sistema de arquivos montado. Oposto de sync o auto habilita a montagem através da linha de comando (mount –a). Oposto de noatuo. o defaults rw,suid,dev,exec,auto,nouser e async. o dev interpreta dispositivos de caracteresou blocos no sistema de arquivos. o exec habilita a execução de programas contidos na partição montada. Oposto de noexec o nouser proíbe que usuários não root montem e desmontem o sistema de arquivos. o suidhabilita o efeito de bits suid ou sgid em arquivos executáveis. Oposto de nosuid. o ro monta o sistema de arquivos como somente-leitura (mount –r) o rw monta o sistema de arquivos como leitura/escrita (mount –w) o user permite que um usuário normal monte o sistema de arquivos, mas proíbe outros usuários normais de desmontá-lo. o users permite que qualquer usuário monte e desmonte o sistema de arquivos. Freqüência de dump dump é utilitário de backup padrão UNIX. Armazena um nº inteiro, geralmente definido como 1 para sistemas nativos do UNIX, como ext2, e 0 para outros sistemas. Número de passe para fsck utilizado pelo fsck quando a opção –A é especificada. o Valor 1 instrui o fsck a verificar o sistema de arquivos root (/) primeiro o Valor 2 instrui o fsck a verificar os sistemas de arquivos correspondentes, após aqueles com o valor 1 o Valor 0 instrui o fsck a não verificar o sistema de arquivo. Montando Sistemas de Arquivos 47 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Utilizado para se montar sistemas de arquivos na hierarquia do sistema. mount [opções_de_linha_de_comando] dispositivo consulta /etc/fstab e monta o sistema de arquivo baseado no dispositivo. mount [opções_de_linha_de_comando] diretório consulta /etc/fstab e monta o sistema de arquivo baseado no diretório. mount [opções_de_linha_de_comando] dispositivo diretório monta o sistema de arquivos independentemente do arquivo /etc/fstab. -a monta todas as partições de /etc/fstab, exceto as com noauto. -h exibe ajuda sobre o comando mount -o mount_options especifica opções de montagem na linha de comando. -r monta o sistema de arquivos como somente-leitura -t fstype especifica o tipo do sistema de arquivos. -v verbose -w monta o sistema de arquivos no formato leitura/escrita. Opções de montagem async estabele E/S assíncrona para o sistema de arquivos montado. Oposto de sync auto habilita a montagem através da linha de comando (mount –a). Oposto de noatuo. defaults rw,suid,dev,exec,auto,nouser e async. dev interpreta dispositivos de caracteresou blocos no sistema de arquivos. exec habilita a execução de programas contidos na partição montada. Oposto de noexec nouser proíbe que usuários não root montem e desmontem o sistema de arquivos. suidhabilita o efeito de bits suid ou sgid em arquivos executáveis. Oposto de nosuid. ro monta o sistema de arquivos como somente-leitura (mount –r) rw monta o sistema de arquivos como leitura/escrita (mount –w) user permite que um usuário normal monte o sistema de arquivos, mas proíbe outros usuários normais de desmontá-lo. users permite que qualquer usuário monte e desmonte o sistema de arquivos. remount remonta a partição. o mount -o remount -r /dev/sda3 /mnt/sdap o mount -o remount,ro /dev/sda3 /mnt/sdap o mount /dev/sda3 -r /mnt/sdap -o remount Tipos de sistemas de arquivos ext2 sistema de arquivos padrão do Linux. ext3 possui journaling. É retrocompatível com ext2. 48 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] msdos o sistema fat do MS-DOS FAT, limitando nomes de arquivos “8.3”, vfat FAT virtua, usado em vez de msdos quando nomes de arquivos longos precisam ser preservados. iso9660 formato do CD-ROM. nfs servidores remotos swap proc representa o sistema de arquivos proc, que na verdade nem é realmente um sistema de arquivos. Os arquivos virtuais neste sistema virtual fornecem uma janela para o kernel. Montado em /proc. Desmontando Sistemas de Arquivos umount [opções] dispositivo umount [opções] diretório -a desmonta todos os sitemas de arquivos descritos em /etc/mtab. Este arquivo contêm uma lista atualizada pelos comandos mount e umount. -t fstype desmonta apenas sistemas de arquivos do tipo fstype. 104.4 – Definir e Visualizar Cotas de Disco - Peso 1 Limite hard por usuário quantidade máxima de espaço que um usuário individual pode ter em um sistema. Limite soft por usuário limite configurado que exibirá um alerta, instruindo o usuário a liberar algum espaço, mas ao mesmo tempo, permite que ele continue o seu trabalho. Limit hard por grupo quantidade máxima de espaço que um grupo de usuários pode ter um sistema de arquivo. Limite soft por grupo similar ao soft por usuário. Período de tolerância uma vez atingido o limite soft, o usuário ou grupo entra no período de tolerância. Após esse período, o período soft se torna o hard quota [-u] [opções] usuário exibe os limites de conta para usuário ou grupo. Usuário do grupo só podem ver os limites dos grupos aos quais eles pertencem. quota –g [opções] grupo -q define o modo silencioso, o qual só mostra a situação de cotas excedidas. 49 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] -v habilita o modo verbose, para exibir cotas mesmo que não haja nenhum espaço de armazenamento alocado. quotaon [opções] [sistemas_de_arquivos] habilita cotas de disco previamente configuradas em ou mais sistemas_de_arquivos quotaon [opções] -a -a ativa cotas para todos os sistemas de arquivos de /etc/fstab que estejam marcados como sendo de leitura-escrita com cotas. -g ativa as cotas de grupos. Opção não necessária quando se usa a opção –a. -u padrão, ativa as cotas de usuário. -v modo verbose. quotaoff [opções] [sistemas_de_arquivos] desabilita as cotas de disco em um ou mais sistemas_de_arquivos. quotaoff [opções] –a -a desativa as cotas para todos os sistemas de arquivos em /etc/fstab -g desativa as cotas de grupos. Opção não necessária quando se usa a opção –a. -u desativa as cotas dos usuários. -v modo verbose. quotacheck [opções] sistemas_de_arquivos examina sistemas de arquivos e compila banco de dados referente às cotas. quotacheck [opções] –a -a verifica todas as cotas em /etc/fstab -g grupo compila informações apenas sobre grupos -u usuário padrão. compila informações apenas sobre usuário. -v verbose edquota [-p proto-usuario] [opções] nomes Modifica cotas dos usuários ou dos grupos. Utiliza uma lista de nomes de usuários ou grupos separados por vírgulas. (edita quota) edquoata [opções] –t 50 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] -g modifica cotas de grupos. Se –g for especificada, assume-se que todos os nomes são de grupos. -p proto-usuário duplica as cotas do protótipo para cada usuário ou grupo especificado. -t modifica limites soft. Pode ser sec, min, hour, day, week e month. -u Padrão. modifica as cotas do usuário. repquota [opções] sistemas_de_arquivos relata o status da cota. Exibe um resumido sobre as cotas. repquota –a [opções] mostra um relatório completo de todos sistemas de arquivos que possuem cotas. -a faz relatórios sobre todas as cotas para os sistemas de arquivos de leitura-escrita em /etc/fstab. -g relata as cotas para grupos -u padrão. Relata as cotas para usuários. -v verbose. Habilitando as cotas no /etc/fstab 1º passo - editar o /etc/fstab: /dev/sda6 /home ext3 defaults,usrquota,grpquota 0 2 Para ext4: /dev/sda6 /home ext4 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 2º passo - remontar a partição: # mount -o remount /home 3º passo - criar os arquivos # touch /home/aquota.user # touch /home/aquota.group # cd /home ; chmod 600 aquota.* # quotacheck -vagumf o Opções do quotacheck: v – saída detalhada a – checar tudo g - Verifica as cotas de grupo. u - Verifica as cotas de usuário. m - Não tenta remontar o sistema de arquivos no modo somente leitura. f – forçar a checagem e escrita nos arquivos de quota 4º passo - editar a cota dos usuários 51 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] #edquota -u nomedousuario Dois modos de definir cotas para um usuário/grupo: Quota por blocos define a quota por tamanho. 1000 blocos = + ou - 1M Quota por inodes define a quota por quantidade. 1 inode = + ou - 1 arquivo 104.5 – Usar Permissões de Arquivos para Controlar o Acesso aos Arquivos - Peso 3 Permissão Abreviatura Permissão de Arquivo Permissão de Diretório Leitura (4) R Examinar o conteúdo do arquivo Listar o diretório Escrita (2) W Escrever ou modificar o arquivo Criar ou remover arquivos Execução (1) X Rodar o arquivo como um programa Acessar o diretório (com cd por exemplo) SUID Serve apenas para arquivos executáveis. Quando ativado, permite que usuários normais executem programas cujo dono é o root. 4 em binário e representando por s no lugar de r em usuário. SGID faz com que os arquivos e subdiretórios dentro de um diretório herdem o grupo do diretório pai. Se aplicado a um diretório, força os arquivos/diretórios criados dentro dele a ter o mesmo grupo do diretório pai, ao invés do grupo primário do usuário que o criou. 2 em binário e representando por s no lugar de r em grupo. Sticky não permite que um usuário pertencente ao mesmo grupo, apague o arquivo de outro. Se este bit for ativado dentro, faz com que arquivos criados em um determinado diretório só possam ser apagados por quem o criou (dono), ou pelo dono do rietório, ou pelo root do sistema. Um exemplo de uso do STICKY é o diretório /tmp. Aplicado em diretórios, 1 em binário e representado por T no lugar de x em outros. Definindo modos de acesso umask máscara_em_octal Permite alterar o padrão de permissões para criação de novos arquivos e diretórios. Diretórios – Modo de acessos iniciais Arquivos – Modo de acessos iniciais 777 666 Regra geral e de exceção 1. REGRA GERAL para calcular umask de ARQUIVOS e DIRETÓRIOS: Subtraia: 7 - valor_da_umask Exemplo: Temos uma umask de valor 333 e queremos saber como ficarão as permissões de arquivos e diretórios. 52 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Calculemos então: 777 - 333 = 444 As permissões de arquivos e diretórios serão igual 444, ou seja, r--r--r--. Atenção: a regra a seguir é fundamental para o entendimento completo da questão do "cálculo" umask... veja abaixo. 2. REGRA DE EXCEÇÃO: quando os números da umask forem (0, 2, 4 ou 6), o método de cálculo para a permissão dos ARQUIVOS muda (diretórios PERMANECEM seguindo a regra geral), ficando assim: Subtraia: 6 - valor_da_umask Exemplo: tomando a famosa umask default como base 022; Para ARQUIVOS a permissão será calculada assim: 666 - 022 = 644 As permissões de arquivos serão igual a 644 ou seja, rw-r--r--; Para DIRETÓRIOS, continuamos seguindo a regra geral, então o cálculo fica: 777 - 022 = 755 As permissões de diretórios serão igual a 755, ou seja, rwxr-xr-x. OBS: Perceba que DIRETÓRIOS SEMPRE usam a REGRA GERAL Mais um exemplo pra fixar a idéia # umask 324 Teremos que aplicar ambas as regras neste caso, pois temos o 3 que segue a regra geral tanto para arquivos como para diretórios e temos o 2 e o 4 que seguirão a regra de exceção no caso das permissões para arquivos. Vamos primeiro calcular como ficarão as permissões para ARQUIVOS: 7 - 3 = 4 (segue regra geral porque o valor é 3) 6 - 2 = 4 (segue a regra de exceção porque o valor 2 faz parte da regra de exceção) 6 - 4 = 2 (segue a regra de exceção porque o valor 4 faz parte da regra de exceção) Resultado: para arquivos a permissão ficará igual a 442, ou seja, r--r---w-. Agora calculemos as permissões para DIRETÓRIOS (que segue sempre a regra geral): 7 - 3 = 4 7 - 2 = 5 53 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] 7 - 4 = 3 Resultado: para diretórios a permissão ficará igual a 453, ou seja, r--r-x-wx. Para alterar a permissão padrão, pegue os modos iniciais e subtraia da máscara da umask. Ex: 777(acesso inicial) – 022(umask) = 755 para diretórios(rwx-r-x-r-x) e 666(acesso inicial) – 022(umask) = 644 (rw-r—r--). Valor de umask inicial no debian = 022; Valor de umask inicial do red hat = 002; ls lista o conteúdo de um diretório. d indica o diretório, - inidica um arquivo, l inidica um link simbólico, b inidica um dispositivo de bloco e c, de caractere. Ex.: drwxr-x-r-x Modificando modos de acesso Categoria Modo Descrição Classe de Usuário u Usuário g Grupo o Outros a Todos Operação + Adiciona permissão - Remove permissão = Define a permissão exatamente Permissão r Leitura w Escrita x Execução X Execução para diretório s SUID e SGID t Sticky bit u+x adiciona a permissão de execução para usuários; go-w retira a permissão de escrita para grupo e outros; o+t define sticky bit a=rw define leitura e escrita para todos a+X permissçao de execução para diretórios e para arquivos que já tenham alguma permissão de execução. chmod [opções] modo_simbólico[,modo_simbólico]....arquivos chmod [opções] modo_octal chmod [opções] –reference=r_arquivo arquivos copia as permissão de r_arquivo e aplica em arquivos -c semelhante ao verbose, mas só relata as modificações -R usa o modo recursivo. Altera tas hierarquias de diretórios abaixo dos arquivos 54 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] -v verbose, relatando as ações para todos os arquivos Definindo um diretório de grupo de trabalho #groupadd sales adiciona um grupo sales #usermod –G sales jdoe adiciona jdoe ao grupo Sales #mkdir /home/Sales #chgrp sales /home/sales altera o grupo do diretório /home/sales #chmod 770 /home/sales protege o diretório dos outros usuários #chmod g+s,o+t /home/sales define o SGID para garantir que o grupo sales seja o proprietário dos novos arquivos e define o sticky bit para impedir que os arquivos possam ser apagados por não-proprietários. Usar Permissões de Arquivos para Controlar o Acesso aos Arquivos chown [opções] usuário-proprietário arquivos o usuário passa a ser o proprietário do arquivo e o grupo não é afetado chown [opções] usuário-proprietário arquivos o usuário passa a ser o proprietário do arquivo e o grupo passa a ser o grupo do usuário chown [opções] usuário-proprietário.grupo-proprietário arquivos tanto o usuário quanto o grupo são modificados. chown [opções] .grupo-proprietário arquivos somente o grupo é atribuído e o usuário não é afetado chown [opções] –reference=r_arquivo arquivos o proprietário e o grupo do r_arquivo são usados como modelo e aplicados aos arquivos. -c semelhante ao verbose, mas só relata as modificações -R usa o modo recursivo. Altera tas hierarquias de diretórios abaixo dos arquivos -v verbose, relatando as ações para todos os arquivos chgrp [opções] grupo-proprietário arquivos modifica o grupo-proprietário. chgrp [opções –reference=r_arquivo arquivos 104.6 – Criar e Modificar Links Físicos e Simbólicos - Peso 2 Links Físicos não é um link. É uma outra entrada de diretório para um arquivo existente. O arquivo só é apagado quando a contagem de links físicos seja igual a 0. Pelo fato de todos os links de um arquivo apontarem para o mesmo inode, todos os links físicos precisam residir no mesmo sistema de arquivos. Os links físicos não podem apontar para diretórios. 55 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] Links Simbólicos é simplesmente um ponteiro para outro nome de arquivo. Quando o link abre um link simbólico, ele lê o ponteiro e então encontra o arquivo. Aparece como um l minúsculo no ls-l. Os links simbólicos podem apontar para outros sistemas de arquivos, locais ou remotos, e podem também apontar para diretórios. ln [opções] arquivo link cria um novo link para apontar para o arquivo, o qual já deve existir ln [opções] arquivos diretórios cria links no diretório para todos os arquivos especificados. São criados links físicos, a não ser que a opção –s seja especificada. -f sobrescreve links existentes ou arquivos existentes no diretório de destino -i consulta interativamente o usuário antes de sobrescrever os arquivos de destino -s cria um link simbólico, em vez de físico Quando um link simbólico é encontrado com cp, o conteúdo do arquivo para qual o link aponta é copiado, a não ser que a opção –d seja especificada. Encontrando links para um arquivo O comando ls –l exibe uma conveniente notação de ponteiro, indicando para onde os links estão apontando. find / -lname myfile faz o caminho inverso, exibe todos os links para myfile. find /home –inum 90469 exibe todos os links físicos para o arquivo de inode 90469 104.7 – Encontrar Arquivos de Sistema e Colocar Arquivos no Local Correto - Peso 2 Tipos de Dados Compartilhamento de Dados Compartilháveis podem ser usados por múltiplos sistemas hosts em uma rede. Ex: Arquivos de dados, de programas executáveis e a documentação do sistema. Não-compartilháveis vinculados a um host específico. Ex: Arquivo de configuração único Modificação de dados Variáveis modificados por processos naturais e freqüentes. Ex: arquivos dos usuários e de logs Estáticos permanecem sem modificações. Ex: programas binários Compartilhável Não compartilhável Estático /usr /etc /usr/local /boot Variável /var/mail /var/log /home /proc 56 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] O Sistema de Arquivos root (/) Deve conter utilitários e arquivos suficientes para dar boot Deve conter utilitários para que o administrador repare ou restaure o sistema Deve ser relativamente pequeno Softwares não devem criar arquivos nem diretórios no sistema de arquivos root Diretórios Essenciais (devem ficar no mesmo diretório que /) /bin contêm binários essenciais ao sistema /dev arquivos de disposistivos /etc informações de configurações únicas para o sistema /lib bibliotecas compartilhadas essenciais à inicialização do S.O. /mnt montagem temporárias do sistema /root diretório inicial padrão do root. /sbin contêm binários usados para administração. Só root tem acesso a eles. Diretórios Não-Essenciais: /boot arquivos essenciais para o carregador de boot. /hoem arquivos pessoais dos usuários /opt arquivos de programas não incluídos no pacote do sistema operacional. Browsers, Players /tmp arquivos temporários /usr arquivos de programas não essenciais para procedimentos de emergência. Contém dados somente-leitura e, freqüentemente, é montado localmente, e compartilhado via NFS de somente- leitura. /var arquivos de logs /sys contém os módulos de dispositivos usb O Sistema de Arquivos /usr /usr/X11R6contém arquivos para o XFree86 /usr/bin principal localização para comandos de usuário que não sejam considerados essenciais para manutenção de emergência do sistema. /usr/include localização padrão para arquivos include ou header, usada em C, C++ /usr/lib biliotecas compartilhadas. /usr/local nível mais alto de outra hierarquia de arquivos binários, para uso do administrador do sistema. Contêm diretórios pareidos com os do /usr. /usr/sbin principal localização para comandos de super-usuários que não sejam considerados essenciais para manutenção de emergência do sistema. 57 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] /usr/share contém uma hierarquia de arquivos de dados que são independentes, e portanto, podem ser compartilhados entre, várias arquiteturas de hardware e versões de S.O. /usr/srcdiretório opcional. Contém códigos fontes. O sistema de Arquivos Var /var/account dados de contabilidade de processo /var/cache armazenamento temporário de dados intermediários, como por exemplo, resultado de computações extensas. /var/crash dumps de informações sobre quedas de sistema. /var/games armazena informações de estado, dados de pontuações do usuário e outros itens transitórios. /var/lockarquivos de lock, usados pelos aplicativos para indicar a sua existência para outros processos. /var/log repositório principal de logs do sistema. /var/mail caixa de correio do sistema, com arquivos de mail para cada usuário /var/opt localidade para arquivos temporários de programas armazenados em /opt /var/run arquivos que descrevem o estado do sistema /var/spool informações que são enfileiradas para processamento. /var/state armazena informações que ajudem os aplicativos a preservar o estado ao longo de múltiplas chamadas ou instancias. /var/tmp arquivo temporários, mas que sobrevivem após vários boots do sistema. /var/yp contém os arquivos de banco de dados do NIS (network information service). Localização de arquivos binários Tipos de arquivo Comandos do usuário Comandos de administração do sistema Fornecido pelo fabricante, essenial /bin /sbin Fornecido pelo fabricante, não essencial /usr/Bin /usr/sbin Fornecido localmente, não-essencial /usr/local/bin /usr/local/sbin Localizando arquivos whereis comando mostra a localização do binário do comando, do arquivo de configuração (caso exista) e a localização das páginas de manuais do determinado comando ou arquivo. where ls o ls: /bin/ls /usr/share/man/man1/ls.1.gz which comando mostra somente a localização do bínário. Utiliza a variável PATH. which ls o /bin/ls whatis comando exibe uma descrição resumida e mostra em qual sessão de manual que o comando se enquadra. 58 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] whatis ls o ls (1) - lista o conteúdo do diretório find caminhos expressão localiza arquivos que batam com uma expressão, começando por caminhos e continuando recursivamente. locate padrões localiza arquivos cujos nomes batam com um ou mais padrões, procurando-se em um índice de arquivos previamente criados. updatedb [opções] atualiza ou cria o banco de dados slocate em /var/lib/slocate/slocate.db --netpaths=’path1 path2...’ adiciona path de rede à lista de busca --prunepaths=’path1 path2’ elimina path de rede à lista de busca --prunefs=’filesystems….’ elimina tipos inteiros de sistemas de arquivos, como por exemplo NFS Também há a possibilidade de se configurar as opções através das variáveis de ambiente NETPATHS,PRUNEPATHS E PRUNEFS ou editando-as no arquivo de configuração /etc/updatedb.conf. whatis palavras_chave busca no banco de dados whatis por correspondências exatas às palavras_chaves e exibe os resultados. Exibe também quais subdiretórios de manuais [somente subdiretórios de manuais] têm entradas para o aplicativo. whatis ls o ls (1) – exibe a lista de diretórios ls (1) = man 1 - programas executáveis e comandos do shell Simulados e Observações /etc/skel tudo colocado dentro desse diretório, é copiado para a home do usuário quando este é criado. Minhas músicas Meus vídeos /usr/share/man/ guarda os arquivos de manuais. man 1 - Programas executáveis e comandos do Shell; man 2 - Chamadas de sistema (funções providas pelo Kernel); man 3 - Chamadas de bibliotecas (funções como bibliotecas do sistema); man 4 - Arquivos de dispositivo (localizados normalmente no /dev); man 5 - Arquivos de configuração e convenções; man 6 - Jogos; man 7 - Variados (incluindo pacotes de macros e convenções); man 8 - Comandos de administração do sistema (normalmente usado somente pelo root); man 9 - Rotinas de Kernel. /usr/share/doc guarda documentação (how-to) mkreiserfs [opções] partição 59 Certificação LPI 101 - Vagner Le Roy - www.vagnerleroy.com -
[email protected] -s [num] - Especifica o tamanho do arquivo de journal em blocos. O valor mí-nimo é 513 e o máximo 32749. O valor padrão é 8193. -l [NOME] - Coloca um nome (label) no sistema de arquivos. -f - Força a execução do mkreiserfs. -d - Ativa a depuração durante a execução do mkreiserfs. /etc/services associa um nome de um serviço a um número de porta. Suas linhas são organizadas da seguinte maneira: nome porta/protocolo apelido #comentário Onde: Nome - Nome do serviço; Porta/protocolo - Esse campo está representado da seguinte maneira: o Porta - número da porta que o serviço está rodando; o Protocolo - Tipo de protocolo onde a porta atua, aceita opções TCP e UDP. Apelido - Outro nome pelo qual o serviço pode ser amigavelmente chamado; Comentário - Uma # seguida de uma descrição representa um comentário e é ignorado pelo interpretador.