Linux|centos7|终端录屏神器asciinema的部署和初步使用

简介: Linux|centos7|终端录屏神器asciinema的部署和初步使用

前言:

Linux下的录屏软件不是很多的,但最近在青云云计算官网无意中发现了一个Linux下的录屏神器,非常的nice,只是在分享方面比较弱。

下面将就centos7下如何部署asciinema,以及如何初步使用它做一个简单的介绍。

青云的演示地址:

在 Kubernetes 上最小化安装 KubeSphere

该软件的官方演示地址:

ai script usage examples - asciinema

一,

简介

asciinema 是一个自由开源的用于录制终端会话并将它们分享到网络上的解决方案。

当你在你的终端内运行 asciinema rec 来启动录像时,你输入命令的时候,终端内的所有输出都会被抓取。

当抓取停止时(通过按下 Ctrl-D 或输出 exit),抓取的输出将会被上传到 asciinema.org 的网站,并为后续的回放做准备。

Asciinema 项目由多个不同的完整的部分组成,比如 asciinema 命令行工具、asciinema.org API 和 JavaScript 播放器。

Asciinema 的灵感来自于 scriptscriptreplay 命令。

那么,这个软件的优势是实时录制,最重要的是可以与播放内容交互,例如,复制录屏里的文字等等。当然,可以基于此软件做运维审计,并且一些比较复杂的操作可以通过此软件录制后分享给需要的同事,使得各种操作更加的直观,一目了然。细节拉满

如果仔细看了上面的示例,我相信你会对它的特点有一个充分的了解,并且会喜欢上这个软件(魅力无法阻挡啊~~~~~~)。

#####附 ,据我的观察,asciinema这个软件是英国的,因为服务器好像是在英国。

二,

asciinema的安装部署

该软件是基于python运行的,而很不幸,Linux自带的Python2.7并不太符合。

该软件的安装方式非常的多,主流部署方式都支持,例如,yum,apt,brew,docker,pip等等,推荐的部署方式是pip,但我并不是特别推荐该方式,因为pip方式还是比较麻烦的。

本例是使用的centos7,因此,本文将以centos7下的yum部署为主。

yum的方式部署需要epel源和OS源,本文都采用阿里云的yum源来进行安装

1,

epel源

cat > /etc/yum.repos.d/eeel.repo <<EOF
[eoel]
name=epel
baseurl=https://mirrors.aliyun.com/epel-archive/7.7/x86_64/
enable=1
gpgcheck=0
EOF

2,

OS源

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

3,

开始安装

可以看到安装了Python-3.6

[root@centos4 yum.repos.d]# yum install asciinema
Loaded plugins: fastestmirror
Repository 'local' is missing name in configuration, using id
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
中间省略了。。。。
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libtirpc-0.2.4-0.16.el7.x86_64                                                                                                                                            1/6 
  Installing : python3-setuptools-39.2.0-10.el7.noarch                                                                                                                                   2/6 
  Installing : python3-pip-9.0.3-8.el7.noarch                                                                                                                                            3/6 
  Installing : python3-3.6.8-19.el7_9.x86_64                                                                                                                                             4/6 
  Installing : python3-libs-3.6.8-19.el7_9.x86_64                                                                                                                                        5/6 
  Installing : asciinema-1.4.0-2.el7.noarch                                                                                                                                              6/6 
  Verifying  : libtirpc-0.2.4-0.16.el7.x86_64                                                                                                                                            1/6 
  Verifying  : asciinema-1.4.0-2.el7.noarch                                                                                                                                              2/6 
  Verifying  : python3-3.6.8-19.el7_9.x86_64                                                                                                                                             3/6 
  Verifying  : python3-setuptools-39.2.0-10.el7.noarch                                                                                                                                   4/6 
  Verifying  : python3-pip-9.0.3-8.el7.noarch                                                                                                                                            5/6 
  Verifying  : python3-libs-3.6.8-19.el7_9.x86_64                                                                                                                                        6/6 
Installed:
  asciinema.noarch 0:1.4.0-2.el7                                                                                                                                                             
Dependency Installed:
  libtirpc.x86_64 0:0.2.4-0.16.el7   python3.x86_64 0:3.6.8-19.el7_9   python3-libs.x86_64 0:3.6.8-19.el7_9   python3-pip.noarch 0:9.0.3-8.el7   python3-setuptools.noarch 0:39.2.0-10.el7  

三,

asciinema的初步使用

该命令的帮助:

[root@centos4 ~]# asciinema 
usage: asciinema [-h] [--version] {rec,play,upload,auth} ...
Record and share your terminal sessions, the right way.
positional arguments:
  {rec,play,upload,auth}
    rec                 Record terminal session
    play                Replay terminal session
    upload              Upload locally saved terminal session to asciinema.org
    auth                Manage recordings on asciinema.org account
optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
example usage:
  Record terminal and upload it to asciinema.org:
    asciinema rec
  Record terminal to local file:
    asciinema rec demo.json
  Record terminal and upload it to asciinema.org, specifying title:
    asciinema rec -t "My git tutorial"
  Record terminal to local file, "trimming" longer pauses to max 2.5 sec:
    asciinema rec -w 2.5 demo.json
  Replay terminal recording from local file:
    asciinema play demo.json
  Replay terminal recording hosted on asciinema.org:
    asciinema play https://asciinema.org/a/difqlgx86ym6emrmd8u62yqu8
For help on a specific command run:
  asciinema <command> -h

1,

录制一个片段并保存在本地,文件名称为test.json

########注:在录制的时候不能修改时间,否则JSON文件将不能正常结束,也就是文件损坏了,该文件不能播放,或者转出GIF图片了

[root@centos4 ~]# asciinema rec test.json
~ Asciicast recording started.
~ Hit Ctrl-D or type "exit" to finish.
[root@centos4 ~]# cd /opt/
[root@centos4 opt]# ls
containerd  harbor
[root@centos4 opt]# cd
[root@centos4 ~]# ls
123.gif  123.json  docker  docker-19.03.9.tgz  harbor  harbor-offline-installer-v1.5.0.tgz  kubesphere-images-v3.0.0  kubesphere_kiali_v1.38.tar  test.json
[root@centos4 ~]# ls
123.gif  123.json  docker  docker-19.03.9.tgz  harbor  harbor-offline-installer-v1.5.0.tgz  kubesphere-images-v3.0.0  kubesphere_kiali_v1.38.tar  test.json
[root@centos4 ~]# ls
123.gif  123.json  docker  docker-19.03.9.tgz  harbor  harbor-offline-installer-v1.5.0.tgz  kubesphere-images-v3.0.0  kubesphere_kiali_v1.38.tar  test.json
[root@centos4 ~]# rm -rf docker 
[root@centos4 ~]# time
real  0m0.000s
user  0m0.000s
sys 0m0.000s
[root@centos4 ~]# date
Wed Jun 28 08:09:45 CST 2023
[root@centos4 ~]# ntpdate ntp.aliyun.com
28 Jun 00:10:18 ntpdate[18369]: step time server 203.107.6.88 offset -28803.509938 sec
[root@centos4 ~]# #OK,录屏结束了!!!,此时是Ctrl+d 退出
[root@centos4 ~]# exit
~ Asciicast recording finished.

2,

将上面录制的名为test.json 的文件转换为GIF格式的图片:

[root@centos4 ~]# docker pull asciinema/asciicast2gif
Using default tag: latest
latest: Pulling from asciinema/asciicast2gif
7b8b6451c85f: Pull complete 
ab4d1096d9ba: Pull complete 
e6797d1788ac: Pull complete 
e25c5c290bde: Pull complete 
0d0a810f8aa3: Pull complete 
42065bcdfff8: Pull complete 
dd637d6e6d34: Pull complete 
d67f7d6bcade: Pull complete 
dc5855e21089: Pull complete 
118eab60d733: Pull complete 
837c1093fc9c: Pull complete 
274de556230c: Pull complete 
c465677e3bd4: Pull complete 
91b6be0aaeda: Pull complete 
0c13bd3587dc: Pull complete 
2af77900a905: Pull complete 
Digest: sha256:4ad3f3d913f59178ca69882431c3622cf9b7cd394e4f29e5ab31d4909033bdfc
Status: Downloaded newer image for asciinema/asciicast2gif:latest
docker.io/asciinema/asciicast2gif:latest
[root@centos4 ~]# docker run --rm -v $PWD:/data asciinema/asciicast2gif -s 2 -t solarized-dark test.json test.gif
==> Loading test.json...
==> Spawning PhantomJS renderer...
==> Generating frame screenshots...
==> Combining 32 screenshots into GIF file...
==> Done.

