15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar
10.11.2023

El comando `less` en Linux: Guía completa con sintaxis, opciones y uso en el mundo real

El comando less en Linux es una utilidad de paginación basada en terminal que permite ver el contenido de archivos de texto y la salida de comandos de forma interactiva, sin cargar el archivo completo en memoria. A diferencia de los editores de texto como Vim o Nano, less abre los archivos en una vista paginada de solo lectura, convirtiéndolo en la herramienta predilecta para inspeccionar archivos de registro grandes, archivos de configuración y flujos de salida de comandos en cualquier sistema tipo Unix.

Para una respuesta rápida: less filename abre cualquier archivo de texto en un visor interactivo con desplazamiento. Puede navegar hacia adelante y hacia atrás, buscar patrones y salir limpiamente, todo sin modificar el archivo.

Por qué less es importante para los administradores de sistemas

Al gestionar un servidor Linux, habitualmente se trabaja con archivos de miles de líneas: registros de aplicaciones, mensajes del kernel, registros de acceso de Apache o Nginx, volcados de configuración y más. Abrirlos en un editor completo es ineficiente y conlleva el riesgo de modificaciones accidentales. El paginador less carga el contenido bajo demanda, lo que significa que solo lee la parte del archivo que se muestra en ese momento. Esto lo hace excepcionalmente eficiente para archivos de varios gigabytes.

Este comportamiento es fundamentalmente diferente al de comandos como cat, que vuelca todo el archivo a la salida estándar de una vez, o head/tail, que muestran solo una parte fija. less le otorga control interactivo total sobre la navegación sin ninguna sobrecarga de memoria proporcional al tamaño del archivo.

Si gestiona un entorno de VPS Hosting o un Servidor Dedicado, less será una de las herramientas de diagnóstico más utilizadas en su flujo de trabajo diario, especialmente al revisar /var/log/syslog, /var/log/auth.log o directorios de registros específicos de aplicaciones.

less vs. more: Una comparación técnica

El comando more es anterior a less y es su predecesor conceptual. Aunque ambos son paginadores, sus capacidades difieren significativamente. El nombre "less" es un chiste deliberado de Unix: *less is more than more*.

Característicalessmore
Desplazamiento hacia adelante
Desplazamiento hacia atrásNo
Navegación con teclas de flechaLimitada
Búsqueda hacia adelante (/pattern)
Búsqueda hacia atrás (?pattern)No
Saltar a número de líneaNo
Porcentaje del archivo leídoNo
Soporte de tuberías
Abrir múltiples archivosNo
Uso de memoria para archivos grandesConstante (bajo demanda)Mayor
Disponible en sistemas mínimosA veces no preinstaladoCasi siempre presente

La conclusión práctica: use more solo cuando less no esté disponible, como en imágenes de contenedor extremadamente reducidas o sistemas embebidos heredados. En todos los demás contextos, less es estrictamente superior.

Sintaxis básica

less [OPTIONS] filename

También puede canalizar la salida directamente hacia less:

command | less

Ejemplos:

less /var/log/syslog
grep "error" /var/log/nginx/access.log | less
dmesg | less
cat /etc/nginx/nginx.conf | less

El patrón de tubería es especialmente potente. Cualquier comando que produzca salida detallada — ps aux, netstat -tulnp, find / -name "*.conf" — se vuelve manejable cuando se canaliza hacia less.

Atajos de teclado de navegación predeterminados

Una vez dentro de less, los siguientes atajos de teclado controlan la navegación. No son opciones opcionales, sino comandos interactivos que se escriben mientras el archivo está abierto.

TeclaAcción
Space o fDesplazarse hacia adelante una pantalla completa
bDesplazarse hacia atrás una pantalla completa
Down arrow o jDesplazarse hacia adelante una línea
Up arrow o kDesplazarse hacia atrás una línea
dDesplazarse hacia adelante media pantalla
uDesplazarse hacia atrás media pantalla
gSaltar al inicio del archivo
GSaltar al final del archivo
nG o ngSaltar al número de línea n
/patternBuscar hacia adelante un patrón
?patternBuscar hacia atrás un patrón
nRepetir la última búsqueda en la misma dirección
NRepetir la última búsqueda en dirección opuesta
qSalir de less
hMostrar pantalla de ayuda
FModo seguimiento — como tail -f, transmite nuevo contenido

La tecla F (modo seguimiento) merece atención especial. Convierte less en un monitor de registros en vivo, equivalente a tail -f, pero con la capacidad adicional de presionar Ctrl+C para dejar de seguir y luego navegar hacia atrás por el contenido ya cargado. Esto es algo que tail -f no puede hacer.

Referencia de opciones de línea de comandos

Estas opciones se pasan al invocar less desde la línea de comandos, modificando su comportamiento antes de que se abra el archivo.

