Эта статья посвящена продукту asciinema, который позволяет записывать и делиться записями выполнения команд в терминальных сессиях.

Для того, чтобы начать пользоваться утилитой, нужно установить recorder

(CentOS)

и дать команду начала записи

Последняя команда порождает новый экземпляр оболочки и записывает весь вывод терминала. Для того чтобы закончить, просто выйдите из оболочки, набрав exit или нажав Ctrl-D.

Как это работает? Asciinema создает псевдо-терминал, снимает с него всю введенную с источника ввода информацию, сохраняет ее вместе с метками времени, и передает на выполнение системе.  Если Вас интересует детальная реализация, Вы можете посмотреть исходный код recordera.

Если аргумент filename присутствует, то запись (которая называется asciicast) сохраняется в локальный файл. В будущем он может быть проигран с помощью команды asciinema play< filename> или загружен на  asciinema.org . Для этого нужно дать команду asciinema upload< filename>. Если аргумент  filename опущен, то в таком случае (после запроса подтверждения) полученный asciicast будет загружен на asciinema.org для будущих просмотров в браузере.

Как это работает? Поскольку запись является сырым потоком текстовых и управляющих последовательностей, ее нельзя просто воспроизвести путем постепенной печати текста в соответствующие интервалы времени. Требуется интерпретация последовательностей кодов ANSI, чтобы правильно отображать изменения цвета, перемещение курсора и печатать текст в соответствующих местах на экране. Плеер снабжен собственным эмулятором терминала на основе анализатора от Пола Уильямса для ANSI-совместимых видеотерминалов. Конечным результатом является плавная анимация со всеми текстовыми и цветовыми атрибутами (жирный, подчеркивающий, инверсный, и пр.) Исходный код плеера, по заверению разработчика, также доступен для детального анализа.

При записи или проигрывании сохраненных записей можно указывать дополнительные параметры, с которыми можно ознакомиться в официальной документации. Также значения по умолчанию для параметров команды можно указать в конфигурационном файле в соответствующих разделах [record] и [play]. Раздел [api] содержит token для идентификации устройства и привязки его к аккаунту пользователя на сервере. Также можно задать параметр url для того, чтобы asciinema recorder использовал ваш собственный asciinema site instance вместо стандартного — asciinema.org.

Команда asciinema auth используется для управления записями в аккаунте на  asciinema.org.

Для того, чтобы управлять настройками записей, сохраненных на asciinema.org (например, изменить название или описание, удалить запись и пр.) нужно аутентифицироваться. Приведенная команда отображает URL , который нужно ввести в браузере, чтобы войти в свой аккаунт.

Для каждой машины, на которой запускается asciinema recorder, выдается новый, уникальный API токен. Если Вы уже зарегистрированы на сайте asciinema.org и Вы запускаете asciinema auth на новом компьютере, то это устройство добавится в Ваш аккаунт автоматически.

Вы можете синхронизировать ваш конфигурационный файл (в котором сохранен API токен) между всеми используемыми машинами, и все они будут использовать один токен. Но это не обязательно, поскольку Вы можете присоединять к Вашему аккаунту неограниченное число токенов (то есть новых устройств).

Вы можете получить ссылку на Ваше видео, нажав на кнопку «Share» на веб-странице требуемого ansicast’а. Вы также можете вставить HTML код плеера который проиграет нужное видео. Для этого используйте примеры, приведенные в официальной документации к продукту.

Подводя итог, можно сказать, что продукт интересен, как для применения в формате, предполагаемом разработчиком, так и в качестве одного из инструментов системы контроля и логирования действий, выполняемых в терминале.

Нужна помощь в записи действий в терминале, обращайтесь [email protected]