Asciinema:一款强壮的终端录屏东西

最近看见一个好的终端录屏东西,现在记载一下并进行共享。

终端录屏东西asciinema是一个免费和开源的解决方案,用于记载终端会话并在网上共享。它支撑在终端内直接录制,供给播映、仿制粘贴和嵌入功用。装置方面,支撑多种操作系统,包括Linux、MacOS和FreeBSD。运用上,经过指令行界面即可轻松录制、播映和共享终端会话。此外,asciinema还支撑自保管服务器,答应用户完全掌控录制内容。对于不支撑<script>标签的网站,还能够经过动画 GIF 文件来嵌入演示。

地址:

功用:

  • 一个免费和开源的解决方案,用于记载终端会话并在网上共享。

特点:

  • 轻松录制终端:直接在终端内进行录制。开端录制,请输入指令 asciinema rec demo.cast,完毕时请按 ctrl d 或输入 exit
  • 轻松仿制粘贴:观看录制内容时,暂停播映器,然后仿制粘贴您需求的内容。毕竟,这些都只是文本。
  • 轻松嵌入:轻松将 asciinema 播映器嵌入到您的博客文章、项目文档或会议讲演的幻灯片中 。

装置

  • pip/pipx
pipx install asciinema
python3 -m pip install asciinema
  • Linux

    • Arch Linux
    sudo pacman -S asciinema
    
    • Debian
    sudo apt install asciinema
    
    • Fedora
    sudo dnf install asciinema
    
    • Gentoo
    sudo emerge -av asciinema
    
  • Ubuntu

sudo apt install asciinema
  • MacOS
brew install asciinema
  • FreeBSD
cd /usr/ports/textproc/py-asciinema && make install
  • 源码装置
git clone https://github.com/asciinema/asciinema.git
cd asciinema
git checkout main
python3 -m asciinema --version

运用

记载Record

现在开端记载终端操作:

输入以下指令开端记载:

asciinema rec demo.cast

这将发动一个新的录制会话。在此会话期间,终端中显现的一切内容都将被捕捉并保存为 asciicast 格局的 demo.cast 文件。

想完毕录制会话时,退出 shell 即可。这能够经过按 ctrl d 或输入 exit 指令来完成。

重放Replay

经过以下指令回放录制内容:

asciinema play demo.cast

播映过程中,您能够按空格键暂停或恢复,或按 ctrl c 提前完毕播映。暂停的时分能够直接仿制视频中的内容。

共享Sharing

尽管在终端中回放录制内容很便当,但与在互联网上与更广泛的观众共享比较,其效果相对有限。

能够在 asciinema.org 上保管您的录制内容,这是一个由 asciinema 服务器支撑的终端录制专用保管平台。尽管将录制内容保管在 asciinema.org 上是可选的,但这会带来许多便当,如轻松共享和嵌入。

运用以下指令将录制内容上传到 asciinema.org:

asciinema upload demo.cast

执行该指令后,会显现一个私密链接,指向能够在其间查看录制内容的页面。能够自由地将这个链接共享给任何人。

录制页面上的播映器组件并非传统视频播映器,而是专为播映终端会话而构建的 asciinema 播映器。它答应仿制其终端视图的内容,就像在一般终端中一样。能够测验:暂停播映,挑选一些文本,仿制,然后粘贴到其他地方。

假如想在 asciinema.org 上管理录制内容(例如设置标题、更改终端颜色主题),需求将上传内容与 asciinema.org 用户账户相关。为此,请运转:

asciinema auth

这个指令会显现一个 URL,当在网页浏览器中翻开时,该 URL 会将 CLI 与 asciinema.org 账户进行认证,确保能拜访上传内容。

嵌入Embedding

asciinema 播映器能够经过在网页中嵌入 HTML <script> 标签来在任何网站上运用。这种嵌入的播映器常被用于博客文章、项目文档和会议讲演的幻灯片中。

上传到 asciinema.org 的一切录制内容都能够经过运用在录制页面上供给的脚本片段来嵌入到网站。这个脚本片段的款式如下:

要获取这个脚本,请拜访录制内容的页面,点击“共享”按钮,并从“嵌入播映器”部分仿制脚本。

上面的 <script> 标签被放置在这段文字的正下方,这样就生成了下面的播映器。

Asciinema:一款强壮的终端录屏东西

假如不想依赖 asciinema.org 来嵌入演示,能够在网站上这样运用独立的播映器:

<!DOCTYPE html>
<html>
<head>
  ...
  <link rel="stylesheet" type="text/css" href="/asciinema-player.css" />
  ...
</head>
<body>
  ...
  <div id="demo"></div>
  ...
  <script src="/asciinema-player.min.js"></script>
  <script>
    AsciinemaPlayer.create('/demo.cast', document.getElementById('demo'));
  </script>
</body>
</html>

自保管服务器

尽管 asciinema.org 是 CLI 用于上传录制内容的默许 asciinema 服务器,但假如希望完全掌控录制内容,能够挑选自行保管服务器实例。

asciinema 服务器被制作为 OCI 容器镜像,能够在 ghcr.io/asciinema/a… 上找到它。

以下是一个根本的 docker-compose 示例:

services:
  asciinema:
    image: ghcr.io/asciinema/asciinema-server:latest
    ports:
      - '4000:4000'
    volumes:
      - asciinema_data:/var/opt/asciinema
    depends_on:
      postgres:
        condition: service_healthy
  postgres:
    image: docker.io/library/postgres:14
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_HOST_AUTH_METHOD=trust
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U postgres']
      interval: 2s
      timeout: 5s
      retries: 10
volumes:
  asciinema_data:
  postgres_data:

运用以下指令发动:

docker compose up

接着,经过设置 ASCIINEMA_API_URL 环境变量,将 asciinema CLI 指向您的服务器:

export ASCIINEMA_API_URL=http://localhost:4000

然后录制并上传演示:

asciinema rec demo.cast
asciinema upload demo.cast

注意,上述装备仅适用于在本地测验服务器。要了解如何故完整功用和安全的方法设置服务器,请参阅完整的服务器自保管攻略

生成GIF

在那些不支撑<script> 标签但支撑 <img> 标签的网站上,能够经过动画 GIF 文件来嵌入演示。

运用 agg 东西从录制文件创立 GIF:

agg demo.cast first.gif

假如您有条件运用 <script> 标签,运用 asciinema 播映器展现录制内容一般比运用 GIF 文件更佳。与 GIF 比较,播映器支撑暂停、回放、仿制文本,并且始终能够以最佳清晰度显现终端内容。

总结

asciinema是一个功用强壮且易于运用的终端录屏东西。它答应你轻松录制、播映和共享终端会话,十分合适需求展现终端操作的场景。无论是博客文章、项目文档仍是会议讲演,asciinema都能供给出色的体验。测验运用asciinema,让你的终端操作愈加高效和便捷。

你对这篇文章有什么看法?请在评论区留言共享你的想法!有类似的软件欢迎共享!