Как прокрутить терминал до того, где была указана последняя команда?

У меня есть программа, которая имеет много выходных данных. После этого я часто хочу вернуться назад к началу прогона, чтобы я мог посмотреть на некоторые вещи. Поскольку выход так длинный, я вижу, что я бесконечно прокручиваю страницу и пытаюсь перетащить полосу прокрутки вправо до той точки, где она могла начаться. Спустя какое-то время это становится довольно утомительным, поэтому мне интересно:

Есть ли способ легко вернуть терминал в ту часть, где была дана последняя команда?

Ответ 1

Я только что нашел это в терминале для OSX:

Редактирование> Навигация> Переход к предыдущей отметке: cmd + UP.

Ответ 2

Я использую iTerm2 в macOS, я придумал метод. Во-первых, вы должны убедиться, что вы проверяете Unlimited scrollback прокруток в настройках iTerm2. enter image description here

После запуска команды в терминале и получения длинного вывода.

Нажмите Cmd + F (возможно, ctrl + F в окнах), тогда вы можете выполнить поиск в терминале следующим образом:

enter image description here

Наконец, просто выполните поиск имени пользователя и нажмите Enter, в общем, вы перейдете к последней команде:

enter image description here

Ответ 3

Если вы используете терминал, такой как терминал GNOME, вы можете искать назад. Например, Ctrl + Shift + f затем введите либо буквенную команду, либо регулярное выражение для ее соответствия (и убедитесь, что "Соответствовать как регулярное выражение" установлено соответственно).

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

Ответ 4

Я передаю вывод в less, например command | less command | less, потому что он имеет множество полезных клавиш для быстрой навигации, а также поддерживает поиск. Вы также автоматически запускаете в самом начале вывода.

Вот несколько полезных команд для быстрой навигации:

  • f или SPACE для перемещения вперед на страницу, b для перемещения назад на страницу. Страница относится к размеру выходного окна терминала.
  • g чтобы перейти к самому началу, G чтобы перейти к концу, [n]g чтобы перейти к n й строке. Например, 5g перейдет на 5-ю строку.
  • /pattern для поиска термина, затем перейдите с n для следующего и N для предыдущего вхождения. Поддерживает RegExp.
  • q чтобы выйти.

Для получения дополнительной информации просто сделайте man less. По умолчанию справочные страницы также используют less, поэтому все вышеперечисленное работает.

Ответ 5

Не проще ли просто перенаправить вывод в файл, тем самым поддерживая окно терминала "чистым"?

что-то вроде: command >> output_file

Ответ 6

Если вы работаете с screen, я думаю, что есть способ.

  1. Запуск сеанса с помощью screen команды
  2. Выполните свою команду (которая выводит некоторые данные на вашем экране)
  3. Введите Ctrl+a а затем [. экран переходит в режим копирования.
  4. Вы можете выполнить поиск в командной строке назад? (так же, как vi)

Также screen имеет множество преимуществ. Проверьте http://kb.iu.edu/data/acuy.html

Ответ 7

Простой Hack, который работает, если на печать выводится большая часть времени (например, когда вы вызываете make):

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