Enseño usando una configuración de dos monitores, por lo que lo que veo en mi escritorio es diferente de lo que mi audiencia puede ver. Esto funciona bien para presentaciones: mientras los estudiantes ven las diapositivas, yo puedo ver mis notas.
Pero quiero usar una terminal para ejecutar un shell. Sin embargo, el terminal tiene que estar en mi escritorio O en la pantalla externa.
¿Hay alguna manera de mostrar el contenido del terminal en ambas pantallas simultáneamente? No quiero reflejar las pantallas, pero me quedo con el modo de dos monitores.
¿Alguna pista?
Estoy usando Ubuntu con Gnome.
Respuestas:
La solución portátil
Uso
script
! Por ejemplo:Terminal personal:
Terminal de presentación:
Cómo funciona
El
script
comando copia todo lo escrito en la pantalla del terminal (¡incluido lo que escribe!) En un archivo que toma como parámetro. Por lo general, todo se escribe en el archivo después de finalizar el script (escribiendoexit
). Sin embargo, la-f
opción hacescript
que se vacíe su búfer después de cada escritura (en MacOS, esto será-F
o-t 0
). Luego, en el terminal de presentación, puede usartail -F
para ver los contenidos continuamente a medida que se escriben.Cosas a tener en cuenta
Dado que un terminal está escribiendo en un archivo y el otro está leyendo, ¡esto puede hacerse entre diferentes usuarios! Esto significa que puede hacer que alguien ingrese con muy pocos permisos y siempre y cuando coloque el archivo de secuencia de comandos en una ubicación que pueda leer, aún podrá presentarles. (es decir: si tiene un servidor al que sus alumnos tienen acceso, puede crear un archivo .scrpt que solo sea legible para ellos para que puedan seguirlo en sus propias pantallas)
Dada la naturaleza de este método, una terminal está conduciendo y la otra solo está mirando.
Este método también tiene la ventaja adicional de hacer que sea más fácil dejar de duplicar, hacer un trabajo secreto y comenzar a duplicar todo sin salir de su terminal personal. Esto se puede hacer con lo siguiente:
Terminal personal:
Más diversión con
script
!El propósito de
script
es grabar su sesión de terminal para que pueda reproducirse más tarde (resulta que se trata de un caso especial de reproducción mientras se está grabando). Para ayudar con esto,script
tiene la-t
opción de registrar el tiempo junto con lo que está escrito en la pantalla. Para usarlo, comience su sesión de script con:Y reprodúzcalo (¡con tiempo!) Con:
¿Tiene un estudiante que le envió un correo electrónico diciéndole que estaría enfermo y no puede hacer una conferencia? ¿O simplemente quiere darles a sus alumnos más material de lectura? Si graba su voz durante la conferencia (y comienza el guión aproximadamente al mismo tiempo que la grabación), ¡entonces sus estudiantes podrían reproducir su sesión terminal con su voz y obtener la experiencia de la conferencia completa!
¿Tiene un estudiante al que le gusta reproducir todos sus videos a una velocidad 2x?
scriptreplay
toma un "divisor" por el que multiplica la velocidad de juego. Simplemente pasa-d 2
a jugar a una velocidad 2x (ten en cuenta que este es un valor doble, ¡por lo que incluso podrías hacerlo-d .5
a media velocidad!).fuente
tail
. (Creo quetmux
todavía es mejor en la práctica, porque tampoco tiene ningún problema con, por ejemplo, una sesión de editor)tmux
yscreen
no puedo, por lo que puedo decir.tail
que realmente está haciendo. Si miras un archivo de script con algo parecidovim
oless
lo verás agregando escapes feos ya que está tratando de controlar el desplazamiento de la pantalla y la ubicación de los personajes.vim
? Hasta donde puedo decir, esto parece funcionar bien (siempre que el terminal de presentación sea más grande que el terminal personal)Una forma elegante es utilizar
tmux
para esta tarea:sudo apt install tmux
. Aquí hay un ejemplo:Cree una sesión llamada
my_session
(eliminar-d
para adjuntar durante la creación):Abra una o más ventanas de terminal nuevas y adjúntelas a la misma sesión:
Para desconectarse de un tipo de sesión:
O presione Ctrl+b , luego suelte Ctrly presione d.
Para enviar un comando a la sesión sin adjuntarlo:
Tenga en cuenta que el
exit
comando, ejecutado desde adentro, cerrará la sesión.fuente
No se me ocurre ninguna forma de lograr directamente lo que desea, tal vez otros puedan hacerlo . Pero puedo pensar en una solución alternativa.
Instalar
screen
consudo apt install screen
. Comience dos terminales. En el primero, escribescreen
y presiona Intro en la pantalla que te molesta. En el segundo, escribascreen -x
.Mostrarán efectivamente el mismo contenido. No es la misma ventana de terminal, pero será el mismo contenido.
La pantalla también puede hacer más trucos, como varias ventanas entre las que puedes cambiar. Este es un tutorial rápido de las funciones disponibles.
fuente
Además de la respuesta anterior de pa4080 para usar tmux, me gustaría sugerir una versión extendida:
Prueba tmate. También está disponible como paquete de Ubuntu. Si bien puede usarse como reemplazo de tmux, podría hacer más: puedo replicar su sesión de terminal utilizando un servidor público tmate accesible a través de ssh o http (solo lectura o recurso compartido completo). Por lo tanto, sus estudiantes podrían usar su proyección de proyector o tener una vista de solo lectura de su sesión de terminal directamente en su navegador en su computadora / tableta personal, etc.
fuente
tmate
parece interesante. Aquí hay una demostración simple: youtube.com/watch?v=is_VpIx3Z4M