Visualización, comparación y análisis de archivos en Linux

Objetivo:

Aprender a manipular y analizar archivos de texto y binarios en Linux, controlando visualización, comparativa y estadísticas, habilidades fundamentales para el trabajo en sistemas y la automatización (scripting).

Escenario:

  • Herramientas: Terminal de Linux.
  • Conceptos clave: Flujos de texto, metadatos, comparativas de archivos y conteo de recursos.

Instrucciones:

Fase 1: Visualización selectiva (head y tail):

  • Ver las primeras 3 líneas de un archivo:
  • head -n 3 archivo.txt
  • Ver las últimas 3 líneas de un archivo:
  • tail -n 3 archivo.txt

Fase 2: Identificación de archivos (file):

  • Obtener detalles técnicos sobre el tipo de archivo (útil para distinguir entre binarios, texto, audio, etc.):
  • file nombre_archivo

Fase 3: Comparación de archivos (diff):

  • Detectar diferencias línea a línea entre dos archivos de texto:
  • diff archivo1.txt archivo2.txt

Fase 4: Estadísticas de archivos (wc - Word Count):

  • Contar líneas, palabras y bytes de un archivo:
  • wc archivo.txt

Verificación:

  • Crea dos archivos similares pero con una diferencia sutil; usa diff para comprobar si el sistema detecta correctamente la línea modificada.
  • Usa wc para confirmar el tamaño de un script que hayas creado y compara los resultados con lo que muestra el gestor de archivos visual.

Preguntas de reflexión:

  1. ¿Por qué es más eficiente usar head o tail en lugar de abrir un archivo entero de registro (log) con cat?
  2. ¿Qué información nos proporciona el comando file que no podemos obtener simplemente viendo la extensión del archivo (ej. .txt)?
  3. ¿En qué casos prácticos sería mejor utilizar diff en lugar de intentar comparar manualmente dos archivos de configuración?
  4. Si necesitas saber cuántas veces aparece un comando específico en tu historial, ¿cómo podrías combinar history, grep y wc?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Por qué es más eficiente usar head o tail en lugar de abrir un archivo entero de registro (log) con cat?

Los archivos de log pueden tener gigabytes de tamaño. Abrirlos enteros con cat saturaría la terminal y la memoria, mientras que head/tail solo leen una pequeña porción necesaria.


2. ¿Qué información nos proporciona el comando file que no podemos obtener simplemente viendo la extensión del archivo (ej. .txt)?

En Linux, la extensión es solo parte del nombre. El comando file analiza el contenido real (los "números mágicos" o cabeceras), lo que permite saber si un archivo es realmente un PDF, un script de Bash o un binario compilado, independientemente de cómo se llame.


3. ¿En qué casos prácticos sería mejor utilizar diff en lugar de intentar comparar manualmente dos archivos de configuración?

Es indispensable para auditorías de sistemas, permitiendo ver qué cambió en un archivo de configuración (ej. /etc/ssh/sshd_config) tras una actualización o una modificación manual sin riesgo de error humano.


4. Si necesitas saber cuántas veces aparece un comando específico en tu historial, ¿cómo podrías combinar history, grep y wc?

Podrías ejecutar: history | grep "comando" | wc -l. Esto lista el historial, filtra la palabra clave y cuenta cuántas líneas resultantes existen, dándote el número exacto de ejecuciones.


Ficha de Laboratorio: Visualización, Comparación y Análisis de Ficheros 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. Crea dos archivos de texto con pequeñas diferencias en su contenido y utiliza una herramienta para comparar ambos ficheros línea por línea mostrando los cambios.
    Escribe el comando:

    Copia aquí la salida obtenida en el terminal:

    Explica el significado de la salida:
  2. Utiliza una utilidad de ordenación para reorganizar alfabéticamente o numéricamente las líneas de un archivo de texto de prueba.
    Escribe el comando:

    Copia aquí la salida obtenida en el terminal:

    Explica el significado de la salida:
  3. Emplea un comando para detectar y eliminar o filtrar las líneas duplicadas consecutivas dentro de un fichero de texto.
    Escribe el comando:

    Copia aquí la salida obtenida en el terminal:

    Explica el significado de la salida:
  4. Analiza las métricas básicas de un archivo contando de forma exacta su número total de líneas, palabras y caracteres.
    Escribe el comando:

    Copia aquí la salida obtenida en el terminal:

    Explica el significado de la salida: