Обновите свой man Pager для лучшей помощи по Linux

Обновите свой man Pager для лучшей помощи по Linux


Перейти по ссылкам

  • Что делает человек с пейджером?
  • Как изменить пейджер вашего мужчины
  • Лучшие пейджеры для использования с мужчиной

Верные философии Linux, просмотр справочных страниц является совместным усилием. Хотя команда man — это та команда, которую вы действительно вводите, она зависит от отдельного инструмента просмотра, чтобы отображать своё содержимое. Узнайте, каковы последствия этой системы и как она может улучшить ваш опыт получения справки.

Что делает человек с пейджером?

Команда man отображает страницы документации для различных команд, системных вызовов, библиотечных функций и других объектов. Она получает эту информацию из текстовых файлов в формате man, обычно расположенных в директории типа /usr/share/man/.

Некоторые страницы руководства короткие, но большинство из них длиннее хотя бы одного экрана текста. Для отображения этих страниц программа man использует инструмент, называемый пейджером, концепция которого широко распространена в Linux.

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

Без пейджера человек просто выведет всё содержимое man-страницы сразу в ваш терминал, оставив вам только последнюю страницу, размер которой будет зависеть от размеров окна терминала:

С помощью пейджера, с другой стороны, человек покажет вам помощь по одной странице за раз:

Одним из больших преимуществ Linux является его склонность предоставлять небольшие, специализированные программы, выполняющие определённые функции. Используя несколько программ вместе, можно выполнять сложные задачи без специального программного обеспечения. Программа просмотра страниц отражает эту философию: программа man сосредоточена на поиске справочных страниц и форматировании их текста, в то время как просмотрщик страниц концентрируется на построчном отображении текста.

В редком случае, если вам вообще не нужна возможность постраничного просмотра, вы можете использовать команду cat в качестве просмотрщика. Если ваше терминальное приложение поддерживает прокрутку назад и страница man не слишком большая, вы сможете прокручивать всё содержимое с помощью мыши.

Как изменить пейджер вашего мужчины

Программы Linux часто предоставляют несколько способов изменить их поведение, и man не является исключением. Основные способы следующие:

  • Параметры командной строки.
  • Переменные окружения.
  • Файлы конфигурации.

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

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

man -P pager      

Например, чтобы просмотреть страницу справки для команды ls, используя просмотрщик less:

man -P less ls      

И чтобы найти помощь для самой команды man, используя более подробный справочник:

man -P more man      

Следует отметить, что pager может быть любой допустимой командой, включая её собственные аргументы и даже конвейеры (pipes):

man -P "grep operand | wc -l" ls      

Хорошей альтернативой этому аргументу командной строки является переменная окружения. Linux часто использует переменные окружения для настройки, и в этом случае актуальны две из них:

  • PAGER — это широко используемая настройка, которая должна указывать ваш предпочтительный просмотрщик для общего использования. Поддерживающие программы будут направлять свой вывод через команду, указанную в PAGER.
  • MANPAGER переопределяет PAGER, специально для команды man. Хотя другие программы могут использовать это значение, вы обнаружите, что только man действительно его использует. Это позволяет легко задать пейджер для man, который отличается от вашего общего пейджера.

Вы можете задать переменные окружения для всех пользователей в /etc/environment или для конкретного пользователя в файле вроде ~/.bash_profile; это будет зависеть от используемой вами оболочки.

Как и с любой командой, вы можете задать переменную окружения только для одного запуска, добавив её перед командой:

MANPAGER=most man pwd      

Наконец, если ваша версия man поддерживает конфигурационный файл, вы можете использовать его для постоянной смены просмотрщика, который использует man.

Версия man, включённая в macOS Tahoe, читает конфигурационный файл в /etc/man.conf. Ubuntu 24 поставляется с man 2.12.0, который не читает универсальный конфигурационный файл.

Если у вас есть файл man.conf, синтаксис для установки pager подобен установке переменной окружения:

MANPAGER less -s     

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

Недостаток этого подхода в том, что он, по-видимому, переопределяет переменные окружения и аргумент командной строки -P. Таким образом, после установки это значение применяется для каждого пользователя системы. Иногда это именно то, что вам нужно, но чаще вы будете иметь больше контроля, если не использовать файл конфигурации man для установки программы просмотра.

Лучшие пейджеры для использования с мужчиной

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

По умолчанию человек обычно использует less для просмотра страниц, а именно эту команду:

less -Sr     

Команда less, выпущенная в 1984 году, является заменой старого пейджера под названием more, появившегося в 1978 году. Хотя команда more часто всё ещё доступна, на вашей системе она может быть такой же, как less, либо через символическую ссылку, либо просто являясь прямой копией. Например, в macOS Tahoe выполнение команды diff /usr/bin/less /usr/bin/more не показывает различий; оба исполняемых файла идентичны.

Главное улучшение, которое принесла программа less, заключалось в возможности прокрутки назад; верьте или нет, но исходная версия more могла прокручивать только вперёд. С помощью less вы можете прокручивать вперёд на одну страницу за раз, нажимая Space, и на одну строку за раз с помощью Enter. Прокрутка назад на одну страницу осуществляется с помощью b, а на одну строку за раз — с помощью y.

Вы также можете прокручивать по полстраницы за раз, что облегчает отслеживание контекста. Используйте u, чтобы прокручивать назад (вверх) на полстраницы, и d, чтобы прокручивать вперед (вниз) на полстраницы.

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

most — это относительно новый просмотрщик, выпущенный в 2005 году. Написан на C, он быстрый и имеет небольшой исполняемый файл (125K).

Многие функции most могут быть полезны в пейджере, но они не оказывают большого влияния на страницы man. Возможности пейджера по работе с окнами трудно использовать с man, а горизонтальная прокрутка не должна быть необходимой, так как man уже переносит длинные строки.

Сказав это, несколько функций могут оказаться полезными. Флаг -c делает поиски с учётом регистра, что может быть полезно при навигации по заголовкам в страницах руководства (man), которые всегда написаны заглавными буквами.

Аргумент «+/search» также очень полезен. Используйте его для автоматической прокрутки к первому совпадению, например:

man -P 'most +/symbolic' ls      

Еще одна заметка — ov. Это более новая версия, выпущенная в 2020 году, а программа написана на Go с отличной документацией. Проект даже объясняет лучшее использование ov с различными другими инструментами, включая man.

ov поддерживает широкий набор интерактивных команд, которые вы можете просматривать в любое время, нажав h:

Одна из моих любимых функций проста, но очень полезна: нажатие клавиши G для переключения отображения номеров строк. Хотя ov показывает текущий номер строки в правом нижнем углу, его легко упустить из виду, а номера строк могут помочь вам ориентироваться, особенно в более длинных страницах man.

Как и большинство pager, ov может отображать более одного файла одновременно. Но, в отличие от большинства, он может открывать несколько файлов из командной строки, так что можно прочитать более одной man-страницы одновременно, используя подстановку процессов:

ov <(man ls) <(man pwd)      

В интерфейсе ov вы можете нажать ], чтобы перейти к следующему файлу, и [, чтобы вернуться к предыдущему. Хотя пользоваться этой функцией немного неудобно, она может быть полезной при сравнении страниц руководства (man) двух похожих команд. Вы даже можете использовать её для сравнения страниц руководства двух разных версий одной и той же команды.

Где ov действительно проявляет себя, так это в настраиваемости. Пример небольшого достижения — это опция —header, которая задаёт количество фиксированных строк заголовка:

man -P 'ov --header 1' man      

Это отлично подходит для просмотра страниц руководства, так как первая строка является красивым заголовком, который напоминает, какую страницу справки вы просматриваете:

Опция —header удерживает эту строку всегда на виду, так что вы не потеряетесь, даже если у вас открыто несколько справочных страниц в разных терминальных окнах.

Еще одной полезной опцией является —section-delimiter. ov позволяет использовать её для определения мест, где начинаются разделы в просматриваемом документе. Затем вы можете перемещаться между разделами, используя Space для перехода вперед и ^для перехода назад. Поскольку страницы man имеют четко определенные разделы, это очень полезно:

man -P 'ov --section-delimiter "^[^s]"' man      

Разделитель здесь — это регулярное выражение, которое совпадает со строками, начинающимися с символа, отличного от пробела. Поскольку страницы руководства (man) форматируют заголовки разделов именно так, а все остальное содержимое сдвинуто пробелами, это аккуратно делит страницу руководства на разделы, обеспечивая удобную навигацию между ними.

В качестве бонуса вы также получите заголовки разделов, которые остаются закрепленными в пределах своего текущего раздела, как более продвинутая версия опции —header:


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

Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *