GNU/Linux >> Tutoriales Linux >  >> Linux

Uso avanzado del visor de archivos de menos texto en Linux

Hace poco leí el artículo de Scott Nesbitt "Usando less para ver archivos de texto en la línea de comandos de Linux" y me inspiré para compartir consejos y trucos adicionales que uso con less. .

MENOS var env

Si tiene una variable de entorno LESS definido (por ejemplo, en su .bashrc ), less lo trata como una lista de opciones, como si se pasara en la línea de comando.

Yo uso esto:

LESS='-C -M -I -j 10 -# 4'

Estos significan:

  • -C – Haga que las reimpresiones a pantalla completa sean más rápidas al no desplazarse desde la parte inferior.
  • -M – Mostrar más información de la última línea (estado). Puede personalizar la información que se muestra con -PM , pero normalmente no me molesto.
  • -I – Ignorar mayúsculas y minúsculas (superior/inferior) en las búsquedas.
  • -j 10 – Mostrar resultados de búsqueda en la línea 10 del terminal, en lugar de la primera línea. De esta manera tienes 10 líneas de contexto cada vez que presionas n (o N ) para saltar a la siguiente (o anterior) coincidencia.
  • -# 4 – Salta cuatro caracteres hacia la derecha o hacia la izquierda al presionar la tecla de flecha derecha o izquierda. El valor predeterminado es saltar la mitad de la pantalla, lo que generalmente me parece demasiado. En términos generales, less parece estar (al menos parcialmente) optimizado para el entorno en el que se desarrolló inicialmente, con módems lentos y conexiones a Internet de bajo ancho de banda, cuando tenía sentido saltar media pantalla.

PAGER env var

Muchos programas muestran información usando el comando establecido en el PAGER variable de entorno (si está configurada). Entonces, puede configurar PAGER=less en tu .bashrc y haz que tu programa se ejecute less . Consulte la página del manual environ(7) (man 7 environ ) para otras variables similares.

-S

Programación y desarrollo

  • Blog de desarrolladores de Red Hat
  • Hojas de trucos de programación
  • Pruébelo gratis:Red Hat Learning Subscription
  • eBook:Una introducción a la programación con Bash
  • Hoja de referencia de secuencias de comandos de Bash Shell
  • Libro electrónico:Modernización de Enterprise Java

La opción de línea de comandos -S dice less para cortar líneas largas en lugar de envolverlas. Rara vez encuentro una necesidad de esto a menos (y hasta) que haya comenzado a ver un archivo. Afortunadamente, puede escribir todas las opciones de la línea de comandos dentro de less como si fueran comandos de teclado. Entonces, si quiero cortar líneas largas mientras ya estoy en un archivo, simplemente puedo escribir -S .

Aquí hay un ejemplo que uso mucho:

    su - postgres
    export PAGER=less  # Because I didn't bother editing postgres' .bashrc on all the machines I use it on
    psql

A veces, cuando más tarde veo el resultado de un SELECT comando con una salida muy amplia, escribo -S por lo que se formateará muy bien. Si salta demasiado cuando presiono la flecha derecha para ver más (porque no configuré -# ), puedo escribir -#8 , luego, cada vez que presione la flecha hacia la derecha, se moverán ocho caracteres hacia la derecha.

A veces, después de escribir -S demasiadas veces, salgo de psql y lo vuelvo a ejecutar después de ingresar:

export LESS=-S

F

El comando F hace less funciona como tail -f —esperar hasta que se agreguen más datos al archivo antes de mostrarlo. Una ventaja que tiene sobre tail -f es que resaltar las coincidencias de búsqueda todavía funciona. Entonces puede ingresar less /var/log/logfile , busca algo, lo que resaltará todas las apariciones (a menos que hayas usado -g )—y luego presione F . Cuando se escriben más datos en el registro, less lo mostrará y resaltará las nuevas coincidencias.

Después de presionar F , puede presionar Ctrl+C para evitar que busque nuevos datos (esto no lo matará); volver al archivo para ver cosas más antiguas, buscar otras cosas, etc.; y luego presione F de nuevo para ver más datos nuevos.

Buscando

Las búsquedas usan la biblioteca de expresiones regulares del sistema, y ​​esto generalmente significa que puede usar expresiones regulares extendidas. En particular, buscando one|two|three encontrará y resaltará todas las apariciones de uno, dos o tres.

Otro patrón que uso mucho, especialmente con líneas de registro anchas (por ejemplo, aquellas que abarcan más de una línea terminal), es .*something.* , que destaca toda la línea. Este patrón hace que sea mucho más fácil ver dónde comienza y termina una línea. También los combino, como:.*one thing.*|.*another thing.* , o tecla key: .*|.*marker.* para ver el contenido de key (por ejemplo, en un archivo de registro con un volcado de algún diccionario/hash) y resalte las líneas de marcador relevantes (para tener un contexto), o incluso, si sé que el valor está entre comillas:

key: '[^']*'|.*marker.*

less mantiene un historial de sus elementos de búsqueda y los guarda en el disco para invocaciones futuras. Cuando presionas / (o ? ), puede recorrer este historial con la flecha hacia arriba o hacia abajo (así como realizar una edición de línea básica).

Me topé con lo que parece ser una función muy útil al hojear less página del manual mientras escribe este artículo:omitir líneas poco interesantes con &!pattern . Por ejemplo, al buscar algo en /var/log/messages , solía iterar a través de esta lista de comandos:

    cat /var/log/messages | egrep -v 'systemd: Started Session' | less
    cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session' | less
    cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session|User Slice' | less
    cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session|User Slice|dbus' | less
    cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session|User Slice|dbus|PackageKit Daemon' | less

Pero ahora sé cómo hacer lo mismo dentro de less . Por ejemplo, puedo escribir &!systemd: Started Session , luego decido que quiero deshacerme de systemd: Starting Session , así que lo agrego escribiendo &! y use la flecha hacia arriba para obtener la búsqueda anterior del historial. Luego escribo |systemd: Starting Session y presiona Enter , sigo agregando más elementos de la misma manera hasta que filtre lo suficiente para ver las cosas más interesantes.

=

El comando = muestra más información sobre el archivo y la ubicación, incluso más que -M . Si el archivo es muy largo, y calculando = tarda demasiado, puede pulsar Ctrl+C y dejará de intentarlo.

Si el contenido que está viendo proviene de una canalización en lugar de un archivo, = (y -M ) no mostrará lo que no sabe, incluido el número de líneas y bytes del archivo. Para ver esos datos, si conoce ese command terminará rápidamente, puedes saltar hasta el final con G y luego less comenzará a mostrar esa información.

Si presionas G y el comando que se escribe en la tubería tarda más de lo esperado, puede presionar Ctrl+C , y el comando será eliminado. Presionando Ctrl+C lo matará incluso si no presionaste G , así que tenga cuidado de no presionar Ctrl+C accidentalmente si no tienes la intención de matarlo. Por esta razón, si el comando hace algo (es decir, no solo muestra información), generalmente es más seguro escribir su salida en un archivo y ver el archivo en una terminal separada, en lugar de usar una canalización.

Por qué necesitas menos

less es un programa muy potente y, al contrario de los competidores más nuevos en este espacio, como most y moar , es probable que lo encuentre en casi todos los sistemas que usa, al igual que vi . Por lo tanto, incluso si usa visores o editores de GUI, vale la pena invertir algo de tiempo en less página de manual, al menos para tener una idea de lo que está disponible. De esta manera, cuando necesite hacer algo que podría estar cubierto por la funcionalidad existente, sabrá buscar en la página del manual o en Internet para encontrar lo que necesita.

Para obtener más información, visite la página de inicio menos. El sitio tiene preguntas frecuentes con más consejos y trucos.


Linux
  1. 6 metacaracteres de Linux que me encanta usar en la línea de comandos

  2. Aprende a usar el editor de texto Sed

  3. Cómo usar el comando Tar en Linux

  4. Crear archivos usando la línea de comando en Linux

  5. menos (linux) get/go-to X offset en el archivo

Cómo usar Nano, el editor de texto de línea de comandos de Linux

Ver el contenido de un archivo en la línea de comandos de Linux

Cómo agregar texto al comienzo del archivo en Linux

9 formas simples de usar menos comandos en Linux de manera efectiva

5 comandos para ver el contenido de un archivo en la línea de comandos de Linux

¿Cómo usar el comando Gzip en Linux?