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

Введение

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

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

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

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

terminalizer illustration for: Предварительные требования

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

  • Node.js и npm, которые можно установить в соответствии с указаниями раздела Установка стабильной версии дистрибутива для Ubuntu в обучающем руководстве Установка Node.js в Ubuntu 18.04.

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

Подготовив все вышеперечисленное, войдите на сервер без привилегий 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 вы увидите примерно следующий вывод:

				
					
[secondary_label Output]

. . .

/usr/local/lib

└── terminalizer@<^>0.7.1<^>

				
			

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

				
					
terminalizer --version

				
			

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

				
					
[secondary_label Output]

<^>0.7.1<^>

				
			

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

				
					
terminalizer init

				
			

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

				
					
[secondary_label Output]

The global config directory is created at

/home/<^>user<^>/.terminalizer

				
			

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

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

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

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

				
					
terminalizer record <^>your-recording<^>

				
			

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

				
					
[secondary_label Output]

The recording session has started

Press Ctrl+D to exit and save the recording

				
			

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

Например:

				
					
[environment second]

pwd

date

whoami

echo "Hello, world!"

				
			

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

				
					
[secondary_label Output]

Successfully Recorded

The recording data is saved into the file:

/home/&lt;^&gt;user&lt;^&gt;/&lt;^&gt;your-recording&lt;^&gt;.yml

				
			

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

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

				
					
terminalizer play &lt;^&gt;your-recording&lt;^&gt;

				
			

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

				
					
[secondary_label Output]

[environment third]

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.

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

				
					
terminalizer play &lt;^&gt;your-recording&lt;^&gt; --speed-factor 2

				
			

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

				
					
terminalizer play &lt;^&gt;your-recording&lt;^&gt; --speed-factor 0.5

				
			

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

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

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

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

				
					
terminalizer share &lt;^&gt;your-recording&lt;^&gt;

				
			

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

				
					
[secondary_label Output]

Please enter some details about your recording

? Title &lt;^&gt;Title of Your Recording&lt;^&gt;

? Description &lt;^&gt;Description of Your Recording&lt;^&gt;

? Tags such as git,bash,game &lt;^&gt;Comma-separated Tags for Your Recording&lt;^&gt;

				
			

[warning]

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

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

				
					
[secondary_label Output]

Open the following link in your browser and login into your account

https://terminalizer.com/token?token=&lt;^&gt;your-token&lt;^&gt;



When you do it, press any key to continue

				
			

[warning]

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

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

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

				
					
[secondary_label Output]

Successfully Uploaded

The recording is available on the link:

https://terminalizer.com/view/&lt;^&gt;your-recording-id&lt;^&gt;

				
			

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

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

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

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

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

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

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

				
					
nano ~/.terminalizer/config.yml

				
			

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

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

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

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

				
					
[label config.yml]

. . .

theme:

 background: "white"

 foreground: "black"

. . .

				
			

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

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

				
					
[label config.yml]

. . .

cursorStyle: underline

. . .

				
			

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

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

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

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

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

Заключение

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

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

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