Что такое мануал в линуксе

В каждой системе на основе Linux желающей завоевать поклонников должны быть мануалы, это справочники, в которых любой пользователь сможет найти нужную для себя информацию о принадлежности команд, их возможностях, параметрах системы и ее составных частей. Выходом может стать использование специальной литературы, созданной на платной или бесплатной основе, о том, как управлять системами на UNIX, но данные книги могут служить  лишь дополнениями для того, что содержится в справочниках в уже установленных ОС.

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

Содержание

  • 1 Как устроен справочник в Linux?
    • 1.1 Как читать интерактивную справку?
    • 1.2 Где хранятся мануалы?

Как устроен справочник в Linux?

Чтобы хранить всю информацию о возможностях системы было удобно, ее группируют по различным тематикам, данные в них могут отличаться друг от друга, все зависит от того, какой дистрибутив у вас установлен. Также возможно деление информации в мануалах на подразделы. Ниже вы сможете узнать, где можно найти всю системную информацию в Linux:

  • Под цифрой 1 скрываются программы для обычных пользователей;
  • Под цифрой 2 можно найти данные о кодах ошибок основного ядра и описание вызовов системы;
  • Под цифрой 3 можно увидеть возможности библиотек системы;
  • Под цифрой 4 в Linux можно увидеть описание сетевых протоколов и драйверов устройства;
  • Пол цифрой 5 в Linux находятся описания файлов, которые поддерживаются системой;
  • Под цифрой 6 в Linux находятся данные о примерах игр и программ в системе, HP-UX такой информации не имеет;
  • Под цифрой 7 в Linux находится различная документация;
  • Под цифрой 8 в Linux описаны возможности для системных администраторов и команды для них;
  • Под цифрой 9 описаны системные ядра и внутренние интерфейсы.

Изначально система настроена так, что указывая раздел с помощью man, почти всегда пользователь найдет информацию быстро и может показаться, что делить мануал на тематики бессмысленно, однако это не так. Ведь некоторые команды в UNIX-системах могут использоваться сразу в 2 местах в зависимости от контекста. Пример:

  • Есть фраза «passwd» и она имеет 2 значения, как команда и как файл системы;

Информацию о справочных данных вышеприведенные системы содержат в себе в разделах 1, 4 и 5.

Нельзя забывать и про то, что многие дистрибутивы в своих последних версиях переносят команды из раздела 8 в Linux в группу к остальным системным командам. А освободившийся раздел используется как резерв для информации о будущих обновлениях. Помимо этого все меньше информации становится в разделе 6.

Как читать интерактивную справку?

Чтобы прочитать нужную вам информацию в терминале, необходимо ввести в него поисковой запрос, который выглядит так:

man [-опции] номер раздела номер заголовка

Чтобы пользователь смог прочитать информацию, man использует такие утилиты как less и more, они дают возможность читать мануал с комфортом, помимо этого используются и другие возможности для вывода текста. Чтобы мануал был разбит на страницы, утилита использует переменную среды PAGER.

Последним в запрос вписывается заголовок, им может быть наименование утилиты, файла или самого компьютера, другими словами все, о чем нужно найти информацию. Для поиска вначале используются тематики под номерами 1, 6 и 8, именно они содержат данные о командах, если в них ничего не найдено, то проверяются остальные тематики.

Основные опции:

-a — показать подряд все справочные страницы.

-f — выдает разделы, где присутствует команда.

-k — искать упоминание в тематиках.

Чтобы найти только раздел без указания заголовка нужно ввести, например, следующую команду:

man mc

Вызов manДанная команда покажет все системные вызовы для «GNU Midnight Commander».

А для нахождения и раздела, и заголовка необходимо ввести название команды и номер раздела:

man 2 sync

Однако не во всех команд есть раздел 2, например если написать «man 2 mc», то будет ошибка.

mc - нет раздела

Чтобы такого не было у man есть опция «-f». Она выдаст разделы, в которых присутствует команда.

man -f mc

Мануал с аргументом -f

Как видно из скриншота, утилита mc присутствует только в 1 разделе.

man 1 mc

Если пользователю нужны данные о том, в каких тематиках можно найти информацию о «mc», то к запросу man следует приписать аргумент  –k. Например, если ввести:

man -k mc

то на экране появится следующая информация:

Мануал с аргументом -k

Результат выполнения man -k mc

После запроса пользователь получит все страницы, на которых упоминается «mc», в них указан номер тематики или подраздела, а также ключевое слово.

Где хранятся мануалы?

Чтобы узнать, где именно в системе Linux находятся мануалы, которые по совместительству являются и входными данными, работающими с командой nroff, следует ввести команду manpath. После ее введения появится ответ системы:
/usr/local/man:/usr/local/share/man:/usr/share/man

Результат данной команды показывает подкаталоги, которые содержат в себе справочную информацию в системе Ubuntu.

Все 3 расположения разделены между собой знаком «:».

В любой момент можно сменить месторасположение страниц мануала, однако они находятся в переменной окружения MANPATH, поэтому для перемещения страниц мануала нужно сменить показатель переменной:

export MANPATH=/home/share/localman:/usr/share/man

Изначально в системах на основе Linux справочники хранятся в /usr/share/man. Команда «man» может работать и с кэшем страниц, однако для этого такие каталоги как /var/cache/man и /usr/share/man должны быть открыты для записей в них, что ведет к нарушениям в безопасности.

Для экономии пространства на диске мануалы находятся в сжатом виде, им это обеспечивает такая утилита как gzip.

Несмотря на то, что страницы сжаты, команда «man» открывает их очень быстро, ведь она способна на быструю разархивацию.

У командной строки в Linux куча возможностей. Запомнить их все практически нереально, особенно если у вас беда с памятью. К счастью, все, что мы можем сделать с помощью командной строки, записано в отдельном месте — в руководстве. 

Что такое руководство

Руководство — это набор справочных страниц, которые объясняют, что делает та или иная команда, какие аргументы ей нужны и как она работает.

Некоторые объяснения в руководстве бывает сложно понять, но все у всех страниц единая структура — это удобно. Так что как только вы освоитесь, все станет понятно.

Как вызвать руководство

Чтобы вывести на экран страницы руководства, введите man <название команды>

man <название команды>

1. user@bash: man ls
2. Name
3.    ls - list directory contents
4. 
5. Synopsis
6.    ls [option] ... [file] ...
7. 
8. Description
9.   List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
10.
11.    Mandatory arguments to long options are mandatory for short options too.
12.
13.    -a, --all
14.        do not ignore entries starting with .
15.
16.    -A, --almost-all
17.        do not list implied . and ..
18.
19. ...

Давайте разберемся: 

  • В строке 3 записана сама команда и простое однострочное описание того, что она делает.
  • В строке 6 так называемый синопсис — краткое объяснение того, как следует запускать команду. Квадратные скобки [] указывают на то, что это части необязательны. 
  • В строке 9 содержится более подробное описание команды.
  • В строке 11 и далее содержится список всех параметров командной строки, которые доступны для этой команды. Этот список всегда будет ниже описания. 

Примечание. Чтобы выйти из руководства, нажмите Q.

Как искать в руководстве

В руководстве можно искать нужную информацию по ключевым словам. Это может быть полезно, если вы не совсем уверены, какую команду хотите использовать, но знаете, что она должна делать. Возможно, понадобится несколько попыток, поскольку определенное слово можно встретить на многих страницах. 

Чтобы сделать запрос, введите man -k <поисковый запрос>.

 man -k <поисковый запрос>

Искать можно и на конкретной странице руководство. Будучи на этой странице, введите ключевое слово после косой черты / и нажмите Enter. Если искомое слово появляется несколько раз, вы можете переключаться между страницами с помощью кнопки N

Чтобы хорошо разбираться в Linux, нужно знать, какие параметры надо использовать, чтобы команда работала так, как это требуется нам. 

У многих параметров есть как длинная, так и короткая версия записи. Ниже вы увидите, что для перечисления всех записей каталога, включая скрытые файлы, можно использовать как параметр --all, так и его короткую версию — -a

Длинная форма более удобна для чтения. Она помогает лучше понимать и запоминать, что делают команды. Короткая более удобна для записи, она позволяет объединить несколько слово в цепочку. 

user@bash: pwd
/home/ryan
user@bash: ls -a
user@bash: ls --all
user@bash: ls -alh
user@bash: 

Поищите в руководстве по ключевому слову ls, чтобы узнать, что делает последняя команда. 

Как видите, длинные параметры командной строки начинаются с двух прочерков --, а короткие — с одного -. Когда мы используем один прочерк, мы можем вызвать несколько опций, поместив все буквы, представляющие эти опции, вместе после тире. Исключение — когда для параметра требуется аргумент, тогда параметры записываются отдельно вместе с необходимыми аргументами. Пока не забивайте себе голову такими сложностями. Мы разберем все подробно разберем, когда столкнемся с такими параметрами.

Что нужно запомнить

Команды

man <название_команды> 
Ищет в руководстве страницу, посвященную данной команде. 

man -k <ключевое_слово>
Ищет в руководстве все страницы, на которых есть заданное ключевое слово. 

/<ключевое_слово>
Ищет на текущей странице руководства ключевое слово.

N
Переключает на следующий найденный элемент поиска по странице. 

Идеи

Руководство — ваш друг. 
Не нужно пытаться запомнить все. Всю информацию можно легко найти в руководстве. 

Практические задания

    1. Найдите в руководстве страницу, посвященную команде ls. Поэкспериментируйте с некоторыми параметрами командной строки, которые вы там найдете. 
    2. Попробуйте выполнить несколько поисковых запросов по ключевым словам.

Время на прочтение
8 мин

Количество просмотров 32K

Первый отрывок третьей части серии руководств для новичков. Практически всё, что нужно знать, чтобы найти справочную информацию по вашей системе. Короче, RTFM и не задавайте глупых вопросов.

Навигация по основам Linux от основателя Gentoo:

Часть I: 1, 2, 3, 4

Часть II: 1, 2, 3, 4, 5

Часть III
  1. Документация (вступление)
  2. Модель прав доступа
  3. Управление аккаунтами
  4. Настройка окружения (итоги и ссылки)

Предисловие

Об этом руководстве

Встречайте «Администрирование для продолжающих», третье из четырех пособий, созданных для подготовки к экзамену «Linux Professional Institute’s 101» (2-ая редакция). Данная часть идеальна для тех, кто хочет улучшить свои знания фундаментальных основ администрирования Linux. Мы охватим ряд тем, включая системную и интернет документацию, модель прав доступа в Linux, управление аккаунтами пользователей и настройку окружения входа в систему.

Если вы новичок в Linux, рекомендуем начать с Частей 1 и 2. Для некоторых большая часть информации, изложенной в самоучителе, будет новой, но более опытные пользователи могут использовать его для того, чтобы отточить свои навыки администрирования Linux.

В конце серии этих руководств (всего их восемь, подготавливающих к экзаменам LPI 101 и 102) у вас будут все знания, необходимые для того, чтобы стать системным администратором Linux систем, а так-же вы будете готовы к получению сертификата LPIC уровня 1 от института Linux Professional.

Системная и сетевая документация

Типы системной документации в Linux

Существует три основных источника документации в Linux системах: страницы руководств (маны), info-страницы и поставляемая с приложениями документация в /usr/share/doc. В этом разделе мы рассмотрим каждый из этих источников, перед тем, как обращаться во внешний мир за дополнительной информацией.

Страницы руководств

Страницы руководств, или “man (от англ. manual — руководство) страницы”, ман-страницы, далее просто маны — это классическая форма справочной документации UNIX и Linux. В идеале, вы можете найти ман для любой команды, конфигурационного файла или библиотеки. Однако, на практике, Linux это бесплатное программное обеспечение и некоторые страницы руководств не были написаны или устарели. Тем не менее, маны остаются первым местом, куда следует обращаться за помощью.

Для доступа к ману просто введите man, а затем ваш запрос. Запустится программа-пейджер (просмотрщик, обычно less или more) со справочной информацией. Для того, чтобы закрыть её, нажмите клавишу q. Например, чтобы посмотреть информацию о команде ls, введите:

$ man ls

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

NAME (ИМЯ) Имя и однострочное описание команды
SYNOPSIS (ОБЗОР) Краткий обзор
DESCRIPTION (ОПИСАНИЕ) Углублённое описание функционала команды
EXAMPLES (ПРИМЕРЫ) Советы по использованию
SEE ALSO (СМОТРИ ТАКЖЕ) Связаные темы (обычно также ман-страницы)

Секции ман-страниц

Файлы, содержащие информацию манов хранятся в /usr/share/man (или в /usr/man на некоторых старых системах). В этой директории вы найдёте страницы руководств, упорядоченные по следующим секциям:

man1 Пользовательские программы
man2 Системные вызовы
man3 Библиотечные функции
man4 Специальные файлы
man5 Форматы файлов
man6 Игры
man7 Другое

Многочисленные ман-страницы

Некоторые темы существуют более чем в одной секции. Для демонстрации этого воспользуюемся командой whatis, показывающей доступные маны по теме:

$ whatis printf
printf (1) - format and print data printf (3) - formatted output conversion

В данном случае, man printf по-умолчанию обратится к странице в секции 1 (Пользовательские программы). Если мы пишем программу на языке C, нас вероятно больше интересует страница из секции 3 (Библиотечные функции). Вы можете вызывать ман необходимой секции указав это в командной строке, так для вызова printf(3) мы введём:

$ man 3 printf

Поиск нужного мана

Иногда сложно найти правильную ман-страницу по заданной теме. В этом случае можно воспользоваться man -k для поиска по разделам «ИМЯ» ман-страниц. Но будьте осторожны, поскольку осуществляется поиск по подстроке и что-то, навроде man -k ls, выдаст очень много всего! Вот пример использования уточняющего запроса:

$ man -k whatis
apropos (1) - search the whatis database for strings makewhatis (8) - Create the whatis database whatis (1) - search the whatis database for complete words

Всё об “apropos”

Предыдущий пример не случаен. Во-первых, команда apropos полностью соответствует команде man -k. (На самом деле, я даже вам раскрою небольшой секрет. Когда вы запускаете man -k, фактически «за кулисами» стартует apropos). Во-вторых, существует команда makewhatis, которая сканирует все страницы в вашей Linux системе и создает базу данных для whatis и apropos. Обычно она запускается периодически из-под рута, чтобы поддерживать базу в актуальном состоянии:

# makewhatis

Для более подробной информации о команде «man» и её друзьях, вам стоит начать с изучения её собственной ман-страницы:

$ man man

MANPATH

По умолчанию, программа man будет искать ман-страницы в /usr/share/man, /usr/local/man, /usr/X11R6/man, и быть может в /opt/man. Возможно, вы захотите добавить новый пункт в этом пути поиска. Для этого, просто откройте /etc/man.conf в текстовом редакторе и добавьте строчку вроде такой:

MANPATH /opt/man

С этого момента, страницы руководств в директориях /opt/man/man* также будут найдены. Помните, что вам необходимо запустить makewhatis, чтобы добавить новые маны в базу whatis.

GNU info

Одно из ограничений страниц руководств это то, что они не поддерживают гипертекст, так что у вас не получится просто переходить от одного руководства к другому. Ребята из GNU увидели этот недостаток и ввели другой формат документации: инфо-страницы. Многие из программ GNU идут с расширенной документацией в формате инфо-страниц. Вы можете приступить к чтению инфо-страниц при помощи комманды «info»:

$ info

Простой вызов команды info даст список доступных инфо-страниц в вашей системе. Вы можете перемещаться по нему используя стрелки, переходить по ссылкам (которые обозначены звездочкой) с помощью клавиши Enter и выйти нажав q. Навигация основана на таковой в Emacs, так что если вы знакомы с этим редактором, вам будет легко освоиться. Чтобы познакомиться с Emacs, посмотрите руководство на developerWorks: Living in Emacs.

Вы также можете указать нужную инфо-страницы в командной строке:

$ info diff

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

$ info info

/usr/share/doc

Есть еще один источник помощи в вашей системе Linux. Большинство программ поставляются с дополнительной документацией в других форматах, таких как: простые текстовые файлы, PDF, PostScript, HTML. Посмотрите в каталоге usr/share/doc (или /usr/doc на более старых системах). Вы найдете длинный список директорий, каждая из которых идет с определенным приложением на вашей системе. Поиск по этой документации может навести вас на очень ценную информацию, которая не доступна в манах или инфо-страницах, такую как учебники или дополнительная технической документация. Беглый взгляд указывает на то, что здесь очень много материала для чтения:

$ cd /usr/share/doc
$ find . -type f | wc -l
7582

Фьюу! Вашим домашним заданием на этот вечер будет прочитать всего лишь половину (3791) этих документов. Учтите, завтра будет опрос. ;-)

Linux Documentation Project

В дополнение к системной документации, в интернете существует ряд отличных ресурсов посвященных Linux. «Linux Documentation Project» (LDP) — это группа добровольцев, которые занимаются составлением полного набора свободной документации по Linux. Данный проект существует чтобы собрать различные части документации по Linux в определенным месте, где её будет легко искать и использовать.

Обзор LDP

LDP состоит из следующих разделов:

  • Guides (руководства) — большие, очень серьезные пособия, такие как The Linux Programmer’s Guide (Руководство программиста Linux)
  • HOWTOs — помощь по конкретной теме, например DSL HOWTO
  • FAQs — сборники ответов на часто задаваемые вопросы, навроде этого Brief Linux FAQ
  • Man pages — помощь по конкретной команде (это те же самые маны, что вы видите в вашей системе, когда используете команду man).

Если вы не уверены какой раздел смотреть, вы можете воспользоваться богатыми возможностями поиска, который позволит найти всё, что есть по теме.

LDP в добавок предоставляет доступ к списку ссылок и ресурсов, таких как Linux Gazette и Linux Weekly News, а также к спискам рассылки и архивам новостей.

Списки рассылки

Списки рассылки являются, вероятно, самым важным средством взаимодействия разработчиков Linux. Зачастую проекты разрабатываются участниками живущими на большом расстоянии друг от друга, возможно даже на противоположных сторонах земного шара. Списки рассылки представляют метод взаимодействия, в котором каждый разработчик проекта может связаться со всеми остальными и вместе дискутировать посредством электронной почты. Один из самых известных списков рассылки разработчиков, это Linux Kernel Mailing List (список рассылки ядра Linux).

Еще о списках рассылки

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

Если вы уделили время чтобы прочитать LKML FAQ по ссылке выше, то возможно заметили, что подписчики на списки рассылок часто недружелюбно относятся к вопросам, которые часто повторяются. Всегда разумно поискать в архивах рассылки перед тем, как задавать свой вопрос. Есть шансы, что это сэкономит и ваше время тоже!

Группы новостей

Новостные группы (англ. newsgroups) в интернете похожи на списки рассылки, но основаны на другом протоколе, который называется NNTP (Network News Transfer Protocol, что в переводе «Сетевой протокол передачи новостей»), а не на обмене электронной почтой. Чтобы иметь возможность общаться, вам придется установить NTTP-клиент, например slrn или pan. Основным преимуществом является тот факт, что вы можете принять участие в дискуссии, когда вам это нужно, а не постоянно смотреть как она ломится в ваш почтовый ящик :-)

Наибольший интерес представляют новостные группы начинающиеся с comp.os.linux. Посмотреть список групп вы можете на сайте LDP.

Сайты поставщиков и прочие

Сайты различных дистрибутивов Linux зачастую предоставляют обновленную документацию, инструкции по установке, информацию о совместимости или несовместимости с оборудованием и другие средства поддержки, такие как поиск по базе знаний. Например:

  • Redhat Linux
  • Debian Linux
  • Gentoo Linux
  • SuSE Linux
  • Caldera
  • Turbolinux

Поставщики аппаратного и программного обеспечения

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

  • IBM и Linux
  • HP и Linux
  • Sun и Linux
  • Oracle и Linux.

Перевод выполнил коллективный разум с помощью notabenoid.com. Спасибо хабравчанам (в алф. порядке): DMinsky, habrrich и kindacute (на хабре?). Их карма заслуживает плюсов. Если кого не упомянул, напишите в личку или в комментариях.

Продолжение…


Об авторах

Daniel Robbins

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

man pages—abbreviation for «manual pages»—are the form of documentation that is available on almost all UNIX-like operating systems, including Arch Linux. The command used to display them is man.

