Команда man в linux

Обновлено: 03.07.2024

Описание того, где man ищет страницы руководства, смотрите ниже.

ОПЦИИ

СТРАНИЦЫ CAT

В целях экономии времени затрачиваемого на форматирование, man будет пытаться сохранить форматированные страницы руководства для последующих вызовов. Традиционно, форматированные версии страниц из ДИРЕКТОРИЯ/manX сохраняются в ДИРЕКТОРИЯ/catX, однако можно настроить в /etc/man.conf другое соответствие между каталогами man и cat. Сохранение страниц cat не будет происходить, если требуемый каталог cat не существует. Не будут сохраняться страницы cat и при их форматировании под строки длинной не равной 80 символам. Не сохраняются страницы cat и при наличии в man.conf строки содержащей NOCACHE.

Есть возможность, с помощью suid сделать man исполняемым от имени пользователя man. Тогда, если каталогом cat владеет пользователь man и права доступа к нему установлены в 0755 (запись разрешена только пользователю man), и файлы cat также принадлежат пользователю man, с установленными правами доступа к ним в режиме 0644 или 0444 (их изменение доступно только пользователю man, или никому вообще), то обычный пользователь не сможет изменить страницы cat или поместить другие файлы в каталог cat. Если man не выполняет suid, в таком случае для предоставления возможности всем пользователям сохранения отформатированных страниц каталог cat должен иметь права доступа 0777.

Опция -c вынуждает переформатировать страницу, даже если существует ранее использовавшаяся страница cat.

ПУТИ ПОИСКА СТРАНИЦ РУКОВОДСТВА

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

Прежде всего, если имя аргумента передаваемого man содержит наклонную черту ( / ), man принимает его как указание на файл, и не осуществляет поиск.

Однако в обычном случае, где имя не включает наклонной черты, man ищет в ряде каталогов файл, содержащий страницы руководства для указанной темы.

Если вы зададите опцию -M список_путей , то список_путей это разделённый двоеточиями список каталогов в которых man осуществит поиск.

Если вы не укажите -M , но установите переменную окружения MANPATH , man использует значение переменной как список каталогов для поиска.

Если вы не определите списка особых путей поиска с помощью -M или MANPATH , man осуществит поиск по своему списку путей, основанному на содержании файла конфигурации /etc/man.conf . Каталоги, заявленные в переменной MANPATH в конфигурационном файле, включаются в пути поиска.

Более того, определение MANPATH_MAP добавляет каталоги для поиска в зависимости от вашей настройки путей поиска команд (т.е. вашей переменной окружения PATH ). Для каждого каталога который может быть определён в настройке пути поиска команд, MANPATH_MAP устанавливает каталог который может быть добавлен в пути поиска файлов страниц справочника. man читает значение переменной PATH и добавляет соответствующие каталоги в пути поиска файлов страниц справочника. Таким образом, при должном использовании MANPATH_MAP , когда вы вызываете команду man xyz , вы получаете страницу руководства для программы, выполняемой вызовом команды xyz .

Кроме того, для каждого каталога в пути поиска команды (будем называть его "каталог команд"), для которого не определена MANPATH_MAP , man автоматически ищет поблизости каталог со страницами руководства, а именно в подкаталоге каталога команд или родительском каталоге для каталога команд.

Объявлением переменной NOAUTOPATH включенной в /etc/man.conf , вы можете отключить автоматический поиск "поблизости".

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

Если вы хотите знать где (или если) man нашёл страницу руководства для заданной темы, используйте опцию --path ( -w ).

ОКРУЖЕНИЕ

СМОТРИ ТАКЖЕ

ОШИБКИ

Опция -t работает только если установлена программа, подобная troff.
Если вы видите мигающие \255 или <AD> знака переноса, добавьте в своё окружение 'LESSCHARSET=latin1'.

СОВЕТЫ


(global-set-key [(f1)] (lambda () (interactive) (manual-entry (current-word))))

в ваш файл .emacs , то нажатие клавиши F1 будет открывать страницу справочника по библиотечной функции, на название которой указывает курсор.

Чтобы получить простую текстовую версию страницы руководства, без символов возврата и подчёркивания, попробуйте команду вида

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

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

Что такое man?

Команда man позволяет получить доступ к общей базе справки по команде, функции или программе. Обычно для просмотра справки программе надо передать название команды или другого объекта в системе. Синтаксис у неё такой:

$ man раздел название_страницы

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

  • 1 - команды оболочки или программы;
  • 2 - системные вызовы;
  • 3 - функции библиотек;
  • 4 - файлы из каталога /dev;
  • 5 - форматы файлов;
  • 6 - игры;
  • 7 - разное;
  • 8 - команды администрирования системы;
  • 9 - процедуры ядра.

Давайте рассмотрим несколько примеров. Для того чтобы посмотреть справку по команде man достаточно выполнить такую команду:


Для команды ls справка вызывается так:


Каждая страница справки разделена на несколько секций. Вы можете видеть их на снимках экрана выше. Это:

  • NAME - имя программы или команды, а также краткое её описание;
  • SYNOPSIS - синтаксис команды и порядок передачи в неё опций;
  • DESCRIPTION - более подробное описание команды;
  • CONFIGURATION - настройки программы;
  • OPTIONS - опции команды;
  • EXAMPLE - примеры использования;
  • AUTHORS - авторы программы.

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

Для просмотра информации и управлением страницей справки используются такие горячие клавиши:

  • стрелка вверх/вниз - прокрутка информации вверх или вниз;
  • e или j - переместиться на одну строку вверх;
  • y или h - переместиться на одну строку вниз;
  • z - переместиться на одно окно вниз;
  • w - переместиться на одно окно вверх;
  • d - переместиться на пол окна вниз;
  • u - переместиться на пол окна вверх;
  • / - поиск вхождений указанных после символов вперед;
  • ? - то же самое, что и предыдущее, только поиск назад;
  • n - в режиме поиска отображение следующего вхождения;
  • N - в режиме поиска отображение предыдущего вхождения.

С перемещением по странице, скорее всего, всё понятно. Для того чтобы искать какое-либо слово на странице нажмите клавишу / и начните набирать слово, которое надо искать. Оно будет отображаться внизу окна:


Затем нажмите Enter и программа подсветит все вхождения этого слова в текст. Для поиска следующего вхождения нажимайте n:


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

При запуске утилиты можно использовать несколько опций, давайте рассмотрим эти опции. Их не так уж много и самые интересные из них только несколько. Опция -f позволяет посмотреть краткое описание справочной страницы. Например:


С помощью опции -k можно выполнять поиск по кратким описаниям справочных страниц. Например, давайте найдём все страницы, в описаниях которых есть слово printf:


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


Команда будет открывать найденные страницы по очереди. Для выхода нажмите Ctrl+C. Опция -L позволяет вручную задать язык, на котором будет отображена страница. Например для вывода информации про man на английском выполните:

man -L en_US man

А чтобы отобразить man на русском Linux надо передать этой опции значение ru_RU:

man -L ru_RU man

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

Выводы

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

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

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

Мануалы в Linux не описывают то, как создать или заставить работать SSL-сертификаты, однако, перед их создателями и не было такой цели. Любой сисадмин, работающий с Linux должен получать всю требующуюся ему информацию о командах, списке функций, параметрах системы, с которой он работает из мануалов уже установленных в операционной системе.

Как устроен справочник в Linux?

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

  • Под цифрой 1 скрываются программы для обычных пользователей;
  • Под цифрой 2 можно найти данные о кодах ошибок основного ядра и описание вызовов системы;
  • Под цифрой 3 можно увидеть возможности библиотек системы;
  • Под цифрой 4 в Linux можно увидеть описание сетевых протоколов и драйверов устройства;
  • Пол цифрой 5 в Linux находятся описания файлов, которые поддерживаются системой;
  • Под цифрой 6 в Linux находятся данные о примерах игр и программ в системе, HP-UX такой информации не имеет;
  • Под цифрой 7 в Linux находится различная документация;
  • Под цифрой 8 в Linux описаны возможности для системных администраторов и команды для них;
  • Под цифрой 9 описаны системные ядра и внутренние интерфейсы.

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

  • Есть фраза «passwd» и она имеет 2 значения, как команда и как файл системы;

Информацию о справочных данных вышеприведенные системы содержат в себе в разделах 1, 4 и 5.

Нельзя забывать и про то, что многие дистрибутивы в своих последних версиях переносят команды из раздела 8 в Linux в группу к остальным системным командам. А освободившийся раздел используется как резерв для информации о будущих обновлениях. Помимо этого все меньше информации становится в разделе 6.

Как читать интерактивную справку?

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

man [-опции] номер раздела номер заголовка

Чтобы пользователь смог прочитать информацию, man использует такие утилиты как less и more, они дают возможность читать мануал с комфортом, помимо этого используются и другие возможности для вывода текста. Чтобы мануал был разбит на страницы, утилита использует переменную среды PAGER.

Последним в запрос вписывается заголовок, им может быть наименование утилиты, файла или самого компьютера, другими словами все, о чем нужно найти информацию. Для поиска вначале используются тематики под номерами 1, 6 и 8, именно они содержат данные о командах, если в них ничего не найдено, то проверяются остальные тематики.

-a - показать подряд все справочные страницы.

-f - выдает разделы, где присутствует команда.

-k - искать упоминание в тематиках.

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

Вызов man

Данная команда покажет все системные вызовы для «GNU Midnight Commander».

А для нахождения и раздела, и заголовка необходимо ввести название команды и номер раздела:

Однако не во всех команд есть раздел 2, например если написать "man 2 mc", то будет ошибка.

mc - нет раздела

Чтобы такого не было у man есть опция "-f". Она выдаст разделы, в которых присутствует команда.

Мануал с аргументом -f

Как видно из скриншота, утилита mc присутствует только в 1 разделе.

Если пользователю нужны данные о том, в каких тематиках можно найти информацию о «mc», то к запросу man следует приписать аргумент –k. Например, если ввести:

то на экране появится следующая информация:

Мануал с аргументом -k

Результат выполнения man -k mc

После запроса пользователь получит все страницы, на которых упоминается «mc», в них указан номер тематики или подраздела, а также ключевое слово.

Где хранятся мануалы?

Чтобы узнать, где именно в системе Linux находятся мануалы, которые по совместительству являются и входными данными, работающими с командой nroff, следует ввести команду manpath. После ее введения появится ответ системы:
/usr/local/man:/usr/local/share/man:/usr/share/man

Результат данной команды показывает подкаталоги, которые содержат в себе справочную информацию в системе Ubuntu.

Все 3 расположения разделены между собой знаком «:».

В любой момент можно сменить месторасположение страниц мануала, однако они находятся в переменной окружения MANPATH, поэтому для перемещения страниц мануала нужно сменить показатель переменной:

Изначально в системах на основе Linux справочники хранятся в /usr/share/man. Команда «man» может работать и с кэшем страниц, однако для этого такие каталоги как /var/cache/man и /usr/share/man должны быть открыты для записей в них, что ведет к нарушениям в безопасности.

Для экономии пространства на диске мануалы находятся в сжатом виде, им это обеспечивает такая утилита как gzip.

Несмотря на то, что страницы сжаты, команда «man» открывает их очень быстро, ведь она способна на быструю разархивацию.

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

Справочная система Linux

Для удобства организации и хранения справочной документации все страницы справочных руководств в Linux сгруппированы по тематическим разделам. В зависимости от дистрибутива одни и те же разделы могут содержать разный набор руководств. Допускается также деление разделов на подразделы. Следующая таблица демонстрирует состав основных разделов справочных руководств для некоторых систем:

По-умолчанию, без указания раздела команда man практически всегда находит требуемую информацию, поэтому на первый взгляд может показаться, что структура разделов не имеет особого значения. Но часты случаи, когда одна и та же искомая фраза содержится в разных контекстах и вот тут и полезно разбиение системной справки на разделы. К примеру, запрашиваемая фраза «passwd» подразумевает как команду, так и конфигурационных файл. Таким образом справочную информацию содержат (согласно вышеприведённой таблице) разделы 1, 4 и 5.

Стоит отметить, что в настоящее время разделы 8 всё чаще освобождаются и используются как резервные для последующего наполнения, а ранее содержащаяся в данных разделах информация (команды системного администрирования) перемещена (в большинстве дистрибутивов) в раздел 1. Также освобождаются и разделы 6.

Чтение интерактивной справки

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

Команда man использует для вывода руководства утилиты less или more (а также и другие инструменты для постраничного вывода текста), при этом аккуратно форматирует текст для удобства его восприятия. Используемая утилита постраничной разбивки задаётся в переменной среды PAGER. Аргумент заголовок — это чаще всего имя команды, файла или даже устройства, о котором необходимо вывести разделы справки. Как правило, в первую очередь просматриваются разделы, содержащие информацию о командах, т. е. разделы 1, 6 и 8, а далее поиск производится по возрастанию номеров разделов.

Для указания конкретного раздела справки следует передавать параметр раздел, например:

