Я только что провел последние два часа, выполняя dd
команду (или представлял любой подобный сценарий «трудно сделать заново») с живого CD без графического интерфейса; все, что у меня есть, это мой верный CTRL+ALT+F#
терминал «многооконный» ( ) Bash.
Увы, во время выполнения команды dd
вывалилось несколько неприятных сообщений об ошибках и еще немного информации, которую я хотел бы сохранить. У меня подключен USB-накопитель, на который я могу записывать данные, но как мне сохранить предыдущий вывод, сохраненный в виде текстового файла после того, как команда уже выполнена?
Если бы это был эмулятор терминала в хорошем графическом интерфейсе, я бы просто использовал мышь, чтобы выделить текст, скопировать его и вставить в документ. И если бы я знал, что команда выдаст ошибки, я бы сначала отправил ее в файл, но, увы, дополнительный вывод оказался неожиданным.
Как сохранить вывод текста из моей предыдущей команды в файл без повторного запуска команды? Это вообще возможно?
dd if=/dev/sda of=/backups/sda.img > result.txt
. Если это так, проблема в том, что я уже выполнилdd
команду . Любой ценой я хочу избежать повторного запуска команды, что в некоторых ситуациях невозможно.service start gpm
). Смести область, удерживая левую кнопку мыши. Введитеcat > outputfile
и щелкните правой кнопкой мыши, чтобы вставить регион, который вы только что выбрали.Ответы:
Ядро linux должно хранить экранный журнал для ваших vts на соответствующем
/dev/vcsa*[ttynum]
устройстве.Вот почему работает следующее:
... который печатает ...
Соответствующее
/dev/vcsa[ttynum]
устройство будет хранить закодированную версию форматированного текста на экране, тогда как это/dev/vcs[ttynum]
будет простой дамп. Этиvcsa[ttynum]
устройства будут кодировать пару байтов , которые описывают каждый экранный символ и его атрибуты, а также строку во главе каждой логической страницы , которая указывает ссылочного TTY по линии, столбцы сосчитать.Как указывает @kasperd, раньше я ошибался, предполагая, что
\a
BEL кодируется между каждым символом, хотя на самом деле: цветовая комбинация по умолчанию совпадает с символом колокольчика.Для ваших целей использовать,
/dev/vcs[ttynum]
вероятно, проще всего. Вотl
Ook на различия:... печать ...
...и...
... печать ...
источник
vcsa
не помещает один и тот же символ между всеми символами. Он дает вам пары байтов, сообщающих вам, какой символ находится на экране и какой у него цвет. Цветовая комбинация по умолчанию совпадает с символом колокольчика.Перейдите (/ войдите в систему) к другому терминалу и запустите
sudo screendump N > screenoutput.txt
, гдеN
номер нужного вам терминала.Боюсь, без отставания. Если у этих виртуальных консолей есть одна, я никогда ее не видел. Но это дает вам все, что вы можете увидеть на этом терминале.
источник
/dev/vcsa*[1-9]*
- (что, я думаю, для прав суперпользователя) . Я думаю, что консоли Linux поддерживали отставание для большинства серий 3. *. Я не уверен, как можно это схватить (в отличие от использования/dev/vcsa*[1-9]*
устройств), но, возможно, есть способ./dev/vcs$i
и/dev/vcsa$i
. Это дает читаемый результат, хотя. ;-)screendump
не доходит до этого, даже если я остаюсь в той же консоли.