Cada proceso tiene al menos tres conexiones con el mundo exterior. La entrada estándar es la fuente de los datos del proceso; la salida estándar es el lugar a donde el proceso envía datos; y la salida de error estándar es el lugar a donde el proceso envía mensajes de error (a menudo abreviados como stdin, stdout, y stderr).
Las palabras «fuente» y «lugar» son intencionalmente vagas. Estas entradas y salidas pueden modificarse por parte del usuario. Podrían ser la pantalla, el teclado, un fichero; incluso una conexión de red. Puede usted especificar lo que quiera utilizar.
Cuando ejecuta un programa desde el intérprete, normalmente la entrada estándar viene del teclado, y la salida estándar y de error van ambas a la pantalla. Sin embargo, puede especificar que se cambien estos valores por defecto.
Por ejemplo, la orden echo envía sus resultados a la salida estándar, normalmente la pantalla. Pero también puede enviarla a un fichero en su lugar, mediante el operador de redirección de salida, >. Por ejemplo, para poner la palabra «Hola» en el fichero mifichero, utilice esta orden:
Puede cambiar la entrada estándar de una orden con el operador de redirección de entrada, <. Por ejemplo, cat < mifichero mostrará el contenido de mifichero. Esto no es útil en la práctica, ya que, por conveniencia, la orden cat acepta un nombre de fichero como argumento. De manera que le basta con decir cat mifichero, y el efecto será el mismo.
Internamente, cat < mifichero quiere decir que el intérprete abre mifichero y vuelca su contenido a la entrada estándar de cat. cat mifichero, sin operador de redirección, significa que la orden cat recibe un argumento (mifichero), abre el fichero por sí misma, y muestra su contenido.
Sin embargo, hay una razón para esta doble funcionalidad. Por ejemplo, usted puede conectar la salida estándar de una orden a la entrada estándar de otra. A esto se le denomina tubería (pipe), y utiliza el operador de tubería (pipe operator)12.1, |.
Quizá desee leer la Licencia Pública General de GNU al revés. Para hacer esto, utilice la orden tac (es cat, sólo que al revés). Pruébelo:
De esta manera se pueden encadenar todas las órdenes que desee. Supongamos que le embargue un irracional deseo de sustituir cada G por una Q. Para esto se utiliza la orden tr G Q, de la siguiente manera: