Как записать сеанс терминала в Ubuntu
Короткое описание
Этот материал показывает быстрый и надёжный способ записать сеанс терминала в Ubuntu: установка, команда для записи, воспроизведение записи и рекомендации по безопасности. Для более сложных сценариев перечислены альтернативы и контрольные списки для разных ролей.
Установка и подготовка
Откройте терминал и установите пакет bsdutils (в нём есть команды script и scriptreplay):
sudo apt-get update
sudo apt-get install bsdutilsПосле установки станут доступны команды script и scriptreplay, которые используются для записи текущего сеанса терминала и его воспроизведения.
Как начать запись
Чтобы начать запись, выполните команду, которая создаёт два файла: один — с содержимым сеанса (текст), другой — с тайминг-данными для точного воспроизведения:
script -t -a 2> /path-to/timing-file.txt /path-to/recording-file.txtПример для домашней директории:
script -t -a 2> /home/damien/timing.txt /home/damien/recording.txtПояснения:
- параметр -t генерирует данные синхронизации (timing);
- параметр -a добавляет вывод в существующий файл, если он есть (append);
2>перенаправляет поток stderr, в который script записывает тайминг-файл.
После запуска вы увидите сообщение
Script started, file is /home/damien/recording.txtВсё, что вы набираете в терминале и что выводит система, будет записано в recording-file.txt вместе с возможными управляющими символами и цветами.

Источник изображения: Macro Of Digital Dictaphone (BigStockPhoto)
Остановка записи и воспроизведение
Чтобы завершить запись, введите:
exitВы увидите сообщение об окончании записи:
Script done, file is /home/damien/recording.txtВоспроизвести с учётом тайминга можно командой:
scriptreplay /home/damien/timing.txt /home/damien/recording.txtЕсли вам достаточно просто текста без синхронизации, откройте recording-file.txt в любом текстовом редакторе.
Важно: сохраняйте timing-файл и файл записи вместе — без timing-файла воспроизведение через scriptreplay будет некорректным.
Когда этот метод полезен
- отладка сложных CLI-сценариев и воспроизведение шагов;
- образование: показать ученику последовательность команд и ожидаемый вывод;
- документирование действий при устранении проблем (troubleshooting);
- подготовка примеров для отчётов и баг-репортов.
Когда это не подходит
- при захвате графических приложений или GUI-элементов — script работает только для терминала;
- если нужно интерактивное совместное редактирование — лучше tmux/screen с общим доступом;
- при необходимости шаринга в интернете с воспроизведением в браузере лучше использовать asciinema.
Альтернативные инструменты
- asciinema — записывает терминал в компактный JSON-произвольный формат, легко встраивается в веб-страницы и позволяет делиться записями без больших файлов;
- ttyrec — похож на script, с собственным форматом и утилитой для воспроизведения;
- tmux или screen — полезны, если нужно разделить сеанс или дать совместный доступ в реальном времени.
Методология: шаги от начала до конца
- Установите bsdutils.
- Запустите запись: создайте recording-файл и timing-файл.
- Выполните нужные команды, записывая сессии.
- Завершите командой exit.
- Воспроизведите или откройте запись в редакторе.
- При необходимости отредактируйте, зашифруйте или удалите чувствительные данные.
Критерии приёмки
- После запуска команды вывод показывает “Script started” и путь до файла;
- Файл recording.txt содержит введённые команды и соответствующий вывод;
- Команда scriptreplay воспроизводит сессию с похожей скоростью и последовательностью вывода;
- При использовании -a новый вывод добавляется в конец существующего файла, не перезаписывая его.
Контрольные списки по ролям
Разработчик:
- проверить наличие bsdutils;
- записать воспроизводимый пример ошибки;
- приложить timing-файл к баг-репорту.
Системный администратор:
- убедиться, что записи не содержат паролей или токенов;
- хранить логи в защищённом хранилище;
- при необходимости автоматически ротация и шифрование.
Преподаватель/ментор:
- записать демонстрационный сеанс без персональных данных;
- подготовить заметки и шаги для учащихся;
- использовать asciinema для удобного шаринга.
Безопасность и конфиденциальность
- Не записывайте пароли, секретные ключи или конфиденциальные данные. Если они попали в лог — удалите или отредактируйте файл перед передачей третьим лицам.
- Рассмотрите шифрование файла (gpg/openssl) при хранении на общих ресурсах.
- При работе с PII/персональными данными следуйте требованиям GDPR/локального законодательства.
Набор тестов (минимальные случаи проверки)
- Запустить script, ввести пару команд, выйти; проверить наличие команд и вывода в recording.txt;
- Повторно запустить с -a и убедиться, что новые строки добавились;
- Удалить timing-файл и попытаться воспроизвести — убедиться, что scriptreplay выдаёт ошибку или некорректное воспроизведение.
Краткое резюме
Запись сеанса терминала через script — быстрый способ получить точный лог действий и их вывода. Для шаринга и веб-воспроизведения лучше asciinema. Всегда проверяйте логи на наличие секретов и храните файлы безопасно.
Итог: воспользуйтесь script для локальной записи и scriptreplay для воспроизведения; при необходимости используйте альтернативы и соблюдайте правила безопасности.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента