Você está na página 1de 177

Linux Essentials

Oscar Castro
Instrutor
ead@clavis.com.br

Modelo do Curso
l

Aulas ao vivo (on line)

Aulas gravadas para reviso

Ambientes para testes

Material complementar

Avaliao

O Sistema Linux

Histrico
Viso geral do Unix
1965 Bell Laboratories, MIT e General Electric
unem-se num esforo conjunto para o
desenvolvimento de um novo Sistema Operacional,
Multics (Multiplexer Information Computer Service),
que seria multiusurio, multiprocessador e multinvel
(hierrquico).

Histrico

1969

Alguns programadores dos Laboratrios Bell que


traballavam no projeto, desenvolveram e
implementaram a primeira verso do Sistema de
Arquivos Unix em um PDP-7
O nome Unix foi dado por Brian Kernigham, como
trocadilho ao nome Multics
AT&T abandona o projeto Multics

1070

Marco zero do Unix

Histrico

1971

O sistema roda em um PDP-11, com 16 Kbytes de


memria e 512 Kbytes de disco

1973

O Unix reescrito quase integralmente na


linguagem C (esceto o Kernel), o que tormou o
sistema facilmente portavel para outras mquinas

1974

AT&T licencia o Unix para universidades com a


finalidade de ensino

Histrico
1980
BSD 4.1 (Berkeley Software Development)
A Microsoft lana o Xenix

1982
Surge a Sun Microsystem

1983
Plurix e SOX no Brasil

Histrico
1991
Linus Torval na Finlndia decide portar o Sistema
Unix para a plataforma x86 (PCs)
1 usurio
estudo acadmico de sistemas operacionais
inspirado no minix
10.000 linhas de cdigo

Histrico
1992
1.000 usurios
suporte ao compilador gcc
40.000 linhas de cdigo

Histrico
1994
100.000 usurios
Suporte a redes
Auxlio de centenas de programadores espalhados pelo
mundo.
170.000 linhas de cdigo

Histrico
1996
1,5 milhes de usurios
Roda em mquinas Alpha e Sparc
Aceita multiprocessadores
400.000 linhas de cdigo

Histrico
1997
3,5 milhes de usurios
boom do sistema
surgem revistas sobre linux
uma verso a cada semana
J est na casa dos milhares o nmero de programadores
envolvidos no desenvolvimento do sistema

800.000 linhas de cdigo

Histrico
1998
7,5 milhes de usurios
Vrias verses de softwares so distribudas para o S.O.
linux
Word Perfect
Oracle (banco de dados) - incio de 1999

Popularizado entre provedores internet


Conectiva lana distribuio brasileira do RedHat
1,5 milhes de linhas de cdigo

Histrico
Linux um sistema operacional multiusurio,
estvel e gratuito (free sob a GPL General
Public Licence - GNU)
Unix Like
Disponvel para plataformas Intel 86 (entre
outras)
Repositrios
br-linux.org/download

Distribuies I
So grupos de pessoas ou entidade
responsvel pela distribuio do software
Linux sob a GPL - GNU.
Gratuito mas as distribuies podem cobrar por
ele, ela s no pode restringir/proibir a cpia
No existe o copyright

Distribuies II
Principais distribuies
Debian
A mais livre das distribuies (no comercial)
Surgiu em 1993
Grande volume de recursos e documentao
Vem com mais de 2200 pacotes
Usa o kernel do linux mas h trabalhos para prover esta
distribuio para outros kerneis

Distribuies III
Principais distribuies
Slackware

Tem fama de ser o mais dificil de instalar


uma das mais antigas distribuies
Nas ltimas verses j adota os softwares
mais populares Gnome, KDE, Apache,
Sendmail, Netscape 4.7 ...

Distribuies IV
Principais distribuies
SuSe - Novell

Distribuio Alem
Est entre as maiores distribuies comerciais
Mais de 1300 aplicativos no formato RPM
Varias opes de instalaes pr-definidas

Distribuies V
Principais distribuies
Corel Linux
Uma das mais novas distribuies
Voltado para o pblico iniciante (windows)
Baseado no Debian
Processo de instalao simples e automtico
Aplicativos bem parecidos com os do windows

Distribuies VI
Principais distribuies
Caldera Open Linux
No muito conhecida no Brasil
Talvez a distribuio mais fcil de ser instalada
Possui avanadas rotinas de deteco automtica de
hardware
Ferramentas de administrao 100% grficas

Distribuies VII
Principais distribuies
Red Hat Linux

Atualmente a distribuio mais popular no mundo


corporativo
Excelentes qualidades tanto para o pblico domstico
como corporativo
A partir da verso 6 vem com o GNU KDE, embora o
ambiente default seja o Gnome
Criadora do padro RPM
Ferramentas de configurao para fcil adm.

Distribuies VIII
Principais distribuies
Ubuntu
Distribuio mais popular em usuarios finais
Muito facil de instalar e com uma grande quantidade de
drivers atualizados
O Ubuntu possui uma forte ligao com a comunidade
Debian, contribuindo directamente com qualquer
modificao nos cdigos-fonte, ao invs de apenas
anunciar essas mudanas em uma data posterior
A gesto de instalao de software realizada pelo APT e
pelo Synaptic

Estrutura
Um sistema UNIX pode ter muitos nveis de
hierarquia, sempre comeando pelo diretrio
raiz (/)
Cada arquivo tem identificao nica no
sistema, atravs da especificao do seu
caminho (path)
Por conveno, os nomes em um caminho,
esto separados por uma /
Internamente, cada arquivo associado a um
nmero identificador nico (inode)

Estrutura
Tipos de arquivos
Diretrio
Ponteiro para outros arquivos e diretrios
No contem dados
Normal
Conjunto de caracteres armazenados
Contm dados variveis (texto, cdigo de programa)
Especial
Ponteiro para um perifrico
No contm dados
Localizado no diretorio /dev
Links
Ponteiro para outro arquivo no sistema de arquivos

Estrutura
Associa um diretrio da rvore a um filesystem.
Transparente ao usurio do sistema.
/
FileSystem
/dev/hda1
/dev/hda2
/dev/fd0
/dev/cdrom

bin

etc

mnt
floppy

home
cdrom

dev

var

usuariox spool

Diretrios do sistema
/bin

Comandos fundamentais

/etc

ls, rm, cp, grep

Arquivos de configurao
passwd, inetd.conf, fstab

/root

Diretrio de trabalho do super usurio

/tmp

Diretrio de arquivos temporrios

Diretrios do sistema
/boot

Onde se encontra o kernel e arquivos usados durante


a inicializao
vmlinuz, System.map, map, boot

/sbin

Programas de uso do super usurio

/var

route, swapon, mkfs, init

Arquivos de log, filas de mail e de impresso


/var/log/messages
/var/spool/mqueue
/var/spool/lpd

Diretrios do sistema
/usr/bin
Aplicaes de uso geral
gzip,who,gs,telnet

/usr/sbin
Aplicaes de uso do super usurio
traceroute, daemons (sendmail, inetd,

/usr/local
Diretrio onde so instalados (por default) diversos
aplicativos.
Netscape, WordPerfect, StarOffice

Diretrios do sistema
/mnt

Diretrio padro para montagemde devices diversos


tais como:
cdrom
floppy
partio dos
mquina remota (rede)

/lib , /usr/lib

Bibliotecas de programas

/usr/include

Arquivos de cabealho (includes usados em


programas em C / C++)
stdio.h, string.h

Diretrios do sistema
Nomes dos caminhos
Caminho absoluto
Desde a raiz do sistema de arquivos (/)

Ex: /etc/hosts
Caminho relativo
A partir do diretrio corrente
Ex: arquivos/texto.txt

Introduo ao Virtualbox
Virtualizao (Conceito)
Software de virtualizao
Sistema de virtualizao

Trabalhando coma VM do curso


Caractersticas do Sistema
Uso de imagens

Conceitos sobre sistemas


Unix Like
Sistema de Arquivos

Organizao do Sistema
Kernel
Ncleo do sistema operacional.
Responsvel pelo interfaceamento entre o hardware
e as aplicaes.
Implementa o sistema de arquivos
Trata as operaes de I/O
Diretrios e arquivos

Gerncia os drives de acesso aos dispositivos

Organizao do Sistema
Kernel
Controla a execuo de processos

aloca memria
implementa mecanismo de time slicing

Gerncia os daemons
Cria mecanismos de memria virtual
Gerncia os servios de rede
Gerncia os processos de intercomunicaes,
tais como sockets, sinais e semforos.

Kernel

Sistema de arquivos
O Linux organiza seu sistema de arquivos em
uma rvore de diretrios
A raiz desta rvore o diretrio /

Filesystem
A maneira como os arquivos so gravados no disco /
partio.
Linux conhece a maioria dos filesystems entre eles:
MS-DOS, minix, ext2, iso9660, nfs, hpfs, sysv, vfat,
etc.

Caractersticas
Sistema de arquivos um conjunto de estruturas lgicas
e de rotinas que permitem ao sistema operacional
controlar o acesso ao disco
Conforme cresce a capacidade dos discos e aumenta o
volume de arquivos e acessos, esta tarefa torna-se
mais e mais complicada, exigindo o uso de sistemas
de arquivos cada vez mais complexos e robustos
Trocando em midos, a forma de organizao de
dados em algum meio de armazenamento de dados
em massa (discos)

Caractersticas
Mtodo de Acesso
Acesso direto
Acesso seqencial
Acesso indexado

Operaes de Entrada/Sada
Alocao de Espao em Disco
Alocao Contigua
Alocao Encadeada
Alocao Indexada

Tipos de Sistemas
de Arquivos
ufs Sistema padro
hsfs Sistema de arquivos para CD-ROM
ext2 Sistema de arquivos compatvel com o ufs
ext3 Sistema de arquivos baseado em Journals
FAT-16, FAT-32 MSDOS/Windows
VFAT o FAT-16 com nomes de arquivos longos
JFS IBM
NFS Sistema de arquivos remoto

Tipos de Sistemas
de Arquivos
Ext2
o sistema mais comum para Linux, mas nao tem
Journal de meta-dados ou seja, verificaes
rotineiras de sistemas de arquivos ext2 podem levar
muito tempo
Muito similar ao ffs do BSD

Tipos de Sistemas
de Arquivos
Journal
Escritas atmicas (indivisveis) so feitas primeiramente em
uma rea separada chamada journal ou log
S aps o trmino das escritas atmicas, elas so escritas no
sistema de arquivos propriamente dito
Caso haja algum problema, as ecritas que esto no journal so
refeitas
Sistemas de arquivos com uso do journal podem ter sua
consistncia verificada rapidamente.
Sistema de arquivos com journal previnem longas esperas
quando carregado o sistema operacional e o sistema de
arquivos esta num estado inconsistente

Tipos de Sistemas
de Arquivos
Ext3
O ext3 a versao com journal do sistema de
arquivos ext2, fornecendo journal de meta-dados
para recuperao rpida
O ext3 um sistema de arquvos confivel
Tem uma opo adicional de catalogar hashed btrees que permite alto desempenho na maior parte
dos casos
Este catlogo pode ser ativado adicionando O
dir_index ao comando mke2fs

Tipos de Sistemas
de Arquivos
JFS
um sistema de arquivos com journal de alta
performance da IBM
O JFS (Journaled File System) fornece um sistema
de arquivos baseado em log que foi desenvolvido
para sistemas de alto desempenho, orientado para
transaes de banco de dados
Pode recuperar um sistema de arquivos
rapidamente
Disponvel como open source em jfs.sourceforge.net

Montando sistemas
de arquivos
Utilitrio mount
#mount [-F tipo] [-o opes] dispositivo diretrio
Tipo ufs, nfs, vfat etc
Opes Permite por exemplo ser montado somente para
leitura
Dispositivo Device onde reside o sistema de arquivos
Diretrio(mount point) Local a partie do qual o sistema de
arquivos poder ser acessado

#mount Sem parmetros mostra os sistemas de


arquivos montados

Montando sistemas
de arquivos
/bin/mount
Monta um determinado file system.
Tarefa restrita ao super usuario (root)
Ex:
mount [-t tipo] <device> <diretorio>
mount -a (monta todos os file systems)
mount -a -t tipo (montas os devices do tipo tipo)
mount -t vfat /dev/hda1 /dos
mount -t nfs 146.164.15.174:/cdrom /mnt/cdrom

Montando sistemas
de arquivos
mount(continuao)
tipos:
msdos FAT16
vfat - FAT32
nfs - Network File System
iso9660 - CDROM

/etc/fstab
arquivo de descrio dos devices, pontos de
montagem, tipo do file system e opes.

Montando sistemas
de arquivos
/bin/umount
Desmonta (desassocia) um determinado device de
um diretrio.

Uso:
umount <device>
umount <diretrio>

ou

Sistema de arquivos UFS

Tabela de Parties
Bloco de boot
Super bloco
Backup super bloco
Bloco de grupo de
cilindros

Lista de inodes
Blocos de dados

Para cada grupo


de cilindros

Sistema de arquivos UFS


Tabela de parties
Vlido para a partio com o bloco fsico de nmero 0 do
dispositivo. Nas outras parties fica reservado
Bloco de boot
Segunda etapa do boot do sistema. Vlido para parties
bootveis. Nas outras parties fica reservado
Superbloco
Informaes que descrevem o sistema de arquivos tais
como: tamanho, numero de inodes, datas de criao,
atualizao etc

Sistema de arquivos UFS


Grupo de cilindros
Diviso interna do sistema de arquivos para
obteno de maior confiabilidade e desempenho

Superbloco de backup
Dentro de cada grupo de cilindros, por segurana,
existe uma cpia do superbloco

Bloco de grupo de cilindros


Descreve o grupo com informaes tais como:
tamanho, nmero de arquivos, mapa de blocos etc

Sistema de arquivos UFS


Lista de inodes
Inode a estrutura responsvel por descrever um arquivo
A lista de inodes contm todos os inodes do grupo de cilindros
Total de inodes
Determinado no momento da criao do sistema de arquivos e
nao pode ser alterado posteriormente
O inode de nmero 1 no utilizado e o de nmero 2 sempre
correspondente a raiz do sistema

Bloco de dados
Contm os dados

Inode
Formado de um Inode
Inode
Permisso
Propriedade
Time Stamps
- Change
- Modification
- Access
Tamanho do arquivo
Contador de link
Data

Instalao do Linux

Instalao
Requerimento de Hardware
CPU
Intel 80386

Memria
Depende do uso da mquina (Servidor ou Workstation)
Mnimo: 512 MB
Recomendado: 1GB no mnimo

Controladora de disco
IDE, EIDE, ESDI, SCSI

Instalao
Requerimento de hardware (continuao)
Espao em disco
Mnimo 1 GB
Comum entre 2 GB e 6 GB
Servidores +10 Gb
Depende da distribuio

Adaptador de video
Hercules, CGA, EGA, VGA, IBM monocromtico, SVGA e a
maioria das placas com acelerador de vdeo.

Instalao
Particionamento
Dividir o(s) disco(s) em reas (diviso lgica do
disco).
Mnimo 2 parties
Recomendado 5 parties
Swap
/ => Filesystem principal
/usr => Utilitrios em geral
/var => Logs e spool (mail, impressora,...)
/home => Diretrio dos usurios

Instalao
Particionamento (continuao)
Partio principal nos sistemas mais antigos (BIOS)
deve estar nos primeiros 1024 cilindros do disco o
que equivale a 528MB.
Partio de swap
Mnimo 512MB
Mnimo recomendado 1GB
Maior velocidade de acesso
Implementa o mecanismo de memria virtual

Instalao
Dicas para instalao:
Os diretrios que obrigatoriamente deve estar no file system
principal:

/bin, /lib, /boot /lost+found, /root, /sbin, /dev, /etc

Anote previamente:
Tipo do processador
Tipo da controladora e tamanho do disco
Mouse (tipo e porta serial)
CDROM (tipo)
Placa de vdeo (marca/modelo, RAM)

Instalao
Dicas (continuao)
Anote previamente (continuao)
Monitor (Marca/Modelo, freqncia )
Modem (porta serial e padro)
Placa de rede (tipo - ethernet, FDDI, token ring, outros marca/modelo e conector - BNC, RJ11, AUI,
automtico)
Rede:
domnio, endereo IP, mascara da rede, endereo de broad
cast, gateway e endereo do(s) name server(s).

Instalao
Processo de instalao (geral)
Gerar um disco/CD de boot para o linux
Inicializar o sistema com o disco
Selecionar o mtodo de instalao (CDROM,
NFS, FTP, disco, etc)
Criar a(s) partio(es)
Associar as parties ao(s) ponto(s) de
montagem - diretrio(s)

Instalao
Processo de instalao (cont)
Formatar as parties
Escolher os pacotes que sero instalados
Configuraes adicionais (mouse, video, rede e
Xwindow)
Instalar o LILO/GRUB

Instalao
No necessrio criar os discos de boot
quando:
A instalao feita via CDROM local e
A BIOS permite boot via unidade cd CD.

De preferncia os discos devem estar


formatados.

Mtodo de instalao
CDROM local
NFS
requisito:
Diretrio compartilhado na rede
Privilgio de acesso a mquina

FTP
Requisito
Acesso a um servidor FTP que disponibilize o LINUX

Mtodo de instalao
SMB (samba)
Rede microsoft
Requisito:
Acesso a mquina da rede Microsoft que esteja
disponibilizando o LINUX

Disco rgido
Instalado de uma partio ou disco adicional da
prpria mquina

Particionando o disco
fdisk
similar ao fdisk do MS-DOS/Win
criar nova partio
apagar uma partio existente
listar as parties do disco
mudar tipo da partio

Particionando o disco
fdisk (continuao)
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
p print the partition table

Particionando o disco
fdisk (continuao)
q quit without saving changes
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help):

