Как сохранить содержимое незарегистрированного экрана консоли в файл?

Я нахожусь на tty, с большим количеством командных входов, большим количеством подробных их выводов и некоторыми сообщениями об ошибках. Теперь я должен получить все эти тексты stdin / stdout / stderr в формате, отображаемом на экране консоли, в файл. Как я могу сделать это, используя встроенные инструменты (предпочтительно)?

Я не знаю, если вопрос сбивает с толку! Это действительно просто .. Предположим, я вошел в консольный терминал tty1, выполнил некоторые команды (без ведения журнала, потому что я не чувствовал в этом необходимости), но внезапно пришли определенные выводы / сообщения, которые я хочу выгрузить в файл (или другой вариант - взять ручку и бумагу).

Причина, по которой я предполагаю, что это может быть сделано, заключается в том, что вы можете использовать shift + PgUp/PgDwn для смещения выводимых данных экрана, что означает, что они все еще находятся в буфере (даже если обработка конвейерна)! ... и это то, что должно быть восстановлено.

3
задан 1 August 2014 в 13:42

3 ответа

TTYs используют "устройства" памяти виртуальной консоли для буферизации их экранного содержания. Можно читать больше о них в man vcs, но это позволит Вам получить то, что находится на экране в текущий момент .

В практике это просто пронумерованные файлы в /dev/, которые выстраиваются в линию с числом TTY. Вот пример, который я сделал с TTY2:

$ sudo fold -w$(stty -F /dev/tty2 size | awk '{print $2}') /dev/vcs2

Ubuntu 14.04 LTS bert tty2                                                      

bert login: oli                                                                 
Password:                                                                       
oli@bert:~$ cd test                                                             
oli@bert:~/test$ ls                                                             
Madonna - 10 - Bedtime Story.mp3  output_MP3WRAP.mp3                            
Madonna - 11 - Take A Bow.mp3                                                   
oli@bert:~/test$                                       

fold -w$(...) существует то, потому что буферизированный вывод не делает , появляются для имения управляющих символов или новых строк, которые я ожидал бы. Это просто добавляет \n в конце каждой строки.

, Поскольку TuKsn указывает в комментариях, Вы не должны бездельничать со всем этим, можно достигнуть точно того же с:

sudo screendump 2

можно придерживаться > tty.log на конце любой команды для записи вывода в файл, названный tty.log в текущем каталоге:

sudo screendump 2 > tty.log
<час>

Снова, это только получит Вас, что находится на экране . Даже при увеличении буфера scrollback в TTYs это не хранится в доступной памяти . можно изменить это , но это включает перекомпиляцию ядра.

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

5
ответ дан 1 August 2014 в 13:42

Вероятно, можно использовать программу, названную screen. Это сохраняет весь вывод Терминала в файл. Взгляните на этот поток Форумов Ubuntu http://ubuntuforums.org/showthread.php?t=1379903 . CMIIW.

1
ответ дан 1 August 2014 в 13:42

Так как я не могу найти сочетание клавиш для Выбора Всеми, я нашел их, которые могли бы помочь... https://stackoverflow.com/questions/1536757/selecting-text-in-terminal-without-using-the-mouse копия буфера обмена командной строки А и утилита вставки?

первый является экраном, который был предложен, но это, кажется, имеет утилиту, которая копирует текст, так, чтобы мог бы работать. Перейдите к режиму копии с ^A-Esc. Начните выбирать текст с пространством и текст выбора конца с пространством. Вставьте текст с ^A-]

, второй - о вставке текста в Буфере обмена в файл. Я абсолютно не уверен, если какой-либо из них будет работать хотя... Надежда каждый делает.

0
ответ дан 1 August 2014 в 13:42

Другие вопросы по тегам:

Похожие вопросы: