怎样在Linux上录制你的终端操作及回放

前言

假设你是个靠谱先生,每当亲朋好友遇到与Linux有关的各种问题时,总是第一时间向你求助请教。有人会问你如何安装和配置某个工具,这时候你就想告知具体的步骤。可要是对方不在你跟前,又该如何是好呢?解决办法可能有好多种,比如说可以将具体步骤记入文档,然后通过电子邮件发过去;或者打电话,详细告知对方,等等,但是最明确无误的解决办法还是你亲自演示一番。要是演示只需要一个终端,那么最好的办法就是录制你的终端操作。

录制一个终端操作可能是一个帮助他人学习 Linux 、展示一系列正确命令行操作的和分享知识的通俗易懂方法。不管是出于什么目的,从终端复制粘贴文本需要重复很多次,而录制视频的过程也是相当麻烦,那么下面一起来看看如何录制你的终端操作。

预先要求

如果你只是希望能记录你的终端会话,并且能在终端进行回放或者和他人分享,那么你只需要一个叫做:ttyrec 的软件。Ubuntu 用户可以通过运行这行代码进行安装:

sudo apt-get install ttyrec

如果你想将生成的视频转换成一个 gif 文件,这样能够和那些不使用终端的人分享,就可以发布到网站上去,或者你只是想做一个 gif 方便使用而不想写命令。那么你需要安装额外的两个软件包。

第一个就是 imagemagick , 你可以通过以下的命令安装:

sudo apt-get install imagemagick

第二个软件包就是:tty2gif.py,访问其项目网站下载。这个软件包需要安装如下依赖:

sudo apt-get install python-opster

录制

开始录制终端操作,你需要的仅仅是键入ttyprec,然后回车。这个命令将会在后台运行一个实时的记录工具。我们可以通过键入exit或者ctrl+d来停止。ttyrec 默认会在主目录下创建一个ttyrecord的文件。

回放

回放这个文件非常简单。你只需要打开终端并且使用 ttyplay命令打开ttyrecord文件即可。(在这个例子里,我们使用 ttyrecord 作为文件名,当然,你也可以改成你用的文件名)

然后就可以开始播放这个文件。这个视频记录了所有的操作,包括你的删除,修改。这看起来像一个拥有自我意识的终端,但是这个命令执行的过程并不是只是为了给系统看,而是为了更好的展现给人。

注意一点,播放这个记录是完全可控的,你可以通过点击 +或者-进行加速减速,或者0和1暂停和恢复播放。

导出成 GIF

为了方便,我们通常会将视频记录转换为 gif 格式,并且,这个非常容易做到。以下是方法:

将之前下载的 tty2gif.py 这个文件拷贝到 ttyprecord 文件(或者你命名的那个视频文件)相同的目录,然后在这个目录下打开终端,输入命令:

python tty2gif.py typing ttyrecord

如果出现了错误,检查一下你是否有安装 python-opster 包。如果还是有错误,使用如下命令进行排除。

sudo apt-get install xdotool
export WINDOWID=$(xdotool getwindowfocus)

然后重复这个命令python tty2gif.py并且你将会看到在 ttyrecord 目录下多了一些 gif 文件。

接下来的一步就是整合所有的 gif 文件,将他打包成一个 gif 文件。我们通过使用 imagemagick 工具。输入下列命令:

convert -delay 25 -loop 0 *.gif example.gif

你可以使用任意的文件名,我用的是 example.gif。 并且,你可以改变这个延时和循环时间。

希望这篇文章对你学习Linux有帮助,谢谢对我们的支持

(0)

