Как я могу просмотреть больше моей истории в Screen на Linux?

46

Я выполнял сценарии в одночасье из командной строки (внутри экрана на экземпляре Linux EC2), и возникли некоторые ошибки, которые я не отслеживал. Я хочу "прокрутить вверх" или просмотреть больше истории на экране, но я не могу найти какие-либо команды, которые будут работать.

Мне нужно видеть вывод на экране «дальше», чем на текущем экране. CTRL + a должен перевести меня в режим прокрутки внутри экрана, но он не работает.

T. Brian Jones
источник
history | less, more? Или вы спрашиваете, как сохранить больше истории?
history сохранит только команды, запущенные в оболочке. Он больше интересуется ведением журнала
<Shift> + <PgUp> это единственный вариант. И у него также есть некоторый лимит (я думаю, самое большее 500 строк).
ssapkota
Мне нужно видеть вывод на экране «дальше», чем на текущем экране. CTRL + a должен перевести меня в режим прокрутки внутри экрана, но он не работает для меня.
T. Brian Jones
1
Просто Ctrl-a является screen сбежал. Вся последовательность клавиш для входа в режим прокрутки будет Ctrl-a [Опять говорит. Ctrl-a ESC также работает для меня, я не помню, какой из них является стандартным / обычно используется.
ninjalj

Ответы:

28

Когда вы запускаете экран, вы можете указать размер буфера прокрутки с помощью -h, чтобы вы могли увеличить его по умолчанию до 100 строк. Однако на текущем экране, когда данные покидают буфер, они исчезают.

William Pursell
источник
2
Это просто неправильно. Ответ @opyate дает решение
nirvana-msu
3
@ nirvana-msu Использование ^ a для входа в режим обратной прокрутки позволяет пролистать буфер обратной прокрутки. Если данные уже удалены из буфера обратной прокрутки, они исчезают. Вы можете увеличить размер этого буфера при запуске. Что именно в моем ответе вы считаете неправильным? Я говорю об увеличении размера буфера прокрутки, opyate рассказывает, как его использовать.
William Pursell
1
Ну, ладно, хотя вопрос не в том, чтобы расширить буфер прокрутки. Автор хотел просмотреть больше истории, чем обычно отображается в консоли, и вы Можно просмотреть больше истории, используя Ctrl+a+[, Ваш ответ только кажется, что это невозможно, что вводит в заблуждение.
nirvana-msu
61

Предполагая, что вы не изменили свою escape-последовательность, вы можете нажать Ctrl-a [ чтобы перейти в режим прокрутки, затем используйте обычные Page-UP / Page-DOWN или Ctrl-b / Ctrl-f для перемещения вверх и вниз.

От вики Gentoo по использованию экрана

opyate
источник
7
и ESC для выхода из режима прокрутки, IIRC
ninjalj
Теперь Gentoo Wiki это: wiki.gentoo.org/wiki/Screen
Rmatt
также см эта почта о том, как (вроде) получить прокрутку с работающей мышью. Название поста говорит, что это для tmux, но оно также покрывает экран
JonnyRaa
1
Ctrl + A, Esc также входит в режим копирования / прокрутки.
Serge Stroobandt
7

Вы также можете запустить свои команды в script команда, которая будет записывать вывод на диск. Или вы можете: command 2>&1 | tee /tmp/cmd.out чтобы записать результаты будущих исследований, вам нужна (практически) бесконечная размерная история.

Seth Robertson
источник
это то, что я использовал для своей задачи. Работает отлично. Благодарю.
T. Brian Jones
3

Вы также можете изменить размер истории прокрутки на рабочем экране с помощью последовательности CTRL-a : (войдите в режим командной строки экрана), затем scrollback 10000 если вы хотите 10k строк буфера истории. Изменение вступает в силу немедленно.

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

Однако, как сказал @William Pursell, с текущим экраном, когда данные покидают буфер, они исчезают.

Saïmonn
источник
0

В зависимости от того, какую терминальную программу вы используете, вы можете изменить буфер прокрутки в разделе «Настройки». Я знаю для xterm сначала вы должны включить прокрутку, а затем установить бесконечный буфер.

Однако для логирования сценариев лучше всего было бы перенаправить стандартный вывод в файл:

ScriptName >> OutputFile.txt

Делая это таким образом, вы можете свободно прокручивать и выполнять поиск, а также вести учет (т.е. в случае сбоя вашего компьютера).

РЕДАКТИРОВАТЬ: Это близко к решению трубопровода выше, однако перенаправление стандартного ввода может быть полезно и в других случаях:

grep linux stackoverflow.txt > linuxquestions.txt

или же

cat linuxquestions.txt | grep buffersize > bufferquestions.txt

источник
Обратите внимание, что screen(1) не разрешать Терминальная прокрутка. Это и одна из его главных особенностей, и один из главных недостатков.
sarnold
@sarnold Можно разрешить прокрутку терминала, см. superuser.com/a/1336554/116475
Franck Dernoncourt
0

Мне нужно видеть вывод на экране «дальше», чем на текущем экране. CTRL + a должен перевести меня в режим прокрутки внутри экрана, но он не работает.

В дополнение к другим ответам, я хотел бы отметить, что вы можете добавить в свой ~/.screenrc файл:

defscrollback 100000
termcapinfo xterm ti@:te@

где:

  • defscrollback 100000: установить количество строк прокрутки по умолчанию на 100000
  • termcapinfo xterm ti@:te@: разрешить прокрутку терминала в xterm или PuTTY. ( Экран FAQ ; PuTTY FAQ )
Franck Dernoncourt
источник