LPI-101

March 26, 2018 | Author: Daniel Moreno | Category: Booting, Bios, Kernel (Operating System), Hard Disk Drive, Library (Computing)


Comments



Description

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/X11R6conté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/srcdiretó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/lockarquivos 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 nexibe 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.  -Gusa 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 pexibe 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; /bootarquivos 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 suidhabilita 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.  suidhabilita 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/X11R6conté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/srcdiretó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/lockarquivos 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.
Copyright © 2024 DOKUMEN.SITE Inc.