Linux man руководство по

Время на прочтение
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(1) Утилиты
просмотра
справочных
страниц
MAN(1)

НАЗВАНИЕ

man — доступ к
системным
справочным
страницам

СИНТАКСИС

man
[параметры
man
] [[раздел]
страница …] …

man -k
[параметры
apropos
] регвыр

man -K
[параметры
man
] [раздел]
термин …

man -f [whatis
параметры]
страница

man -l
[параметры
man
] файл

man -w|-W
[параметры
man
]
страница

ОПИСАНИЕ

man — это
пейджер
справочных
страниц
системы.
Каждый
параметр
страница,
переданный
man, обычно
является
названием
программы,
утилиты
или
функции. По
каждому из
этих
параметров
выполняется
поиск и
вывод
связанной
с ним
справочной
страницы
.
Если
указан
параметр
раздел, то
это
заставляет
man
выполнять
поиск
только в
этом
справочном
разделе.
Действием
по
умолчанию
является
поиск во
всех
доступных
разделах
в заранее
определённом
порядке
(смотрите
DEFAULTS) и показ
только
первой
найденной
страницы,
даже если
существуют
страницы
в
нескольких
разделах.

В таблице
ниже
показаны
номера
справочных
разделов
и описание
их
содержимого.

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

Справочная
страница
состоит из
нескольких
разделов.

Стандартные
имена
разделов:
НАЗВАНИЕ
(NAME),
СИНТАКСИС
(SYNOPSIS),
НАСТРОЙКИ
(CONFIGURATION),
ОПИСАНИЕ
(DESCRIPTION),
ПАРАМЕТРЫ
(OPTIONS),
КОД ВЫХОДА
(EXIT STATUS),
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
(RETURN VALUE),
ОШИБКИ (ERRORS),
ОКРУЖЕНИЕ
(ENVIRONMENT), ФАЙЛЫ
(FILES), ВЕРСИИ
(VERSIONS),
СОГЛАСУЕТСЯ С
(CONFORMING TO),
ЗАМЕЧАНИЯ
(NOTES), ОШИБКИ
(BUGS), ПРИМЕР
(EXAMPLE), АВТОРЫ
(AUTHORS) и
СМОТРИТЕ ТАКЖЕ
(SEE ALSO).

В разделе
СИНТАКСИС
используются
следующие
соглашения
(которые
также
могут быть
использованы
в качестве
основы для
других
разделов).

текст
жирным
шрифтом
набирать
точно как
показано.
текст
курсивным
шрифтом
заменить
соответствующим
значением.
[-abc] любой или
все
параметры
внутри [ ]
необязательны.
-a|-b параметры,
разделённые
|, не могут
указываться
одновременно.
параметр
повторяющийся
параметр.
[выражение]
всё
выражение внутри
[ ] может
вводиться
несколько
раз.

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

При
объяснении
команды
или
функции
должен
применяться
шаблон,
который
точно
описывает
все
возможные
варианты
вызова. В
некоторых
случаях
рекомендуется
показать
несколько
уникальных
вызовов,
как
показано в
разделе
СИНТАКСИС
этой
справочной
страницы.

ПРИМЕРЫ

man ls
Показать
справочную
страницу
для
параметра
(программы)
ls.
man
man.7
Показать
справочную
страницу
пакета
макросов
man из
раздела 7
(аналог
команды «man
7 man«).
man
man(7)’
Показать
справочную
страницу
пакета
макросов
man из
раздела 7
(аналог
команды «man
7 man«; она
удобнее
для
копирования
и вставки
перекрёстных
ссылок в
справочные
страницы;
заметим,
что скобки
нужно
защищать
кавычками
из-за
оболочки).
man -a intro
Показать
подряд все
доступные
справочные
страницы
по intro. В
перерыве
между
показами
можно
пропустить
следующую
справочную
страницу
или
закончить
просмотр.
man -t bash
| lpr -Pps
Отформатировать
справочную
страницу
для bash в
формат по
умолчанию
troff или groff и
передать
её по
каналу в
принтер с
именем ps.
Обычно,
форматом
вывода groff
по
умолчанию
является
PostScript. По
команде man —help
можно
посмотреть
какой
процессор
привязан к
параметру
-t.
man -l -Tdvi
./foo.1x.gz
> ./foo.1x.dvi
Эта
команда
расжимает
и
форматирует
справочную
страницу в
формате nroff
./foo.1x.gz в файл в
формате
независимом
от
устройства
(dvi)
.
Перенаправление
вывода
необходимо,
так как при
параметре
-T вывод
направляется
напрямую
на
стандартный
вывод
без
пейджера.
Результат
может быть
просмотрен
с помощью,
например,
xdvi или
преобразован
в PostScript с
помощью,
например,
dvips.
man -k printf
Искать в
кратких
описаниях
и именах
справочных
страниц
ключевое
слово printf,
рассматриваемое
как
регулярное
выражение.
Показать
любые
найденные
совпадения.
Эквивалентно
вызову
apropos printf.
man -f smail
Искать
справочные
страницы,
ссылающиеся
на smail и
показать
краткое
описание
любой
найденной.
Эквивалентно
вызову
whatis smail.

ОБЗОР

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

В работе
man могут
использоваться
различные
переменные
окружения.
Возможно
задать
любые
параметры
во
«всеобъемлющей»
переменной
$MANOPT,
экранируя
пробельные
символы в
значениях
(с помощью
обратной
косой
черты). man
разбирает
$MANOPT перед
началом
анализа
параметров,
переданных
при вызове
в
командной
строке. Все
значения
параметров,
указанные
в
командной
строке,
заменят
значения
своих
аналогов
из
переменной
окружения.
Для сброса
всех
параметров,
установленных
с помощью
$MANOPT, можно
указать
параметр -D
в начале
командной
строки. Это
позволит man
«забыть» о
значениях,
указанных
в $MANOPT, хотя
они всё
равно
должны
быть
заданы
правильно.

Обычно,
справочные
страницы
хранятся в
формате nroff(1)
в каталоге
/usr/share/man. В
некоторых
установках
для
повышения
производительности
также
могут
существовать
заранее
отформатированные
страницы cat.
Место
хранения
этих
файлов
описано в
manpath(5).

Данный
пакет
обеспечивает
поддержку
справочных
страниц на
нескольких
языках
(через
локаль).
Если
система не
настраивает
её
автоматически,
то вам
необходимо
присвоить
переменной
$LC_MESSAGES, $LANG или
другой
переменной
окружения
(зависит от
системы)
значение
локали
предпочитаемого
языка,
обычно
задаваемое
в формате
POSIX:

<язык>[_<территория>[.<кодировка>[,<версия>]]]

Если
запрашиваемая
страница
доступна
для вашей
локали, то
она будет
показана
вместо
стандартной
(обычно, на
американском
английском)
страницы.

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

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

О других
возможностях
и
расширениях,
доступных
в этом
пейджере
справочных
страниц,
читайте в
описаниях
из этого
пакета.

ЗНАЧЕНИЯ
ПО
УМОЛЧАНИЮ

Порядок
поиска по
разделам
можно
изменить
через
переменную
окружения
$MANSECT или
директиву
SECTION в /etc/man_db.conf.
Значение
по
умолчанию
следующее:

1 1p n l 8 3 3p 0 0p 2 3type 5 4 9 6 7

Отформатированная
справочная
страница
отображается
пейджером.
Его можно
задать
несколькими
способами,
в
противном
случае
будет
использовано
значение
по
умолчанию
(смотрите
описание
параметра
-P).

Фильтры
можно
указывать
разными
способами.
Во-первых,
обрабатывается
значение
параметра
-p или
переменная
окружения
$MANROFFSEQ. Если -p
не
указывалась
и
переменная
окружения
не
установлена,
то в
поисках
строки
препроцессора
анализируется
первая
строка nroff
файла.
Чтобы
указывать
строку
препроцессора
правильно,
первая
строка
должна
быть в
формате

‘\»
<строка>

где
строка
может
содержать
комбинацию
букв,
описанных
в
параметре
-p ниже.

Если
информация
о фильтре
нигде не
указана, то
используется
набор по
умолчанию.

Конвейер
форматирования
создаётся
из
фильтров и
основной
программы
форматирования
(nroff или [tg]roff с
параметром
-t) и
выполняется.
Или же, если
существует
исполняемая
программа
mandb_nfmt (или mandb_tfmt с
параметром
-t) в корне
дерева
справочных
страниц, то
выполняется
именно она.
Она
получает
файл с
исходным
текстом
справочной
страницы,
строку
препроцессора,
и,
необязательно,
устройство,
указанное
в
параметре
-T или -E.

ПАРАМЕТРЫ

Параметры
без
значений,
повторяющиеся
в
командной
строки, $MANOPT
или обоих,
не опасны. В
случае с
параметрами
со
значением,
при каждом
повторении
новое
значение
заменяет
имеющееся.

Общие
параметры

-C файл—config-file=файл
Использовать
указанный
пользовательский
файл
настройки
вместо
значения
по
умолчанию
~/.manpath.
-d, —debug
Показывать
отладочную
информацию.
-D, —default
Этот
параметр
обычно
вводится
самым
первым, и
указывает
man
активировать
поведение
по
умолчанию.
Он
используется
для сброса
параметров,
которые
могли быть
установлены
через
переменную
окружения
$MANOPT. Любые
параметры,
указанные
после -D,
будут
действовать
как
обычно.
—warnings[=предупреждения]
Включить
предупреждения
от groff. Это
может быть
использовано
для
проверки
тривиальных
ошибок в
исходном
тексте
справочных
страниц.
Предупреждения
представляют
собой
список
названий
предупреждений
через
запятую;
если он не
указан, то
по
умолчанию
используется
значение
«mac». Полный
список
доступных
предупреждений
можно
найти в info groff,
раздел
“Предупреждения”.

Основные
режимы
работы

-f, —whatis
Эквивалентно
работе whatis.
Отображает
краткое
описание
из
справочной
страницы,
если оно
есть.
Подробней
смотрите
whatis(1).
-k, —apropos
Эквивалентно
работе apropos.
Ищет в
кратких
описаниях
справочных
страниц
ключевые
слова и
показывает
любые
совпадения.
Подробней
смотрите
apropos(1).
-K,
—global-apropos
Поиск
текста во
всех
справочных
страницах.
Используется
простой
поиск
перебором,
что
занимает
определённое
время; если
можно,
указывайте
раздел для
сокращения
числа
страниц, в
которых
нужно
искать.
Термины
поиска
могут быть
простыми
строками
(по
умолчанию),
или
регулярными
выражениями,
если
указан
параметр
—regex.
Заметим,
что данный
поиск
выполняется
по
исходному
тексту

справочных
страниц, а
не по
отображаемому
тексту, и
поэтому
может
включать
ложные
результаты,
например,
из-за
комментариев
в исходных
файлах.
Поиск по
отображаемому
тексту
выполнялся
бы
медленнее.
-l,
—local-file
Включить
«локальный»
режим.
Форматирует
и
показывает
локальные
справочные
файлы, а не
ищет их в
справочной
коллекции
системы.
Каждый
параметр
справочной
страницы
считается
именем
правильно
отформатированного
исходного
файла nroff. Cat
файлы не
создаются.
Если в
качестве
одного из
параметров
указан «-»,
то данные
будут
взяты из
стандартного
входного
потока.
Если этот
параметр
не
используется
и man не может
найти
запрашиваемую
страницу,
то перед
тем как
показать
сообщение
об ошибке,
будет
предпринята
попытка
работать в
локальном
режиме,
используя
указанное
имя в
качестве
имени
файла для
поиска.
-w, —where,
—path, —location
Не
выводить
содержимое
справочной
страницы, а
показать
место
нахождения
исходного
файла nroff,
который
был бы
отформатирован.
Если также
указан
параметр
-a, то
вывести
расположения
всех
исходных
файлов,
которые
подпадают
под
критерии
поиска.
-W, —where-cat,
—location-cat
Не
выводить
содержимое
справочной
страницы, а
показать
место
нахождения
отформатированного
файла cat,
который
был бы
показан.
Если также
указан
параметр
-a, то
вывести
расположения
всех
отформатированных
файлов,
которые
подпадают
под
критерии
поиска.
Если
указаны
параметры
-w и -W, и
вывести
исходный
файл и файл
cat, разделив
их
пробелом.
Если
указаны
сразу -w, -W и
-a, то
сделать
это для
каждого
возможного
совпадения.
-c, —catman
Этот
параметр
не для
обычного
использования,
и должен
использоваться
только
программой
catman.
-R кодировка—recode=кодировка
Вместо
обычного
форматирования
справочной
страницы
можно
преобразовать
исходный
текст в
заданную
кодировку.
Если вам
уже
известна
кодировка
исходного
файла, то
вы можете
также
использовать
непосредственно
manconv(1). Однако,
этот
параметр
позволяет
преобразовывать
несколько
справочных
страниц в
одну
кодировку
без явного
указания
кодировки
каждой
страницы,
предполагая,
что они уже
установлены
в
структуру,
подобную
иерархии
справочных
страниц.
Попробуйте
использовать
man-recode(1) вместо
преобразования
множества
справочных
страниц,
так как его
интерфейс
разработан
для
группового
преобразования
и может
выполнить
эту задачу
намного
быстрее.

Поиск
справочных
страниц

-L локаль—locale=локаль
man, обычно,
определяет
текущую
локаль с
помощью
вызова
C-функции
setlocale(3),
которая
исследует
различные
переменные
окружения,
возможно
$LC_MESSAGES и $LANG. Для
временной
подмены
полученного
значения,
используйте
этот
параметр,
задающий
локаль
только в man.
Заметим,
что это
влияет
только
непосредственно
на поиск
страниц.
Вывод
сообщений
программы,
например
справки,
всегда
будет
выполняться
для
изначально
определённой
локали.
-m
система[,…],
—systems=система[,…]
Если
система
имеет
доступ к
справочным
страницам
других
операционных
систем, то
к ним можно
обратиться
с помощью
этого
параметра.
Чтобы
найти
справочную
страницу
из
коллекции
страниц
для
операционной
системы NewOS,
укажите -m
NewOS.

В
значении
система
может
указать
несколько
имён
операционных
систем
через
запятую.
Чтобы
включить
поиск по
справочным
страницам
родной
операционной
системы,
добавьте
системное
имя man в это
значение.
Этот
параметр
заменяет
значение
переменной
окружения
$SYSTEM.

-M путь—manpath=путь
Задать
альтернативный
manpath для
работы. По
умолчанию,
для
определения
пути
поиска man
использует
manpath,
указанный
в исходном
коде
программы.
Этот
параметр
заменяет
значение
переменной
окружения
$MANPATH и
выключает
действие
параметра
-m.

Задаваемый
в
качестве manpath
путь
должен
быть
корнем
иерархии
справочных
страниц,
разделённой
на
разделы,
описанных
в
справочной
странице
по man-db (в
разделе
«Система
справочных
страниц»).
Для
просмотра
справочных
страниц
вне этих
иерархий,
используйте
параметр
-l.

-S
список, -s
список,
—sections=список
Задаваемый
список
разделов,
перечисляемых
через
запятую,
используется
для
определения
разделов
руководства
поиска и их
порядка.
Этот
параметр
заменяет
значение
переменной
окружения
$MANSECT
(параметр
-s введён
для
совместимости
с System V).
-e доп.расширение—extension=доп.расширение
Некоторые
системы
включают
большое
число
пакетов
справочных
страниц,
например
таких,
которые
поставляются
с пакетом
Tcl, в
главную
иерархию
справочных
страниц.
Для
решения
проблемы
появления
двух
справочных
страниц с
одинаковым
именем,
например,
exit(3), все
страницы
Tcl, обычно,
помещаются
в раздел l.
Но для
страниц
такого
типа уже
определён
правильный
раздел (3).
Теперь
возможно
помещать
страницы в
правильный
раздел, и
назначать
им
специальное
«расширение»,
в данном
случае, exit(3tcl).
Обычно, man
показывает
exit(3), а не exit(3tcl).
Чтобы
преодолеть
это и не
запоминать
в каком
разделе
лежит
определённая
страница,
теперь
возможно
передать
man строку
доп.расширения,
указывающую
какому
пакету
должна
принадлежать
страница.
Возвращаясь
к примеру
выше,
укажите
параметр
-e tcl для man,
чтобы
ограничить
поиск
только
страницами
с
расширением
*tcl.
-i,
—ignore-case
Игнорировать
регистр
при поиске
справочных
страниц.
Включено
по
умолчанию.
-I,
—match-case
Искать
справочные
страницы с
учётом
регистра
символов.
—regex
Показывает
все
страницы, у
которых
какая-то
часть в
имени или в
описании
совпадает
с
параметром
страница,
заданным в
виде
регулярного
выражения,
также как
apropos(1). Так как,
обычно, нет
разумного
способа
определить
«лучшую»
страницу
при поиске
по
регулярному
выражению,
то этот
параметр
подразумевает
-a.
—wildcard
Показывает
все
страницы, у
которых
какая-то
часть в
имени или в
описании
совпадает
с
параметром
страница,
заданным в
виде
групповых
символов,
также как в
apropos(1) —wildcard.
Значение
страница
должно
полностью
совпадать
с именем
или
описанием,
или
совпадать
по границе
слов в
описании.
Так как,
обычно, нет
разумного
способа
определить
«лучшую»
страницу
при поиске
по
регулярному
выражению,
то этот
параметр
подразумевает
-a.
—names-only
Если
указан
параметр
—regex или —wildcard,
то
совпадения
ищутся
только в
именах
страниц, а
не в
описании
страницы,
как в whatis(1).
Иначе,
этого не
происходит.
-a, —all
По
умолчанию,
man
завершает
работу
после
показа
наиболее
подходящей
найденной
справочной
страницы.
Этот
параметр
заставляет
man
показать
все
справочные
страницы с
именами,
которые
удовлетворяют
критериям
поиска.
-u, —update
Данный
параметр
заставляет
man
обновить
свои кэши
базы
данные
установленных
справочных
страниц.
Это
требуется
очень
редко и для
этого,
обычно,
лучше
запускать
mandb(8).
—no-subpages
По
умолчанию,
man
пытается
интерпретировать
пары имён
справочных
страниц,
указанных
в
командной
строке, как
единое имя
справочной
страницы,
содержащее
символ
переноса
или
подчёркивания.
Это
поддерживает
общую
систему
программ,
которые
имеют
несколько
подкоманд,
позволяя
для каждой
из них
предоставлять
справочные
страницы
используя
синтаксис,
похожий на
вызов
самих
подкоманд.
Например:

$ man -aw git diff
/usr/share/man/man1/git-diff.1.gz

Чтобы
выключить
такое
поведение,
укажите
параметр
—no-subpages.

$ man -aw --no-subpages git diff
/usr/share/man/man1/git.1.gz
/usr/share/man/man3/Git.3pm.gz
/usr/share/man/man1/diff.1.gz

Контролирование
форматированного
вывода

-P пейджер—pager=пейджер
Указывает,
какой
пейджер
использовать
для вывода.
По
умолчанию,
man
использует
less и
применяет
cat, если less не
найден или
не
является
исполняемым
файлом.
Этот
параметр
заменяет
значение
переменной
окружения
$MANPAGER которая,
в свою
очередь,
заменяет
значение
переменной
окружения
$PAGER. Не
используется
вместе с -f
или -k.

Значением
может
быть
просто
имя
команды
или
команды с
параметрами,
можно
использовать
экранирование
интерпретатора
команд
(обратные
слэши,
одиночные
кавычки
или
двойные
кавычки).
Нельзя
объединять
несколько
команд
каналами;
если эту
нужно,
создайте
сценарий-обёртку,
который
получает
файл для
показа в
виде
параметра
или со
стандартного
ввода.

-r приглашение—prompt=приглашение
Если в
качестве
пейджера
используется
новая
версия less,
то man будет
пытаться
установить
ей формат
приглашения
и
некоторые
значимые
параметры.
По
умолчанию
приглашение
выглядит
как

Manual page
имя
(раздел)
line
x

где имя
это имя
справочной
страницы,
раздел
раздел, в
котором
она была
найдена и
x — номер
текущей
строки.
Приглашение
устанавливается
с помощью
переменной
окружения
$LESS.

Данное
значение
по
умолчанию
можно
изменить
с помощью
параметра
-r.
Значение
параметра
может
содержать
текст $MAN_PN,
вместо
которого
подставляется
имя
текущей
справочной
страницы
и её
название
раздела,
окружённое
«(» и «)».
Строка,
используемая
для
создания
приглашения
по
умолчанию,
могла бы
выглядеть
как

\ Справочная\ страница\ \$MAN_PN\ ?ltстрока\ %lt?L/%L.:

byte\ %bB?s/%s..?\ (ВСЕ):?pB\ %pB\\%..

(h — справка, q
— выход)

Здесь
она
разделена
на три
строки
только
для
повышения
читаемости.
Описание
её
составных
частей
смотрите
в
справочной
странице
less(1). Строка
приглашения
сначала
обрабатывается
оболочкой
командной
строки.
Все
двойные
кавычки,
обратные
кавычки и
обратные
косые
черты в
приглашении
должны
предваряться
обратными
косыми
чертами
для
экранирования.
Строка
приглашения
может
заканчиваться
экранированным
$, за
которым
можно
указать
другие
параметры
less. По
умолчанию,
man
указывает
параметры
-ix8.

Переменная
окружения
$MANLESS,
описанная
ниже,
может
использоваться
для
назначения
строки
приглашения
по
умолчанию,
если это
не задано
в
командной
строке.

-7, —ascii
При
просмотре
справочной
страницы в
изначальной
кодировке
ascii(7) на
7-битном
терминале
или
эмуляторе
терминала
при
использовании
описания
устройства
latin1(7) с GNU nroff
некоторые
символы
могут
неправильно
отображаться
. Этот
параметр
позволяет
справочным
страницам
в
изначальной
ascii
отображаться
в ascii,
используя
устройство
latin1. Любой latin1
текст не
будет
транслироваться.
Следующая
таблица
показывает
выполняемые
трансляции:
некоторые
её части
могут
отображаться
правильно
только при
использовании
GNU nroff
устройства
latin1(7).

Описание Восьмеричный
код
latin1 ascii
длинный
перенос
255
bullet (точка в
центре)
267 o
значок
ударения
264 ´
знак
ударения
327 × x

Если
колонка latin1
отображается
правильно,
то ваш
терминал
может
быть
настроен
для
отображения
символов
latin1 и этот
параметр
ненужен.
Если
колонки latin1
и ascii
одинаковы,
то вы
читаете
эту
страницу
с помощью
данного
параметра,
или man не
отформатировал
страницу
с помощью
описания
устройства
latin1. Если
колонка latin1
отсутствует
или
повреждена,
то вам
может
потребоваться
просматривать
справочные
страницы
с помощью
этого
параметра.

Этот
параметр
игнорируется
при
использовании
параметров
-t, -H, -T или -Z,
и может
быть
бесполезен
для nroff, если
он не от GNU.

-E кодировка—encoding=кодировка
Сгенерировать
вывод в
символьной
кодировке,
отличной
от
используемой
по
умолчанию.
Кроме
реальной
символьной
кодировки,
типа UTF-8, для
обратной
совместимости
в
кодировке
можно
указывать
устройство
nroff,
например,
ascii, latin1 или utf8.
—no-hyphenation,
—nh
Обычно, nroff
автоматически
разбивает
текст при
окончании
строки
даже на
словах, у
которых
нет
переносов,
если это
необходимо
для
размещения
слов в
строке для
избежания
лишних
пробелов.
Этот
параметр
отключает
автоматический
перенос; в
результате
перенос
выполняется
только для
слов, в
которых
есть
символы
переноса.

Если вы
пишите
справочную
страницу
и просто
хотите
отключить
в nroff
перенос в
словах в
неподходящем
месте, не
используйте
этот
параметр,
а
почитайте
документацию
к nroff;
например,
вы можете
поместить
«\%» внутрь
слова в
место
возможного
разрыва,
или
поместить
«\%» в начало
слова, что
не даст
его
разорвать
совсем.

—no-justification,
—nj
Обычно, nroff
автоматически
выравнивает
текст по
обеим
границам.
Этот
параметр
выключает
полное
выравнивание,
оставляя
выравнивание
по левому
краю,
получается
так
называемый
текст «без
выключки
по правому
краю».

Если вы
пишите
справочную
страницу
и просто
хотите
отключить
в nroff
выравнивание
в
некоторых
параграфах,
не
используйте
этот
параметр,
а
почитайте
документацию
к nroff;
например,
вы можете
использовать
запросы
«.na», «.nf», «.fi», и
«.ad» для
временного
отключения
выравнивания
и
заполнения.

-p строка—preprocessor=строка
Задать
последовательность
препроцессоров
для
запуска
перед nroff
или troff/groff. Не
во всех
системах
имеется
полный
набор
препроцессоров.
Некоторые
препроцессоры
и буквы,
используемые
для их
обозначения:
eqn (e), grap (g), pic (p),
tbl (t), vgrind (v), refer (r).
Этот
параметр
заменяет
значение
переменной
окружения
$MANROFFSEQ. zsoelim
запускается
всегда в
качестве
первого
очень
быстрого
препроцессора.
-t, —troff
Использовать
groff -mandoc для
форматирования
справочной
страницы и
вывода в
стандартный
выходной
поток. Этот
параметр
не
требуется
вместе с -H,
-T или -Z.
-T[устройство],
—troff-device[=устройство]
Этот
параметр
используется
для замены
вывода groff
(или,
возможно,
troff) на более
подходящий
для
устройства,
отличного
от
используемого
по
умолчанию.
Подразумевается
-t. Примеры
(предоставляются
с Groff-1.17)
включают
dvi, latin1, ps, utf8, X75 и
X100.
-H[браузер],
—html[=браузер]
Этот
параметр
заставляет
groff
создавать
HTML -страницу,
и
отображать
её в
веб-браузере.
Выбор
браузера
определяется
необязательным
значением
браузер,
переменной
окружения
$BROWSER, или,
если
ничего не
указано,
значением
по
умолчанию,
установленным
при
компиляции
программы
(обычно lynx).
Этот
параметр
предполагает
-t, и
работает
только с GNU
troff.
-X[dpi],
—gxditview[=dpi]
С этим
параметром
вывод groff
осуществляет
в
графическое
окно с
помощью
программы
gxditview.
Значениями
dpi (точек на
дюйм) могут
быть 75, 75-12, 100 или
100-12; по
умолчанию
75; в
вариантах
с -12 в конце
используется
базовый
шрифт в 12
точек. Этот
параметр
подразумевает
-T со
значениями
устройств
X75, X75-12, X100 и X100-12
соответственно.
-Z, —ditroff
groff
запустит
troff, а затем
использует
соответствующий
постпроцессор
для
создания
результата,
подходящего
для
выбранного
устройства.
Если groff -mandoc
совпадает
с groff, то
данный
параметр
передаётся
groff и
использование
постпроцессора
отменяется.
Подразумевает
-t.

Выдача
справки

-?, —help
Показать
справочное
сообщение
и
закончить
работу.
—usage
Показать
короткое
сообщение
об
использовании
и
завершить
работу.
-V, —version
Показать
информацию
о версии.

КОД
ВЫХОДА

0
Успешное
выполнение
программы.
1
Была
показана
справка об
использовании,
произошла
синтаксическая
ошибка или
проблемы в
файле
настройки.
2
Ошибка при
работе.
3
Дочерний
процесс
завершился
с
ненулевым
кодом
выхода.
16
По крайней
мере одна
из
страниц/файлов/ключевых
слов не
существует
или для неё
при поиске
ничего не
найдено.

ОКРУЖЕНИЕ

MANPATH
Если
установлена
переменная
окружения
$MANPATH, то её
значение
используется
в качестве
пути
поиска
справочных
страниц.

О том, как
используется
эта
переменная
окружения
и
поведение
по
умолчанию,
смотрите
раздел
ПУТЬ
ПОИСКА
в
manpath(5).

MANROFFOPT
Всякий раз,
когда man
вызывает
программу
форматирования
(nroff, troff или groff)
в её
командную
строку
добавляется
содержимое
$MANROFFOPT.
MANROFFSEQ
Если
установлена
переменная
окружения
$MANROFFSEQ, то её
значение
используется
для
определения
набора
препроцессоров
для
обработки
каждой
справочной
страницы.
Список
препроцессоров
по
умолчанию
зависит от
системы.
MANSECT
Если
установлена
переменная
окружения
$MANSECT, то её
значением
является
список
разделов,
указанных
через
двоеточие,
и она
используется
для
задания
разделов
справочных
страниц, в
которых
будет
производится
поиск и в
каком
порядке.
Значением
по
умолчанию
является «1
1p n l 8 3 3p 0 0p 2 3type 5 4 9 6 7»,
если оно не
заменено
директивой
SECTION в /etc/man_db.conf.
Если
установлена
переменная
окружения
$MANPAGER или $PAGER ($MANPAGER
просматривается
первой), то
в ней
задано имя
программы
для
отображения
справочной
страницы.
По
умолчанию,
используется
less или cat,
если less не
найден или
не
является
исполняемым
файлом.

Значением
может
быть
просто
имя
команды
или
команды с
параметрами,
можно
использовать
экранирование
интерпретатора
команд
(обратные
слэши,
одиночные
кавычки
или
двойные
кавычки).
Нельзя
объединять
несколько
команд
каналами;
если эту
нужно,
создайте
сценарий-обёртку,
который
получает
файл для
показа в
виде
параметра
или со
стандартного
ввода.

MANLESS
Если
установлена
переменная
окружения
$MANLESS, то её
значение
будет
использоваться
по
умолчанию
как строка
приглашения
для
пейджера
less, как если
бы был
указан
параметр -r
(так что
любые
появления
текста $MAN_PN
будут
как-то
раскрыты).
Например,
если вы
хотите
установить
строку
приглашения
дословно в
“my prompt string”, то
установите
$MANLESS равной
-Psmy prompt string’.
Указанное
значение
параметра
-r замещает
значение
переменной
окружения.
BROWSER
Если
установлена
переменная
окружения
$BROWSER, то её
значение
представляет
собой
список
команд,
разделяемых
двоеточием;
каждая из
них
используется
для
попытки
запуска
веб-браузера
для man —html. В
каждой
команде %s
заменяется
именем
файла,
содержащим
HTML
результат
от groff, %%
заменяется
одним
знаком
процента (%),
а %c
заменяется
двоеточием
(:).
SYSTEM
Установка
значения
переменной
окружения
$SYSTEM
равносильна
указанию
параметра
-m.
MANOPT
Если
установлена
переменная
окружения
$MANOPT, то она
анализируется
раньше
командной
строки man и
должна
задаваться
в том же
формате.
Значения
всех
специальных
переменных
окружения
man могут
быть
заданы в
параметрах
командной
строки, а
включение
в $MANOPT
показывает,
что данный
параметр
скоро
устареет.
Обратите
особое
внимание
на то, что
все
пробелы,
которые
должны
быть
частью
значения
параметра,
нужно
экранировать.
MANWIDTH
Если
установлена
переменная
окружения
$MANWIDTH, то её
значение
используется
в качестве
длины
строки
форматируемых
справочных
страниц.
Если она не
установлена,
то
справочные
страницы
будут
отформатированы
по длине
строки
текущего
терминала
(используется
значение
переменной
$COLUMNS, и вызов
ioctl(2), если он
доступен,
или 80
символов,
если
ничего
недоступно).
Cat страницы
будут
сохраняться
на диск
только,
если может
быть
использовано
форматирование
по
умолчанию,
то есть
когда
длина
строки
терминала
лежит в
промежутке
между 66 и 80
символами.
MAN_KEEP_FORMATTING
Обычно,
если вывод
не
направляется
на
терминал
(например,
в файл или
канал),
символы
форматирования
отбрасываются
для
облегчения
чтения
результата
не имея
специальных
инструментов.
Однако,
если
переменная
окружения
$MAN_KEEP_FORMATTING
установлена
в непустое
значение,
то символы
форматирования
остаются.
Это может
быть
полезно
для
оболочек
вокруг man,
которые
распознают
символы
форматирования.
MAN_KEEP_STDERR
Обычно,
если вывод
направляется
на
терминал
(например,
в пейджер),
все ошибки
вывода
команды,
используемой
для
создания
форматированного
варианта
справочной
страницы,
отбрасываются
во
избежании
порчи
отображаемого
текста.
Программы
типа groff
часто
выводят
относительно
безобидные
сообщения
об ошибках,
например о
печатных
проблемах
плохого
выравнивания
вперемешку
с
информацией
справочной
страницы.
Однако,
некоторые
пользователи
всё равно
хотели бы
их видеть,
и поэтому,
если
установить
переменную
окружения
$MAN_KEEP_STDERR в
непустое
значение,
вывод
ошибок
будет
производиться
как
обычно.
MAN_DISABLE_SECCOMP
В Linux, man,
обычно,
ограничивает
подпроцессы,
работающие
с
ненадёжными
данными, с
помощью
изолированной
среды seccomp(2).
Это
позволяет
безопасно
запускать
сложный
код
разбора
произвольных
справочных
страниц.
Если это
приводит к
ошибке по
причине не
связанной
с
содержимым
отображаемой
справочной
страницы,
то
изолированную
среду
можно
отключить,
указав
непустое
значение в
переменной
$MAN_DISABLE_SECCOMP.
PIPELINE_DEBUG
Если
переменная
окружения
$PIPELINE_DEBUG равна
«1», то man
выведет
отладочные
сообщения
в
стандартный
поток
ошибок из
каждого
запускаемого
подпроцесса.
LANG,
LC_MESSAGES
В
зависимости
от системы
и
реализации,
одна или
обе
переменные
$LANG и $LC_MESSAGES
будут
просмотрены
для
определения
текущей
локали
сообщений.
man будет
отображать
свои
сообщения
в этой
локали
(если они
для неё
есть).
Подробней
смотрите в
setlocale(3).

ФАЙЛЫ

/etc/man_db.conf
Файл
настройки
man-db.
/usr/share/man
Глобальная
иерархия
справочных
страниц.

СМОТРИТЕ
ТАКЖЕ

apropos(1), groff(1), less(1),
manpath(1), nroff(1), troff(1), whatis(1),
zsoelim(1), manpath(5), man(7), catman(8),
mandb(8)

Документация
на
некоторые
пакеты
может быть
доступна в
других
форматах,
например,
info(1) или HTML.

ИСТОРИЯ

1990, 1991 –
изначально
написана
Джоном В.
Итоном (John W. Eaton,
jwe@che.utexas.edu).

23 декабря 1992:
Рик Фейт (Rik Faith,
faith@cs.unc.edu)
исправил
ошибки,
найденные
Виллемом
Касдорпом
(Willem Kasdorp, wkasdo@nikhefk.nikef.nl).

30 апреля 1994 –
23 февраля 2000:
Вильф (Wilf. G.Wilford@ee.surrey.ac.uk)
разрабатывал
и
сопровождал
этот пакет
с помощью
некоторых
других
людей.

30 октября 1996
– 30 марта 2001:
Фабрицио
Полако (Fabrizio Polacco,
<fpolacco@debian.org>
сопровождал
и улучшал
этот пакет
для
проекта Debian с
помощью
всего
сообщества.

31 марта 2001 –
настоящие
дни: Колин
Уотсон (Colin Watson,
<cjwatson@debian.org>
занимается
разработкой
и
сопровождением
man-db.

ОШИБКИ

https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db

Это руководство показывает, как передвигаться по страницам справки, используя команду man.

Введение

Программа man

Каждый использовал eё в какой-то момент своей работы в Linux: команду man. В то время, как программа man сама по себе кажется довольно простой в использовании, она имеет больше дополнительных возможностей, чем просто прокручивание страницы. Этот документ предназначен для того, чтобы пролить свет на эти возможности.

Структура страниц справки

Страницы справки в основном хранятся в каталоге /usr/share/man. Однако, если путь к странице справки указан в переменной среды MANPATH, команда man сможет её найти. Gentoo в основном хранит переменную MANPATH в /etc/env.d. Внутри указанных в начале каталогов расположены несколько каталогов со структурой manX, где X — это номер секции. Например, стандартное расположение страниц справки может выглядеть следующим образом:

user $ls /usr/share/man | grep man

man0p
man1
man1p
man2
man3
man3p
man4
man5
man6
man7
man8
man9
mann

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

Папка Man Описание
man0p Здесь «p» означает POSIX, как и для других каталогов, содержащих p в их названии. Man-страницы в этом каталоге описывают функциональность различных файлов заголовков POSIX.
man1 Этот раздел предназначен для стандартных команд. Большинство программ размещают свои страницы справки здесь, поэтому этот раздел будет самым большим.
man1p Этот раздел описывает POSIX-версии команд, содержащихся в 1p. Так как он только описывает простые команды, он будет меньшим чем man1.
man2 Этот раздел описывает системные вызовы ядра Linux.
man3 Этот раздел описывает функции стандартной библиотеки C.
man4 Этот раздел описывает специальные файлы устройств. Эти файлы устройств как правило предназначены для ядра, но x11-base/xorg-x11 также хранит здесь свои файлы.
man5 Этот раздел описывает как состав определенных файлов, так и те файлы, какие использует программа. Читающие этот документ, могут быть знакомы со ссылками на man 5 portage для описания файловой структуры Portage, или man 5 make.conf для описания структуры make.conf.
man6 Этот раздел включает игры и другие развлечения.
man7 Данный раздел описывает стандартные и другие различные элементы. Эти стандартные элементы включают такие вещи как наборы символов, выражения SQL, стандарты ISO и регулярные выражения.
man8 Этот раздел описывает команды администрирования (те, которые обычно запускаются администратором).
man9 Этот раздел немного пустой, но он предназначен для хранения документации о различных частях ядра.
mann Этот раздел в основном используется dev-lang/tcl или dev-lang/tk. Буква «n» означает new (новый).

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

Работа со структурой страниц справки

Просмотр структуры страниц справки

Теперь, когда мы понимаем структуру man-страниц, мы можем начать искать команды. Иногда мы можем сосредоточиться на той man-странице, которая нам требуется. Первом способом будет поиск по разделу. Для того, чтобы найти описание раздела, можно использовать команду man <section> intro следующим образом:

user $man 3 intro

## (Output slightly modified to fit the document properly)
INTRO(3)               Linux Programmer's Manual                INTRO(3)
 
 
 
NAME
       intro - Introduction to library functions
 
DESCRIPTION
       This chapter describes all library functions excluding the library
       functions described in chapter 2, which implement system calls.
       There are various function groups which can be identified by a
       letter which is appended to the chapter number:
....

К сожалению, это не всегда работает! Однако, к счастью для нас, существует другой способ поиска команд, которые могут возвращать разные результаты (такие как вызовы библиотеки и системные команды имеющие то же самое имя). Для того, чтобы это сделать, мы будем использовать опцию -K команды man, как в данном случае:

user $man -K sleep

/usr/share/man/man0p/time.h.0p.gz? [ynq] n
/usr/share/man/man0p/unistd.h.0p.gz? [ynq] n
/usr/share/man/man2/alarm.2.gz? [ynq] n
/usr/share/man/man2/pause.2.gz? [ynq] n
/usr/share/man/man2/futex.2.gz? [ynq] n
/usr/share/man/man2/nanosleep.2.gz? [ynq] y
/usr/share/man/man2/semop.2.gz? [ynq] q

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

Просмотр man-страниц

Просмотр страниц справки может быть выполнен двумя способами, во-первых, с помощью man [номер man–страницы]. Второй способ — man <section> [номер man–страницы]. Для примера, рассмотрим sys-devel/bc. Я могу просмотреть, например, самую первую из страниц справки, которая описывает bc (что будет разделом 1, так как это наименьший номер раздела, содержащего man-страницу по bc):

user $man bc

bc(1)                                            bc(1)
 
 
NAME
       bc - An arbitrary precision calculator language
...

Однако, что если мне нужна POSIX-версия? Тогда я могу использовать следующую форму записи.

user $man 1p bc

BC(P)        POSIX Programmer's Manual           BC(P)
 
 
NAME
       bc - arbitrary-precision arithmetic language
...

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

Навигация и поиск по man-страницам

Навигация по страницам справки достаточно проста. Для передвижения на одну строку вверх и вниз, используйте клавиши управления курсором и . Для передвижения вверх, страница за страницей, вы можете использовать клавиши Page up и Page down. Однако, заметьте, что эти инструкции по навигации предполагают то, что переменная среды PAGER настроена на использование программы для просмотра по умолчанию — less. Less также имеет несколько других команд для навигации, но обычно достаточно использовать клавиши управления курсором:

КОД Дополнительные клавиши навигации для less

  e  ^E  j  ^N  CR  *  Вперед на одну строку (или N строк).
  y  ^Y  k  ^K  ^P  *  Назад на одну строку (или N строк)
  f  ^F  ^V  SPACE  *  Вперед на одно окно (или N строк).
  b  ^B  ESC-v      *  Назад на одно окно (или N строк).
  z                 *  Назад на одно окно (и установить окно в N).
  w                 *  Назад на одно окно (и установить окно в N).
  ESC-SPACE         *  Вперед на одно окно, но не останавливаться в конце файла.
  d  ^D             *  Вперед на одно полуокно (и установить полуокно в N).
  u  ^U             *  Назад на одно полуокно (и установить полуокно в N).
  ESC-)  RightArrow *  Сдвинуть вид вправо на половину ширины окна (или N позиций).
  ESC-(  LeftArrow  *  Сдвинуть вид влево на половину ширины окна (или N позиций).
  F                    Вперед всегда (вроде "tail -f").

Поиск, однако, более интересен. Два наиболее простых варианта поиска — использование /pattern и ?pattern. Первая версия ищет текст по направлению вниз, а вторая — вверх. pattern — это регулярное выражение, которое описывается в man 7 regex. Давайте, для примера, возьмем поиск параметра командной строки -D для emerge. Сперва, откройте man–страницу:

Затем, на экране, нажмите клавишу / для вызова командной строки для поиска вперед и введите наш запрос:

КОД Вызов командной строки для поиска

gracefully handles updating installed packages to newer releases as well.
     It handles both source and binary packages, and it can be used to create
     binary packages for distribution.
 
EBUILDS, TBZ2S, CLASSES AND DEPENDENCIES
/\-D

Заметка
Символ \ требуется для экранирования символа - , который в обычном случае мог бы использоваться как часть регулярного выражения.

Эта команда выполнит поиск на данной man-странице и сфокусируется на искомом элементе.

КОД Результаты поиска вперед

--deep (-D)
        When used in conjunction with --update, this flag forces emerge to consider the entire
        dependency tree of packages, instead of checking only the immediate dependencies of
        the packages.  As an example, this catches updates in libraries that are not directly
        listed in the  dependencies of a package.

Если вы случайно столкнулись с похожим результатом поиска и хотите продолжить поиск тех же самых результатов, просто нажмите клавишу / снова и нажмите Enter (т. е. не вводя туда ничего). Это заставит систему поиска указывать на последний используемый шаблон для поиска. Теперь, на некоторых страницах справки, параметры сначала перечислены, а впоследствии объяснены. Для примера возьмем man-страницу man 5 portage. Она перечисляет используемые файлыы, затем объясняет их использование. Поиск вперед несколько раз мог бы возвратить требуемые результаты, но существует более легкий способ этого достичь, с помощью второй формы поиска, поиска назад. Давайте используем ее для того чтобы найти описание файла package.unmask. Сперва, введите man 5 portage:

Теперь, нажмите Shift+g. Это перенесет вас на конец страницы:

КОД Конец man-страницы после нажатия SHIFT+g

SEE ALSO
       emerge(1), ebuild(1), ebuild(5), make.conf(5)
 
Portage 2.0.51        Jan 2004            PORTAGE(5)
lines 418-442/442 (END)

А сейчас мы пойдем дальше, и введем шаблон для обратного поиска: ?pattern. Сперва нажмите клавишу ? для того чтобы вызвать командную строку, а затем введите package.unmask, т. е. наш запрос:

КОД Указание для нашего поиска

SEE ALSO
       emerge(1), ebuild(1), ebuild(5), make.conf(5)
 
Portage 2.0.51        Jan 2004           PORTAGE(5)
?package.unmask

Затем нажмите Enter для получения результата:

КОД Результат нашего поиска

package.unmask
       Just like package.mask above, except here you list packages you want to unmask.
       Useful for overriding the global  package.mask  file (see below).  Note that
       this does not override packages that are masked via KEYWORDS.
...

И поиск завершен! Заметьте то, что как и в случае с /, использование поиска ? без строки шаблона использует последний шаблон для поиска.

Выводы

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

  • sys-apps/man2html — Программа для конвертации man-страниц в html.
  • app-text/tkman — Просмотрщик man-страниц, основанный на tk.

Веб-браузер KDE kde-apps/konqueror также может просматривать man-страницы, используя синтаксис man: в адресной строке.


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Chris White
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article’s associated history page.

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.

Понравилась статья? Поделить с друзьями:
  • Bft для откатных ворот инструкция по монтажу
  • Dune pro vision 4k solo мануал
  • Лампа бионик от цептер инструкция по применению
  • Био гров инструкция по применению удобрение
  • Изофра таблетки инструкция по применению цена