Tutorial

Как записывать сеансы терминала и обмениваться ими при помощи Terminalizer в Ubuntu 18.04

Ubuntu 18.04

Автор выбрал фонд Electronic Frontier Foundation для получения пожертвований в рамках программы Write for DOnations.

Введение

Terminalizer — приложение записи терминала, позволяющее записывать сеанс терминала в реальном времени и воспроизводить его позже. Он работает таким же образом, как и устройство записи рабочего стола, но в терминале.

Запись сеанса терминала полезна, если вы хотите просмотреть конкретную деятельность снова или поспособствовать в отладке особенно сложной ошибки. Записи, выполняемые при помощи Terminalizer, могут также экспортироваться в качестве анимированных GIF, которые полезны для обмена в онлайн-режиме или добавления в маркетинговые материалы вашего программного обеспечения.

В этом обучающем руководстве вы установите Terminalizer, используете его для записи и воспроизведения сеансов терминала, настроите свои записи и затем экспортируете их для обмена в онлайн-режиме.

Предварительные требования

Для данного обучающего руководства вам потребуется следующее:

Если вы хотите поделиться своими записями в онлайн-режиме, вам понадобится следующее:

Подготовив все вышеперечисленное, войдите на сервер без привилегий root, чтобы начать подготовку.

Шаг 1 — Установка Terminalizer

На этом шаге вы скачаете и установите Terminalizer в вашей системе. Terminalizer написан с помощью Node.js и может быть установлен с помощью диспетчера пакетов npm.

Чтобы установить Terminalizer на глобальном уровне в вашей системе, выполните следующую команду:

  • sudo npm install --global --allow-root --unsafe-perm=true terminalizer

Terminalizer использует каркас приложений Electron для экспорта зарегистрированных сеансов терминала в формат GIF. Для установки Electron на глобальном уровне в вашей системе требуется аргумент команды --unsafe-perms=true.

После установки Terminalizer вы увидите примерно следующий вывод:

Output
. . . /usr/local/lib └── terminalizer@0.7.1

Далее проверьте установку Terminalizer, запустив следующую команду:

  • terminalizer --version

Будет выведен текст следующего вида:

Output
0.7.1

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

  • terminalizer init

Результат будет выглядеть примерно следующим образом:

Output
The global config directory is created at /home/user/.terminalizer

Теперь, когда вы установили Terminalizer, можно сделать первую запись терминала.

Шаг 2 — Запись и воспроизведение сеанса терминала

На этом шаге вы записываете и воспроизводите сеанс терминала.

В начале настройте новую запись Terminalizer с помощью имени на ваш выбор:

  • terminalizer record your-recording

В результате будет выведено следующее, чтобы указать, что запись началась:

Output
The recording session has started Press Ctrl+D to exit and save the recording

Теперь вы можете перейти к любым необходимым действиям в вашем терминале. Каждое нажатие клавиши и команда будут записываться в реальном времени в Terminalizer.

Например:

  • pwd
  • date
  • whoami
  • echo "Hello, world!"

Когда хотите остановить запись, нажмите CTRL+D. Затем Terminalizer сохранит запись в указанном файле в формате YAML, например your-recording.yml.

Output
Successfully Recorded The recording data is saved into the file: /home/user/your-recording.yml

Возможно, Terminalizer предложит поделиться записью в онлайн-режиме. Сейчас нажмите CTRL+C для отмены этого, поскольку вы можете сначала воспроизвести запись терминала локально.

Далее воспроизведите ваш записанный сеанс терминала при помощи следующей команды:

  • terminalizer play your-recording

В результате записанный сеанс будет воспроизведен в реальном времени в вашем терминале:

Output
user@droplet:~$ pwd /home/user user@droplet:~$ date Sun Mar 8 14:55:36 UTC 2020 user@droplet:~$ whoami user user@droplet:~$ echo "Hello, world!" Hello, world! user@droplet:~$ logout

Также вы можете изменять скорость воспроизведения вашей записи при помощи опции --speed-factor.

Например, следующее действие будет воспроизводить вашу запись в два раза медленнее (½ скорости):

  • terminalizer play your-recording --speed-factor 2

Также вы можете воспроизвести запись в два раза быстрее (скорость х 2):

  • terminalizer play your-recording --speed-factor 0.5

Вы записали и воспроизвели сеанс терминала. Далее вы можете поделиться записью терминала в онлайн-режиме.

Шаг 3 — Обмен записанными сеансами терминала

На этом шаге вы поделитесь своим записанным сеансом терминала в онлайн-режиме на странице изучения Terminalizer.

Сначала выберите записанный сеанс, которым вы хотите поделиться:

  • terminalizer share your-recording

Затем вам будет предложено предоставить несколько базовых метаданных по вашей записи, в том числе название и описание:

Output
Please enter some details about your recording ? Title Title of Your Recording ? Description Description of Your Recording ? Tags such as git,bash,game Comma-separated Tags for Your Recording

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

