introdução ao unix lagemar/uff dezembro 2001. conteúdo zintrodução zarquivos e diretórios...

Post on 16-Apr-2015

130 Views

Category:

Documents

14 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introdução ao Unix

LAGEMAR/UFFDezembro 2001

Conteúdo

Introdução Arquivos e diretórios Manipulação de arquivos Operações em arquivos Proteção, atalhos e localização Padrões e busca Edição Personalização Processos Armazenamento

Bibliografia

Sato, H.K. - Comandos básicos para uso do Unix. PPPG/UFBa, 1993

Fiamingo, F.G. - Introduction to Unix. OSU, 1996 Jones, D. - Course 85321. CQU, 2000 Greenfield, L. - Linux Users Guide. LDP, 1996 Siever, E. - Linux - o guia essencial. Campus,

2000 Welsh, M. - Dominando o Linux. Ciência Moderna,

1997 Cornes, P. - Linux A-Z. Prentice-Hall, 1997

Aula 0 - Introdução

Conceitos de sistemas operacionaisCaracterísticas do UnixLogin e LogoutAjuda online

Sistema operacional

Gerenciador de recursos Processador Memória Dispositivos

Entrada e saídaArmazenagemComunicações

Máquina estendida

CPU

Rede

E/SMEM

Disco

Hardware

Sistema Operacional

Programas

Estrutura de um Sistema

Conceitos básicos

Processo programa em execução

Arquivo informações logicamente relacionadas

Processos e arquivos são organizados em árvores

Estrutura do Unix

Núcleo interage com o hardware

Chamadas do sistema acesso aos serviços do núcleo

Interpretador de comandos interface para as chamadas do sistema

Comandos programas utilitários do sistema

Hardware

Sistema Operacional

Programas

Estrutura de um Sistema

Hardware

Shell

Utilitários

System calls

Kernel

Bibliotecas

Aplicativos

Estrutura do Unix

Características do Unix

Multiusuário/MultitarefaVariedade de ferramentasFlexibilidade/ConcisãoTudo é um arquivoArquivos tem um lugarProcessos tem vida

Componentes

CompiladoresBibliotecasRede TCP/IPX-Windows

Sabores de Unix

SunOS/Solaris Sun Microsystems Digital Unix (Tru64) Digital/Compaq AIX IBM HP-UX Hewlett Packard Irix SGI UNICOS Cray NetBSD, FreeBSD UC Berkeley / the Net Linux Linus Torvalds / the

Net

Histórico do Unix

1969 - Criado por Ken Thompson e Dennis Ritchie dos Lab. Bell (PDP-7) 1971 - Transportado para um PDP-11 (memória 16 KB, disco 512 KB) 1973 - Rescrito na linguagem C de Dennis Ritchie 1974 - Distribuído pela AT&T para as universidades 1977 - Versões para outras máquinas. 500 sistemas em uso 1980 - BSD 4.1 de Berkeley 1984 - Autorizada a comercialização do Unix. 100.000 sistemas em uso 1988 - System V R4 (AT&T e Sun) 1991 - Linus Torvalds anuncia Linux 0.01 para 386 na Internet 1992 - Linux licenciado sob GPL 1993 - USL comprado pela Novell 1996 - Versão 2.0 do Linux

Acesso ao sistema

Terminais vt100, telnet, xterm

Login Nome do usuário Senha

Logout exit ^D

Senhas

Nunca use: qualquer palavra de qualquer dicionário um nome, apelido, marca, título, slogan... informações que você carrega na carteira números ou informações associados a você exemplos publicados de senhas

Nunca escreva ou dê sua senha para ninguém

Senhas

Use: mínimo de 6 caracteres misturas de letras, números e símbolos mistura de maiúsculas e minúsculas mistura de palavras erros de grafia senhas que você se lembre

Troque sua senha com freqüência

Troca de senha

Comando passwdComando yppasswd (nis)Comando nispasswd (nis+)

Ajuda online

Comando manComando infoManuais online (html, pdf)Linux Documentation Project

http://www.linuxdoc.org

Aula 1 - Arquivos e diretórios

Estrutura de diretóriosNomes e tipos de arquivosCaminhosComandos pwd, cd, ls, mkdir, rmdir

Estrutura de Diretórios

Arquivos são organizados em diretórios

Diretórios são arquivos com informações sobre outros arquivos

Diretórios são organizados em árvores

Nomes e tipos de arquivos

O nome de um arquivo pode conter até 255 caracteres

São permitidos caracteres alfanuméricos e alguns símbolos: . _ # % =

Não devem ser usados os caracteres especiais definidos pelo interpretador de comandos

Caracteres especiais

; separador de comandos + execução em background ( ) agrupamento de comandos | concatenador de comandos > < símbolos de redirecionamento ” \ ’ enfatiza os outros caracteres ` substituição de comandos separadores de palavras:

novalinha espaço tab

metacaracteres de caminhos:* ? [ ] ~ + - @ !

Caminhos

Absolutos - referem-se à raiz dos diretórios:/home/paulo/teste.f/etc/passwd/var/spool/mail

Relativos - referem-se ao diretório corrente:dados/abc.xyz

Comandos

pwd mostra o diretório correntecd muda o diretório correntels lista um diretório (opções l, a,

r)mkdir cria um diretóriormdir remove um diretório

Arquivos ocultos

Arquivos que começam por um ponto só são mostrados pelo comando ls -a

. representa o diretório corrente.. representa o diretório acima

Aula 2 - Manipulação de arquivos

Expansão de caminhosComandos cp, mv, rm, touch Visualização: cat, more, less, tail,

head

Expansão de caminhos

O Unix utiliza metacaracteres para abreviar os caminhos * qualquer número de caracteres ? um caracter [abc...] um dos caracteres na lista [a-z] um dos caracteres na faixa [^abc...] qualquer caracteres fora da lista (ou

faixa)

Os metacaracteres são traduzidos direta-mente pelo interpretador de comandos

Exemplos de expansão

$ ls temp/*

motd passwd $ ls /dev/tty?

/dev/tty0 /dev/tty2 /dev/tty4 /dev/tty6 /dev/tty8

/dev/ttyl /dev/tty3 /dev/tty5 /dev/tty7 /dev/tty9 $ ls /dev/tty?[23456]

/dev/ttyS2 /dev/ttyp2 /dev/ttyq2 /dev/ttyr2 /dev/ttys2

/dev/ttyS3 /dev/ttyp3 /dev/ttyq3 /dev/ttyr3 /dev/ttys3

/dev/ttyS4 /dev/ttyp4 /dev/ttyq4 /dev/ttyr4 /dev/ttys4

/dev/ttyS5 /dev/ttyp5 /dev/ttyq5 /dev/ttyr5 /dev/ttys5

/dev/ttyS6 /dev/ttyp6 /dev/ttyq6 /dev/ttyr6 /dev/ttys6

Ênfase

Para inibir a tradução dos caracteres especiais: \ (contrabarra): protege o caracter

especial seguinte ’ (aspa): protege todos os caracteres

especiais até a próxima aspa ” (aspa dupla) protege todos os

caracteres especiais até a próxima aspa dupla, exceto $ e ` (crase)

Exemplos de ênfase

$ echo 'Aspas simples "protegem" aspas duplas’

Aspas simples "protegem" aspas duplas $ echo "Isto nao e' \"especial\"?"

Isto nao e' "especial"?

Copiando arquivos - cp

cp copia arquivos ou diretóriosFormato: cp origem destinoSe o destino for um diretório, copia

um ou mais arquivos para o diretórioOpções:

-i pede confirmação -p preserva a data e hora -R copia recursivamente

Copiando arquivos - exemplos

cp file1.f file2.f *.c /home/joao/geralcp ../fonte . cp fonte .. cp fonte ./abccp fonte /home/mariacp /home/joao/abc/* /home/maria/xyzcp -R /home/joao/abc/*

/home/maria/xyz

Movendo arquivos - mv

mv move ou renomeia arquivos ou diretórios

Formato: mv origens destinoSe o destino for um diretório, copia para

o diretórioOpções:

-i pede confirmação -f força a movimentação, mesmo que o

arquivo exista

Movendo arquivos - exemplos

mv abc xyz.amv book manualmv manual/* .

Apagando arquivos - rm

rm apaga arquivosFormato: rm arquivosOpções:

-i pede confirmação -f força a remoção -r remove recursivamente - PERIGO

Apagando arquivos - exemplos

rm abcrm abc defrm -i *.orm -r testesrm -r * .o espaço em branco fatal

Alterando a data - touch

touch atualiza a data (e hora) de acessso ou modificação de arquivos

Formato: touch arquivosOpções

-a altera apenas a data de acesso -m altera apenas a data de modificação data altera para data especificada

Se o arquivo não existir, é criado com tamanho 0 bytes

Visualização: cat

cat mostra o conteúdo de arquivosFormato: cat arquivosPode ser usado para concatenar

arquivos, como veremos adiante

Visualização: more e less

more mostra, por partes, o conteúdo de arquivos

Formato: more arquivosComandos:

return para avançar uma linha espaço para avançar uma página b para voltar uma página h para ajuda de outros comandos

Versão moderna: less

Visualização: tail e head

head mostra as 10 primeira linhas de um arquivo

tail mostra as 10 últimas linhas de um arquivo

Opção -n mostra n linhas

tail -r mostra de trás para a frentetail -f mostra continuamente

Resumo da visualização

headtail

cat

more

Aula 3 - Proteção e atalhos

Atributos de arquivosComandos chmod, umask, chown e

chgrpLinksComando ln

Proteção no Unix

Baseado no UID e GIDRelações

usuário (u) grupo (g) outros (o)

Acessos leitura (r) gravação (w) execução (x)

Atributos de arquivos

$ ls -l

drwxr-x--- 2 sato staff 512 Aug 16 14:17 biblio

-rw-r--r-- 1 sato staff 13 Aug 27 15:50 carta

-rwxr-xr-x 1 sato staff 3339 Sep 03 13:35 prog1

outros

grupo

usuário

tipo

UID GID tam. data nomen

Alterando a proteção - chmod

chmod altera a proteção dos arquivosFormato: chmod proteção arquivosOpção

-R recursivoModos

mneumônico numérico

chmod - funcionamento

Modo mneumônico Quem Operação Acesso

u usuário + acrescenta r leiturag grupo - retira w gravaçãoo outros = atribui x execuçãoa todos (all)

Modo numérico r = 4 w = 2 x = 1

chmod - exemplos

chmod +x abcchmod uo-w abcchmod a=rx abcchmod 640 abcchmod 5 abcchmod -R a+r .

Acesso a arquivos e diretórios

Bit Arquivos Diretóriosr ler listarw escrever alterarx executar acessar

Definindo a proteção - umask

umask define a proteção no momento da criação do arquivo ou diretório

Formato: umask nnnonde n é o complemento da

proteçãoArquivos nunca são criados com o bit

de execução

Definindo a proteção - exemplos

umask 002cria arquivos com 664 e diretórios com

775umask 077

cria arquivos com 600 e diretórios com 700

Aula 4 - Operações em arquivos

Localizando arquivos - findRedirecionamento de entrada e

saídaComandos wc, sort, cut, cmp e diff

Localizando arquivos - find

find procura arquivos em uma árvoreFormato: find origem opçõesOpções

-name procura por nome (padrão) -print mostra o resultado (padrão) -type procura por tipo de arquivo -size procura por tamanho

Existem muito mais opções (use o man)

find - exemplos

$ find . -print

./backup

./backup/motd.bak

./backup/passwd.bak

./text

./text/motd

./text/passwd $ find

./backup

./backup/motd.bak

./backup/passwd.bak

./text

./text/motd

./text/passwd

find - exemplos

$ find . -name "*.bak" -print

./backup/motd.bak

./backup/passwd.bak $ find . -name "*.bak" -exec rm -i {} \;

rm: remove ./backup/passwd.bak (yes/no)? y

rm: remove ./backup/motd.bak (yes/no)? y

Redirecionamento de E/S

Funcionamento padrão dos comandos:

ComandoSaídapadrão

Saída deerros

Entradapadrão

0 1

2

Redirecionamento de E/S

Formas de redirecionamento:

Desc. Nome Abrev. Padrão Redir 0 Entrada padrão stdin Teclado < 1 Saída padrão stdout Vídeo >

2 Saída de erros stderr Vídeo 2>

O símbolo >> indica uma anexação O símbolo << indica um delimitador O símbolo < pode ser omitido na

maioria dos comandos

Redirecionamento - exemplos

$ ls -l /usr/local/bin > lista$ ls -l /etc >> lista$ mail alfredo < arquivo$ mail alfredo << fim$ ls /bin | mail alfredo$ ls -l /var/spool 2> acesso_negado$ ls -l /var/spool 2> acesso_negado

1>&2

Redirecionamento - exemplos

$ find / -name passwd -print

find: /var/spool/cron: Permission denied

find: /var/spool/atjobs: Permission denied

find: /var/spool/atspool: Permission denied

find: /var/spool/cron: Permission denied

/usr/bin/passwd

find: /root: Permission denied

/etc/passwd $ find / -name passwd -print 2> /dev/null

/usr/bin/passwd

/etc/passwd

É comum um programa utilizar como entrada o resultado de outro:

Encadeamento de comandos

>

ComandoSaídapadrão

Entradapadrão

Comando

Arquivotemporário

<

A saída de um comando pode ser enviada diretamente para a entrada de outro:

O símbolo | representa a canalização (ou pipe)Os comandos do Unix funcionam como filtros

Encadeamento de comandos

|Comando

Saídapadrão

Entradapadrão

Comando

Encadeamento - exemplos

$ ls /bin | more $ find . -name "*.bak" -print | xargs rm

rm: remove ./backup/passwd.bak (yes/no)? y

rm: remove ./backup/motd.bak (yes/no)? y

Contando arquivos - wc

wc quantifica o conteúdo de um arquivo

Formato: wc opções arquivosOpções

-l conta linhas -w conta palavras -c conta caracteres (bytes)

Contando arquivos - exemplos

$ wc < /etc/passwd

21 42 775 $ wc /etc/passwd

21 42 775 $ ls /bin | wc -l

82

Ordenação - sort

sort ordena o conteúdo de um arquivoFormato: sort opções arquivosPode ser combinado com uniq para

eliminar linhas repetidasOpções:

-n ordem numérica -r ordem reversa -t separador de campos (padrão: tab) +n salta n campos

Ordenação - exemplos

$ wc -l * | sort -r $ sort lista | uniq -c $ sort +2 -n -t: /etc/passwd $ sort -k3 -n -t: /etc/passwd GNU sort

Seleção - cut

cut seleciona as colunas de um arquivoFormato: cut opções arquivosDois ou mais arquivos podem ser unidos

em colunas pelos comandos paste e joinOpções

-d delimitador (padrão: tab) -f lista de campos selecionados -c lista de colunas (bytes)

Seleção - exemplos

$ cut -d: -f1,5 /etc/passwd $ cut -d: -f3-5 /etc/passwd $ cut -c4 arquivo | paste - arquivo

Comparação - cmp, diff

cmp compara o conteúdo de dois arquivos

Formato: cmp arq1 arq2Use diff para obter a lista de

diferençasOpções

-l lista os bytes diferentes -s só retorna o código de terminação

Aula 5 - Padrões e busca

Reconhecimento de padrõesMetacaracteresComando grep

Reconhecimento de padrões

Expressões regulares (regexp) permitem reconhecer padrões de texto

As regexp são formadas por caracteres e metacaracteres interpretados pelos programas aplicativos

Devem ser colocadas entre aspas para evitar a expansão pelo interpretador de comandos

Metacaracteres

Carac. Casa com c o caracter c . qualquer caracter * 0 ou mais ocorrências da expressão regular

anterior ^ o início da linha $ o fim da linha

[abc] lista de caracteres \ inibe o sentido do caracter especial

seguinte

Regexp - exemplos

mal a cadeia mal ^mal mal no início da linha mal$ mal no fim da linha ^mal$ uma linha só com mal [Mm]al Mal ou mal m[aeiou]l a segunda letra é uma vogal m[^aeiou]l a segunda letra não é uma

vogal m.l a segunda letra é qualquer

caracter

Regexp - exemplos

^...$ qualquer linha com exatamente 3 caracteres

^\. qualquer linha que comece por um ponto ^[^.] qualquer linha que não comece por

um ponto bugs* bug, bugs, bugss, etc... ”word” uma palavra entre aspas ”*word”* uma palavra com ou sem aspas

Regexp - exemplos

[A-Z][A-Z]* uma ou mais letras maiúsculas [A-Z].* uma letra maiúscula, seguida

por zero ou mais caracteres [A-Z]* zero ou mais letras maiúsculas [^0-9A-Za-z] qualquer símbolo (exceto letra

ou algarismo

Busca de texto - grep

grep procura uma expressão regular em um ou mais arquivos

Formato: grep [opções] regexp [arquivos]

Opções: -i não diferencia maiúsculas ou minúsculas -v mostra as linhas que não contém a

expressão -c mostra o número de linhas encontradas

grep - exemplos

$ grep aluno1 /etc/passwd

aluno1:*:500:500::/home/aluno1:/bin/bash $ ls -l |grep Aug

-rw-rw-rw- 1 pb staff 4764 Aug 10 2000 aliases.text

-rw-rw-rw- 1 pb staff 5347 Aug 10 2000 aniv.htm

drwxr-xr-x 2 pb staff 512 Aug 14 15:44 c++

drwxr-xr-x 2 pb staff 512 Aug 22 15:59 linuxbin -rw-rw-rw- 1 pb staff 8021 Aug 10 2000 qaviso.html -rw-r--r-- 1 pb staff 1474 Aug 29 18:56 uso

Aula 6 - Edição

Comandos tr e sedEditor vi

Tradução de caracteres - tr

tr traduz um conjunto de caracteres em outro

Formato: tr cadeia1 [cadeia2]Opções:

-c traduz pelos caracteres que não estão na cadeia1

-d apaga os caracteres definidos na cadeia1

-s elimina os caracteres múltiplos

tr - exemplos

$ tr a z < /etc/passwd $ tr ’[A-Z]’ ’[a-z]’ < /etc/passwd $ tr -d ’ ’ < /etc/passwd

Edição de Arquivos - sed

sed edita um ou mais arquivos sem intervenção do usuário

Formato: sed [opções] [arquivos]Opções:

-e ’instruções’ aplica as instruções aos arquivos

-f arquivo aplica as instruções do arquivo -n suprime a saída normal

Instruções sed

As instruções tem a forma geral[endereço1][,endereço2] comando [argumentos] Endereços:

n a linha n . a linha corrente $ a última linha do arquivo , o mesmo que 1,$ ; o mesmo que .,$ /padrão/ qualquer linha com o padrão

Comandos sed

d apagar linhasp imprime linhass substitui um padrão por uma cadeia

n primeiras ocorrências na linha (padrão: n=1) g todas as ocorrências p mostra as linhas com substituições w escreve as linhas com substituições

w escreve as linhas em um arquivoy traduz caracteres

sed - exemplos

1,$s/antes/depois/g/George/s/W//4d3d1,10w/tmp/hello

Editor vi

Disponível em todos os UNIXPéssima interface com o usuárioComandos são letrasModos de operação

Edição Inserção Comando

Editor vi - Modo de edição

h,j,k,l esquerda, direita, cima, baixo 0. $ início e fim da linha x apaga caracter r, R substitui caracter ou texto dd apaga linha yy copia linha p, P insere texto apagado J junta duas linhas ZZ salva e sai um número antes do comando indica repetição

Editor vi - Modo de inserção

a, A insere depois do cursor, no fim da linha i, I insere antes do cursor, no início da

linha o, O abre uma linha abaixo, acima do

cursor BS apaga o caracter anterior ESC sai do modo de inserção

Editor vi - Modo comando

/ procura um padrão ! executa um comando do UNIX : comandos de editor (aceita comandos

sed) w grava em um arquivo q abandona a edição x o mesmo que wq ou ZZ r lê de um arquivo n edita próximo arquivo ! força a execução do comando

Aula 7 - Personalização

PerfisVariáveis de ambienteAliasesHistórico de comandosOutros editores (emacs, pico, ...)

Perfis

Arquivos com comandos do UNIXExecutados logo após o loginConfiguram o ambiente de um usuárioOcultos no diretório de login do usuárioDependem do tipo de login e shellExemplos: .profile, .login, .bashrc, .xsession

Variáveis de ambiente

Armazenam informações sobre: caminhos parâmetros de programas ou do

sistemaEscopo:

locais ao interpretador de comando globais para todas as cópias do shell

Variáveis de ambiente - exemplos

Exemplos de variáveis do sistema: PATH caminhos onde buscar os programas MANPATH caminhos das páginas de manuais HOME diretório de login PWD diretório atual PS1 texto do prompt TERM tipo do terminal SHELL interpretador de comandos

Exemplos de variáveis de programas: GS_LIB bibliotecas do Ghostscript CWPROOT diretório raiz do Seismic Unix

Variáveis de ambiente - uso

Uso: Referência: adicionar $ ao início do nome Inicialização: arquivos de perfil do usuário

ou do sistemaComandos:

echo $var mostra o valor de var set exibe todas as variáveis ativas

Variáveis de ambiente - atribuição

Bourne shell e assemelhados: MANPATH=/usr/man:/usr/local/man PATH=$PATH:/usr/local/bin export PATH

C shell set manpath=/usr/man:/usr/local/man setenv path=($path /usr/local/bin)

Aliases

Aliases são sinônimos para comandos

Formato: alias nome=comandoOutros comandos:

alias mostra todos os sinônimos unalias elimina um sinônimo

Aliases - configuração

Arquivos de configuração: .cshrc C shell .kshrc Korn shell .bashrc Bourne Again shell

Executados a cada nova shellDevem ser definidos na variável ENV

nos casos ksh e bash

Histórico de comandos

Os comandos utilizados são guardados em um arquivo histórico

Utilizaçao do arquivo: Csh comandos ! e fc Ksh comandos do vi ou emacs Bashsetas do teclado

O tamanho do histórico é determinado pelo usuário

O comando fc

Formato: fc [opção] [comando]O comando é um nome ou númeroOpções:

-e edita o comando (padrão: anterior) -l lista os comandos anteriores

Alias r reexecuta um comando equivale a fc -e -

O editor emacs

Poderoso (= complicado)Domínio públicoDisponível em muitos ambientesMulti-janelaMulti-função (mail, desenvolvimento)Comandos são letras precedidas de

Ctrl (C) ou Esc (M)Usado pela shell Korn

emacs - comandos essenciais

C-h ajuda online (inclui tutorial)C-x C-s salva arquivoC-x C-c sai do editorC-x C-u desfaz a última ediçãoC-x i inclui arquivoC-g aborta a operação correnteC-s localiza caracteresC-d elimina caracter sob o cursor

Aula 8 - Processos

Comando ps e topSubprocessosComandos crtl-Z, &, jobs, fg, bg, kill

e at

Aula 9 - Armazenamento

Comandos mount e umountUso do espaço em disco: df e duComandos tar, compress e zipDiscos removíveis e fitasComandos dd e cpio

top related