便携式解决方案

便携式解决方案

我使用双显示器设置进行教学,因此我在桌面上看到的内容与观众看到的内容不同。这对于演示来说非常合适:学生看到幻灯片时,我可以看到我的笔记。

但我想使用终端来运行 shell。但是,终端必须位于我的桌面上或外部屏幕上。

有没有办法同时在两个屏幕上显示终端内容?我不想镜像屏幕,但坚持使用双显示器模式。

有什么提示吗?

我正在使用带有 Gnome 的 Ubuntu。

答案1

一种优雅的方法是使用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 “echo Hello World!” 输入  Enter
  • 请注意exit,从内部执行的命令将关闭会话。

答案2

想不出任何办法直接地实现你想要的 - 也许其他人可以。但我能想到一个解决方法。

screen使用安装sudo apt install screen。启动两个终端。在第一个终端中,输入screen并在出现的提示屏幕上按回车键。在第二个终端中,输入screen -x

它们实际上会显示相同的内容。虽然不是同一个终端窗口,但内容相同。

Screen 还可以实现更多功能,例如可以在多个窗口之间切换。这是一个快速教程可用的功能。

答案3

便携式解决方案

使用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以半速播放!)。

答案4

除了pa4080上面的回答是关于使用 tmux,我想建议一个扩展版本:

试试 tmate。它也可以作为 Ubuntu 软件包使用。虽然它可以用作 tmux 替代品,但它可以做更多:我可以使用可通过 ssh 或 http(只读或完全共享)访问的 tmate 公共服务器复制您的终端会话。因此,您的学生可以使用您的 beamer 投影,也可以直接在个人计算机/平板电脑等的浏览器中以只读方式查看您的终端会话。

相关内容