Главная > Среда и утилиты > script

script: Запись сеанса терминала

Команда script записывает сеанс терминала в файл 'typescript'. Этот файл содержит как введенные пользователем команды, так и весь вывод, отображаемый в терминале. Записанные сеансы полезны для последующего анализа, воспроизведения или обмена с другими пользователями.

Обзор

script записывает все действия, выполняемые в терминале, в текстовый файл. Это может быть полезно для обучения, устранения неполадок или аудита. Записанные сеансы можно воспроизвести с помощью команды scriptreplay.

Основные возможности

  • Запись всего ввода/вывода сеанса терминала
  • По умолчанию сохраняется в файл 'typescript'
  • Возможность добавления содержимого в существующий файл
  • Возможность записи только результатов выполнения определенных команд
  • Поддержка записи и воспроизведения информации о времени сеанса

Основные опции

Основные опции команды script влияют на способ записи, управление выходными файлами и запись информации о сеансе.

Запись и управление файлами

Сгенерированная команда:

Комбинируйте команды.

Описание:

`script` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Изучите различные примеры использования команды script, чтобы узнать, как эффективно записывать сеансы терминала.

Базовое использование (начало и завершение записи)

script
# Теперь все вводимые команды и вывод будут записываться.
ls -l
pwd
exit

При запуске script начинается запись всего ввода/вывода текущего сеанса в файл 'typescript'. Для завершения записи введите 'exit'.

Запись сеанса в определенный файл

script my_session.log
# Запись сеанса...
exit

Записывает сеанс в файл с желаемым именем вместо стандартного файла 'typescript'.

Добавление сеанса в существующий файл

script -a my_session.log
# Дополнительная запись сеанса...
exit

Добавляет содержимое нового сеанса в уже существующий файл записи, не перезаписывая его.

Запись только определенной команды

script -c "ls -la /tmp" ls_tmp.log

Не запускает интерактивную оболочку, а записывает только результат выполнения указанной команды и немедленно завершается.

Запись с информацией о времени

script -t 20231027_timing.log my_session_with_timing.log
# Запись сеанса...
exit

Записывает информацию о времени каждого вывода вместе с содержимым сеанса в отдельный файл. Оба файла используются для воспроизведения сеанса с помощью scriptreplay.

Советы и предостережения

Советы и предостережения для более эффективного использования команды script и подготовки к возможным проблемам.

Просмотр записанных сеансов

Файлы 'typescript', содержащие записи, являются обычными текстовыми файлами, поэтому их содержимое можно просмотреть с помощью команд `cat`, `less`, `more` и т. д. Однако, поскольку они могут содержать специальные символы или управляющие коды, команды `less -R` или `cat -v` могут быть более полезными.

  • Просмотр файла по умолчанию: `cat typescript`
  • Просмотр конкретного файла: `less my_session.log`

Воспроизведение сеанса (scriptreplay)

Если вы записали информацию о времени с помощью опции `-t`, вы можете воспроизвести записанный сеанс в реальном терминале, используя команду `scriptreplay`. Это очень полезно для демонстраций или обучения.

  • Команда воспроизведения: `scriptreplay 20231027_timing.log my_session_with_timing.log`

Безопасность и конфиденциальность

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

  • Внимание: Будьте осторожны, так как могут быть записаны пароли, API-ключи и другая конфиденциальная информация.
  • Рекомендация: Установите права доступа к файлам записи, например, `chmod 600`, для защиты.

Предостережение при прерывании записи

Если сеанс script прерывается некорректно (например, при многократном нажатии Ctrl+C, что приводит к завершению самого процесса script) или происходит сбой питания, файл записи может быть поврежден или сохранен не полностью. Всегда рекомендуется корректно завершать сеанс командой `exit`.


Те же команды в категории