使用 tee 录制整个终端屏幕
Recording whole terminal screen using tee
我想寻求某人的帮助,所以我想录制我的屏幕,以便以后查看发生的情况。以前,我使用 ssh
和 tee
,比如 ssh user@server | tee recfile
,录音效果很好。即使当我在服务器上使用 byobu
时,所有内容都使用那个简单的管道进行记录。
但是当我将 byobu
本身通过管道传输到 tee 时,该文件将几乎不包含任何内容。 byobu | tee recfile
和 byobu |& tee recfile
我都用过。在这两种情况下,byobu
启动并运行良好,但记录文件将仅包含几行与 byobu 会话中发生的事情无关的内容。
并且 byobu
使用 tmux
。我也尝试将 tmux
传输到 tee
,但输出文件仅包含 [exited]
.
我的问题是 tmux
如何写入屏幕?它似乎没有使用标准输出或标准错误,如果使用了,tee
可以录制屏幕。有没有办法告诉 tmux
写入标准输出或标准错误?或者是否有另一种方法将输出重定向到 tee
?
编辑:我检查过 screen | tee recfile
和 screen |& 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
我想寻求某人的帮助,所以我想录制我的屏幕,以便以后查看发生的情况。以前,我使用 ssh
和 tee
,比如 ssh user@server | tee recfile
,录音效果很好。即使当我在服务器上使用 byobu
时,所有内容都使用那个简单的管道进行记录。
但是当我将 byobu
本身通过管道传输到 tee 时,该文件将几乎不包含任何内容。 byobu | tee recfile
和 byobu |& tee recfile
我都用过。在这两种情况下,byobu
启动并运行良好,但记录文件将仅包含几行与 byobu 会话中发生的事情无关的内容。
并且 byobu
使用 tmux
。我也尝试将 tmux
传输到 tee
,但输出文件仅包含 [exited]
.
我的问题是 tmux
如何写入屏幕?它似乎没有使用标准输出或标准错误,如果使用了,tee
可以录制屏幕。有没有办法告诉 tmux
写入标准输出或标准错误?或者是否有另一种方法将输出重定向到 tee
?
编辑:我检查过 screen | tee recfile
和 screen |& 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