Команда man позволяет задействовать одноименную утилиту, предназначенную для отображения руководств по использованию команд, файлов конфигурации и системных вызовов. Данная команда полезна как для системных администраторов и программистов, так и для обычных пользователей, которым нужно узнать параметры команды или формат системного файла конфигурации.
Рассматриваемая утилита использует текстовые файлы специального формата, поставляемые разработчиками системы и сторонних приложений и распространяемые в составе операционной системы. Для ускорения доступа к содержимому этих файлов осуществляется их индексирование силами системной утилиты updatedb (данная утилита запускается по таймеру и при установке новых пакетов ПО).
Руководства разделены на несколько секций, а именно:
Каждая страница руководства состоит из нескольких разделов. В зависимости от секции руководства, этими разделами могут быть:
Базовый синтаксис команды выглядит следующим образом:
$ man [параметры] [номер-раздела] имя-команды
Команда принимает ряд параметров, позволяющих упростить работу с базой данных руководств. Так, параметр -f позволяет найти номера секций, в которой расположены руководства с заданным именем, параметр -a позволяет вывести найденные руководства с заданным именем, а параметр -w — непосредственно вывести имя файла руководства. Кроме того, существует параметр -I, позволяющий не учитывать регистр введенного имени команды.
Следует знать, что утилита не просто выводит описание команды, файла конфигурации или системного вызова, а поддерживает режим прокрутки текста, что может оказаться полезным в случае использования текстовой консоли. Поэтому вы должны использовать клавиши со стрелками ↑ и ↓ для плавной прокрутки текста вверх и вниз, клавиши PageUp и PageDown для его постраничной прокрутки, клавиши / и ? для поиска в тексте сверху вниз и снизу вверх соответственно и клавишу n для перехода к следующему найденному фрагменту. Разумеется, для начала поиска нужно ввести поисковый запрос и нажать на клавишу Enter. Для выхода из режима чтения руководства следует использовать клавишу Q, для получения списка всех горячих клавиш — клавишу H.
Для получения информации о команде достаточно передать утилите имя этой команды:
$ man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [file]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐
fied.
…
Очевидно, что в результате была выведена нужная страница руководства.
Вы также можете указать секцию, в которой расположено руководство. К примеру, руководство по работе с командой useradd расположено в секции 8, так как команда предназначена для системных администраторов.
$ man 8 useradd
useradd(8) Команды управления системой useradd(8)
НАЗВАНИЕ
useradd - регистрирует нового пользователя или изменяет информацию по
умолчанию о новых пользователях
СИНТАКСИС
useradd [параметры] УЧЁТНАЯ_ЗАПИСЬ
useradd -D
useradd -D [параметры]
…
Как несложно заметить, не все страницы руководств локализованы (даже страница руководства утилиты useradd, фрагмент которой показан выше, локализована не полностью), поэтому материалы данного сайта являются вполне актуальными.
В процессе разработки ПО нередко приходится искать информацию о параметрах библиотечных функций и системных вызовов.
Системные вызовы размещены в рамках секции 2:
$ man 2 ioctl
IOCTL(2) Linux Programmer's Manual IOCTL(2)
NAME
ioctl - control device
SYNOPSIS
#include <sys></sys>
int ioctl(int fd, unsigned long request, ...);
DESCRIPTION
The ioctl() system call manipulates the underlying device parameters of
special files. In particular, many operating characteristics of char‐
acter special files (e.g., terminals) may be controlled with ioctl()
requests. The argument fd must be an open file descriptor.
…
ioctl — один из системных вызовов Unix для управления устройствами посредством соответствующих им специальных файлов. Как видно, руководство по его использованию доступно для пользователя системы.
Библиотечные функции размещены в секции 3:
$ man 3 printf
PRINTF(3) Linux Programmer's Manual PRINTF(3)
NAME
printf, fprintf, dprintf, sprintf, snprintf, vprintf, vfprintf, vd‐
printf, vsprintf, vsnprintf - formatted output conversion
SYNOPSIS
#include <stdio.h></stdio.h>
int printf(const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int dprintf(int fd, const char *format, ...);
int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...);
…
Разумеется, информация о функциях стандартной библиотеки языка C также доступна пользователю. В данном случае следует обратить внимание на тот факт, что указание секции 3 обязательно, ведь существует одноименная утилита, руководство для которой размещено в секции 1 и отображается по умолчанию:
$ man -f printf
printf (1) - format and print data
printf (3) - formatted output conversion
Описанным выше образом может быть осуществлен поиск руководств. Если вы желаете ознакомиться со всеми найденными руководствами непосредственно, вы можете использовать параметр -a:
$ man -a printf
…
$ man -a printf
--Man-- след: printf(3) [ просм (ввод) | пропуск (Ctrl-D) | выход (Ctrl-C) ]
…
При использовании данного параметра все руководства, следующие за первым, можно пропустить.