View
129
Download
14
Category
Preview:
Citation preview
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
Recommended