Entrada y salida de comandos en Linux

entrada-y-salida-de-comandos-en-linux
entrada-y-salida-de-comandos-en-linux

En este post veremos la entrada y salida de comandos en Linux. Cuando ejecutas un comando en Linux, no solo estás lanzando un programa: estás iniciando un flujo de datos. Cada comando recibe información, la procesa y devuelve un resultado. Entender cómo funciona este intercambio es clave para dominar la terminal y aprovechar todo su potencial.

Linux gestiona este proceso mediante tres canales básicos llamados entrada y salida estándar.

En Linux, todo programa que se ejecuta en la terminal dispone de tres flujos de datos predefinidos:

FlujoNombreDescripción
stdinEntrada estándarDatos que recibe el comando
stdoutSalida estándarResultado normal del comando
stderrSalida de errorMensajes de error

Estos flujos existen aunque no los veas, y funcionan incluso si no escribes nada explícitamente.

👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis

👉 También te dejo por aquí una guía de comandos Linux por categorías

Descriptores de archivo

Un descriptor de archivo es un número que identifica un canal de comunicación abierto por un proceso. Los comandos no trabajan directamente con “pantalla” o “teclado”, sino con estos descriptores numéricos.

Cada proceso tiene, por defecto, tres descriptores estándar:

  • 0 – stdin → entrada de datos
  • 1 – stdout → salida normal
  • 2 – stderr → salida de errores

Estos descriptores permiten al sistema saber por dónde entra y sale la información, y hacen posible redirigir, combinar o separar datos de forma controlada.

Entrada estándar (stdin – descriptor 0)

La entrada estándar es el canal por el que un comando recibe datos.
Por defecto, estos datos vienen del teclado aunque también puede venir de un archivo o de otro comando.

Ejemplo:

kamilinux@Kamilinux:~$ cat 
Hola Linux
Hola Linux
Estoy aprendiendo stdin
Estoy aprendiendo stdin
Control + D

Lo que ocurre:

  • cat espera datos por stdin (descriptor 0).
  • Todo lo que escribes en el teclado entra por stdin.
  • cat lo envía directamente a la salida estándar (stdout) y lo ves en pantalla.(por eso lo duplica)
  • Al pulsar Ctrl + D, señalas el fin de la entrada y el comando termina.

Salida estándar (stdout – descriptor 1)

La salida estándar es el resultado normal de un comando cuando todo funciona correctamente.

Ejemplo:

kamilinux@Kamilinux:~$ ls
Documentos  Descargas  imagen.png  notas.txt

Lo que ocurre:

  • ls envía la lista de archivos por stdout
  • La terminal muestra stdout en pantalla

Salida de error (stderr – descriptor 2)

La salida de error es un canal separado usado solo para errores.

Ejemplo

kamilinux@Kamilinux:~$ ls archivo_que_no_existe
ls: cannot access 'archivo_que_no_existe': No such file or directory

Lo que ocurre:

  • El mensaje no es stdout
  • Se envía por stderr
  • La terminal lo muestra igualmente, pero es un canal distinto

stdout y stderr al mismo tiempo

Un comando puede producir salida normal y errores simultáneamente.

Ejemplo

kamilinux@Kamilinux:~$ ls archivo.txt archivo_inexistente
archivo.txt
ls: cannot access 'archivo_inexistente': No such file or directory

Aquí:

  • archivo.txt → stdout
  • Mensaje de error → stderr

Aunque se muestran juntos en pantalla, internamente son flujos distintos.

Resumen

La entrada y salida estándar en Linux define cómo los comandos reciben datos y cómo devuelven resultados y errores.

  • stdin (0) recibe datos
  • stdout (1) muestra resultados correctos
  • stderr (2) muestra errores

Entender esto es imprescindible antes de aprender:

  • redirecciones
  • pipes
  • automatización con scripts

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *