Материал предоставлен https://it.rfei.ru

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

Больше всего полезной информации содержится в страницах руководства (manpages), для краткости мы будем называть их просто ”руководство”. Каждая страница посвящена какому-нибудь одному объекту системы. Для того чтобы посмотреть страницу руководства, нужно дать команду системе man объект:

[ivan@localhost ivan]$ man cal
CAL(1)       BSD General Commands Manual   CAL(1)
    NAME
        cal - displays a calendar
    SYNOPSIS
        cal [-smjy13] [[month] year]
    DESCRIPTION
        Cal displays a simple calendar. If arguments
        are not specified, the current month is
        displayed.
        The options are as follows:
. . .

Пример 2.5. Просмотр страницы руководства

Страница руководства занимает, как правило, больше одной страницы экрана. Для того чтобы читать было удобнее, man запускает программу постраничного просмотра текстов - less. Управлять программой less просто: страницы перелистываются пробелом, а когда читать надоест, надо нажать q (Quit). Перелистывать страницы можно и клавишами Page Up/Page Down, для сдвига на одну строку вперед можно применять Enter или стрелку вниз, а на одну строку назад - стрелку вверх. Переход на начало и конец текста выполняется по командам g и G соответственно (Go). Полный список того, что можно делать с текстом в less, выводится по команде H (Help).

Страница руководства состоит из полей - стандартных разделов, с разных сторон описывающих заинтересовавший Ивана объект - команду cal. В поле NAME содержится краткое описание объекта (такое, чтобы его назначение было понятно с первого взгляда). В поле SYNOPSIS дается формализованное описание способов использования объекта (в данном случае - того, как и с какими параметрами запускать команду cal). Как правило, в квадратные скобки в этом поле заключены необязательные параметры команды, которые можно ей передать, а можно и опустить. Например, строка ”[[month] year]” означает, что в этом месте командной строки параметров у команды может не быть вообще, может быть указан год или пара - месяц и год. Наконец, текст в поле DESCRIPTION - это развернутое описание объекта, достаточное для того, чтобы им воспользоваться.

Одно из самых важных полей руководства находится в конце текста. Если в процессе чтения NAME или DESCRIPTION пользователь понимает, что не нашел в руководстве того, что искал, он может захотеть посмотреть, а есть ли другие руководства или иные источники информации по той же теме. Список таких источников содержится в поле SEE ALSO:

[ivan@localhost ivan]$ man man
. . .
SEE ALSO
  apropos(1), whatis(1), less(1), groff(1), man.conf(5).
. . .

Пример 2.6. Поле SEE ALSO руководства

До этого поля Иван добрался с помощью уже известной команды G. Не то чтобы ему неинтересно было читать руководство по man, скорее наоборот: им двигала любознательность. В поле SEE ALSO обнаружились ссылки на руководства по less, groff (программе форматирования страницы руководства ), структуре конфигурационного файла для man, а также по двум сопутствующим командам с такими говорящими названиями ”Apropos” и ”whatis”, что Иван немедленно применяет одну команду к имени другой, даже не заглядывая в документацию. Так ни в коем случае не следует делать! А что если запущенная программа начнет с того, что сотрет все файлы в Вашем каталоге?

[ivan@localhost ivan]$ whatis apropos
 apropos (1) - search the whatis database for strings
[ivan@localhost ivan]$ man apropos
 apropos(1)                             apropos(1)
 NAME
    apropos - search the whatis database for strings
    . . .

Пример 2.7. Вызов whatis

На этот раз Ивану повезло: команда whatis не делает ничего разрушительного. Как и команда apropos, whatis ищет подстроку в некоторой базе данных, состоящей из полей NAME всех страниц помощи в системе. Различие между ними в том, что whatis - только среди имен объектов (в левых частях полей NAME), а apropos - по всей базе. В результате у whatis получается список кратких описаний объектов с именами, включающими искомое слово, а у apropos - список, в котором это слово упоминается. Для того, чтобы это узнать, все равно пришлось один раз прочесть документацию.

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

[ivan@localhost ivan]$ whatis passwd
 passwd (1) - update a user's authentication tokens(s)
 passwd (5) - password file
 passwd (8) - manual page for passwd wrapper version 1.0.5

Пример 2.8. Руководства с одинаковыми именами

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

ivan@localhost:~> whatis intro
intro     (1) - Introduction to user commands
intro     (2) - Introduction to system calls
intro     (3) - Introduction to library functions
intro     (4) - Introduction to special files
intro     (5) - Introduction to file formats
intro     (6) - Introduction to games
intro     (7) - Introduction to conventions and
                miscellany section
intro     (8) - Introduction to administration and
                privileged commands
intro     (9) - Introduction to kernel interface

Пример 2.9. Руководства intro

Вот названия разделов в переводе на русский:

  1. Команды пользователя.
  2. Системные вызовы (пользовательские функции ядра Linux; руководства рассчитаны на программиста, знающего язык Си).
  3. Библиотечные функции (функции, принадлежащие всевозможным библиотекам подпрограмм; руководства рассчитаны на программиста, знающего язык Си).
  4. Внешние устройства и работа с ними (в Linux они называются специальными файлами, см. лекцию 10).
  5. Форматы различных стандартных файлов системы (например, конфигурационных ).
  6. Игры, безделушки и прочие вещи, не имеющие системной ценности.
  7. Теоретические положения, договоренности и все, что не может быть классифицировано.

Инструменты администратора (часто недоступные обычному пользователю). Интерфейс ядра ( внутренние функции и структуры данных ядра Linux, необходимые только системному программисту, исправляющему или дополняющему ядро ). В частности, пример с passwd показывает, что в системе ”Some Linux”, которую использует Иван, есть программа passwd (именно с ее помощью Иван поменял себе пароль в предыдущей лекции), файл passwd, содержащий информацию о пользователях, и администраторская программа passwd, обладающая более широкими возможностями. По умолчанию man просматривает все разделы и показывает первое найденное руководство с заданным именем. Чтобы посмотреть руководство по объекту из определенного раздела, необходимо в качестве первого параметра команды man указать номер раздела:

[ivan@localhost ivan]$ man 8 passwd
 PASSWD(8)     System Administration Utilities  PASSWD(8)
 . . .
[ivan@localhost ivan]$ man -a passwd
 PASSWD(1)     Some Linux                       PASSWD(1) . . .
 PASSWD(8)     System Administration Utilities  PASSWD(8) . . .
 PASSWD(5)     Linux Programmer's Manual        PASSWD(5) . . .

Пример 2.10. Выбор среди страниц руководства с одинаковым именем

Если в качестве первого параметра man использовать -a, будут последовательно выданы все руководства с заданным именем. Внутри страниц руководства принято непосредственно после имени объекта ставить в круглых скобках номер раздела, в котором содержится руководство по этому объекту: man (1), less(1), passwd(5) и т. д.

Подсистема помощиInfo