我使用两个监视器的设置进行授课,因此我在桌面上看到的内容与听众可以看到的有所不同。这对于演示非常有用:当学生看到幻灯片时,我可以看到我的笔记。
但是我想使用终端来运行shell。但是,终端必须在我的桌面上或在外部屏幕上。
有没有办法在两个屏幕上同时显示终端内容?我不想镜像屏幕,但坚持使用两个监视器模式。
有什么提示吗?
我在Gnome中使用Ubuntu。
我使用两个监视器的设置进行授课,因此我在桌面上看到的内容与听众可以看到的有所不同。这对于演示非常有用:当学生看到幻灯片时,我可以看到我的笔记。
但是我想使用终端来运行shell。但是,终端必须在我的桌面上或在外部屏幕上。
有没有办法在两个屏幕上同时显示终端内容?我不想镜像屏幕,但坚持使用两个监视器模式。
有什么提示吗?
我在Gnome中使用Ubuntu。
Answers:
使用script
!例如:
个人终端:
> script -f /tmp/lecture1.scrpt #use -F instead on MacOS
> ... #start doing things here!
演示终端:
> #after this, terminal will continuously print whatever's written to personal terminal
> tail -F /tmp/lecture1.scrpt
该script
命令会将写入终端屏幕的所有内容(包括您键入的内容!)复制到作为参数的文件中。通常,在结束脚本后(通过键入exit
),所有内容都会写入文件中。但是,该-f
选项导致script
每次写入后刷新其缓冲区(在MacOS上为-F
或-t 0
)。然后,在演示终端中,您可以用来tail -F
连续查看内容。
由于一个终端正在写入文件,而另一终端正在读取文件,因此可以在不同的用户之间完成!这意味着您可以让某人以很少的权限进入ssh,只要将脚本文件放置在他们可以读取的位置,您仍然可以向他们展示。(即:如果您有一个学生可以访问的服务器,则可以创建一个仅对他们可读的.scrpt文件,以便他们可以在自己的屏幕上跟踪该文件)
鉴于此方法的性质,一个终端在驾驶而另一终端仅在观看。
此方法还具有额外的好处,使您可以轻松地停止镜像,进行一些秘密工作并再次开始镜像,而无需离开您的个人终端。这可以通过以下操作完成:
个人终端:
> exit #end script session; stop writing to /tmp/lecture1.scrpt
> ... #do secret things not safe for student eyes!
> script -f -a /tmp/lecture1.scrpt #begin writing again with -a to append
script
!的目的script
是录制您的终端会话,以便以后可以播放(我们正好是在录制时进行回放的特殊情况)。为了解决这个问题,script
可以-t
选择记录时序以及写入屏幕的时间。要使用它,请使用以下命令启动脚本会话:
> script -f -t 2>/tmp/lecture1.timing /tmp/lecture1.scrpt
并使用以下命令播放(定时!):
> scriptreplay -t /tmp/lecture1.timing -s /tmp/lecture1.scrpt
有学生通过电子邮件向您发送电子邮件,说他会生病并且无法上课吗?还是只想给您的学生更多的讲座资料?如果您在演讲过程中录制语音(并在录制的同时启动脚本),那么您的学生可以用您的语音播放终端会议并获得完整的演讲经验!
有一个喜欢以2倍速度播放所有视频的学生吗?scriptreplay
用一个“除数”乘以播放速度!只需-d 2
以2倍的速度通过即可播放(请注意,这是一个双精度值,因此您甚至可以-d .5
将速度提高一半!)。
tail
。(我认为tmux
在实践中仍然会更好,因为它在编辑会话等方面也没有问题。)
tmux
并screen
不能,据我可以告诉。
tail
实际上所做的很少。如果您查看带有类似脚本文件的脚本文件,vim
或者less
您会看到它添加了丑陋的转义符,因为它试图控制屏幕的滚动和字符放置。
vim
?据我所知,这似乎很好用(只要演示终端比个人终端大)
一种优雅的方法是tmux
用于此任务:sudo apt install tmux
。这是一个例子:
创建一个会话my_session
(-d
在创建过程中删除要附加的会话):
tmux new-session -d -s my_session
打开一个或多个新的终端窗口并附加到同一会话:
tmux attach -t my_session
要从会话中分离:
tmux detach
或按Ctrl+b,然后释放Ctrl并按d。
要将命令发送到会话而不附加它:
tmux send-keys -t my_session“回声你好世界!” 输入 Enter
请注意exit
,从内部执行的命令将关闭会话。
除了上面使用pamu的pa4080来使用tmux之外,我还建议扩展版本:
试试吧。它也可以作为Ubuntu软件包使用。尽管它可以用作tmux的替代品,但它可以做的更多:我可以使用可通过ssh或http(只读或完全共享)访问的tmate公共服务器来复制您的终端会话。因此,您的学生可以在您的个人计算机/平板电脑等的浏览器中直接使用投影仪投影或终端会话的只读视图。
tmate
看起来很有趣。这是一个简单的演示:youtube.com/watch?