In spite of their scope, man pages are designed to be self-contained documents, consequentially limiting themselves to referring to other man pages when discussing related subjects. This is in sharp contrast with the hyperlink-aware Info documents, GNU’s attempt at replacing the traditional man page format.

Installation

man-db implements man on Arch Linux, and less is the default pager used with man. mandoc can also be used.

man-pages provides both the Linux and the POSIX.1 man pages [1].

Some localized man pages are also available:

  • man-pages-cs for Czech
  • man-pages-da for Danish
  • man-pages-de for German
  • man-pages-el for Greek
  • man-pages-es for Spanish
  • man-pages-fi for Finnish
  • man-pages-fr for French
  • man-pages-hu for Hungarian
  • man-pages-id for Indonesian
  • man-pages-it for Italian
  • man-pages-jaAUR for Japanese
  • man-pages-mk for Macedonian
  • man-pages-nl for Dutch
  • man-pages-pl for Polish
  • man-pages-pt_br for Brazilian Portuguese
  • man-pages-ro for Romanian
  • man-pages-ru for Russian
  • man-pages-sr for Serbian
  • man-pages-sv for Swedish
  • man-pages-trAUR for Turkish
  • man-pages-uk for Ukranian
  • man-pages-vi for Vietnamese
  • man-pages-zh_cn for Simplified Chinese
  • man-pages-zh_tw for Traditional Chinese

You can also search for all of the available localized man pages on the official repositories and on the AUR.

You can use some applications to view man pages:

  • GNOME Help — Help viewer for GNOME. Part of gnome. It can show man pages via yelp man:<name> or the undocumented Ctrl+L keybinding from an existing window.
https://wiki.gnome.org/Apps/Yelp || yelp
  • KHelpCenter — Application to show KDE Applications’ documentation. Man pages are in UNIX manual pages or by running khelpcenter man:<name>.
https://userbase.kde.org/KHelpCenter || khelpcenter
  • Konqueror — KDE file manager and web browser. It can show man pages via man:<name>.
https://konqueror.org/ || konqueror
  • xman — Provides a categorized look at man pages.
https://xorg.freedesktop.org/ || xorg-xman
  • neovim — The editor can be used to read man pages using the built-in :Man name command, or configured as a man pager with export MANPAGER='nvim +Man!'. Supports highlighting and navigation between command-line flags, keywords, and other man pages. Automatically generates an outline using section headers, command-line flags, and keywords as entries (available via gO).
https://neovim.io/ || neovim

Accessing man pages

To read a man page, simply enter:

$ man page_name

Manuals are sorted into several sections. Each section has an intro, such as intro(1), intro(2) and so on. For a full listing see man-pages(7) § Sections of the manual pages.

Man pages are usually referred to by their name, followed by their section number in parentheses. Often there are multiple man pages of the same name, such as man(1) and man(7). In this case, give man the section number followed by the name of the man page, for example:

$ man 5 passwd

to read the man page on /etc/passwd, rather than the passwd utility.

Or equivalently, the man page followed by the section number, separated by a period:

$ man passwd.5

Searching manuals

Man pages can be searched when the exact name of a page is not known using any of the following equivalent commands:

$ man -k expression
$ man --apropos expression
$ apropos expression

expression is interpreted as a regular expression by default.

To search for keywords in whole page texts, use the -K option instead.

Note: The search feature is provided by a dedicated cache. By default, maintenance of that cache is handled by man-db.service which gets periodically triggered by man-db.timer. If you are getting a «nothing appropriate» message for every search, try manually regenerating the cache by running mandb as root.

One-line descriptions of man pages can be displayed using the whatis command. For example, for a brief description of the man page sections about ls, type:

$ whatis ls
ls (1p)              - list directory contents
ls (1)               - list directory contents

Page width

The man page width is controlled by the MANWIDTH environment variable.

If the number of columns in the terminal is too small (e.g. the window width is narrow), the line breaks will be wrong. This can be very disturbing for reading. You can fix this by setting the MANWIDTH on man invocation. With Bash, that would be:

~/.bashrc
man() {
    local width=$(tput cols)
    [ $width -gt $MANWIDTH ] && width=$MANWIDTH
    env MANWIDTH=$width \
    man "$@"
}

Reading local man pages

Instead of the standard interface, using browsers such as lynx and Firefox to view man pages allows users to reap info pages’ main benefit of hyperlinked text. Alternatives include the following:

Conversion to HTML

mandoc

Install the mandoc package. To convert a page, for example free(1):

$ mandoc -Thtml -Ostyle=style.css /usr/share/man/man1/free.1.gz > free.html

Now open the file called free.html in your favourite browser.

man2html

First, install man2html from the official repositories.

Now, convert a man page:

$ man free | man2html -compress -cgiurl man$section/$title.$section$subsection.html > ~/man/free.html

Another use for man2html is exporting to raw, printer-friendly text:

$ man free | man2html -bare > ~/free.txt

man -H

The man-db implementation also has the ability to do this on its own:

$ man -H free

This will read your BROWSER environment variable to determine the browser. You can override this by passing the binary to the -H option.

roffit

First install roffitAUR.

To convert a man page:

$ gunzip -c /usr/share/man/man1/free.1.gz | roffit > free.html

Conversion to PDF

man pages have always been printable: they are written in troff(1), which is fundamentally a typesetting language. Therefore, you can easily convert man pages to any of the formats supported as output devices by groff, which is used by man-db. For a list of output devices, see the -T option in groff(1) (or mandoc(1) if you use the mandoc package).

This will produce a PDF file:

$ man -Tpdf manpage > filename

Caveats: Fonts are generally limited to Times at hardcoded sizes. Some man pages were specifically designed for terminal viewing, and will not look right in PS or PDF form.

Online man pages

There are several online databases of man pages, including:

  • Arch manual pages—contains man pages from Arch Linux packages. Used for man page links from the wiki. You can also use the !archman DuckDuckGo bang to search through the Arch manual pages directly.
  • man7.org—The Linux man-pages project. Upstream of the man-pages package. The online pages currently show an outdated version of man-pages (5.13, released in 2021).
  • manned.org—collection from various Linux distributions, BSD, etc., with multiple package versions.
  • linux.die.net
  • man.cx—Man pages extracted from Debian testing.
  • Debian man pages
  • Ubuntu man pages
  • DragonFlyBSD man pages
  • FreeBSD man pages
  • NetBSD man pages
  • OpenBSD man pages
  • Plan 9 Manual — Volume 1
  • Inferno Manual — Volume 1
  • The UNIX and Linux forums man page repository

Note that while man-pages provides man pages for POSIX.1 (see [2]), an official online reference also exists:

  • POSIX.1-2017

There is also a comparison table of the online databases.

Warning: Some distributions provide patched or outdated man pages that differ from those provided by Arch. Exercise caution when using online man pages.

Tip: The online Arch manual pages can be rendered in the terminal using this command:
curl -sL 'https://man.archlinux.org/man/clang.raw' | man -l -

Noteworthy man pages

Here follows a non-exhaustive list of noteworthy pages that might help you understand a lot of things more in-depth. Some of them might serve as a good reference (like the ASCII table).

  • ascii(7)
  • boot(7)
  • charsets(7)
  • chmod(1)
  • credentials(7)
  • fstab(5)
  • file-hierarchy(7)
  • systemd(1)
  • locale(1p), locale(5), locale(7)
  • printf(3)
  • proc(5)
  • regex(7)
  • signal(7)
  • term(5), term(7)
  • termcap(5)
  • terminfo(5)
  • utf-8(7)

More generally, have a look at category 7 (miscellaneous) pages:

$ man -s 7 -k ".*" 

Arch Linux specific pages:

  • alpm-hooks(5)
  • libalpm(3)
  • makepkg(8)
  • makepkg.conf(5)
  • makepkg-template(1)
  • mkinitcpio(8)
  • pacman(8)
  • pacman.conf(5)
  • pacman-conf(8)
  • pacman-key(8)

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Add a section on writing man pages, including conversion tools like pandoc-cli, ruby-ronn-ng, asciidoc, help2man, go-md2man, txt2man, scdoc, info2manAUR, pod2manAUR, ruby-md2manAUR, etc. (Discuss in Talk:Man page)

See also

  • Gentoo:man page
  • Write The Fine Manual with pod2man
  • History of UNIX Manpages

The man pages, short for reference manual pages, are your keys to Linux. Everything you want to know is there – take it all in an run with it. The collection of documents will never win a Pulitzer prize, but the set is quite accurate and complete. The man pages are the primary source and that authority is well-known.

While they are the “go to” source, they aren’t the most pleasant to read. Once, in a long past philosophy class, I was told that reading Aristotle was the most boring read around. I disagreed: when it comes to dry reading, Aristotle comes in at a distant second to man pages.

At first glance, the pages may look incomplete but, believe it or not, the man pages aren’t designed to hide information from you – it’s just that there is so much information that the pages have to be structured and information is given in the most brief form possible. The explanations are rather spartan and they will take some getting used to, but once you get the hang of using them, you’ll see how useful they actually are.

Getting Started with the man Pages in Linux

The pages are viewed through a utility called, man, and the command to use it is rather easy. In the simplest form, to use man, you type man on the command line, followed by a space and the command that you want to look up, such as ls or cp, like so:

man ls

man opens the manual page of the ls command.

man page example

You can move up and down with the arrow keys and press q to quit viewing the man page. Usually, the man pages are opened with less so the keyboard shortcuts for less command work in man as well.

For example, you can search for a specific text using /search_term and so on.

There is an introduction to the man pages and it’s important that you read this one. It spells out, in great detail, how the man pages are laid out and organized.

To see this page, open a terminal and type:

man man

man man

man page of man

Section What?

Before you begin to look at man pages much deeper, it will be helpful to know that man pages have a set page layout and a filing scheme. This can be confusing to a newcomer since I can say: “Look at the NAME section of the man page for ls.” I can also say, “Look at the man page for passwd in section 5.”

I italicized the word, section to try to show a source of confusion. The word, section is being used in two different ways, but the difference isn’t always explained to newcomers.

I am not sure why this confusion sets in, but I have seen it happen a few times back when I trained new users and entry-level sysadmins. I think it might be tunnel vision. Focusing on one thing can make a person forget about another. It’s a lot like not being able to see the forest because the trees are in the way.

To those who know the difference already, you can skip this sub-section. This part is directed to the people new to man pages.

Here is the difference:

The man page

Individual man pages are made to show blocks of information. For example, every man page has a NAME section to show the name of the command along with a brief description. There will be another block of information, called SYNOPSIS to show how the command is used, and so on.

Linux man page example

Every man page will have these, and other headings. These sections, or headings, on individual man pages, helps keep things consistent and information compartmentalized.

The Manual

The use of section, as in “Look at the man page for passwd in section 5” speaks of the manual as a whole. When we look at only one page, it can be easy to overlook that, but the man page for passwd is part of the same manual that has a man page for ls, rm, date, cal, and others.

The entire Linux manual is huge; it has thousands of pages. Some of those pages have specialized information. Some pages have information that programmers need, while others have information unique to networking, and others that system administrators would be interested in.

These pages are grouped according to their unique purpose. Think of splitting the entire manual into several chapters – each chapter having a specific topic. There are 9 or so chapters (very large ones at that). It just so happens that these chapters are called sections.

To sum this up:

  • Sections of a single page of the manual (what we call the man page) are blocks of information defined by the headings and
  • Sections of the manual-at-large (the collection of all of the pages) are chapters which happen to be called sections.

Now you know the difference and, hopefully, the rest of this article will be easier to follow.

man Page Sections

You will be looking at different man pages so let’s study the individual page layout first.

Manual pages are split into several headings and they may vary from vendor to vendor, but they will be similar. The general breakdown is as follows:

  • NAME
  • SYNOPSIS
  • DESCRIPTION
  • EXAMPLES
  • DIAGNOSTICS
  • FILES
  • LIMITS
  • PORTABILITY
  • SEE ALSO
  • HISTORY WARNING (or Bugs)
  • NOTES

NAME – Under this heading is the command name and a brief description of the command.

SYNOPSIS – Shows how the command is used. For instance, here is a synopsis of the cal command:

cal [Month] [Year]

The synopsis begins with the name of the command, with a list of options following. The synopsis takes the general form of a command line; it shows what you can type and the order of the arguments. Arguments in square brackets ([]) are optional; you can leave these arguments out and the command will still work correctly. Items not in brackets must be used.

Take note that brackets are for readability only. They should not be typed when you enter a command.

DESCRIPTION – Describes the command or utility as to what it does and how you can use it. This section usually starts off with an explanation of the synopsis as well as telling what happens if you omit any of the optional arguments. This section may be subdivided for long or complex commands.

EXAMPLES – Some man pages provide examples of how the command or utility can be used. If this section is present, the page tries to give a few simple usage examples, as well as more complex examples to show how complex tasks can be completed.

DIAGNOSTICS – This section lists status or error messages returned by the command or utility. Self-explanatory error and status messages aren’t usually shown. Messages that may be hard to understand are usually listed.

FILES This section contains a list of supplementary files used by UNIX to run this specific command. Here, supplementary files are files not specified on the command line. For example, if you were looking at a man page for the passwd command, you may find /etc/passwd listed in this section since that is where UNIX stores password information.

LIMITS – This section describes any limitations of a utility. Operating system and hardware limitations are usually not listed as they are outside of the utility’s control.

PORTABILITY – Lists other systems where the utility is available, along with how other versions of the utility may differ.

SEE ALSO – lists related man pages that contain relevant information.

HISTORY – Gives a brief history of the command such as when it first appeared.

WARNING – If this section is present, it contains important advice for users.

NOTES – Not as severe as a warning, but important information.

Again, not all man pages use the exact headings listed above, but they’re close enough to follow.

The Manual’s Sections

The entire Linux manual collection of pages are traditionally divided into numbered sections:

  • Section 1 : Shell commands and applications
  • Section 2 : Basic kernel services – system calls and error codes
  • Section 3 : Library information for programmers
  • Section 4 : Network services – if TCP/IP or NFS is installed Device drivers and network protocols
  • Section 5 : Standard file formats – for example: shows what a tar archive looks like.
  • Section 6 : Games
  • Section 7 : Miscellaneous files and documents
  • Section 8 : System administration and maintenance commands
  • Section 9 : Obscure kernel specs and interfaces

The grouping of pages into these groups makes for more efficient searching. I sometimes do a little programming where I work, so I spend a little time look at section 3 man pages. I also do a little work in networking, so I’ve been known to wade through the networking section, and as a system administrator of several experimental machines, I spend a good deal of time in section 8.

Grouping pages into specific (chapters) sections make searching for information easier – both for the human needing it, and for the machine doing the searching.

You can tell which page belongs to which section by the number next to the name. For example, if you’re looking at a man page for ls and the very top of the page says this: LS(1), you are viewing the ls page in section 1, which contains the pages about shell commands and applications.

Here is another example. If you’re looking at a man page for passwd and the top of the page shows: PASSWD(1), you are reading the page from section 1 that describes how the passwd command changes passwords for user accounts. If you see PASSWD(5), you are reading about the the password file and how it is made up.

man page passwd command

passwd happens to be be two different things: it is the name of a command and a name of a file. Again, section 1 describes the command, while section 5 covers file formats.

The number in the parenthesis is the big clue – that number tells you what section that the page you’re reading, came from.

Searching for a Specific Section

The basic command:

 man name

