Man — команда справочной системы UNIX¶
man (от англ. manual) — команда операционных систем семейства UNIX и Linux, выводящая справочную документацию по другим командам, утилитам, библиотекам и системным вызовам. Стандартная реализация использует форматировщик troff и утилиту groff, а сами страницы хранятся в виде файлов с расширением .1, .2, .3 и т. д. в каталогах /usr/share/man или /usr/local/share/man. Команда является одним из базовых средств документирования в Unix-подобных системах и входит в POSIX.
¶История
Первая версия man появилась в 1971 году в составе первой редакции Unix для PDP-11. Автором первоначальной реализации считается Деннис Ритчи. В 1979 году в Unix V7 была представлена утилита nroff (новая версия roff), которая стала стандартным форматировщиком для man-страниц. Позднее, в 1990-х годах, на смену nroff пришёл groff (GNU roff), написанный Джеймсом Кларком. В 2010-х годах в Linux-дистрибутивах начали распространяться альтернативные реализации: mandoc (используется в OpenBSD и FreeBSD), man-db (стандарт в Debian и Ubuntu) и man из проекта man-pages.
¶Структура man-страницы
Man-страница — это текстовый файл, отформатированный макросами roff. Стандартная структура включает следующие разделы:
- Имя (NAME) — краткое описание команды;
- Синтаксис (SYNOPSIS) — форма вызова с аргументами;
- Описание (DESCRIPTION) — подробное описание функционирования;
- Опции (OPTIONS) — список флагов и параметров;
- Примеры (EXAMPLES) — типичные сценарии использования;
- Виды (SEE ALSO) — ссылки на связанные страницы;
- Автор (AUTHOR) и Лицензия (LICENSE).
¶Разделы (мануальные разделы)
Документация разделена на тематические разделы, нумерованные от 1 до 9:
| Раздел | Содержание |
|---|---|
| 1 | Пользовательские команды (ls, grep, man) |
| 2 | Системные вызовы (open, read, write) |
| 3 | Библиотечные функции (printf, malloc) |
| 4 | Специальные файлы (/dev/*) |
| 5 | Форматы файлов и конфигураций (/etc/passwd) |
| 6 | Игры |
| 7 | Системные понятия и соглашения |
| 8 | Административные команды (mount, ifconfig) |
| 9 | Внутренние функции ядра Linux |
Пример вызова: man 3 printf покажет справку по библиотечной функции printf, а man 8 mount — по команде монтирования файловых систем.
¶Использование
Базовый вызов man команда отображает страницу, отформатированную для терминала. Основные опции:
-k ключевое_слово— поиск по описаниям (эквивалентapropos);-f имя— краткое описание команды (эквивалентwhatis);-w— показать путь к файлу страницы;-M путь— использовать альтернативный каталог с документацией;-a— показать все страницы, соответствующие запросу;-T формат— использовать заданный форматировщик (например,-Thtmlдля HTML).
Для поиска по всем разделам одновременно используется ключ -a. Пользовательские настройки задаются переменной окружения MANPAGER (программа для прокрутки, по умолчанию less) и MANPATH (каталоги с документацией).
¶Альтернативы и связанные утилиты
- apropos — поиск страниц по ключевым словам в описании;
- whatis — однострочное описание команды;
- info — система документации GNU, заменяющая man для проектов GNU;
- help — встроенные подсказки интерактивных оболочек (bash, zsh);
- tldr — упрощённые, краткие справки, ориентированные на практическое использование.
В дистрибутивах на базе Debian пакет man-db предоставляет фоновый сервис mandb, который индексирует man-страницы и ускоряет поиск. В FreeBSD и OpenBSD используется mandoc, который также умеет форматировать страницы в HTML и другие форматы.
¶См. также
- roff и groff — текстовые форматировщики
- POSIX — стандарты интерфейса Unix
- Системное администрирование
¶Источники
- POSIX.1-2017, раздел «man»
- Linux man-pages project (man7.org)
- GNU groff manual
- Документация mandoc