asciinema, 终端会话记录器

分享于 

16分钟阅读

GitHub

  繁體 雙語
Command-line recorder for asciinema.org service
  • 源代码名称:asciinema
  • 源代码网址:http://www.github.com/asciinema/asciinema
  • asciinema源代码文档
  • asciinema源代码下载
  • Git URL:
    git://www.github.com/asciinema/asciinema.git
    Git Clone代码到本地:
    git clone http://www.github.com/asciinema/asciinema
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/asciinema/asciinema
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    注意:这里是分支的自述文件。 查看最新稳定发布版本的版本。

    asciinema

    Build StatusPyPIlicense

    终端会话记录器和 asciinema.org的最佳伴侣。

    demo

    快速介绍

    asciinema允许你轻松记录终端会话并在终端和网络浏览器中重播它们。

    安装最新版本( 其他安装选项 ):

    
    sudo pip3 install asciinema
    
    
    
    

    记录你的第一个会话:

    
    asciinema rec first.cast
    
    
    
    

    现在用双倍速度重播它:

    
    asciinema play -s 2 first.cast
    
    
    
    

    或者以正常速度,但空闲时间限制为 2秒:

    
    asciinema play -i 2 first.cast
    
    
    
    

    你也可以将 -i 2 传递给 asciinema rec,以便在记录中永久设置它。 空闲时间限制使录音更有趣,尝试它。

    如果你想在网上观看并分享,请上传它:

    
    asciinema upload first.cast
    
    
    
    

    上面 将它上传到 asciinema.org,这是默认的 asciinema服务器实例,并打印一个可以用来在浏览器中监视记录的秘密链接。

    你可以通过省略文件名来记录和上传一个步骤:

     
    asciinema rec
    
    
    
     

    你会被要求在录音完成时确认上传,所以没有你的意见,任何地方都没有发送。

    这些是基础,但还有很多你可以做的。 以下部分详细介绍了录音的安装。使用和承载。

    安装

    python-封装

    asciinema在 PyPI 上可用,并且可以与 pip ( 需要setuptools的python 3 ) 一起安装:

    
    sudo pip3 install asciinema
    
    
    
    

    这是安装的推荐方式,它提供了最新版本的版本。

    本机软件包

    asciinema包含在 Mac OS X。Linux和FreeBSD上最流行的软件包管理器。 查找名为 asciinema的软件包。 请参见可用软件包列表的列表。

    支持的Linux发行版

    如果你运行 Ubuntu或者其他支持的Linux发行版,你可以使用以下工具安装:

    
    snap install asciinema --classic
    
    
    
    

    snap包含运行asciinema所必需的所有必要依赖,并在新版本被推到存储库时自动更新。

    Docker 图像

    asciinema Docker 映像基于 Ubuntu 16.04,并安装了最新版本的asciinema记录器预安装。

    
    docker pull asciinema/asciinema
    
    
    
    

    运行时,不要忘记分配一个伪 tty ( -t ),保持STDIN打开( -i ) 并装入配置目录卷( -v ):

    
    docker run --rm -ti -v"$HOME/.config/asciinema":/root/.config/asciinema asciinema/asciinema
    
    
    
    

    在容器中运行的默认命令是 asciinema rec

    这里图像中没有安装太多的软件。 在大多数情况下,你可能需要在录制前安装额外的程序。 一个选择是从这个( 使用 FROM asciinema/asciinema 启动自定义 Dockerfile ) 中导出新图像。 另一个选项是使用 /bin/bash 启动容器,安装额外的软件包并手动启动 asciinema rec:

    
    docker run --rm -ti -v"$HOME/.config/asciinema":/root/.config/asciinema asciinema/asciinema/bin/bash
    
    
    root@6689517d99a1:~# apt-get install foobar
    
    
    root@6689517d99a1:~# asciinema rec
    
    
    
    

    从源代码签出运行最新版本

    如果 上面 不能正常工作,只需克隆 repo 并直接从checkout运行 asciinema。

    克隆 repo:

    
    git clone https://github.com/asciinema/asciinema.git
    
    
    cd asciinema
    
    
    
    

    如果你想要最新的稳定版本:

    
    git checkout master
    
    
    
    

    如果你想要当前的开发版本:

    
    git checkout develop
    
    
    
    

    然后运行它:

    
    python3 -m asciinema --version
    
    
    
    

    用法

    asciinema由多个命令组成,类似于 gitapt-get 或者 brew

    运行不带参数的asciinema 时将显示help帮助 message,列出所有可用的命令及其选项。

    rec [filename]

    记录终端会话。

    通过运行 asciinema rec [filename],你可以启动一个新的记录会话。 可以使用 -c 选项( 请参见下面) 指定记录的命令( 进程),默认为 $SHELL,这在大多数情况下是你想要的。

    退出 shell ( 点击Ctrl+D或者键入 exit ) 时录制完成。 如果记录的进程不是 shell,则在进程退出时记录完成。

    在这个例子中,如果 filename 参数被省略,那么结果的asciicast将被上传到 asciinema服务器( 默认情况下,它会被监视并共享到。

    如果给定 filename 参数,则生成的记录( 叫做 asciicast ) 将保存到本地文件中。 它以后可以用 asciinema play <filename> 和/或者上传到asciinema服务器,带有 asciinema upload <filename>

    ASCIINEMA_REC=1 添加到记录的进程 环境变量。 这可以通过 shell 文件( .bashrc.zshrc )的配置来改变提示或者在记录 shell 时播放声音。

    可用选项:

    • --stdin - 启用 stdin ( 键盘) 记录( 请参见下面)
    • --append --附加到现有记录
    • --raw - 保存原始的STDOUT输出,无需定时信息或者其他元数据
    • --overwrite --如果记录已经存在则覆盖该记录
    • -c, --command=<command> - 指定要记录的命令,默认为 $SHELL
    • -e, --env=<var-names> - 捕获的环境变量 列表,默认值为 SHELL,TERM
    • -t, --title=<title> - 指定asciicast的标题
    • -i, --idle-time-limit=<sec> - 限制记录终端不活动到最大 <sec>
    • -y, --yes - 向所有提示应答"是"( 比如。 上传确认)
    • -q, --quiet - 安静,取消所有通知/警告( 暗示 -y )

    标准记录允许捕获用户在当前记录的shell 中键入的所有字符。 这可能由玩家使用( 比如。 asciinema播放器 ) 显示按下的按键。 因为它基本上是一个密钥日志记录( 作用域为单个 shell 实例),默认情况下它被禁用,必须通过 --stdin 选项显式启用。

    play <filename>

    在终端中记录的重放记录的。

    这里命令直接在你的终端中重播给定的asciicast ( 按 rec 命令记录)。

    以下是可用的键盘快捷键:

    • 空间- 切换暂停
    • - 一次通过( 暂停时) 录制一个帧,
    • Ctrl+C - 退出。

    从本地 file: 播放

    
    asciinema play/path/to/asciicast.cast
    
    
    
    

    从 HTTP(S) URL播放:

    
    asciinema play https://asciinema.org/a/22124.cast
    
    
    asciinema play http://example.com/demo.cast
    
    
    
    

    从asciicast页面URL播放( 需要 <link rel="alternate" type="application/x-asciicast" href="/my/ascii.cast"> 在页面的HTML中:

    
    asciinema play https://asciinema.org/a/22124
    
    
    asciinema play http://example.com/blog/post.html
    
    
    
    

    从标准输入中播放:

    
    cat/path/to/asciicast.cast | asciinema play -
    
    
    ssh user@host cat asciicast.cast | asciinema play -
    
    
    
    

    从IPFS播放:

    
    asciinema play dweb:/ipfs/QmNe7FsYaHc9SaDEAEXbaagAzNw9cH7YbzN4xV7jV1MCzK/ascii.cast
    
    
    
    

    可用选项:

    • -i, --idle-time-limit=<sec> - 限制重播终端不活动到最大 <sec>
    • -s, --speed=<factor> - 播放速度( 可以是小数)

    对于最佳播放体验,建议在不小于录制的尺寸的终端上运行 asciinema play,因为新终端大小的控制序列没有"转码"。

    cat <filename>

    将记录的的全部输出打印到终端上。

    asciinema play <filename> 使用存储在asciicast中的定时信息重播记录的会话,asciinema cat <filename> 将完整的输出( 包括所有转义序列) 转储到终端。

    asciinema cat existing.cast> output.txt 给出的结果与通过 asciinema rec --raw output.txt

    upload <filename>

    上传记录的asciicast到 asciinema.org 站点。

    这个命令上传给 asciinema.org,的asciicast ( 按 rec 命令记录),它可以被监视和共享。

    如果你想在发布之前检查一个,那么 asciinema rec demo.cast + asciinema play demo.cast + asciinema upload demo.cast 是一个不错的组合。

    auth

    将安装ID与 asciinema.org 用户帐户链接

    如果你想在 asciinema.org 管理你的录制( 更改标题/主题,删除),你需要将你的"安装 ID"与 asciinema.org 用户帐户联系起来。

    这里命令显示要在网页浏览器中打开的URL以进行这里操作。 你可能会被要求先登录。

    安装ID是在第一次运行asciinema时本地生成的随机标识(。UUID ),并保存在 $HOME/.config/asciinema/install-id。 它的目的是将本地机器与上传的记录连接起来,以便以后可以与 asciinema.org 帐户关联。 这样我们就可以从帐户创建中分离上传,让它们按照任何顺序发生。

    在每个使用asciinema的机器和系统用户帐户上生成一个新的安装 on,以便在单个 asciinema.org 帐户中运行 asciinema auth

    2.0之前的asciinema版本混淆了安装ID为"api令牌"。

    在网站上主持录音

    就像在 Usage> rec 部分中提到的,如果省略了 filename 参数,那么记录的asciicast将被上载到 asciinema.org。 你可以在那里观看,通过秘密网址分享它。

    如果你希望自己主持录音,你可以通过以下两种方式来进行:

    配置文件

    你可以通过在 $HOME/.config/asciinema/config 中创建配置文件来配置 asciinema。

    配置被分成几个部分( [api][record][play] )。 下面列出了每个部分的所有可用选项:

    [api]; API server URL, default: https://asciinema.org; If you run your own instance of asciinema-server then set its address here; It can also be overriden by setting ASCIINEMA_API_URL environment variableurl = https://asciinema.example.com[record]; Command to record, default: $SHELLcommand =/bin/bash -l; Enable stdin (keyboard) recording, default: nostdin = yes; List of environment variables to capture, default: SHELL,TERMenv = SHELL,TERM,USER; Limit recorded terminal inactivity to max n seconds, default: offidle_time_limit = 2; Answer"yes" to all interactive prompts, default: noyes = true; Be quiet, suppress all notices/warnings, default: noquiet = true[play]; Playback speed (can be fractional), default: 1speed = 2; Limit replayed terminal inactivity to max n seconds, default: offidle_time_limit = 1

    一个非常小的配置文件可以如下所示:

    [record]idle_time_limit = 2

    可以通过设置 $ASCIINEMA_CONFIG_HOME 环境变量来更改配置文件位置,该变量应指向目录。

    如果 $XDG_CONFIG_HOME 是在Linux上设置的,那么asciinema使用 $XDG_CONFIG_HOME/asciinema/config 而不是 $HOME/.config/asciinema/config

    1.1之前的asciinema版本使用 $HOME/.asciinema/config。 如果你在那里,你应该 mv $HOME/.asciinema $HOME/.config/asciinema

    如果你想对这个项目贡献贡献,请查看贡献的页面。

    作者

    利用 Marcin Kulik 和优秀的开源贡献者开发。

    许可证

    版权所有 © 2011 -2017 Marcin Kulik。

    所有代码均以 GPL,v3或者更高版本授权。 有关详细信息,请参阅许可证文件。


    TERM  记录  终端  ses  Session  Recorder  
    相关文章