Есть ли способ сохранить то, что напечатано на дисплее с экраном GNU?

9

Мне нравится сохранять все, что я делаю, в командной строке, например, когда я обновляю что-то и хочу прочитать, как прошло обновление и т. Д.

Обычно с Mac OSX и терминалом вы можете прокрутить назад сколько угодно и сохранить с помощью Cmd-S. Но когда я на SSH с помощью экрана GNU, то я не могу прокрутить обратно прямо из терминала.

Как я могу сохранить на диск все, что происходит во время сеанса экрана? Может быть по умолчанию (каждый сеанс автоматически создает файл на диск ...)

Спасибо!

Luca
источник

Ответы:

7

Есть функция входа в систему screen. Запустите его, когда начнете screenделать screen -L(или изнутри screen). Или также изнутри screen, вы можете нажать Ctrl- a : H.

Если вы хотите войти в систему по умолчанию, добавьте следующую строку в ваш ~/.screenrcфайл:

deflog on

Вы можете установить имя файла, используя что-то вроде:

logfile /tmp/screenlog.%n
Приостановлено до дальнейшего уведомления.
источник
1
Возможно, не следует хранить его в / tmp, так как он обычно очищается при перезагрузке (например, из-за сбоя питания).
maxelost
@maxelost: это то, что нужно учитывать. Это был всего лишь пример. Смысл состоял в том, чтобы включить абсолютный каталог, так как по умолчанию создается файл журнала в текущем каталоге. Кроме того, screenсессии (даже отдельные) не переживают перезагрузку.
Приостановлено до дальнейшего уведомления.
2

Вариант 1. Посмотрите на команду сценария. "сценарий человека"

«Скрипт создает машинописный текст всего, что напечатано на вашем терминале. Это полезно для студентов, которым нужна бумажная копия интерактивного сеанса в качестве подтверждения задания, поскольку файл машинописного текста можно распечатать позже с помощью lpr»

В основном, введите «script» (без кавычек) - делайте свою работу, и введите exit один раз, чтобы завершить сеанс.

Вариант 2: использовать режим «твердой копии» экрана. 'Crtl-a' then 'h' Это сохранит текущий сеанс в файл.

примечание: экран GNU имеет возможность прокрутки. Используйте «crtl-]» (правая квадратная скобка), чтобы войти в режим копирования, затем «ctrl-b» и «ctrl-f», чтобы перемещать страницу p и вниз одновременно.

Sirex
источник
1

Вы захотите использовать операцию 'log', обычно связанную с Ctrl-a H. Это открывает новый файл с именем screenlog. N где N - номер окна. Если файл существует, вывод добавляется в файл. Весь вывод в этом окне записывается в экранный журнал. N файл, пока вы не отключите, нажав Ctrl-a Hснова. Вы также можете получить эту функциональность с Ctrl-a :log. Вы можете изменить имя с помощью logfile {filename}команды. Файл помещается в каталог, в котором экран был впервые запущен, но это можно изменить с помощью команды logfile или с помощью chdir [{directory}].

Обратите внимание, что это не то же самое, что печатная копия или буфер прокрутки. Это та же функциональность, что и в программе script (1), но привязанная к одному окну и без вызова новой программы.

Если вы хотите сохранить все содержимое буфера прокрутки, используйте Ctrl-a ] g <space> G <space> Ctrl-a :writebuf Это сохраняет буфер прокрутки в файл / tmp / screen-exchange. если вы хотите сохранить только часть, измените «g» и «G» на другие клавиши перемещения.

Arcege
источник