Operadores de redirecionamento
-
Upload
ivani-nascimento -
Category
Technology
-
view
871 -
download
5
description
Transcript of Operadores de redirecionamento
Instalação e configuração de Sistemas Operacionais de Redes
Operadores de
Redirecionamento
Profª Ivani Nascimento
Apresentação
Um shell Linux, como bash, recebe entrada e envia saída como
sequências ou fluxos de caracteres. Cada caractere é independente
do que vem antes e do que vem depois dele. Os caracteres não são
organizados em registros estruturados ou blocos de tamanho fixo.
Fluxos são acessados utilizando técnicas de E/S (Entrada/Saída)
de arquivo, não importa se o fluxo de caracteres real vem de ou vai
para um arquivo, um teclado, uma janela em um monitor ou outro
dispositivo de E/S.
Apresentação
Shells Linux usam três fluxos de E/S padrão, cada um dos quais é associado com um descritor de arquivo:
• Entrada padrão (stdin) – Entrada de um fluxo de dados, podendo ser destacado o teclado. Todos eles alimentam o computador com informações. O descritor é representado pelo número 0.
• Saída padrão (stdout) – Saída de um fluxo de dados em condições normais. Exemplos: monitor, impressora, arquivos, etc. O descritor é representado pelo número 1.
• Saída de erro (stderr) – Saída de um fluxo de dados em condições de erro ou insucesso em um determinado processamento, que poderá ser direcionada para o monitor ou arquivo de LOG. O descritor é representado pelo número 2.
Apresentação
• Fluxos de entrada fornecem entrada para programas, normalmente de digitações em um terminal.
• Fluxos de saída imprimem caracteres de texto, normalmente para o terminal.
• O terminal era originalmente uma máquina de escrever ASCII ou terminal de exibição, mas agora é mais frequentemente uma janela de texto em uma área de trabalho gráfica.
> (Redirecionamento simples)
• Redireciona a saída padrão de um programa/comando/script para algum dispositivo ou arquivo ao invés do dispositivo de saída padrão (tela).
• Quando é usado com arquivos, este redirecionamento cria ou substitui o conteúdo do arquivo.
• Por exemplo:
o O comando ls é utilizado para listar arquivos. Para enviar a saída para um arquivo, utilizar:
# ls > listagem.txt
o Para visualizar o conteúdo do arquivo listagem.txt:
# cat listagem.txt
> (Redirecionamento simples)
• O mesmo comando pode ser redirecionado para o segundo console /dev/tty2 usando:
# ls >/dev/tty2
• Dessa forma, o resultado do comando ls será mostrado no segundo console (em modo texto, pressionar ALT e F2 para mudar para o segundo console e ALT e F1 para retornar ao primeiro).
• Outro exemplo:
# ls 1>/dev/tty2
• Assim, o número 1 indica que será capturada a saída padrão do comando. Para redirecionar para um arquivo somente a saída de erros do comando ls:
# ls 2>/tmp/erros-do-ls
>> (Redirecionamento duplo)
• Redireciona a saída padrão de um programa/comando/script para algum dispositivo ou adiciona as linhas ao final de arquivo ao invés do dispositivo de saída padrão (tela).
• A diferença entre este redirecionamento duplo e o simples, é se caso for usado com arquivos, adiciona a saída do comando ao final do arquivo existente ao invés de substituir seu conteúdo.
• Por exemplo, é possível acrescentar a saída do comando ls ao arquivo listagem.txt do exemplo anterior usando:
# ls / >> listagem.txt.
• Para visualizar o conteúdo do arquivo listagem.txt:
# cat listagem.txt
<
• Direciona a entrada padrão de arquivo/dispositivo para um comando. Este comando faz o contrário do anterior, ele envia dados ao comando.
• Por exemplo, é possível usar o comando cat < teste.txt para enviar o conteúdo do arquivo teste.txt ao comando cat que mostrará seu conteúdo (é claro que o mesmo resultado pode ser obtido com cat teste.txt mas este exemplo serviu para mostrar a funcionalidade do <).
<<
• Este redirecionamento serve principalmente para marcar o fim de exibição de um bloco. É especialmente usado em conjunto com o comando cat, mas também tem outras aplicações. Por exemplo:
# cat << final
> este arquivo sera exibido
> ate que a palavra final
> comece a linha
> final
este arquivo sera exibido
ate que a palavra final
comece a linha
| (pipe)
• Envia a saída de um comando para a entrada do próximo comando para continuidade do processamento. Os dados enviados são processados pelo próximo comando que mostrará o resultado do processamento.
• Exemplos:
# ls -la | more
• O comando acima faz a listagem longa de arquivos que é enviado ao comando more (que tem a função de efetuar uma pausa a cada 25 linhas do arquivo).
| (pipe)
# locate find | grep "bin/"
/sbin/findfs
/usr/bin/find
/usr/bin/find2perl
• No exemplo acima, todos os caminhos/arquivos que contém find na listagem serão mostrados (inclusive man pages, bibliotecas, etc.).
• Dessa forma, para realizar um filtro, é utilizado o comando "bin/" para mostrar somente os diretórios que contém binários. E ainda que a listagem ocupe mais de uma tela, é possível acrescentar o comando more:
# locate find | grep "bin/" | more
Referências
MORIMOTO, Carlos E.. Linux, guia prático. Porto Alegre: Sul Editores, 2009.
FERREIRA, Rubem E.. Linux: guia do administrador do sistema. São Paulo: Novatec, 2008.
MOTA FILHO, João Eriberto. Descobrindo o Linux: entenda o sistema operacional GNU/linux. São Paulo: Novatec, 2007.
Referências
• RIBEIRO, Uirá, Certificação Linux, 1ª Ed, Rio de Janeiro, Axcel Books, 2004.
• Certificação Linux LPI- Nível 1 Exames 101 e 102. Vários, 1ª Ed, São Paulo, Alta Books.
• NORTON, Peter; GRIFFITH, Arthur. Guia Completo do Linux. Tradução Sérgio Facchim – Complete Guide to Linux. São Paulo, Berkeley, 2000.