В чем разница между `man` и` man (#) `?

31

Только что увидел кого-то, ссылающегося man 7 regexна Stackoverflow. Я попробовал man regexи получил очень похожий результат - похоже, есть небольшие различия.

Так что же это за волшебное число 7? Поиск man 7 unixв Google дает мне более загадочные результаты, такие как UNIX (7) ...

Адитья М.П.
источник

Ответы:

33

Около UNIX(7)

Чтобы ответить на ваш вопрос о «UNIX (7)», это стандартное соглашение «Man-страница для UNIX в разделе 7 (разное)».

Чтобы открыть страницу , как init(8)вы будете использовать эту команду: man 8 init.


man regex против man 7 regex

Чтобы ответить на ваш вопрос о «тонких различиях» между man regexи man 7 regex:

manпо умолчанию открывается страница с самым низким номером раздела. В данном случае это раздел 3 (Библиотечные вызовы). Открытие страницы из раздела 7 (Разное) совсем другое.

Страницы в разных разделах обращаются к разным вещам, хотя в этом случае они похожи, рассмотрим apt:

man -f apt:

apt (8)              - Advanced Package Tool
apt (1)              - annotation processing tool

В этом примере aptраздел 8 (Команды системного администрирования) полностью не связан со страницей раздела 1 (Исполняемые программы или команды оболочки).

Для использования в будущем используйте man -f PAGE_NAMEвсе страницы с этим именем во всех разделах. Затем вы можете открыть страницу в нужном вам разделе man SECTION PAGE_NAME.

Разделы руководства

Различные разделы страницы являются следующими и могут быть найдены из man man:

  1. Исполняемые программы или команды оболочки
  2. Системные вызовы (функции, предоставляемые ядром)
  3. Библиотечные вызовы (функции внутри программных библиотек)
  4. Специальные файлы (обычно находятся в /dev)
  5. Форматы файлов и соглашения, например /etc/passwd
  6. Игры
  7. Разное (включая макропакеты и соглашения), например man(7),groff(7)
  8. Команды системного администрирования (обычно только для root)
  9. Подпрограммы ядра [нестандартные]
харакири
источник
14

Номера разделов

manпокажет man-страницу из любого раздела, man 7покажет man-страницу из раздела 7. Итак, здесь 7 относится к разделу конкретной команды, для которой вы ищете страницу руководства.

Раздел, если таковой имеется, заставит человека взглянуть только на этот раздел руководства.


Разделы

В следующей таблице приведены номера разделов руководства, а также типы страниц, которые они содержат.

1: исполняемые программы или команды оболочки

2: Системные вызовы (функции, предоставляемые ядром)

3: Библиотечные вызовы (функции внутри программных библиотек)

4: Специальные файлы (обычно находятся в / dev)

5: форматы файлов и соглашения, например, / etc / passwd

6: Игры

7: Разное (включая макропакеты и соглашения), например, man (7), groff (7)

8: Команды системного администрирования (обычно только для root). Обзор различных тем, соглашений и протоколов, стандартов наборов символов и прочего.

9: подпрограммы ядра [нестандартные]


Команды в более чем одном разделе

В большинстве случаев вы захотите использовать manкоманду без дополнительных n . Однако в некоторых случаях команда появляется в нескольких разделах. Например, если вы man openвведете команду , вы получите страницу руководства для openvt из раздела 1. Но если вам нужно просмотреть страницу руководства для открытия в виде команды C (или системного вызова, как в приведенной выше таблице), вам нужно выполнить команду man 2 open,

Очень похожим примером будет man printfи man 3 printf. Пожалуйста, введите команды и убедитесь сами в разнице в выводе.


Ваша проблема man 7 unix(UNIX (7))

Итак, UNIX (7) означает, что он принадлежит разделу 7.


Какой раздел будет отображаться по умолчанию, если я не предоставлю номер раздела?

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


Как узнать номер раздела команды?

Если вам необходимо выяснить, в какие разделы входит термин / команда man -k(эквивалентно команде apropos). Таким образом, man -k printf будет искать короткие описания и имена страниц руководства по ключевому слову printf в качестве регулярного выражения. Распечатайте любые совпадения. (Эквивалентно apropos -r printf). Выполните команду, посмотрите, какую тонну вы получите. Если вам нужно избегать совпадений подстрок (например, он будет показывать sprintf, если вы запускаете man -k printf), то вам нужно использовать его ^termдля ограничения, как показано ниже,

man -k '^printf'
Printf (3o)          - Formatted output functions.
printf (1)           - format and print data
printf (3)           - formatted output conversion

Связанная команда

Связанная команда, aproposкак указано выше, выполняет поиск по именам и описаниям страниц справочника. Если вы не уверены, какую страницу руководства вы ищете, но у вас есть общее представление, используйте эту команду.

Масрур
источник
Но в документации regexнет 7 разделов ...
Адитья М.П.
@adityamenon Пожалуйста, смотрите обновленный ответ, он был опубликован до завершения.
Масрур
Понятно - «Раздел» здесь означает «классификация программы».
депутат Адитья
@adityamenon Правильно, мне бы было удобнее использовать термин, который вы используете.
Масрур
В частности, «раздел» здесь означает «раздел Руководства», как если бы все справочные страницы были в одном (толстом) печатном руководстве
Джонатан Каллен