Manual introductorio Universitat Oberta de Catalunya
GNU/Linux Manual introductorio

Entrada y salida estándar

gmmd

Dispositivos de entrada/salida

Para que un usuario pueda comunicarse con el ordenador es necesario disponer de algún dispositivo de entrada que permita introducir órdenes. Asimismo, para que el usuario pueda aprovechar los resultados de las órdenes que ha introducido, necesita que dichos resultados se le muestren de alguna manera.

Estos canales de comunicación se denominan dispositivos de entrada/salida. En Linux los dispositivos por defecto son los denominados entrada estándar y salida estándar. Si  un programa lee de la entrada estándar estará obteniendo datos desde el teclado. Cuando escribe algún resultado a la salida estándar, lo estará haciendo a la pantalla.

Ciertos comandos no utilizan la entrada estándar (teclado) para recibir la información que necesitan para ejecutarse, sino que la reciben como argumento directamente.

El  interés del concepto de entrada/salida estándar estriba en que todos los dispositivos son tratados como si fueran ficheros. Por esta razón, a los programas no les importa si están leyendo de un teclado o de un fichero ni tampoco si están escribiendo en la pantalla o, de nuevo, en un fichero.

El comando cat

Para ilustrar la noción de entrada/salida estándar, vamos a introducir un comando denominado cat. Este comando toma la información que se le proporciona de entrada, la une y la vuelve a dar como salida.

Por ejemplo, si tecleamos lo siguiente

cat

el sistema quedará aparentemente en espera mostrando una línea en blanco. Si tecleamos una frase y pulsamos Intro, vemos que cat muestra la misma frase por pantalla. Pulsando CTRL-D podemos finalizar la ejecución.

cat
Muestra esta frase
Muestra esta frase

Este ejemplo constituye una demostración del uso de la entrada/salida estándar. La línea en blanco es la forma de indicar que cat está esperando algo del teclado (entrada estándar). Cuando lo tiene, realiza su función que es mostrarlo por pantalla (salida estándar).