Bajo un shell de UNIX, ¿cómo puedo obtener un efecto similar al watchcomando, pero con paginación para poder desplazarme en la salida si ocupa más de una pantalla?
En otras palabras, quiero un programa que sea para watchlo que lesses cat.
Como ejemplo, digamos que quería ver la salida de qstat, podría usar
watch qstat
para ver la salida de qstat, pero esto solo puede mostrar la primera pantalla completa.
Con una versión de paginación watch, podría moverme en la salida ya que todavía se actualiza continuamente watch. ¿Hay alguna manera de hacer esto en este momento con las utilidades existentes?

lesscuando puedes usarcaty una ventana más grande?Respuestas:
¡En lugar de modificar el comando 'mirar', use la pantalla!
Por ejemplo, supongamos que necesita poder ver 300 líneas de altura y 100 caracteres de ancho y moverse alrededor de eso. Después de iniciar la pantalla, fuerce el tamaño así:
Ahora comience su comando de vigilancia. Luego puede usar
C-a <ESC>para desplazarse por la pantalla.Desafortunadamente, la pantalla no se actualiza mientras está en modo copia. Pero si desea ajustar qué sección de la ventana está viendo, la forma más fácil puede ser volver a ejecutar los comandos de alto / ancho, ya que de forma predeterminada su terminal muestra la esquina inferior derecha de la ventana virtual.
fuente
C-es akactrl-Puedes probar esto:
mientras vmstat; duerme 1; hecho | Menos
reemplace vmstat con qstat y ajuste la suspensión a sus necesidades
fuente
less, lo que significa que debe seguir desplazándose para ver la última salida.Multitail: http://www.vanheusden.com/multitail/
Ejemplo:
Desplácese hacia atrás presionando 'b' y página / flecha arriba / abajo.
fuente
OK, he tenido un pequeño paso en una
watchlessfunción. Es un poco difícil, y todavía no parece funcionar por completo, pero aquí va:Debe usar la
Rtecla manualmente en menos para que la pantalla se actualice.Parece funcionar para
watchless datepero no parawatchless qstatowatchless pstree, que se muestran en blanco. ¿Algunas ideas?fuente
mveste segundo archivo en el archivo leídolesscomomves atómico. Delesslo contrario, podría pensar que el archivo ha desaparecido si se solicita una actualización al mismo tiempo que se está escribiendo el archivo"$@" > $out. También debe escribir una vez en el archivo de salida antes de comenzar el ciclo.No veo cómo esto podría implementarse a medida que cambia el contenido de la fila, y
watchvolvería a la primera línea cada 2 segundos, incluso si pudiera desplazarse hacia abajo.Algunas soluciones son:
watch 'qstat | tail -n40'para mostrar la salida de qstat comenzando desde la línea 40 desde abajowatch 'qstat | grep jsmith'para seleccionar la salida de modo que las líneas que le interesan estén siempre en la primera pantallaTenga en cuenta que debe colocar los comandos alrededor de la tubería entre comillas simples; de lo contrario, canalizará la salida de
watch, no la salida deqstat.fuente
Para continuar con la respuesta de enkrs,
ver 'qstat | cabeza -300 | cola -15 '
obtendrá páginas arbitrarias en la salida de qstat.
fuente
Aquí hay un script bastante crudo que parece funcionar para varios comandos que le lancé
Usado como tal:
Al ser bastante pedante, la transición entre actualizaciones no es tan suave como me gustaría que fuera. Naturalmente, al ser un script simple, no admite el resaltado de diff (watch -d). Además, el análisis de los argumentos de entrada se puede hacer mejor.
fuente
¿Qué tal solo: tail -f
fuente
Implemento un script de Python simple para satisfacer esta solicitud, llamado "watchall"
Consíguelo por: pip install watchall
reemplace el reloj con watchall y disfrute de la pantalla desplazable. ahora solo admite las banderas -n y -d.
fuente
puedes probar:
entonces en su archivo debería ver la salida anexa (ahora no tengo una caja de Linux para probar esto)
fuente
filecon la misma salida una y otra vez. Ciertamente no aborda la pregunta original.