Saltar al contenido principal

4. Redirección y Tuberías

Redirección de Salida y Entrada

  • Redirección de salida estándar (> y >>)

    • >: Sobrescribe el contenido de un archivo con la salida de un comando.
      • Ejemplo:
        echo "Hola Mundo" > salida.txt
    • >>: Añade la salida de un comando al final de un archivo, sin sobrescribir el contenido existente.
      • Ejemplo:
        echo "Otra línea" >> salida.txt
  • Redirección de entrada estándar (<)

    • <: Utiliza el contenido de un archivo como entrada para un comando.
      • Ejemplo:
        sort < archivo.txt

Redirección de Errores

  • Redirección de errores estándar (2> y 2>>)

    • 2>: Redirige los mensajes de error a un archivo.
      • Ejemplo:
        ls archivo_inexistente 2> errores.txt
    • 2>>: Añade los mensajes de error al final de un archivo.
      • Ejemplo:
        ls otro_archivo_inexistente 2>> errores.txt
  • Redirección de salida y errores estándar

    • &> o >&: Redirige tanto la salida estándar como los errores estándar a un archivo.
      • Ejemplo:
        comando &> todo.txt

Uso de Tuberías

  • Pipes (|)

    • |: Permite enviar la salida de un comando como entrada a otro comando.
      • Ejemplo:
        ls -l | grep "archivo"
  • Comandos comunes con pipes

    • grep: Busca un patrón en la entrada.
      • Ejemplo:
        cat archivo.txt | grep "patrón"
    • sort: Ordena la entrada.
      • Ejemplo:
        cat archivo.txt | sort
    • uniq: Elimina líneas duplicadas de la entrada.
      • Ejemplo:
        cat archivo.txt | sort | uniq
    • wc: Cuenta líneas, palabras y caracteres en la entrada.
      • Ejemplo:
        cat archivo.txt | wc -l
  • Combinación de redirección y tuberías

    • Redirigir la salida de una tubería a un archivo.
      • Ejemplo:
        ls -l | grep "archivo" > resultado.txt

Ejercicios de Redirección y Tuberías

Ejercicio 1: Redirección de Salida y Entrada

1.1 Redirige la salida del comando ls al archivo contenido.txt.

1.2 Añade una lista de procesos en ejecución al final del archivo contenido.txt.

1.3 Utiliza el archivo contenido.txt como entrada para el comando sort y guarda el resultado en ordenado.txt.

Ejercicio 2: Redirección de Errores

2.1 Redirige los errores del comando ls a un archivo llamado errores.txt.

2.2 Añade los errores generados por el comando ls al final de errores.txt.

Ejercicio 3: Uso de Tuberías

3.1 Usa una tubería para contar el número de líneas en el archivo ordenado.txt.

3.2 Encuentra todas las líneas que contienen la palabra "root" en el archivo /etc/passwd y redirige la salida a usuarios_root.txt.

3.3 Combina grep, sort y uniq para encontrar y contar las líneas únicas en el archivo usuarios_root.txt.

Ejercicio 4: Combinación de Redirección y Tuberías

4.1 Encuentra todos los archivos en el directorio /var/log que contienen la palabra "error" y guarda el resultado en log_errores.txt.

4.2 Cuenta el número de líneas en log_errores.txt que contienen la palabra "failed" y guarda el resultado en conteo_errores.txt.

4.3 Encuentra y guarda en usuarios_ssh.txt todos los usuarios que han iniciado sesión mediante SSH listados en /var/log/auth.log.

Ejercicios con soluciones de Redirección y Tuberías

Ejercicio 1: Redirección de Salida y Entrada

1.1 Redirige la salida del comando ls al archivo contenido.txt.

  • Solución:
    ls > contenido.txt

1.2 Añade una lista de procesos en ejecución al final del archivo contenido.txt.

  • Solución:
    ps >> contenido.txt

1.3 Utiliza el archivo contenido.txt como entrada para el comando sort y guarda el resultado en ordenado.txt.

  • Solución:
    sort < contenido.txt > ordenado.txt

Ejercicio 2: Redirección de Errores

2.1 Redirige los errores del comando ls a un archivo llamado errores.txt.

  • Solución:
    ls archivo_inexistente 2> errores.txt

2.2 Añade los errores generados por el comando ls al final de errores.txt.

  • Solución:
    ls otro_archivo_inexistente 2>> errores.txt

Ejercicio 3: Uso de Tuberías

3.1 Usa una tubería para contar el número de líneas en el archivo ordenado.txt.

  • Solución:
    cat ordenado.txt | wc -l

3.2 Encuentra todas las líneas que contienen la palabra "root" en el archivo /etc/passwd y redirige la salida a usuarios_root.txt.

  • Solución:
    grep "root" /etc/passwd > usuarios_root.txt

3.3 Combina grep, sort y uniq para encontrar y contar las líneas únicas en el archivo usuarios_root.txt.

  • Solución:
    cat usuarios_root.txt | sort | uniq | wc -l

Ejercicio 4: Combinación de Redirección y Tuberías

4.1 Encuentra todos los archivos en el directorio /var/log que contienen la palabra "error" y guarda el resultado en log_errores.txt.

  • Solución:
    grep "error" /var/log/* > log_errores.txt

4.2 Cuenta el número de líneas en log_errores.txt que contienen la palabra "failed" y guarda el resultado en conteo_errores.txt.

  • Solución:
    grep "failed" log_errores.txt | wc -l > conteo_errores.txt

4.3 Encuentra y guarda en usuarios_ssh.txt todos los usuarios que han iniciado sesión mediante SSH listados en /var/log/auth.log.

  • Solución:
    grep "sshd" /var/log/auth.log | grep "Accepted" > usuarios_ssh.txt