will search for the man page identified by name in every section, displaying them one at a time, in numerical order. To limit your search to a specific section, use an argument with the man command, like so:

 man 1 name

This command will only search section 1, of the man pages, for name. Using our passwd example earlier, this means that we can keep the search targeted. If I want to read about the passwd command, I can type this in the terminal:

man 1 passwd

The man utility will only search through section 1 for passwd and display it. It will not look through any other section for passwd.

An alternative method for this command is to type: man passwd.1

Using man -k to Search all man Pages Containing a Certain Keyword

The man command, with the k option (often called a flag or switch) can come in handy if you want a listing of man pages containing a certain keyword. For example, if you want to see a list of man pages that deal with, say, ftp, you can get this list by typing:

 man -k ftp

From the listing that will follow, you’ll be able to pick a specific man page to read:

man k example

man k example

On some systems, before man -k will work, the system administrator will need to run a utility called catman.

Using whatis and whereis Commands to Know the Manual’s Sections

There are two nifty utilities that can be helpful in your search for information: whatis and whereis.

whatis

There are times when we can quite get the information we need. Chances are great that the information we need is available – finding it can be a small problem.

For example, if I want to look at the man page about the passwd file, and I type this on the terminal:

man passwd

I would see the page that tells me all about the passwd command, but nothing about the passwd file. I know that passwd is a command and there’s also a passwd file, but sometimes, I might forget that. It’s then that I realize that file structures are in a different section in the man pages, so I type:

man 4 passwd

and I get this reply:

No manual entry for passwd in section 4
See 'man 7 undocumented' for help when manual pages are not available.

Another lapse of forgetfulness. File structures are in section 4 of System V UNIX pages. Years ago, when I built files, I used man 4... a lot; it’s still a habit with me. So where is it in the Linux manual?

It’s time to call whatis to straighten me out. To do this, I type this in my terminal:

whatis passwd

and I see the following:

passwd (1)           - change user password
passwd (1ssl)        - compute password hashes
passwd (5)           - the password file

Ah! the page for the passwd file is in section 5. Now I am set straight and can access the information I want:

man 5 passwd

and I am brought to the man page that has the information I need.

whatis is handy utility that can tell you, in a brief one-liner, what a command does. Imagine that you want to know what cal does without having to view the man page. Just type this at the command prompt:

whatis cal

and you will see this in response:

cal (1)              - displays a calendar and the date of Easter

Now that you know about the whatis command, I can let you in on a secret – there is a man command equivalent. To get this, we use the -f switch: man -f ...

Try it out. Type: whatis cal at a terminal prompt. Once that executes, type: man -f cal. The output of both commands will be identical.

whatis cal man f cal

whatis cal and man f cal outputs are the same

whereis

The very name of the whereis command explains itself – it tells you where a program is within the filesystem. It will also tell you where the man page is stored too. Using cal as an example again, I type this at the prompt:

whereis cal

I will see this:

whereis cal

whereis cal output

Look carefully at the reply. The answer is on one line, but it tells me two things:

/usr/bin/cal is where the cal program is and

/usr/share/man/man1/cal.1.gz is where the man page resides (I’m also clued into the fact that the man page is compressed, but not to worry – the man command knows how to decompress it on the fly)

whereis is PATH dependent; it can only tell you where files are if they are in your PATH environment.

You may be wondering if there is an equivalent man command for whereis. There isn’t one that will tell you where the executable file is, but there is a switch you can use that will tell you where the man page is. Using the date command in this example, if we type:

whereis date

at a terminal prompt, we will see:

whereis date

whereis date output

We see that the date program is in the /usr/bin/ directory and the name and location of its man page is: /usr/share/man/man1/date.1.gz

The closest we can get man to act like whereis is to use the -w switch. We won’t get the location of the program, but we can at least get the location of the man page, like this:

man -w date

and we will see this returned:

man w date 1

You know about whatis and whereis as well as a method to get the man command to do the same (or close) thing. I showed both ways for a couple of different reasons.

For years, I used whatis and whereis since they were in my training manuals. I didn’t learn about man -f ... and man -w ... until fairly recently. I’m sure I looked at the man page for man hundreds of times, but I never noticed the -f and -w switches. I was always looking at the man page for something else (i.e. man -k ...). I concentrated only on what I needed to find and ignored the rest. Once I found the information I needed, I would leave the page and get the work done, not paying attention to some of the other gems the command had to offer.

This is okay since this is partly what the man pages are for: to help you get work done.

It wasn’t until I was recently showing someone how to use man pages, that I took the time to just read – “to see what else was possible” – and we took real notice of the information about what the man command’s -f and -w flags can do.

No matter how long you have been using Linux, or how experienced, there is always something new to learn.

The man pages will tell you what you may need to know to work through a certain task – but they also hold a lot more – enough to make you look like a magician – but only if you take the time to read.

Conclusion

If you spend some time and effort with the man pages, you will come out on top. Your proficiency of the man pages, will play a huge part in your mastery over Linux.

Понравилась статья? Поделить с друзьями:
  • Де нол инструкция по применению форма выпуска
  • Облепиховое масло от геморроя цена свечи отзывы инструкция по применению
  • Корень лопуха инструкция по применению цена аналоги таблетки
  • Книги для руководства людьми
  • Реле времени вл 61м инструкция по применению