1

У меня была программа печати большого количества данных на терминале. Терминал прокрутился, и теперь я не вижу все данные. Часть этого потеряна. Как мне вернуть его обратно?

3 ответа3

2

Вы можете использовать различные стратегии для сохранения вывода программ, которые печатают много данных:

  1. Нажмите Shift+PageUp для прокрутки вверх и просмотра старого вывода. Если вы уже запустили программу, тогда это ваш единственный вариант, и вы будете ограничены буфером прокрутки вашего терминала.

  2. Если вы заранее знаете, что выводится много экранов, используйте пейджер для одновременного просмотра экрана: command | less Less сохраняет весь вывод в буфер и позволяет вам прокручивать вверх и вниз на досуге.

  3. Перенаправьте вывод в файл: command > /tmp/output.txt .

  4. При выполнении # 2 вы можете просматривать файл журнала в режиме реального времени с помощью tail -f /tmp/output.txt . Это покажет файл, как он записан.

  5. Сохраните вывод в файл, по-прежнему отображая его на экране: command | tee /tmp/output.txt . tee будет дублировать свой ввод, записывая как в файл журнала, так и в stdout.

2

Если вы знаете, как скомпилировать ядро, вы можете активировать следующую опцию в конфигурации ядра и позволить ядру сохранить буфер обратной прокрутки в оперативной памяти вместо VRAM. Вы также можете установить размер буфера. Тогда практически нет предела прокрутке, потому что даже 1 МБ даст вам около 256 страниц прокрутки.

Вы можете найти опцию в:

Драйверы устройств -> Поддержка графики -> Поддержка драйвера дисплея консоли -> Текстовая консоль VGA -> Включить буфер обратной прокрутки в системной памяти (CONFIG_VGACON_SOFT_SCROLLBACK)

В качестве альтернативы вы можете использовать экран , который не зависит от буфера ядра и имеет свой собственный. То же самое относится к эмулятору терминала, который вы используете в X, например, Terminal, konsole или xterm.

1

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

Чтобы просто закачать его в файл: ./program > path/to/file

Чтобы увидеть это и поместить в файл: ./program | tee file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .