Apostila Linux

download Apostila Linux

If you can't read please download the document

Transcript of Apostila Linux

Fundamentos de Administrao Linux

Fundamentos de Administrao Linux

-1

Fundamentos de Administrao Linux

Hardware e Arquitetura

-2

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Configurao de Atributos Fundamentais de BIOS

-3

Fundamentos de Administrao Linux

Recursos de Hardware O hardware bsico do sistema configurado atravs do utilitrio de configurao de BIOS, que pode ser acessado no incio do boot da mquina. Atravs deste utilitrio, possvel liberar e bloquear perifricos integrados, ativar proteo bsica contra erros (proteo bsica contra vrus e S.M.A.R.T.) e configurar endereos I/O, IRQ e DMA. IRQ: Requisio de Interrupo do dispositivo para a CPU, que interrompe a atividade em andamento e processa a instruo enviada pelo dispositivo. I/O: Endereo especfico no mapa de memoria do sistema. A CPU ir se comunicar com o dispositivo lendo e escrevendo neste endereo DMA: Canal que permite a certos dispositivos, acesso direto memria sem intermdio da CPU.

Recursos padro utilizados por dispositivos comuns:

Dispositivo /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 /dev/lp0 /dev/lp1 Placa de Som -

Porta 0x03f8 0x02f8 0x03e8 0x02e8 0x378 0x278 0x220

I/O IRQ 4 3 4 3 7 5 -

-4

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

comum que algumas mquinas, como servidores dedicados, sejam acessados apenas remotamente e no tenham um teclado conectado. Em caso de algum problema que faa a mquina desligar, como interrupo no fornecimento de energia, importante que a mquina reinicie e volte a operar normalmente. Alguns BIOS procuram por um teclado e interrompem o boot caso no o encontrem. Para esse tipo de mquina sem teclado, imprescindvel que o BIOS esteja configurado para no checar por teclado durante o boot. O kernel do Linux armazena informaes sobre recursos de dispositivos no diretrio /proc, nos arquivos: /proc/dma /proc/interrupts /proc/ioports /proc/pci Trecho exemplo de /proc/ioports:0000-001f : dma1 0020-0021 : pic1 0040-0043 : timer0 0050-0053 : timer1 0060-006f : keyboard 0070-0077 : rtc 0080-008f : dma page reg 00a0-00a1 : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 0376-0376 : ide1 0378-037a : parport0 03c0-03df : vesafb 03f6-03f6 : ide0 03f8-03ff : serial

-5

Fundamentos de Administrao Linux

-6

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Comandos para inspecionar dispositivos

-7

Fundamentos de Administrao Linux

lspci Lista informaes de chipset dos componentes PCI. Com a opo -v lista I/O e IRQ dos dispositivos. Exemplo de lspci:

# lspci -v (...) 00:0f.1 Communication controller: C-Media Electronics Inc CM8738 (rev 10) Subsystem: C-Media Electronics Inc CM8738 Flags: medium devsel, IRQ 9 I/O ports at dc80 [size=64] Capabilities: [40] Power Management version 2 01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 630/730 PCI/AGP VGA Display Adapter (rev 20) (prog-if 00 [VGA]) Subsystem: Silicon Integrated Systems [SiS] 630/730 PCI/AGP VGA Display Adapter Flags: 66Mhz, medium devsel BIST result: 00 Memory at e0000000 (32-bit, prefetchable) [size=128M] Memory at efee0000 (32-bit, non-prefetchable) [size=128K] I/O ports at cc80 [size=128] Expansion ROM at [disabled] Capabilities: [40] Power Management version 1 Capabilities: [50] AGP version 2.0

-8

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Dmesg Mostra as mensagens do kernel, da identificao do hardware em diante. Essa informao est disponvel em /var/log/dmesg e /var/log/messages. Exemplo de dmesg:

# dmesg (...) ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A parport0: PC-style at 0x378 (0x778) [PCSPP(,...)] parport0: irq 7 detected lp0: using parport0 (polling). io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered Floppy drive(s): fd0 is 1.44M (...)

-9

Fundamentos de Administrao Linux

Configurao de Dispositivos no IDE

- 10

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

SCSI (scuzzy) H dois tipos de dispositivos SCSI: 8 bit: 8 dispositivos incluindo o controlador. 16 bit: 16 dispositivos incluindo o controlador. Dispositivos SCSI so identificados atravs de um conjunto de trs nmeros chamado SCSI_ID: 1 O Canal SCSI. Cada adaptador SCSI suporta um canal de dados no qual so anexados os dispositivos SCSI. So numerados a partir de zero. 2 O ID do dispositivo. A cada dispositivo atribudo um nmero ID nico altervel atravs de jumpers. A gama de Ids vai de 0 a 7 em controladores de 8 bit e de 0 a 15 em controladores de 16 bit. O ID do controlador costuma ser 7. 3 O nmero lgico da unidade (LUN). usado para determinar diferentes dispositivos dentro de um mesmo alvo SCSI. Pode indicar uma partio em um disco ou um dispositivo de fita especfico em um dispositivo multi-fita. Hoje no muito utilizado pois adaptadores SCSI esto mais baratos e podem comportar mais alvos por barramento. Todos dispositivos SCSI so listados em /proc/scsi/scsi:

# cat /proc/scsi/scsi Attached devices: Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: HL-DT-ST Model: RW/DVD GCC-4521B Rev: 1.00 Type: CD-ROM ANSI SCSI revision: 02

O comando scsi_info usa as informaes deste arquivo para mostrar o SCSI_ID e o modelo do dispositivo solicitado:

- 11

Fundamentos de Administrao Linux

# scsi_info /dev/scd0 SCSI_ID="0,0,0" HOST="1" MODEL="HL-DT-ST RW/DVD GCC-4521B" FW_REV="1.00"

Por padro, o dispositivo SCSI de boot o de ID 0, o que pode ser alterado na BIOS SCSI. Se existirem tanto dispositivos SCSI quanto IDE, a ordem do boot precisa ser especificada na BIOS da mquina.

- 12

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Configurao de Placas de ExpansoA configurao de placas de expanso diversas engloba os aspectos abordados nos captulos anteriores, mais um conhecimento mais slido sobre coldplug, hotplug e inspeo de hardware. Em linhas gerais, coldplug significa a impossibilidade de se conectar dispositivo sem a necessidade de desligar a mquina. Exemplos de dispositivos coldplug so placas PCI, ISA e dispositivos IDE. Na maioria dos computadores, CPU e pentes de memria so coldplug. Porm, alguns servidores de alta performance suportam hotplug para esses componentes. Hotplug o sistema que permite conectar novos dispositivos mquina em funcionamento e us-los imediatamente, como no caso de dispositivos USB. O sistema Hotplug foi incorporado ao ncleo do modelo de driver do kernel 2.6, assim qualquer barramento ou classe pode disparar eventos hotplug quando um dispositivo conectado ou desconectado. Assim que um dispositivo conectado ou desconectado, o hotplug dispara um evento correspondente, geralmente trabalhando junto do subsistema udev, que atualiza os arquivos de dispositivos em /dev. O hotplug precisa estar liberado no kernel, atravs da opo CONFIG_HOTPLUG. Dessa forma, haver o arquivo /proc/sys/kernel/hotplug contendo o caminho para o programa hotplug (normalmente em /sbin/hotplug). A ao tomada pelo hotplug depender do nome do agente passado pelo kernel (nomes de agentes podem ser usb, pci, net, etc.). Para cada agente existe um script correspondente em /etc/hoplug/, que se encarrega de configurar corretamente o dispositivo no sistema. Mesmo alguns dispositivos coldplug so configurados pelo sistema hotplug. Na hora do boot, o script /etc/init.d/hotplug (ou /etc/rc.d/rc.hotplug no slackware) dispara os agentes em /etc/hotplug/ para configurar aqueles dispositivos presentes antes da mquina ser ligada.

- 13

Fundamentos de Administrao Linux

Configurao de Dispositivos USBDispositivos para interface USB (Universal Serial Bus) so divididos em classes: Display Devices Communication Devices Audio Devices Mass Storage Devices Human Interface Devices (HID) porta USB operada por um controlador (Host Controller): OHCI (compaq) UHCI (intel) EHCI (USB v2.0)

- 14

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Uma vez conectados, os dispositivos USB podem ser inspecionados com o comando lsusb.

# lsusb Bus 002 Device 003: ID 05a9:a511 OmniVision Technologies, Inc. OV511+ WebCam Bus 002 Device 002: ID 0f2d:9308 ViPower, Inc. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000

As informaes detalhadas sobre os dispositivos USB conectadas so armazenadas no arquivo /proc/bus/usb/devices. O controle dos dispositivos USB feito pelo hotplug. Etapas executadas quando uma cmera USB conectada ao computador: Os mdulos USB do kernel identificam o evento USB e a ID vendor:product. Esses dados so passados para /sbin/hotplug /proc/sys/kernel/hotplug no for o padro) (ou outro, se o indicado em

O agente USB respectivo (/etc/hotplug/usb.agent) associa o dispositivo ao produto correspondente. A relao entre dispositivo e mdulo consta no arquivo /etc/hotplug/usb.distmap.

O primeiro estgio envolve procedimentos do kernel, enquanto o segundo e terceiro estgio envolvem o mecanismo do hotplug. O mapa USB correto precisa estar disponvel para iniciar corretamente o dispositivo.

- 15

Fundamentos de Administrao Linux

- 16

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Acesso

- 17

Fundamentos de Administrao Linux

Consideraes IniciaisDiferenciao entre letras maisculas e minsculas (case sensitive): todos os shells do Linux fazem esta diferenciao, isto significa que os nomes dos arquivos devem ser especificados com exatido, ou seja, o arquivo denominado Manual.txt um arquivo diferente do arquivo denominado manual.txt.. Histrico do shell: o shell padro do Linux, bash, grava os ltimos 1000 comandos em uma lista denominada .bash_history no diretrio home do usurio. Dessa forma as operaes por linha de comando ganham em agilidade. A fim de percorrer o .bash_history, use as teclas do cursor para cima e para baixo. Tecla Tab: outro recurso do bash o autopreenchimento de comandos . Vejamos o exemplo abaixo: 1. Digite as primeiras letras do nome de um comando, neste exemplo ser utilizado o comando date. [root@localhost /root]# da

2. Pressione a tecla Tab e o shell ir completar o nome do comando. [root@localhost /root]# date

Curingas: o Linux permite o uso de curingas tanto para sobreposio de uma sequncia de caracteres (*), quanto para uma nica posio (?). 1. Acessando o diretrio boot da raiz, utilizando o curinga para sobreposio de uma sequncia de caracteres. root@localhost /]#cd bo* 2. Acessando o diretrio boot da raiz, utilizando o curinga de sobreposio nica. [root@localhost /root]#cd boo? Para que o usurio tenha acesso ao sistema necessrio que ele possua uma conta, ou seja, um login e senha. 1. No prompt de logon digite o nome da conta e pressione a tecla enter.

Localhost login: root- 18 2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Password: *******

2.

No prompt da senha digite a sua senha e pressione a tecla enter.

3. Caso o processo de logon tenha sido realizado com xito, surge na tela uma mensagem do sistema conforme o exemplo abaixo:Last login: Thu Feb 8 14:06:27 on tty1

4.

Logo aps o surgimento desta mensagem o shell do usurio disponibilizado.

[root@localhost /root]#

- 19

Fundamentos de Administrao Linux

Consoles VirtuaisO Linux permite o acesso diversas vezes e de forma independente, com diferentes usurios, atravs do uso de consoles virtuais. Estes consoles oferecem um meio de executar diferentes shells ao mesmo tempo. O Linux suporta pelo menos 6 consoles virtuais. Vejamos como proceder para utilizar consoles virtuais: 1. Depois de obter acesso ao sistema, mantenha pressionada a tecla Alt e pressione as teclas F2, F3, F4, F5 ou F6. 2. Repita o processo de login, para cada console, a fim de iniciar as operaes.

Para alternar entre consoles basta manter pressionada a tecla Alt + a tecla de funo apropriada.

- 20

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

O que shell?Shell, ou interpretador de comandos o programa executado logo aps o login, cuja tarefa interpretar e executar os comandos do usurio. Por exemplo, quando o usurio digita no console "ls" e pressiona a tecla Enter, o shell l essa string e verifica se existe algum comando interno (embutido no prprio shell) com esse nome. Se houver, ele executa esse comando interno. Caso contrrio, ele vai procurar no PATH por algum programa que tenha esse nome. Se encontrar, ele executa esse programa, caso contrrio, ele retorna uma mensagem de erro. Para cada terminal ou console aberto, existe um shell sendo executado. Ao digitar o comando "ps" (process status), podemos verificar que um dos programas rodando o shell do usurio:PID TTY 13299 pts/1 13300 pts/1 13337 pts/1 TIME CMD 00:00:00 su 00:00:00 bash 00:00:00 ps

Existem diversos tipos de shell: bash, csh, ksh, ash, etc. O mais utilizado atualmente o bash (GNU Bourne-Again SHell).

- 21

Fundamentos de Administrao Linux

gurao do Shell

- 22

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Variveis de Ambiente do Shell O shell carrega vrios arquivos localizados em diferentes diretrios no sistema, denominados: arquivos de recursos, perfil e login. Os arquivos de perfil contm as variveis de ambiente, as quais so definies e valores que o shell ou outros programas reconhecem depois do acesso.

- 23

Fundamentos de Administrao Linux

Exibir variveis de ambiente Para exibir o valor de uma determinada varivel ou uma lista das variveis de ambiente atualmente definidas, podemos utilizar o comando printenv conforme o exemplo abaixo: Exemplos:[leonardo@localhost root]# printenv PATH

- 24

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Se digitarmos apenas printenv, teremos uma lista com o valor das variveis do ambiente. Outra forma de exibir as variveis de ambiente atravs do comando env, que ao contrrio do comando printenv no exibe o valor de uma s varivel. Variveis de ambiente: EDITOR HISTSIZE HOME Editor padro do sistema O nmero de linhas de comando memorizadas O diretrio home do usurio atual

HOSTTYPE A arquitetura do sistema em uso LOGNAME Nome do usurio atual MAIL OSTYPE PATH PS1 SHELL SHLVL TERM USER O diretrio que contm as mensagens de correio eletrnico recebidas O sistema operacional em uso O caminho (ou caminhos) a procurar os comandos Definio do prompt da linha de comando Nome do shell atualmente em uso O nmero de shell atualmente em execuo O tipo de terminal em uso O nome do usurio atual

- 25

Fundamentos de Administrao Linux

Definir uma varivel de ambiente Para definir uma varivel de ambiente no shell bash necessrio utilizar o comando export, obedecendo a seguinte sintaxe: NOME_VARIAVEL="valor";export NOME_VARIAVEL. Exemplos:[leonardo@localhost root]# EDITOR ="/bin/vi" ; export EDITOR

Outra forma de definir variveis de ambiente a partir da linha de comando de qualquer shell usar o comando env, conforme a seguinte sintaxe: env NOME_VARIAVEL=valor

- 26

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Excluir uma varivel de ambiente Para excluir uma varivel de ambiente digite: unset NOME_VARIAVEL

- 27

Fundamentos de Administrao Linux

A varivel PATH Essa varivel define o diretrio ou diretrios onde o shell pode encontrar os programas executveis, caso a varivel no tenha sido definida corretamente ser necessrio digitar todo o caminho para o programa. Exemplos:[leonardo@localhost root]# echo $PATH /sbin:/bin [leonardo@localhost root]# env PATH=$PATH:/home [leonardo@localhost root]# echo $PATH /sbin:/bin:/home

Estas instrues sobre como adicionar caminhos ao PATH so vlidas temporariamente, at sair do terminal. Para adicionar um caminho ao PATH de forma definitiva, para todo o sistema, necessrio editar o arquivo /etc/profile, para isso acesse o sistema como root.

- 28

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Personalizando o prompt da linha de comando A varivel de prompt do shell padro bash, PS1, definida no /etc/profile. A definio de prompt usa caracteres especiais reconhecidos pelo shell bash, conforme este exemplo:PS1="[\u@\h \W]\\$"

Esta linha deve existir, tambm, no arquivo .bash_profile. A varivel PS1 deve ser acrescentada linha de exportao no .bash_profile, desta forma:

export USERNAME ENV PATH PS1

Caracteres do prompt do shell bash: \! \# \\$ \W \[ \\ \] \d \h \n \s \t \u \w Exibe o nmero de histrico do comando Exibe o nmero desse comando Exibe # para root ou $ para usurio comum. Exibe o nome bsico do diretrio de trabalho atual Indica a sequncia dos caracteres no imprimveis Imprime uma barra invertida Finaliza a sequncia de caracteres no imprimveis Usa a data no prompt Usa o nome de host do computador no prompt Exibe uma nova linha de prompt Exibe o nome do shell Exibe a hora Exibe o nome atual do usurio Exibe o diretrio atual de trabalho

Exemplos:- 29

Fundamentos de Administrao Linux

[leonardo@localhost root]# PS1='\d \t: ';export PS1 Sun Feb 18 18:45:07:

- 30

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Alias So redefinies de comandos inseridas, pelo root, no arquivo /etc/bashrc que permitem maior agilidade no uso dos comandos. Exemplos: alias cp="cp -i" alias mv="mv -i"

- 31

Fundamentos de Administrao Linux

Criar o arquivo e colocar nele os comandos Use o nano, VI ou outro editor de textos de sua preferncia para colocar todos os comandos dentro do arquivo. A primeira linha do script deve ser:#!/bin/bash

Para que ao ser executado, o sistema saiba que o shell quem ir interpretar estes comandos. Para tornar o script um arquivo executvel:chmod +x sistema

- 32

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Problemas na execuo do script "Comando no encontrado" O shell no encontrou o seu script. Verifique se o comando que voc est chamando tem exatamente o mesmo nome do seu script. Lembre-se que no Unix/Linux as letras maisculas e minsculas so diferentes, ento o comando "SISTEMA" diferente do comando "sistema". Caso o nome esteja correto, verifique se ele est no PATH do sistema. O comando "echo $PATH" mostra quais so os diretrios conhecidos, mova seu script para dentro de um deles, ou chame-o passando o caminho completo. Se o script estiver no diretrio corrente, chame-o com um "./" na frente, assim:prompt$ ./sistema

Caso contrrio, especifique o caminho completo desde o diretrio raiz: prompt$ /tmp/scripts/sistema "Permisso Negada" O shell encontrou seu script, mas ele no executvel. Use o comando chmod +x seu-script para torn-lo um arquivo executvel. "Erro de Sintaxe" O shell encontrou e executou seu script, porm ele tem erros. Um script s executado quando sua sintaxe est 100% correta. Verifique os seus comandos, geralmente o erro algum IF ou aspas que foram abertos e no foram fechados. A prpria mensagem informa o nmero da linha onde o erro foi encontrado.

- 33

Fundamentos de Administrao Linux

O primeiro shell script. Nesse ponto, voc j sabe o bsico necessrio para fazer um script em shell do zero e execut-lo. Mas apenas colocar os comandos em um arquivo no torna este script til. Vamos fazer algumas melhorias nele para que fique mais compreensvel. Executar os trs comandos seguidos resulta em um bolo de texto na tela, misturando as informaes e dificultando o entendimento. preciso trabalhar um pouco a sada do script, tornando-a mais legvel. O comando "echo" serve para mostrar mensagens na tela. Que tal anunciar cada comando antes de execut-lo?#!/bin/bash echo "Data e Horrio:" date echo echo "Uso do disco:" df echo echo "Usurios conectados:" w

Para usar o echo, basta colocar o texto entre "aspas". Se nenhum texto for colocado, uma linha em branco mostrada. Para o script ficar mais completo, vamos colocar uma interao mnima com o usurio, pedindo uma confirmao antes de executar os comandos.#!/bin/bash echo "Vou buscar os dados do sistema. Posso continuar? [sn] " read RESPOSTA test "$RESPOSTA" = "n" && exit echo "Data e Horrio:" date echo

- 34

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

echo "Uso do disco:" df echo echo "Usurios conectados:" w

O comando "read" leu o que o usurio digitou e guardou na varivel RESPOSTA. Logo em seguida, o comando "test" verificou se o contedo dessa varivel era "n". Se afirmativo, o comando "exit" foi chamado e o script foi finalizado. Nessa linha h vrios detalhes importantes: O contedo da varivel acessado colocando-se um cifro "$" na frente O comando test til para fazer vrios tipos de verificaes em textos e arquivos O operador lgico "&&", s executa o segundo comando caso o primeiro tenha sido OK. O operador inverso o "||

- 35

Fundamentos de Administrao Linux

Com o tempo, o script vai crescer, mais comandos vo ser adicionados e quanto maior, mais difcil encontrar o ponto certo onde fazer a alterao ou corrigir algum erro. Para poupar horas de estresse, e facilitar as manutenes futuras, preciso deixar o cdigo visualmente mais agradvel e espaado, e colocar comentrios esclarecedores.#!/bin/bash # sistema - script que mostra informaes sobre o sistema # Autor: Fulano da Silva # Pede uma confirmao do usurio antes de executar echo "Vou buscar os dados do sistema. Posso continuar? [sn] " read RESPOSTA # Se ele digitou 'n', vamos interromper o script test "$RESPOSTA" = "n" && exit # O date mostra a data e a hora correntes echo "Data e Horrio:" date echo # O df mostra as parties e quanto cada uma ocupa no disco echo "Uso do disco:" df echo # O w mostra os usurios que esto conectados nesta mquina echo "Usurios conectados:" w

Basta iniciar a linha com um "#" e escrever o texto do comentrio em seguida. Estas linhas so ignoradas pelo shell durante a execuo. O cabealho com informaes sobre o script e seu autor tambm importante para ter-se uma viso geral do que o script faz, sem precisar decifrar seu cdigo. Tambm possvel colocar comentrios no meio da linha # como este

