Терминалы: Поиск вывода предыдущей команды

Вопрос или проблема

Иногда, если я git checkout, или даже make, я оказываюсь с неожиданным выводом, который заставляет меня спросить:

Подождите, что? Давайте посмотрим на это еще раз.

Мои варианты обычно:

  1. Переместить руку на мышь и начать прокручивать в терминале.
    • Для команд, таких как dpkg-buildpackage, которые завершаются неудачей из-за ошибки конфигурации cmake, они выводят огромное количество отладочных данных после ошибки, так что вам ДЕЙСТВИТЕЛЬНО придется прокручивать назад очень-очень далеко.
  2. Повторно выполнить команду через | more.
    • но это не работает хорошо для команд, которые изменяют ваше локальное состояние, например, git checkout.
    • это менее полезно для команд, которые требуют очень много времени для завершения.

Существует ли терминал, который облегчает навигацию по выводу предыдущих команд?

Kitty имеет прямую поддержку для этого: CtrlShiftG откроет вывод последней команды (и только его) в постраничный просмотрщик (less по умолчанию). Вы можете использовать функции постраничного просмотрщика, чтобы навигировать по выводу.

Довольно много терминальных эмуляторов поддерживают поиск по своему буферу прокрутки: GNOME Terminal, Terminator и др., а также мультиплексоры, такие как screen и tmux.

gnome-terminal поддерживает shift+ctrl+f, смотрите Как искать вывод терминала. Хотя это ответ из 2011 года, подтвердите, что это по-прежнему работает в Ubuntu 24.04.1 LTS с GNOME Terminal версии 3.52.0 для GNOME 46:
GNOME terminal shift+ctrl+f

Ответ или решение

Вопрос о том, как лучше управлять выводом предыдущих команд в терминале, особенно актуален для специалистов в области IT, и требует внимательного рассмотрения. Работа с большим количеством информации, выводимой в терминале, может стать настоящей проблемой, особенно когда вывод содержит ошибки, которых требуется подробный анализ. Рассмотрим несколько эффективных методов для поиска и навигации по выводу предыдущих команд.

1. Полезные терминальные эмуляторы

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

  • Kitty: Этот терминальный эмулятор выделяется среди остальных наличием прямой поддержки для легкого доступа к выводу последней команды. Используя комбинацию клавиш Ctrl + Shift + G, вы можете открыть вывод последней команды в пейджере (по умолчанию это less). Это позволяет легко прокручивать и искать информацию в выводе, используя привычные команды пейджера, такие как / для поиска и стрелки для навигации.

  • GNOME Terminal: Этот популярный эмулятор терминала предоставляет возможность поиска по выводу. Комбинация клавиш Shift + Ctrl + F позволяет искать текст непосредственно в окне терминала, что крайне удобно для быстрого нахождения нужной информации в длинном выводе.

  • Terminator: Также поддерживает функции, схожие с GNOME Terminal, с возможностью разделения экрана и одновременного отображения нескольких выходов команд.

2. Мультиплексоры терминалов

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

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

3. Удобные методы для просмотра вывода

При работе с командами, которые создают слишком много вывода (например, dpkg-buildpackage), использование утилит, которые обрабатывают вывод, также будет полезно:

  • Вы можете перенаправить вывод команд в файл, чтобы затем просмотреть его с помощью текстового редактора. Например, git checkout > вывод.txt позволит сохранить вывод команды в файл, после чего вы можете открыть файл с помощью вашего любимого редактора и использовать его функции поиска.

  • Использование команды tee может помочь в этом. Например, git checkout | tee вывод.txt сохранит вывод команды в файл и одновременно отобразит его в терминале.

Заключение

Эти методы помогут вам значительно упростить процесс поиска нужной информации в выводе команд в терминале. Использование специализированных терминальных эмуляторов, таких как Kitty и GNOME Terminal, а также мультиплексоров типов tmux приносит неоспоримые преимущества. Внимательное изучение вывода команд и эффективное управление им — это важный аспект работы IT-специалистов, который экономит время и усилия, позволяя сосредоточиться на решении более сложных задач.

Оцените материал
Добавить комментарий

Капча загружается...