本文由Suzzz原创,发布于 http://www.cnblogs.com/Suzzz/p/4107700.html ,转载请保留此声明。

有时候可能想要记录在终端的所有操作包括输出等,将来作为视频播放。系统管理员可能需要记录某些用户的操作。另外可能有时需要向人实时演示一些操作流程。 这些都可以通过script来实现。

script简介

script命令用来将终端会话保存。用法如下

Usage:
script [options] [file] Options:
-a, --append append the output
-c, --command <command> run command rather than interactive shell
-r, --return return exit code of the child process
-f, --flush run flush after each write
--force use output file even when it is a link
-q, --quiet be quiet
-t, --timing[=<file>] output timing data to stderr (or to FILE)
-V, --version output version information and exit
-h, --help display this help and exit

常用的有

-a  指定输出附加到一个文件中,不会覆盖,这样可以一直使用同一个文件

-t   用来输出时间信息,回放的时候用到

-q   不显示script启动和exit的命令,这样用户可以完全察觉不到在录屏

-f   每次操作后都立即刷新缓存。 如果不设置这个选项,则不会实时写入文件。

用法示例

记录

提示script启动,并且记录到指定文件中。 如果这个文件已存在,希望追加记录,加上 -a  选项

使用Ctrl + D 后者 exit退出记录

如果想要同时输出时间文件

script -t timingfile -a scriptfile

回放

需要 scriptreplay 这个命令

scriptreply timingfile scriptfile

效果就和视频录制的差不多

自动记录用户活动

可以在用户的 .profile中添加上

/usr/bin/script -qa  logfile

下次用户登陆,script就会自动保存到 logfile

-q 是为了不显示 “ Script started...."这样的提示文本,从而使用户完全察觉不到script的存在。

向多个用户广播自己的终端操作

操作这本身在终端中建立一个 fifo 文件(关于fifo和mkfifo,可以放狗搜一下),用于通信

$ mkfifo PATH/testfifo

其他多个用户查看这个文件

$ cat PATH/testfifo

操作者开始用script记录自己的操作,并实时保存到 testfifo 中

script -f PATH/testfifo

记得最开始讲的 -f 作用吧? 让script实时写到文件中

这样,其他用户就可以看到操作者的演示了。

Linux终端录屏与播放 script 命令的更多相关文章

  1. linux下录屏和回放工具script和scriptreplay

    读书是一个长见识的过程,以前偶尔会用到录屏的工具,很少用想系统的学习一下.最近看了linux shell脚本攻略,发现很多新东西是以前自己没有接触到的.比如,这个非常好用的录屏工具:script,这次 ...

  2. linux中录屏工具byzanz

    linux中录屏工具byzanz: 1.安装 sudo apt install byzanz 2.使用 help:byzanz-record --help 配合xwininfo使用--xwininfo ...

  3. Linux下录屏

    我喜欢的: Gnome系用户,按ctrl+shift+alt+r,屏幕右上角有红点出现,开始录屏,结束的话再按一次ctrl+shift+alt+r,录好的视频在 ~/Videos下 ffmpeg # ...

  4. linux 终端分屏命令

    比如:某文件夹下有文件:vector.cc, substr.cc 1.使用vim命令打开任意一个文件:vim vector.cc打开第一个文件.如下图所示: 2.按:"Esc"键 ...

  5. linux 终端分屏命令vsp(转)

    比如:某文件夹下有文件:vector.cc, substr.cc 1.使用vim命令打开任意一个文件:vim vector.cc打开第一个文件.如下图所示: 2.按:"Esc"键 ...

  6. 自制Linux 终端 锁屏防窃助手

    很多时候我们不能一直守护在自己的电脑旁边,而且有些文件并不想让别人知道.那么这时候来个锁屏,是再合适不过的了.今天分享一个自制的锁屏工具,如下. 准备 操作系统 : 我这里是ElementaryOS虚 ...

  7. 切换Python环境 linux终端命令行

    切换Python环境 conda info -e // 查看有什么环境 source activate env //切换环境 linux终端分屏 terminator  https://www.jia ...

  8. Linux 终端下的颜色

    Linux 终端下颜色的输出 在命令行下也能产生五颜六色的字体和图案,只需要加上一些颜色代码,例如 echo -e "\033[41;36m 红底绿字\033[0m" 其中41的位 ...

  9. Unity 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能

    目录 一.FFmpeg简介. 二.FFmpeg常用参数及命令. 三.FFmpeg在Unity 3D中的使用. 1.FFmpeg 录屏. 2.FFmpeg 推流. 3.FFmpeg 其他功能简述. 一. ...

随机推荐

  1. C语言:内存字节对齐详解

    转:http://blog.csdn.net/arethe/article/details/2548867 一.什么是对齐,以及为什么要对齐: 1. 现代计算机中内存空间都是按照byte划分的,从理论 ...

  2. java string 细节原理分析(2016.5)

    看到了以前2016.5月学习java写的笔记,这里放在一起. String实现的细节原理分析 一.jdk源码中String 的实现 public final class String implemen ...

  3. 转-centos7下安装apache服务器httpd的yum方式安装

    转自Clement-Xu的csdn博客 http://blog.csdn.net/clementad/article/details/41620631   Apache在Linux系统中,其实叫“ht ...

  4. source insigt、pc-lint、VS联合使用

    前言: 近几天参加公司培训,公司要求,开发的时候使用source insight.PC-lint和VC来编程和调试,这不用不知道,一用吓一跳,这套工具一组合简直爽的根本停不下来. 先说一下各自的作用, ...

  5. 转:Android命令Monkey压力测试,详解

    停止Monkey命令: 1. ps命令  查找uiautomator的进程 打开cmd命令行窗口 输入: adb shell ps | grep monkey 返回来的第一个数字,即是monkey的进 ...

  6. pandas read_sql与read_sql_table、read_sql_query 的区别

    一:创建链接数据库引擎 from sqlalchemy import create_engine db_info = {'user':'user', 'password':'pwd', 'host': ...

  7. 【转】Oracle中插入和取出图片(用BLOB类型)

    原文地址:http://czllfy.iteye.com/blog/66737 其他参考资料地址:http://lavasoft.blog.51cto.com/62575/321882/ 要在orac ...

  8. addslashes及其反函数 stripslashes

    addslashes() 函数返回在预定义字符之前添加反斜杠的字符串. stripslashes() 去掉addslashes 所添加的反斜杠 预定义字符是: 单引号(') 双引号(") 反 ...

  9. 【R】数据导入读取read.table函数详解,如何读取不规则的数据(fill=T)

    函数 read.table 是读取矩形格子状数据最为便利的方式.因为实际可能遇到的情况比较多,所以预设了一些函数.这些函数调用了 read.table 但改变了它的一些默认参数.  注意,read.t ...

  10. The tag handler class for "home.jsp" (org.apache.taglibs.standard.tag.rt.core.ForEachTag) was not found on the Java Build Path

    web.xml中 listener,filter,servlet需按顺序. <listener> <listener-class>listener.VisitCountList ...