Команда 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
и т.д. Назначение этих групп следующее:
man1
-- команды и прикладные программы пользователя;man2
-- системные вызовы;man3
-- библиотечные функции;man4
-- драйверы устройств;man5
-- форматы файлов;man6
-- игры;man7
-- различные документы, не попадающие в другие группы (в том числе относящиеся к национальной поддержке);man8
-- команды администрирования системы.
В BSD к ним добавляется еще и 9-я группа, man9
-- man-страницы для разработчиков ядра системы.
Нас, как пользователей, в данный момент интересуют в первую очередь команды из 1-й и, поскольку на персоналке каждый юзер -- сам себе админ, из 8-й групп, хотя и об остальных категориях забывать не след, иногда позарез нужные сведения отыскиваются в самой неожиданной из них.
Внутри групповых подкаталогов можно увидеть многочисленные файлы вида filename.#.gz. Последний суффикс свидетельствует о том, что man
-страница упакована компрессором gzip (что бывает не всегда, но -- как правило). Цифра после имени соответствует номеру группы (то есть в подкаталоге ~/man1
это всегда будет единица). Ну а имя man
-страницы совпадает с именем команды, которую она описывает. Если, конечно, речь идет о команде -- в разделе 2 оно будет образовано от соответствующего системного вызова, в разделе 2 -- от имени функции, и так далее. Но пока нас интересует только информация о командах, так что дальше я этого оговаривать не буду.