Redirecciones y pipes (flujo de datos)
🎯 Objetivo del módulo Entender cómo fluye la información entre comandos, cómo guardar resultados, encadenar comandos y gestionar errores.
📌 Idea clave En Linux los comandos leen de entrada estándar y escriben a salida estándar. Nosotros decidimos de dónde viene y a dónde va esa información.
1. Conceptos fundamentales #
Entrada estándar (STDIN) #
Lo que el comando recibe.
Salida estándar (STDOUT) #
Lo que el comando muestra normalmente.
Error estándar (STDERR) #
Mensajes de error.
2. Esquema mental #
[comando] ---> salida
|
└── error
Con redirecciones y pipes podemos controlar ese flujo.
3. Operadores del módulo #
| Operador | Función |
|---|---|
> | redirigir salida (sobrescribe) |
>> | redirigir salida (añade) |
< | redirigir entrada |
| | pipe (encadenar comandos) |
2> | redirigir errores |
&> | redirigir salida + errores |
4. > (redirigir salida) #
Descripción #
Envía la salida de un comando a un archivo sobrescribiéndolo.
Ejemplo #
1ls > listado.txt
✔ Crea listado.txt
✔ Borra el contenido anterior si existía
5. >> (añadir salida) #
Descripción #
Añade la salida al final del archivo.
Ejemplo #
1echo "línea nueva" >> notas.txt
✔ No borra lo anterior
6. < (redirigir entrada) #
Descripción #
Usa un archivo como entrada del comando.
Ejemplo #
1wc -l < archivo.txt
📌 Cuenta líneas sin mostrar el nombre del archivo
7. | (pipe) #
Descripción #
Envía la salida de un comando como entrada de otro.
Regla de oro #
Un comando → procesa texto → otro comando
Ejemplos clave #
1ls | wc -l 2ps aux | grep root 3cat archivo.txt | sort | uniq
Ejemplo real DevOps #
1ps aux | grep nginx | wc -l
8. 2> (redirigir errores) #
Descripción #
Envía los errores a un archivo.
Ejemplo #
1find / -name "*.log" 2> errores.txt
Ignorar errores #
1find / -name "*.log" 2>/dev/null
📌 /dev/null = “agujero negro”
9. &> (todo) #
Descripción #
Redirige salida y errores al mismo archivo.
&> es una extensión de Bash. La forma portable entre shells POSIX es > salida.txt 2>&1.
Ejemplo #
1comando &> salida.txt
10. Equivalente en Windows #
CMD #
1dir > salida.txt 2dir 2> errores.txt 3dir | find "txt"
PowerShell #
1Get-ChildItem | Measure-Object 2Get-Content log.txt | Select-String "error"
📌 PowerShell trabaja con objetos, no solo texto.
11. Combinaciones reales MUY importantes #
Guardar resultados #
1grep error log.txt > errores.txt
Añadir logs #
1echo "nuevo evento" >> eventos.log
Filtrar información #
1cat usuarios.txt | sort | uniq | wc -l
Debugging #
1comando 2>/dev/null
12. Errores comunes #
- ❌ Usar
>cuando querías>> - ❌ Olvidar redirigir errores
- ❌ Pensar que
|copia archivos - ❌ No entender qué entra y qué sale
13. Buenas prácticas #
- ✔ Piensa en flujos de datos
- ✔ Divide problemas en comandos pequeños
- ✔ Usa pipes
- ✔ Redirige errores conscientemente
Resumen del tema
Conceptos clave #
- Flujos Estándar (Standard Streams):
stdin(0 - entrada),stdout(1 - salida estándar),stderr(2 - error estándar). - Redirecciones de Salida:
>: sobrescribe el archivo de destino con la salida estándar.>>: añade (append) al final del archivo sin sobrescribir.2>: redirige exclusivamente los mensajes de error (2> /dev/nullsilencia errores).&>/2>&1: redirige simultáneamente salida estándar y errores.
- Redirección de Entrada (
<): alimenta un comando con el contenido de un archivo como si se tecleara enstdin. - Tuberías (Pipes
|): conecta la salida estándar de un comando con la entrada estándar del siguiente para procesamiento en cadena.
Qué debes recordar #
Usa > para crear/sobrescribir archivos, >> para añadir registros a logs, y | para concatenar herramientas simples en flujos de procesamiento complejos.