Particionando o disco
fdisk
n _ cria uma nova partio
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1-622): 1
Last cylinder or +size or +sizeM or +sizeK ([1]-622):622

Particionando o disco
fdisk
p _ exibe informaes sobre as parties
Command (m for help): p
Disk /dev/hda: 128 heads, 63 sectors, 523 cylinders
Units = cylinders of 8064 * 512 bytes
Device Boot Begin
/dev/hda1 *

Start

End Blocks Id System

254 1024096+ 6 DOS 16-bit

/dev/hda2

255

255

305 205632 83 Linux native

/dev/hda3

306

306

322

/dev/hda4

323

323

523 810432

/dev/hda5

323

323

373 205600+ 83 Linux native

68544 82 Linux swap


5 Extended

Particionando o disco
fdisk
d _ apaga uma partio
t _ muda tipo da partio
Command (m for help): t
Partition number (1-5): 3
Hex code (type L to list codes): L
0 Empty 9 AIX
1 DOS 12-bit
82 Linux Swap

75PC/IX

a OS/2 Boot
...

b7 BSDI fs

80 old Minix
83 Linux Native

Hex code (type L to list codes): 82

b8 BSDI swap
...

Particionando o disco
fdisk
w _ grava as alteraes nas tabelas e sai
q _ sai sem alterar as tabelas de parties

disk druid
interface grfica (mais amigvel)
RedHat 5.0 (ou superior)

Instalao
lilo (Linux loader)
Gerencia de boot, define qual o sistema operacional vai ser
carregado
O gerenciador de boot tm papel importantssimo, pois cabe a
ele a tarefa de permitir ao usurio o carregamento de um ou
outro sistema (um kernel ou outro)
Programa responsvel pela carga do kernel
permite a passagem de parmetros para o kernel
Geralmente instalado na MBR (Master Boot Record)

Instalao
GRUB
O mais popular entre usurios linux
GRUB a sigla para GRand Unifield Bootloader
Trata-se de um gerenciador de boot desenvolvido inicialmente por
Erich Stefan Boleyn
Trabalha com diversos Sistemas Operacionais
Suporta vrios sistemas de arquivos, como o EXT2, EXT3,
ReiserFS, FAT, FFS etc.

Editor de textos vi

Caractersticas
Editor de textos vi muito poderoso
No um procesador de textos
Permite editar arquivos de configuracao do sistema
Toda distribuicao linux possui um ou permite instala-lho
Precisa de poucos recursos instalados
Permite editar scripts
Usado pela grande maioria dos usuarios linux

Usando o vi
Como obter ajuda no sistema
# man vi
Obtendo ajuda no vi
Presione ESC e depois :help

Usando o vi
Modos de operao
Modo de edio
Neste modo todo o que digitado considerado texto do
arquivo que esta sendo editado

Modo de comando
Neste modo todo o que digitado considerado como
comando podendo ser: salvar, substituir, apagar etc

Usando o vi
Iniciando o vi
# vi [nome do arquivo]
vi entra no modo de comando
Cursor aparece na primeira linha
Embora o vi tenha sido iniciado ainda no esta no modo
de insero
O texo que ser inserido so gravado quando um
comando de gravao dado
Aqui aparece um tela limpa com o cursor na primeira
linha

Usando o vi
Mudando do modo de comando para insero
i Insere texto na posicao do cursor
I Insere texto no inicio da linha
a Insere texto logo apos a posio do cursor
A Insere texto no final da linha
o Acrescenta uma linha abaixo da posio do cursor
O Acrescenta uma linha acima da posio do cursor

Usando o vi
Saindo do modo de edio
Para voltar ao modo de comando, pressione a tecla
ESC
Neste modo j possivel usar os caracteres de
comando
Neste modo possivel manipular o arquivo

Usando o vi
Manipulando arquivos
Saindo do vi
:q Permite sair sem fazer alteraes no arquivo
:q! Permite sair do arquivo abandonando todas as
alteraes
:wq, :x Grava o conteudo do arquivo e sai do vi

Usando o vi
Gravando o arquivo editado
:w Grava no arquivo sendo editado
:w [nome_do_arq] Grava em [nome_do_arq]. Se
arquivo j existe, avisa
:w! [nome_do_arq] Grava arquivo e sai (force)

Usando o vi
Excluindo conteudo
[n]x Exclui o caracter na posio do cursor
[n]dw Exclui do cursor at o incio da prxima
palavra
[1,n]d Exclui as linhas de 1 a n
[n]d$ Exclui do cursor at o final da linha
[n]dd Exclui linha inteira

Usando o vi
Navegando pela tela
H Vai para a primeira linha da tela
M Vai para linha do meio da tela
L Vai para a ltima linha da tela
<ctrl>f Vai para a prxima tela
<ctrl>b Vai para a tela anterior

Usando o vi
Navegando pelo arquivo
G Vai para a ltima linha do arquivo
1G Vai para a primeira linha do arquivo
[n]G Vai para a linha n do arquivo

Usando o vi
Buscando textos (algumas consideraes)
A busca leva em conta caracteres maisculas e
minsculas
No caso de busca em textos que incluam caracteres
especiais, deve-se usar o caracter \ antes do
caracter especial.
/[texto] Busca este texto para a frente
?[texto] Busca este texto para trs
n Procura novamente na direo atual
N Procura novamente na direo contrria

