У меня была программа печати большого количества данных на терминале. Терминал прокрутился, и теперь я не вижу все данные. Часть этого потеряна. Как мне вернуть его обратно?
3 ответа
Вы можете использовать различные стратегии для сохранения вывода программ, которые печатают много данных:
Нажмите Shift+PageUp для прокрутки вверх и просмотра старого вывода. Если вы уже запустили программу, тогда это ваш единственный вариант, и вы будете ограничены буфером прокрутки вашего терминала.
Если вы заранее знаете, что выводится много экранов, используйте пейджер для одновременного просмотра экрана:
command | less
Less сохраняет весь вывод в буфер и позволяет вам прокручивать вверх и вниз на досуге.Перенаправьте вывод в файл:
command > /tmp/output.txt
.При выполнении # 2 вы можете просматривать файл журнала в режиме реального времени с помощью
tail -f /tmp/output.txt
. Это покажет файл, как он записан.Сохраните вывод в файл, по-прежнему отображая его на экране:
command | tee /tmp/output.txt
. tee будет дублировать свой ввод, записывая как в файл журнала, так и в stdout.
Если вы знаете, как скомпилировать ядро, вы можете активировать следующую опцию в конфигурации ядра и позволить ядру сохранить буфер обратной прокрутки в оперативной памяти вместо VRAM. Вы также можете установить размер буфера. Тогда практически нет предела прокрутке, потому что даже 1 МБ даст вам около 256 страниц прокрутки.
Вы можете найти опцию в:
Драйверы устройств -> Поддержка графики -> Поддержка драйвера дисплея консоли -> Текстовая консоль VGA -> Включить буфер обратной прокрутки в системной памяти (CONFIG_VGACON_SOFT_SCROLLBACK)
В качестве альтернативы вы можете использовать экран , который не зависит от буфера ядра и имеет свой собственный. То же самое относится к эмулятору терминала, который вы используете в X, например, Terminal, konsole или xterm.
Хотя вы не можете получить его обратно, как только он выйдет из окна, вы можете записать его в файл при следующем запуске.
Чтобы просто закачать его в файл: ./program > path/to/file
Чтобы увидеть это и поместить в файл: ./program | tee file