
Ищете быстрый способ записать свой терминал Linux, не прибегая к сложностям использования полнофункциональных программ записи экрана? asciinema — это то, что вам нужно, и я покажу вам, как с ней начать работать.
Что такое асцинема?
asciinema — это командная строка для записи вашего терминала. В отличие от традиционных программ записи экрана, которым требуется некоторая начальная настройка для записи экрана вашего устройства, asciinema делает это по-другому. Она записывает сеанс вашего терминала в специальном формате. Вы можете воспроизвести запись прямо на терминале и поделиться ею с другими.
Мне показалось весьма интересным то, что сохраняемая вами запись не является видео. Вместо этого, когда вы воспроизводите ее, asciinema воспроизводит то, что вы делали на терминале, с помощью текста. Так, например, если вы запускаете определенный набор команд, эти команды будут набраны и запущены в терминале автоматически, воспроизводя ваши действия.
Однако это всего лишь визуальная репликация. Эти команды на самом деле не будут запущены в системе снова. Вам просто будет казаться, что эти команды запущены.
Еще одна важная вещь, которую нужно знать, это то, что asciinema не создает никаких видеофайлов. Весь смысл asciinema в том, чтобы избегать тяжелых видеофайлов. Вместо этого он создает файлы asciicast, заканчивающиеся расширением .cast. Если вам действительно нужно видео, то вы можете либо использовать традиционный рекордер экрана, например SimpleScreenRecorder, либо преобразовать файл .cast в GIF или другой видеоформат.
Установка asciinema на Linux
Самый простой способ установить asciinema на Linux — использовать менеджер пакетов Python pipx. Это также рекомендуемый способ, поскольку он всегда устанавливает последнюю выпущенную версию. Для этого метода вам сначала нужно установить pipx на вашу систему Linux. После этого просто выполните эту команду:
pipx установить asciinema

После установки попробуйте проверить его версию, чтобы подтвердить установку.
асцинема —версия
Если вы не хотите устанавливать pipx, то вы можете использовать и другие менеджеры пакетов. Например, в Debian, Ubuntu и их производных дистрибутивах выполните:
sudo apt install asciinema
Вы также можете использовать PPA, поддерживаемый Дэвидом Адамом для Ubuntu.
sudo apt-add-repository ppa:zanchey/asciinema
Обновление sudo apt
sudo apt install asciinema
В Arch и Manjaro вам необходимо запустить:
sudo pacman -S asciinema
В Fedora используйте:
sudo dnf установить asciinema
Если вы используете Gentoo, выполните:
sudo emerge -av asciinema
Для пользователей openSUSE команда выглядит так:
sudo zypper установить asciinema
Если вы предпочитаете собирать ПО из исходников, вы можете сделать и это. Все, что вам нужно сделать, это клонировать репозиторий GitHub и запустить asciinema оттуда.
git-клон https://github.com/asciinema/asciinema.git
cd асцинема
git checkout основной
python3 -m asciinema —версия
Запись базового терминального сеанса с использованием asciinema
Чтобы записать быстрый сеанс работы с терминалом с помощью asciinema, выполните:
asciinema rec test.cast
Мы использовали команду rec с именем файла записи, в котором будет сохранен сеанс. Это запустит запись. Итак, после запуска указанной выше команды начните делать что-либо на терминале, чтобы она была записана. После завершения записи вы можете нажать Ctrl+D или ввести exit и нажать Enter, чтобы завершить запись.
После завершения записи вы найдете test.cast или любое другое имя файла, которое вы использовали, в текущем каталоге.

После того, как вы закончили запись, вы можете воспроизвести ее на своем терминале с помощью asciinema. Запустите:
asciinema играть test.cast


Как вы видите, команды, которые вы запускали во время записи, будут визуально перезапущены на терминале. Пока идет воспроизведение, вы можете приостанавливать и возобновлять запись с помощью пробела. Вы также можете управлять скоростью воспроизведения с помощью параметра —speed или -s. Чтобы воспроизвести запись с удвоенной скоростью, выполните:
asciinema play -s 2 test.cast
Если вы хотите остановить воспроизведение, нажмите Ctrl+C на клавиатуре. Одна вещь, которая меня поразила в asciinema, это то, что вы также можете вырезать некоторое время простоя из записи. Вы можете сделать это во время воспроизведения лига или перед его записью. Это делает запись гораздо более приятной для просмотра. Для этого мы передаем параметр —idle-time-limit или -i.
asciinema rec -i 2 demo.cast # Для записи
asciinema play -i 2 demo.cast # Для воспроизведения записи
Другой вариант — поделиться своим кастом через asciinema. Команда upload в asciinema позволяет вам поделиться им с другими через сервер asciinema.org.
asciinema загрузить demo.cast

