如何记录终端会话 script命令使用

script命令用于记录终端会话的输入和输出,1. 使用script filename.txt开始记录到指定文件;2. 不带文件名时默认保存为typescript;3. 加-a选项可追加内容而非覆盖;4. 结合–timing和scriptreplay可实现带时间戳的会话回放;5. 避免输入敏感信息并注意日志安全;6. 用cat、less工具查看记录文件,部分控制字符可能显示为乱码;该命令适用于教学演示、故障排查、操作审计和学习笔记,结束后输入exit或按ctrl+d即可完成记录,整个过程完整且易于管理。

如何记录终端会话 script命令使用

linux 或 macos 的终端中,有时候我们需要记录下整个会话过程,比如调试命令、演示操作、排查问题或作为学习笔记。这时,

script

命令就非常有用。它能完整记录你在终端中输入和输出的所有内容,生成一个可保存的日志文件。

下面介绍

script

命令的基本用法和一些实用技巧。


什么是 script 命令?

script

是一个系统自带的工具,用于将终端会话的输入和输出全部记录到文件中。它会启动一个子 shell,然后把你在终端上看到的所有内容(包括命令、输出、提示符等)都保存下来。


基本用法

script filename.txt

这会开始记录会话,所有内容都会写入

filename.txt

。你可以自定义文件名,比如

Session.log

demo.txt

等。

示例:

script my_session.log

执行后你会看到类似提示:

Script started, file is my_session.log

然后你就可以正常输入命令了,所有操作都会被记录。

结束记录时,输入:

exit

或者按

Ctrl+D

你会看到:

Script done, file is my_session.log

此时,

my_session.log

中就保存了完整的会话内容。


常用选项和技巧

1. 不带文件名,默认记录到 typescript

如果你不指定文件名:

script

它会默认创建一个名为

typescript

的文件。

2. 追加内容到已有文件

使用

-a

选项可以追加内容,而不是覆盖:

script -a my_session.log

这样多次运行不会丢失之前的记录。

3. 实时显示时间戳(高级用法)

script

本身不直接支持时间戳,但可以结合

scriptreplay

使用。先记录时加上时间信息:

script --timing=timing.log session.log
--timing

会把每条输出的时间信息记录到

timing.log

,之后可以用:

scriptreplay timing.log session.log

来“回放”整个会话过程,就像看录像一样。

4. 避免记录敏感信息

由于

script

会记录所有内容,包括你输入的密码(即使不显示),所以:

  • 不要在
    script

    会话中直接输入明文密码。

  • 如果使用
    sudo

    ,建议提前配置免密或注意日志安全。

  • 记录完成后及时检查并清理敏感内容。

5. 查看记录文件

记录完成后,可以用任意文本工具查看:

cat my_session.log less my_session.log vim my_session.log

注意:某些控制字符(如清屏、光标移动)可能会显示为乱码。可以使用:

cat -v my_session.log

来查看不可打印字符的可视化表示。


实际应用场景

  • 教学或演示:记录操作步骤,便于分享或回看。
  • 故障排查:保留完整的命令执行过程,方便事后分析。
  • 审计或文档:作为操作日志存档。
  • 学习笔记:记录自己练习命令的过程。

注意事项

  • script

    记录的是“终端输出”,包括颜色、光标移动等 ANSI 控制码,所以用文本编辑器打开可能看到乱码。推荐用

    cat

    less

    查看。

  • 不要长时间运行
    script

    ,避免日志文件过大。

  • 在脚本中慎用
    script

    ,因为它依赖终端交互环境。


基本上就这些。

script

命令简单但很实用,尤其适合需要保留终端操作痕迹的场景。记住开始和结束的方式,合理命名文件,就能高效地管理你的会话记录。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享