Entrada e Saída:
Quase todos os comandos Unix tem uma entrada e produzem uma saída, a entrada de
um comando são os dados que o comando vai processar, essa entrada pode vir de
um arquivo especificado pelo usuário, de um arquivo do sistema, do terminal ou
da saída de outro comando. A saída de um comando são os dados de entrada
processados , a saída de um comando pode ser impressa na tela de um terminal,
enviada a um arquivo, ou servir de entrada a um outro comando.
Existe uma entrada padrão e uma saída padrão.
Entrada padrão:
A maioria dos comandos Unix permite que você informe a entrada de dados,
geralmente informando o nome de um arquivo que contém os dados a serem
processados pelo comando, mas caso esta entrada seja omitida, o programa utiliza
automaticamente a entrada padrão para receber os dados a serem processados pelo
comando, normalmente a entrada padrão é o teclado do terminal.
Saída padrão:
Por default a saída dos dados processados pelo comando são para a saída padrão
que é o monitor do terminal que você está usando, mas você também pode usar
esta saída para ciar ou adicionar dados a um arquivo ou simplesmente usa-la
como entrada para outro comando qualquer.
Redirecionamento:
No sistema Unix é possível o redirecionamento da entrada padrão, da saída
padrão, e ainda possibilitar que a saída de um comando seja a entrada de outro,
todos estes recursos são acessados através de símbolos, são eles o de
direcionamento de saída para um arquivo >,
o de redirecionamento de um arquivo como entrada <,
e o símbolo que direciona a saída de um programa para a entrada de outro |.
Redirecionamento de saída:
Para redirecionar a saída de um comando para um arquivo, você deve inserir o símbolo
> depois de todos os parâmetros do
comando, e por último por o nome do arquivo que irá receber os dados
processados, por exemplo:
%ls -lap > meu.diretorio Esta linha de
comando criará o arquivo "meu.diretorio" com o conteúdo da saída do
comando "ls -lap", caso o arquivo "meu.diretorio" já
existisse no diretório corrente o mesmo seria sobrescrito, para que isto não
ocorra, ou seja para que os dados sejam acrescentados no arquivo, ao invés de
usar ">" use ">>", assim os dados serão inseridos
no fim do arquivo já existente sem sobreescrever o seu conteúdo.
Redirecionamento de entrada:
Para redirecionar a entrada que deveria ser feita através do teclado para um
arquivo que já contenha os dados da entrada você deve usar o símbolo
"<" depois de todos os parâmetros do comando, e por último por o
nome do arquivo que contém os dados a serem processados, por exemplo:
%grep -e teste < meu.diretorio Esta
linha executará o comando grep como se você tivesse digitado todo o conteúdo
do arquivo "meu.diretorio" como um texto para ser processado pelo
comando.
Redirecionamento da saída para a entrada (pipeline):
Para redirecionar a saída padrão de um comando para a entrada padrão de outro
você deve usar o símbolo "|" para separar um comando do outro, este
símbolo segue a mesma sintaxe do encadeamento de comandos, com a diferença que
a saída do comando é usada como entrada do próximo comando encadeado, o último
comando colocará sua saída na saída padrão. Por exemplo:
%ls -lap | sort | grep -e teste | wc -l Esta
linha de comando usará a saída do comando ls como entrada do comando
sort que
direcionará a saída para o comando grep, e este irá direcionar sua saída
para o comando wc, que por sua vez irá apresentar sua saída na tela.