Planeta TTY

Paginadores: Uso de more, less y pg

Posted in Archivos/Directorios, Comandos Basicos by Jorgito Capurro on 9 julio 2009

Como la mayoría de los usuarios sabe, un paginador es un programa que comúnmente se conecta mediante un pipe para poder visualizar la salida de otro comando “pagina a pagina” sin perder contenido por el scrolling automatico causado por la terminal, permitiéndonos desplazar de distintas formas por su salida, como así también, buscar cadena de caracteres, mover de una linea a la ves, etc.

Los paginadores mas comunes son (ordenados del mas antiguo al mas nuevo):

  • pg
  • more
  • less

Veamos sus como utilizarlos, sus similitudes y diferencias, y algunas que otras curiosidades..

Supongamos que por determinadas razones, tenemos que listar el contenido de un directorio que contiene muchos archivos. Tomemos como ejemplo, es directorio /usr/bin. Una parte de la posible salida, puede ser como la siguiente:

$ ls -la /usr/bin

-rwxr-xr-x 1 root root 5472 2008-06-02 05:47 zeisstopnm

-rwxr-xr-x 1 root root 62228 2009-04-20 04:13 zenity

-rwxr-xr-x 1 root root 66532 2006-07-10 11:47 zip

-rwxr-xr-x 1 root root 27620 2006-07-10 11:47 zipcloak

-rwxr-xr-x 1 root root 1188 2008-11-12 14:11 zipgrep

-rwxr-xr-x 1 root root 130012 2008-11-12 14:11 zipinfo

-rwxr-xr-x 1 root root 23296 2006-07-10 11:47 zipnote

-rwxr-xr-x 1 root root 27392 2006-07-10 11:47 zipsplit

-rwxr-xr-x 1 root root 57564 2009-03-27 07:21 zjsdecode

-rwxr-xr-x 1 root root 88144 2009-03-19 07:17 zsoelim

Como dije, esta es solo una parte de la salida de todo el comando. Al igual que ocurre aquí, este comando produce una salida que excede el limite de la pantalla, por lo cual si queremos verla toda completa de a poco, pagina por pagina, tendremos que hacer uso de un paginador. En este caso, empezaremos por el paginador pg.

Comando pg

Sintaxis

pg [opciones] [+/patron] [archivo]

El paginador pg básicamente tiene 3 opciones realmente útiles:

  1. Muestra de una pagina en particular
  2. Avance de pagina en pagina
  3. Búsqueda de una cadena de caracteres

Por ejemplo, nos posicionamos en el directorio de ejemplo (usr/bin) y mediante un pipe conectamos la salida del comando ls -al con pg:

$ cd /usr/bin

$ ls -al | pg

Ahora, si apretamos por ejemplo el numero 3 y luego ENTER, nos dirigiremos a la pagina 3. Si apretamos ENTER sin previamente seleccionar el numero de pagina, avanzara una pagina hacia adelante. Por ultimo, si deseamos buscar una cadena de caracteres en particular, apretamos la / (barra invertida) para ingresar en el modo de búsqueda, luego escribimos la cadena a buscar y presionamos ENTER.

Es importante aclarar que el comando pg adminte expresiones regulares en su busqueda, algo que sin duda nos sera de utilidad.

Comando more

Sintaxis

more [opciones] [+/patron] [archivo]

El comando more nos ofrece algunas caracteristicas mas interesantes que pg, puesto que este ultimo es mas antiguo.

A continuación, se detallan las características mas interesantes de more, junto a la tecla de empleo:

  1. Avanzar una Pantalla: ESPACIO
  2. Retroceder una Pantalla: b
  3. Avanzar de a una linea: ENTER
  4. Búsqueda: /
  5. Ayuda: h
  6. Ejecutar un comando: !comando
  7. Visualizar el numero de linea: =
  8. Salir: q

También, tenemos algunas opciones de argumentos útiles. Una que se destaca por su uso es la opción -d, la cual nos proporciona una ayuda en la parte inferior de la pantalla la la hora de utilizar more. Por ejemplo, podemos ejecutar el siguiente comando para comprobarlo:

$ cd /usr/bin

$ ls -al | more -d

Comando less

Sintaxis

less [opciones] [+/patron] [archivo]

El paginador less surge de la idea de hacer un paginador mucho mas amigable y “estandar” en el mundo UNIX que sus antecesores, como pg o more. Cuando me refiero a estándar, hago referencia a que el comando less es puramente compatible con los comandos de desplazamiento, búsqueda, etc del editor Vi, que como ya sabemos, se encuentra en un 99% de los Sistemas Unix. Por esta razon, el uso de less es mucho mas sencillo y no requiere de aprender comandos nuevos, mas que los que ya se sabe si maneja Vi/Vim. Vale aclarar que algunos de sus comandos son compatibles con more.

Veamos un listado de las funciones mas interesantes y utiles:

  1. Avanzar una Pantalla: ESPACIO ó AvPag
  2. Retroceder una Pantalla: b ó RePag
  3. Avanzar de a una linea: ENTER
  4. Busqueda hacia adelante: /
  5. Busqueda hacia atras: ?
  6. Siguiente aparicion de la palabra buscada: n
  7. Ir al principio del texto: g
  8. Ir al final del texto: G
  9. Iniciar Vi/Vim: v
  10. Ejecutar un comando: !comando
  11. Visualizar el numero de linea: =
  12. Salir: q

Como vemos, los comandos g,G,/,?, etc son propios de Vi/Vim. Una característica muy interesante que se nombre es la de poder iniciar el Vi/Vim cuando estamos paginado un archivo. Por ejemplo, si ejecutamos en nuestro directorio $HOME:

$ less .bashrc

Paginaremos el archivo de configuración .bashrc, pero si queremos editarlo con Vi/Vim en ese instante, simplemente presionamos la tecla v. Entraremos en nuestro editor de texto, realizamos los cambios pertinentes y salimos.

Por estas características, por su compatibilidad con Vi/Vim, y muchas cosas mas, personalmente creo que el paginador less es el comando paginador por excelencia. Obviamente, esto se debe a que también los pagiandores fueron añadiendo características muy útiles a medida que crecía la necesidades de los usuarios.

Espero que les halla sido de utilidad

Saludos

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: