使用 tee 录制整个终端屏幕

Recording whole terminal screen using tee

我想寻求某人的帮助,所以我想录制我的屏幕,以便以后查看发生的情况。以前,我使用 sshtee,比如 ssh user@server | tee recfile,录音效果很好。即使当我在服务器上使用 byobu 时,所有内容都使用那个简单的管道进行记录。

但是当我将 byobu 本身通过管道传输到 tee 时,该文件将几乎不包含任何内容。 byobu | tee recfilebyobu |& tee recfile 我都用过。在这两种情况下,byobu 启动并运行良好,但记录文件将仅包含几行与 byobu 会话中发生的事情无关的内容。

并且 byobu 使用 tmux。我也尝试将 tmux 传输到 tee,但输出文件仅包含 [exited].

我的问题是 tmux 如何写入屏幕?它似乎没有使用标准输出或标准错误,如果使用了,tee 可以录制屏幕。有没有办法告诉 tmux 写入标准输出或标准错误?或者是否有另一种方法将输出重定向到 tee?


编辑:我检查过 screen | tee recfilescreen |& tee recfile 会生成一个空文件。此外,bash | tee recfile 只会将已执行命令的输出重定向到文件(user@name:~$ 和输入命令不在其中)。 bash |& tee recfile 也会这样做,只是根本不显示 bash (user@name:~$) 的提示。

正如gniourf_gniourf指出的那样,script解决了我的问题。

我还写了一个简单的 C++ 代码来播放录制的文件。用 --std=c++11 编译它。 (我使用 script -c byobu --timing=recfile.tim recfile 进行录制,scriptout recfile recfile.tim 3 进行回放。)

https://gist.github.com/Shayan-To/672c77fbf9811d769d453c8a9b43747e