Antes de sairmos vendo comandos e coisas do tipo, vamos começar com um conceito básico: entradas e saídas.

Para entradas e saídas em sistemas POSIX (incluindo os Unixes e Linux), existem três "descritores" que estão presentes para todas as aplicações:

  • stdin, que é descritor de entrada de dados (com o identificador "0");
  • stdout, que é o descritor de saída padrão (com o identificador "1"); e
  • stderr, que é o descritor de saída para erros (com o identificador "2").

Por exemplo, quando uma aplicação começa a jogar informações para o usuário, ela está escrevendo no stdout; quando a aplicação fica esperando que o usuário digite alguma coisa, ela fica tentando ler de stdin.

A importância desta informação ficará mais clara mais pra frente, quando começarmos a ver redicionamentos e pipes.