Прокрутка экрана или выключение паузы

Я использую экран для своих задач командной строки при управлении серверами, на которых я работаю. Обычно я запускаю небольшие команды (в основном задачи файловой системы), но иногда я запускаю более обширные задачи (например, DBA).

вывод этих задач очень важен для меня. Поскольку для моих задач я использую Ubuntu и OS X (обе терминальные Windows), но мне нужно использовать экран, прокрутка недоступна, поэтому любой длинный вывод (думаю, таблица из 500 строк из выбранного) невидим для меня. Колесо мыши не может быть и речи.

Когда я говорю «свиток невидим для меня, я имею в виду это:

сверху при использовании экрана в Mac OS X при прокрутке

Я думал о двух вариантах:

  1. Приостановить (подумайте paginate ) вывод определенной команды. Когда начнется вывод, он позволит мне прочитать, что происходит, затем я нажимаю «Enter», затем вывод продолжается до тех пор, пока нечего больше показывать.

  2. Прокрутите внутренний экран. Но я не знаю, возможно ли это.

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

246 голосов | спросил AeroCross 7 J0000006Europe/Moscow 2012, 21:32:07

4 ответа


340

Экран имеет свой собственный буфер прокрутки, поскольку он является терминальным мультиплексором и должен иметь дело с несколькими буферами.

Может быть, есть лучший способ, но я привык к прокрутке, используя «режим копирования» (который вы можете использовать для копирования текста с использованием самого экрана, хотя для этого также требуется команда вставки):

  • По умолчанию комбинацию префикса экрана (Ca / control + A ), затем нажмите Escape .

  • Перемещение вверх /вниз с помощью клавиш со стрелками ( â † ' и â † ").

  • По завершении нажмите q или Escape , чтобы вернуться в конец буфера прокрутки.

(Если вместо q или Escape вы нажали Enter или Return ), а затем переместите курсор, вы будет выбирать текст для копирования, а второй раз Enter или Return будет копировать его. Затем вы можете вставить с помощью Ca, а затем ].)

Конечно, вы всегда можете использовать больше и less, два часто используемых пейджера, которых может быть достаточно для некоторых команд.

ответил njsg 7 J0000006Europe/Moscow 2012, 21:46:49
129

Используя буфер screen, как указано от njsg является хорошим решением. Вы также можете отключить альтернативный текстовый буфер в xterm termcap info внутри экрана. При отключении вы можете использовать полосы прокрутки (и колесико мыши) для прокрутки вверх и вниз.

Добавьте это в свой ~ /.screenrc.

# Включить прокрутку прокрутки прокрутки и прокрутки прокрутки прокрутки
termcapinfo xterm * ti @: te @

Вы можете прочитать больше обсуждений здесь .

ответил George M 7 J0000006Europe/Moscow 2012, 22:15:23
10

Все эти ответы касались того, как перемещаться в сеансе экрана, но в экранной команде есть встроенная функциональность, чтобы хранить все в файле с помощью аргумента -L в соответствии с руководством, которое читает

  

-L показывает экран для включения автоматического вывода журнала для окон.

, чтобы вы могли:

screen -L -S screencreen

, и он создаст файл с screenlog. #, где # - это номер для этого экрана, начинающийся с 0.

У этого есть много преимуществ, и самые важные для меня:

  1. Сохранение записи о том, что я сделал с тех пор, как я могу сохранить файл журнала в папке проекта для дальнейшего использования.
  2. Вы можете неактивно и пассивно следить за процессом:
    • использовать tailf для отслеживания прогресса в реальном времени без привязки к экрану.
    • используйте grep, чтобы проверить определенный срок в журнале и произвести уведомления (электронная почта, всплывающее окно, voip и т. д.). Это может быть применено на нескольких экранах без активного поиска на них.
ответил Mehrad Mahmoudian 8 FebruaryEurope/MoscowbThu, 08 Feb 2018 17:24:40 +0300000000pmThu, 08 Feb 2018 17:24:40 +030018 2018, 17:24:40
1

Мне удалось получить базовый пейджинг по конвейерному контенту до more, например:

ls -l | Больше

Или, если вам нужен цветной вывод для таких случаев использования, как подсветка синтаксиса, вы можете использовать

ls -l --color = always | Больше

Это приводит к выводу, который я могу легко выполнить через один экран за раз. Я не пробовал модификацию @ uther для ~ /.screenrc, но это кажется предпочтительным в качестве прочного решения, когда мышь доступна.

Чтобы попробовать это, вы можете перейти на этот эмулятор BusyBox , а затем .. .

cd ~ /bin
ls -l --color = always | Больше

Используйте пробел для отображения результатов команды ls -l или используйте клавишу ввода для перемещения по результатам по строкам.

ответил Michael Hogan 2 PMpThu, 02 Apr 2015 20:38:01 +030038Thursday 2015, 20:38:01

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132