You are on page 1of 384

Fundamentos de Administração Linux

Fundamentos de Administração Linux Fundamentos de Administração Linux - 1

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Hardware e Arquitetura

Fundamentos de Administração Linux

Configuração de Atributos Fundamentais de BIOS

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Recursos de Hardware

O hardware básico do sistema é configurado através do utilitário de configuração de BIOS, que pode ser acessado no início do boot da máquina. Através deste utilitário, é possível liberar e bloquear periféricos integrados, ativar proteção básica contra erros (proteção básica contra vírus e S.M.A.R.T.) e configurar endereços I/O, IRQ e DMA.

IRQ: Requisição de Interrupção do dispositivo para a CPU, que interrompe a atividade em andamento e processa a instrução enviada pelo dispositivo.

I/O: Endereço específico no mapa de memoria do sistema. A CPU irá se comunicar com o dispositivo lendo e escrevendo neste endereço

DMA: Canal que permite a certos dispositivos, acesso direto à memória sem intermédio da CPU.

Recursos padrão utilizados por dispositivos comuns:

Dispositivo

Porta

I/O IRQ

/dev/ttyS0

0x03f8

4

/dev/ttyS1

0x02f8

3

/dev/ttyS2

0x03e8

4

/dev/ttyS3

0x02e8

3

/dev/lp0

0x378

7

/dev/lp1

0x278

5

Placa de Som

0x220

-

-

Fundamentos de Administração Linux

É comum que algumas máquinas, como servidores dedicados, sejam acessados apenas remotamente e não tenham um teclado conectado. Em caso de algum problema que faça a máquina desligar, como interrupção no fornecimento de energia, é importante que a máquina reinicie e volte a operar normalmente. Alguns BIOS procuram por um teclado e interrompem o boot caso não o encontrem.

Para esse tipo de máquina sem teclado, é imprescindível que o BIOS esteja configurado para não checar por teclado durante o boot.

O kernel do Linux armazena informações sobre recursos de dispositivos no diretório /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

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Comandos para inspecionar dispositivos

Fundamentos de Administração Linux

Fundamentos de Administração Linux

lspci

Lista informações de chipset dos componentes PCI. Com a opção -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 <unassigned> [disabled]

Capabilities: [40] Power Management version 1

Capabilities: [50] AGP version 2.0

Fundamentos de Administração Linux

Dmesg

Mostra as mensagens do kernel, da identificação do hardware em diante. Essa informação está disponível 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

) (

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Configuração de Dispositivos não IDE

Fundamentos de Administração 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 são identificados através de um conjunto de três números chamado SCSI_ID:

1 O Canal SCSI. Cada adaptador SCSI suporta um canal de dados no qual são anexados os dispositivos SCSI. São numerados a partir de zero.

2 O ID do dispositivo. A cada dispositivo é atribuído um número ID único alterável através

de jumpers. A gama de Ids vai de 0 a 7 em controladores de 8 bit e de 0 a 15 em controladores de 16 bit. O ID do controlador costuma ser 7.

3 O número lógico da unidade (LUN). É usado para determinar diferentes dispositivos

dentro de um mesmo alvo SCSI. Pode indicar uma partição em um disco ou um dispositivo de fita específico em um dispositivo multi-fita. Hoje não é muito utilizado pois adaptadores SCSI estão mais baratos e podem comportar mais alvos por barramento.

Todos dispositivos SCSI são listados em /proc/scsi/scsi:

# cat /proc/scsi/scsi

Attached devices:

Host: scsi1 Channel: 00 Id: 00 Lun: 00

Vendor: HL-DT-ST Model: RW/DVD GCC-4521B Rev: 1.00

Type: CD-ROM ANSI SCSI revision: 02

O comando scsi_info usa as informações deste arquivo para mostrar o SCSI_ID e o modelo do dispositivo solicitado:

Fundamentos de Administração Linux

Fundamentos de Administração 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 padrão, o dispositivo SCSI de boot é o de ID 0, o que pode ser alterado na BIOS SCSI. Se existirem tanto dispositivos SCSI quanto IDE, a ordem do boot precisa ser especificada na BIOS da máquina.

Fundamentos de Administração Linux

Configuração de Placas de Expansão

A configuração de placas de expansão diversas engloba os aspectos abordados nos capítulos anteriores, mais um conhecimento mais sólido sobre coldplug, hotplug e inspeção de hardware.

Em linhas gerais, coldplug significa a impossibilidade de se conectar dispositivo sem a necessidade de desligar a máquina. Exemplos de dispositivos coldplug são placas PCI, ISA e dispositivos IDE. Na maioria dos computadores, CPU e pentes de memória são coldplug. Porém, alguns servidores de alta performance suportam hotplug para esses componentes.

Hotplug é o sistema que permite conectar novos dispositivos à máquina em funcionamento e usá-los imediatamente, como no caso de dispositivos USB. O sistema Hotplug foi incorporado ao núcleo do modelo de driver do kernel 2.6, assim qualquer barramento ou classe pode disparar eventos hotplug quando um dispositivo é conectado ou desconectado. Assim que um dispositivo é conectado ou desconectado, o hotplug dispara um evento correspondente, geralmente trabalhando junto do subsistema udev, que atualiza os arquivos de dispositivos em /dev.

O hotplug precisa estar liberado no kernel, através da opção CONFIG_HOTPLUG. Dessa forma, haverá o arquivo /proc/sys/kernel/hotplug contendo o caminho para o programa hotplug (normalmente em /sbin/hotplug). A ação tomada pelo hotplug dependerá do nome do agente passado pelo kernel (nomes de agentes podem ser “usb”, “pci”, “net”, etc.). Para cada agente existe um script correspondente em /etc/hoplug/, que se encarrega de configurar corretamente o dispositivo no sistema.

Mesmo alguns dispositivos coldplug são configurados pelo sistema hotplug. Na hora do boot, o script /etc/init.d/hotplug (ou /etc/rc.d/rc.hotplug no slackware) dispara os agentes em /etc/hotplug/ para configurar aqueles dispositivos presentes antes da máquina ser ligada.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Configuração de Dispositivos USB

Dispositivos para interface USB (Universal Serial Bus) são divididos em classes:

Display Devices

Communication Devices

Audio Devices

Mass Storage Devices

Human Interface Devices (HID)

porta USB é operada por um controlador (Host Controller):

OHCI (compaq)

UHCI (intel)

EHCI (USB v2.0)

Fundamentos de Administração 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 informações detalhadas sobre os dispositivos USB conectadas são armazenadas no arquivo /proc/bus/usb/devices.

O controle dos dispositivos USB é feito pelo hotplug. Etapas executadas quando uma câmera USB é

conectada ao computador:

Os módulos USB do kernel identificam o evento USB e a ID vendor:product.

Esses dados são passados para /sbin/hotplug (ou outro, se o indicado em /proc/sys/kernel/hotplug não for o padrão)

O agente USB respectivo (/etc/hotplug/usb.agent) associa o dispositivo ao produto

consta no arquivo

correspondente. A relação entre dispositivo e módulo /etc/hotplug/usb.distmap.

O primeiro estágio envolve procedimentos do kernel, enquanto o segundo e terceiro estágio envolvem

o mecanismo do hotplug. O mapa USB correto precisa estar disponível para iniciar corretamente o dispositivo.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Acesso

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Considerações Iniciais

Diferenciação entre letras maiúsculas e minúsculas (case sensitive): todos os shells do Linux fazem esta diferenciação, isto significa que os nomes dos arquivos devem ser especificados com exatidão, ou seja, o arquivo denominado Manual.txt é um arquivo diferente do arquivo denominado manual.txt

Histórico do shell: o shell padrão do Linux, bash, grava os últimos 1000 comandos em uma lista denominada .bash_history no diretório home do usuário. Dessa forma as operações por linha de comando ganham em agilidade. A fim de percorrer o .bash_history, use as teclas do cursor para cima e para baixo.

Tecla Tab: outro recurso do bash é o autopreenchimento de comandos

. Vejamos o exemplo abaixo:

1. Digite as primeiras letras do nome de um comando, neste exemplo será utilizado o

comando date.

[root@localhost /root]# da

2. Pressione a tecla Tab e o shell irá completar o nome do comando.

[root@localhost /root]# date

Curingas: o Linux permite o uso de curingas tanto para sobreposição de uma sequência de caracteres (*), quanto para uma única posição (?).

1. Acessando o diretório boot da raiz, utilizando o curinga para sobreposição de uma

sequência de caracteres.

root@localhost /]#cd bo*

