Slides Linux Essentials
-
Upload
luizscribd2014 -
Category
Documents
-
view
273 -
download
6
description
Transcript of Slides Linux Essentials
Oscar Castro Instrutor [email protected]
Linux Essentials
Modelo do Curso
l Aulas ao vivo (on line) l Aulas gravadas para revisão
l Ambientes para testes
l Material complementar
l Avaliação
O Sistema Linux
Histórico
Visão geral do Unix
– 1965 Bell Laboratories, MIT e General Electric unem-se num esforço conjunto para o desenvolvimento de um novo Sistema Operacional, Multics (Multiplexer Information Computer Service), que seria multiusuário, multiprocessador e multinível (hierárquico).
Histórico
• 1969 – Alguns programadores dos Laboratórios Bell que
traballavam no projeto, desenvolveram e implementaram a primeira versão 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
Histórico
• 1971 – O sistema roda em um PDP-11, com 16 Kbytes de
memória 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 máquinas
• 1974 – AT&T licencia o Unix para universidades com a
finalidade de ensino
Histórico
1980 – BSD 4.1 (Berkeley Software Development) – A Microsoft lança o Xenix
1982 – Surge a Sun Microsystem
1983 – Plurix e SOX no Brasil
Histórico
1991 – Linus Torval na Finlândia decide portar o Sistema
Unix para a plataforma x86 (PCs)
1 usuário
estudo acadêmico de sistemas operacionais
inspirado no minix
10.000 linhas de código
Histórico
1992
1.000 usuários
suporte ao compilador gcc
40.000 linhas de código
Histórico
1994
100.000 usuários
Suporte a redes
Auxílio de centenas de programadores espalhados pelo mundo.
170.000 linhas de código
Histórico
1996
1,5 milhões de usuários
Roda em máquinas Alpha e Sparc
Aceita multiprocessadores
400.000 linhas de código
Histórico
1997 3,5 milhões de usuários
boom do sistema surgem revistas sobre linux uma versão a cada semana
Já está na casa dos milhares o número de programadores envolvidos no desenvolvimento do sistema
800.000 linhas de código
Histórico
1998 7,5 milhões de usuários
Várias versões de softwares são distribuídas para o S.O. linux
Word Perfect Oracle (banco de dados) - início de 1999
Popularizado entre provedores internet Conectiva lança distribuição brasileira do RedHat 1,5 milhões de linhas de código
Histórico
• Linux é um sistema operacional multiusuário, estável e gratuito (free sob a GPL General Public Licence - GNU)
• Unix Like • Disponível para plataformas Intel 86 (entre
outras) • Repositórios • br-linux.org/download
Distribuições I São grupos de pessoas ou entidade
responsável pela distribuição do software Linux sob a GPL - GNU. Gratuito mas as distribuições podem cobrar por
ele, ela só não pode restringir/proibir a cópia Não existe o copyright
Distribuições II Principais distribuições
Debian A mais livre das distribuições (não comercial) Surgiu em 1993 Grande volume de recursos e documentação Vem com mais de 2200 pacotes Usa o kernel do linux mas há trabalhos para prover esta
distribuição para outros kerneis
Distribuições III Principais distribuições
Slackware Tem fama de ser o mais dificil de instalar É uma das mais antigas distribuições Nas últimas versões já adota os softwares
mais populares Gnome, KDE, Apache, Sendmail, Netscape 4.7 ...
Distribuições IV Principais distribuições
SuSe - Novell Distribuição Alemã Está entre as maiores distribuições comerciais Mais de 1300 aplicativos no formato RPM Varias opções de instalações pré-definidas
Distribuições V Principais distribuições
Corel Linux Uma das mais novas distribuições Voltado para o público iniciante (windows) Baseado no Debian Processo de instalação simples e automático Aplicativos bem parecidos com os do windows
Distribuições VI Principais distribuições
Caldera Open Linux Não muito conhecida no Brasil Talvez a distribuição mais fácil de ser instalada Possui avançadas rotinas de detecção automática de
hardware Ferramentas de administração 100% gráficas
Distribuições VII • Principais distribuições
– Red Hat Linux • Atualmente a distribuição mais popular no mundo
corporativo • Excelentes qualidades tanto para o público doméstico
como corporativo • A partir da versão 6 vem com o GNU KDE, embora o
ambiente default seja o Gnome • Criadora do padrão RPM • Ferramentas de configuração para fácil adm.
Distribuições VIII Principais distribuições
Ubuntu – Distribuição mais popular em usuarios finais – Muito facil de instalar e com uma grande quantidade de
drivers atualizados – O Ubuntu possui uma forte ligação com a comunidade
Debian, contribuindo directamente com qualquer modificação nos códigos-fonte, ao invés de apenas anunciar essas mudanças em uma data posterior
– A gestão de instalação de software é realizada pelo APT e pelo Synaptic
Estrutura • Um sistema UNIX pode ter muitos níveis de
hierarquia, sempre começando pelo diretório raiz (/)
• Cada arquivo tem identificação única no sistema, através da especificação do seu caminho (path)
• Por convenção, os nomes em um caminho, estão separados por uma “/”
• Internamente, cada arquivo é associado a um número identificador único (inode)
Estrutura Tipos de arquivos
– Diretório • Ponteiro para outros arquivos e diretórios • Não contem dados
– Normal • Conjunto de caracteres armazenados • Contém dados variáveis (texto, código de programa)
– Especial • Ponteiro para um periférico • Não contém dados • Localizado no diretorio /dev
– Links • Ponteiro para outro arquivo no sistema de arquivos
Estrutura Associa um diretório da árvore a um filesystem. Transparente ao usuário do sistema.
/
bin etc mnt home
floppy cdrom usuariox
FileSystem /dev/hda1 /dev/hda2 /dev/fd0 /dev/cdrom
dev var
spool
Diretórios do sistema
– /bin • Comandos fundamentais
– ls, rm, cp, grep – /etc
• Arquivos de configuração – passwd, inetd.conf, fstab
– /root • Diretório de trabalho do super usuário
– /tmp • Diretório de arquivos temporários
Diretórios do sistema
– /boot • Onde se encontra o kernel e arquivos usados durante
a inicialização – vmlinuz, System.map, map, boot
– /sbin • Programas de uso do super usuário
– route, swapon, mkfs, init – /var
• Arquivos de log, filas de mail e de impressão – /var/log/messages – /var/spool/mqueue – /var/spool/lpd
Diretórios do sistema
/usr/bin Aplicações de uso geral
gzip,who,gs,telnet
/usr/sbin Aplicações de uso do super usuário
traceroute, daemons (sendmail, inetd,
/usr/local Diretório onde são instalados (por default) diversos
aplicativos. Netscape, WordPerfect, StarOffice
Diretórios do sistema
– /mnt • Diretório padrão para “montagem”de devices diversos
tais como: – cdrom – floppy – partição dos – máquina remota (rede)
– /lib , /usr/lib – Bibliotecas de programas
– /usr/include • Arquivos de cabeçalho (includes usados em
programas em C / C++) – stdio.h, string.h
Diretórios do sistema
Nomes dos caminhos – Caminho absoluto – Desde a raiz do sistema de arquivos (/)
Ex: /etc/hosts Caminho relativo
– A partir do diretório corrente – Ex: arquivos/texto.txt
Introdução ao Virtualbox
Virtualização (Conceito) − Software de virtualização − Sistema de virtualização
Trabalhando coma VM do curso − Características do Sistema − Uso de imagens
Conceitos sobre sistemas Unix Like
Sistema de Arquivos
Organização do Sistema
Kernel – Núcleo do sistema operacional. – Responsável pelo interfaceamento entre o hardware
e as aplicações. – Implementa o sistema de arquivos
• Trata as operações de I/O • Diretórios e arquivos
– Gerência os drives de acesso aos dispositivos
Organização do Sistema
• Kernel – Controla a execução de processos
• aloca memória • implementa mecanismo de time slicing
– Gerência os daemons – Cria mecanismos de memória virtual – Gerência os serviços de rede – Gerência os processos de intercomunicações,
tais como sockets, sinais e semáforos.
Kernel
Sistema de arquivos
O Linux organiza seu sistema de arquivos em uma árvore de diretórios A raiz desta árvore é o diretório /
Filesystem A maneira como os arquivos são gravados no disco /
partição. Linux “conhece” a maioria dos filesystems entre eles: MS-DOS, minix, ext2, iso9660, nfs, hpfs, sysv, vfat,
etc.
Características
Sistema de arquivos é um conjunto de estruturas lógicas 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 miúdos, é a forma de organização de dados em algum meio de armazenamento de dados em massa (discos)
Características Método de Acesso
• Acesso direto • Acesso seqüencial • Acesso indexado
Operações de Entrada/Saída Alocação de Espaço em Disco
• Alocação Contigua • Alocação Encadeada • Alocação Indexada
Tipos de Sistemas de Arquivos
ufs Sistema padrão hsfs Sistema de arquivos para CD-ROM ext2 Sistema de arquivos compatível 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
Ext2 – É o sistema mais comum para Linux, mas nao tem
Journal de meta-dados ou seja, verificações rotineiras de sistemas de arquivos ext2 podem levar muito tempo
– Muito similar ao ffs do BSD
Tipos de Sistemas de Arquivos
Journal – Escritas atômicas (indivisíveis) são feitas primeiramente em
uma área separada chamada journal ou log – Só após o término das escritas atômicas, elas são escritas no
sistema de arquivos propriamente dito – Caso haja algum problema, as ecritas que estão no journal são
refeitas – Sistemas de arquivos com uso do journal podem ter sua
consistência 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 recuperação rápida
– O ext3 é um sistema de arquvos confiável – Tem uma opção adicional de catalogar “hashed b-
trees” que permite alto desempenho na maior parte dos casos
– Este catálogo 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 transações de banco de dados
– Pode recuperar um sistema de arquivos rapidamente
– Disponível como open source em jfs.sourceforge.net
Tipos de Sistemas de Arquivos
Montando sistemas de arquivos
Utilitário mount – #mount [-F tipo] [-o opções] dispositivo diretório
• Tipo ufs, nfs, vfat etc • Opções Permite por exemplo ser montado somente para
leitura • Dispositivo Device onde reside o sistema de arquivos • Diretório(mount point) Local a partie do qual o sistema de
arquivos poderá ser acessado – #mount Sem parâmetros mostra os sistemas de
arquivos montados
/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(continuação) tipos:
msdos FAT16 vfat - FAT32 nfs - Network File System iso9660 - CDROM
/etc/fstab arquivo de descrição dos devices, pontos de
montagem, tipo do file system e opções.
Montando sistemas de arquivos
/bin/umount Desmonta” (desassocia) um determinado device de
um diretório. Uso:
umount <device> ou umount <diretório>
Montando sistemas de arquivos
Sistema de arquivos UFS
Tabela de Partições
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 partições
– Válido para a partição com o bloco físico de número 0 do dispositivo. Nas outras partições fica reservado
Bloco de boot
– Segunda etapa do boot do sistema. Válido para partições “bootáveis”. Nas outras partições fica reservado
Superbloco
– Informações que descrevem o sistema de arquivos tais como: tamanho, numero de inodes, datas de criação, atualização etc
Sistema de arquivos UFS
Grupo de cilindros – Divisão interna do sistema de arquivos para
obtenção de maior confiabilidade e desempenho Superbloco de backup
– Dentro de cada grupo de cilindros, por segurança, existe uma cópia do superbloco
Bloco de grupo de cilindros – Descreve o grupo com informações tais como:
tamanho, número de arquivos, mapa de blocos etc
Sistema de arquivos UFS
Lista de inodes – Inode é a estrutura responsável por descrever um arquivo – A lista de inodes contém todos os inodes do grupo de cilindros – Total de inodes
• Determinado no momento da criação do sistema de arquivos e nao pode ser alterado posteriormente
• O inode de número 1 não é utilizado e o de número 2 é sempre correspondente a raiz do sistema
Bloco de dados – Contém os dados
Inode
Formado de um Inode Inode
Permissão
Propriedade
Tamanho do arquivo
Contador de link
Data
Time Stamps
- Change
- Modification
- Access
Instalação do Linux
Instalação
Requerimento de Hardware CPU
Intel 80386 Memória
Depende do uso da máquina (Servidor ou Workstation) Mínimo: 512 MB Recomendado: 1GB no mínimo
Controladora de disco IDE, EIDE, ESDI, SCSI
Instalação
Requerimento de hardware (continuação)
Espaço em disco Mínimo 1 GB Comum entre 2 GB e 6 GB Servidores +10 Gb Depende da distribuição
Adaptador de video Hercules, CGA, EGA, VGA, IBM monocromático, SVGA e a
maioria das placas com acelerador de vídeo.
Instalação Particionamento
Dividir o(s) disco(s) em áreas (divisão lógica do disco).
Mínimo 2 partições Recomendado 5 partições
Swap / => Filesystem principal /usr => Utilitários em geral /var => Logs e spool (mail, impressora,...) /home => Diretório dos usuários
Instalação
Particionamento (continuação) Partição principal nos sistemas mais antigos (BIOS)
deve estar nos primeiros 1024 cilindros do disco o que equivale a 528MB.
Partição de swap Mínimo 512MB Mínimo recomendado 1GB Maior velocidade de acesso Implementa o mecanismo de memória virtual
Instalação Dicas para instalação:
Os diretórios 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 vídeo (marca/modelo, RAM)
Instalação
Dicas (continuação) Anote previamente (continuação)
Monitor (Marca/Modelo, freqüência ) Modem (porta serial e padrão) Placa de rede (tipo - ethernet, FDDI, token ring, outros -
marca/modelo e conector - BNC, RJ11, AUI, automático)
Rede: domínio, endereço IP, mascara da rede, endereço de broad
cast, gateway e endereço do(s) name server(s).
Instalação
Processo de instalação (geral) Gerar um disco/CD de boot para o linux Inicializar o sistema com o disco Selecionar o método de instalação (CDROM,
NFS, FTP, disco, etc) Criar a(s) partição(ões) Associar as partições ao(s) “ponto(s) de
montagem” - diretório(s)
Instalação
Processo de instalação (cont) Formatar as partições Escolher os pacotes que serão instalados Configurações adicionais (mouse, video, rede e
Xwindow) Instalar o LILO/GRUB
Instalação
Não é necessário criar os discos de boot quando:
A instalação é feita via CDROM local e
A BIOS permite boot via unidade cd CD.
De preferência os discos devem estar formatados.
Método de instalação
CDROM local NFS
requisito: Diretório compartilhado na rede Privilégio de acesso a máquina
FTP Requisito
Acesso a um servidor FTP que disponibilize o LINUX
Método de instalação
SMB (samba) Rede microsoft Requisito:
Acesso a máquina da rede Microsoft que esteja disponibilizando o LINUX
Disco rígido Instalado de uma partição ou disco adicional da
própria máquina
Particionando o disco
fdisk similar ao fdisk do MS-DOS/Win criar nova partição apagar uma partição existente listar as partições do disco mudar tipo da partição
Particionando o disco fdisk (continuação) 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 (continuação)
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 partição 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 informações sobre as partições Command (m for help): p
Disk /dev/hda: 128 heads, 63 sectors, 523 cylinders
Units = cylinders of 8064 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 254 1024096+ 6 DOS 16-bit
/dev/hda2 255 255 305 205632 83 Linux native
/dev/hda3 306 306 322 68544 82 Linux swap
/dev/hda4 323 323 523 810432 5 Extended
/dev/hda5 323 323 373 205600+ 83 Linux native
Particionando o disco fdisk
d _ apaga uma partição t _ muda tipo da partição Command (m for help): t
Partition number (1-5): 3
Hex code (type L to list codes): L
0 Empty 9 AIX 75PC/IX b7 BSDI fs
1 DOS 12-bit a OS/2 Boot 80 old Minix b8 BSDI swap
82 Linux Swap ... 83 Linux Native ...
Hex code (type L to list codes): 82
Particionando o disco
fdisk w _ grava as alterações nas tabelas e sai q _ sai sem alterar as tabelas de partições
disk druid
interface gráfica (mais amigável) RedHat 5.0 (ou superior)
Instalação lilo (Linux loader)
Gerencia de boot, define qual o sistema operacional vai ser carregado
O gerenciador de boot têm papel importantíssimo, pois cabe a ele a tarefa de permitir ao usuário o carregamento de um ou outro sistema (um kernel ou outro)
Programa responsável pela carga do kernel permite a passagem de parâmetros para o kernel Geralmente instalado na MBR (Master Boot Record)
Instalação GRUB
O mais popular entre usuários 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 vários sistemas de arquivos, como o EXT2, EXT3, ReiserFS, FAT, FFS etc.
Editor de textos “ vi”
Características
– Editor de textos vi é muito poderoso – Não é 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 operação – Modo de edição
• 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 não esta no modo
de inserção O texo que será inserido so é gravado quando um
comando de gravação é dado Aqui aparece um tela limpa com o cursor na primeira
linha
Usando o vi
Mudando do modo de comando para inserção
– i Insere texto na posicao do cursor – I Insere texto no inicio da linha – a Insere texto logo apos a posição do cursor – A Insere texto no final da linha – o Acrescenta uma linha abaixo da posição do cursor – O Acrescenta uma linha acima da posição do cursor
Usando o vi
Saindo do modo de edição
– 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 alterações no arquivo – :q! Permite sair do arquivo abandonando todas as
alterações – :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 posição do cursor – [n]dw Exclui do cursor até o início da próxima
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 próxima 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 considerações) – A busca leva em conta caracteres maiúsculas e
minúsculas – 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 trás – n Procura novamente na direção atual – N Procura novamente na direção contrária
Usando o vi
Caracteres especiais – \ Desativa significado especial – ^ Começo da linha – $ Fim da linha – . Qualquer caracter isolado – * Repete o caracter qualquer número 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 conteúdo no documento
atual.
Usando o vi
Pesquisa e substituição avançadas
– :1,n s/texto1/texto2/ Substitui o text1 pelo texto2 – :1,n s/texto1/texto2/g Substitui o text1 pelo texto2
em todas as ocorrências – :1,n s/texto1/texto2/c Pergunta se pode subsituir o
text1 pelo texto2
Usando o vi
Configurações de sessão
:set Mostra as configurações de ambiente :set nu Mostra o número de linhas :set nonu Desliga o comando acima :set all Mostra todas as configurações :set list Mostra os caracteres ocultos
Comandos básicos
Manipulando diretórios
Manipulando arquivos e diretórios rmdir
– Remove um diretório
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 diretórios 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 diretório
Manipulando arquivos e diretórios
grep
– Procura ocorrências de uma cadeia de caractéres em um arquivo
sort
– Ordena as linhas de um arquivo wc
– Conta o número de linhas, palavras e caractéres de um arquivo
rm
– Remove arquivos ou diretórios
Manipulando arquivos e diretórios
pwd – Apresenta o diretório corrente
mkdir – Cria diretórios
ls – Lista conteuso de diretórios
cd – Muda o diretório 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
Sessões Unix
– Login – Password – Prompt
Interface de caracteres
Comandos – Coleção de pequenos programas para realizar
finções específicas – No Unix, os comandos acostumam ser agrupados
para a realização de tarefas mais complexas – Classes de comandos
• Operações do sistema • Manipulação de arquivos • Processamento de textos • Comunicação, etc
Interface de caracteres
Manuais de referência – man [-opções] nome do comando
Exemplo – man ls – man –k passwd – Info man
Interface de caracteres Comandos
– Sintaxe genérica • Comando [-opções] [argumentos]
– Exemplos • ls • ls –a • who • who am i • date • exit • logout
Usuários e Grupos
Contas de usuário Cada conta possui (/etc/passwd) • Nome
– Tipicamente até 8 caracteres
• UID (UserID) – Número único para cada usuário
• Grupo (Group ID) • Diretório (home)
– Localização dos arquivos do usuário – É o diretório corrente de uma sessão (login)
• Shell – Csh, ksh, sh, bash etc
Contas de usuários
Adicionando usuários 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 usuários /etc/shadow
apenas o root pode ler e escrever maior segurança 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 é válida 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 usuário
Criação de um usuário – # useradd –c “Oscar Castro” –g oscar –s /bin/bash
oscar – O exemplo cria um usuário oscar no grupo oscar
com shell padrão bash
– # useradd –c “Caio Graco” –d /home/caio –s /bin/csh caio
– O exemplo cria um usuário caio no grupo default com shell padrão csh
Contas de usuário
Remoção de um usuário – Pode-se remover manualmente retirando as
entradas dos arquivos /etc/passwd, /etc/shadow, /etc/group /etc/aliases ...
– # userdel caio
Contas de usuário Senhas
– # passwd [-opções] [conta] – Se não for fornecida a conta altera o usuário atual – Além da senha pode ser alterado o shell,
comentários sobre o usuário – Ex: – # passwd –x 20 –w 5 –i 2 oscar – A senha expirará após 20 dias, o usuário será
avisado 5 dias antes da expiração da senha e a conta ficará desativada apos 2 dias
Informações sobre o usuário
Finger – Mostra informações sobre o usuário contida na
tabela /etc/fstab, a hora do último login no arquivo /var/log/wtmp, se o usuário tem algum e-mail ou não
• 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.
Informações sobre o usuário
chfn – É utilizado para mudar a informação que é mostrada
pelo proprio finger. Esta informação é armazenada no arquivo /etc/passwd
– O comando finger mostra 4 informações que podem ser alteradas pelo chfn: O nome real do usuário, seu escritório, telefone do escritório, telefone da residência
– Possui um modo interativo que é ativado chamando-se o programa sem parâmetros
Informações sobre o usuário
last exibe uma lista com data e hora que um usuário
“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 usuários (Chaveamento)
su <username> – Troca de usuário – Se você não for root, solicita a senha
• su – Troca o usuário para root
• su – – Troca o usuário para root e executa o arquivo .bashrc
Permissões
Atributos e Permissões
Atributos dos arquivos – ls –l (long listing) Inclui atributos
• Tipo de arquivo • Permissões • Contador de links • Propriedades • File Size/Device # • Data de modificação • Nome do arquivo
Tipos de arquivos Exemplo
drwxr-xr-x 2 oscar oscar 4096 2009-06-29 16:37 .gstreamer-0.10 -rw-r--r-- 1 oscar oscar 119 2010-02-28 10:26 .gtk-bookmarks
Tipo de arquivo Significado
Arquivo regular
Diretório
Link simbolico
Block Device
Character Device
Named Pipe
Domain Socket
-
d
l
b
c
p
s
Permissões
Permissões – 3 Níveis de acesso
• Owner, Group, Other • -rwxr-xr-x 22 oscar oscar 4096 2008-05-08 16:22 texto.txt
Operação Arquivo Diretório
Read
Write
Execute
Leitura
Remoção/Modificação
Executar
Procura no diretório
Criação/remoção
Acesso
Atributos de arquivos
Tabela númerica/Simbólica de atributos
0 000c
001
010
011
100
101
110
111
1
2
3
4
5
6
7
---
--x
-w-
-wx
r--
r-x
rw-
rwx
Octal Binário Simbólico
Permissões de arquivos
Símbolos
Tipo de Usuário Ação Permissão
u
g
o
+
-
=
r
w
x
a
Permissões de arquivos
chmod – Sintaxe
• # chmod [opções] arquivo • Ex: • #chmod 744 teste.txt • #chmod ug+x teste.txt
Manipulando Grupos
chown – Muda o dono de um arquivo ou diretório – # chown <username> <arquivo_ou_diretório>
chgrp – Muda grupo associado ao arquivo – # chgrp <grupo> <arquivo_ou_diretório> – # 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 permissões do proprietário
do arquivo • Símbolo: s • Numérico: 4000
– Setgid (SGID) Bit • Executa um programa com as permissões do grupo
proprietário do arquivo • Símbolo: s • Numérico: 4000 • Propriedade especial para diretórios
Gerenciamento de Processos
Processo
É uma instância d eum programa que está em execução no sistema operacional
É um conjunto de instruções que são executadas, podendo compartilhar o mesmo espaço de endereçamento virtual
É uma abstração para permitir a gerência – De memória – De CPU – De recursos
Processo
Possuem um dispositivo padrão de Entrada, de Saida e de Saida de Erro
Possuem um dono, ou seja um usuário que o disparou
Cada processo é identificado por um número único (PID)
Um processo pode disparar outros processos Pode executar em “foreground” ou “background”
Processo (Tipos)
Processos interativos – São “disparados” e controlados numa sessão online – Execução
• Foreground – Conectados a um terminal para E/S
• Background – Não estao conectados a nenhum terminal
Processo (Tipos)
Deamons – São processos destinados a atender um serviço
• De sistema • De usuário
– Carga • No boot da máquina (background) • Por demanda
Processo de inicialização
Teste do sistema executado pela BIOS Carga do LILO/GRUB (linux loader) Carga do kernel
inicialização de suas tabelas internas diagnóstico de Hardware verifica integridade do sistema de arquivos
“principal” (/) e monta o mesmo inicializa o programa init
Processo de inicialização
Processo init verifica integridade dos filesystems (fsck) monta os filesystems executa os scripts de inicialização do runlevel default habilita o login do sistema
init
Pai de todos os processos (PID=1)
init init
init scripts
login
getty
sh
init RUNLEVEL
Modo de execução. /etc/inittab
0 - HALT 1,s - Single mode (administração) 2 - Multiusuário sem opções de rede 3 - Multiusuário completo (padrão) 4 - reservado 5 - Modo gráfico (Xwindow - xdm) 6 - Reboot
inittab
/etc/inittab arquivo de configuração do init define como o sistema vai iniciar (de que modo) formato:
ID : RUNLEVELS : AÇÃO : 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 (Continuação)
ACAO _ ação tomada pelo init ao executar o processo RESPAWN O processo será reiniciado pelo init WAIT Aguarda pelo fim da execução 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 alimentação CTRLALTDEL Executado quando as teclas CTRL+ALT+DEL
são pressionadas
inittab
/etc/inittab (continuação) 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/ diretório que contém os scripts
/etc/rc.d/rc.sysinit ativa partição de swap define o nome da máquina checa o estado dos discos (com fsck) configura interfaces plug and play remonta o / read-write
Scripts (RedHat) rc.sysinit (continuação)
verifica por módulos pendentes e carrega os módulos
monta os file systems locais
rc.modules carrega modulos externos
rc.local configurações da máquina executado por último
Scripts (RedHat)
/etc/rc.d/rcX.d/ diretório de scripts do runlevel X ponteiros para os scripts no init.d formato dos nomes:
garante ordem de execução SNNnome_do_daemon (START)
ex.: S30syslog KNNnome_do_daemon (KILL)
ex.: K55routed
Scripts (slackware)
/etc/rc.d/rc.S script de inicialização 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 usuários abre os tty’s (terminais) e configura seu modo de
operação mostra o prompt de login inicializa o processo login para o usuario
login checa senha executa o shell do usuário (definido no passwd)
Processo de inicialização (resumo)
Boot
Bios
Boot Strapper
Núcleo
Init
rc.d
rcX.d
rc.local
Instalando Programas
Instalando Programas
Instalando aplicativos – Formatos comuns de distribuição:
Arquivos binários (pré compilados arquivo.rpm (RedHat) arquivo.deb (debian)
programa fonte arquivo.tar.gz
Instalando Programas
rpm – RedHat Packages Manager – Aplicativo para gerenciar os pacotes distribuídos no
formato rpm – Contém, além dos arquivos compactados,
informações sobre o pacote: versão nome descrição
Instalando Programas
rpm – Instalação:
• rpm -i [--opções] pacote.rpm – opções: force, test, nodeps, ...
– Atualização: • rpm -U [--opções] pacote.rpm
– Desinstalação: rpm -e [--opções] pacote.rpm
Instalando Programas
Instalação: programas fonte (em geral) – Descompactar o arquivo fonte – Executa o programa./configure que em geral vem na
distribuição para verificar pendências. – Compilar os programas fontes.
• make – Instalar os executáveis gerados.
make install
Instalando Programas Debian
– Inatalação a patir dos repositorios • apt-get update, O sistema procurará nos repositórios os
pacotes que eles contém e formará uma lista para sua análise.
• apt-get install [pacote], O apt-get vai carregar o binário [pacote], verificar suas dependências 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 configuração
• apt-cache search games, O apt faz busca por categoria
Instalando Programas
Debian – Inatalação a patir de arquivos .deb – Algumas considerações
• Deve ser utilizado o sistema dpkg • O pacote .deb deve estar no disco
– Opções • dpkg –h Exibe opções disponíveis • dpkg –l Exibe lista de pacotes
Instalando Programas Debian
– Operações 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 – Considerações
• Pacotes instalados com o dpkg não passam pelo verificador de dependências, isso pode gerar problemas
• apt-get –f install Força a verificação do pacote dpkg instalado
Manutenção básica
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.* /dev/console
*.info;mail.none;authpriv.none /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 serviço carregado no boot do
sistema Fica responsável pelo agendamento das tarefas
solicitadas no sistema Tarefas podem ser diárias, 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 execução de determinado programa
-e edita o arquivo de configuração
-l lista o arquivo de configuração
-r remove o crontab corrente
-u <usuário> uso do superusuário para alterar/listar o crontab de um
determinado usuário.
Agendamento crontab
agenda a execução de tarefa(s) Formato do arquivo
campos separados por espaço(s) minuto hora dia mês dia_semana prog+arg min => 0 - 59 hora => 0 - 23 dia => 1 - 31 mês => 1 - 12 (ou nomes Jan, Feb, Mar,...) dia_semana => 0 - 7 (0 ou 7 para domingo)
Agendamento Quando editado o crontab tem um padrão
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: mês (1-12 [12 == dezembro]) 5: dia da semana (1-7 [7 or 0 == domingo]) : /path/script ou comando
Agendamento Exemplo:
– 1,2,4 * * * * echo “Este crontab funciona mesmo!“
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, mês e dias da semana
Backups
Tipos de backup
– Total • Todos os arquivos
– Incremental • Apenas arquivos alterados em relação a um backup anterior • Grupos de arquivos • Tipos de arquivos
Backups Comando dd
– Copia dados em baixo nivel • Ignora formatação de arquivos • Utilizado em copia de imagens • Útil para recuperação de sistemas de arquivos
– Sintaxe • # dd [opções=valor] • Opções
– 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 distribuição de pacotes de software – Permite o backup de arquivos pertencentes a diversos sistemas de
arquivos – Permite o backup de árvores de diretórios com path relativos – Permite compactação
Backups
tar [opções] <arquivo> – Agrupa/desagrupa e (opcionalmente) compacta/
descompacta arquivos – Opção “z” para compactar/descompactar – Expandir:
• tar -xvf arquivo.tar • tar -xvzf arquivo.tar.gz
– Compactar: tar -cvf arquivo.tar diretório_ou_arquivos tar -czvf arquivo.tar.gz diretório_ou_arquivos
Redes
As placas de rede são conhecidas como interfaces
Normalmente são apresentadas como ethN, onde N indica qual é a placa
A configuração de rede pode ser feita da seguinte forma: – Manualmente – Durante o boot – Automaticamente
Redes
Os scripts de configuração normalmente chamam o comando ifconfig ou disparam o cliente dhcp
Dependendo da distribuição, este sao alguns arquivos ou diretorios para configuração 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 endereços de interface de rede – Permite habilitar ou não interfaces de rede – ifconfig eth0, Mostra a configuração da interface
eth0 – ifconfig –a, Mostra todas a interfaces – ifconfig eth0, down Desativa uma interface corrente
Redes
/sbin/ifconfig eth0 Link encap:Ethernet Endereço de HW 00:13:20:56:4d:67
UP BROADCASTMULTICAST MTU:1500 Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisões: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 Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 2045 eth0
127.0.0.0 * 255.0.0.0 U 0 0 802 lo
default 192.168.1.1 0.0.0.0 UG 0 0 30761 eth0
Redes Configurando interfaces de rede
Configuração dinâmica dhcp
Faz requisição ao servidor dhcp e configura automaticamente a interface de rede.
Configuração estática ifconfig eth0 192.168.1.X
atribui um endereço IP a uma interface configura mascara da rede (netmask) configura endereço de broadcast sem parâmetros mostra configuração 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 parâmetros 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 Configuração /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 público – O utilitario é mantido e disponível em www tcpdump.org – Este utilitário permite criar filtros para capturar qualquer tipo
de pacote – Instalar tcpdump
Dúvidas?
Perguntas? Críticas?
Sugestões?