Un problema frecuente que nos sucede cuando estamos conectados a una terminal de texto es que carecemos de barras de desplazamiento, rueda del mouse, o cualquier otro elemento que nos permita desplazarnos (scroll, scrolling en inglés) por la pantalla. Todos nosotros estamos acostumbrados a utilizar estos elementos para navegar dentro de las ventanas de todo entorno gráfico, pero al trabajar en una terminal de texto prescindimos de ellos (es como ir a la guerra con un arco y flecha). En general está bien, pero los problemas aparecen cuando necesitamos ver un listado muy extenso, volcar un archivo por pantalla utilizando
cat
, etc. En este artÃculo voy a explicar dos técnicas diferentes para navegar o desplazarse por la pantalla de una terminal de texto en GNU/Linux.
La primera técnica es la que seguramente todos conocen y utilizan a diario y consiste en aprovechar las herramientas
more
o
less
para paginar la salida de un comando. Sólo es necesario utilizar un pipe (
|
para enviar la salida del comando a la entrada de
more
o
less
. Por ejemplo, si la salida del comando
ls -l /etc
contiene más lineas que las que disponemos en la pantalla (es decir, la salida no cabe en la pantalla), nos perderemos el comienzo de la salida (si la pantalla tiene
n
lineas de alto, sólo veremos las últimas
n
lÃneas de la salida). Para poder ver la salida completa dividida en páginas se debe redirigir la salida a la entrada de
more
o
less
tal como se observa en el siguiente video:
ls -l /etc | more
more
es un filtro para paginar un archivo de texto o una entrada estándar. Permite avanzar de lÃnea utilizando la tecla "Enter", o avanzar de página utilizando la barra espaciadora.
less
es más completo ya que permite navegar hacia arriba y hacia abajo (es decir, avanzar y retroceder). El comportamiento de
less
es similiar al del editor
vi
, por lo tanto se avanza y retrocede con las flechas o con las teclas "RePag" y "AvPag", y se pueden realizar búsquedas presionando
/
. Tanto en
more
como en
less
es posible salir presionando la tecla "q" (quit).
Pero ¿qué puedo hacer si me he olvidado de agregar
| more
al final del comando y no lo puedo repetir?
La segunda técnica (no estoy seguro de que la conozcan todos, al menos los novatos como yo seguro no la conocen) consiste en desplazarse por la terminal de texto utilizando combinaciones de teclas. En GNU/Linux es posible desplazarse por la pantalla de una consola de texto utilizando las combinaciones de teclas (en un teclado español) "Shift+RePag" para retroceder y "Shift+AvPag" para avanzar, tal como se muestra en el siguiente video:
Estos son la clase de trucos que se aprenden leyendo las manpages, pero debo reconocer que a mà me lo ha enseñado un colega ya que no lo pude encontrar por ningún lado. Espero que lo recuerden para la próxima vez que deban trabajar con una terminal de texto en GNU/Linux.