¿Cómo puedo ver más de mi historial en Screen en Linux?

54

Estaba ejecutando scripts durante la noche desde la línea de comandos (dentro de la pantalla en una instancia de Linux EC2) y se produjeron algunos errores que no estaba rastreando. Quiero "desplazarme hacia arriba" o ver más del historial en la pantalla, pero parece que no puedo encontrar ningún comando que funcione.

Necesito ver el resultado en pantalla "más arriba" de lo que puedo en mi pantalla actual. Se supone que CTRL + a me pone en modo de desplazamiento dentro de la pantalla, pero no funciona.

T. Brian Jones
fuente
history | less, more? ¿O estás preguntando cómo mantener más historia?
historymantendrá solo los comandos que se hayan disparado en shell. Él está más preguntando sobre el tipo de cosas de registro
<Shift>+ <PgUp>es la única opción. Y también tiene algún límite (como máximo 500 líneas, supongo).
ssapkota
Necesito ver la salida en pantalla "más arriba" de lo que puedo en mi pantalla actual. Se supone que CTRL + a me pone en modo de desplazamiento dentro de la pantalla, pero no funciona para mí.
T. Brian Jones
1
Solo Ctrl-aes screenel escape. La secuencia de teclas completa para ingresar al modo de desplazamiento hacia Ctrl-a [atrás sería , como dice opiate. Ctrl-a ESCTambién funciona para mí, no recuerdo cuál es estándar / de uso común.
ninjalj

Respuestas:

32

Cuando inicia la pantalla, puede especificar el tamaño del búfer de desplazamiento hacia atrás con -h, por lo que puede aumentarlo desde el valor predeterminado de 100 líneas. Sin embargo, con una pantalla actualmente en ejecución, una vez que los datos han salido del búfer, desaparecen.

William Pursell
fuente
3
Esto esta simplemente mal. La respuesta de @opyate proporciona una solución
nirvana-msu
66
@ nirvana-msu El uso de ^ a para ingresar al modo de desplazamiento hacia atrás le permite subir el búfer de desplazamiento hacia arriba. Si los datos ya se han ido del búfer de desplazamiento hacia atrás, se han ido. Puede aumentar el tamaño de ese búfer al inicio. ¿Qué es exactamente acerca de mi respuesta que crees que es incorrecta? Hablo acerca de aumentar el tamaño del búfer de desplazamiento hacia atrás, opiate da detalles sobre cómo usarlo.
William Pursell el
2
Bueno, está bien, aunque la pregunta no era realmente acerca de extender el buffer de desplazamiento. El autor quería ver más historial del que normalmente se muestra en la consola, y puede ver más historial usando Ctrl+a+[. Su respuesta simplemente hace que parezca que no es posible, lo cual es engañoso.
nirvana-msu
Esto no funciona en una Mac. Las otras respuestas tampoco funcionan.
Ben
76

Suponiendo que no ha anulado su secuencia de escape, puede presionar Ctrl-a [para entrar en el modo de desplazamiento hacia atrás, luego usar la página ARRIBA / PÁGINA ABAJO o Ctrl-b / Ctrl-f para subir y bajar.

Desde el wiki de Gentoo sobre el uso de la pantalla

opiato
fuente
77
y ESC para salir del modo scrollback, IIRC
ninjalj
ahora el wiki de gentoo es: wiki.gentoo.org/wiki/Screen
Rmatt
También vea esta publicación sobre cómo (tipo de) desplazarse con el mouse funcionando. El nombre de la publicación dice que es para tmux pero también cubre la pantalla
JonnyRaa
2
Ctrl+ A, Esctambién ingresa al modo copia / desplazamiento hacia atrás.
Serge Stroobandt
7

También puede ejecutar sus comandos en el scriptcomando que registrará la salida en el disco. O puede: command 2>&1 | tee /tmp/cmd.outpara registrar la salida para una investigación futura en la que deseaba un historial de salida (prácticamente) de tamaño infinito.

Seth Robertson
fuente
Esto es lo que terminé usando para mi tarea. Funciona genial. Gracias.
T. Brian Jones
6

Necesito ver el resultado en pantalla "más arriba" de lo que puedo en mi pantalla actual. Se supone que CTRL + a me pone en modo de desplazamiento dentro de la pantalla, pero no funciona.

En complemento a las otras respuestas, quisiera señalar que puede agregar en su ~/.screenrcarchivo:

defscrollback 100000
termcapinfo xterm ti@:te@

dónde:

Franck Dernoncourt
fuente
No funciona en una Mac. Ninguna de las respuestas funciona aquí. Todavía puedo ver el tamaño de la ventana de Terminal. Más arriba está solo el screencomando y las cosas que hice antes de la pantalla. También intenté screen -h, el mismo resultado. ¿Algunas ideas?
Ben
@Ben lo siento, no tengo idea, solo lo intenté en Ubuntu.
Franck Dernoncourt
1
Ah, funciona con control+ ay luego ESCpuedo desplazarme dentro del texto con el cursor. Lo que no funciona es desplazarse con el mouse usando los controles deslizantes de Mac Terminal en el costado. ¡Gracias!
Ben
5

También puede cambiar el tamaño del historial de retroceso en una pantalla en ejecución con la secuencia CTRL-a :(ingrese al modo de línea de comando de la pantalla), luego scrollback 10000si desea 10k líneas de búfer de historial. El cambio se aplica de inmediato.

Tenga cuidado con el uso de la memoria si usa muchas pantallas con búferes muy largos.

Sin embargo, como dijo @William Pursell, con una pantalla actualmente en ejecución, una vez que los datos han salido del búfer, desaparecen.

Saïmonn
fuente
0

Dependiendo del programa de terminal que esté utilizando, generalmente puede cambiar el búfer de desplazamiento en Configuración. Sé xtermque primero debes habilitar el desplazamiento, luego puedes configurar el búfer en infinito.

Sin embargo, su mejor opción para registrar scripts sería redirigir la salida estándar a un archivo:

ScriptName >> OutputFile.txt

Al hacerlo de esta manera, puede desplazarse y buscar libremente, así como mantener un registro (es decir, en caso de que su computadora se bloquee).

EDITAR: Esto está cerca de la solución de tuberías anterior, sin embargo, redirigir la entrada estándar también puede ser útil en otros casos:

grep linux stackoverflow.txt > linuxquestions.txt

o

cat linuxquestions.txt | grep buffersize > bufferquestions.txt

fuente
Tenga en cuenta que screen(1)no permite el desplazamiento del terminal. Esa es una de sus principales características y uno de sus principales inconvenientes.
sarnold
@sarnold Es posible permitir el desplazamiento del terminal, ver superuser.com/a/1336554/116475
Franck Dernoncourt
0

Usando un terminal macOS no pude usar los controles deslizantes a un lado para ver el historial de texto.

Pude desplazarme con el cursor dentro del texto usando y después de presionar CRTL+ ay luego ESC.

Y tuve que agregar esto para ~/.screenrchabilitar el desplazamiento del mouse desde el interior de la ventana (aún no con los controles deslizantes):

termcapinfo xterm* ti@:te@
Ben
fuente