3,

转换成功的GIF图片:

4,

播放JSON格式的录制的文件 test.json

asciinema play test.json

5,

上传录制的文件到官网

[root@centos4 ~]# asciinema upload test.json 
View the recording at:
    https://asciinema.org/a/593546

打开浏览器,输入https://asciinema.org/a/593546 就可以看到录制的内容了

未完待续!!!!

目录
相关文章
|
10天前
|
Linux
Linux部署04-ls命令的参数和选项,主体,参数,选项,ls / 查看根目录下的文件夹,-a的意思是列出全部选项 ls -a home全部文件,.代表着隐藏的文件夹,-l 选项,以列表竖向的形式展
Linux部署04-ls命令的参数和选项,主体,参数,选项,ls / 查看根目录下的文件夹,-a的意思是列出全部选项 ls -a home全部文件,.代表着隐藏的文件夹,-l 选项,以列表竖向的形式展
|
7天前
|
Ubuntu Linux 数据安全/隐私保护
Linux系统使用Docker部署Cloudreve云盘并实现远程访问
Linux系统使用Docker部署Cloudreve云盘并实现远程访问
13 0
|
9天前
|
Java Linux Shell
Linux软件安装和部署Java代码
Linux软件安装和部署Java代码
13 0
|
9天前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
10天前
|
JavaScript Linux Shell
探索Linux中的`script`命令:记录你的终端会话
`script`命令在Linux中记录终端会话,用于重现交互、教学和调试。它启动新shell,捕获所有输入输出到文件,默认文件为`typescript`。主要选项包括追加输出 `-a`,执行单个命令 `-c`,实时写入 `-f`,静默模式 `-q` 和添加时间戳 `-t`。示例用法:记录脚本执行`script -a log.sh script.sh`,或带时间戳记录`script -t timestamps.log`。注意文件权限、磁盘空间和敏感信息处理。
|
10天前
|
Linux
Linux部署06 ---相对路径绝对路径,想要切换到home下的文件 cd /home/itheima/Desktop cd Desktop,相对路径以当前目录为起点一种写法 不写/,相对是当前目录
Linux部署06 ---相对路径绝对路径,想要切换到home下的文件 cd /home/itheima/Desktop cd Desktop,相对路径以当前目录为起点一种写法 不写/,相对是当前目录
|
10天前
|
Linux
Linux部署 cd-pwd命令,cd 不写参数 就直接回到用户的HOME目录,pwd 查看当前的工作目录,pwd是常看当前目录的路径,无参数
Linux部署 cd-pwd命令,cd 不写参数 就直接回到用户的HOME目录,pwd 查看当前的工作目录,pwd是常看当前目录的路径,无参数
|
10天前
|
Linux
Linux部署03---ls命令入门 ls直接用命令是列出目录下的内容,ls命令等同于双击打开文件夹,FinalShell默认的是在home目录下,工作目录
Linux部署03---ls命令入门 ls直接用命令是列出目录下的内容,ls命令等同于双击打开文件夹,FinalShell默认的是在home目录下,工作目录
|
10天前
|
Linux
部署09--虚拟机快照,我们无法避免损坏Linux操作系统 ,如果重新装一下就太过麻烦,推荐在关机下制作快照,关机制作效率好,机房要靠近地址,动不动崩溃
部署09--虚拟机快照,我们无法避免损坏Linux操作系统 ,如果重新装一下就太过麻烦,推荐在关机下制作快照,关机制作效率好,机房要靠近地址,动不动崩溃
|
10天前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD