Desplácese dentro de la pantalla o pausar la salida

Desplácese dentro de la pantalla o pausar la salida

yo suelopantallapara mis tareas de línea de comandos mientras administro los servidores donde trabajo. Normalmente ejecuto comandos pequeños (principalmente tareas del sistema de archivos), pero a veces ejecuto tareas más extensas (como DBA).

Elproducciónde esas tareas es importante para mí. Como uso Ubuntu y OS X (ambos Terminal Windows) para mis tareas, pero necesito usar la pantalla, el desplazamiento no está disponible, por lo que cualquier salida larga (piense en una tabla de 500 filas de una selección) es invisible para mí. La rueda del mouse está fuera de discusión.

Cuando digo "el desplazamiento es invisible para mí, me refiero a esto:

arriba mientras usa la pantalla, en Mac OS X, mientras se desplaza

Estaba pensando en dos opciones:

  1. Pausa (pensarpaginar) la salida de un determinado comando. Cuando comienza la salida, me permite leer lo que está sucediendo, luego presiono "Enter", luego la salida continúa hasta que no hay nada más que mostrar.

  2. Desplácese dentro de la pantalla. Pero no sé si esto es posible.

Por supuesto, no sé si esas opciones son realmenteposible. Si lo son, ¿cómo lograrlos? Otras alternativas serán bien recibidas.

Respuesta1

La pantalla tiene su propio búfer de desplazamiento, ya que es un multiplexor de terminal y tiene que lidiar convariosamortiguadores.

Tal vez haya una manera mejor, pero estoy acostumbrado a desplazarme usando el "modo copiar" (que puedes usar para copiar texto usando la pantalla, aunque eso también requiere el comando pegar):

  • Presiona la combinación de prefijo de pantalla ( C-a/ control+ Apor defecto), luego presiona Escapeo [.

  • Muévete hacia arriba y hacia abajo con las teclas de flecha ( y ).

  • Cuando haya terminado, presione cualquier tecla excepto las teclas de flecha, números y ciertas letras para volver al final del búfer de desplazamiento. La mayoría de la gente usa qoEscape

(Si en lugar de salir presionas Entero Spacey luego mueves el cursor, comenzarás a seleccionar el texto a copiar, y al presionar Entero Spaceuna segunda vez lo copiarás. Luego podrás pegar con C-aseguido de ].)

Por supuesto, siempre puedes usar morey less, dos buscapersonas de uso común, que pueden ser suficientes para algunos comandos.

Respuesta2

Usando el screenbuffer como se indicapor njsges una buena solución. También puede desactivar el búfer de texto alternativo en la pantalla interior de información de termcap de xterm. Cuando está deshabilitado, puede usar las barras de desplazamiento (y la rueda del mouse) para desplazarse hacia arriba y hacia abajo.

Añade esto a tu ~/.screenrc.

# Enable mouse scrolling and scroll bar history scrolling
termcapinfo xterm* ti@:te@

Puedes leer más discusión.aquí.

Respuesta3

Todas estas respuestas abordaron cómo navegar dentro de una sesión de pantalla, perohay una funcionalidad incorporada en el comando de pantalla para almacenar todo en un archivoa través del -Largumento según el manual que dice:

-L le dice a la pantalla que active el registro de salida automático para Windows.

entonces puedes hacer:

screen -L -S testscreen

y creará un archivo en el directorio actual, con el nombre screenlog.#donde #es un número para esa pantalla comenzando desde 0.

Esto tiene muchas ventajas y las más importantes para mí son:

  1. Mantener un registro de lo que he hecho ya que puedo guardar el archivo de registro en la carpeta del proyecto para referencia futura.
  2. Puede monitorear el proceso de forma inactiva y pasiva:
    • Úselo tail -Fpara monitorear el progreso en tiempo real sin estar conectado a la pantalla.
    • Úselo greppara verificar ciertos términos en el registro y generar notificaciones (correo electrónico, ventana emergente, voip, etc.). Esto se puede aplicar en varias pantallas sin que usted las mire activamente.

Respuesta4

Tuve éxito al obtener paginación básica canalizando contenido a more, por ejemplo:

ls -l | more

O, si desea una salida en color para casos de uso como resaltado de sintaxis, puede usar

ls -l --color=always | more

Esto da como resultado un resultado que puedo hojear fácilmente una pantalla a la vez. No he probado la modificación de @uther, ~/.screenrcpero parece preferible como solución duradera cuando hay un mouse disponible.

Para probar esto, puedes ir aeste emulador de BusyBoxy luego...

cd ~/bin
ls -l --color=always | more

Utilice la barra espaciadora para desplazarse por los resultados del ls -lcomando o utilice la tecla Intro para desplazarse por los resultados línea por línea.

información relacionada