В Linux терминал является главным инструментом для выполнения команд и управления системой. Иногда бывает полезно записать сеанс работы с ним для предоставления отчета или для обмена с другими пользователями. Здесь на помощь приходят встроенные команды script
и scriptreplay
.
В этой статье мы рассмотрим, как использовать эти утилиты для записи и воспроизведения сеансов терминала в Linux.
Содержание:
Как использовать команду script
Утилита script
применяется для записи сеанса терминала. Ее синтаксис выглядит следующим образом:
Здесь options
означают любые параметры, которые могут быть переданы команде для настройки. А file
— необязательный аргумент, указывающий название файла, в который будет сохранен вывод записанной сессии. Если он не указан, по умолчанию используется файл typescript
.
Как только Вы выполните команду script
и начнете запись, все команды и вывод будут сохранены в указанном файле. Чтобы остановить запись, просто введите в командной строке exit
или нажмите CTRL+D.
Начните запись сессии
Для примера запустим запись терминала с помощью команды script
в файл file.txt
. Для этого просто введем в командной строке:
После этого начнем выполнять различные команды в терминале Linux:
В конце прекратим запись терминала, используя команду:
Поэкспериментируйте с различными опциями script
Как и большинство команд в Linux, script
имеет собственные параметры, которые расширяют возможности утилиты. Начнем с опции -a
. Этот параметр позволяет пользователю дополнять файл журнала новыми командами. Без использования данного параметра содержимое файла журнала, если он существует, будет перезаписано. Все они будут записаны в конец этого документа. Например, добавим в наш файл file.txt
запись новой сессии терминала:
Если Вы хотите записать в файл всего одну команду, используйте параметр -c
. Запись автоматически прекратиться, после того как Вы подтвердите введение этой команды:
Читайте также: Как установить выпадающий терминал Guake на Ubuntu Linux.
Важно: чтобы дополнить файл вместо его перезаписи одной командой и сразу же прекратить запись — введите опции -a -c
именно в таком порядке.
Если Вы не хотите получать от script
сообщения о том, когда началась или завершилась запись терминала — запустите команду в фоновом режиме. Для этого нужно использовать параметр -q
:
Создайте запись сессии для ее дальнейшего воспроизведения
Ранее в этой статье, когда мы записывали сессию терминала, мы не предусматривали возможность ее дальнейшего воспроизведения. Поэтому в будущем мы не сможем запустить фай file.txt
. Все из-за того, что мы не сохраняли тайминги (время) исполнения введенных команд. Чтобы записать их, нужно использовать параметр --timing
:
В этой команде:
<time-file>
— файл, в котором будет записан хронометраж исполнения команд;<script-file>
— файл, в котором будут записаны сами команды.
Эти два документа будут автоматически синхронизированы друг с другом и в дальнейшем пригодятся нам для воспроизведения введенных утилит.
Для примера запишем время в файл time.txt
, а команды — в script.txt
:
Как использовать команду scriptreplay
Команда scriptreplay
— это инструмент в Linux, которая позволяет воспроизвести ранее записанный сеанс с помощью команды script
. Она считывает временную информацию и вывод из записанного файла сценария и воспроизводит его в терминале. Эта команда полезна для демонстрации и просмотра предыдущих сессий терминала или в целях отладки. Вы можете регулировать скорость воспроизведения ранее записанной сессии.
Важно: scriptreplay
воспроизводит только, те команды, которые были записаны вместе с их хронометражем.
Для просмотра записи терминала нужно использовать scriptreplay
вместе с параметром --timing
с файлом времени команд. А также журналом, в котором были записаны введенные утилиты, в качестве аргумента:
Читайте также: Как настроить цвета и содержимое Bash в командной строке терминала Linux.
После того как Вы ввели данную команду, можно увидеть, что команды будут автоматически воспроизводиться в терминале и выводить соответствующий результат в командную строку.
Если Вы попробуете воспроизвести файл без хронометража, scriptreplay
выдаст ошибку, как на скриншоте:
Выводы
Мы показали Вам, что команды script
и scriptreplay
являются мощными инструментами, которые помогут Вам записывать и воспроизводить сессии командной строки. Эти утилиты могут быть очень полезны при устранении неполадок, их документировании или обучении. При эффективном использовании этих команд, Вы сможете повысить свою эффективность при работе с Linux.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.