Usando o vi
Caracteres especiais
\ Desativa significado especial
^ Comeo da linha
$ Fim da linha
. Qualquer caracter isolado
* Repete o caracter qualquer nmero de vezes
[texto] Qualquer um dos caracteres do texto
[^texto] Qualquer um dos caracteres no do texto

Usando o vi
Mudar de texto
cw,ce Muda uma palavra
3cw Muda 3 palavras
cc Muda uma linha inteira
c$,C Muda do cursor at o fim da linha
r Sobrescreve um caracter
R Sobrescreve a linha inteira

Usando o vi
Copiando,movendo e colando
yy Copia uma linha
[n]yy Copia n linhas
[n]y$ Copia do cursor at o fi da linha
p Cola abaixo do cursor
P Cola acima do cursor
[1,n]m 10 Move as linhas de 1 a n para a linha 10
[1,n]t 10 Copia as linhas de 2 a 6 para a linha 10
[1,n]w <file> Escreve as linhas de 1 a n para o arquivo "file"
r <file> L o arquivo 'file' e insere seu contedo no documento
atual.

Usando o vi
Pesquisa e substituio avanadas
:1,n s/texto1/texto2/ Substitui o text1 pelo texto2
:1,n s/texto1/texto2/g Substitui o text1 pelo texto2
em todas as ocorrncias
:1,n s/texto1/texto2/c Pergunta se pode subsituir o
text1 pelo texto2

Usando o vi
Configuraes de sesso
:set Mostra as configuraes de ambiente
:set nu Mostra o nmero de linhas
:set nonu Desliga o comando acima
:set all Mostra todas as configuraes
:set list Mostra os caracteres ocultos

Comandos bsicos
Manipulando diretrios

Manipulando arquivos
e diretrios
rmdir
Remove um diretrio

file
Mostra o tipo de arquivo

cat
Concatena e apresenta arquivos

more
Exibe o conteudo dos arquivos

head
Exibe as primeiras linhas de um arquivo

Manipulando arquivos
e diretrios
tail
Exibe as ltimas linhas de um arquivo

cp
Copia um arquivo

mv
Move ou renomeia um arquivo

ln
Cria links para arquivos

find
Localiza arquivos a partir de um diretrio

Manipulando arquivos
e diretrios
grep
Procura ocorrncias de uma cadeia de caractres em um
arquivo
sort
Ordena as linhas de um arquivo
wc
Conta o nmero de linhas, palavras e caractres de um
arquivo
rm
Remove arquivos ou diretrios

Manipulando arquivos
e diretrios
pwd
Apresenta o diretrio corrente

mkdir
Cria diretrios

ls
Lista conteuso de diretrios

cd
Muda o diretrio corrente

Modo Shell

Interface de caracteres
Shell
Interpretador de comandos
Tipos mais comuns
Bourne shell (sh)
Korn shell (ksh)
C shell (csh)
Bourne again shell (bash)

Interface de caracteres
Sesses Unix
Login
Password
Prompt

Interface de caracteres
Comandos
Coleo de pequenos programas para realizar
fines especficas
No Unix, os comandos acostumam ser agrupados
para a realizao de tarefas mais complexas
Classes de comandos
Operaes do sistema
Manipulao de arquivos
Processamento de textos
Comunicao, etc

Interface de caracteres
Manuais de referncia
man [-opes] nome do comando

Exemplo
man ls
man k passwd
Info man

Interface de caracteres
Comandos
Sintaxe genrica
Comando [-opes] [argumentos]

Exemplos
ls
ls a
who
who am i
date
exit
logout

Usurios e Grupos

Contas de usurio
Cada conta possui (/etc/passwd)
Nome
Tipicamente at 8 caracteres

UID (UserID)
Nmero nico para cada usurio

Grupo (Group ID)


Diretrio (home)
Localizao dos arquivos do usurio
o diretrio corrente de uma sesso (login)

Shell
Csh, ksh, sh, bash etc

Contas de usurios
Adicionando usurios ao sistema
adduser <login>
/etc/passwd
login:senha:UID:GID:nome:diretorio:shell
aluno1:jLfCVw78a7:102:1000:Fulano:/bin/bash

/etc/group
grupo:senha:GID:lista_de_usuarios
operadores::1000:aluno1,aluno2

Contas de usurios
/etc/shadow
apenas o root pode ler e escrever
maior segurana
login:senha:cp1:cp2:cp3:cp4:cp5:cp6:reservado
cp1 = Dias a partir de 1/1/1970 que a senha foi alterada
cp2 = Dias a partir do qual a senha pode ser mudada
cp3 = Por quantos dias a senha vlida
cp4 = Em quantos dias antes da senha expirar o usuario deve ser avisado
cp5 = Quantos dias depois que a senha expirou a conta
desabilitada
cp6 = Dia (a partir de 1/1/1970) que a conta desabilitada

Contas de usurio
Criao de um usurio
# useradd c Oscar Castro g oscar s /bin/bash
oscar
O exemplo cria um usurio oscar no grupo oscar
com shell padro bash
# useradd c Caio Graco d /home/caio s /bin/csh
caio
O exemplo cria um usurio caio no grupo default
com shell padro csh

Contas de usurio
Remoo de um usurio
Pode-se remover manualmente retirando as
entradas dos arquivos /etc/passwd, /etc/shadow, /
etc/group /etc/aliases ...
# userdel caio

Contas de usurio
Senhas
# passwd [-opes] [conta]
Se no for fornecida a conta altera o usurio atual
Alm da senha pode ser alterado o shell,
comentrios sobre o usurio
Ex:
# passwd x 20 w 5 i 2 oscar
A senha expirar aps 20 dias, o usurio ser
avisado 5 dias antes da expirao da senha e a
conta ficar desativada apos 2 dias

Informaes sobre
o usurio
Finger
Mostra informaes sobre o usurio contida na
tabela /etc/fstab, a hora do ltimo login no arquivo /
var/log/wtmp, se o usurio tem algum e-mail ou no
Login: oscar
Name: Oscar Castro
Directory: /home/oscar
Shell: /bin/bash
On since Sun Feb 28 10:26 (BRT) on tty7 from :0
On since Sun Feb 28 10:26 (BRT) on pts/0 from :0.0
No mail.
No Plan.

Informaes sobre
o usurio
chfn
utilizado para mudar a informao que mostrada
pelo proprio finger. Esta informao armazenada
no arquivo /etc/passwd
O comando finger mostra 4 informaes que podem
ser alteradas pelo chfn: O nome real do usurio, seu
escritrio, telefone do escritrio, telefone da
residncia
Possui um modo interativo que ativado chamandose o programa sem parmetros

Informaes sobre
o usurio
last
exibe uma lista com data e hora que um usurio
logou no sistema, como entrou e quanto tempo
ficou logado.
/var/log/wtmp
nce ttyp0 200.255.125.247 Tue Apr 27 22:36 still logged in
ftp ftp

200.244.118.98 Tue Apr 27 18:28 - 18:44(00:15)

ftp ftp

200.244.118.98 Tue Apr 27 18:28 - 18:28(00:00)

fulano ftp 200.244.118.68 Tue Apr 27 14:52 - 14:53 (00:00)


nce ttyp0 200.255.125.246 Mon Apr 26 21:51 - 22:06(00:14)

Alterando usurios
(Chaveamento)
su <username>
Troca de usurio
Se voc no for root, solicita a senha
su
Troca o usurio para root

su
Troca o usurio para root e executa o arquivo .bashrc

Permisses

Atributos e Permisses
Atributos dos arquivos
ls l (long listing) Inclui atributos
Tipo de arquivo
Permisses
Contador de links
Propriedades
File Size/Device #
Data de modificao
Nome do arquivo

Tipos de arquivos
Exemplo
drwxr-xr-x 2 oscar oscar
-rw-r--r-- 1 oscar oscar
Tipo de arquivo

4096 2009-06-29 16:37 .gstreamer-0.10


119 2010-02-28 10:26 .gtk-bookmarks
Significado

Arquivo regular

Diretrio

Link simbolico

Block Device

Character Device

Named Pipe

Domain Socket

Permisses
Permisses
3 Nveis de acesso
Owner, Group, Other
-rwxr-xr-x 22 oscar oscar

4096 2008-05-08 16:22 texto.txt

Operao

Arquivo

Read

Leitura

Write

Remoo/Modificao

Execute

Executar

Diretrio
Procura no diretrio
Criao/remoo
Acesso

Atributos de arquivos
Tabela nmerica/Simblica de atributos
Octal

Binrio

Simblico

000c

---

001

--x

010

-w-

011

-wx

100

r--

101

r-x

110

rw-

111

rwx

Permisses de arquivos
Smbolos

Tipo de Usurio

Ao

Permisso

Permisses de arquivos
chmod
Sintaxe
# chmod [opes] arquivo
Ex:
#chmod 744 teste.txt
#chmod ug+x teste.txt

Manipulando Grupos
chown
Muda o dono de um arquivo ou diretrio
# chown <username> <arquivo_ou_diretrio>

chgrp
Muda grupo associado ao arquivo
# chgrp <grupo> <arquivo_ou_diretrio>
# ls -l
Lista os arquivos com seus respectivos donos e grupos
drwxr-xr-x 8 oscar oscar
4096 2008-03-12 17:02 .gdesklets
drwxr-xr-x 22 oscar oscar
4096 2008-05-08 16:22 .gimp-2.4
-rw-r----- 1 oscar oscar
0 2010-02-11 09:21 .gksu.lock

Atributos Especiais
Setuid (SUID) Bit
Executa um programa com as permisses do proprietrio
do arquivo
Smbolo: s
Numrico: 4000

Setgid (SGID) Bit


Executa um programa com as permisses do grupo
proprietrio do arquivo
Smbolo: s
Numrico: 4000
Propriedade especial para diretrios

Gerenciamento de
Processos

Processo
uma instncia d eum programa que est em
execuo no sistema operacional
um conjunto de instrues que so executadas,
podendo compartilhar o mesmo espao de
endereamento virtual
uma abstrao para permitir a gerncia
De memria
De CPU
De recursos

Processo
Possuem um dispositivo padro de Entrada, de
Saida e de Saida de Erro
Possuem um dono, ou seja um usurio que o
disparou
Cada processo identificado por um nmero
nico (PID)
Um processo pode disparar outros processos
Pode executar em foreground ou background

Processo (Tipos)
Processos interativos
So disparados e controlados numa sesso online
Execuo
Foreground
Conectados a um terminal para E/S

Background
No estao conectados a nenhum terminal

Processo (Tipos)
Deamons
So processos destinados a atender um servio
De sistema
De usurio

Carga
No boot da mquina (background)
Por demanda

Processo de inicializao
Teste do sistema executado pela BIOS
Carga do LILO/GRUB (linux loader)
Carga do kernel
inicializao de suas tabelas internas
diagnstico de Hardware
verifica integridade do sistema de arquivos
principal (/) e monta o mesmo
inicializa o programa init

Processo de inicializao
Processo init
verifica integridade dos filesystems (fsck)
monta os filesystems
executa os scripts de inicializao do runlevel default
habilita o login do sistema

init
Pai de todos os processos (PID=1)

init

init
init

scripts

getty
login

sh

init
RUNLEVEL
Modo de execuo.
/etc/inittab
0 - HALT
1,s - Single mode (administrao)
2 - Multiusurio sem opes de rede
3 - Multiusurio completo (padro)
4 - reservado
5 - Modo grfico (Xwindow - xdm)
6 - Reboot

inittab
/etc/inittab
arquivo de configurao do init
define como o sistema vai iniciar (de que modo)
formato:
ID : RUNLEVELS : AO : PROCESSO
ID _ identifica uma entrada no inittab (at quatro caracteres)
RUNLEVELS _ lista de runleves nos quais uma determinada
acao dever ser tomada

inittab
/etc/inittab (Continuao)
ACAO _ ao tomada pelo init ao executar o processo
RESPAWN O processo ser reiniciado pelo init
WAIT Aguarda pelo fim da execuo do processo para
continuar
ONCE O processo s ser executado uma vez
SYSINIT O processo ser executado durante o processo de
boot (antes de qualquer entrada com acao boot ou bootwait)
POWERFAIL Executado quando recebe um sinal de que
ocorreu uma falha no sistema de alimentao
CTRLALTDEL Executado quando as teclas CTRL+ALT+DEL
so pressionadas

inittab
/etc/inittab (continuao)
PROCESSO _ processo que ser executado

initdefault
id: N : initdefault:
define em qual runlevel (N) o sistema ser inicializado

inittab
id:3:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

inittab
# Run gettys in standard runlevels
1:12345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
x:5:respawn:/usr/bin/X11/xdm -nodaemon

Scripts (RedHat)
/etc/rc.d/init.d/
diretrio que contm os scripts

/etc/rc.d/rc.sysinit
ativa partio de swap
define o nome da mquina
checa o estado dos discos (com fsck)
configura interfaces plug and play
remonta o / read-write

Scripts (RedHat)
rc.sysinit (continuao)
verifica por mdulos pendentes e carrega os
mdulos
monta os file systems locais

rc.modules
carrega modulos externos

rc.local
configuraes da mquina
executado por ltimo

Scripts (RedHat)
/etc/rc.d/rcX.d/
diretrio de scripts do runlevel X
ponteiros para os scripts no init.d
formato dos nomes:
garante ordem de execuo
SNNnome_do_daemon (START)
ex.: S30syslog

KNNnome_do_daemon (KILL)
ex.: K55routed

Scripts (slackware)
/etc/rc.d/rc.S
script de inicializao do sistema

/etc/rc.d/rc.K
script executado em modo single user (1)

/etc/rc.d/rc.M
script executado nos modos de multi usuario (2,3,4 e
5)

Scripts (slackware)
/etc/rc.d/rc.0
script executado para levar o sistema a halt (desligar)

/etc/rc.d/rc.6
executado quando o sistema rebootado

runlevel 4 para startar o Xwindow(xdm)

getty
Habilita login de usurios
abre os ttys (terminais) e configura seu modo de
operao
mostra o prompt de login
inicializa o processo login para o usuario

login
checa senha
executa o shell do usurio (definido no passwd)

Processo de
inicializao (resumo)
Boot
Bios
Boot Strapper
Ncleo
Init
rc.d
rcX.d
rc.local

Instalando Programas

Instalando Programas
Instalando aplicativos
Formatos comuns de distribuio:
Arquivos binrios (pr compilados
arquivo.rpm (RedHat)
arquivo.deb (debian)

programa fonte
arquivo.tar.gz

Instalando Programas
rpm
RedHat Packages Manager
Aplicativo para gerenciar os pacotes distribudos no
formato rpm
Contm, alm dos arquivos compactados,
informaes sobre o pacote:
verso
nome
descrio

Instalando Programas
rpm
Instalao:
rpm -i [--opes] pacote.rpm
opes: force, test, nodeps, ...

Atualizao:
rpm -U [--opes] pacote.rpm

Desinstalao:
rpm -e [--opes] pacote.rpm

Instalando Programas
Instalao: programas fonte (em geral)
Descompactar o arquivo fonte
Executa o programa./configure que em geral vem na
distribuio para verificar pendncias.
Compilar os programas fontes.
make

Instalar os executveis gerados.


make install

Instalando Programas
Debian
Inatalao a patir dos repositorios
apt-get update, O sistema procurar nos repositrios os
pacotes que eles contm e formar uma lista para sua
anlise.
apt-get install [pacote], O apt-get vai carregar o binrio
[pacote], verificar suas dependncias e depois instal-lo
apt-get remove [pacote], O apt remover este pacote do
sistema
apt-get remove --purge [pacote], O apt removera o pacote
e os arquivos de configurao
apt-cache search games, O apt faz busca por categoria

Instalando Programas
Debian
Inatalao a patir de arquivos .deb
Algumas consideraes
Deve ser utilizado o sistema dpkg
O pacote .deb deve estar no disco

Opes
dpkg h Exibe opes disponveis
dpkg l Exibe lista de pacotes

Instalando Programas
Debian
Operaes com dpkg
dpkg i [pacote.deb] Instala pacote
dpkg r [pacote] Remove pacote
dpkg L [pacote] Exibe arquivos de um pacote especifico
dpkg-deb x [pacote.deb] /tmp/destino Descompacta os
arquivos so pacote em /tmp/destino

Consideraes
Pacotes instalados com o dpkg no passam pelo
verificador de dependncias, isso pode gerar problemas
apt-get f install Fora a verificao do pacote dpkg
instalado

Manuteno bsica

Logs
syslogd
/etc/syslog.conf
controla o log do sistema
define em qual arquivo ser gravado um determinado
tipo de mensagem

Logs
syslog.conf
formato:
FACILIDADE.PRIORIDADE

ARQUIVO

FACILIDADES:
auth, auth-priv, cron, daemon, kern, lpr, mail, mark,
news, security (o mesmo que auth), syslog, user,
uucp e local0 a local7

PRIORIDADE:
debug, info, notice, warning, warn (o mesmo que
warning), err, error (o mesmo que err),crit, alert,
emerg, panic (o mesmo que emerg)

Logs
syslog.conf
kern.*
*.info;mail.none;authpriv.none

/dev/console
/var/log/messages

authpriv.*

/var/log/secure

mail.*

/var/log/maillog

daemon.*

/var/log/daemon

*.emerg

local7.*

/var/log/cisco

Agendamento
Cron
O Cron um servio carregado no boot do
sistema
Fica responsvel pelo agendamento das tarefas
solicitadas no sistema
Tarefas podem ser dirias, mensais, ou at
mesmo serem executadas uma nica vez.
Para executar suas rotinas no sistema, o cron
utiliza o crontab

Agendamento
crontab
Permite programar a execuo de determinado
programa
-e
edita o arquivo de configurao

-l
lista o arquivo de configurao

-r
remove o crontab corrente

-u <usurio>
uso do superusurio para alterar/listar o crontab de um
determinado usurio.

Agendamento
crontab
agenda a execuo de tarefa(s)
Formato do arquivo
campos separados por espao(s)
minuto hora dia ms dia_semana prog+arg
min => 0 - 59
hora => 0 - 23
dia => 1 - 31
ms => 1 - 12 (ou nomes Jan, Feb, Mar,...)
dia_semana => 0 - 7 (0 ou 7 para domingo)

Agendamento
Quando editado o crontab tem um padro
de agendamento de tarefas:
1 2 3 4 5 /patch/nome_do_script
1: minuto (0-59)
2: hora (0-23)
3: dia (1-31)
4: ms (1-12 [12 == dezembro])
5: dia da semana (1-7 [7 or 0 == domingo])
: /path/script ou comando

Agendamento
Exemplo:
1,2,4 *
*
*
funciona mesmo!

echo Este crontab

Este agendamento ira executar o comando echo nos


primeiros 1,2 e 4 minutos de todas as horas, todos o
dia, todos os meses, todos os dias da semana

20 * * * /patch/nome_do_script
Este agendamento executa um script as 20 horas todo
dia, ms e dias da semana

Backups
Tipos de backup
Total
Todos os arquivos

Incremental
Apenas arquivos alterados em relao a um backup anterior
Grupos de arquivos
Tipos de arquivos

Backups
Comando dd
Copia dados em baixo nivel
Ignora formatao de arquivos
Utilizado em copia de imagens
til para recuperao de sistemas de arquivos

Sintaxe
# dd [opes=valor]
Opes
if=arquivo Especifica o arquivo de entrada
of=arquivo Especifica o arquivo de saida
Ibs=valor, obs=valor, bs=valor especifica o tamanho do bloco de entrada, de
saida ou de ambos
Skip=n / seek=n salta n blocos do arquivo de entrada/saida antes de copiar
Count=n Copia n blocos

Backups
Comando dd
Exemplos
Copia a imagem de 1 disquete
#dd if=/dev/hd0 of=/tmp/disquete

Copia15 blocos de 4K de um HD
#dd if=/dev/hd of=/tmp/disco bs=4k count=15

Backups
Comando tar
Empacote arquivos
Em dispositivos
Em arquivos

um meio comum de distribuio de pacotes de software


Permite o backup de arquivos pertencentes a diversos sistemas de
arquivos
Permite o backup de rvores de diretrios com path relativos
Permite compactao

Backups
tar [opes] <arquivo>
Agrupa/desagrupa e (opcionalmente) compacta/
descompacta arquivos
Opo z para compactar/descompactar
Expandir:
tar -xvf arquivo.tar
tar -xvzf arquivo.tar.gz

Compactar:
tar -cvf arquivo.tar diretrio_ou_arquivos
tar -czvf arquivo.tar.gz diretrio_ou_arquivos

Redes
As placas de rede so conhecidas como
interfaces
Normalmente so apresentadas como ethN, onde
N indica qual a placa
A configurao de rede pode ser feita da seguinte
forma:
Manualmente
Durante o boot
Automaticamente

Redes
Os scripts de configurao normalmente chamam o
comando ifconfig ou disparam o cliente dhcp
Dependendo da distribuio, este sao alguns arquivos ou
diretorios para configurao de rede
/etc/init.d/network
/etc/init.d/networking
/etc/init.d/ifupdown
/etc/sysconfig/network-scripts
/etc/network/interfaces

Redes
O comando ifconfig
Configura endereos de interface de rede
Permite habilitar ou no interfaces de rede
ifconfig eth0, Mostra a configurao da interface
eth0
ifconfig a, Mostra todas a interfaces
ifconfig eth0, down Desativa uma interface corrente

Redes
/sbin/ifconfig
eth0

Link encap:Ethernet Endereo de HW 00:13:20:56:4d:67

UP BROADCASTMULTICAST MTU:1500 Mtrica:1


RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colises:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Redes
/sbin/route

Kernel IP routing table


Destination Gateway Genmask
192.168.1.0 *
127.0.0.0
default

255.255.255.0 U
*

255.0.0.0

192.168.1.1 0.0.0.0

Flags Metric Ref


0

UG

Use Iface

2045 eth0
0
0

802 lo
30761 eth0

Redes
Configurando interfaces de rede
Configurao dinmica
dhcp
Faz requisio ao servidor dhcp e configura automaticamente a
interface de rede.

Configurao esttica
ifconfig eth0 192.168.1.X
atribui um endereo IP a uma interface
configura mascara da rede (netmask)
configura endereo de broadcast
sem parmetros mostra configurao da interface

Redes
Configurando roteamento
route
adiciona rotas para redes e hosts
ex.:
route add -net 192.168.1.0 netmask 255.255.255.0 dev ethX
route add default gw 192.168.1.254
inclui rota default apontando para o gateway 192.168.1.254

sem parmetros lista a tabela de roteamento

Redes
Configurando DNS
/etc/resolv.conf
domain curso.com.br
search curso.com.br
nameserver 192.168.10.1
nameserver 192.168.10.2

Redes
Arquivo de Configurao
/etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth1
iface eth1 inet dhcp

Redes
Monitoramento em redes
O utilitario tcpdump um sniffer de dominio pblico
O utilitario mantido e disponvel em www tcpdump.org
Este utilitrio permite criar filtros para capturar qualquer tipo
de pacote
Instalar tcpdump

Dvidas?

Perguntas?
Crticas?
Sugestes?

Muito Obrigado!

ead@clavis.com.br

Oscar Castro
Instrutor