// Tutorial //

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

Published on April 13, 2020
Default avatar
By Jamie Scaife
Security Engineer
Русский
Как записывать сеансы терминала и обмениваться ими при помощи Terminalizer в Ubuntu 18.04

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

Введение

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

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

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

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

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

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

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

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

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

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

  1. 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, запустив следующую команду:

  1. terminalizer --version

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

Output
0.7.1

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

  1. terminalizer init

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

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

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

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

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

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

  1. terminalizer record your-recording

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

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

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

Например:

  1. pwd
  2. date
  3. whoami
  4. 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 для отмены этого, поскольку вы можете сначала воспроизвести запись терминала локально.

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

  1. 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.

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

  1. terminalizer play your-recording --speed-factor 2

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

  1. terminalizer play your-recording --speed-factor 0.5

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

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

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

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

  1. 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:

  1. 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, чтобы увидеть записанные сеансы терминала, которыми поделились другие пользователи:


Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.

Sign up
About the authors
Default avatar
Security Engineer

IT Security Engineer, technical writer and occasional blogger from the United Kingdom, with an interest in security defence and blue team activities.


Default avatar
Developer and author at DigitalOcean.

Still looking for an answer?

Was this helpful?
Leave a comment

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!