首页/系统/Linux 运维命令速查/script 录制终端会话
进程与作业69 条

script 录制终端会话

把终端操作全过程录下来:事故复盘、交接演示、取证留痕;--timing 计时文件配合 scriptreplay 还能回放。

Linux 运维命令速查系统更新于 2026-10-13

script 是什么

script 把终端会话中的输入与输出原样录制到文件,用于事故复盘、交接演示与取证留痕。配合 --timing 生成计时文件后,还能用 scriptreplay 按原始速度回放。它属于 util-linux,默认的录制文件名是 typescript。

基本信息

用途录制终端输入输出到文件
语法script [-q] [选项] [文件]
常用选项-q 静默、-a 追加、-c 执行命令、-t 计时文件
配套工具scriptreplay 用于回放

典型使用场景

  • 记录复杂故障处理过程,便于事后复盘
  • 交接演示:把操作步骤留档给同事
  • 执行高风险操作时留下操作痕迹
  • 只录单条命令的输出用于培训材料
  • 配合计时文件回放当时的操作节奏
  • 保留现场证据用于事后审查

常用示例

常用示例
script -q session.log            # 开始录制,exit 或 Ctrl+D 结束
script -q -a session.log         # 追加写入已有文件
script -q -c 'df -h; free -m' -t /tmp/timing.log /tmp/out.log   # 录一条命令并计时
scriptreplay --timing=/tmp/timing.log /tmp/out.log              # 按原始节奏回放
ls -l session.log                # 确认录制文件已生成
less -R session.log              # 带控制字符查看,保留颜色
cat -v session.log | head        # 去掉控制字符后的可读版本

选项与用途

选项作用说明
-q静默模式不显示开始与结束的提示
-a追加写入同一份文件多次录制
-c 命令执行指定命令只录这一条命令的输出
-t 文件写入计时数据配合回放使用
默认文件名typescript未指定输出文件时使用
录制文件包含终端控制字符:直接查看会很乱,用 less -R 或 cat -v 得到可读版本,分享之前先做一次清理。
录制内容可能包含密码、令牌等敏感输入:传播或归档前必须审查与脱敏,在共享环境里这一点尤其重要。
在 script 里再嵌套 script,或运行全屏程序,会产生大量控制字符堆积:它更适合普通命令行操作的留档。
录制文件保存的是终端原始输出:用 less 浏览没问题,但同一段内容在不同宽度的终端里回放效果会有差异。
如果只是想给某条命令的输出留档,直接用重定向比 script 简单得多;script 的价值在于把交互过程一并保留下来。

易错点

  • 录制含敏感输入的文件未脱敏就分享:凭据直接泄露
  • 嵌套录制或录制全屏程序:控制字符堆积,文件几乎不可读
  • 只看录制文件不看计时文件:回放节奏丢失,演示效果大打折扣
  • 把它当完整审计工具:默认只录交互内容,覆盖范围有限

数据来源与参考

  • man 1 script(util-linux 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