如何记录终端会话 script命令使用
发布时间 - 2025-08-17 00:00:00 点击率:次script命令用于记录终端会话的输入和输出,1. 使用script filename.txt开始记录到指定文件;2. 不带文件名时默认保存为typescript;3. 加-a选项可追加内容而非覆盖;4. 结合--timing和scriptreplay可实现带时间戳的会话回放;5. 避免输入敏感信息并注意日志安全;6. 用cat、less等工具查看记录文件,部分控制字符可能显示为乱码;该命令适用于教学演示、故障排查、操作审计和学习笔记,结束后输入exit或按ctrl+d即可完成记录,整个过程完整且易于管理。
在 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命令简单但很实用,尤其适合需要保留终端操作痕迹的场景。记住开始和结束的方式,合理命名文件,就能高效地管理你的会话记录。
# linux
# typescript
# 工具
# macos
# cos
# less
# Session
# 所有内容
# 你会
# 学习笔记
# 你在
# 可以用
# 不带
# 它会
# 的是
# 是一个
# 完成后
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
百度浏览器如何管理插件 百度浏览器插件管理方法
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
Laravel怎么实现模型属性的自动加密
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何在阿里云域名上完成建站全流程?
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
佛山网站制作系统,佛山企业变更地址网上办理步骤?
高防服务器租用首荐平台,企业级优惠套餐快速部署
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
phpredis提高消息队列的实时性方法(推荐)
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
电商网站制作价格怎么算,网上拍卖流程以及规则?
Laravel怎么连接多个数据库_Laravel多数据库连接配置
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
制作电商网页,电商供应链怎么做?
如何登录建站主机?访问步骤全解析
Laravel如何使用Telescope进行调试?(安装和使用教程)
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
详解Oracle修改字段类型方法总结
如何确保FTP站点访问权限与数据传输安全?
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
Laravel怎么调用外部API_Laravel Http Client客户端使用
Laravel怎么为数据库表字段添加索引以优化查询
Android自定义控件实现温度旋转按钮效果
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
使用豆包 AI 辅助进行简单网页 HTML 结构设计
使用Dockerfile构建java web环境
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Laravel如何生成API文档?(Swagger/OpenAPI教程)
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
如何快速完成中国万网建站详细流程?
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
黑客如何通过漏洞一步步攻陷网站服务器?
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
如何制作一个表白网站视频,关于勇敢表白的小标题?
如何在宝塔面板中修改默认建站目录?
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
如何在宝塔面板中创建新站点?
Linux系统命令中screen命令详解


感信息