Страница руководства (сокращение от «страница руководства ») — это форма документации по программному обеспечению, обычно встречающаяся в Unix или Unix-подобных операционных системах . Рассматриваемые темы включают компьютерные программы (включая библиотечные и системные вызовы ), формальные стандарты и соглашения и даже абстрактные концепции. Пользователь может вызвать справочную страницу , введя man
команду .
По умолчанию man
обычно используется программа -пейджер терминала , такая как more
или, less
для отображения ее вывода.
Страницы руководства часто называют онлайн- формой документации по программному обеспечению [1] , хотя для этой команды не требуется доступ в Интернет, что восходит к тем временам, когда печатные руководства по внешнему интерфейсу были нормой.man
До Unix, например, GCOS , документация представляла собой печатные страницы, доступные локально для пользователей (сотрудников, студентов...), организованные в стальные папки, скрепленные в одну монолитную стальную стойку для чтения, прикрепленную болтами к столу или стойке, с страницы организованы для модульных обновлений, замен, исправлений и дополнений. [ нужна цитата ]
В первые два года истории Unix не существовало никакой документации. [2] Руководство программиста Unix было впервые опубликовано 3 ноября 1971 года. Первые настоящие справочные страницы были написаны Деннисом Ритчи и Кеном Томпсоном по настоянию [ нужна ссылка ] их менеджера Дуга Макилроя в 1971 году. Помимо справочных страниц, В « Руководстве программиста» также собран набор коротких статей, некоторые из которых представляют собой учебные пособия (например, по общему использованию Unix, языку программирования C и таким инструментам, как Yacc ), а другие — более подробные описания функций операционной системы. Печатная версия руководства изначально помещалась в одну подшивку, но начиная с PWB/UNIX и 7-го издания Research Unix , она была разделена на два тома, причем печатные страницы руководства составляли том 1. [3]
Более поздние версии документации имитировали краткость первых страниц руководства. Ричи добавил раздел «Как начать» во введение к третьему изданию , а Лоринда Черри предоставила карманный справочник «Фиолетовая карта» для шестого и седьмого изданий. [2] Версии программного обеспечения названы в честь редакции руководства; например, седьмое издание « Руководства программиста Unix» входило в состав 7-го издания или версии 7 Unix. [4]
Для четвертого издания справочные страницы были отформатированы с использованием пакета набора текста troff [2] и его набора -man
макросов (которые были полностью переработаны между шестым и седьмым изданиями Руководства , [ 3] , но с тех пор существенно не изменились). В то время доступность онлайн-документации через систему страниц руководства считалась большим достижением. По сей день практически каждое приложение командной строки Unix имеет справочную страницу, и многие пользователи Unix воспринимают отсутствие справочных страниц программы как признак низкого качества; действительно, некоторые проекты, такие как Debian , изо всех сил стараются писать справочные страницы для программ, у которых их нет. Современные потомки 4.4BSD также распространяют справочные страницы как одну из основных форм системной документации (заменив старые -man
макросы более новыми -mdoc
).
В версии man-db команды man было скрытое пасхальное яйцо , из-за которого команда возвращала «дай мне, дай мне, дай мне» при запуске в 00:30 (отсылка к песне ABBA Gimme ! Gimme! Gimme! (A Man) After Midnight) . Он был введен в 2011 году [5] , но сначала был ограничен [6] , а затем удален в 2017 году [7] после того, как наконец был найден. [8]
Формат страниц руководства по умолчанию — troff с макропакетом man (ориентированный на внешний вид) или mdoc (ориентированный на семантику). Это позволяет верстать справочную страницу в PostScript , PDF и различные другие форматы для просмотра или печати.
В некоторых системах Unix имеется пакет для команды man2html , который позволяет пользователям просматривать свои справочные страницы с помощью HTML-браузера. Системы с groff и man-db вместо этого должны использовать собственный HTML-вывод более высокого качества ( man --html ). Программа WoMan GNU Emacs (от «WithOut man») позволяет просматривать справочные страницы из редактора. [9]
В 2010 году OpenBSD отказался от использования troff для форматирования man-страниц в пользу mandoc , специализированного компилятора/форматера для man-страниц со встроенной поддержкой вывода в PostScript , HTML , XHTML и терминал. Он предназначен для поддержки только подмножества troff, используемого на страницах руководства, особенно тех, которые используют макросы mdoc.
Довольно много веб-сайтов предлагают онлайн-доступ к страницам руководств из различных Unix-подобных систем.
В феврале 2013 года в сообществе BSD был запущен новый сервис mdoc.su с открытым исходным кодом, который унифицировал и сократил доступ к сценариям man.cgi основных современных проектов BSD с помощью уникального детерминированного сервиса сокращения URL-адресов на базе nginx для *BSD man. страницы. [10] [11] [12]
Для Linux была создана служба man7.org для предоставления руководств, специфичных для этой системы. [13] Сервис ManKier предоставляет более широкий выбор, а также интегрирует страницы TLDR. [14]
Чтобы прочитать страницу руководства для команды Unix, пользователь может ввести:
человек <имя_команды>
Страницы традиционно обозначаются обозначением «имя(раздел)»: например,
. В этом разделе описаны различные способы обращения к теме — например, в виде системного вызова, команды или пакета оболочки (командной строки), файла конфигурации пакета или конструкции/заголовка кода.Одно и то же имя страницы может встречаться в нескольких разделах руководства, например, когда имена системных вызовов , пользовательских команд или пакетов макросов совпадают. Примеры: и или и . Синтаксис доступа к разделу руководства, отличному от стандартного, варьируется в зависимости от реализации man.
Например, в Solaris и Illumos синтаксис чтения
следующий:человек -s 3c printf
В производных Linux и BSD тот же вызов будет:
мужчина 3 распечатать
который ищет printf в разделе 3 страниц руководства.
Руководство обычно разделено на восемь пронумерованных разделов. Большинство современных систем (например , BSD , [15] macOS , Linux , [16] и Solaris 11.4) наследуют схему нумерации, используемую Research Unix . [17] [18] Хотя в Системе V используется другой порядок: [19]
API POSIX присутствуют как в разделах 2, так и в 3, где раздел 2 содержит API, реализованные как системные вызовы, а раздел 3 содержит API, реализованные как библиотечные процедуры.
В некоторых системах доступны некоторые из следующих разделов:
Некоторые разделы дополнительно подразделяются с помощью суффикса; например, в некоторых системах раздел 3C предназначен для вызовов библиотеки C, раздел 3M — для математической библиотеки и так далее. Следствием этого является то, что раздел 8 (команды системного администрирования) иногда относят к подразделу 1M раздела основных команд. Некоторые суффиксы подразделов имеют общее значение для всех разделов:
(Раздел 3, как правило, является исключением из-за большого количества суффиксов для разных языков.)
Некоторые версии man
кэшируют отформатированные версии нескольких последних просмотренных страниц. Одной из форм является страница cat , просто передаваемая по конвейеру на пейджер для отображения.
Все справочные страницы имеют общий макет, оптимизированный для представления в простом текстовом формате ASCII , возможно, без какой-либо формы выделения или управления шрифтом. Присутствующие разделы могут включать: [21] : СТРУКТУРА РУКОВОДСТВА.
Могут присутствовать и другие разделы, но они недостаточно стандартизированы на страницах руководства. Общие примеры включают: ОПЦИИ, СТАТУС ВЫХОДА, ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ, ОКРУЖАЮЩУЮ СРЕДУ, ОШИБКИ, ФАЙЛЫ, АВТОР, СООБЩЕНИЯ ОБ ОШИБКАХ, ИСТОРИЯ и АВТОРСКИЕ ПРАВА.
Страницы руководства могут быть написаны либо со старыми man
макросами, либо с новыми doc
макросами, либо с использованием того и другого ( mandoc
). [22] Набор макросов man
обеспечивает минимальные функции форматирования текста , включая директивы для строки заголовка, заголовков разделов, шрифтов (жирный, мелкий или курсив), абзацев и добавления/уменьшения отступов. [23] Новый mdoc
язык имеет более семантический характер и содержит специализированные макросы для большинства стандартных разделов, таких как имя программы, описание, имена функций и имена авторов. Эту информацию можно использовать для реализации семантического поиска руководств такими программами, как mandoc . Хотя он также включает директивы для непосредственного управления стилем, ожидается, что специализированные макросы будут охватывать большинство вариантов использования. [21] И mandoc, и groff проекты рассматривают mdoc
предпочтительный формат для новых документов. [24]
Хотя справочные страницы, по сути, представляют собой текст, набранный латинским шрифтом размером 10 пунктов , это различие обычно спорно, поскольку справочные страницы просматриваются в терминале (TTY), а не размещаются на бумаге. В результате макрос «мелкий шрифт» используется редко. [25] С другой стороны, жирный и курсивный текст поддерживается терминалом через ECMA-48 , и groff's grotty
выдает их по запросу, когда обнаруживает поддерживающий терминал. Однако мандок BSD поддерживает только жирный и подчеркнутый (в качестве замены курсива) текст с помощью последовательности пишущей машинки «обратное пространство, затем перечеркивание», которую необходимо перевести в ECMA-48 с помощью less
. [26] [27]
Некоторые инструменты использовались для преобразования документов в менее надуманном формате в страницы руководства. Примеры включают GNU help2man
, который принимает --help
выходные данные и некоторый дополнительный контент для создания страницы руководства. [28] Руководство было бы едва ли более полезным, чем упомянутые результаты, но для программ GNU это не проблема, поскольку texinfo является основной системой документации. [29] Ряд инструментов, включая pandoc , ronn и md2man, поддерживают преобразование из Markdown в страницы руководства. Все эти инструменты выдают man
формат, поскольку Markdown недостаточно выразителен, чтобы соответствовать семантическому содержанию mdoc
. В DocBook есть встроенный конвертер man(7) ужасного качества, по словам автора mandoc [30] , который написал отдельный конвертер mdoc(7).
Страницы руководства обычно пишутся на английском языке, но в системе могут быть доступны переводы на другие языки. GNU man-db
и mandoc, man
как известно, ищут локализованные страницы руководства в подкаталогах. [31] [16] : Обзор [15]
Немногие альтернативы man
пользовались большой популярностью, за исключением, возможно, системы " " проекта GNU Projectinfo
, ранней и простой гипертекстовой системы. Существует также сторонняя разработка, известная как страницы TLDR ( tldr
), которая предоставляет простые примеры для распространенных случаев использования, похожие на шпаргалку . [32]
Кроме того, некоторые приложения с графическим пользовательским интерфейсом Unix (особенно те, которые созданы с использованием сред разработки GNOME и KDE ) теперь предоставляют документацию для конечного пользователя в формате HTML и включают встроенные средства просмотра HTML, например, yelp
для чтения справки внутри приложения. Система HTML в Emacs также должна заменить texinfo. [33]
info
apropos
Одновременно с работой над man(7) будет активно поддерживаться mdoc(7) и продвигаться его использование.