2. Acessando o diretório boot da raiz, utilizando o curinga de sobreposição única.

[root@localhost /root]#cd boo?

Para que o usuário tenha acesso ao sistema é necessário que ele possua uma conta, ou seja, um login e senha.

1. No prompt de logon digite o nome da conta e pressione a tecla enter.

Localhost login: root

Fundamentos de Administração 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 após o surgimento desta mensagem o shell do usuário é disponibilizado.

[root@localhost /root]#

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Consoles Virtuais

O Linux permite o acesso diversas vezes e de forma independente, com diferentes usuários, através do uso de consoles virtuais. Estes consoles oferecem um meio de executar diferentes shells ao mesmo tempo. O Linux suporta pelo menos 6 consoles virtuais.

Vejamos como proceder para utilizar consoles virtuais:

1. Depois de obter acesso ao sistema, mantenha pressionada a tecla Alt e pressione as

teclas F2, F3, F4, F5 ou F6.

2. Repita o processo de login, para cada console, a fim de iniciar as operações.

Para alternar entre consoles basta manter pressionada a tecla Alt + a tecla de função apropriada.

Fundamentos de Administração Linux

O que é shell?

Shell, ou interpretador de comandos é o programa executado logo após o login, cuja tarefa é interpretar e executar os comandos do usuário. Por exemplo, quando o usuário digita no console "ls" e pressiona a tecla Enter, o shell lê essa string e verifica se existe algum comando interno (embutido no próprio shell) com esse nome. Se houver, ele executa esse comando interno. Caso contrário, ele vai procurar no PATH por algum programa que tenha esse nome. Se encontrar, ele executa esse programa, caso contrário, ele retorna uma mensagem de erro. Para cada terminal ou console aberto, existe um shell sendo executado.

Ao digitar o comando "ps" (process status), podemos verificar que um dos programas rodando é o shell do usuário:

PID TTY

TIME CMD

13299

pts/1

00:00:00 su

13300

pts/1

00:00:00 bash

13337

pts/1

00:00:00 ps

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

Fundamentos de Administração Linux

Fundamentos de Administração Linux

uração do Shell

Fundamentos de Administração Linux

Variáveis de Ambiente do Shell

O shell carrega vários arquivos localizados em diferentes diretórios no sistema, denominados:

arquivos de recursos, perfil e login. Os arquivos de perfil contêm as variáveis de ambiente, as quais são definições e valores que o shell ou outros programas reconhecem depois do acesso.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Exibir variáveis de ambiente

Para exibir o valor de uma determinada variável ou uma lista das variáveis de ambiente atualmente definidas, podemos utilizar o comando printenv conforme o exemplo abaixo:

Exemplos:

[leonardo@localhost root]# printenv PATH

Fundamentos de Administração Linux

Se digitarmos apenas printenv, teremos uma lista com o valor das variáveis do ambiente. Outra forma de exibir as variáveis de ambiente é através do comando env, que ao contrário do comando printenv não exibe o valor de uma só variável.

Variáveis de ambiente:

EDITOR

Editor padrão do sistema

HISTSIZE

O

número de linhas de comando memorizadas

HOME

O

diretório home do usuário atual

HOSTTYPE

A

arquitetura do sistema em uso

LOGNAME

Nome do usuário atual

MAIL

O diretório que contém as mensagens de correio eletrônico recebidas

OSTYPE

O

sistema operacional em uso

PATH

O

caminho (ou caminhos) a procurar os comandos

PS1

Definição do prompt da linha de comando

SHELL

Nome do shell atualmente em uso

SHLVL

O

número de shell atualmente em execução

TERM

O

tipo de terminal em uso

USER

O

nome do usuário atual

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Definir uma variável de ambiente

Para definir uma variável de ambiente no shell bash é necessário utilizar o comando export, obedecendo a seguinte sintaxe: NOME_VARIAVEL="valor";export NOME_VARIAVEL.

Exemplos:

[leonardo@localhost root]# EDITOR ="/bin/vi" ; export EDITOR

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

Fundamentos de Administração Linux

Excluir uma variável de ambiente

Para excluir uma variável de ambiente digite: unset NOME_VARIAVEL

Fundamentos de Administração Linux

Fundamentos de Administração Linux

A variável PATH

Essa variável define o diretório ou diretórios onde o shell pode encontrar os programas executáveis, caso a variável não tenha sido definida corretamente será necessário digitar todo o caminho para o programa.

Exemplos:

[leonardo@localhost root]# echo $PATH /sbin:/bin [leonardo@localhost root]# env PATH=$PATH:/home [leonardo@localhost root]# echo $PATH /sbin:/bin:/home

Estas instruções sobre como adicionar caminhos ao PATH são válidas temporariamente, até sair do terminal. Para adicionar um caminho ao PATH de forma definitiva, para todo o sistema, é necessário editar o arquivo /etc/profile, para isso acesse o sistema como root.

Fundamentos de Administração Linux

Personalizando o prompt da linha de comando

A variável de prompt do shell padrão bash, PS1, é definida no /etc/profile. A definição de prompt usa caracteres especiais reconhecidos pelo shell bash, conforme este exemplo:

PS1="[\u@\h \W]\\$"

Esta linha deve existir, também, no arquivo .bash_profile. A variável PS1 deve ser acrescentada à linha de exportação no .bash_profile, desta forma:

export USERNAME ENV PATH PS1

Caracteres do prompt do shell bash:

\!

Exibe o número de histórico do comando

\#

Exibe o número desse comando

\\$

Exibe # para root ou $ para usuário comum.

\W

Exibe o nome básico do diretório de trabalho atual

\[

Indica a sequência dos caracteres não imprimíveis

\\

Imprime uma barra invertida

\]

Finaliza a sequência de caracteres não imprimíveis

\d

Usa a data no prompt

\h

Usa o nome de host do computador no prompt

\n

Exibe uma nova linha de prompt

\s

Exibe o nome do shell

\t

Exibe a hora

\u

Exibe o nome atual do usuário

\w

Exibe o diretório atual de trabalho

Exemplos:

Fundamentos de Administração Linux

Fundamentos de Administração Linux

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

Fundamentos de Administração Linux

Alias

São redefinições de comandos inseridas, pelo root, no arquivo /etc/bashrc que permitem maior agilidade no uso dos comandos.

Exemplos:

alias cp="cp -i"

alias mv="mv -i"

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Criar o arquivo e colocar nele os comandos

Use o nano, VI ou outro editor de textos de sua preferência para colocar todos os comandos dentro do arquivo. A primeira linha do script deve ser:

#!/bin/bash

Para que ao ser executado, o sistema saiba que é o shell quem irá interpretar estes comandos.

Para tornar o script um arquivo executável:

chmod +x sistema

Fundamentos de Administração Linux

Problemas na execução do script

"Comando não encontrado" O shell não encontrou o seu script. Verifique se o comando que você está chamando tem exatamente o mesmo nome do seu script. Lembre-se que no Unix/Linux as letras maiúsculas e minúsculas são diferentes, então o comando "SISTEMA" é diferente do comando "sistema". Caso o nome esteja correto, verifique se ele está no PATH do sistema. O comando "echo $PATH" mostra quais são os diretórios conhecidos, mova seu script para dentro de um deles, ou chame-o passando o caminho completo. Se o script estiver no diretório corrente, chame-o com um "./" na frente, assim:

prompt$ ./sistema

Caso contrário, especifique o caminho completo desde o diretório raiz:

prompt$ /tmp/scripts/sistema

"Permissão Negada" O shell encontrou seu script, mas ele não é executável.

Use o comando

chmod +x seu-script

para torná-lo um arquivo executável.

"Erro de Sintaxe" O shell encontrou e executou seu script, porém ele tem erros.

Um script só é executado quando sua sintaxe está 100% correta. Verifique os seus comandos, geralmente o erro é algum IF ou aspas que foram abertos e não foram fechados. A própria mensagem informa o número da linha onde o erro foi encontrado.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

O primeiro shell script.

Nesse ponto, você já sabe o básico necessário para fazer um script em shell do zero e executá-lo. Mas apenas colocar os comandos em um arquivo não torna este script útil.

Vamos fazer algumas melhorias nele para que fique mais compreensível.

Executar os três comandos seguidos resulta em um bolo de texto na tela, misturando as informações e dificultando o entendimento. É preciso trabalhar um pouco a saída do script, tornando-a mais legível.

