Вопрос или проблема
Иногда, если я git checkout
, или даже make
, я оказываюсь с неожиданным выводом, который заставляет меня спросить:
Подождите, что? Давайте посмотрим на это еще раз.
Мои варианты обычно:
- Переместить руку на мышь и начать прокручивать в терминале.
- Для команд, таких как
dpkg-buildpackage
, которые завершаются неудачей из-за ошибки конфигурацииcmake
, они выводят огромное количество отладочных данных после ошибки, так что вам ДЕЙСТВИТЕЛЬНО придется прокручивать назад очень-очень далеко.
- Для команд, таких как
- Повторно выполнить команду через
| 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:
Ответ или решение
Вопрос о том, как лучше управлять выводом предыдущих команд в терминале, особенно актуален для специалистов в области 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-специалистов, который экономит время и усилия, позволяя сосредоточиться на решении более сложных задач.