Теория

Используемые в Linux электронные справочные системы (online help) являются логичным следствием как его родства с семейством операционных систем UNIX — страницы руководства man (manual pages), так и принадлежностью к свободному программному обеспечению под эгидой движения GNU — справочная система info.

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

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

Самой известной справочной системой, сопровождающей UNIX практически с момента ее рождения, является справочная система страниц руководства, информация из которой доступна при помощи команд man, apropos и whatis.

Справочная система man-pages состоит из отдельных страниц, посвященных отдельным командам, специальным файлам устройств, конфигурационным файлам, системным и библиотечным вызовам и другим понятиям, которые сгруппированы по восьми (обычно, но есть исключения из правил) секциям. Каждая секция имеет заголовочную страницу intro, описывающую назначение самой секции.

Секции справочной системы man

whatis intro
whatis whatis
whatis apropos
whatis nan

Естественным образом справочная система описывает сама себя, поэтому известнейшей «мантрой» в операционной системе является man man, т. е. запрос страницы руководства, посвященной самой команде man. Сами страницы руководства написаны на языке разметки текста roff и размещаются в сжатых gz-файлах «секционных» подкаталогов man1, man2, …, папка каталога /usr/share/man. Страницы руководства частично поставляются переведенными на различные национальные языки, отличные от английского.

Формат страниц справочной системы man

man -w man
file /usr/share/man/m/manl/man.l.gz
file -z /usr/share/man/ru/manl/man.l.gz
whatis file

Команда man, таким образом, ответственна за поиск указанной пользователем страницы, распаковку ее сжатого файла при помощи распаковщика gzip, форматирования при помощи процессора troff и (по умолчанию) вывод результата на терминал при помощи постраничного листателя less.

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

Использование языка разметки позволяет форматировать страницу одинаково удобно для просмотра на разных терминалах с различным количеством столбцов, которые учитывает troff, и разным количеством строк, учитываемым less.

Так, например, результат одинаково хорош и на псевдотерминале в окне эмулятора терминала xtern или gnome-terminal развернутого в любой размер, и на виртуальном терминале консоли с загруженным шрифтом любого размера.

Более того, использование универсального языка разметки,и соответствующий «драйвер» troff позволяет преобразовывать страницы руководства в самые разные виды. Например, в «принтерный» PostScript или PCL пригодный для печати на принтере с высокой разрешающей способностью, или в HTML (При наличии установленного пакета groff) для просмотра в html-браузере.

Форматирование справочных страниц руководства для печати и для html-браузера

man -t man > man.print.1
file man.print.1
man -T lz4 man > man.print.2
file man.print.2
man -thtml man > man.html
file man.html

При просмотре страниц руководства на терминале навигация по изображаемой справочной странице производится так, как предусмотрено используемым листателем, которым по умолчанию в большинстве случаев будет less(1), приемник классического more(1).

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