将所有的终端操作记录及回放
在教学过程中,因为总是担心学生没有掌握代码的细节,所以会把最终的代码给他们,但是过程是无法保存的。所以采用了如下方法,需要系统中有script和scriptreplay就可以,前者负责录制,后者负责回放。好在script 和 scirptreplay 命令在绝大多数Linux发行版上都可以找到,没有也很容易安装。原理就是把终端会话记录到一个文件中,在需要的时候予以重现,正好可以通过录制终端会话实现制作命令行教学视频教程的需求。
1、录制:将终端操作过程按照顺序录制时序信息到hello.session,觉得不需要录制时,输入exit结束
script -t 2> hello.log -a hello.session
执行完这条shell,会记录下之后的操作的日志到 hello.session中,就可以使用scirptreplay 命令进行回放
2、回放:
scriptreplay hello.log hello.session
3、分享:
把hello.session分享给学生就可以看到终端操作的过程和细节了。
4、记录所有用户的终端活动
在某些关键业务的 Linux 服务器上,我们希望跟踪所有用户的活动,这可以使用 script
命令来完成,将以下内容放在 /etc/profile
文件中:
……………………………………………………
if [ "x$SESSION_RECORD" = "x" ]
then
timestamp=$(date +%d-%m-%Y-%T)
session_log=/var/log/session/session.$USER.$$.$timestamp
SESSION_RECORD=started
export SESSION_RECORD
script -t -f -q 2>${session_log}.timing $session_log
exit
fi
……………………………………………………
文件中,制定了记录的文件格式以日期为记录,以静默的方式启动。一切安好,等着di人上钩吧,哈哈哈哈。保存文件并退出。
在 /var/log
文件夹下创建 session
目录:
mkdir /var/log/session
给该文件夹指定权限:
chmod 777 /var/log/session/
到需要的时候可以使用 scriptreplay
命令来重放用户的终端会话活动,那就是你可以保持沉默,但是…… ……:
scriptreplay --timing session.pkumar.19785.21-06-2019-04\:34\:05.timing session.pkumar.19785.21-06-2019-04\:34\:05
参考文献:http://www.linuxeden.com/a/55615
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具