Если вы впервые поделились записанным сеансом с помощью Terminalizer, вам нужно будет привязать свою учетную запись Terminalizer. Terminalizer отобразит ссылку для подтверждения, если это потребуется:

Output
Open the following link in your browser and login into your account https://terminalizer.com/token?token=your-token When you do it, press any key to continue

Предупреждение. Убедитесь, что ваш токен Terminalizer остается приватным, т. к. он позволяет любому пользователю, владеющему им, получить доступ к вашей учетной записи Terminalizer.

После того как вы прошли по ссылке в вашем браузере и вошли в вашу учетную запись Terminalizer, нажмите любую клавишу, чтобы продолжить.

Теперь Terminalizer загрузит вашу запись и предоставит ссылку для ее просмотра:

Output
Successfully Uploaded The recording is available on the link: https://terminalizer.com/view/your-recording-id

Пройдя по ссылке в браузере на настольном компьютере, вы сможете просматривать записи, которыми вы поделились:

Скриншот веб-сайта Terminalizer, показывающий пример записи терминала, которой вы поделились

Вы поделились записанным сеансом терминала на веб-сайте Terminalizer и просмотрели его в браузере.

Шаг 4 — Настройка расширенной конфигурации Terminalizer

Теперь, когда вы ознакомились с Terminalizer, вы можете начинать рассматривать некоторые более расширенные опции персонализации, такие как способность изменять цвета и стили отображения.

Каждая запись наследует конфигурацию по умолчанию из глобального файла конфигурации Terminalizer, который находится в ~/.terminalizer/config.yml​​​. Это означает, что вы можете изменять конфигурацию для отдельных записей напрямую, изменяя файл записи (например, your-recording.yml). Также вы можете изменять глобальную конфигурацию, которая будет влиять на все новые записи.

В этом примере вы измените глобальный файл конфигурации, но те же указания применяются и к отдельным файлам записи.

Сначала откройте файл глобальной конфигурации Terminalizer в текстовом редакторе, например nano:

  • nano ~/.terminalizer/config.yml

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

Есть несколько стандартных вариантов конфигурации, которые вы, возможно, захотите изменить по вашему желанию:

  • cols: в явном виде задает количество столбцов терминала, используемых для записи.
  • rows: в явном виде задает количество строк терминала, используемых для записи.
  • frameDelay: переопределяет задержку между каждым нажатием клавиши во время воспроизведения.
  • maxIdleTime: указывает максимальное время между нажатиями клавиш во время воспроизведения.
  • cursorStyle: указывает стиль курсора умолчанию на выбор из прямоугольника, полосы и подчеркивания.
  • fontFamily: указывает список предпочитаемых шрифтов воспроизведения в порядке предпочтения.
  • theme: изменяет цветовую схему воспроизведения, например для создания черно-белого терминала и т. п.

Например, вы можете сделать бело-черный дисплей терминала, настроив следующие опции:

config.yml
. . .
theme:
  background: "white"
  foreground: "black"
. . .

Результат будет выглядеть примерно так:

Скриншот веб-сайта Terminalizer, показывающий пример записи с черно-белой темой

Вы можете изменять стиль курсора, упрощая понимание записи, например, посредством изменения курсора по умолчанию в виде прямоугольника на курсор в виде подчеркивания:

config.yml
. . .
cursorStyle: underline
. . .

Результат будет выглядеть примерно так:

Скриншот веб-сайта Terminalizer, показывающий пример записи с курсором в виде подчеркивания​​

После внесения всех необходимых изменений сохраните файл и возвращайтесь в терминал.

Если вы изменили глобальную конфигурацию Terminalizer, эти настройки будут применяться ко всем новым записям, выполняемым далее. Если вы изменяете конфигурацию конкретной записи, Terminalizer немедленно применяет изменения к этой конкретной записи.

Обратите внимание, что настраиваемый стиль воспроизведения применяется только к сеансам записи, которыми поделились. Их воспроизведение непосредственно в вашем терминале всегда будет происходить со стилем и цветовой схемой вашего терминала по умолчанию.

На этом последнем шаге вы рассмотрели некоторые из расширенных вариантов настройки конфигурации в Terminalizer.

Заключение

В этой статье вы использовали Terminalizer для записи сеанса терминала и обмена данными о нем. Теперь у вас есть знания, необходимые для создания записанных демо-версий вашего программного обеспечения для использования в маркетинговых материалах или для обмена секретными приемами командной строки с друзьями.

Если вы хотите сделать рендеринг и экспорт записей Terminalizer в формат GIF, вы можете установить Terminalizer на компьютере с графическим интерфейсом пользователя/на настольном компьютере и использовать встроенные функции рендеринга:

Также вы можете посетить веб-сайт Terminalizer, чтобы увидеть записанные сеансы терминала, которыми поделились другие пользователи:

Creative Commons License