使用 script 录制终端会话

script是一款能在Linux环境下记录并回放终端会话的实用工具。通过简单的命令行操作,它能完整记录下用户的所有交互过程,并利用scriptreplay进行精确回放,适用于教程制作和演示等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原贴:

使用 script 录制终端会话

<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

script 真是一个神奇的小家伙,别看它小不起眼,可是却足够的好玩。script 能够将终端的会话过程录制下来,然后使用 scriptreplay 就可以将其录制的结果播放给他人观看。script 的好处就在于,你在终端中的所有操作过程,它都可以原原本本地进行录制。试想一下,我们可以将这种录制应用在很多方面,诸如教学、演示等等。

script

一般来说,script 和 scriptreplay 在 Linux 发行版中都有默认安装。如果你打算使用 script 开始录制终端会话,可以敲入下列指令:
script -t 2>demo.timing -a demo.session

该指令中的 -t 选项指明输出录制的时间数据,而 -a 选项则输出录制的文件。你可以将指令中的 demo 换成自己设置的名称。当终端中返回“Script started, file is demo.session”的信息时,你就可以进行需要录制的操作了。

如果需要结束录制过程,则输入 exit 即可。

要播放已录制完成的终端会话,可以使用指令:scriptreplay demo.timing demo.session

关于 script 及 scriptreplay 的更多信息,可以使用 man script 或 man scriptreplay 查询。

[via]

署名 • 注明出处 • 非商业性使用

11 Comments

  1. 1 cottage Commented @ 2007-05-09 9:53 amReply to this comment

    真神奇!

  2. 2 bbbush Commented @ 2007-05-09 11:12 amReply to this comment

    这个太有意思了

  3. 3 pig345 Commented @ 2007-05-09 1:57 pmReply to this comment

    好东西,估计这样的小玩意儿,linux各发行版的基础安装包里面有不少。
    希望有了解的各位给多多介绍下哈。

  4. 4 weipipi Commented @ 2007-05-09 2:18 pmReply to this comment

    我只能用script -t 2>demo.timing -a demo.session,没有scriptreplay,难道要安装?

  5. 5 iveney Commented @ 2007-05-09 3:25 pmReply to this comment

    太好玩了~~~

  6. 6 左倾45度 Commented @ 2007-05-09 3:55 pmReply to this comment

    不错不错,以后就不用复制粘帖了呵呵

  7. 7 LiangXu Wang Trackbacked @ 2007-05-09 3:59 pmReply to this comment

    使用script录制终端会话…

    转自linuxtoy
    英文出处在这儿
    ubuntu feisty默认是安装的。
    script 真是一个神奇的小家伙,别看它小不起眼,可是却足够的好玩。script 能够将终端的会话过程录制下来,然后使用 scriptreplay 就可以…..

  8. 8 huang Commented @ 2007-05-09 6:33 pmReply to this comment

    嗯,播放是不依赖于系统命令的,只要是一个支持ANSI控制码的终端就能再现;
    要求播放终端的大小和录制终端的大小一致,否则可能会出现显示偏差;
    显示的内容完全存放在demo.session中,辅以demo.timing中的时刻和控制操作来在屏幕显示;
    甚至可以录制vim的编辑过程,在没有(或者配置不同的)vim的机器上也能完美再现编辑操作的过程;
    多好的命令啊。。。

  9. 9 lewbing Commented @ 2007-05-10 1:18 pmReply to this comment

    scriptreplay是一个perl文件。直接从官方下载它的包 ftp://ftp.kernel.org/pub/linux/utils/util-linux/util-linux-2.12r.tar.bz2,将其解压缩后,find . -name /’scriptreplay.pl/’就可以找到了,将它放到系统目录即可直接运行了,前提是你安装了perl,我想一般的linux中都有perl这个软件包。
    我用的是Archlinux系统,它装了util-linux,有script命令,但是没有scriptreplay命令。

  10. 10 mysurface Commented @ 2007-05-11 7:54 pmReply to this comment

    It works to record on ncurses application too. Cool!

  11. 11 Nothing to do But Ubuntu » Blog Archive » 使用 script 录制终端会话 Pingbacked @ 2007-11-13 10:27 pmReply to this comment

    [...] source:http://linuxtoy.org/archives/
    record-terminal-session-with-script.html [...]

 

<think>好的,用户想了解如何保存终端的输出或会话记录。首先,我需要回忆之前学过的相关知识,记得Linux里有script命令可以用来记录终端会话。 根据提供的引用内容,引用[2]提到script命令可以录制终端会话,然后用scriptreplay播放。用户可能需要基本的步骤,比如如何开始录制、结束,以及查看日志文件。同时,引用[3]提到像scp、ftp这些命令的输出无法用重定向保存,这时候script命令就派上用场了,因为可以捕捉所有屏幕内容。 接下来,用户可能还想知道除了script之外的其他方法,比如重定向和tee命令。比如,使用command > output.txt可以将标准输出保存,但有些程序的输出可能不在标准输出中,这时候script更可靠。另外,tee命令可以同时显示和保存输出,适合需要实时查看的情况。 还要考虑用户可能遇到的场景,比如脚本执行时如何记录日志。例如在脚本中使用script命令,或者结合重定向和错误输出,比如2>&1将标准错误一起保存。可能需要给出具体例子,比如unzip命令的日志保存。 另外,引用[1]提到输入exit退出script会话,并保存文件。这部分需要详细说明操作步骤,让用户清楚如何开始和结束录制。 最后,生成相关问题时,要考虑用户可能进一步的需求,比如如何自动化记录、如何回放会话、如何分析日志文件等。需要确保问题覆盖这些方面,帮助用户全面了解。</think>要保存终端输出或会话记录,可以通过以下几种方法实现: ### 一、使用`script`命令录制会话 1. **开始录制** 输入命令创建新会话文件(默认文件名为`typescript`): ```bash script ``` 或指定自定义文件名: ```bash script my_terminal.log ``` 2. **执行操作** 此时所有终端输入/输出都会被记录,包括错误信息和交互式命令(如`scp`、`ftp`等无法通过普通重定向保存的内容)[^3]。 3. **结束录制** 输入`exit`或`Ctrl+D`退出,文件将自动保存[^1]。 4. **回放会话** 使用`scriptreplay`按时间戳回放: ```bash scriptreplay -t my_terminal.log -s my_terminal.time ``` --- ### 二、重定向输出到文件 1. **标准输出保存** ```bash command > output.txt ``` 2. **同时保存标准输出和错误** ```bash command &> output.log ``` 3. **追加模式** ```bash command >> output.log 2>&1 ``` --- ### 三、使用`tee`命令实时显示并保存 ```bash command | tee output.log # 覆盖写入 command | tee -a output.log # 追加写入 ``` --- ### 四、脚本执行场景的日志保存 对于自动化脚本,可以结合`script`命令: ```bash #!/bin/bash script -q -c "your_command" script.log ``` --- ### 对比总结 | 方法 | 优点 | 局限 | |------------|-------------------------------|--------------------------| | `script` | 记录所有交互细节 | 文件较大 | | 重定向 | 简单快速 | 无法记录非标准输出内容 | | `tee` | 实时显示+保存 | 需手动添加到每个命令 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值