相关推荐

  • Python彩色化Linux的命令行终端界面的代码实例分享

    先看看效果: 在linux的终端中,ANSI转义序列来控制颜色 基本规则: 前面加上\033[,结尾用\033[0m重置为原来的颜色 可以在终端中输入下面这句,就可以看到输出绿色的hello. >>echo -e '\033[0;32mhello\033[0m' 其中0;32m控制颜色. 最简单的,只要把0;32m中的2改成0-7,就对应不同颜色了. 利用这点,在python中,可以这样来. #coding=utf-8 fmt = '\033[0;3{}m{}\033[0m'.format c

  • linux shell脚本学习录制与回放终端会话

    复制代码 代码如下: amosli@amosli-pc:~/learn$ script -t 2> timing.log -a output.session#开始录制Script started, file is output.sessionamosli@amosli-pc:~/learn$ hello1No command 'hello1' found, did you mean: Command 'hello' from package 'hello-debhelper' (main) Co

  • linux系统终端修改字体的方法

    1.通过console-tools设置控制台字体 1.1.选用并测试合适的字体和字库文件: 复制代码 代码如下: # ls /usr/share/consolefonts/ 1.2.测试选用喜爱的字库文件: 复制代码 代码如下: # consolechars -f /usr/share/consolefonts/lat9w-16.psf.gz # consolechars -f /usr/share/consolefonts/lat2-16.psf.gz 1.3.保存控制台默认字体配置: 复制代

  • Linux Shell脚本系列教程(二):终端打印命令详解

    终端打印 终端是交互式工具,用户可以通过它与shell环境进行交互.在终端中打印文本是大多数shell脚本和工具日常需要执行的基本任务.通过终端打印,人们可以知道系统的运行状态,这对用户来说是至关重要的. echo终端打印 复制代码 代码如下: echo "Welcome to Bash" echo 'Welcome to Bash' echo  Welcome to Bash 以上三种方法的效果是一样的,输出内容都是"Welcome to Bash",并在末尾添加

  • 怎样在Linux上录制你的终端操作及回放

    前言 假设你是个靠谱先生,每当亲朋好友遇到与Linux有关的各种问题时,总是第一时间向你求助请教.有人会问你如何安装和配置某个工具,这时候你就想告知具体的步骤.可要是对方不在你跟前,又该如何是好呢?解决办法可能有好多种,比如说可以将具体步骤记入文档,然后通过电子邮件发过去:或者打电话,详细告知对方,等等,但是最明确无误的解决办法还是你亲自演示一番.要是演示只需要一个终端,那么最好的办法就是录制你的终端操作. 录制一个终端操作可能是一个帮助他人学习 Linux .展示一系列正确命令行操作的和分享知

  • 在Linux上运行C#的方法

    本文实例讲述了在Linux上运行C#的方法.分享给大家供大家参考.具体方法如下: 在任何一个平台(操作系统+硬件体系)上,编写和运行程序的三个最根本的需求是库.编译器/解释器.运行环境.库以类和方法(函数)的形式提供常用的例程,简化大型程序的编写..NET框架也不例外,包含了许多类库.另外,把程序转换成可执行形式以及运行执行文件时,编译器和运行环境是必不可少的.Mono软件包包含了.NET类库的一部分.一个C#编译器和.NET运行环境CLR(Common Language Runtime,公共语

  • Linux上为你的任务创建一个自定义的系统托盘指示器

    系统托盘图标如今仍是一个很神奇的功能.只需要右击图标,然后选择想要的动作,你就可以大幅简化你的生活并且减少日常行为中的大量无用的点击. 一说到有用的系统托盘图标,我们很容易就想到 Skype.Dropbox 和 VLC: 然而系统托盘图标实际上要更有用得多:你可以根据自己的需求创建自己的系统托盘图标.本指导将会教你通过简单的几个步骤来实现这一目的. 前置条件 我们将要用 Python 来实现一个自定义的系统托盘指示器.Python 可能已经默安装在所有主流的 Linux 发行版中了,因此你只需要

  • 在linux上定期执行命令、脚本(cron,crontab,anacron)

    人类把时间做了切割,想象一条笔直的线永远向前,本来这条直线上什么都没有,但是人类根据时间的长短(单位)在这条直线上做了密密麻麻的标记(世纪-年-月-日-时-分-秒-纳秒......),通过这样的方式历史上的每一个时刻都能够被单独拿出来,而未来的每一个时刻也能被单独计划.更重要的是,每一个单独的时刻又能跟相邻的被更大单位所控制的相似时刻做比较,比如,今天的晚上12点跟明天的晚上12点,相似的是,两个时刻都是12点,不同的是今天跟明天,她们是相邻的更大单位.因为这样的缘故,在被更大单位所隔开的每一个

  • linux上printf输出带颜色和高级格式控制(推荐)

    \033[显示方式; 前景色; 背景色 m 显示方式:0(默认值).1(高亮).22(非粗体).4(下划线).24(非下划线).5(闪烁).25(非闪烁).7(反显).27(非反显) 前景色:30(黑色).31(红色).32(绿色). 33(黄色).34(蓝色).35(洋红).36(青色).37(白色) 背景色:40(黑色).41(红色).42(绿色). 43(黄色).44(蓝色).45(洋红).46(青色).47(白色) 记得在打印完之后,把颜色恢复成默认(\033[0m),不然再后面的打印都

  • 在 Linux 上使用 Multitail命令的教程

    MultiTail是个用来实现同时监控多个文档.类似tail命令的功能的软件. 他和tail的区别就是他会在控制台中打开多个窗口,这样使同时监控多个日志文档成为可能. 什么是MultiTail MultiTail是一个开源的ncurses的实用工具,可用于在一个窗口或单一外壳,显示实时一样的尾巴命令,该命令拆分控制台为更多子窗口的日志文件的最后几行(很像显示多个日志文件到标准输出屏幕命令 ). 它还支持颜色突出显示,过滤,添加和删除窗口等. 特征 多个输入源. 在重要信息的情况下使用正则表达式的

  • 在 Ubuntu Linux 上安装 Oracle Java 14的方法

    最近,Oracle 宣布 Java 14(或 Oracle JDK 14)公开可用.如果你想进行最新的实验或者开发的话,那么你可以试试在 Linux 系统上安装 Java 14. Oracle JDK 14(或简称 Java 14)发布版包含几个新功能,如果你想预览它们的话.我已添加了链接: instanceof 的模式匹配 Records Text Blocks 除预览功能外,它还包含一些改进和补充.在新闻中,他们还提到了其他改进: 此外,最新的 Java 版本增加了 Java 语言对 swi

  • 如何在 ubuntu linux 上配置 go 语言的 qt 开发环境

    go语言是开发效率极高.运行速度也接近C程序的现代编程语言,qt是跨平台的优秀gui库,二者结合起来工作表现非常优秀.本文讲的有两个事情,第一个是安装go语言的qt绑定包,第二个是安装go语言的集成开发环境. 安装github.com/therecipe/qt包 本段介绍的是如何安装和配置github.com/therecipe/qt开发包,这是一个非常优秀的qt库的go语言绑定,它非常强大,完美支持QT的信号槽机制,而且它的API完全模仿C++,所以你可以直接参考官方的QT C++文档. 我介

  • 在Linux上使用xargs命令的详细教程

    大家好,我是良许. 在使用 Linux 时,你是否遇到过需要将一些命令串在一起,但是其中一个命令不接受管道输入的情况呢?在这种情况下,我们就可以使用 xargs 命令.xargs 可以将一个命令的输出作为参数发送给另一个命令. 在 Linux 中,所有标准的应用程序都有与之关联的三个数据流.分别是标准输入流(stdin),标准输出流(stdout)和标准错误流(stderr).这些流通过文本来运行,我们使用文本将输入(stdin)发送到命令,然后响应(stdout)将会以文本形式显示在终端窗口上

  • Linux上的文件搜索命令实例详解

    locate 基础了解 在centos7上默认没有locate命令,需要先手动安装.安装步骤:http://www.cnblogs.com/feanmy/p/7676717.html locate命令搜索的后台数据库路径:/var/lib/mlocate/mlocate.db ls -hl /var/lib/mlocate total 1.2M -rw-r----- 1 root slocate 1.2M Oct 16 14:36 mlocate.db 更新数据库使用updatedb,配置文件为

随机推荐