Воспроизведение записанных сеансов терминала с использованием Scriptreplay
Некоторое время назад мы узнали, как записывать все, что вы делаете в Терминале, с помощью команды Script в Linux. Используя команду «Сценарий», мы можем записывать сеансы терминала в файл машинописного текста и просматривать их позже с помощью команды Cat или любого другого приложения для просмотра текста. Сегодня мы увидим, как воспроизвести записанные сеансы терминала с помощью команды Scriptreplay в Linux.
Scriptreplay используется для воспроизведения машинописного текста, созданного командой «Script», на стандартный вывод. Он является частью пакета util-linux в системах на базе RPM и пакета bsdutils в системах на базе DEB и предустановлен в большинстве современных операционных систем Linux. Итак, нам не нужно его устанавливать.
Воспроизведение записанных сеансов терминала с использованием Scriptreplay
Как вы, возможно, уже знаете, команда cat отображает только машинописные тексты, но не воспроизводит их. Если вы хотите воспроизвести действие Терминала, а не просто просмотреть его, используйте команду "scriptreplay".
Чтобы воспроизвести действия терминала с помощью scriptreplay, вы должны сначала записать их с помощью команды "script" с информацией о времени в файле с использованием параметра -t, как показано ниже.
script -a my_terminal_activities -t=time.log
Или,
script -a my_terminal_activities --timing=time.log
Здесь,
- terminal.log — это файл, содержащий выходные данные машинописного текста. Вы можете использовать любое имя по вашему выбору, например time.txt, Timing.log и т. д.
- my_terminal_activities — это файл, который содержит выходные данные терминала сценария вывода, то есть все записанные действия терминала.
Теперь делайте все, что хотите, в своем Терминале. Например, я собираюсь запустить несколько случайных команд Linux в своем терминале.
lsb_release -a
uname -a
После выполнения всех команд завершите запись командой:
exit
После завершения записи просто воспроизведите ее с помощью команды:
scriptreplay -t=time.log my_terminal_activities
Или,
scriptreplay --timing=time.log my_terminal_activities
Эта команда начнет воспроизводить записанный сеанс терминала, а не просто показывать всю активность.
Вот пример вывода моей системы Ubuntu 18.04:
Воспроизведение записанных сеансов терминала с помощью команды Scriptreplay в Linux
Увеличение или уменьшение скорости воспроизведения
По умолчанию Scriptreplay воспроизводит вывод с той же скоростью, с которой он выглядел первоначально при записи машинописного текста. Однако вы можете увеличить или уменьшить скорость воспроизведения по своему усмотрению.
Например, чтобы воспроизвести машинописный текст на удвоенной (т. е. 2-кратной) скорости, по сравнению с исходной, запустите:
scriptreplay -t=terminal.log my_terminal_activities 2
Чтобы воспроизвести машинописный текст на половине исходной скорости:
scriptreplay -t=terminal.log my_terminal_activities 0.5
Чтобы воспроизвести сценарий со скоростью в десять раз медленнее исходной, запустите:
scriptreplay -t=terminal.log my_terminal_activities 0.1
Обратите внимание, что Scriptreplay просто отображает активность сеанса, записанную с помощью команды Script. Фактически он не будет запускать команды/программы, которые были запущены при записи машинописного текста. Поскольку одна и та же информация просто отображается, гарантированно, что scriptreplay будет работать правильно только в том случае, если он будет запущен на том же типе терминала, на котором был записан машинописный сценарий.
Для получения помощи запустите:
$ scriptreplay --help
Usage:
scriptreplay [-t] timingfile [typescript] [divisor]
Play back terminal typescripts, using timing information.
Options:
-t, --timing <file> script timing output file
-s, --typescript <file> script terminal session output file
-d, --divisor <num> speed up or slow down execution with time divisor
-m, --maxdelay <num> wait at most this many seconds between updates
-h, --help display this help
-V, --version display version
Более подробную информацию можно найти на страницах руководства.
man scriptreplay
Рекомендуем прочитать:
- Asciinema – записывайте сеансы терминала и делитесь ими в Интернете
- Как сохранять команды и использовать их по требованию
- Добавьте команды Linux в закладки для упрощения повторного вызова
- Применяйте теги к командам Linux, чтобы легко извлекать их из истории
- Легкий вызов забытых команд Linux с помощью Apropos
- Pet – простой менеджер фрагментов командной строки