выведет описание для команды sync, а команда:

отобразит страницы с описанием системного вызова sync.

Если нужно получить представление о том, в каких разделах доступна информация по интересующему запросу, нужно дать команду man -k запрос:

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

Хранение интерактивных руководств

Для определения, где в конкретной Linux-системе хранятся страницы справочных руководств (они же являются входными данными для обработки командой nroff, используемой man), достаточно выполнить команду manpath:

В данном выводе представлены каталоги, в подкаталогах которых хранится справочная информация для систем Ubuntu. Пункты представленного списка разделены двоеточиями. Расположение для хранения man-страниц можно изменить. Поскольку данная опция хранится в переменной окружения MANPATH, то для этого нужно изменить значение этой переменной:

По-умолчанию для Linux-систем справочные руководства хранятся в /usr/share/man. Команда man также поддерживает работу с кэшем страниц, но только тогда, когда соответствующие каталоги /var/cache/man и /usr/share/man доступны для записи, что критично в плане безопасности. В целях экономии дискового пространства справочные руководства хранятся в сжатом виде и для сжатия используется, как правило, утилита gzip. Сжатие страниц практически не сказывается на производительности во время работы со справочной системой, поскольку команда man способна очень быстро производить разархивацию.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Man страницы в Linux

При работе в Linux иногда требуется чтение документации, руководств или help’ов. В Linux есть отличная документация, которая размещена в Man-страницах.

Что такое Man-страницы

Man-страницы (от слова manualруководство) — это целая библиотека в системе Linux, содержащая руководства по командам, утилитам, программированию и другим областям системы и не только.

Как открыть Man-страницы

Для чтения Man-страниц предназначена команда man .

Чтобы получить руководство по использованию какой-либо команды нужно выполнить команду:

Например, чтобы вывести руководство по команде wget, нужно выполнить команду:

man wget

Синтаксис команды man

В общем виде синтаксис команды man следующий:

Разделы

Man-страницы разделены по тематикам на разделы (на секции). Каждый раздел имеет свой номер. Всего существует 8 основных разделов.

Если вы не указали раздел, при выполнении команды man , то сначала будет выполнен поиск руководства в первом разделе, если его там нет, то во втором и так далее.

Например, откроем руководство по команде sleep. В данном случае будет использоваться первый раздел.

man sleep

А теперь получим справку по библиотечному вызову sleep языка программирования C (раздел 3):

man 3 sleep

Ниже представлена таблица с номерами разделов и их назначением (тематикой).

Номер
раздела
Описание
1Основные команды.
2Системные вызовы.
3Библиотечные функции, включая стандартную библиотеку языка C.
4Специальные файлы (обычно устройства из /dev ) и драйвера.
5Форматы файлов и соглашения.
6Игры и скринсейверы.
7Разное.
8Команды системного администрирования и демоны.

Для указания ссылок на Man-страницы часто используют следующую запись: имя(раздел) . Например, aporopos(1) , less(1) , exit(3) .

Поиск Man-страниц

Самая полезная опция команды man , это опция -k .

-k — поиск Man-страниц. Выводит список Man-страниц, в которых встречается искомый запрос.


Горячие клавиши и поиск внутри Man-страницы

Вверх , Вниз , Enter — просмотр (прокрутка) Man-страницы.
PgUb , PgDn , Пробел — постраничное пролистывание.

/ - поиск внутри страницы. Нажимаете клавишу / , при этом внизу появляется строка для ввода текста. Вводите текст, который вы хотите найти, и нажимаете Enter .
? — поиск в обратном направлении (снизу вверх). Аналогично нужно ввести текст для поиска и нажать Enter .
n — переход к следующему вхождению.
Shift+n — переход к предыдущему вхождению.
& — поиск внутри страницы, но вместо подсвечивания результатов, вывести только строки, где было найдено искомое слово.

h — открыть справку по командам и горячим клавишам. Чтобы закрыть справку, используется клавиша q .

q — закрыть Man-страницу.

Установка Man-страниц

Как правило, базовые man-страницы обычно всегда установлены в дистрибутивах Linux, но иногда их нужно устанавливать самостоятельно. Для установки Man-страниц выполните следующие команды.
Для Ubuntu:

Для Fedora, CentOS:

Для установки Man-страниц, содержащих описание библиотечных функций языка программирования C, выполните следующие команды.
Для Ubuntu:

Читайте также: