MINISTÉRIO DA EDUCAÇÃO
SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
CAMPUS SÃO JOSÉ – SANTA CATARINA
Sistemas Operacionais
Redirecionamentos e Editor vi
Prof. Tiago Semprebom
[email protected]
www.sj.ifsc.edu.br/~tisemp
Objetivos:
1. Exercitar o uso de redirecionamentos de
entrada e saída padrão.
2. Usar o editor de texto vi.
Entrada e saída padrão:
• Todo processo Unix possui três arquivos previamente
abertos:
• i) Entrada padrão: comumente associado ao teclado
• (terminal)
• ii) Saída padrão: normalmente associado à tela (terminal)
• iii) Saída de erros padrão: também normalmente associado
à tela (terminal)
Saída de erros
padrão
Entrad
a
padrão
Processo
UNIX
saída
padrão
Entrada e saída padrão:
Entrada, saída ou saída de erros padrão podem ser
redirecionados:
● Redirecionamento de entrada padrão: processo
recebe dados de outra fonte que não o terminal
– Ex: obtém de um arquivo ou de outro processo via um pipe
● Redirecionamento de saída padrão: processo escreve
dados em outro destino que não o terminal
-
Ex: escreve dados em um arquivo ou envia a outro processo via
um pipe
Redirecionamento de saída
• Usa-se o símbolo “>” ao final da linha de comando no prompt
do shell para redirecionar a saída para um arquivo.
Ex: redirecionando para o arquivo ls.txt a saída do programa ls:
Redirecionamento de saída padrão:
● Usa-se o símbolo “|” após a especificação do programa a ser
executado, para redirecionar sua saída para um pipe
- Ex: redirecionando para o programa wc a saída do
programa ls:
ls -l *pdf | wc -l :
conta quantos arquivos têm nome que termina com “pdf”
– ls -l *pdf mostra arquivos cujos nomes terminem com “pdf”
– wc -l conta as linhas lidas da entrada padrão
Exercícios:
i)
Concatene vários arquivos de texto, e usando
redirecionamento de saída padrão grave o resultado em um
novo arquivo.
ii) Execute o comando “ps > ps.txt”. Veja o conteúdo do
arquivo resultante “ps.txt”. Execute novamente “ps > ps.txt”,
e veja como ficou o arquivo “ps.txt”. O que você pode
concluir quanto ao redirecionamento de saída para um
arquivo já existente ?
iii) Repita o procedimento do ítem ii, porém executando
primeiro “ps > ps.txt” e depois “ps >> ps.txt”. Qual foi a
diferença ?
Redirecionamento de saída padrão: desafio
iv) Concatene todos os arquivos com extensão .txt ou .ctxt
contidos no arquivo tar docs.tar.bz2, salvando-os em um
arquivo chamado tudo.txt.
Redirecionamento de saída de erros padrão:
• A saída de erros padrão pode ser redirecionada para um
arquivo acrescentando-se “2>&1” ao final da linha de
comando:
Redirecionamento de entrada padrão:
• Usa-se o símbolo “<” ao final da linha de comando
no prompt do shell para redirecionar a entrada para
um arquivo
– Ex: usando o arquivo ls.txt como entrada para o programa grep:
Utilitários head, tail e sort
• head: mostra as N primeiras linhas de um
arquivo
• tail: mostra as N últimas linhas de um arquivo
(ou a partir da enésima linha)
• sort: ordena alfabeticamente ou
numericamente as linhas de um arquivo
Utilitários head, tail
• Seja o arquivo arquivo.txt:
Utilitários head, tail:
• Resultado de head -5 arquivo.txt:
• Resultado de tail -5 arquivo.txt:
Utilitários head, tail:
• Resultado de tail +5 arquivo.txt:
• Desafio: Usando uma combinação de head e tail mostre as
linhas de número 9 a 12
Utilitário sort:
• Resultado de sort frutas.txt:
sort frutas.txt
• Desafio: liste alfabeticamente todos os arquivos contidos em
docs.tar.bz2
Utilitário sort:
Extras: utilitário sort para ordenamento numérico
Resultado de sort -n sizes.txt:
sort –n sizes.txt
Editor vi:
• Editor clássico encontrado em praticamente
todos que inclui o Linux)
• Operação toda em modo texto (independe do
modo gráfico)
• Dois modos de operação:
– Modo de comando: podem-se especificar comandos
edição e arquivos
– Modo de inserção: pode-se acrescentar texto
Editor vi:
• Inicia-se o editor ao se executar vi na linha de
comando. Ex: vi README.txt
Editor vi:
• Ao se iniciar o vi entra-se em modo de comando.
• Para entrar em modo de inserção deve-se digitar:
– i (insert) ou a (append):
Editor vi:
• Em modo de inserção pode-se navegar usando-se as
teclas de cursor
– ... isto no vim, versão incrementada do vi. No vi clássico
somente se consegue navegar em modo de comando !
• Para acrescentar texto, entra-se em modo de inserção
e digita-se normalmente.
• Para voltar a modo de comando tecla-se ESC
Editor vi: comandos básicos
• Comandos básicos (modo de comando):
–
–
–
–
–
–
–
0: vai para o início da linha
$: vai para o final da linha
gg: vai para a primeira linha
G: vai para a última linha
n: vai para a linha n (n é um número)
w: vai para a próxima palavra
b: vai para a palavra anterior
Editor vi: comandos básicos
–
–
–
–
–
–
–
–
x: apaga um caractere à direita do cursor
X: apaga um caractere à esquerda do cursor
dd: apaga-se uma linha inteira
D: apaga do cursor até o final da linha
dw: apaga até a próxima palavra
dfs: apaga até a próxima ocorrência do caractere s
a: entra-se em inserção uma posição à frente do cursor
i: entra-se em inserção uma posição antes do cursor
Editor vi: comandos básicos
– rc: substitui o caractere sob o cursor pelo caractere c
– cwnova: substitui a palavra a partir do cursor pela
palavra nova
– /palavra: busca por palavra, e nela posiciona o curso
– n: repete a busca para a frente (encontra próxima
ocorrência)
– N: repete a busca para trás (encontra ocorrência
anterior)
– :s/texto/novo/n: substitui texto por novo nas próximas
n linhas
Editor vi: comandos básicos
– Comandos básicos (modo de comando):
– :w : grava o arquivo
– :w um_arquivo: grava o conteúdo no arquivo
um_arquivo
– :w um_arquivo: grava o conteúdo no arquivo
um_arquivo, sobrescrevendo-o caso exista
– :r um_arquivo: lê um_arquivo e insere seu conteúdo
a partir do cursor
– :r!comando : executa comando no shell, e insere seu
resultado a partir do cursor
– :q : sai do vi (termina o editor)
– :q! : sai do vi, descartando as modificações
Download

Redirecionamento de saída padrão