OpciónDescripción
-NMostrar números de línea en el margen izquierdo
-nSuprimir números de línea (predeterminado en algunos sistemas)
-iBúsqueda sin distinción de mayúsculas/minúsculas (ignora mayúsculas y minúsculas)
-IBúsqueda sin distinción de mayúsculas/minúsculas, incluso para el propio patrón
-SCortar líneas largas en lugar de ajustarlas (útil para archivos CSV o de registro anchos)
-p patternAbrir el archivo y saltar directamente a la primera aparición del patrón especificado
-cRepintar la pantalla desde arriba en lugar de desplazarse (reduce el parpadeo en terminales lentas)
-gResaltar solo la cadena encontrada por la búsqueda más reciente, no todas las coincidencias
-GDeshabilitar completamente el resaltado de resultados de búsqueda
-FSalir automáticamente si el archivo completo cabe en una pantalla
-XNo limpiar la pantalla cuando less sale (deja el contenido visible en la terminal)
-RRenderizar secuencias de escape de color ANSI (esencial al canalizar salida con color)
-eSalir automáticamente al segundo fin de archivo
+nComenzar en el número de línea n
+/patternComenzar en la primera aparición de pattern (sintaxis alternativa a -p)
-mMostrar el porcentaje del archivo leído en el indicador (como more)
-MMostrar un indicador más detallado que incluye números de línea y porcentaje

Combinaciones prácticas de opciones

Ver un archivo de registro con números de línea, búsqueda sin distinción de mayúsculas/minúsculas y sin ajuste de línea:

less -NiS /var/log/apache2/error.log

Abrir un archivo y saltar directamente a la primera aparición de "segfault":

less -p "segfault" /var/log/kern.log

Canalizar salida de comando con color y preservar los colores:

grep --color=always "FAILED" /var/log/auth.log | less -R

Abrir un archivo y salir inmediatamente si cabe en una pantalla:

less -F /etc/hosts

Búsqueda dentro de less: Técnicas avanzadas

La funcionalidad de búsqueda en less admite expresiones regulares, no solo cadenas literales. Esta es una distinción crítica que muchos usuarios pasan por alto.

/error|warning|critical

Este patrón coincide con cualquier línea que contenga "error", "warning" o "critical", usando la sintaxis estándar de expresiones regulares extendidas POSIX. Combinado con -i para insensibilidad a mayúsculas/minúsculas, se convierte en una potente herramienta de análisis de registros en línea sin necesitar grep como preprocesador.

Búsqueda en múltiples archivos:

less file1.log file2.log file3.log

Use :n para pasar al siguiente archivo y :p para volver al anterior. La búsqueda /pattern se aplica solo dentro del archivo actual, pero puede repetirla en otros archivos manualmente.

Trabajo con múltiples archivos y tuberías con nombre

less puede abrir múltiples archivos en secuencia:

less /var/log/syslog /var/log/kern.log /var/log/auth.log

También funciona correctamente con tuberías con nombre (FIFOs) y sustitución de procesos, lo que es útil en scripts de shell avanzados:

less <(journalctl -u nginx --since "1 hour ago")

Esto abre la salida de journalctl como si fuera un archivo, con desplazamiento hacia atrás completo, algo que una tubería simple no admite para la navegación hacia atrás en todos los entornos de shell.

Casos límite del mundo real y problemas comunes

Archivos binarios: Ejecutar less en un archivo binario (ejecutables compilados, archivos comprimidos) mostrará caracteres ilegibles y puede generar una advertencia. Use less -f para forzar su apertura, pero la salida será en gran medida ilegible. Para la inspección binaria, xxd o hexdump es la herramienta correcta.

Líneas muy anchas: Los archivos de registro generados por ciertos frameworks de Java o aplicaciones con mucho JSON suelen contener líneas individuales extremadamente largas. Sin -S, less ajusta estas líneas, dificultando su lectura. La opción -S habilita el desplazamiento horizontal con las teclas de flecha, lo que resulta mucho más práctico.

Archivos comprimidos: En sistemas con lesspipe configurado (común en Debian/Ubuntu), less puede abrir de forma transparente archivos .gz, .bz2, .zip y otros formatos comprimidos. Verifique si está habilitado con echo $LESSOPEN. Si no está configurado, use zless (un script envolvente) para archivos comprimidos con gzip.

Salida con color perdida en tuberías: Al canalizar la salida de herramientas como grep --color, ls --color o diff, los códigos de color son secuencias de escape ANSI. Sin -R, less las muestra como caracteres de escape sin procesar. Siempre use less -R al canalizar salida con color.

LESSOPEN y LESSCLOSE: Estas variables de entorno definen scripts de preprocesador y postprocesador que less ejecuta en los archivos antes de mostrarlos. En un sistema correctamente configurado, esto permite que less muestre de forma transparente el contenido de archivos comprimidos, PDFs e incluso imágenes (como arte ASCII). Esta es una función infrautilizada con una utilidad de diagnóstico significativa.

Configuración persistente de less con la variable de entorno LESS

En lugar de escribir opciones cada vez, puede establecer opciones predeterminadas mediante la variable de entorno LESS en su perfil de shell (~/.bashrc o ~/.zshrc):

export LESS="-NiRMS"

Esto aplica -N (números de línea), -i (búsqueda sin distinción de mayúsculas/minúsculas), -R (renderizado de color), -M (indicador detallado) y -S (sin ajuste de línea) a cada invocación de less automáticamente. Esta es una práctica estándar en servidores de producción donde el análisis de registros es frecuente.

Uso de less en scripts de shell y automatización

Aunque less es principalmente interactivo, se integra limpiamente en scripts administrativos. Un patrón común es invocarlo condicionalmente solo cuando se ejecuta en una terminal interactiva:

if [ -t 1 ]; then
    some_command | less -R
else
    some_command
fi

La prueba -t 1 verifica si la salida estándar está conectada a una terminal. Esto evita que less bloquee tuberías no interactivas o trabajos cron.

less en el contexto de la administración de servidores

En un VPS con cPanel o cualquier entorno gestionado por panel de control, less sigue siendo indispensable para la administración basada en SSH incluso cuando hay una interfaz gráfica disponible. Los paneles de control exponen vistas de registros limitadas; el acceso directo por SSH con less le brinda visibilidad sin filtros y en tiempo real del comportamiento del sistema.

Al aprovisionar Servidores Dedicados para aplicaciones de alto tráfico, los flujos de trabajo de análisis de registros estructurados construidos alrededor de less, grep, awk y sed forman la columna vertebral de la respuesta a incidentes. Saber cómo navegar eficientemente por un registro de acceso de 2 GB sin cargarlo en memoria es una habilidad fundamental de administración de sistemas.

Para equipos que gestionan infraestructura de Email Hosting, less es la herramienta estándar para inspeccionar registros de correo de Postfix (/var/log/mail.log) y registros de autenticación de Dovecot, donde la navegación hacia atrás línea por línea es esencial para rastrear fallos de entrega.

Matriz de decisión de referencia rápida

Use esta matriz para decidir qué herramienta utilizar al ver el contenido de un archivo:

EscenarioHerramienta recomendada
Ver un archivo de registro grande de forma interactivaless -NiS
Monitorear un archivo de registro en tiempo realless +F o tail -f
Ver solo las últimas N líneastail -n N
Ver solo las primeras N líneashead -n N
Buscar y filtrar sin interaccióngrep
Ver un archivo .gz comprimidozless o less con lesspipe
Inspeccionar contenido binario/hexadecimalxxd o hexdump
Ver con resaltado de sintaxisbat (paginador de terceros)
Volcado rápido de archivo pequeñocat
Sistema mínimo, less no disponiblemore

Conclusiones técnicas clave

  • less carga el contenido del archivo bajo demanda: el uso de memoria no escala con el tamaño del archivo, lo que lo hace seguro para archivos de varios gigabytes.
  • La opción -R es obligatoria al canalizar salida con color; omitirla produce secuencias de escape ilegibles.
  • El modo seguimiento (tecla F) proporciona la funcionalidad de tail -f con la capacidad adicional de desplazarse hacia atrás por el contenido almacenado en búfer.
  • Las expresiones regulares son compatibles de forma nativa en los patrones de búsqueda: no es necesario prefiltrar con grep para la coincidencia de patrones.
  • Establezca export LESS="-NiRMS" en su perfil de shell para aplicar valores predeterminados razonables de forma global.
  • Use less <(command) con sustitución de procesos para una navegación interactiva completa de la salida de comandos, incluido el desplazamiento hacia atrás.
  • La variable LESSOPEN habilita la descompresión transparente y la conversión de formatos: verifique que esté configurada en sus servidores.
  • Nunca use cat en archivos grandes cuando less esté disponible; satura el búfer de la terminal y no proporciona capacidad de navegación.

Preguntas frecuentes

¿Cuál es la diferencia entre less y cat en Linux?

cat envía todo el contenido del archivo a la salida estándar de una vez, sin interactividad ni paginación. less abre el archivo en un paginador interactivo donde puede desplazarse, buscar y navegar. Para cualquier archivo más largo que la altura de su terminal, less es la herramienta correcta.

¿Puede less editar archivos?

No. less es estrictamente un visor de solo lectura. No modifica archivos bajo ninguna circunstancia. Para editar, use vim, nano u otro editor de texto.

¿Cómo busco una palabra en less?

Mientras el archivo está abierto en less, escriba /word y presione Enter para buscar hacia adelante. Use ?word para buscar hacia atrás. Presione n para saltar a la siguiente coincidencia y N para ir a la anterior. Las búsquedas admiten expresiones regulares.

¿Por qué less muestra caracteres ilegibles cuando canalizo salida con color?

Las secuencias de escape de color ANSI no se renderizan de forma predeterminada. Pase la opción -R — ya sea como less -R o estableciendo export LESS="-R" en su perfil de shell — para renderizar los colores correctamente.

¿Está less disponible en todas las distribuciones de Linux?

less está incluido de forma predeterminada en prácticamente todas las principales distribuciones de Linux, incluyendo Debian, Ubuntu, CentOS, RHEL, Fedora y Arch Linux. En imágenes base mínimas de Docker o Alpine Linux, puede necesitar instalarse explícitamente con apk add less o el comando equivalente del gestor de paquetes.

15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar