¿Hay alguna manera de guardar lo que está impreso en la pantalla con la pantalla GNU?

9

Me gusta guardar todo lo que hago en la línea de comandos, por ejemplo, cuando actualizo algo y quiero volver a leer cómo fue la actualización, etc.

Por lo general, con Mac OSX y Terminal, puede desplazarse hacia atrás tanto como desee y guardar con Cmd-S. Pero cuando estoy en SSH usando la pantalla gnu, entonces no puedo retroceder directamente desde la terminal.

¿Cómo puedo guardar en el disco todo lo que sucede en una sesión de pantalla? Tal vez por defecto (cada sesión crea automáticamente un archivo en el disco ...)

¡Gracias!

luca
fuente

Respuestas:

7

Hay una función de registro en screen. Comience cuando comience screenhaciendo screen -L(o desde adentro screen). O, también desde dentro screen, puede presionar Ctrl- a : H.

Si desea iniciar sesión como predeterminado, agregue la siguiente línea a su ~/.screenrcarchivo:

deflog on

Es posible que desee establecer el nombre de archivo usando algo como:

logfile /tmp/screenlog.%n
Pausado hasta nuevo aviso.
fuente
1
Tal vez no debería almacenarse en / tmp, ya que generalmente se limpia al reiniciar (por ejemplo, debido a una falla de energía).
maxelost
@maxelost: Eso es algo a considerar. Sin embargo, fue solo un ejemplo. El punto era incluir un directorio absoluto ya que el comportamiento predeterminado es crear el archivo de registro en el directorio actual. Además, las screensesiones (incluso las separadas) no sobreviven al reinicio.
Pausado hasta nuevo aviso.
2

Opción 1: mire el comando de script. "guión de hombre"

"El script hace un mecanografiado de todo lo impreso en su terminal. Es útil para los estudiantes que necesitan un registro impreso de una sesión interactiva como prueba de una tarea, ya que el archivo mecanografiado se puede imprimir más tarde con lpr".

Básicamente, escriba "script" (sin comillas): haga su trabajo y escriba exit una vez para finalizar la sesión.

Opción 2: utilice el modo "copia impresa" de la pantalla. 'Crtl-a' y luego 'h' Esto guardará la sesión actual en un archivo.

nota: GNU Screen tiene la capacidad de desplazarse. Use 'crtl-]' (corchete derecho) para ingresar al modo de copia, luego 'ctrl-b' y 'ctrl-f' para mover p y hacia abajo una página a la vez.

Sirex
fuente
1

Deberá utilizar la operación 'log', generalmente vinculada a Ctrl-a H. Esto abre un nuevo archivo llamado screenlog. N donde N es el número de ventana. Si el archivo existe, la salida se agrega al archivo. Todos los resultados en esa ventana se registran en el registro de pantalla. N archivo hasta que lo desactive presionando Ctrl-a Hnuevamente. También puede obtener esta funcionalidad con Ctrl-a :log. Puede cambiar el nombre con el logfile {filename}comando. El archivo se coloca en el directorio en el que se inició la pantalla por primera vez, pero eso se puede cambiar con el comando logfile o con chdir [{directory}].

Tenga en cuenta que esto no es lo mismo que la copia impresa o el búfer de desplazamiento. Esta es la misma funcionalidad que el programa script (1), pero vinculada a una sola ventana y sin llamar a un nuevo programa.

Si desea guardar todo el contenido del búfer de desplazamiento, use Ctrl-a ] g <space> G <space> Ctrl-a :writebuf Esto guarda el búfer de desplazamiento en el archivo / tmp / screen-exchange. si desea guardar solo una parte, cambie la 'g' y la 'G' a otras teclas de movimiento.

Arcege
fuente