Команда man: общее представление

Команда man предназначена для вызова экранной документации в одноименном формате (Manual Pages, что на Руси ласково переводится как "тетя Маня"). А такая man-документация почти обязательно сопровождает любую уважающую себя программу для POSIX-систем. И устанавливается в принудительном порядке при инсталляции соответствующей программы в любом случае -- разворачивается ли она из бинарного тарбалла или собирается из исходников.

Для файлов man-документации предназначены специальные каталоги. Обычно это /usr/share/man (иногда /usr/man) для man-страниц базовой системы и штатных компонентов дистрибутива, usr/X11R6/man -- для документации по оконной системе Икс, usr/local/man -- для документации к программам, самостоятельно собираемых пользователем (или устанавливаемых из портов). Впрочем, местоположение man-страниц может быть различным. Однако в большинстве случаев его легко определить, просмотрев значения специальной переменной -- MANPATH:

$ echo $MANPATH

что даст примерно такую картину:

/usr/man:/usr/share/man:/usr/local/man:/usr/X11R6/man

Man-страницы в любой POSIX-системе разделены на восемь нумерованных групп, каждая из которых размещена в собственном подкаталоге: /usr/share/man1, /usr/share/man2 и т.д. Назначение этих групп следующее:

  1. man1 -- команды и прикладные программы пользователя;
  2. man2 -- системные вызовы;
  3. man3 -- библиотечные функции;
  4. man4 -- драйверы устройств;
  5. man5 -- форматы файлов;
  6. man6 -- игры;
  7. man7 -- различные документы, не попадающие в другие группы (в том числе относящиеся к национальной поддержке);
  8. man8 -- команды администрирования системы.

В BSD к ним добавляется еще и 9-я группа, man9 -- man-страницы для разработчиков ядра системы.

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

Внутри групповых подкаталогов можно увидеть многочисленные файлы вида filename.#.gz. Последний суффикс свидетельствует о том, что man-страница упакована компрессором gzip (что бывает не всегда, но -- как правило). Цифра после имени соответствует номеру группы (то есть в подкаталоге ~/man1 это всегда будет единица). Ну а имя man-страницы совпадает с именем команды, которую она описывает. Если, конечно, речь идет о команде -- в разделе 2 оно будет образовано от соответствующего системного вызова, в разделе 2 -- от имени функции, и так далее. Но пока нас интересует только информация о командах, так что дальше я этого оговаривать не буду.

. .