-->

Buscar texto en ficheros y directorios en el terminal de Linux

Objetivo:

Aprender a realizar búsquedas de texto y patrones dentro de archivos y directorios utilizando el comando grep, una herramienta esencial para la administración de sistemas Linux.

Escenario:

  • Herramientas: Terminal de Linux.
  • Conceptos clave: Búsqueda de patrones (regex básicos), comodines (*), redirección de búsqueda y manejo de errores en terminal.

Instrucciones:

Fase 1: Búsqueda básica en archivos:

  • Localizar un patrón específico dentro de un archivo de texto:
  • grep "patata" comida.txt

Fase 2: Búsqueda recursiva y global:

  • Buscar un patrón en todos los archivos del directorio actual usando un comodín:
  • grep "patata" *

Fase 3: Filtrado de errores y optimización:

  • Realizar la búsqueda silenciando los mensajes de error (útil en directorios con muchos permisos denegados o subdirectorios):
  • grep -s "patata" *

Fase 4: Ejemplo práctico en logs del sistema:

  • Buscar la palabra "error" en todos los archivos con extensión .log dentro de una carpeta de logs:
  • grep -s "error" *.log

Verificación:

  • Observa cómo grep resalta en color el patrón encontrado.
  • Verifica la diferencia en la salida del terminal al utilizar la opción -s frente a una ejecución normal donde se encuentran directorios inaccesibles.

Preguntas de reflexión:

  1. ¿Por qué es tan potente el uso del asterisco (*) junto al comando grep?
  2. ¿Qué utilidad real tiene la opción -s (silent) en un entorno de servidores donde los logs pueden ser muy extensos?
  3. ¿Qué diferencia existe entre buscar en un archivo específico y buscar en todos los archivos de un directorio?
  4. ¿Por qué grep es una herramienta imprescindible para un administrador de sistemas?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Por qué es tan potente el uso del asterisco (*) junto al comando grep?

El asterisco actúa como comodín ("todo"), permitiendo que grep extienda su búsqueda a todos los archivos y subdirectorios presentes en la ruta, en lugar de limitarse a un solo archivo.


2. ¿Qué utilidad tiene la opción -s (silent) en un entorno de servidores donde los logs pueden ser muy extensos?

Permite ignorar mensajes de error molestos (como "permiso denegado" o "es un directorio"), lo que ayuda a que el usuario se enfoque únicamente en los resultados de la búsqueda que realmente importan.


3. ¿Qué diferencia existe entre buscar en un archivo específico y buscar en todos los archivos de un directorio?

Buscar en un archivo es preciso y rápido si conoces dónde está la información. Buscar en un directorio (con *) es una técnica de descubrimiento útil cuando no sabes qué archivo específico contiene el dato o error que estás buscando.


4. ¿Por qué grep es una herramienta imprescindible para un administrador de sistemas?

Porque permite encontrar información crítica (como errores, nombres de usuario o configuraciones) entre gigabytes de datos en archivos de registro (logs) de forma instantánea, algo imposible de hacer manualmente.


Ficha de Laboratorio: Buscar Texto en Ficheros y Directorios en Linux

Instrucciones de entrega:

  1. Rellena los campos y responde en este formulario desde tu navegador.
  2. Pulsa el botón de imprimir al final de la página.
  3. Selecciona "Guardar como PDF" en el diálogo de impresión.
  4. Entrega el archivo PDF en el aula virtual.

Alumno/a:      Fecha:      Grupo:


Completa la ficha respondiendo a las siguientes preguntas:

  1. Busca un texto o patrón específico dentro de un archivo de texto utilizando el comando básico de búsqueda por patrones.
    Escribe el comando:

    Copia aquí la salida obtenida en el terminal:

    Explica el significado de la salida:
  2. Realiza una búsqueda de texto ignorando las mayúsculas y minúsculas en el archivo.
    Escribe el comando:

    Copia aquí la salida obtenida en el terminal:

    Explica el significado de la salida:
  3. Busca un patrón de forma recursiva en todos los archivos de un directorio y sus subcarpetas mostrando los números de línea.
    Escribe el comando:

    Copia aquí la salida obtenida en el terminal:

    Explica el significado de la salida:
  4. Localiza ficheros o directorios dentro del sistema utilizando criterios de nombre o extensión de manera global.
    Escribe el comando:

    Copia aquí la salida obtenida en el terminal:

    Explica el significado de la salida: