Tutorial

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

Published on April 13, 2020
Русский
Как записывать сеансы терминала и обмениваться ими при помощи 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, чтобы увидеть записанные сеансы терминала, которыми поделились другие пользователи:

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

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.



Still looking for an answer?

Ask a questionSearch for more help

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!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.