为什么你的终端操作需要被”剧本”记录?
想象一下:你花了三小时调试服务器配置,突然断电导致命令历史全消失。或者同事问你上周某个故障的解决步骤,你却记不清细节。这时候script命令就是救命稻草!它能像摄像机一样完整记录终端会话,从敲入的命令到程序输出,甚至错误信息都不遗漏。系统管理员用它做审计,开发者靠它复现bug,连教学演示也离不开它——毕竟眼见为实嘛。

零基础上手:你的第一条终端录像
打开终端,输入script就开启录制:
$ script
Script started, file is typescript
现在所有操作都会被悄悄存到当前目录的typescript文件里。试试执行ls或date,完成后敲exit退出录制。用cat typescript查看录像,你会发现连命令行提示符和光标闪烁都还原了!如果想自定义存档名:
script my_work.log
高手必备的五大参数技巧
- -a 追加模式:避免覆盖旧记录,适合长期任务分段录制
- -t 时间戳:
script -t 2>time.log记录毫秒级时序,方便回放调试 - -c 单命令录制:
script -c "grep -r error /var/log"抓取单次任务日志 - -q 静默模式:去掉烦人的开始/结束提示符
- –flush:实时写入磁盘,防断电丢失数据
实战案例:揪出隐藏的权限错误
某次部署脚本失败,错误信息一闪而过。用组合拳:
script -t 2>timing.log -a deploy_record
./deploy.sh # 执行问题脚本
exit
用scriptreplay timing.log deploy_record像视频回放一样查看全过程,终于发现是sudo密码输入超时。时间戳显示卡顿发生在SSH密钥加载时——原来被防火墙拦截了!
日志分析进阶:从录像带到大银幕
原始录像包含控制字符,直接阅读像看天书。试试这些过滤技巧:
| 命令 | 作用 | 示例输出 |
|---|---|---|
| cat typescript | col -b | 删除退格等控制符 | 纯净文本 |
| grep ‘^$’ -v typescript | 过滤空行 | 紧凑信息 |
| sed ‘/^Script started/d’ log | 删除录制头尾标记 | 干净日志 |
搭配awk统计命令使用频率,或者用ansi2txt转换彩色输出,报表瞬间专业度飙升。
避坑指南:这些雷区你别踩
新手常犯的三个错误:
1. 忘记退出:长期运行会撑爆磁盘,设置alias script='script -q -c "$SHELL"'自动关联shell
2. 敏感信息泄露:录制前用unset HISTFILE关闭历史记录,避免密码被存档
3. 权限失控:用chmod 600限制日志访问,重要日志建议加密存储
创意应用:超越想象的玩法
别以为script只能做记录:
• 自动化教学:配合scriptreplay生成动态教程,学生可调速观看
• 操作取证:服务器添加script -t /secure/audit_%Y%m%d.log到.bashrc,所有操作自动留痕
• 跨会话协作:用mkfifo创建命名管道,多人实时共享终端操作流
• CI/CD集成:在Jenkins中录制部署过程,失败时自动附完整日志邮件
下次看到终端里闪过”Script started”,别紧张——那是高手在给自己准备”后悔药”。记住:好记性不如烂笔头,烂笔头不如script靠谱!
内容均以整理官方公开资料,价格可能随活动调整,请以购买页面显示为准,如涉侵权,请联系客服处理。
本文由星速云发布。发布者:星速云。禁止采集与转载行为,违者必究。出处:https://www.67wa.com/150148.html