После запуска этой команды вы получите секретную ссылку в терминале. Вы можете скопировать и вставить ссылку в веб-браузер, чтобы просмотреть запись терминала. Обратите внимание, что вам понадобится учетная запись в них для просмотра сеанса. Вам также придется связать свою учетную запись с инструментом asciinema CLI, чтобы сохранить свои записи на сервере. В противном случае они будут автоматически удалены через 7 дней.
Изучение расширенных функций
Мы рассмотрели основные команды, которые можно использовать с asciinema. С ней можно сделать гораздо больше. Давайте немного углубимся в команды, которые вы уже видели.
Для записи сеанса вы можете выбрать команду, которую хотите записать, а не весь терминал. Например, предположим, что вы хотите записать команду htop. Для этого вам нужно использовать опцию —command или -c, например:
asciinema Rec -c htop test.cast
Он начнет записывать интерфейс команды htop вместо всей оболочки. Чтобы закончить запись, вам нужно выйти из htop, нажав q. Во время записи вы можете приостанавливать и возобновлять запись, так же, как вы можете делать это при записи на реальной камере. Для этого используйте Ctrl+. Это полезно, когда у вас на терминале есть что-то конфиденциальное, что вы хотели бы пропустить.

В дополнение к воспроизведению сеанса, вы также можете вывести весь вывод сеанса на терминал. Для этого у вас есть опция cat. Итак, из предыдущего примера давайте выведем test.cast.
асцинема кошка test.cast

Вы также можете сохранить последовательность команд в выходном файле.
asciinema cat existing.cast >output.txt # Или запустить
asciinema rec — необработанный вывод.txt

Вы также можете объединить несколько записей с помощью одной команды.
асциинема кошка первый.каст второй.каст третий.каст
asciinema также поддерживает систему аутентификации. Если у вас есть учетная запись на asciinema.org, вы можете связать ее с вашим CLI с помощью команды auth.
asciinema auth

Вам дана ссылка. Когда вы переходите по ней, вы попадаете на портал входа. После успешного входа в систему она аутентифицирует вашу локальную систему с использованием этой учетной записи. После этого вы можете сохранить все свои записи на сервере.
asciinema имеет файл конфигурации, который вы можете использовать для изменения некоторых настроек. Сочетания клавиш — один из них. Создайте файл конфигурации в каталоге $HOME/.config/asciinema/config. Существует множество вариантов для изучения. Вот пример файла, которому вы можете следовать:
[апи]
URL-адрес = https://asciinema.example.com
[записывать]
команда = /bin/bash -l
стандартный ввод = да
env = ОБОЛОЧКА,ТЕРМИН,ПОЛЬЗОВАТЕЛЬ
предел_времени_бездействия = 2
да = правда
тихий = правда
pause_key = Cp
add_marker_key = Cx
prefix_key = Ca
[играть]
скорость = 2
предел_времени_бездействия = 1
pause_key = p
step_key = с
следующий_маркер_ключ = м
[уведомления]
включено = нет
команда = tmux отображать-сообщение «$TEXT»
Вы также можете задать переменные окружения, связанные с asciinema. Переменная ASCIINEMA_API_URL определяет URL для сервера asciinema. По умолчанию он установлен на https://asciinema.org. Если вы размещаете сервер самостоятельно, вы можете задать базовый URL для своего собственного сервера.
Другая полезная переменная — ASCIINEMA_CONFIG_HOME. Она определяет путь к файлу конфигурации. Значение по умолчанию — $HOME/.config/asciinema. Однако, если у вас установлена XDG_CONFIG_HOME, то ее значение по умолчанию — $XDG_CONFIG_HOME/asciinema.
Вы также можете встроить записи asciinema на свой веб-сайт. После загрузки записи на сервер asciinema вы можете встроить ее на веб-сайт с помощью JavaScript
Источник доступен на сервере, куда вы загрузили запись. Просто нажмите кнопку «Поделиться» и скопируйте строку вставки JavaScript.

Несколько интересных способов использования асцинемы
Если вы перейдете на страницу исследования на официальном сайте, вы увидите, как разные люди творчески используют asciinema для записи забавных вещей. Например, в документации есть пример из «Звездных войн». Вы можете использовать другие забавные команды Linux с ним. Например, чтобы сделать сессию немного более красочной, вы можете использовать lolcat. Вы можете создавать ASCII-арт и записывать его. Нет предела, когда дело касается использования asciinema.
Есть еще много чего, что можно изучить об asciinema. Если вам интересно узнать, что еще вы можете сделать, ознакомьтесь с официальной документацией. Кроме того, если вы ищете инструмент для записи экрана, есть много инструментов для записи экрана в Linux.