Bajo un shell de UNIX, ¿cómo puedo obtener un efecto similar al watch
comando, 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 watch
lo que less
es 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?
less
cuando puedes usarcat
y 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
watchless
función. Es un poco difícil, y todavía no parece funcionar por completo, pero aquí va:Debe usar la
R
tecla manualmente en menos para que la pantalla se actualice.Parece funcionar para
watchless date
pero no parawatchless qstat
owatchless pstree
, que se muestran en blanco. ¿Algunas ideas?fuente
mv
este segundo archivo en el archivo leídoless
comomv
es atómico. Deless
lo 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
watch
volverí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
file
con la misma salida una y otra vez. Ciertamente no aborda la pregunta original.