O comando "echo" serve para mostrar mensagens na tela. Que tal anunciar cada comando antes de executá-lo?

#!/bin/bash

echo "Data e Horário:"

date

echo

echo "Uso do disco:"

df

echo

echo "Usuários conectados:"

w

Para usar o echo, basta colocar o texto entre "aspas". Se nenhum texto for colocado, uma linha em branco é mostrada.

Para o script ficar mais completo, vamos colocar uma interação mínima com o usuário, pedindo uma confirmação antes de executar os comandos.

#!/bin/bash

echo "Vou buscar os dados do sistema. Posso continuar? [sn] " read RESPOSTA test "$RESPOSTA" = "n" && exit echo "Data e Horário:"

date

echo

Fundamentos de Administração Linux

echo "Uso do disco:"

df

echo

echo "Usuários conectados:"

w

O comando "read" leu o que o usuário digitou e guardou na variável RESPOSTA. Logo em seguida, o comando "test" verificou se o conteúdo dessa variável era "n". Se afirmativo, o comando "exit" foi chamado e o script foi finalizado. Nessa linha há vários detalhes importantes:

O conteúdo da variável é acessado colocando-se um cifrão "$" na frente

O comando test é útil para fazer vários tipos de verificações em textos e arquivos

O operador lógico "&&", só executa o segundo comando caso o primeiro tenha sido OK. O operador inverso é o "||”

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Com o tempo, o script vai crescer, mais comandos vão ser adicionados e quanto maior, mais difícil encontrar o ponto certo onde fazer a alteração ou corrigir algum erro.

Para poupar horas de estresse, e facilitar as manutenções futuras, é preciso deixar o código visualmente mais agradável e espaçado, e colocar comentários esclarecedores.

#!/bin/bash

# sistema - script que mostra informações sobre o sistema

# Autor: Fulano da Silva

# Pede uma confirmação do usuário antes de executar

echo "Vou buscar os dados do sistema. Posso continuar? [sn] "

read RESPOSTA

# Se ele digitou 'n', vamos interromper o script

test "$RESPOSTA" = "n" && exit

# O date mostra a data e a hora correntes

echo "Data e Horário:"

date

echo

# O df mostra as partições e quanto cada uma ocupa no disco

echo "Uso do disco:"

df

echo

# O w mostra os usuários que estão conectados nesta máquina

echo "Usuários conectados:"

w

Basta iniciar a linha com um "#" e escrever o texto do comentário em seguida. Estas linhas são ignoradas pelo shell durante a execução. O cabeçalho com informações sobre o script e seu autor também é importante para ter-se uma visão geral do que o script faz, sem precisar decifrar seu código.

Também é possível colocar comentários no meio da linha # como este

Fundamentos de Administração Linux

Variáveis

As variáveis são a base de qualquer script. É dentro delas que os dados obtidos durante a execução do script serão armazenados. Para definir uma variável, basta usar o sinal de igual "=" e para ver seu valor, usa-se o "echo":

prompt$ VARIAVEL="um dois tres" prompt$ echo $VARIAVEL um dois tres prompt$ echo $VARIAVEL $VARIAVEL um dois tres um dois tres prompt$

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Não podem haver espaços ao redor do igual "="

Ainda é possível armazenar a saída de um comando dentro de uma variável. Ao invés de aspas, o

comando deve ser colocado entre "$(

)", veja:

prompt$ HOJE=$(date)

prompt$ echo "Hoje é: $HOJE"

Hoje é: Sáb Abr 24 18:40:00 BRT 2004

prompt$ unset HOJE

prompt$ echo $HOJE

prompt$

E finalmente, o comando "unset" apaga uma variável.

Para ver quais as variáveis que o shell já define por padrão, use o comando "env".

Diferente de outras linguagens de programação, o shell não usa os parênteses para separar o comando

de seus argumentos, mas sim o espaço em branco. O formato de um comando é sempre:

COMANDO OPÇÕES PARÂMETROS

sistema" mostra o

nosso script, com as linhas numeradas. O "-n" é a opção para o comando, que o instrui a numerar linhas, e "sistema" é o último argumento, o nome do arquivo.

O comando "cat" mostra o conteúdo de um arquivo. O comando "cat

-n

O "read" é um comando do próprio shell, já o "date"" é um executável do sistema. Dentro de um

script, não faz diferença usar um ou outro, pois o shell sabe como executar ambos.

Assim, toda a gama de comandos disponíveis no Unix/Linux pode ser usada em scripts!

Há vários comandos que foram feitos para serem usados com o shell, são como ferramentas. Alguns

deles:

Coman

Função

Opções

do

cat

Mostra arquivo

-n, -s

cut

Extrai campo

-d, -f, -c

Fundamentos de Administração Linux

date

Mostra data

-d, +'

'

find

Encontra arquivos

-name, -iname,-type,f, -exec

grep

Encontra texto

-i, -v, -r, -qs, -w,-x

head

Mostra Início

-n, -c

printf

Mostra texto

nenhuma

rev

Inverte texto

nenhuma

sed

Edita texto

-n,s/isso/aquilo/, d

seq

Conta Números

-s, -f

sort

Ordena texto

-n, -f, -r, -k -t, -o

tail

Mostra Final

-n, -c, -f

tr

Transforma texto

-d, -s, A-Z a-z

uniq

Remove duplicatas

-i, -d, -u

wc

Conta Letras

-c, -w, -l, -L

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Use "man comando" ou "comando --help" para obter mais informações sobre cada um deles.

E o melhor, em shell é possível combinar comandos, aplicando-os em sequência, para formar um comando completo. Usando o pipe "|" é possível canalizar a saída de um comando diretamente para a entrada de outro, fazendo uma cadeia de comandos.

Exemplo:

prompt$ cat /etc/passwd | grep root | cut -c1-10

root:x:0:0

operator:x

prompt$

Fundamentos de Administração Linux

O comando test

O canivete suíço dos comandos do shell é o "test", que consegue fazer vários tipos de testes em números, textos e arquivos. Ele possui várias opções para indicar que tipo de teste será feito, algumas delas:

 

Testes em variáveis

T

 

e

st

e

s

e

m

a

r

q

u

i

v

o

s

lt

Núm. é menor que (LessThan)

-d

-gt

Núm. é maior que (GreaterThan)

-f

-le

Núm. é menor igual (LessEqual)

-r

-ge

Núm. é maior igual (GreaterEqual)

-s

-eq

Núm. é igual (EQual)

-w

-ne

Núm. é diferente (NotEqual)

-nt

=

String é igual

-ot

!=

String é diferente

-ef

-n

String é não nula

-a

-z

String é nula

-o

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Exercício: script que testa arquivos

Tente fazer o script "testa-arquivos", que pede ao usuário para digitar um arquivo e testa se este arquivo existe. Se sim, diz se é um arquivo ou um diretório. Exemplo de uso:

prompt$ testa-arquivos Digite o arquivo: /naoexiste O arquivo '/naoexiste' não foi encontrado prompt$ testa-arquivos Digite o arquivo: /tmp /tmp é um diretório prompt$ testa-arquivos Digite o arquivo: /etc/passwd /etc/passwd é um arquivo prompt$

Fundamentos de Administração Linux

Conceitos avançados

Até agora vimos o básico, o necessário para se fazer um script de funcionalidade mínima. A seguir, conceitos novos que ampliarão as fronteiras de seus scripts!

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Recebimento de opções e parâmetros

Assim como os comandos do sistema que possuem opções e parâmetros, os scripts também podem ser preparados para receber dados via linha de comando.

Dentro do script, algumas variáveis especiais são definidas automaticamente, em especial, "$1" contém o primeiro argumento recebido na linha de comando, "$2" o segundo, e assim por diante. Veja o script "argumentos":

#!/bin/sh

# argumentos - mostra o valor das variáveis especiais

echo "O nome deste script é: $0" echo "Recebidos $# argumentos: $*" echo "O primeiro argumento recebido foi: $1" echo "O segundo argumento recebido foi: $2"

Ele serve para demonstrar o conteúdo de algumas variáveis especiais, acompanhe:

prompt$ ./argumentos um dois três

O nome deste script é: ./argumentos

Recebidos 3 argumentos: um dois três

O

primeiro argumento recebido foi: um

O

segundo argumento recebido foi: dois

O acesso é direto, basta referenciar a variável que o valor já estará definido. Assim é possível criar scripts que tenham opções como --help, --version e outras.

Fundamentos de Administração Linux

Expressões aritméticas

O shell também sabe fazer contas. A construção usada para indicar uma expressão aritmética é "$

((

))",

com dois parênteses.

prompt$ echo $((2*3))

6

prompt$ echo $((2*3-2/2+3))

8

prompt$ NUM=44

prompt$ echo $((NUM*2))

88

prompt$ NUM=$((NUM+1)) prompt$ echo $NUM

45

Fundamentos de Administração Linux

Fundamentos de Administração Linux

If, for e while

Assim como qualquer outra linguagem de programação, o shell também tem estruturas para se fazer condicionais e loop. As mais usadas são if, for e while.

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

Diferente de outras linguagens, o if testa um comando e não uma condição. Porém como já conhecemos qual o comando do shell que testa condições, é só usá-lo em conjunto com o if. Por exemplo, para saber se uma variável é maior ou menor do que 10 e mostrar uma mensagem na tela informando:

if test "$VARIAVEL" -gt 10 then echo "é maior que 10" else echo "é menor que 10" fi

Há um atalho para o test , que é o comando [. Ambos são exatamente o mesmo comando, porém usar o [ deixa o if mais parecido com o formato tradicional de outras linguagens:

if [ "$VARIAVEL" -gt 10 ] then echo "é maior que 10" else echo "é menor que 10" fi

Fundamentos de Administração Linux

Se usar o [, também é preciso fechá-lo com o ], e sempre devem ter espaços ao redor. É recomendado evitar esta sintaxe para diminuir suas chances de erro.

Já o while é um laço que é executado enquanto um comando retorna OK. Novamente o test é bom de ser usado. Por exemplo, para segurar o processamento do script enquanto um arquivo de lock não é removido:

while test -f /tmp/lock do echo "Script travado sleep 1 done

"

Fundamentos de Administração Linux

Fundamentos de Administração Linux

E por fim, o for percorre uma lista de palavras, pegando uma por vez:

for numero in um dois três quatro cinco do echo "Contando: $numero" done

Uma ferramenta muito útil para usar com o for é o seq, que gera uma sequência numérica. Para fazer o loop andar 10 passos, pode-se fazer:

for passo in $(seq 10)

O mesmo pode ser feito com o while, usando um contador:

i=0

while test $i -le 10 do

i=$((i+1))

echo "Contando: $i" done

E temos ainda o loop infinito, com condicional de saída usando o "break¨:

while :

do if test -f /tmp/lock then echo "Aguardando liberação do lock sleep 1 else

"

Fundamentos de Administração Linux

break

fi

done

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Exercícios

A melhor parte finalmente chegou, agora é a sua vez de se divertir. Seguem alguns exercícios que podem ser resolvidos usando o que foi aprendido até aqui.

Alguns exigirão pesquisa e necessitarão de algumas ferramentas que foram apenas citadas, mas não aprendidas. O shelleiro também tem que aprender a se virar sozinho!

Fundamentos de Administração Linux

relacao.sh

Recebe dois números como parâmetro e mostra a relação 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 número como parâmetro e o diminui até chegar a zero, mostrando na tela cada passo, em uma mesma linha. Exemplo:

prompt$ ./zerador.sh 5

5 4 3 2 1 0

prompt$ ./zerador.sh 10 10 9 8 7 6 5 4 3 2 1 0 prompt$

substring.sh

Recebe duas palavras como parâmetro e verifica se a primeira palavra está contida dentro da segunda. Só mostra mensagem informativa em caso de sucesso, do contrário não mostra nada. Exemplo:

prompt$ ./substring.sh ana banana ana está contida em banana prompt$ ./substring.sh banana maria prompt$ ./substring.sh banana prompt$ ./substring.sh prompt$

Pesquise sobre o comando grep

Fundamentos de Administração Linux

Fundamentos de Administração Linux

juntatudo.sh

Mostra na tela "grudados" todos os parâmetros recebidos na linha de comando, como uma única palavra. Exemplo:

prompt$ ./juntatudo.sh a b c d e f verde azul abcdefverdeazul prompt$

Pesquise sobre o comando tr

Fundamentos de Administração Linux

users.sh

Do arquivo /etc/passwd, mostra o usuário e o nome completo de cada usuário do sistema (campos 1 e 5) separados por um TAB. Exemplo:

prompt$ ./users.sh ftp FTP User nobody Nobody named Domain name server xfs X Font Server mysql MySQL server aurelio Aurelio Marinho Jargas prompt$

Pesquise sobre o comando cut

shells.sh

Do arquivo /etc/passwd, mostra todos os shells (último campo) que os usuários usam. Não mostrar linhas repetidas. Exemplo:

prompt$ ./shells.sh /bin/bash /bin/false /bin/sync /sbin/halt /sbin/shutdown prompt$

Pesquise sobre o comando uniq

parametros.sh

Mostra na tela todos os parâmetros recebidos na linha de comando, contando-os.

Exemplo:

Fundamentos de Administração Linux

Fundamentos de Administração Linux

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

Pesquise sobre o comando shift

Fundamentos de Administração Linux

Respostas dos exercícios

Resista à tentação de olhar as respostas antes de tentar fazer os exercícios! É na prática que se consolida os conhecimentos aprendidos, não pule este passo. Seja forte, insista, não desista!

Fundamentos de Administração Linux

Fundamentos de Administração Linux

testa-arquivos

#!/bin/bash echo -n "Digite o arquivo: " read ARQUIVO test -d "$ARQUIVO" && echo "$ARQUIVO é um diretório" test -f "$ARQUIVO" && echo "$ARQUIVO é um arquivo" test -f "$ARQUIVO" -o -d "$ARQUIVO" || echo "O arquivo '$ARQUIVO' não foi encontrado" echo

Fundamentos de Administração 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

Fundamentos de Administração Linux

Fundamentos de Administração Linux

zerador.sh

#!/bin/bash

i=$1

while test $i -ge 0 do echo -n "$i "

i=$((i-1))

done

echo

Fundamentos de Administração Linux

substring.sh

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

Fundamentos de Administração Linux

Fundamentos de Administração Linux

juntatudo.sh

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

Fundamentos de Administração Linux

users.sh

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

Fundamentos de Administração Linux

Fundamentos de Administração Linux

shells.sh

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

Fundamentos de Administração Linux

parametros.sh

#!/bin/bash

i=0

while test "$1" do

i=$((i+1))

echo "Parâmetro $i: $1" shift done

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Shell

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

Fundamentos de Administração Linux

ando o Sistema

Quando o encerramento do sistema tem inicio, todos os sistemas de arquivos (exceto o raiz) são desmontados, os processos de usuário são finalizados, servidores são encerrados e finalmente o sistema de arquivo raiz é desmontado. Proceda da forma adequada caso contrário pode-se corromper o sistema de arquivos.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

alizando o Linux

Para reinicializar o sistema use o comando reboot ou shutdown com as opções –r now, conforme o exemplo abaixo:

[root@localhost /root]# reboot

ou

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

Fundamentos de Administração Linux

Desligando o Linux

Para desligar o sistema use comando poweroff ou shutdown com as opções –h now, conforme o exemplo abaixo:

[root@localhost /root]# poweroff

Ou

[root@localhost /root]# halt

Ou

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

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Dispositivos, Sistemas de Arquivos GNU/Linux

Fundamentos de Administração Linux

Criação de Partições e Sistemas de Arquivos

Discos IDE podem conter até 4 partições físicas, das quais uma pode ser estendida. A partição estendida pode ser dividida em partições lógicas. Pode haver um máximo de 46 partições num disco IDE e 16 num disco SCSI.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Fdisk

O fdisk é o programa padrão para manipular partições no GNU/Linux. Com a opção -l lista os dispositivos e as partições existentes:

# fdisk -l

Disk /dev/hda: 10.0 GB, 10005037568 bytes

255 heads, 63 sectors/track, 1216 cylinders

Units = cilindros of 16065 * 512 = 8225280 bytes

Dispositivo

Boot

Start

End

Blocks

Id

System

/dev/hda1

*

1

153

1228941

b

W95 FAT32

/dev/hda2

154

173

160650

82

Linux swap

/dev/hda3

174

782

4891792+

83

Linux

/dev/hda4

783

1216

3486105

83

Linux

Disk /dev/hdb: 2111 MB, 2111864832 bytes

 

64 heads, 63 sectors/track, 1023 cylinders

Units = cilindros of 4032 * 512 = 2064384 bytes

Dispositivo

Boot

Start

End

Blocks

Id

System

/dev/hdb1

1

1023

2062336+

c

W95 FAT32 (LBA)

Para manipular partições, o fdisk deve ser iniciado tendo como argumento o dispositivo em questão:

# fdisk /dev/hda

Uma vez dentro do fdisk, certas letras corresponderão a comandos. Alguns comandos bastante utilizados:

Fundamentos de Administração Linux

p

→ Lista as partições

n

→ Cria uma nova partição interativamente

t → Muda a identificação da partição

d

→ Apaga uma partição

q

→ Sai do fdisk sem gravar as alterações

w → Sai do fdisk e grava as alterações

m → Mostra a ajuda de comandos

Por padrão, o fdisk cria novas partições identificadas como partições nativas de GNU/Linux, cujo

código hexadecimal é 83

(0x83). O código de identificação de partições do tipo swap é 82

(0x82).

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Criação de Sistemas de Arquivos

Durante muito tempo o sistema de arquivos mais utilizado no GNU/Linux foi o ext2 (second extended). No entanto, hoje muito se usa sistemas de arquivos journalling, como o ext3 e o ReiserFS. Por padrão, o ext2 consiste em blocos de 1024 bytes. Há três tipos de blocos.

Fundamentos de Administração Linux

Superblocks

Repetem-se a cada 8193 blocos. Contém informações sobre o tamanho dos blocos, inodes livres, data da última montagem, etc.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

inodes

Indicadores para os blocos de dados. Os 12 primeiros blocos de dados após o inode são acessados sequencialmente. Se os dados excederem 12 blocos, blocos inode indiretos agem como espelho. Cada inode tem 256 bytes e contém a informação de usuário, grupo, permissões e data referente aos dados associados.

Fundamentos de Administração Linux

Blocos de dados

Os blocos que contém os arquivos e diretórios propriamente ditos.

A diferença para um sistema de arquivos journalling é que um sistema com essa capacidade registra de antemão todas as alterações que irá realizar no disco. Dessa forma, erros de gravação (normalmente ocasionados por queda de energia ou desligamento incorreto) podem ser mais facilmente diagnosticados e sanados. É possível fazer a conversão de ext2 para ext3 sem perda de dados.

O comando mkfs cria sistemas de arquivos em partições. A opção -t indica o tipo do sistema de arquivos:

Criar uma partição ext2 na partição /dev/hda3:

# mkfs -t ext2 /dev/hda3

Há também comandos específicos para cada sistema de arquivos:

mkfs.ext2, mke2fs, mkfs.ext3, mkfs.xfs, mkreiserfs, mkdosfs e mkfs.vfat.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Partição Swap

Após a partição swap ser criada pelo fdisk, ela precisa ser formatada com o comando mkswap:

Formata como swap a partição /dev/hda2:

# mkswap /dev/hda2

Após criada e formatada, uma partição swap precisa ser ativada para ser usada como memória swap.

O comando swapon -a ativa todas partições swap que constarem em /etc/fstab. As entradas referentes a partições swap em /etc/fstab não tem ponto de montagem.

Exemplo de entrada de partição swap em /etc/fstab:

/dev/hda2 swap swap defaults 0 0

Normalmente, todas as partições swap contidas em /ect/fstab são ativadas pelos scripts de inicialização do sistema. Para ativar ou desativar essa partição manual manualmente, usa-se swapon /dev/hda2 ou swapoff /dev/hda2, respectivamente.

Informações sobre partições swap ativas são armazenadas em /proc/swaps.

Fundamentos de Administração Linux

Exemplo de /proc/swaps:

Filename

Type

Size

Used

Priority

/dev/hda2

partition

160640

32632 -1

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Manutenção da Integridade de Sistemas de Arquivos

Fundamentos de Administração Linux

Checando o Sistema de Arquivos

O comando fsck deve ser executado em partições que apresentarem erros ou em dispositivos que foram desligados incorretamente. A partição deverá estar desmontada ou montada como somente leitura (ro) para a verificação.

Como o comando mkfs, o fsck possui a opção -t para especificar o tipo do sistema de arquivos e um comando específico para cada partição: fsck.ext2 ou e2fsck, fsck.ext3, fsck.xfs, reiserfsck e dosfsck.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Examinando e corrigindo o Sistema de Arquivos

Fundamentos de Administração Linux

debugfs

Depurador interativo de sistemas de arquivos. Examina sistemas ext2 e ext3. Muda diretórios, examina dados de inodes, apaga arquivos, cria links, mostra o log de journalling ext3, etc. É usado em casos extremos, geralmente após o fsck ter falhado.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

dumpe2fs

Mostra informações de grupo de blocos e de superblocks.

Fundamentos de Administração Linux

tune2fs

Configura parâmetros ajustáveis em sistemas de arquivos ext2, como rótulo e limites de montagem antes de checar automaticamente.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

df

Mostra o espaço disponível em cada dispositivo. A análise é feita diretamente no dispositivo.

Por padrão, mostra o espaço em unidades de 1kb. A opção -h usa medidas apropriadas para tornar a saída mais inteligível.

Fundamentos de Administração Linux

du

Mostra o espaço ocupado. Sem argumentos, mostra o uso de cada diretório no sistema. Um diretório específico pode ser indicado através da opção -s. A opaco -h usa medidas apropriadas para tornar a saída mais inteligível.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Montagem e Desmontagem dos Sistemas de Arquivos

Fundamentos de Administração 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 tabulações ou espaços:

1. Dispositivo

2. Ponto de montagem ( “swap” se for uma partição de swap)

3. Tipo de sistema de arquivos

4. Opções

5. Dump (0 ou 1). Determina se dispositivo deverá ser considerado pelo comando dump. Se ausente, 0 é considerado.

Determina a ordem da checagem feita pelo fsck durante o boot. Para a

6. fsck (1 ou 2).

partição raiz (/), deve ser 1. Se ausente, 0 é presumido e a checagem não será feita no boot.

Para permitir que usuários comuns montem e desmontem dispositivos – geralmente, o caso de dispositivos removíveis – deve-se incluir a opaco “users” para o respectivo dispositivo.

Exemplo:

/dev/cdrom /mnt/cdrom auto noauto,users,ro 0 0

A palavra “auto” na posição referente ao sistema de arquivos indica que o sistema de arquivos deve ser identificado automaticamente.

Fundamentos de Administração Linux

Fundamentos de Administração 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. Também é usado para montar dispositivos manualmente:

O comando do exemplo acima monta o dispositivo /dev/cdrom contendo mídia com sistema de arquivos iso9660 no diretório /mnt/cdrom, com permissão somente-leitura (ro).

Para montar manualmente um dispositivo que conste em /etc/fstab, basta fornecer para o comando mount a localização do dispositivo ou do diretório alvo. Para desmontar um dispositivo, o comando umount é utilizado tendo como argumento o dispositivo ou o diretório alvo a ser desmontado. Usado com a opcao -a, o comando mount montará todos os dispositivos em /etc/fstab (exceto os marcados com a opção noauto).

Fundamentos de Administração Linux

Opções de montagem

As opções de montagem são as mesmas para /etc/fstab e para mount diretamente. Se mais de uma opção for fornecida, deverão ser separadas por vírgula.

rw ou ro

Gravável ou somente leitura

noauto

Não e montado automaticamente

users

O dispositivo poderá ser montado e desmontado por usuários comuns

user

Apenas quem montou terá permissão de desmontar

owner

As permissões do dispositivo montado se adequarão ao usuário que o montou

usrquota

Habilita o uso de quotas de disco para usuário

grpquota

Habilita o uso de quotas de disco para grupo

remount

Remonta um dispositivo montado com outras opções. Útil para remontar um dispositivo como somente leitura, por exemplo.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Administração de Cotas de Disco

Fundamentos de Administração Linux

Introdução

No Linux podemos definir quotas de espaço em disco por usuário ou grupos de usuários. Estas quotas garantem um limite de espaço em disco, se este limite for ultrapassado, o usuário ou grupo de usuários não será capaz de criar novos arquivos até que os mesmos sejam apagados ou a quota seja redimensionada.

Desta maneira, esse recurso se torna indispensável para aplicações que envolvem ambientes multiusuários, servidores etc. Antes de partimos para a prática, é necessário saber se o suporte a quotas foi compilado no Kernel do sistema.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Limites de Quotas

Cada sistema de arquivos pode ter cinco tipos de limites de quotas, que são especificados em blocos (blocks) de 1024 bytes cada:

Fundamentos de Administração Linux

Hard Limit (Limite Físico) por usuário:

É o máximo de espaço em disco que um usuário pode ter na partição configurada com quotas de disco. Uma vez que este limite de quota é ultrapassado, o usuário não poderá gravar arquivos na partição.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Soft Limit (Limite Temporário) por usuário:

Indica a quantidade máxima de espaço temporária em disco numa partição. Quando este limite é ultrapassado, o usuário é informado que seu espaço em disco está terminando e o Grace Period é acionado. O usuário ainda poderá gravar arquivos até o Grace Period terminar ou até que o Hard Limit seja alcançado.

Fundamentos de Administração Linux

Hard Limit para grupo de usuários:

É o máximo de espaço em disco que um grupo de usuários pode ter. Quando esse limite é ultrapassado, nenhum usuário poderá gravar arquivos em disco mesmo que tenham espaço disponível.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Soft Limit para grupo de usuários:

Indica a quantidade máxima de espaço temporária em disco numa partição. Quando este limite é ultrapassado, o grupo de usuários é informado que seu espaço em disco está terminando e o Grace Period é acionado. Os usuários ainda poderão gravar arquivos até o Grace Period terminar ou até que o Hard Limit por grupo seja alcançado.

Fundamentos de Administração Linux

Comandos para gerência de quotas

Fundamentos de Administração Linux

Fundamentos de Administração Linux

quota

O comando quota é usado para visualizar informações sobre as quotas de espaço em disco

configuradas para um determinado usuário ou grupo de usuários.

Opções:

-u

- Mostra a quota definida para um determinado usuário;

-g

- Mostra a quota definida para um determinado grupo de usuários;

-v

- Mostra as quotas mesmo que nenhuma esteja definida;

-q

- Mostra somente quando a rota for excedida;

-i - Ignora pontos de montagem montados pelo automounter;

-l - Mostra apenas quotas de sistemas de arquivos locais;

Somente o superusuário pode visualizar as informações de quotas de outros usuários, sendo que um usuário comum só pode ver a sua quota e a quota do grupo que ele pertence.

$ quota -u mark

Disk quotas for user mark (uid 1000):

Filesystem blocks

quota

limit

grace

files

quota

limit

grace

/dev/sdb2

2740*

1000

2000

60

0

0

Fundamentos de Administração Linux

quotaon

O comando quotaon habilita o gerenciamento prévio de todas as quotas de disco configuradas em um ou mais sistemas de arquivos.

Opções:

-a -- Habilita o gerenciamento de todas as quotas de disco para todos os sistemas de arquivos configurados para controle de quotas no arquivo /etc/fstab;

-v - Mostra uma mensagem para cada sistema de arquivos com quotas habilitadas;

-u - Habilita o gerenciamento de quotas de usuários em um determinado dispositivo;

-g - Habilita o gerenciamento de quotas de grupos em um determinado dispositivo;

# quotaon -aguv

/dev/sdb2 [/mnt/particao1]: group quotas turned on /dev/sdb2 [/mnt/particao1]: user quotas turned on

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

# quotaon -gv /home

Fundamentos de Administração Linux

Fundamentos de Administração Linux

quotaoff

O comando quotaoff desabilita o gerenciamento de quotas de usuários ou grupos em um ou mais

sistemas de arquivos.

Opções:

-a

- Desabilita o gerenciamento de todas as quotas de disco para todos os sistemas de arquivos configurados para controle de quotas no arquivo /etc/fstab;

-v

- Mostra uma mensagem para cada sistema de arquivos com quotas desabilitadas;

-u

- Desabilita o gerenciamento de quotas de usuários em um determinado dispositivo;

-g

- Desabilita o gerenciamento de quotas de grupos em um determinado dispositivo;

# quotaoff -aguv

/dev/sdb2 [/mnt/particao1]: group quotas turned off

/dev/sdb2 [/mnt/particao1]: user quotas turned off

Fundamentos de Administração 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, mês), 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, senão as informações coletadas da base de dados ficarão em memória e os arquivos com a base de dados não serão atualizados.

Opções:

-a - Checa todas as quotas configuradas para os sistemas de arquivos mencionados no arquivo /etc/fstab;

-g grupo - Cria a base de dados para um determinado grupo;

-u user - Cria a base de dados para um determinado usuário;

-v - Mostra todas as informações executadas pelo quotacheck;

# quotaoff -a

# quotacheck -avug

# quotaon -a

Fundamentos de Administração Linux

Fundamentos de Administração Linux

edquota

O comando edquota é um utilitário usado somente pelo superusuário para edição de quotas de

usuários e grupos. O editor vi é o editor padrão usado com o edquota para editar os arquivos quota.user e quota.group.

Opções:

-r - Edita quotas em dispositivos remotos, um bom exemplo são os dispositivos que usam NFS;

-u

- Edita as quotas de usuários;

-g

- Edita as quotas de grupos de usuários;

-p

user - Copia as configurações de uma quota de usuário padrão para criar outra;

-F

format-name

- Edita as quotas para um formato específico (vfsold, vfsv0, rpc e xfs);

-f filesystem - Realiza operações especificas para um único sistema de arquivos;

-T - Edita o tempo limite de uso de quotas de usuários/grupos quando o softlimit é excedido;

-t - Edita o período de graça para os Soft Limits para cada sistema de arquivos;

Observe a edição da quota do usuário mark:

# edquota -u mark Disk quotas for user mark (uid 1000):

Filesystem blocks soft hard inodes soft hard /dev/sdb2 2740 3000 5000 60 0 0

Fundamentos de Administração Linux

Agora, vamos mudar o período de soft limit de todos os usuários:

# edquota -tu

Grace period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

Filesystem

/dev/sdb2 5days 3days

Block grace period

Inode grace period

Podemos usar dias, horas, minutos ou segundos para configurar o Soft Limit, no exemplo acima, o período de graça para espaço em disco está configurado para 5 dias e 3 dias para armazenamento de arquivos.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

repquota

O comando repquota gera um relatório do uso das quotas de discos de usuários e grupos de um

determinado dispositivo.

Opções:

-a

- Exibe um relatório de todas as quotas dos sistemas de arquivos que estão contidos no arquivo /etc/mtab;

-v

- Cria um cabeçalho descritivo para o relatório de quotas;

-u

- Cria um relatório de utilização por usuário;

-g

- Cria um relatório de utilização por grupo;

-c

- Faz cache das entradas para relatório e traduz os UIDs/GIDs para nomes em uma grande amostra

de usuários. É um bom procedimento quando usado com o arquivo /etc/passwd;

-C - Faz cachê das entradas para relatório individualmente. É um bom procedimento quando os usuários estão armazenados em um banco de dados;

-t - Trunca o nome de usuários ou grupos com mais de 9 caracteres;

-n - Não traduz UIDs/GIDs para nomes;

-i - Ignora os pontos de montagem montados pelo automounter;

-s

- Testa para relatar o espaço e o número de inodes usados;

-F

- Exibe um relatório de quotas para um determinado formato. Esses formatos podem ser: vfsold, vfsv0 e xfs;

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Criando e gerenciando quotas

Nesse tópico, abordaremos todos os procedimentos para a criação 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ê permissão de acesso somente para o root no diretório /home:

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

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

Estes dois arquivos são os bancos de dados de quotas de usuários e grupos. Nesse exemplo, estamos utilizando quota versão-1, caso alguém esteja usando a versão-2, os nomes dos arquivos devem ser aquota.user e aquota.group. Agora devemos reiniciar o sistema para que as configurações de quota entrem em vigor.

# shutdown -r now

Após a reinicialização do sistema, use o comando quotacheck para inicializar os bancos de dados:

# quotacheck -avug

Adicione as quotas de usuários:

# edquota -u mark

Disk quotas for user mark (uid 1000):

Filesystem

blocks

soft

hard

inodes

soft

hard

/dev/sda8

28

9000

10000

7

4000

5000

/dev/sdb2

2740

3000

5000

60

0

0

Fundamentos de Administração Linux

Adicione as quotas de grupo:

# edquota -g santos

Disk quotas for group santos (gid 1001):

Filesystem

blocks

soft

hard

inodes

soft

hard

/dev/sda8

0

100000 120000

0

0

0

/dev/sdb2

16

300000 350000

0

4

0

Adicione o tempo limite que os usuários e grupos poderão ter as suas quotas excedidas:

# edquota -t

Grace period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

Filesystem

Block grace period

Inode grace period

/dev/sda8 7days

7days

/dev/sdb2 7days

7days

Fundamentos de Administração Linux

Fundamentos de Administração Linux

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

# vi quotas.sh

#!/bin/bash

# Checa e ativa o sistema de quotas

if [ -x /usr/sbin/quotacheck ] then

echo "Checando sistema de quotas. " /usr/sbin/quotacheck -avug echo " Sistema de Quotas OK."

fi

if [ -x /usr/sbin/quotaon ] then

echo "Ativando sistema de quotas." /usr/sbin/quotaon -avug

fi

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

# crontab -e

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

Ou se preferir, adicione um script no diretório /etc/cron.weekly:

# vi checaquotas.sh

#!/bin/bash

Fundamentos de Administração Linux

/usr/sbin/quotacheck -avug

Não esqueça de dar permissão de execução ao arquivo:

# chmod 760 checaquotas.sh

Execute o comando "repquota -v /home" para visualizar o relatório de quotas:

# repquota -v /home

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Explorando o sistema de arquivos

Um sistema de arquivos é a coleção de arquivos e a hierarquia de diretórios em um sistema. Primeiro, mude para o diretório root digitando o comando “cd /”

[root@bwpx01 ~]# cd /

Para mostrar uma lista do seu conteúdo digite o comando “ls –l”.

[root@bwpx01 /]# ls -l

total 195

drwxr-xr-x

2 root

root

4096 Jul 29 17:52 bin

drwxr-xr-x

4 root

root

1024 Jul 29 12:08 boot

drwxr-xr-x

8 cduser cduser 4096 Sep 2 17:07 cdunix

drwxr-xr-x 16 root

root

7760 Aug 10 17:54 dev

drwxr-xr-x 105 root

root

12288 Sep 14 11:40 etc

drwxr-xr-x 133 root

root

4096 Aug 27 19:02 home

drwxr-xr-x 11 root

root

4096 Jul 29 17:50 lib

drwxr-xr-x

7 root

root

12288 Jul 30 11:35 lib64

drwx------

2 root

root

16384 Jul 29 11:15 lost+found

drwxr-xr-x

2 root

root

4096 Oct 1 2009 media

drwxr-xr-x

2 root

root

0 Aug 10 17:50 misc

drwxr-xr-x

3 root

root

4096 Jul 30 14:34 mnt

drwxr-xr-x

2 root

root

0 Aug 10 17:50 net

drwxr-xr-x

8 root

root

4096 Jul 30 11:51 opt

dr-xr-xr-x 357 root

root

0 Aug 10 17:49 proc

drwxr-x---

9 root

root

4096 Aug 24 11:36 root

drwxr-xr-x

2 root

root

12288 Jul 29 17:52 sbin

drwxr-xr-x

2 root

root

4096 Jul 29 11:19 selinux

drwxr-xr-x

2 root

root

4096 Oct 1 2009 srv

Fundamentos de Administração Linux

drwxr-xr-x 11 root

root

0 Aug 10 17:49 sys

drwxr-xr-x

3 root

root

4096 Jul 29 11:50 tftpboot

drwxrwxrwt

9 root

root

4096 Sep 15 09:03 tmp

drwxr-xr-x 18 root

root

4096 Apr 26 09:06 usr

drwxr-xr-x 23 root

root

4096 Jul 29 16:01 var

Fundamentos de Administração Linux

Fundamentos de Administração Linux

/bin

/bin é uma abreviatura para "binários", ou executáveis. É nesse diretório onde residem a maioria dos programas essencias do sistema.

Use o comando "ls -l /bin" para listar os arquivos.

[root@bwpx01 /]# ls /bin

alsacard

dbus-uuidgen

gunzip

mknod

rpm

traceroute

alsaunmute

dd

gzip

mktemp

rvi

traceroute6

arch

df

hostname

more

rview

tracert

awk

dmesg

igawk

mount

sed

true

basename

dnsdomainname ipcalc

mountpoint

setfont

umount

bash

doexec

kbd_mode

mv

setserial

uname

cat

domainname

kill

netstat

sh

unicode_start

chgrp

dumpkeys

ksh

nice

sleep

unicode_stop

chmod

echo

ksh93

nisdomainname

sort

unlink

chown

ed

link

pgawk

stty

usleep

cp

egrep

ln

ping

su

vi

cpio

env

loadkeys

ping6

sync

view

csh

ex

loadkeys.static ps

tar

ypdomainname

cut

false

logger

pwd

taskset

zcat

date

fgrep

login

raw

tcptraceroute zsh

 

dbus-cleanup-sockets gawk

ls

red

tcsh

dbus-daemon

gettext

mail

redhat_lsb_init touch

dbus-monitor

grep

mailx

rm

tracepath

dbus-send

gtar

mkdir

rmdir

tracepath6

Esses são os arquivos que contêm programas. programa /bin/cp.

Quando você executa cp, está executando o

Fundamentos de Administração Linux

/dev

Os arquivos em /dev são conhecidos como controladores de dispositivo (device drivers) e são usados para acessar os dispositivos ou recursos do sistema, como discos rígidos, modems, memória, etc. Por exemplo, da mesma forma que você pode lear dados de um arquivo, pode também ler da entrada do mouse, lendo /dev/mouse.

Os arquivos que começam com fd são os controladores de disquete. fd0 é o primeiro drive, e fd1 o segundo. Note que há mais controladores de dispositivo para drivers do que mencionamos. Eles representam tipos específicos de discos. Por exemplo, fd1H1440 acessa discos de 3.5'' de alta densidade no drive 1.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Aqui temos uma lista de alguns dos controladores de dispositivos mais usados. Note que mesmo que você não tenha algum dos dispositivos listados, terá entradas em dev de qualquer forma.

/dev/console faz referência ao console do sistema, quer dizer, ao monitor conectado em seu sistema.

Os dispositivos /dev/ttyS e /dev/cua são usados para acessar as portas seriais. Por exemplo, /dev/ttyS0 faz referência a "COM1", sob o MS-DOS. Os dispositivos /dev/cua são "callout" e são usados em conjunto com um modem.

Os nomes dos dispositivos que começam por hd acessam a discos rígidos. /dev/hda se refere a todo o primeiro disco, enquanto que /dev/hda1 se refere a primeira partição em /dev/hda.

Os nomes de dispositivo que començam com sd são dispositivos SCSI. Se você tem um disco rígido SCSI, no lugar de acessá-lo com /dev/hda, vai acessá-lo com /dev/sda. As fitas SCSI são acessadas via dispositivos st e os CD-ROM SCSI via sr.

Os nomes que començam por lp acessam as portas paralelas. /dev/lp0 se refere a "LPT1" no mundo MS-DOS.

/dev/null é usado como "buraco negro", qualquer dado enviado a este dispositivo desaparece. Para que pode ser útil isto?. Bem, se deseja suprimir a saída para a tela de um comando, pode enviar a saída para /dev/null. Falaremos mais sobre isto depois.

Os nomes que começam por /dev/tty se referem a "consoles virtuais" de seu sistema (acessíveis mediante as teclas Alt-F1, Alt-F2, etc).

/dev/tty1 se refere a primeira VC, /dev/tty2 a segunda, etc.

Os nomes de dispositivo que começam com /dev/pty são "pseudoterminais". São usados para proporcionar um "terminal" a sessões remotas. Por exemplo, se sua máquina está em uma rede, o telnet de entrada usará um dos dispositivos /dev/pty.

Fundamentos de Administração Linux

/etc

/etc contém uma série de arquivos de configuração do sistema. Isto inclui o /etc/passwd (a base de dados de usuários), o /etc/rc (instruções de inicialização do sistema), etc.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

/sbin

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

Fundamentos de Administração Linux

/home

/home contém os diretórios "home" dos usuários. Por exemplo, /home/larry é o diretório do usuário "larry". Em um sistema recém instalado, esse diretório estará vazio.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

/lib

/lib contém as imagens das bibliotecas compartilhadas. Esses arquivos contêm código que muitos programas compartilham. Ao invés de cada programa ter uma cópia própria das funções compartilhadas, elas são guardadas em um lugar comum, o /lib. Isso faz com que os programas executáveis sejam menores e reduzam o espaço usado em disco.

Fundamentos de Administração Linux

/proc

/proc é um "sistema de arquivos virtual". Os arquivos que estão no /proc residem verdadeiramente na memória, e não no disco. Esses arquivos se referem a vários processos que rodam no sistema e permitem obter informação sobre programas e processos que estão rodando num dado momento.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

/tmp

Muitos programas têm necessidade de gerar alguma informação temporária e de guardar essa informação em um arquivo temporário. O lugar para esses arquivos é o /tmp.

Fundamentos de Administração Linux

/usr

/usr é um diretório muito importante. Contém uma série de subdiretórios que por sua vez contêm alguns dos mais importantes e úteis programas e arquivos de configuração usados no sistema.

Os vários diretórios descritos acima são essenciais para o sistema operar, mas a maioria dos itens no /usr são opcionais. Entretanto, são esses itens opcionais que tornam o sistema útil e interessante. Sem o /usr, você teria um sistema tedioso que suportaria somente programas como cp e ls. O /usr contém a maioria dos pacotes grandes de software e os arquivos de configuração que os acompanham.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

/usr/X11R6

/usr/X11R6 contém o sistema X Window se você o instalou el sistema X Window se você o instalou. O sistema X Window é um ambiente gráfico poderoso que proporciona um grande número de ferramentas e programas gráficos, mostrados em janelas na sua tela. Se você está familiarizado com os ambientes MS Windows ou Macintosh, o X Window lhe será muito familiar. O diretório /usr/X11R6 contém todos os executáveis do X Window, arquivos de configuração e suporte.

Fundamentos de Administração Linux

/usr/bin

/usr/bin contém a maioria dos programas executáveis não encontrados em outras partes, como no /bin.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

/usr/etc

Como o /etc, contém diferentes arquivos de configuração e programas do sistema, /usr/etc contém inclusive mais que o anterior. Em geral, os arquivos que se encontram em /usr/etc não são essenciais para o sistema, diferentemente dos que se encontram no /etc.

Fundamentos de Administração Linux

/usr/include

/usr/include contém os arquivos include para o compilador C. Esse arquivos (a maioria dos quais termina com .h, de "header") declaram estruturas de dados, subrotinas e constantes usadas no desenvolvimento de programas em C. Os arquivos que se encontram em /usr/include/sys geralmente são usados quando programando no nível do sistema UNIX. Se você está familiarizado com programação C, encontrará arquivos como stdio.h, o qual declara funções como printf().

Fundamentos de Administração Linux

Fundamentos de Administração Linux

/usr/g++-include

/usr/g++-include

contém

arquivos

de

inclusão

para

o

computador

C++

(muito

parecido

ao

/usr/include).

Fundamentos de Administração Linux

/usr/lib

/usr/lib contém as bibliotecas "stub" e "static" equivalentes aos arquivos encontrados em /lib. Ao compilar um programa, ele é "linkado" com as bibliotecas que se encontram em /usr/lib, as quais direcionam o programa para o /lib, quando precisa buscar o código real da biblioteca. Além disso, vários programas armazenam arquivos de configuração no /usr/lib.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

/usr/local

/usr/local é muito parecido ao /usr. Ele contém programas e arquivos não essenciais ao sistema, mas que tornam o sistema mais divertido e excitante. Em geral, os programas que se encontram em /usr/local são específicos do seu sistema, isto é, o diretório /ussr/local difere bastante entre os sistemas UNIX. Aqui encontrará grandes programas, como o TeX (sistema de formatação de documentos) e Emacs (editor grande e poderoso), se os instalar.

Fundamentos de Administração Linux

/usr/man

Esse diretório contém as páginas de manual. Há dois subdiretórios para cada seção de página de manual (use o comando "man man" para detalhes). Por exemplo, /usr/man/man1 contém os fontes (isto é, o original não formatado) para as páginas de manual na seção 1, e /usr/man/cat1 contém as páginas de manual formatadas para a seção 1.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

/usr/src

/usr/src contém o código fonte (programas a compilar) de vários programas do sistema. O subdiretório mais importante é o /usr/src/linux, que contém o código fonte do kernel do Linux.

Fundamentos de Administração Linux

/var

/var contém diretórios que freqëntemente mudam de tamanho ou tendem a crescer. Muitos desses diretórios residiam antes em /usr, mas desde que estamos tratando de deixar o /usr inalterado, os diretórios que mudam de tamanho foram levados para o /var. Alguns deles são:

Fundamentos de Administração Linux

Fundamentos de Administração Linux

/var/adm

/var/adm contém vários arquivos de interesse para o administrador do sistema, especificamente históricos do sistema, que armazenam erros ou problemas com o sistema. Outros arquivos guardam logins do sistema, assim como tentativas frustradas. O capítulo 4 abordará este assunto.

Fundamentos de Administração Linux

/var/spool

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

Fundamentos de Administração Linux

Fundamentos de Administração Linux

Comandos para manipulação de Arquivos

Fundamentos de Administração Linux

O comando rm

Remove arquivos. Também pode ser usado para apagar diretórios, vazios ou não. Note que no UNIX quando um arquivo é removido, ele não é mais recuperável (como no MS-DOS, onde você pode usar o "undelete", ou no Windows, com a lixeira).

Sintaxe:

rm [opções] [caminho][arquivo/diretório ]

onde:

caminho - Localização do arquivo que deseja apagar. Se omitido, assume que o arquivo esteja no diretório atual. arquivo/diretório - Arquivo/diretório que será apagado.

opções - Modificam o comportamento do comando:

-i --interactive

Confirma antes de remover, esta é ativada por padrão.

-f

--force

Remove os arquivos sem confirmação.

-r --recursive

Usado para remover arquivos em sub-diretórios. Esta opção também pode ser

Exemplos:

usada para remover sub-diretórios.

rm teste.txt

Remove o arquivo teste.txt do diretório atual.

rm *.txt

Remove todos os arquivos do diretório atual que terminam com .txt.

rm *.txt teste.novo

rm -rf /tmp/teste/*

rm -rf /tmp/teste

Remove todos os arquivos do diretório atual que terminam com .txt e também o arquivo teste.novo.

Remove todos os arquivos e sub-diretórios do diretório /tmp/teste mas mantém o sub-diretório /tmp/teste.

Remove todos os arquivos e sub-diretórios do diretório /tmp/teste, inclusive /tmp/teste.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

O comando cp

Copia arquivos.

Sintaxe:

cp [opções] [origem] [destino]

onde:

origem - Arquivo que será copiado. Podem ser especificados mais de um arquivo para ser copiado usando "Curingas".

destino -

Se o destino for um diretório, os

O caminho ou nome de arquivo onde será copiado.

arquivos de origem serão copiados para dentro do diretório.

Opções - Modificam o comportamento do comando:

-f --force

-i –interactive Confirma antes de substituir arquivos existentes.

-u –update

quando o arquivo de destino não existe. -r Copia arquivos e sub-diretórios, com exceção de arquivos especiais FIFO e dispositivos.

Não confirma, substitui arquivos caso já existam.

Copia somente se o arquivo de origem é mais novo que o arquivo de destino ou

-R --recursive

Copia

arquivos

e sub-diretórios, inclusive arquivos especiais FIFO e

-p --preserve

dispositivos. Preserva atributos do arquivo, se for possível.

O comando cp copia arquivos da ORIGEM para o DESTINO. Ambos origem e destino terão o mesmo conteúdo após a cópia.

Exemplos:

cp

teste

teste1

Copia o arquivo teste para teste1

cp

teste

/tmp

Copia o arquivo teste para dentro do diretório /tmp.

cp

* /tmp

Copia todos os arquivos do diretório atual para /tmp.

cp

/bin/* .

Copia todos os arquivos do diretório /bin para o diretório atual.

cp -R /bin /tmp

Copia o diretório /bin e todos os arquivos/sub-diretórios existentes para o diretório /tmp.

Fundamentos de Administração Linux

cp -R /bin/* /tmp Copia todos os arquivos do diretório /bin (exceto o próprio diretório /bin) e todos os arquivos/sub-diretórios existentes dentro dele para /tmp.

cp -R /bin /tmp

Copia todos os arquivos e o diretório /bin para /tmp.

Fundamentos de Administração Linux

Fundamentos de Administração Linux

O comando mv

Move ou renomeia arquivos e diretórios. O processo é semelhante ao do comando cp mas o arquivo de origem é apagado após o término da cópia.

Sintaxe:

mv [opções] [origem] [