- 36

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Variveis As variveis so a base de qualquer script. dentro delas que os dados obtidos durante a execuo do script sero armazenados. Para definir uma varivel, basta usar o sinal de igual "=" e para ver seu valor, usa-se o "echo":prompt$ VARIAVEL="um dois tres" prompt$ echo $VARIAVEL um dois tres prompt$ echo $VARIAVEL $VARIAVEL um dois tres um dois tres prompt$

- 37

Fundamentos de Administrao Linux

No podem haver espaos ao redor do igual "=" Ainda possvel armazenar a sada de um comando dentro de uma varivel. Ao invs de aspas, o comando deve ser colocado entre "$(...)", veja:prompt$ HOJE=$(date) prompt$ echo "Hoje : $HOJE" Hoje : Sb Abr 24 18:40:00 BRT 2004 prompt$ unset HOJE prompt$ echo $HOJE prompt$

E finalmente, o comando "unset" apaga uma varivel. Para ver quais as variveis que o shell j define por padro, use o comando "env". Diferente de outras linguagens de programao, o shell no usa os parnteses para separar o comando de seus argumentos, mas sim o espao em branco. O formato de um comando sempre:COMANDO OPES PARMETROS

O comando "cat" mostra o contedo de um arquivo. O comando "cat -n sistema" mostra o nosso script, com as linhas numeradas. O "-n" a opo para o comando, que o instrui a numerar linhas, e "sistema" o ltimo argumento, o nome do arquivo. O "read" um comando do prprio shell, j o "date"" um executvel do sistema. Dentro de um script, no faz diferena usar um ou outro, pois o shell sabe como executar ambos. Assim, toda a gama de comandos disponveis no Unix/Linux pode ser usada em scripts! H vrios comandos que foram feitos para serem usados com o shell, so como ferramentas. Alguns deles:

Coman do cat cut- 38

Funo

Opes

Mostra arquivo Extrai campo

-n, -s -d, -f, -c2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

date find grep head printf rev sed seq sort tail tr uniq wc

Mostra data Encontra arquivos Encontra texto Mostra Incio Mostra texto Inverte texto Edita texto Conta Nmeros Ordena texto Mostra Final Transforma texto Remove duplicatas Conta Letras

-d, +'...' -name, -iname,-type,f, -exec -i, -v, -r, -qs, -w,-x -n, -c nenhuma nenhuma -n,s/isso/aquilo/, d -s, -f -n, -f, -r, -k -t, -o -n, -c, -f -d, -s, A-Z a-z -i, -d, -u -c, -w, -l, -L

- 39

Fundamentos de Administrao Linux

Use "man comando" ou "comando --help" para obter mais informaes sobre cada um deles. E o melhor, em shell possvel combinar comandos, aplicando-os em sequncia, para formar um comando completo. Usando o pipe "|" possvel canalizar a sada de um comando diretamente para a entrada de outro, fazendo uma cadeia de comandos. Exemplo:prompt$ cat /etc/passwd | grep root | cut -c1-10 root:x:0:0 operator:x prompt$

- 40

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

O comando test O canivete suo dos comandos do shell o "test", que consegue fazer vrios tipos de testes em nmeros, textos e arquivos. Ele possui vrias opes para indicar que tipo de teste ser feito, algumas delas:

Testes em variveis

T e st e s e m a r q u i v o s -d -f -r -s -w -nt -ot -ef -a -o

lt -gt -le -ge -eq -ne = != -n -z

Nm. menor que (LessThan) Nm. maior que (GreaterThan) Nm. menor igual (LessEqual) Nm. maior igual (GreaterEqual) Nm. igual (EQual) Nm. diferente (NotEqual) String igual String diferente String no nula String nula

- 41

Fundamentos de Administrao Linux

Exerccio: script que testa arquivos Tente fazer o script "testa-arquivos", que pede ao usurio para digitar um arquivo e testa se este arquivo existe. Se sim, diz se um arquivo ou um diretrio. Exemplo de uso:

prompt$ testa-arquivos Digite o arquivo: /naoexiste O arquivo '/naoexiste' no foi encontrado prompt$ testa-arquivos Digite o arquivo: /tmp /tmp um diretrio prompt$ testa-arquivos Digite o arquivo: /etc/passwd /etc/passwd um arquivo prompt$

- 42

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Conceitos avanados At agora vimos o bsico, o necessrio para se fazer um script de funcionalidade mnima. A seguir, conceitos novos que ampliaro as fronteiras de seus scripts!

- 43

Fundamentos de Administrao Linux

Recebimento de opes e parmetros Assim como os comandos do sistema que possuem opes e parmetros, os scripts tambm podem ser preparados para receber dados via linha de comando. Dentro do script, algumas variveis especiais so definidas automaticamente, em especial, "$1" contm o primeiro argumento recebido na linha de comando, "$2" o segundo, e assim por diante. Veja o script "argumentos":#!/bin/sh # argumentos - mostra o valor das variveis especiais echo "O nome deste script : $0" echo "Recebidos $# argumentos: $*" echo "O primeiro argumento recebido foi: $1" echo "O segundo argumento recebido foi: $2"

Ele serve para demonstrar o contedo de algumas variveis especiais, acompanhe:prompt$ ./argumentos um dois trs O nome deste script : ./argumentos Recebidos 3 argumentos: um dois trs O primeiro argumento recebido foi: um O segundo argumento recebido foi: dois

O acesso direto, basta referenciar a varivel que o valor j estar definido. Assim possvel criar scripts que tenham opes como --help, --version e outras.

- 44

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Expresses aritmticas O shell tambm sabe fazer contas. A construo usada para indicar uma expresso aritmtica "$ ((...))", com dois parnteses.

prompt$ echo $((2*3)) 6 prompt$ echo $((2*3-2/2+3)) 8 prompt$ NUM=44 prompt$ echo $((NUM*2)) 88 prompt$ NUM=$((NUM+1)) prompt$ echo $NUM 45

- 45

Fundamentos de Administrao Linux

If, for e while Assim como qualquer outra linguagem de programao, o shell tambm tem estruturas para se fazer condicionais e loop. As mais usadas so if, for e while.

if COMANDO for VAR in LISTA while COMANDO then do do comandos comandos comandos else done done comandos fi

Diferente de outras linguagens, o if testa um comando e no uma condio. Porm como j conhecemos qual o comando do shell que testa condies, s us-lo em conjunto com o if. Por exemplo, para saber se uma varivel maior ou menor do que 10 e mostrar uma mensagem na tela informando:if test "$VARIAVEL" -gt 10 then echo " maior que 10" else echo " menor que 10" fi

H um atalho para o test , que o comando [. Ambos so exatamente o mesmo comando, porm usar o [ deixa o if mais parecido com o formato tradicional de outras linguagens:if [ "$VARIAVEL" -gt 10 ] then echo " maior que 10" else echo " menor que 10" fi- 46 2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Se usar o [, tambm preciso fech-lo com o ], e sempre devem ter espaos ao redor. recomendado evitar esta sintaxe para diminuir suas chances de erro. J o while um lao que executado enquanto um comando retorna OK. Novamente o test bom de ser usado. Por exemplo, para segurar o processamento do script enquanto um arquivo de lock no removido:while test -f /tmp/lock do echo "Script travado..." sleep 1 done

- 47

Fundamentos de Administrao Linux

E por fim, o for percorre uma lista de palavras, pegando uma por vez:for numero in um dois trs quatro cinco do echo "Contando: $numero" done

Uma ferramenta muito til para usar com o for o seq, que gera uma sequncia numrica. Para fazer o loop andar 10 passos, pode-se fazer:for passo in $(seq 10)

O mesmo pode ser feito com o while, usando um contador:i=0 while test $i -le 10 do i=$((i+1)) echo "Contando: $i" done

E temos ainda o loop infinito, com condicional de sada usando o "break:while : do if test -f /tmp/lock then echo "Aguardando liberao do lock..." sleep 1 else

- 48

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

break fi done

- 49

Fundamentos de Administrao Linux

Exerccios A melhor parte finalmente chegou, agora a sua vez de se divertir. Seguem alguns exerccios que podem ser resolvidos usando o que foi aprendido at aqui. Alguns exigiro pesquisa e necessitaro de algumas ferramentas que foram apenas citadas, mas no aprendidas. O shelleiro tambm tem que aprender a se virar sozinho!

- 50

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

relacao.sh Recebe dois nmeros como parmetro e mostra a relao entre eles. Exemplo:prompt$ ./relacao.sh 3 5 3 menor que 5 prompt$ ./relacao.sh 5 3 5 maior que 3 prompt$ ./relacao.sh 5 5 5 igual a 5 prompt$

zerador.sh Recebe um nmero como parmetro e o diminui at chegar a zero, mostrando na tela cada passo, em uma mesma linha. Exemplo:prompt$ ./zerador.sh 5 543210 prompt$ ./zerador.sh 10 10 9 8 7 6 5 4 3 2 1 0 prompt$

substring.sh Recebe duas palavras como parmetro e verifica se a primeira palavra est contida dentro da segunda. S mostra mensagem informativa em caso de sucesso, do contrrio no mostra nada. Exemplo:prompt$ ./substring.sh ana banana ana est contida em banana prompt$ ./substring.sh banana maria prompt$ ./substring.sh banana prompt$ ./substring.sh prompt$

Pesquise sobre o comando grep- 51

Fundamentos de Administrao Linux

juntatudo.sh Mostra na tela "grudados" todos os parmetros recebidos na linha de comando, como uma nica palavra. Exemplo:prompt$ ./juntatudo.sh a b c d e f verde azul abcdefverdeazul prompt$

Pesquise sobre o comando tr

- 52

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

users.sh Do arquivo /etc/passwd, mostra o usurio e o nome completo de cada usurio do sistema (campos 1 e 5) separados por um TAB. Exemplo:prompt$ ./users.sh ftp FTP User nobody Nobody named Domain name server xfs X Font Server mysql MySQL server aurelio Aurelio Marinho Jargas prompt$

Pesquise sobre o comando cut shells.sh Do arquivo /etc/passwd, mostra todos os shells (ltimo campo) que os usurios usam. No mostrar linhas repetidas. Exemplo:prompt$ ./shells.sh /bin/bash /bin/false /bin/sync /sbin/halt /sbin/shutdown prompt$

Pesquise sobre o comando uniq parametros.sh Mostra na tela todos os parmetros recebidos na linha de comando, contando-os. Exemplo:- 53

Fundamentos de Administrao Linux

prompt$ ./parametros.sh a b c d e f Parmetro 1: a Parmetro 2: b Parmetro 3: c Parmetro 4: d Parmetro 5: e Parmetro 6: f prompt$

Pesquise sobre o comando shift

- 54

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Respostas dos exerccios Resista tentao de olhar as respostas antes de tentar fazer os exerccios! na prtica que se consolida os conhecimentos aprendidos, no pule este passo. Seja forte, insista, no desista!

- 55

Fundamentos de Administrao Linux

testa-arquivos#!/bin/bash echo -n "Digite o arquivo: " read ARQUIVO test -d "$ARQUIVO" && echo "$ARQUIVO um diretrio" test -f "$ARQUIVO" && echo "$ARQUIVO um arquivo" test -f "$ARQUIVO" -o -d "$ARQUIVO" || echo "O arquivo '$ARQUIVO' no foi encontrado" echo

- 56

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

relacao.sh#!/bin/bash if test $1 -eq $2 then echo "$1 igual a $2" elif test $1 -lt $2 then echo "$1 menor que $2" else echo "$1 maior que $2" fi

- 57

Fundamentos de Administrao Linux

zerador.sh#!/bin/bash i=$1 while test $i -ge 0 do echo -n "$i " i=$((i-1)) done echo

- 58

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

substring.sh#!/bin/bash test $# -ne 2 && exit echo $2 | grep -qs $1 && echo "$1 est contida em $2"

- 59

Fundamentos de Administrao Linux

juntatudo.sh#!/bin/bash echo $* | tr -d ' '

- 60

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

users.sh#!/bin/bash cat /etc/passwd | cut -d : -f 1,5 | tr : '\t'

- 61

Fundamentos de Administrao Linux

shells.sh#!/bin/bash cat /etc/passwd | cut -d : -f 7 | sort | uniq

- 62

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

parametros.sh#!/bin/bash i=0 while test "$1" do i=$((i+1)) echo "Parmetro $i: $1" shift done

- 63

Fundamentos de Administrao Linux

o ShellPara finalizar o shell, basta utilizar os comandos exit, logout ou Ctrl + D.

- 64

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

rando o SistemaQuando o encerramento do sistema tem inicio, todos os sistemas de arquivos (exceto o raiz) so desmontados, os processos de usurio so finalizados, servidores so encerrados e finalmente o sistema de arquivo raiz desmontado. Proceda da forma adequada caso contrrio pode-se corromper o sistema de arquivos.

- 65

Fundamentos de Administrao Linux

ializando o LinuxPara reinicializar o sistema use o comando reboot ou shutdown com as opes r now, conforme o exemplo abaixo:[root@localhost /root]# reboot

ou[root@localhost /root]# shutdown r now

- 66

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Desligando o LinuxPara desligar o sistema use comando poweroff ou shutdown com as opes h now, conforme o exemplo abaixo:[root@localhost /root]# poweroff

Ou[root@localhost /root]# halt

Ou [root@localhost /root]# shutdown h now

- 67

Fundamentos de Administrao Linux

Dispositivos, Sistemas de Arquivos GNU/Linux

- 68

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Criao de Parties e Sistemas de ArquivosDiscos IDE podem conter at 4 parties fsicas, das quais uma pode ser estendida. A partio estendida pode ser dividida em parties lgicas. Pode haver um mximo de 46 parties num disco IDE e 16 num disco SCSI.

- 69

Fundamentos de Administrao Linux

FdiskO fdisk o programa padro para manipular parties no GNU/Linux. Com a opo -l lista os dispositivos e as parties existentes:

# fdisk -l Disk /dev/hda: 10.0 GB, 10005037568 bytes 255 heads, 63 sectors/track, 1216 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes

Dispositivo /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4

Boot *

Start 1 154 174 783

End 153 173 782 1216

Blocks 1228941 160650 4891792+ 3486105

Id b 82 83 83

System W95 FAT32 Linux swap Linux Linux

Disk /dev/hdb: 2111 MB, 2111864832 bytes 64 heads, 63 sectors/track, 1023 cylinders Units = cilindros of 4032 * 512 = 2064384 bytes

Dispositivo /dev/hdb1

Boot

Start 1

End 1023

Blocks 2062336+

Id c

System W95 FAT32 (LBA)

Para manipular parties, o fdisk deve ser iniciado tendo como argumento o dispositivo em questo:# fdisk /dev/hda

Uma vez dentro do fdisk, certas letras correspondero a comandos. Alguns comandos bastante utilizados:

- 70

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

p Lista as parties n Cria uma nova partio interativamente t Muda a identificao da partio d Apaga uma partio q Sai do fdisk sem gravar as alteraes w Sai do fdisk e grava as alteraes m Mostra a ajuda de comandos Por padro, o fdisk cria novas parties identificadas como parties nativas de GNU/Linux, cujo cdigo hexadecimal 83 (0x83). O cdigo de identificao de parties do tipo swap 82 (0x82).

- 71

Fundamentos de Administrao Linux

Criao de Sistemas de ArquivosDurante muito tempo o sistema de arquivos mais utilizado no GNU/Linux foi o ext2 (second extended). No entanto, hoje muito se usa sistemas de arquivos journalling, como o ext3 e o ReiserFS. Por padro, o ext2 consiste em blocos de 1024 bytes. H trs tipos de blocos.

- 72

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

SuperblocksRepetem-se a cada 8193 blocos. Contm informaes sobre o tamanho dos blocos, inodes livres, data da ltima montagem, etc.

- 73

Fundamentos de Administrao Linux

inodesIndicadores para os blocos de dados. Os 12 primeiros blocos de dados aps o inode so acessados sequencialmente. Se os dados excederem 12 blocos, blocos inode indiretos agem como espelho. Cada inode tem 256 bytes e contm a informao de usurio, grupo, permisses e data referente aos dados associados.

- 74

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Blocos de dadosOs blocos que contm os arquivos e diretrios propriamente ditos. A diferena para um sistema de arquivos journalling que um sistema com essa capacidade registra de antemo todas as alteraes que ir realizar no disco. Dessa forma, erros de gravao (normalmente ocasionados por queda de energia ou desligamento incorreto) podem ser mais facilmente diagnosticados e sanados. possvel fazer a converso de ext2 para ext3 sem perda de dados. O comando mkfs cria sistemas de arquivos em parties. A opo -t indica o tipo do sistema de arquivos: Criar uma partio ext2 na partio /dev/hda3:# mkfs -t ext2 /dev/hda3

H tambm comandos especficos para cada sistema de arquivos: mkfs.ext2, mkfs.vfat. mke2fs, mkfs.ext3, mkfs.xfs, mkreiserfs, mkdosfs e

- 75

Fundamentos de Administrao Linux

Partio SwapAps a partio swap ser criada pelo fdisk, ela precisa ser formatada com o comando mkswap: Formata como swap a partio /dev/hda2:# mkswap /dev/hda2

Aps criada e formatada, uma partio swap precisa ser ativada para ser usada como memria swap. O comando swapon -a ativa todas parties swap que constarem em /etc/fstab. As entradas referentes a parties swap em /etc/fstab no tem ponto de montagem. Exemplo de entrada de partio swap em /etc/fstab:/dev/hda2 swap swap defaults 0 0

Normalmente, todas as parties swap contidas em /ect/fstab so ativadas pelos scripts de inicializao do sistema. Para ativar ou desativar essa partio manual manualmente, usa-se swapon /dev/hda2 ou swapoff /dev/hda2, respectivamente. Informaes sobre parties swap ativas so armazenadas em /proc/swaps.

- 76

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Exemplo de /proc/swaps:

Filename /dev/hda2

Type partition

Size

Used

Priority 32632 -1

160640

- 77

Fundamentos de Administrao Linux

Manuteno da Integridade de Sistemas de Arquivos

- 78

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Checando o Sistema de ArquivosO comando fsck deve ser executado em parties que apresentarem erros ou em dispositivos que foram desligados incorretamente. A partio dever estar desmontada ou montada como somente leitura (ro) para a verificao. Como o comando mkfs, o fsck possui a opo -t para especificar o tipo do sistema de arquivos e um comando especfico para cada partio: fsck.ext2 ou e2fsck, fsck.ext3, fsck.xfs, reiserfsck e dosfsck.

- 79

Fundamentos de Administrao Linux

Examinando e corrigindo o Sistema de Arquivos

- 80

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

debugfs Depurador interativo de sistemas de arquivos. Examina sistemas ext2 e ext3. Muda diretrios, examina dados de inodes, apaga arquivos, cria links, mostra o log de journalling ext3, etc. usado em casos extremos, geralmente aps o fsck ter falhado.

- 81

Fundamentos de Administrao Linux

dumpe2fs Mostra informaes de grupo de blocos e de superblocks.

- 82

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

tune2fs Configura parmetros ajustveis em sistemas de arquivos ext2, como rtulo e limites de montagem antes de checar automaticamente.

- 83

Fundamentos de Administrao Linux

df Mostra o espao disponvel em cada dispositivo. A anlise feita diretamente no dispositivo. Por padro, mostra o espao em unidades de 1kb. A opo -h usa medidas apropriadas para tornar a sada mais inteligvel.

- 84

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

du Mostra o espao ocupado. Sem argumentos, mostra o uso de cada diretrio no sistema. Um diretrio especfico pode ser indicado atravs da opo -s. A opaco -h usa medidas apropriadas para tornar a sada mais inteligvel.

- 85

Fundamentos de Administrao Linux

Montagem e Desmontagem dos Sistemas de Arquivos

- 86

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/etc/fstab Durante os procedimentos de carregamento do sistema, o arquivo /etc/fstab que determina os pontos de montagem dos dispositivos. Cada linha corresponde a um dispositivo, contendo os seguintes termos separados por tabulaes ou espaos: 1. Dispositivo 2. Ponto de montagem ( swap se for uma partio de swap) 3. Tipo de sistema de arquivos 4. Opes 5. Dump (0 ou 1). Determina se dispositivo dever ser considerado pelo comando dump. Se ausente, 0 considerado. 6. fsck (1 ou 2). Determina a ordem da checagem feita pelo fsck durante o boot. Para a partio raiz (/), deve ser 1. Se ausente, 0 presumido e a checagem no ser feita no boot. Para permitir que usurios comuns montem e desmontem dispositivos geralmente, o caso de dispositivos removveis deve-se incluir a opaco users para o respectivo dispositivo. Exemplo: /dev/cdrom /mnt/cdrom auto noauto,users,ro 0 0 A palavra auto na posio referente ao sistema de arquivos indica que o sistema de arquivos deve ser identificado automaticamente.

- 87

Fundamentos de Administrao Linux

mount O comando mount usado sem argumentos mostra os dispositivos montados e outros detalhes, como ponto de montagem e tipo do sistema de arquivos. Tambm usado para montar dispositivos manualmente: O comando do exemplo acima monta o dispositivo /dev/cdrom contendo mdia com sistema de arquivos iso9660 no diretrio /mnt/cdrom, com permisso somente-leitura (ro). Para montar manualmente um dispositivo que conste em /etc/fstab, basta fornecer para o comando mount a localizao do dispositivo ou do diretrio alvo. Para desmontar um dispositivo, o comando umount utilizado tendo como argumento o dispositivo ou o diretrio alvo a ser desmontado. Usado com a opcao -a, o comando mount montar todos os dispositivos em /etc/fstab (exceto os marcados com a opo noauto).

- 88

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Opes de montagem As opes de montagem so as mesmas para /etc/fstab e para mount diretamente. Se mais de uma opo for fornecida, devero ser separadas por vrgula. rw ou ro Gravvel ou somente leitura noauto No e montado automaticamente users O dispositivo poder ser montado e desmontado por usurios comuns user Apenas quem montou ter permisso de desmontar owner As permisses do dispositivo montado se adequaro ao usurio que o montou usrquota Habilita o uso de quotas de disco para usurio grpquota Habilita o uso de quotas de disco para grupo remount Remonta um dispositivo montado com outras opes. til para remontar um dispositivo como somente leitura, por exemplo.

- 89

Fundamentos de Administrao Linux

Administrao de Cotas de Disco

- 90

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

IntroduoNo Linux podemos definir quotas de espao em disco por usurio ou grupos de usurios. Estas quotas garantem um limite de espao em disco, se este limite for ultrapassado, o usurio ou grupo de usurios no ser capaz de criar novos arquivos at que os mesmos sejam apagados ou a quota seja redimensionada. Desta maneira, esse recurso se torna indispensvel para aplicaes que envolvem ambientes multiusurios, servidores etc. Antes de partimos para a prtica, necessrio saber se o suporte a quotas foi compilado no Kernel do sistema.

- 91

Fundamentos de Administrao Linux

Limites de QuotasCada sistema de arquivos pode ter cinco tipos de limites de quotas, que so especificados em blocos (blocks) de 1024 bytes cada:

- 92

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Hard Limit (Limite Fsico) por usurio:

o mximo de espao em disco que um usurio pode ter na partio configurada com quotas de disco. Uma vez que este limite de quota ultrapassado, o usurio no poder gravar arquivos na partio.

- 93

Fundamentos de Administrao Linux

Soft Limit (Limite Temporrio) por usurio:

Indica a quantidade mxima de espao temporria em disco numa partio. Quando este limite ultrapassado, o usurio informado que seu espao em disco est terminando e o Grace Period acionado. O usurio ainda poder gravar arquivos at o Grace Period terminar ou at que o Hard Limit seja alcanado.

- 94

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Hard Limit para grupo de usurios:

o mximo de espao em disco que um grupo de usurios pode ter. Quando esse limite ultrapassado, nenhum usurio poder gravar arquivos em disco mesmo que tenham espao disponvel.

- 95

Fundamentos de Administrao Linux

Soft Limit para grupo de usurios:

Indica a quantidade mxima de espao temporria em disco numa partio. Quando este limite ultrapassado, o grupo de usurios informado que seu espao em disco est terminando e o Grace Period acionado. Os usurios ainda podero gravar arquivos at o Grace Period terminar ou at que o Hard Limit por grupo seja alcanado.

- 96

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Comandos para gerncia de quotas

- 97

Fundamentos de Administrao Linux

quota O comando quota usado para visualizar informaes sobre as quotas de espao em disco configuradas para um determinado usurio ou grupo de usurios.

Opes: -u - Mostra a quota definida para um determinado usurio; -g - Mostra a quota definida para um determinado grupo de usurios; -v - Mostra as quotas mesmo que nenhuma esteja definida; -q - Mostra somente quando a rota for excedida; -i - Ignora pontos de montagem montados pelo automounter; -l - Mostra apenas quotas de sistemas de arquivos locais; Somente o superusurio pode visualizar as informaes de quotas de outros usurios, sendo que um usurio comum s pode ver a sua quota e a quota do grupo que ele pertence.

$ quota -u mark Disk quotas for user mark (uid 1000): Filesystem blocks quota limit grace files quota limit grace /dev/sdb2 2740* 1000 2000 60 0 0

- 98

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

quotaon

O comando quotaon habilita o gerenciamento prvio de todas as quotas de disco configuradas em um ou mais sistemas de arquivos. Opes: -a -- Habilita o gerenciamento de todas as quotas de disco para todos os sistemas de arquivos configurados para controle de quotas no arquivo /etc/fstab; -v - Mostra uma mensagem para cada sistema de arquivos com quotas habilitadas; -u - Habilita o gerenciamento de quotas de usurios em um determinado dispositivo; -g - Habilita o gerenciamento de quotas de grupos em um determinado dispositivo;

# quotaon -aguv /dev/sdb2 [/mnt/particao1]: group quotas turned on /dev/sdb2 [/mnt/particao1]: user quotas turned on

Vamos supor que eu necessite habilitar as quotas de grupo somente do sistema de arquivos localizado no diretrio /home:

# quotaon -gv /home

- 99

Fundamentos de Administrao Linux

quotaoff

O comando quotaoff desabilita o gerenciamento de quotas de usurios ou grupos em um ou mais sistemas de arquivos. Opes: -a - Desabilita o gerenciamento de todas as quotas de disco para todos os sistemas de arquivos configurados para controle de quotas no arquivo /etc/fstab; -v - Mostra uma mensagem para cada sistema de arquivos com quotas desabilitadas; -u - Desabilita o gerenciamento de quotas de usurios em um determinado dispositivo; -g - Desabilita o gerenciamento de quotas de grupos em um determinado dispositivo;

# quotaoff -aguv /dev/sdb2 [/mnt/particao1]: group quotas turned off /dev/sdb2 [/mnt/particao1]: user quotas turned off

- 100

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

quotacheck

Faz uma checagem nos sistemas de arquivos configurados com gerenciamento de quotas, compila e atualiza os bancos de dados de quotas (usrquota e grpquota). recomendado que o quotacheck seja executado toda vez que o sistema inicializado ou periodicamente (dia, semana, ms), via cron. Desta maneira, ele garante que o banco de dados esteja no seu mais recente estado. importante saber que as quotas para um determinado dispositivo devem ser desabilitadas antes do uso do comando quotacheck, seno as informaes coletadas da base de dados ficaro em memria e os arquivos com a base de dados no sero atualizados. Opes: -a - Checa todas as quotas configuradas para os sistemas de arquivos mencionados no arquivo /etc/fstab; -g grupo - Cria a base de dados para um determinado grupo; -u user - Cria a base de dados para um determinado usurio; -v - Mostra todas as informaes executadas pelo quotacheck;

# quotaoff -a # quotacheck -avug # quotaon -a

- 101

Fundamentos de Administrao Linux

edquota

O comando edquota um utilitrio usado somente pelo superusurio para edio de quotas de usurios e grupos. O editor vi o editor padro usado com o edquota para editar os arquivos quota.user e quota.group. Opes: -r - Edita quotas em dispositivos remotos, um bom exemplo so os dispositivos que usam NFS; -u - Edita as quotas de usurios; -g - Edita as quotas de grupos de usurios; -p user - Copia as configuraes de uma quota de usurio padro para criar outra; -F format-name - Edita as quotas para um formato especfico (vfsold, vfsv0, rpc e xfs);

-f filesystem - Realiza operaes especificas para um nico sistema de arquivos; -T - Edita o tempo limite de uso de quotas de usurios/grupos quando o softlimit excedido; -t - Edita o perodo de graa para os Soft Limits para cada sistema de arquivos; Observe a edio da quota do usurio mark:# edquota -u mark Disk quotas for user mark (uid 1000): Filesystem blocks soft hard inodes /dev/sdb2 2740 3000 5000 60 soft 0 hard 0

- 102

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Agora, vamos mudar o perodo de soft limit de todos os usurios:# edquota -tu Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem /dev/sdb2 Block grace period 5days Inode grace period

3days

Podemos usar dias, horas, minutos ou segundos para configurar o Soft Limit, no exemplo acima, o perodo de graa para espao em disco est configurado para 5 dias e 3 dias para armazenamento de arquivos.

- 103

Fundamentos de Administrao Linux

repquota

O comando repquota gera um relatrio do uso das quotas de discos de usurios e grupos de um determinado dispositivo. Opes: -a - Exibe um relatrio de todas as quotas dos sistemas de arquivos que esto contidos no arquivo /etc/mtab; -v - Cria um cabealho descritivo para o relatrio de quotas; -u - Cria um relatrio de utilizao por usurio; -g - Cria um relatrio de utilizao por grupo; -c - Faz cache das entradas para relatrio e traduz os UIDs/GIDs para nomes em uma grande amostra de usurios. um bom procedimento quando usado com o arquivo /etc/passwd; -C - Faz cach das entradas para relatrio individualmente. um bom procedimento quando os usurios esto armazenados em um banco de dados; -t - Trunca o nome de usurios ou grupos com mais de 9 caracteres; -n - No traduz UIDs/GIDs para nomes; -i - Ignora os pontos de montagem montados pelo automounter; -s - Testa para relatar o espao e o nmero de inodes usados; -F - Exibe um relatrio de quotas para um determinado formato. Esses formatos podem ser: vfsold, vfsv0 e xfs;- 104 2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

- 105

Fundamentos de Administrao Linux

Criando e gerenciando quotasNesse tpico, abordaremos todos os procedimentos para a criao e gerenciamento de quotas. Edite e insira no arquivo /etc/fstab a linha abaixo:

/dev/sda8

/home ext3

defaults,usrquota,grpquota

1

2

Crie os arquivos quota.user e quota.group e d permisso de acesso somente para o root no diretrio /home:

# touch /home/quota.user /home/quota.group # chmod 600 /home/quota.user /home/quota.group

Estes dois arquivos so os bancos de dados de quotas de usurios e grupos. Nesse exemplo, estamos utilizando quota verso-1, caso algum esteja usando a verso-2, os nomes dos arquivos devem ser aquota.user e aquota.group. Agora devemos reiniciar o sistema para que as configuraes de quota entrem em vigor. # shutdown -r now Aps a reinicializao do sistema, use o comando quotacheck para inicializar os bancos de dados: # quotacheck -avug Adicione as quotas de usurios:

# edquota -u mark Disk quotas for user mark (uid 1000): Filesystem blocks soft /dev/sda8 /dev/sdb2- 106

hard 10000 5000

inodes soft 7 60 4000 0

hard 5000 0

28 2740

9000 3000

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Adicione as quotas de grupo:

# edquota -g santos Disk quotas for group santos (gid 1001): Filesystem blocks soft /dev/sda8 /dev/sdb2 0 16 hard inodes soft 0 4 hard 0 0

100000 120000 0 300000 350000 0

Adicione o tempo limite que os usurios e grupos podero ter as suas quotas excedidas:

# edquota -t Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem /dev/sda8 /dev/sdb2 Block grace period 7days 7days Inode grace period

7days 7days

- 107

Fundamentos de Administrao Linux

Crie um script para iniciar e verificar o sistema de quotas toda vez que ele inicializado. Este script deve ser criado no diretrio que o sistema utiliza para inicializar os servios automaticamente, normalmente o diretrio /etc/init.d:

# vi quotas.sh

#!/bin/bash # Checa e ativa o sistema de quotas if [ -x /usr/sbin/quotacheck ] then echo "Checando sistema de quotas. " /usr/sbin/quotacheck -avug echo " Sistema de Quotas OK." fi

if [ -x /usr/sbin/quotaon ] then echo "Ativando sistema de quotas." /usr/sbin/quotaon -avug fi

Adicione o comando quotacheck no cron para que seja executado semanalmente:

# crontab -e

0 3 * * 0 /usr/sbin/quotacheck -avug

Ou se preferir, adicione um script no diretrio /etc/cron.weekly:

# vi checaquotas.sh

#!/bin/bash- 108 2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/usr/sbin/quotacheck -avug

No esquea de dar permisso de execuo ao arquivo: # chmod 760 checaquotas.sh Execute o comando "repquota -v /home" para visualizar o relatrio de quotas:

# repquota -v /home

- 109

Fundamentos de Administrao Linux

Explorando o sistema de arquivos

Um sistema de arquivos a coleo de arquivos e a hierarquia de diretrios em um sistema. Primeiro, mude para o diretrio root digitando o comando cd /[root@bwpx01 ~]# cd /

Para mostrar uma lista do seu contedo digite o comando ls l.[root@bwpx01 /]# ls -l total 195 drwxr-xr-x 2 root root drwxr-xr-x 4 root root 4096 Jul 29 17:52 bin 1024 Jul 29 12:08 boot

drwxr-xr-x 8 cduser cduser 4096 Sep 2 17:07 cdunix drwxr-xr-x 16 root root 7760 Aug 10 17:54 dev

drwxr-xr-x 105 root root 12288 Sep 14 11:40 etc drwxr-xr-x 133 root root drwxr-xr-x 11 root root 4096 Aug 27 19:02 home 4096 Jul 29 17:50 lib

drwxr-xr-x 7 root root 12288 Jul 30 11:35 lib64 drwx------ 2 root root 16384 Jul 29 11:15 lost+found drwxr-xr-x 2 root root drwxr-xr-x 2 root root drwxr-xr-x 3 root root drwxr-xr-x 2 root root drwxr-xr-x 8 root root dr-xr-xr-x 357 root root drwxr-x--- 9 root root 4096 Oct 1 2009 media 0 Aug 10 17:50 misc 4096 Jul 30 14:34 mnt 0 Aug 10 17:50 net 4096 Jul 30 11:51 opt 0 Aug 10 17:49 proc 4096 Aug 24 11:36 root

drwxr-xr-x 2 root root 12288 Jul 29 17:52 sbin drwxr-xr-x 2 root root drwxr-xr-x 2 root root 4096 Jul 29 11:19 selinux 4096 Oct 1 2009 srv

- 110

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

drwxr-xr-x 11 root root drwxr-xr-x 3 root root drwxrwxrwt 9 root root drwxr-xr-x 18 root root drwxr-xr-x 23 root root

0 Aug 10 17:49 sys 4096 Jul 29 11:50 tftpboot 4096 Sep 15 09:03 tmp 4096 Apr 26 09:06 usr 4096 Jul 29 16:01 var

- 111

Fundamentos de Administrao Linux

/bin /bin uma abreviatura para "binrios", ou executveis. nesse diretrio onde residem a maioria dos programas essencias do sistema. Use o comando "ls -l /bin" para listar os arquivos.[root@bwpx01 /]# ls /bin alsacard alsaunmute arch awk basename bash cat chgrp chmod chown cp cpio csh cut date df dmesg dbus-uuidgen gunzip dd gzip hostname igawk mknod mktemp more mount rvi rview sed mountpoint mv netstat nice rpm traceroute traceroute6 tracert true setfont uname unicode_start unicode_stop sort usleep vi sync tar taskset view ypdomainname zcat unlink umount

dnsdomainname ipcalc doexec domainname dumpkeys echo ed egrep env ex false fgrep kbd_mode kill ksh ksh93 link ln loadkeys

setserial sh sleep

nisdomainname pgawk ping ping6 su stty

loadkeys.static ps logger login ls mail mailx mkdir pwd raw red

tcptraceroute zsh tcsh

dbus-cleanup-sockets gawk dbus-daemon dbus-monitor dbus-send gettext grep gtar

redhat_lsb_init touch rm rmdir tracepath tracepath6

Esses so os arquivos que contm programas. programa /bin/cp.

Quando voc executa cp, est executando o

- 112

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/dev Os arquivos em /dev so conhecidos como controladores de dispositivo (device drivers) e so usados para acessar os dispositivos ou recursos do sistema, como discos rgidos, modems, memria, etc. Por exemplo, da mesma forma que voc pode lear dados de um arquivo, pode tambm ler da entrada do mouse, lendo /dev/mouse. Os arquivos que comeam com fd so os controladores de disquete. fd0 o primeiro drive, e fd1 o segundo. Note que h mais controladores de dispositivo para drivers do que mencionamos. Eles representam tipos especficos de discos. Por exemplo, fd1H1440 acessa discos de 3.5'' de alta densidade no drive 1.

- 113

Fundamentos de Administrao Linux

Aqui temos uma lista de alguns dos controladores de dispositivos mais usados. Note que mesmo que voc no tenha algum dos dispositivos listados, ter entradas em dev de qualquer forma. /dev/console faz referncia ao console do sistema, quer dizer, ao monitor conectado em seu sistema. Os dispositivos /dev/ttyS e /dev/cua so usados para acessar as portas seriais. Por exemplo, /dev/ttyS0 faz referncia a "COM1", sob o MS-DOS. Os dispositivos /dev/cua so "callout" e so usados em conjunto com um modem. Os nomes dos dispositivos que comeam por hd acessam a discos rgidos. /dev/hda se refere a todo o primeiro disco, enquanto que /dev/hda1 se refere a primeira partio em /dev/hda. Os nomes de dispositivo que comenam com sd so dispositivos SCSI. Se voc tem um disco rgido SCSI, no lugar de acess-lo com /dev/hda, vai acess-lo com /dev/sda. As fitas SCSI so acessadas via dispositivos st e os CD-ROM SCSI via sr. Os nomes que comenam por lp acessam as portas paralelas. /dev/lp0 se refere a "LPT1" no mundo MS-DOS. /dev/null usado como "buraco negro", qualquer dado enviado a este dispositivo desaparece. Para que pode ser til isto?. Bem, se deseja suprimir a sada para a tela de um comando, pode enviar a sada para /dev/null. Falaremos mais sobre isto depois. Os nomes que comeam por /dev/tty se referem a "consoles virtuais" de seu sistema (acessveis mediante as teclas Alt-F1, Alt-F2, etc). /dev/tty1 se refere a primeira VC, /dev/tty2 a segunda, etc. Os nomes de dispositivo que comeam com /dev/pty so "pseudoterminais". So usados para proporcionar um "terminal" a sesses remotas. Por exemplo, se sua mquina est em uma rede, o telnet de entrada usar um dos dispositivos /dev/pty.

- 114

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/etc /etc contm uma srie de arquivos de configurao do sistema. Isto inclui o /etc/passwd (a base de dados de usurios), o /etc/rc (instrues de inicializao do sistema), etc.

- 115

Fundamentos de Administrao Linux

/sbin /sbin usado para armazenar programas essenciais do sistema, usados pelo administrador do sistema.

- 116

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/home /home contm os diretrios "home" dos usurios. Por exemplo, /home/larry o diretrio do usurio "larry". Em um sistema recm instalado, esse diretrio estar vazio.

- 117

Fundamentos de Administrao Linux

/lib /lib contm as imagens das bibliotecas compartilhadas. Esses arquivos contm cdigo que muitos programas compartilham. Ao invs de cada programa ter uma cpia prpria das funes compartilhadas, elas so guardadas em um lugar comum, o /lib. Isso faz com que os programas executveis sejam menores e reduzam o espao usado em disco.

- 118

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/proc /proc um "sistema de arquivos virtual". Os arquivos que esto no /proc residem verdadeiramente na memria, e no no disco. Esses arquivos se referem a vrios processos que rodam no sistema e permitem obter informao sobre programas e processos que esto rodando num dado momento.

- 119

Fundamentos de Administrao Linux

/tmp Muitos programas tm necessidade de gerar alguma informao temporria e de guardar essa informao em um arquivo temporrio. O lugar para esses arquivos o /tmp.

- 120

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/usr /usr um diretrio muito importante. Contm uma srie de subdiretrios que por sua vez contm alguns dos mais importantes e teis programas e arquivos de configurao usados no sistema. Os vrios diretrios descritos acima so essenciais para o sistema operar, mas a maioria dos itens no /usr so opcionais. Entretanto, so esses itens opcionais que tornam o sistema til e interessante. Sem o /usr, voc teria um sistema tedioso que suportaria somente programas como cp e ls. O /usr contm a maioria dos pacotes grandes de software e os arquivos de configurao que os acompanham.

- 121

Fundamentos de Administrao Linux

/usr/X11R6 /usr/X11R6 contm o sistema X Window se voc o instalou el sistema X Window se voc o instalou. O sistema X Window um ambiente grfico poderoso que proporciona um grande nmero de ferramentas e programas grficos, mostrados em janelas na sua tela. Se voc est familiarizado com os ambientes MS Windows ou Macintosh, o X Window lhe ser muito familiar. O diretrio /usr/X11R6 contm todos os executveis do X Window, arquivos de configurao e suporte.

- 122

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/usr/bin /usr/bin contm a maioria dos programas executveis no encontrados em outras partes, como no /bin.

- 123

Fundamentos de Administrao Linux

/usr/etc Como o /etc, contm diferentes arquivos de configurao e programas do sistema, /usr/etc contm inclusive mais que o anterior. Em geral, os arquivos que se encontram em /usr/etc no so essenciais para o sistema, diferentemente dos que se encontram no /etc.

- 124

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/usr/include /usr/include contm os arquivos include para o compilador C. Esse arquivos (a maioria dos quais termina com .h, de "header") declaram estruturas de dados, subrotinas e constantes usadas no desenvolvimento de programas em C. Os arquivos que se encontram em /usr/include/sys geralmente so usados quando programando no nvel do sistema UNIX. Se voc est familiarizado com programao C, encontrar arquivos como stdio.h, o qual declara funes como printf().

- 125

Fundamentos de Administrao Linux

/usr/g++-include /usr/g++-include contm arquivos de incluso para o computador C++ (muito parecido ao /usr/include).

- 126

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/usr/lib /usr/lib contm as bibliotecas "stub" e "static" equivalentes aos arquivos encontrados em /lib. Ao compilar um programa, ele "linkado" com as bibliotecas que se encontram em /usr/lib, as quais direcionam o programa para o /lib, quando precisa buscar o cdigo real da biblioteca. Alm disso, vrios programas armazenam arquivos de configurao no /usr/lib.

- 127

Fundamentos de Administrao Linux

/usr/local /usr/local muito parecido ao /usr. Ele contm programas e arquivos no essenciais ao sistema, mas que tornam o sistema mais divertido e excitante. Em geral, os programas que se encontram em /usr/local so especficos do seu sistema, isto , o diretrio /ussr/local difere bastante entre os sistemas UNIX. Aqui encontrar grandes programas, como o TeX (sistema de formatao de documentos) e Emacs (editor grande e poderoso), se os instalar.

- 128

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/usr/man Esse diretrio contm as pginas de manual. H dois subdiretrios para cada seo de pgina de manual (use o comando "man man" para detalhes). Por exemplo, /usr/man/man1 contm os fontes (isto , o original no formatado) para as pginas de manual na seo 1, e /usr/man/cat1 contm as pginas de manual formatadas para a seo 1.

- 129

Fundamentos de Administrao Linux

/usr/src /usr/src contm o cdigo fonte (programas a compilar) de vrios programas do sistema. subdiretrio mais importante o /usr/src/linux, que contm o cdigo fonte do kernel do Linux. O

- 130

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/var /var contm diretrios que freqntemente mudam de tamanho ou tendem a crescer. Muitos desses diretrios residiam antes em /usr, mas desde que estamos tratando de deixar o /usr inalterado, os diretrios que mudam de tamanho foram levados para o /var. Alguns deles so:

- 131

Fundamentos de Administrao Linux

/var/adm /var/adm contm vrios arquivos de interesse para o administrador do sistema, especificamente histricos do sistema, que armazenam erros ou problemas com o sistema. Outros arquivos guardam logins do sistema, assim como tentativas frustradas. O captulo 4 abordar este assunto.

- 132

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

/var/spool /var/spool contm arquivos que vo ser passados a outros programas. Por exemplo, se sua mquina est conectada a uma rede, o correio de entrada ser armazenado em /var/spool/mail at que voc o leia ou apague. Artigos novos dos News, tanto os que entram quanto os que saem, se encontram em /var/spool/news, etc.

- 133

Fundamentos de Administrao Linux

Comandos para manipulao de Arquivos

- 134

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

O comando rmRemove arquivos. Tambm pode ser usado para apagar diretrios, vazios ou no. Note que no UNIX quando um arquivo removido, ele no mais recupervel (como no MS-DOS, onde voc pode usar o "undelete", ou no Windows, com a lixeira). Sintaxe:rm [opes] [caminho][arquivo/diretrio]

onde: caminho - Localizao do arquivo que deseja apagar. Se omitido, assume que o arquivo esteja no diretrio atual. arquivo/diretrio - Arquivo/diretrio que ser apagado. opes - Modificam o comportamento do comando: -i --interactive -f --force -r --recursive Confirma antes de remover, esta ativada por padro. Remove os arquivos sem confirmao. Usado para remover arquivos em sub-diretrios. Esta opo tambm pode ser usada para remover sub-diretrios.

Exemplos: rm teste.txt rm *.txt rm *.txt teste.novo Remove o arquivo teste.txt do diretrio atual. Remove todos os arquivos do diretrio atual que terminam com .txt. Remove todos os arquivos do diretrio atual que terminam com .txt e tambm o arquivo teste.novo. Remove todos os arquivos e sub-diretrios do diretrio /tmp/teste mas mantm o sub-diretrio /tmp/teste. Remove todos os arquivos e sub-diretrios do diretrio /tmp/teste, inclusive /tmp/teste.

rm -rf /tmp/teste/* rm -rf /tmp/teste

- 135

Fundamentos de Administrao Linux

O comando cpCopia arquivos. Sintaxe:cp [opes] [origem] [destino]

onde: origem - Arquivo que ser copiado. Podem ser especificados mais de um arquivo para ser copiado usando "Curingas". destino - O caminho ou nome de arquivo onde ser copiado. Se o destino for um diretrio, os arquivos de origem sero copiados para dentro do diretrio. Opes - Modificam o comportamento do comando: -f --force No confirma, substitui arquivos caso j existam. -i interactive Confirma antes de substituir arquivos existentes. -u update Copia somente se o arquivo de origem mais novo que o arquivo de destino ou quando o arquivo de destino no existe. -r Copia arquivos e sub-diretrios, com exceo de arquivos especiais FIFO e dispositivos. -R --recursive Copia arquivos e sub-diretrios, inclusive arquivos especiais FIFO e dispositivos. -p --preserve Preserva atributos do arquivo, se for possvel. O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos origem e destino tero o mesmo contedo aps a cpia. Exemplos: cp teste teste1 cp teste /tmp cp * /tmp cp /bin/* . cp -R /bin /tmp Copia o arquivo teste para teste1 Copia o arquivo teste para dentro do diretrio /tmp. Copia todos os arquivos do diretrio atual para /tmp. Copia todos os arquivos do diretrio /bin para o diretrio atual. Copia o diretrio /bin e todos os arquivos/sub-diretrios existentes para o diretrio /tmp.2005 Processor Alfamidia LTDA.

- 136

Fundamentos de Administrao Linux

cp -R /bin/* /tmp

Copia todos os arquivos do diretrio /bin (exceto o prprio diretrio /bin) e todos os arquivos/sub-diretrios existentes dentro dele para /tmp. Copia todos os arquivos e o diretrio /bin para /tmp.

cp -R /bin /tmp

- 137

Fundamentos de Administrao Linux

O comando mvMove ou renomeia arquivos e diretrios. O processo semelhante ao do comando cp mas o arquivo de origem apagado aps o trmino da cpia. Sintaxe:mv [opes] [origem] [destino]

Onde: origem - Arquivo/diretrio de origem. destino - Local onde ser movido ou novo nome do arquivo/diretrio. opes - Modificam o comportamento do comando: -f --force -i --interactive -u --update Exemplos: mv teste teste1 mv teste /tmp Muda o nome do arquivo teste para teste1. Move o arquivo teste do diretrio atual para /tmp. Substitui o arquivo de destino sem perguntar. Pergunta antes de substituir. o padro. Move somente arquivos antigos, ou novos arquivos.

- 138

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

O comando lnCria um novo link para arquivos e diretrios. O link o mecanismo usado para fazer referncia a um arquivo ou diretrio. Sintaxe:ln [opes] [origem] [link]

Onde: origem - Diretrio ou arquivo de onde ser feito o link. Link - Nome do novo link que ser criado. Opes - Modificam o comportamento do comando: -s -d Cria um link simblico. Usado para criar ligaes com o arquivo/diretrio de destino. Cria um hard link para diretrios. Somente o root pode usar esta opo.

Existem 2 tipos de links: hardlink (rgidos) e Simblics.

- 139

Fundamentos de Administrao Linux

HardlinksO comando "ln" usado para criar mltiplos links para um arquivo. Por exemplo, digamos que voc tenha um arquivo chamado "foo" em um diretrio. Usando "ls -i", voc pode ver o nmero do "inode" para este arquivo.

/home/larry# ls -i foo 22192 foo /home/larry#

Aqui, "foo" tem o nmero de inode 22192 no sistema de arquivos. Voc pode criar outro link para o arquivo "foo", chamado, por exemplo, "bar", como segue:/home/larry# ln foo bar

Com o comando "ls -i", voc pode ver que os dois arquivos tem o mesmo inode.

/home/larry# ls -i foo 22192 bar 22192 foo /home/larry#

Agora, especificando tanto "foo" quanto "bar", voc ter acesso ao mesmo arquivo. Se voc fizer mudanas a "foo", essas mudanas aparecem em "bar" tambm. Para todos os propsitos, "foo" e "bar" so o mesmo arquivo. Esses links so conhecidos como links rgidos (hardlink), porque criam um link direto para um inode. Note que voc s pode fazer hard links para arquivos se os links estiverem no mesmo sistema de arquivos. Links simblicos (veja abaixo) no tm esta restrio. Quando voc exclui um arquivo com "rm", voc est, na verdade, apagando um link para o arquivo. Se voc usar o comando/home/larry# rm foo

somente o link chamado foo excludo, bar ainda vai existir. Um arquivo realmente excludo do sistema somente quando no h mais links para ele. Usualmente, arquivos s tem um link. Assim, usando o comando "rm" exclui o arquivo. Entretanto,- 140 2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

se um arquivo tem mltiplos links, usando o comando "rm" excluir somente um link. Para excluir o arquivo, voc tem que excluir todos os links para o mesmo. O comando "ls -l" mostra o nmero de links para um arquivo (entre outras informaes)./home/larry# ls -l foo bar -rw-r--r-2 root -rw-r--r-2 root /home/larry#

root root

12 Aug 5 16:51 bar 12 Aug 5 16:50 foo

A segunda coluna na listagem, "2", especifica o nmero de links para o arquivo. Com isso claro, um diretrio , na verdade, somente um arquivo contendo a informao sobre as associaes link para inode. Alm disso, cada diretrio contm, no mnimo, dois links rgidos: "." (um link apontando para si mesmo), e ".." (um link apontando para o diretrio superior). No diretrio root (/), o link ".." aponta novamente para /. (Em outras palavras, o diretrio superior do diretrio root o prprio diretrio root).

- 141

Fundamentos de Administrao Linux

Links SimblicosLinks simblicos, ou symlinks, so outro tipo de link, e so diferentes dos links rgidos. Um link simblico permite que voc d outro nome a um arquivo, mas no faz o link ao arquivo por inode. O comando "ln -s" cria um link simblico para um arquivo.

/home/larry# ln -s foo bar

- 142

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Foi criado um link simblico chamado "bar" que aponta para o arquivo "foo". Se voc usa o "ls -i", voc ver que os dois arquivos tm, de fato, inodes diferentes./home/larry# ls -i foo bar 22195 bar 22192 foo /home/bar#

Entretanto, usando o "ls -l", vemos que o arquivo "bar" um ponteiro simblico para "foo"./home/larry# ls -l foo bar lrwxrwxrwx 1 root root -rw-r--r-1 root root /home/larry# 3 Aug 5 16:51 bar -> foo 12 Aug 5 16:50 foo

As permisses de arquivo num link simblico no so usadas (sempre aparecem como rwxrwxrwx). Elas so determinadas pelas permisses no arquivo alvo do link simblico (em nosso exemplo, o arquivo foo). Funcionalmente, links rgidos e links simblicos so similares, mas h diferenas. Voc pode, por exemplo, criar um link simblico para um arquivo que no existe; o mesmo no funciona para links rgidos. Links simblicos so processados pelo kernel diferentemente de links rgidos. somente uma diferena tcnica, mas algumas vezes importante. Links simblicos so teis porque identificam o arquivo para o qual apontam. Com links rgidos, no h uma maneira fcil de determinar quais arquivos esto "linkados" para o mesmo inode. Links so usados em muitos lugares no sistema Linux. Links simblicos so especialmente importante para bibliotecas compartilhadas no /lib. Observaes:

Se for usado o comando rm com um link, somente o link ser removido. Se for usado o comando cp com um link, o arquivo original ser copiado ao invs do link. Se for usado o comando mv com um link, a modificao ser feita no link. Se for usado um comando de visualizao (como o cat), o arquivo original ser visualizado. Cria o link simblico /dev/modem para o arquivo /dev/ttyS1. Cria um link ~/tmp para o diretrio /tmp.

Exemplos: ln -s /dev/ttyS1 /dev/modem ln -s /tmp ~/tmp

- 143

Fundamentos de Administrao Linux

O comando catOficialmente usado para concatenar arquivos, mas tambm pode ser usado para mostrar o contedo completo de um ou mais arquivos. Sintaxe:cat [opes] [diretrio/arquivo] [diretrio1/arquivo1]

Onde diretrio/arquivo: opes: Localizao do arquivo que se deseja visualizar o contedo.

Modificam o comportamento do comando:

-n --number Mostra o nmero das linhas enquanto o contedo do arquivo mostrado. -s --squeeze-blank No mostra mais que uma linha em branco entre um pargrafo e outro. Use o comando zcat para ver diretamente arquivos compactados com gzip. Exemplo: cat /usr/doc/copyright/GPL

- 144

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

O comando tacMostra o contedo de um arquivo binrio ou texto (como o cat) s que em ordem inversa. Sintaxe:tac [opes] [diretrio/arquivo] [diretrio1/arquivo1]

diretrio/arquivo: Localizao do arquivo que se deseja visualizar o contedo opes: -s [string] Exemplo: Modificam o comportamento do comando: Usa o [string] como separador de registros.

tac /usr/doc/copyright/GPL

- 145

Fundamentos de Administrao Linux

O comando morePermite fazer a paginao de arquivos ou da entrada padro. O comando more pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela ocupada, o more efetua uma pausa e permite que voc pressione Enter ou espao para continuar avanando no arquivo sendo visualizado. Para sair do more pressione q. Sintaxe:more [arquivo]

Onde: arquivo: o arquivo que ser paginado. Para visualizar diretamente arquivos texto compactados pelo gzip (.gz) use o comando zmore. Exemplos: more /etc/passwd cat /etc/passwd | more

- 146

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

O comando lessPermite fazer a paginao de arquivos ou da entrada padro. O comando less pode ser usado como comando para leitura de arquivos que ocupem mais de uma tela. Quando toda a tela ocupada, o less efetua uma pausa (semelhante ao more) e permite que voc pressione Seta para Cima e Seta para Baixo ou PgUP/PgDown para fazer o rolamento da pgina. Para sair do less pressione q. Sintaxe:less [arquivo]

Onde: Arquivo - o arquivo que ser paginado. Para visualizar diretamente arquivos texto compactados pelo gzip (.gz) use o comando zless. Exemplos: less /etc/passwd cat /etc/passwd | less

- 147

Fundamentos de Administrao Linux

O comando headMostra as linhas iniciais de um arquivo texto. Sintaxe:head [opes] [arquivo]

Onde: arquivo - o arquivo que ser mostrado. opes - Modificam o comportamento do comando: -c [numero] -[numero] Mostra o [numero] de bytes do inicio do arquivo. Mostra o [numero] de linhas do inicio do arquivo. Caso no seja especificado, mostra as 10 primeiras linhas.

Exemplos: head teste.txt head -20 teste.txt

- 148

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

O comando tailMostra as linhas finais de um arquivo texto. Sintaxe:tail [opes] [arquivo]

Onde: arquivo - o arquivo que ser mostrado. opes - Modificam o comportamento do comando: -c [numero] Mostra o [numero] de bytes do final do arquivo. -[numero] Mostra o [numero] de linhas do final do arquivo. Caso no seja especificado, mostra as 10 ltimas linhas. Exemplos: tail teste.txt tail -n 20 teste.txt

- 149

Fundamentos de Administrao Linux

O comando touchMuda a data e hora que um arquivo foi alterado. Tambm pode ser usado para criar arquivos vazios. Caso o touch seja usado com arquivos que no existam, por padro ele criar estes arquivos. Sintaxe:touch [opes] [arquivos]

Onde: arquivos - Arquivos que tero sua data/hora modificados. Opes - Modificam o comportamento do comando: -a --time=atime -m --time=mtime -c --no-create -t MMDDhhmm[AA.ss] Faz o touch mudar somente a data e hora do acesso ao arquivo. Faz o touch mudar somente a data e hora da modificao. No cria arquivos vazios, caso os arquivos no existam. Usa Minutos (MM), Dias (DD), Horas (hh), minutos (mm) e opcionalmente o Ano (AA) e segundos (ss) para modificao dos arquivos, ao invs da data e hora atual.

Exemplos: touch teste Cria o arquivo teste, caso ele no exista. touch t 10011230 teste Altera da data e hora do arquivo para 01/10 e 12:30. touch -t 120112301999.30 teste Altera da data e hora do arquivo para 01/12/1999 e 12:30:30.

- 150

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

O comando wcConta o nmero de palavras, bytes e linhas em um arquivo ou entrada padro. Se as opes forem omitidas, o wc mostra a quantidade de linhas, palavras, e bytes. Sintaxe:wc [opes] [arquivo]

Onde: Arquivo - Arquivo que ser verificado pelo comando wc. Opes - Modificam o comportamento do comando: -c --bytes Mostra os bytes do arquivo. -w --words Mostra a quantidade de palavras do arquivo. -l --lines Mostra a quantidade de linhas do arquivo. A ordem da listagem das estatsticas nica, e modificando a posio das opes no modifica a ordem que os dados so listados. Exemplo: wc /etc/passwd Mostra a quantidade de linhas, palavras e letras (bytes) no arquivo /etc/passwd. wc -w /etc/passwd Mostra a quantidade de palavras. wc -l /etc/passwd Mostra a quantidade de linhas. wc -lw /etc/passwd Mostra a quantidade de linhas e palavras.

- 151

Fundamentos de Administrao Linux

O comando sortOrganiza as linhas de um arquivo texto ou da entrada padro. A organizao feita por linhas e as linhas so divididas em campos que a ordem que as palavras aparecem na linha separadas por um delimitador (normalmente um espao). Sintaxe:sort [opes] [arquivo]

Onde: arquivo - o nome do arquivo que ser organizado. Caso no for especificado, ser usado o dispositivo de entrada padro (normalmente o teclado ou um "|"). Opes:-b Ignora linhas em branco.

Somente usa letras, dgitos e espaos durante a organizao. Ignora a diferena entre maisculas e minsculas. Inverte o resultado da comparao. Caso estiver organizando um campo que contm nmeros, os nmeros sero organizados na ordem aritmtica. -c Verifica se o arquivo j esta organizado. Caso no estiver, retorna a mensagem "disorder on arquivo". -i Ignora os caracteres fora da faixa octal ASCII 040-0176 durante a organizao. -t caracter Usa caracter como delimitador durante a organizao de linhas. Por padro usado um espao em branco como delimitador de caracteres. +num1 -num2 Especifica qual o campo dentro na linha que ser usado na organizao. O(s) campo(s) usado(s) para organizao estar entre +num1 e +num2. O delimitador padro utilizado um espao em branco (use a opo -t para especificar outro). A contagem iniciada em "0". Caso no for especificada, a organizao feita no primeiro campo. Caso -num2 no seja especificado, a organizao ser feita usando a coluna +num1 at o fim da linha. -k num1, num2 Esta uma alternativa ao mtodo acima para especificar as chaves de organizao. O uso idntico, mas o delimitador iniciado em "1". -d -f -r -n

- 152

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Exemplossort texto.txt

Organiza o arquivo texto.txt em ordem crescente.sort texto.txt -r

Organiza o contedo do arquivo texto.txt em ordem decrescente.cat texto.txt | sort

Faz a mesma coisa que o primeiro exemplo, s que neste caso a sada do comando cat redirecionado a entrada padro do comando sort.sort -f texto.txt

Ignora diferenas entre letras maisculas e minsculas durante a organizao.sort +1 -3 texto.txt

Organiza o arquivo texto.txt usando como referncia a segunda at a quarta palavra (segundo ao quarto campo) que constam naquela linha.sort -t : +2 -3 passwd

Organiza o arquivo passwd usando como referncia a terceira at a quarta palavra (terceiro ao quarto campo). Note que a opo -t especifica o caracter ":" como delimitador de campos ao invs do espao. Neste caso, o que estiver aps ":" ser considerado o prximo campo.

- 153

Fundamentos de Administrao Linux

O comando diffCompara dois arquivos e mostra as diferenas entre eles. O comando diff usado somente para a comparao de arquivos em formato texto. As diferenas encontradas podem ser redirecionadas para um arquivo que poder ser usado pelo comando patch para aplicar as alteraes em um arquivo que no contm as diferenas. Isto til para grandes textos porque possvel copiar somente as modificaes (geradas atravs do diff, que so muito pequenas) e aplicar no arquivo para atualiza-lo (atravs do patch) ao invs de copiar a nova verso. Este um sistema de atualizao muito usado na atualizao dos cdigo fonte do kernel do GNU/Linux. Sintaxe:diff [diretrio1/arquivo1] [diretrio2/arquivo2] [opes]

Onde: diretrio1/arquivo1 diretrio2/arquivo2 Arquivos /diretrios que sero comparados. Normalmente usado como primeiro arquivo/diretrio o mais antigo e o mais novo como segundo. Opes: -lines [num] Gera a diferena com [num] linhas de contexto. Por padro o diff gera um arquivo com 2 linhas que o mnimo necessrio para o correto funcionamento do patch. -a Compara os dois arquivos como arquivos texto. -b Ignora espaos em branco como diferenas. -B Ignora linhas em branco inseridas ou apagadas nos arquivos. -I Ignora diferenas entre maisculas e minsculas nos arquivos. -H Usa anlise heurstica para verificar os arquivos. -N Em uma comparao de diretrios, se o arquivo apenas existe em um diretrio, trata-o como presente mas vazio no outro diretrio. -P Em uma comparao de diretrios, se o arquivos apenas existe no segundo diretrio, trata-o como presente mas vazio no primeiro diretrio. -q Mostra somente se os dois arquivos possuem diferenas. No mostra as diferenas entre eles. -r Compara diretrios e sub-diretrios existentes. -S [nome] Inicia a comparao de diretrios pelo arquivo [nome]. til quando cancelamos uma comparao. -t Aumenta a tabulao das diferenas encontradas. -u Usa o formato de comparao unificado.- 154 2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

Use o comando zdiff para comparar diretamente arquivos compactados pelo utilitrio gzip Use o comando sdiff para visualizar as linhas diferentes entre os dois arquivos em formato texto simples. Exemplos:diff texto.txt texto1.txt

Compara o arquivo texto.txt com texto1.txt e exibe suas diferenas na tela.diff -Bu texto.txt texto1.txt

Compara o arquivo texto.txt com texto1.txt ignorando linhas em branco diferentes entre os dois arquivos e usando o formato unificado.diff texto.txt texto1.txt >texto.diff

Compara o arquivo texto.txt com texto1.txt e gera um arquivo chamdo texto.diff contendo a diferena entre eles. Este arquivo poder ser usado pelo patch para aplicar as diferenas existente entre os dois no arquivo texto.txt.diff -r /usr/src/linux-2.2.13 /usr/src/linux-2.2.14 >patch-2.2.14.diff

Compara o diretrio e sub-diretrios linux-2.2.13 e linux-2.2.14 e grava as diferenas entre eles no arquivo patch-2.2.14.diff.

- 155

Fundamentos de Administrao Linux

Comandos de Busca

- 156

2005 Processor Alfamidia LTDA.

Fundamentos de Administrao Linux

O comando grepProcura por um texto dentro de um arquivo(s) ou no dispositivo de entrada padro. Sintaxe:grep [expresso] [arquivo] [opes]

Onde: Expresso - Expresso regular que ser procurada no texto. Se tiver mais de 2 palavras voc deve identifica-la com aspas "" caso contrrio o grep assumir que a segunda palavra o arquivo! Arquivo - Arquivo on