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

Время на прочтение
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. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Фундаментальные основы Linux. Часть II: Первые шаги в изучении интерфейса командной строки

Оригинал:

Linux Fundamentals

Автор: Paul Cobbaut

Дата публикации: 16 октября 2014 г.

Перевод: А.Панин

Дата перевода: 11 декабря 2014 г.

В данной главе описывается методика использования man-страниц (также называемых страницами руководств) при работе с вашим компьютером под управлением Unix или Linux.

Вы узнаете о том, как использовать команду man, а также такие связанные с ней команды, как whereis, whatis и mandb.

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

Команда man $команда

Вы можете ввести команду man с последующим именем интересующей команды (для которой вам хотелось бы получить справочную информацию) и начать чтение страницы руководства. Нажмите q для выхода из режима чтения страницы руководства. Некоторые страницы руководств содержат примеры (расположенные ближе к концу страницы).

paul@laika:~$ man whois
Форматирование страницы whois(1), подождите...

Команда man $имя_файла_конфигурации

Для большинства файлов конфигурации имеются отдельные страницы руководств.

paul@laika:~$ man syslog.conf
Форматирование страницы syslog.conf(5), подождите...

Команда man $демон

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

paul@laika:~$ man syslogd
Форматирование страницы syslogd(8), подождите...

Команда man -k (apropos)

Команда man -k (или apropos) позволяет вывести список страниц руководств, содержащих заданную строку.

paul@laika:~$ man -k syslog
lm-syslog-setup (8)  - configure laptop mode to switch syslog.conf ...
logger (1)           - a shell command interface to the syslog(3) ...
syslog-facility (8)  - Setup and remove LOCALx facility for sysklogd
syslog.conf (5)      - syslogd(8) configuration file
syslogd (8)          - Linux system logging utilities.
syslogd-listfiles (8) - list system logfiles

Команда whatis

Для ознакомления с описанием страницы руководства следует использовать команду whatis с именем интересующей страницы руководства.

paul@u810:~$ whatis route
route (8)            - show / manipulate the IP routing table

Команда whereis

Расположение файла страницы руководства в рамках файловой системы может быть определено с помощью команды whereis.

paul@laika:~$ whereis -m whois
whois: /usr/share/man/man1/whois.1.gz

Этот файл может быть непосредственно прочитан с помощью команды man.

paul@laika:~$ man /usr/share/man/man1/whois.1.gz

Номера справочных разделов

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

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

Команда man $раздел $файл

Таким образом, при обращении к странице руководства для команды passwd, вы можете обнаружить, что эта страница обозначается как passwd(1); при обращении к странице руководства для файла passwd используется обозначение passwd(5). Приведенные ниже примеры команд иллюстрируют методику открытия страниц руководств из корректных разделов.

[paul@RHEL52 ~]$ man passwd      # открывает первую найденную страницу руководства
[paul@RHEL52 ~]$ man 5 passwd    # открывает страницу руководства из раздела 5

Команда man man

Если вы желаете узнать больше о команде man, прочитайте это замечательное руководство (Read The Fantastic Manual — RTFM).

К сожалению, на страницах руководств невозможно найти ответы на все вопросы…

paul@laika:~$ man woman
Нет справочной страницы для woman

Утилита mandb

Если вы убеждены в том, что страница руководства существует, но при этом вы не можете получить доступ к ней, попробуйте выполнить команду mandb в дистрибутиве Debian/Mint.

root@laika:~# mandb
В 0 man-подкаталогах содержатся более новые справочные страницы. 
Добавлено 0 справочных страниц. 
Добавлено 0 побочных cat-страниц. 
Вычищено 0 старых записей базы данных.

Или команду makewhatis в дистрибутиве CentOS/Redhat.

[root@centos65 ~]# apropos scsi
scsi: ничего подходящего не найдено.
[root@centos65 ~]# makewhatis 
[root@centos65 ~]# apropos scsi
hpsa                 (4)  - HP Smart Array SCSI driver
lsscsi               (8)  - list SCSI devices (or hosts) and their attributes
sd                   (4)  - Driver for SCSI Disk Drives
st                   (4)  - SCSI tape device

Если вам понравилась статья, поделитесь ею с друзьями:


Состояние перевода: На этой странице представлен перевод статьи man page. Дата последней синхронизации: 14 октября 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

man-страницы (от англ. manual — руководство) — справочные страницы, которые предоставляются почти всеми *nix-дистрибутивами, включая Arch Linux. Для их отображения служит команда man.

man-страницы изначально подразумевались как самодостаточные документы. Они ограничены в возможностях ссылаться друг на друга, в отличие от поддерживающих гиперссылки info-файлов — попытки GNU создать замену традиционному формату man-страниц.

Установка

man-db реализует man в Arch Linux, а less является просмотрщиком по умолчанию. Также можно использовать mandoc.

man-pages предоставляет руководства Linux.

Русский перевод доступен в man-pages-ru.

Можно использовать приложения для просмотра руководств:

  • GNOME Help — Просмотрщик справки для GNOME. Он позволяет смотреть man-страницы через yelp man:<name> или недокументированным сочетанием клавиш Ctrl+L в существующем окне.
https://wiki.gnome.org/Apps/Yelp || yelp
  • KHelpCenter — Приложения для документации KDE Applications. Man-страницы доступны в UNIX manual pages или при запуске khelpcenter man:<name>.
https://userbase.kde.org/KHelpCenter || khelpcenter
  • Konqueror — Файловый менеджер KDE и веб-браузер. Он может отображать man-страницы через man:<name>.
https://konqueror.org/ || konqueror
  • xman — Обеспечивает просмотр man-страниц по категориям.
https://xorg.freedesktop.org/ || xorg-xman

Доступ к man-страницам

Чтобы отобразить man-страницу, наберите

$ man имя_страницы

Страницы разделены на несколько разделов. Полный список разделов смотрите в man-pages(7).

На man-страницы принято ссылаться по имени, с указанием номера раздела в скобках. Часто существуют сразу несколько man-страниц с одинаковыми именами, но в разных категориях, например man(1) и man(7). В таком случае, команде man необходимо передать номер конкретного раздела перед именем man-страницы, например:

$ man 5 passwd

отобразит man-страницу по файлу /etc/passwd вместо утилиты passwd.

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

$ man passwd.5

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

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

$ man -k выражение
$ man --apropos выражение
$ apropos выражение

выражение по умолчанию интерпретируется как регулярное выражение.

Если вы хотите произвести более углубленный поиск по всему содержимому страниц, используйте опцию -K:

$ man -K password

Примечание: Возможность поиска реализауется отдельным кэшем. Он обновляется автоматически службой man-db.service, которую периодически запускает man-db.timer. Если вы получаете сообщение «ничего подходящего не найдено» для любого поискового запроса, попробуйте вручную обновить кэш, запустив команду mandb как root.

Вместо того, чтобы отображать man-страницу целиком, вы можете вывести лишь ее краткое описание, используя команду whatis. Например,

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

Ширина страницы

Ширина man-страниц регулируется переменной окружения MANWIDTH.

Если ширина терминала слишком маленькая, переносы строк могут сломаться, что затруднит чтение. Можно исправить это установкой значения MANWIDTH при запуске man. В bash это можно сделать примерно так:

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

Просмотр локальных страниц

Кроме утилиты man, для чтения man-страниц вы также можете использовать веб-браузер, например lynx или Firefox. Просмотр страниц в браузере позволяет воспользоваться основным преимуществом info-страниц — гиперссылками.

Конвертирование страниц в HTML

mandoc

Установите пакет mandoc. Чтобы конвертировать страницу, для примера, free(1), наберите:

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

Получившийся файл free.html теперь можно открыть в любом веб-браузере.

man2html

Установите man2html из официальных репозиториев.

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

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

Другая полезная функция man2html — экспорт в обычный текстовый файл, который можно распечатать:

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

man -H

Реализация утилиты man от GNU, также позволяет открыть страницу в веб-браузере:

$ man -H free

Команда запустит браузер, установленный в переменной окружения BROWSER. Вы можете указать браузер явно, передав путь до исполняемого файла сразу после опции -H.

roffit

Установите пакет roffitAUR.

Для конвертирования страницы выполните:

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

Конвертирование в PDF

Man-страницы всегда были удобны для печати: они написаны в формате troff, который является типографским языком. Таким образом вы можете легко сконвертировать man-страницы в любой из форматов, который поддерживается в groff, который используется в man-db. Чтобы узнать список доступных устройств вывода, смотрите опцию -T в groff(1) (или mandoc(1) если вы используете пакет mandoc).

Эта команда создаст PDF-файл:

$ man -Tpdf имястраницы > имяфайла

Обратите внимание, что шрифты главным образом ограничены набором Times и имеют жестко заданные размеры. Документ не будет содержать гиперссылок. Некоторые man-страницы форматировались так, чтобы выглядеть хорошо в терминале, однако могут отображаться некорректно в форме PostScript или PDF-документов.

Просмотр онлайн-страниц

Существуют множество онлайн-хранилищ man-страниц; вот небольшой список:

  • Arch manual pages содержит man-страницы пакетов Arch Linux. Используется для ссылок на man-страницы в этой вики. Также можно использовать !archman DuckDuckGo bang для прямого поиска по man-страницам Arch.
  • Man7.org. Первоисточник страниц для man-pages.
  • manned.org — коллекция из разных дистрибутивов Linux, BSD и т.д. Множество версий пакетов.
  • man-страницы на die.net
  • man.cx
  • man-страницы Debian GNU/Linux
  • репозиторий man-страниц Ubuntu
  • man-страницы DragonFlyBSD
  • man-страницы FreeBSD Hypertext
  • man-страницы NetBSD
  • man-страницы OpenBSD
  • Руководство Plan 9 — Том 1
  • Руководство Inferno — Том 1
  • man-страницы форума The UNIX and Linux Forums

Также есть сравнительная таблица.

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

Полезные страницы

Здесь приведен небольшой список полезных man-страниц, которые могут помочь вам получить более углубленные знания о множестве полезных вещей. Некоторые из них могут служить хорошими справочниками (например, таблица ASCII).

  • ascii(7)
  • boot(7)
  • charsets(7)
  • chmod(1)
  • credentials(7)
  • fstab(5)
  • hier(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)

Вам могут быть интересны также и другие страницы седьмой категории:

$ man -s 7 -k ".*"

А также страницы, относящиеся непосредственно к Arch Linux:

  • 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)

See also

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

Man страницы в Linux

При работе в Linux иногда требуется чтение документации, руководств или help’ов. В Linux есть отличная документация, которая размещена в Man-страницах.

Что такое Man-страницы

Man-страницы (от слова manual — руководство) — это целая библиотека в системе Linux, содержащая руководства по командам, утилитам, программированию и другим областям системы и не только.

Как открыть Man-страницы

Для чтения Man-страниц предназначена команда man.

Чтобы получить руководство по использованию какой-либо команды нужно выполнить команду:

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

Например, чтобы вывести руководство по команде wget, нужно выполнить команду:

man wget

man wget

Синтаксис команды man

В общем виде синтаксис команды man следующий:

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

Разделы

Man-страницы разделены по тематикам на разделы (на секции). Каждый раздел имеет свой номер. Всего существует 8 основных разделов.

Если вы не указали раздел, при выполнении команды man, то сначала будет выполнен поиск руководства в первом разделе, если его там нет, то во втором и так далее.

Например, откроем руководство по команде sleep. В данном случае будет использоваться первый раздел.

man sleep

man sleep

А теперь получим справку по библиотечному вызову sleep языка программирования C (раздел 3):

man 3 sleep

man 3 sleep

Ниже представлена таблица с номерами разделов и их назначением (тематикой).

Номер
раздела
Описание
1 Основные команды.
2 Системные вызовы.
3 Библиотечные функции, включая стандартную библиотеку языка C.
4 Специальные файлы (обычно устройства из /dev) и драйвера.
5 Форматы файлов и соглашения.
6 Игры и скринсейверы.
7 Разное.
8 Команды системного администрирования и демоны.

Для указания ссылок на Man-страницы часто используют следующую запись: имя(раздел). Например, aporopos(1), less(1), exit(3).

Поиск Man-страниц

Самая полезная опция команды man, это опция -k.

-k — поиск Man-страниц. Выводит список Man-страниц, в которых встречается искомый запрос.

man -k kill

Горячие клавиши и поиск внутри Man-страницы

Вверх, Вниз, Enter — просмотр (прокрутка) Man-страницы.
PgUb, PgDn, Пробел — постраничное пролистывание.

/ — поиск внутри страницы. Нажимаете клавишу /, при этом внизу появляется строка для ввода текста. Вводите текст, который вы хотите найти, и нажимаете Enter.
? — поиск в обратном направлении (снизу вверх). Аналогично нужно ввести текст для поиска и нажать Enter.
n — переход к следующему вхождению.
Shift+n — переход к предыдущему вхождению.
& — поиск внутри страницы, но вместо подсвечивания результатов, вывести только строки, где было найдено искомое слово.

h — открыть справку по командам и горячим клавишам. Чтобы закрыть справку, используется клавиша q.

q — закрыть Man-страницу.

Установка Man-страниц

Как правило, базовые man-страницы обычно всегда установлены в дистрибутивах Linux, но иногда их нужно устанавливать самостоятельно. Для установки Man-страниц выполните следующие команды.
Для Ubuntu:

sudo apt install man-db manpages

Для Fedora, CentOS:

yum install man man-pages man-db

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

sudo apt install manpages-dev manpages-posix-dev

Для Fedora:

yum install libstdc++-docs

Хотите, чтобы ваша новая программа для Linux выглядела профессионально? Дайте ему страницу руководства. Мы покажем вам самый простой и быстрый способ сделать это.

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

В старой шутке про Unix « только команда, которая вам нужна знать — человек ». Страницы руководства содержат множество знаний, и они должны быть первым местом, куда вы обращаетесь, когда хотите узнать о команде.

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

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

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

Вам следует сконцентрироваться на своем контенте, а не бороться с неясным набором макросов.

pandoc спешит на помощь

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

Для начала вы можете установить pandoc в Ubuntu с помощью этой команды:

sudo apt-get install pandoc

В Fedora вам понадобится следующая команда:

sudo dnf install pandoc

sudo dnf установить pandoc в окне терминала.

На Манджаро введите:

sudo pacman -Syu pandoc

sudo pacman -Сю pandoc в окне терминала.

Разделы мужской страницы

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

Как минимум, большинство страниц руководства содержат следующие разделы:

Имя: имя команды и краткое однострочное описание ее функции.
Сводка: краткое описание вызовов, которые кто-то может использовать для запуска программы. Они показывают типы допустимых параметров командной строки.
Описание: описание команды или функции.
Параметры: список параметров командной строки и их назначение.
Примеры: несколько примеров общего использования.
Значения выхода: возможные коды возврата и их значения.
Ошибки: список известных ошибок и причуд. Иногда это дополняется (или заменяется) ссылкой на систему отслеживания проблем для проекта.
Автор: человек или люди, написавшие команду.
Авторские права: Ваше сообщение об авторских правах. Они также обычно включают тип лицензии, под которой выпущена программа.

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

Вот некоторые другие разделы, которые вы будете видеть достаточно часто:

См. Также: другие команды, относящиеся к предмету, которые некоторые сочтут полезными или актуальными.
Файлы: список файлов, включенных в пакет.
Предостережения: другие моменты, на которые следует обратить внимание.
История: история изменений для команды.

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

Руководство по Linux состоит из всех страниц руководства, которые затем разбиты на пронумерованные разделы:

Исполняемые программы: или команды оболочки.
Системные вызовы: функции, предоставляемые ядром.
Вызовы библиотеки: функции в библиотеках программ.
Специальные файлы.
Форматы файлов и соглашения: например, «/ etc / passwd».
Игры.
Разное: пакеты макросов и соглашения, такие как groff.
Команды системного администрирования: обычно зарезервированы для root.
Процедуры ядра: обычно не устанавливаются по умолчанию.

Каждая страница руководства должна указывать, к какому разделу она принадлежит, и она также должна храниться в соответствующем месте для этого раздела, как мы увидим позже. Страницы руководства для команд и утилит относятся к первому разделу.

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

Макроформат groff непросто разобрать визуально. Напротив, уценка — это легкий ветерок.

Ниже приведена справочная страница в groff.

Начало страницы руководства в формате groff.

Эта же страница показана ниже в уценке.

Начало страницы руководства в формате уценки.

Передняя Материя

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

Первая строка: содержит имя команды, за которой следует раздел руководства в круглых скобках без пробелов. Имя становится левым и правым разделами заголовка страницы руководства. По соглашению, имя команды пишется в верхнем регистре, хотя вы найдете много таких, которые этого не делают. Все, что следует за именем команды и номером раздела руководства, становится левым разделом нижнего колонтитула. Это удобно использовать для номера версии программного обеспечения.
Вторая строка: имя (имена) автора (ов). Они отображаются в автоматически созданном разделе авторов на странице руководства. Вам не нужно добавлять раздел «Авторы» — просто укажите здесь хотя бы одно имя.
Третья строка: дата, которая также становится центральной частью нижнего колонтитула.

имя

Разделы обозначены строками, которые начинаются со знака числа (#), который является разметкой, указывающей заголовок в уценке. Знак числа (#) должен быть первым символом в строке, за которым следует пробел.

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

Синопсис

Синопсис содержит различные форматы, которые может принимать командная строка. Эта команда может принимать шаблон поиска или параметр командной строки. Две звездочки (**) по обе стороны от имени команды означают, что имя будет отображаться жирным шрифтом на странице руководства. Одиночная звездочка

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

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

Описание

Раздел описания страницы руководства в разметке.

Описание объясняет, что делает команда или программа. Он должен кратко освещать важные детали. Помните, вы не пишете руководство пользователя.

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

Опции

Раздел параметров на странице руководства в markdown.

Раздел параметров содержит описание любых параметров командной строки, которые можно использовать с командой. По соглашению они выделены жирным шрифтом, поэтому перед ними и после них стоит поставить две звездочки (**). Включите текстовое описание параметров в следующую строку и начните его с двоеточия (:), за которым следует пробел.

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

Примеры

Раздел примеров на странице руководства в markdown.

Раздел примеров содержит выбор различных форматов командной строки. Обратите внимание, что мы начинаем строки описания с двоеточия (:), как и в разделе параметров.

Выходные значения

Выйти из раздела значений на странице руководства в markdown.

В этом разделе перечислены возвращаемые значения, которые ваша команда отправляет обратно вызывающему процессу. Это может быть оболочка, если вы вызывали ее из командной строки, или сценарий, если вы запускали ее из сценария оболочки. В этом разделе мы тоже начинаем строки описания с двоеточия (:).

Ошибки

Раздел с ошибками на странице руководства в разметке.

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

Авторские права

Раздел авторских прав на странице руководства в markdown.

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

Эффективный рабочий процесс

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

pandoc ms.1.md -s -t man | /usr/bin/man -l -

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

pandoc ms.1.md -s -t человек | / usr / bin / man -l — в окне терминала.

После того, как вы использовали эту команду, вы можете нажать стрелку вверх, чтобы повторить ее, а затем нажать Enter.

Эта команда также вызывает pandoc в файле уценки (здесь он называется «ms.1.md»):
Параметр -s (автономный) создает полную страницу руководства сверху вниз, а не просто текст в формате man.

Параметр -t (тип вывода) с оператором «man» указывает pandoc генерировать вывод в формате man. Мы не сказали pandoc отправлять свой вывод в файл, поэтому он будет отправлен в stdout.

Мы также передаем этот вывод в man с параметром -l (локальный файл). Он говорит man не искать в базе данных man страницу руководства. Вместо этого он должен открыть указанный файл. Если имя файла -, man будет вводить данные со стандартного ввода.

Это сводится к тому, что вы можете сохранить в своем редакторе и нажать Q, чтобы закрыть man, если он запущен в окне терминала. Затем вы можете нажать стрелку вверх, а затем Enter, чтобы увидеть визуализированную версию вашей справочной страницы прямо внутри man.

Создание вашей мужской страницы

pandoc ms.1.md -s -t man -o ms.1

После того, как вы заполнили свою справочную страницу, вам нужно создать ее окончательную версию, а затем установить ее в своей системе.  Следующая команда указывает pandoc создать страницу руководства с именем «ms.1»:

pandoc ms.1.md -s -t man -o ms.1 в окне терминала.

Это соответствует соглашению о присвоении имени странице руководства после описываемой команды и добавлению номера раздела руководства, как если бы это было расширение файла.

manpath

Это создает файл «ms.1», который является нашей новой страницей руководства.  Куда мы его положим?  Эта команда сообщит нам, где man ищет страницы руководства:

manpath в окне терминала.

Результаты дают нам следующую информацию:
/ usr / share / man: расположение стандартной библиотеки страниц руководства. Мы не добавляем страницы в эту библиотеку.
/ usr / local / share / man: эта символическая ссылка указывает на «/ usr / local / man».

/ usr / local / man: Здесь нам нужно разместить нашу новую страницу руководства.

Обратите внимание, что различные разделы руководства содержатся в своих собственных каталогах: man1, man2, man3 и так далее. Если каталог для раздела не существует, нам нужно его создать.

sudo mkdir /usr/local/man/man1

Для этого мы набираем следующее:

sudo cp ms.1 /usr/local/man/man1

Затем мы копируем файл «ms.1» в правильный каталог: man ожидает, что страницы руководства будут сжаты, поэтому мы будем использовать gzipсжать это

sudo gzip /usr/local/man/man1/ms.1

:

sudo mandb

Чтобы заставить человека добавить новый файл в свою базу данных, введите следующее:

sudo mkdir / usr / local / man / man1 в окне терминала.

man ms

Это оно!  Теперь мы можем вызвать нашу новую страницу руководства так же, как и любую другую, набрав:

man ms в окне терминала.

Наша новая страница руководства найдена и отображается.

верхний раздел новой страницы руководства.

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

средний раздел новой страницы руководства.

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

Нижний раздел новой страницы руководства.

Мы также автоматически создали раздел «Авторы». Нижний колонтитул также включает номер версии программного обеспечения, дату и имя команды, как определено во вступительной части.

Если хотите . . .

После того, как pandoc создаст вашу справочную страницу, вы также можете напрямую отредактировать файл в формате макроса groff перед перемещением его в каталог справочной страницы и сжать его с помощью gzip.

Пока же Мефодий решил, что узнал о командной строке достаточно для того, чтобы воспользоваться главными командами Linux (по частоте их употребления при изучении системы) — man и info.

Работать с Linux, не заглядывая в документацию, практически невозможно. На это способны только седые аксакалы, у которых все нужные знания не то что в голове — в кончиках пальцев, и предубеждённые новички. Всем прочим настоятельно рекомендуется, приступая к работе, а тем более — к изучению Linux, пользоваться всеми доступными руководствами.

Все утилиты, все демоны Linux, все функции ядра и библиотек, структура большинства конфигурационных файлов, наконец, многие умозрительные, но важные понятия системы описаны либо в руководствах, либо в info-страницах, либо, на худой конец, в несистематизированной сопроводительной документации. Поэтому от пользователя системы не требуется заучивать все возможные варианты взаимодействия с ней. Достаточно понимать основные принципы её устройства и уметь находить справочную информацию. Эйнштейн говорил на этот счёт так: «Зачем запоминать то, что всегда можно посмотреть в справочнике?».

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

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

[methody@localhost methody]$ 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 cur-
     rent month is displayed.  The options are as follows:

Пример 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:

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

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

До этого поля Мефодий добрался с помощью уже известной команды «G». Не то, чтобы ему неинтересно было читать руководство по man, скорее наоборот: им двигала любознательность. В Поле SEE ALSO обнаружились ссылки на руководства по less, groff (программе форматирования страницы руководства), структуре конфигурационного файла для man, а также по двум сопутствующим командам с такими говорящими названиями, что Мефодий немедленно применяет одну команду к имени другой, не заглядывая даже в документацию.

«Apropos» по-французски означает «кстати», а «whatis» — по-английски — «чтотакое».

Так ни в коем случае не следует делать! А что если запущенная Вами программа начнёт с того, что сотрёт все файлы в Вашем каталоге?

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

 NAME
       apropos - search the whatis database for strings
 . . .

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

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

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

[methody@localhost methody]$ 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

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

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

george@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

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

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

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

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

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

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

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

Info

Другой источник информации о Linux и составляющих его программах — справочная подсистема info. Страница руководства, несмотря на обилие ссылок различного типа, остаётся «линейным» текстом, структурированным только логически. Документ info структурирован прежде всего топологически — это настоящий гипертекст, в котором множество небольших страниц объединены в дерево. В каждом разделе документа info всегда есть оглавление, из которого можно перейти сразу к нужному подразделу, откуда всегда можно вернуться обратно. Кроме того, info-документ можно читать и как непрерывный текст, поэтому в каждом подразделе есть ссылки на предыдущий и последующий подразделы.

[methody@localhost methody]$ info info
 File: info.info,  Node: Top,  Next: Getting Started,  Up: (dir)

 Info: An Introduction
 . . .
 * Menu:

 * Getting Started::             Getting started using an Info reader.
 * Expert Info::                 Info commands for experts.
 * Creating an Info File::       How to make your own Info file.
 * Index::                       An index of topics, commands, and variables.
 . . .
 --zz-Info: (info.info.bz2)Top, строк: 24 --All------------------------------
 Welcome to Info version 4.6. Type ? for help, m for menu item.

Пример 11. Просмотр info-документа

Программа info использует весь экран: на большей его части она показывает текст документа, а первая и две последних строки отведены для ориентации в его структуре.

Одна или несколько страниц, которые можно перелистывать клавишей Пробел или Page Up/Page Down — это узел (node). Узел содержит обычный текст и меню (menu) — список ссылок на другие узлы, лежащие в дереве на более низком уровне. Ссылки внутри документа имеют вид «* имя_узла::» и перемещать по ним курсор можно клавишей Tab, а переходить к просмотру выбранного узла — клавишей Enter. Вернуться к предыдущему просмотренному узлу можно клавишей «l» (oт «Last»). И, главное, выйти из программы info можно, нажав «q» (Quit). Более подробную справку об управлении программой info можно в любой момент получить у самой info, нажав «?».

Узлы, составляющие документ info, можно просматривать и подряд, один за другим (с помощью команд «n», Next, и «p», Previous), однако это бывает нужно нечасто. В верхней строке экрана info показывает имя текущего узла, имя следующего узла и имя родительского (или верхнего) узла, в котором находится ссылка на текущий. Показанные Мефодию имя узла Top и имя верхнего узла (dir) означают, что просматривается корневой узел документа, выше которого — только каталог со списком всех info-деревьев. В нижней части экрана расположена строка с информацией о текущем узле, а за ней — строка для ввода длинных команд (например, для поиска текста с помощью команды «/»).

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

[methody@localhost methody]$ info info "Getting Started" Help-Q
 File: info.info,  Node: Help-Q,  Prev: Help-Int,  Up: Getting Started

 Quitting Info
 . . .

Пример 12. Просмотр определённого узла info-документа

Сам ли Мефодий это придумал, или подсказал кто, но совершенно правильно было заключить в кавычки имя узла «Getting Started» — в этом случае info искала узел по «адресу» «info -> Getting Started -> Help-Q». Если бы команда имела вид info info Getting Started Help-Q, то «адрес» получился бы неправильный: «info -> Getting -> Started -> Help-Q». Ничего таинственного в этом нет, и уже к концу лекции станет понятно, в чём здесь дело (Слова и разделители).

RTFM

Оказывается, использование кавычек Мефодий придумал не сам: спросил у товарища, опытного пользователя Linux по фамилии Гуревич. Гуревич охотно показал, где ставить кавычки, а вот объяснять, что они делают, отказался, и заявил: «Там отличное руководство! Читай!». Документация в Linux играет важнейшую роль. Решение любой задачи должно начинаться с изучения руководств. Не стоит жалеть на это времени. Даже если рядом есть опытный пользователь Linux, который, возможно, знает ответ, не стоит беспокоить его сразу же. Вполне возможно, что, даже зная, что нужно сделать, он не помнит как именно — и поэтому (а также потому, что он — опытный пользователь) начнёт с изучения руководства. Это — закон, у которого есть даже собственное название: RTFM, что означает «Read That Fine Manual»

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

Слова Гуревича — практически дословный перевод этой фразы, так что её смысл и происхождение очевидны. Linux рассчитан в основном на тех, кто хочет знать, как им пользоваться.

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

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

Система info может содержать больше, чем man, поэтому в неё часто включают и учебники (принято называть учебник термином «tutorial»), и т. н. «howto» (примеры постановки и решения типовых задач), и даже статьи по теме. Таким образом info-документ может стать, в отличие от страницы руководства, полным сводом сведений. Разработка такого документа — дело трудоёмкое, поэтому далеко не все объекты системы им сопровождаются. Кроме того, и прочесть большой info-документ целиком зачастую невозможно. Поэтому имеет смысл начинать именно и руководства, а если его недостаточно — изучать info.

Если некоторый объект системы не имеет документации ни в формате man, ни в формате info, это нехорошо. В этом случае можно надеяться, что при нём есть сопроводительная документация, не имеющая, увы, ни стандартного формата, ни тем более — ссылок на руководства по другим объектам системы. Такая документация (равно как и примеры использования объекта), обычно помещается в каталог /usr/share/doc/имя_объекта.

Документация в подавляющем большинстве случаев пишется на простом английском языке. Если английский — не родной язык для автора документации, она будет только проще. Традиция писать по-английски идёт от немалого вклада США в развитие компьютерной науки вообще и Linux в частности. Кроме того, английский становится языком международного общения во всех областях, не только в компьютерной. Необходимость писать на языке, который будет более или менее понятен большинству пользователей, объясняется постоянным развитием Linux. Дело не в том, что страницу руководства нельзя перевести, а в том, что её придётся переводить всякий раз, когда изменится описываемый ею объект! Например, выход новой версии программного продукта сопровождается изменением его возможностей и особенностей работы, а следовательно, и новой версией документации. Тогда перевод этой документации превращается в «moving target», сизифов труд.


Copyright 1995-2000 by Jens Schweikhardt, email: <schweikh@noc.dfn.de>

�������: ���������
��������, SWSoft Pte Ltd.

http://www.schweikhardt.net/

���������� ������������ ������� ����������� �����
����.

��������� ����������: ���� 2000. �������� �����, ����� ����������� ���������
������ ����� ���������. ����������� � ����������� ��������������!

���� HOWTO ���������� ���, ��� �� ������ ����� � ����, ���� �� ����������� ���������
�������� ����������� (man pages), ������� �� ������ ������� ���������� �� �������
man. � ���� HOWTO, ����� «�����������» ���������� � ��������
������� �����������.

����������

  • 0) ��������� ����� �� ������
    ������������
  • 1) ��� ���� ��� �����������, � ���
    ��� ����������?
  • 2) ��� ������ ��������� ����������������� �����������?
  • 3) ��� ����������������� ��������� ��������/������� �� �����
    �������� �����������?
  • 4) ����� ���������� ������������?
  • 5) ����� ������������� � ���� ������������?
  • 6) ��� � ������ �������������� ������� �����������?
  • 7) ����� ���������� ���������� �� �������?
  • 8) ��� ������� �����������
    �����������?
  • 9) ��� �������� ������� ��������� �����������, ��� ������ ���������?
  • 10) ��� �������� ����������� � ������� PostScript?
  • 11) ��� ��������� �������� ‘apropos’ � ‘whatis’?
  • A) Copying conditions

0) ��������� ����� �� ������
������������

������ �� ����� ������������? ������ ������.
�� �����, ����� ������
���� �������, ��� ������������ ���� ���������, ������������ ������� ��� ���-��
���, ���������� ��� ���������. �� ��������� ������������ — ��� ��� �� ���. ����������,
�����:

  • ������������ ���� ��������. ���� ��� ������ �
    �����-�� �������������
    �����, �� ����������� ��������� �� ������ ����� �� — ����� ������� ����� ��
    ������������?
  • ������������ ���� ������ � ����������. ��� ������ ����� �������������,
    ��� ����������������� ������������ � ���������. ���� ��� �����
    ����� �����, �� ������������
    ��������� ���, ����� ����� ������� ������ � �������� ���� ��������� �
    ������������, � ������� ���������� ������� �� ������������� ���-����,
    ���������� ����.

����������� �������� � ���� ��������, ��� ������������ �������� �� ������� man(1).
���� HOWTO ����������, ��� ��� �������� �����������, ������� �����
��������� ��������������
��������� ��� ��������� ������������. �������� ��������� �� ���� ������ — man(1),
xman(1x), apropos(1), makewhatis(8) � catman(8). �������� � ������������ ����������
�������, �������, ������ �� ���. �� ���� � ���� ��������� �� ������� ���������
����, ������� ������� �������� ��������� ����� ������.

1) ��� ���� ���
�����������, � ��� ��� ����������?

��� ���������� ����� ������ ��������, ��� ���� ���������� ���
�����������
� ��� ��� ��������� ����������. ����� ����������� ������
����������
� ������������ �������, ������� ������������ ������������ ��������. ����� �������
��� Linux � �� ��������:

������  ��������
   1    ���������������� �������, � ������� ����� ������ �������.
   2    ��������� ������, �.�. ������� ������������� � �����.
   3    ���������, �.�. ������������ �������.
   4    ����������, �.�. ����������� ����� � �������� /dev.
   5    �������� �������� ������, ����. /etc/passwd.
   6    ����.
   7    ������, ����., ����� ������, ����������.
   8    ������� ��� ���������� �����������������, ������� ����� ���� �������� ������ ��� root.
   9    ������ (����������� ��� Linux) ����� ��� ���������� ������������ �� ����.
   n    ����� ������������, ������� ����� ���� ���������� � ��������������� ������.
   o    ������ ������������, ������� ����� ����� �������� ������������ �����.
   l    ��������� ������������, ���������� ������ ���� �������.

��� ��������� ����� ����������� ������� ��
����� �������, ������� ��� �����,
������ �������� ����� � ��� �������. ���� �� ������ ������������ �� ������� �����
‘passwd’, �� ������ ���� ��� ��������� ����� — ‘passwd.5’. �����
������
����� �����, ��������� � ��������� �������. ����������, ��� ����� ������������
����������� ������� ‘passwd’. ��������������� — ������� ������ ���������
������������: �������� ������� ����� ������� � ����� ‘passwd.1’, � ��������
���������� ���������� — � ����� ‘passwd.3’.

    ������ � ����� ����� ����� ����������� �������������� �������,
    � ��� ����� ��������, ��������, ���: ‘xterm.1x’ ��� ��� ‘wish.1tk’.
    ��� ��������� ������� ��� ����, ����� ��������, ��� ��� ������������ ��� ��������
    X Window program ��� ��� ���������� Tk, ��������������. ��������� ���������
    ��� ��������� ������� ����������� ����� ������������ ��� �������������� ����������.
    ��������, xman ����� ������������ ‘xterm(x)’ � ‘wish(tk)’ � ������ ���������
    ������������.

����������, �� ����������� ������� n, o � l; �������� ��������� �������� �������
��� ������� �� ����������. ����������� ������ ��������. ������������� ����������
���� � ������������� �����������, ��������� ��� ������� ������. ��� �������
������ ���� — �������� �������� � ������� ��� ed, sed («�����» ed)
��� red (Rocky ed). ��������������, ��� ��� ����� ��������� ���������, ��� �����
�� �������� ����, ��� ���-�� ���������
�������� ���� ��������� ��� ��������� ��
�� �����������. ��������� ���� ������ lsm �������� ����� ���, ���
������� ���� ��������.

������ �� ����� ��� ������ �����. ��������� — �� ������ ������, � �����
������� ���������� ��������� (������, ����� ������������ �������� �������
‘make install’ ��� ������ ������) �� Linux, ��� ����������� ���������������
� ��������, ���������� � ���������� MANPATH. ������� ��� ������ � ��������������
���������� ��, ��� shell ���������� PATH ��� ���������� ��������. ����������t,
MANPATH ����� ��� �� ������, ��� � PATH. ��� ���������� �������� ������ ���������,
����������� ����������, «:» (� ��� �����������, ��� MANPATH �� ��������
������ ����� � ������������� �����, � ����� ������ ���������� ����). ���� MANPATH
�� ����������� ��� �� ��������������, �� ��������� ����� �������������� ����������
�������� /usr/man. ��� ��������� ������ �
���������, ������������ � MANPATH (����������
��������� ����������) �������� ������ ������������,
��������� ‘man<s>’,
��� <s> — �������� ������ (������ ���� � �������). �� ��� ������� �����
���� ������������ ���������, ������ ��� ��� ������� ������ ������� ������ �������
‘mano’. ������ ����� ���� ��������, �������� ‘cat<s>’, ‘dvi<s>’ �
‘ps<s>’, ������� �������� ������������, ������� ��� ������ ��� ������
�� �����. �� ���� �����. ������������ ����, ������� ������ ���� � �������� —
���� ���������� ‘whatis’. ���� � �������� ����� ����� ����� ������� � ���������
11). ����� ���������� ������ ����� �������� ����������� ��� ������� <s>
— ��������� �� � ���������� ����� — � �������� /usr/man/man<s>. �������
Makefile, ������, �������� ������������ ������� �������� �������, � �����������
�� �������� ���������� MANDIR. ����������� ������� ����� ���� ��������� � ������
—prefix=/what/ever. �������� ����������� ����� ��������������� � ��������
������� /what/ever/man. ������������ ����������
����������� ��������� ������.

� ���������� Linux
File System Standard (FS-Stnd), ���� ����� ����� ��������. FS-Stnd 1.2 �������,
���:

    «��� ��������� ������� �����������,
    ���������� �� ������ ������, ��������������� ������� ������ ���� ������� � ����� ���������
    /usr/man.»

��� ���������� ��������� ����, ��� ���� ������� ������ ���������, ��� ��������� ������. ������
�� FS-Stnd 1.2:

    «�������� ��������� ��� ��������� ������ � /usr/man �������� �� ����������
    E (POSIX 1003.1), �� ��������� �������� ����������� ������ ������������� ���
    ������. ������ <locale>: <language>[_<territory>][.<character-set>][,<version>]»

(�������� FS-Stnd ��� ��������� ����� ����� <locale>.) �������� ����
���������, ���� �������� �����������
������� � ��������� /usr/man/<locale>/man[1-9lno].
��������������� ������ ������ ���� � /usr/man/<locale>/cat[1-9lno], �����
�� ������� ���������� �� ������ ��� ������������� �����. ������, � �� ����������
����� ������ ��������� ���� ���������. FS-Stnd 1.2 ����� ��������� ���

    «�������, ������� ���������� ���������� ���� ��� ������� �������� ���
    ���� ���������� ����� ���������� ��������� <locale> � ������� ��� �����������
    � �������� <mandir>. ��������, �������, � ������� ������������ ������
    ���������� �������� ����������� � ASCII ����, ����� ������� �������� �����������
    (�������� man[1-9]) ����� � /usr/man. (���������� ��� ������������ ��������������.)»

� �� �����, ��� ��� ������� (���� xman, tkman, info � ������ ������, �������
������ �����������) ����� ����������� � ����� ����������.

2) ��� ������ ��������� �����������������
�����������?

��������� ��� �������� ��� ������. ���� � ������� ��� ���������. ����
�� �������
���� ��������, ��� ������� ����� ��� �� ����� �������� ��������� ������ (������
���������). ����������, ���������� � ��������� «�����
���������� ���������� �� �������?» ��� ���������� ����������. �����
��������� ����������� �� �������������� ��������� foo.

FOO(1)                     User Manuals                    FOO(1)



NAME
     foo - frobnicate the bar library

SYNOPSIS
     foo [-bar] [-c config-file ] file ...

DESCRIPTION
     foo  frobnicates the bar library by tweaking internal symbol
     tables. By default it parses all baz segments and rearranges
     them  in  reverse  order  by time for the xyzzy(1) linker to
     find them. The symdef entry is then compressed using the WBG
     (Whiz-Bang-Gizmo) algorithm.  All files are processed in the
     order specified.

OPTIONS
     -b   Do not write 'busy' to stdout while processing.

     -c config-file
          Use the alternate system wide  config-file  instead  of
          /etc/foo.conf.   This overrides any FOOCONF environment
          variable.

     -a   In addition to the baz segments, also parse the  blurfl
          headers.

     -r   Recursive  mode.  Operates  as fast as lightning at the
          expense of a megabyte of virtual memory.

FILES
     /etc/foo.conf
          The system wide configuration file. See foo(5) for fur-
          ther details.
     ~/.foorc
          Per  user  configuration  file.  See foo(5) for further
          details.

ENVIRONMENT
     FOOCONF
          If non-null the full pathname for an  alternate  system
          wide foo.conf.  Overridden by the -c option.

DIAGNOSTICS
     The following diagnostics may be issued on stderr:

     Bad magic number.
          The input file does not look like an archive file.
     Old style baz segments.
          foo  can  only  handle  new  style  baz segments. COBOL
          object libraries are not supported in this version.

BUGS
     The command name should have been chosen more  carefully  to
     reflect its purpose.

AUTHOR
     Jens Schweikhardt <schweikh@noc.dfn.de>

SEE ALSO
     bar(1), foo(5), xyzzy(1)

Linux                Last change: MARCH 1995                    2



����� ������ ����������, ��� � � ������.

������ NAME (��������)

…�������� ������������ ������������ �����. ����������� ��� ������� name �����
����������, ��� ����������� �� �������� ������. ���� ������
����� �������������������
������, �������������� ����� ������ �������� ��� �������,
����������� ��������
� ����� ���� ���� �������� �������� ������������ ��������� ��� �������. �����������
makewhatis(8) ���������� ������� name ������� � ���� ���� ������ whatis. Makewhatis
�������� ��������, ������ ������ ������������ ������ name � ������ �� ������
�������������� ���������� �������. � �������� ������ �� ������ ���������

.SH NAME foo — frobnicate the bar library

— ����� ����� ��������. �������� ����� ����� �����, ����� ��������, ��� ���
������� �� ������, ������� ����� ���������� � �������� ������� ��� � ������
��������.

������ SYNOPSIS (���������)

…������������, ����� ���� ������� ����� ��������� ����� ���������. ��� �������
�� ����� �� ����� ��� ������: ������������ ����� � ��������� �������, �.�. �����������
����� ����� � ���� ����������, � ����� ��� ������������� ��������.

������ DESCRIPTION (��������)

…���� ��������� ���������� ������������ ��������� ��� �������. ����� �� ������������
��� ���� ������. ��������� ��� ���� ������, ��� ����, ����� �������� ����������
������, ������ ���� ������ �������� � ��������� ���������� ����������. ���������:
����� ������������ ���������, ������ �����, ��������� � �.�.

������ OPTIONS (�����)

…�������� �������� ��� ���� �����, ������� ������ �� ������ ���������. ��
����� ��, �� ��� ��?

������ FILES (�����)

…������ ������������ �������� � �������. ��������, ����� ���������, ���������������
�����, ����� � �������� ��������������� �������� ���������. ����� ������������
������ ���� � ���� ������ � ��������� make �������� ����, ���� ������������
���������� ������ �������������� ��� ���������: ��� groff �� ��������� ��������
������� — /usr/local, �.�., ��� ��������� �� /usr/local/lib/groff/*. ������,
���� �� ���������� ‘make prefix=/opt/gnu’, ����� ������ � ����������� ���������
�� /opt/gnu/lib/groff/*

������ ENVIRONMENT (�����)

…������ ���� ���������� ���������, ������� ������ �� ���� ��������� ��� �������.
������ ���������� �������� ����, ����� ������ ��� ����� �� ���������.

������ DIAGNOSTICS (�����������)

…������ ���� �������� ����������� ���������� ����� ���������� ��������� ��
������� � ������� �� �����������. ��� ������� ������������� ��������� ��������� �
��������� ������� (�� perror(3)) ��� ��������� ������ (�� psignal(3)), ���������
��� ����� ���������� ��� ������ ����� ��������.

������ BUGS (������)

…� ������ ��� �� ������ ����. ���� � ��� ������ ��������, �� ������ �������
����� �����������, ��������� ���������� � ������ � ����������, �����������,
������� ������ ����� ����������� �� ��� ������. ���� �� �� ��� �����, ����� ������������
�� � ������ TO DO ;-)

������ AUTHOR (�����)

…����� � ��� ������, ����� �� ������ �������� ��������� �� ������� � ������������
��� � ���������.

������ SEE ALSO (��. �����)

…������ (� ���������� �������) ����������, ������� ����� ���� ������� � �����
������������. ����������� — ��� ��������� ������.

�� ������ �������� ���� �������, ���� ��� ������������� �� ������������� ������
�� ��������� ��������. ��� ��� �� ����� �������� �����������? � ������ ����
������, ����� �� ������ ���������� ��������:

." Process this file with
." groff -man -Tascii foo.1
."
.TH FOO 1 "MARCH 1995" Linux "User Manuals"
.SH NAME
foo - frobnicate the bar library
.SH SYNOPSIS
.B foo [-bar] [-c
.I config-file
.B ]
.I file
.B ...
.SH DESCRIPTION
.B foo
frobnicates the bar library by tweaking internal
symbol tables. By default it parses all baz segments
and rearranges them in reverse order by time for the
.BR xyzzy (1)
linker to find them. The symdef entry is then compressed
using the WBG (Whiz-Bang-Gizmo) algorithm.
All files are processed in the order specified.
.SH OPTIONS
.IP -b
Do not write 'busy' to stdout while processing.
.IP "-c config-file"
Use the alternate system wide
.I config-file
instead of
.IR /etc/foo.conf .
This overrides any
.B FOOCONF
environment variable.
.IP -a
In addition to the baz segments, also parse the
blurfl headers.
.IP -r
Recursive mode. Operates as fast as lightning
at the expense of a megabyte of virtual memory.
.SH FILES
.I /etc/foo.conf
.RS
The system wide configuration file. See
.BR foo (5)
for further details.
.RE
.I ~/.foorc
.RS
Per user configuration file. See
.BR foo (5)
for further details.
.SH ENVIRONMENT
.IP FOOCONF
If non-null the full pathname for an alternate system wide
.IR foo.conf .
Overridden by the
.B -c
option.
.SH DIAGNOSTICS
The following diagnostics may be issued on stderr:

Bad magic number.
.RS
The input file does not look like an archive file.
.RE
Old style baz segments.
.RS
.B foo
can only handle new style baz segments. COBOL
object libraries are not supported in this version.
.SH BUGS
The command name should have been chosen more carefully
to reflect its purpose.
.SH AUTHOR
Jens Schweikhardt <schweikh@noc.dfn.de>
.SH "SEE ALSO"
.BR bar (1),
.BR foo (5),
.BR xyzzy (1)

3) ��� ����������������� ��������� ��������/�������
�� ����� �������� �����������?

������ ��������� (grep, egrep) � ������� (printf, fprintf, …) �����������
� ����� �����������. ������, ��� �������� ���� �� ����� ����������, ���� ���
���� �������� ������ ��� ����� ���������. �� �� ������ �������, ��� ������������
������, ��� ����������� �� egrep — ��� ���������� ����������� �� grep. �������
���������� ����� ����������� ��������� ��� ���������� �������. ���� ���������
�������� ������� �����:

  1. ����� ���������� ����� ��� ������� �����.
  2. ������� ��� ����������� �������� ��������.
  3. ������������ ���������� ������ �� ����������� �����������.
  4. ������������ �������� groff ������������ �������� ‘.so’.

������ ������ — ����� ��������� ������������. ������ ������ �� �������������,
������ ��� ���������������� ������ ��������� catman ����� ��������� ������ �
����������� �� ���� � ���������� �����. ������� ������ ������������ ���������
catman. (���� catman ������� � ���, ����� ��������������� ��� ����������� ���,
����� ��� ��� ����� ������� ������������ �� ������.) ������ ������������ �����
��������� ����������: �� ������ �����, ��� ���������� �������� �������, �������
�� ����������� ���������� ������. � ���������� ����� — ������ ���� (TM) — ������������
�������� groff. ����� ����� � ���, ��� ��� �������: ���� �� ������
������
�������� ����������� ���������� ��� ������� ‘foo’ � ‘bar’ � ������� 1, ����� ���������
����������� � ���� foo.1 � �������� ���� bar.1 ������ ����:

.so man1/foo.1

����� ���������� ����������� ����� ‘man1/’ �����, ��� ��� ����� ‘foo.1’,
������ ���
����� groff ����� ������� ���������, �� ����� ����� ������� ��������� �������
������� ������� (���), � groff �������������� ��������� ������������ ���.

4) ����� ���������� ������������?

���������� ��������� ������������, ���������� ��������������� ��� �������������
��� ��������� ����������. ������ ��� ��������� � �������� �������� groff /usr/lib/groff/tmac.
����� ������ tmac.<���-���>, ��� <���-���> — �������� �����
-m ��� groff. Groff ����� ������������ tmac.<���-���>, �����
�� �������� � ������ ‘-m <���-���>’. ����� ������ ����� ‘-m’
� ‘<something>’ ����������, � ����� ����� ���������� ‘groff -man’,
����� �� ����������� �����������, ��������� ������ tmac.an. �� ����
������� ���� �������� �������� ‘tmac.an’. ����� ����, ������� ������ ����������
������ — tmac.doc, ������� ������ � �������������� ������������ ������
(UCB). ����������� ���������� BSD ���������� ���, � ��, �������, ������ (� UCB)
����������� ��� ������������. ������ tmac.doc ����� �����, ��, ���,
�������� ��� ���������� �� ���������� ��� � ������ �������� groff -man.
��������, ��� ��������� xman, � �����, ������� tmac.doc. �.�.,
��� ����� ������: ����������� tmac.an — ������������� ������ �������
����������� ������������. tmac.andoc — ������������, �������
������������� �������� � ����� ��������� ���� tmac.an, ���� tmac.doc.
����������, ����� ������� ���������� ������ ��� ������������, �� �� ��� ��� ��
��� ��� ������, �.�., ����� ������������ ������ tmac.an. ����, ��� ���
�����, �� ������ ������������ ������ tmac.doc, ����� ������� �����
��������� ��������, �����������, ��� �� ������������: http://www.bsdi.com/bsdi-man.
�� �������� ������� ����� ��� ������. ������� mdoc.samples, � ��� �����
������ mdoc.samples(7) — ��������� ������ �� ��������� ������� �����������
��� BSD.

�������� ��� troff (Troff User’s Manual), �� ����� ������������ ���������,
�������� � html, PostScript
(ps, 760K) ��� � Portable
Document Format (pdf, 240K). AT&T Bell Labs ������� ��� �������������. ��
�������� ��������� �������� �������� W.
Richard Steven (��������� �� ����� Unix Network Programming, � �����
�� �������� TCP/IP Illustrated), ������� ����� ����� ������ �������� ��
Troff Resources, ����������
tbl, eqn, pic � ��.

5) ����� ������������� � ���� ������������?

Groff ����, � �������, ����� ��������������� — tbl, eqn, � pic (�� ���������
�������� ��� ���������� — gtbl, geqn � gpic). �� ���� — ������������� ������������
������������� � ������ ��� troff. Tbl — ��������� ������������, eqn — ������������
��� ��������� � pic — ������������ �����������. ����������, ���������� � �����������,
�� ����� ��������� ����������� � ��������� ������������, ������� ��� ������������.
����� ����������� ����: �� ������ �����������, ��������� ����� �������������.
Eqn ����� ������ ������ ������� ����� ��� ��������� ���������, � ���������,
� 99% ������� ����������� ��������������� �� ����� �����������. ��������, XAllocColor.3x
���������� ��������� ������ � ������������. ��-�� ��������� ����� ���������,
���������� ����� �� ��� �� ����� ������, ��� � ���������. N � �������� — ‘N2’.
Tbl ���������� ��������, ��������� ��� ��������� xman, ������� � �����, ������
� ���. Xman 3.1.6 ���������� ��������� ������� ��� �������������� ����������,
����. signal(7):

gtbl /usr/man/man7/signal.7 | geqn | gtbl | groff -Tascii -man /tmp/xmana01760
2> /dev/null

������� ������������� ��������, ��������� gtbl, gtbl ������� ����� � gtbl.
� ���������� ���������� ����������� ��� ����� �������. � �� ���� — ��� ������
��� �����������, ��� gtbl ��������� ���� ����������� ����� ��� ���� �� xman ���
�� «�����», �� �� ����������� �� gtbl ������… ��� ��� �����, ����
�� ������ ����� �������, ������������ �� ��������������� � ������ � ���������
����� �������� .nf � .fi, ����� � ��� �� ����������� ��������������. � ��� ��
����� ������� ������ ��� ������� ��� ������������� ����� �������, �� �� ��������
��� �������� �������. � ������ ���-���� ������� �����������, ������������ ������������
pic. �� � �� ����� �� �����.

6) ��� � ������ �������������� ������� �����������?

��������� ��� ������� ������ �� (+) � ������ (-) �� ���������� ���������� ������������:

  1. ������ ��������:
    + ��������� �������������� �����.
    — ���������� �� �������� ��� groff.
  2. �������� � ���������������:
    + �������� ���� �� �������� ��� groff.
    — ������������ �� ����� ������������� ����� dvi ��� postscript.
    — ����� ��������� ������������.
  3. ������ � ���������������:
    + �������� ���� �� �������� ��� groff.
    — ������������ �� ����� ������������� ����� dvi ��� postscript.
    — ������� ������ ������ �� �� ������������? .Z? .z? .gz? ��� �� ���?
  4. �������� � �������� � ���������������:
    + �������� ���� �� �������� ��� groff.
    — ������� �������������� �����.
    — ��������� ������� ������� ������ ����������������� �����������.
    — ���������� ���������� ��� ������ � groff.

IMHO ����� ����� �������������� ������ ��������. ��������, ��� �� �� �����
�������� �� �������� ��� groff, �� ����� ��������. ����� 500 ���������� Linux
Documentation Project � ���� �������� �������. ����������� ��� XFree86 ����������
� ���� �������� �������. ����������� �� FSF ���� ������ � ���� ���������. ����������,
� ����� ����� ������������, ���������������� � ������������������ ����������
�����������. ���� �����-�� �������� ������������� � �����������, �� �� ��� ���������
groff.

7) ����� ���������� ���������� �� �������?

������ �����: �� ����������� �������� ��������� ���� fB fP � �.�. �����������
�������, ������� ��������� ���������. ����� �������� �� �������� �������� ����:
������ ������� ���� ������ � ����� ����� � ��� ������� ������ ������� ����������
�� ������������� �� ��������� ����� ������. �������� ���, ��� ��������� ����,
��� ������ ������. ������ tmac.an ������������ ��������� ���� �������:

    .B ������

    .BI ������ ���������� � ���������

    .BR ������ ���������� � Roman

    .I ���������

    .IB ��������� ���������� �������

    .IR ��������� ���������� � Roman

    .RB Roman ���������� � ������

    .RI Roman ���������� � ���������

    .SM ����� (9/10 �� ����������� �������)

    .SB ����� ���������� � ������

X ���������� � Y, � ���� ������, �������� ��������� ������� ������� X, � ������
— ������� Y. ��������:

    .BI «Arg 1 — ������, » «Arg 2 — ���������, » «� ������,
    » «� ���������.»

������� ������� ����������, ����� �������� ������� � ���������; ��� ��� ��
����� �������� ����� ������������� ��������. ����������, ��� ����� ����� ������
������� ��� ������������ ������� ��� ����, ����� ��� ����� ������ �� ���� �������������
������������. ���� ������� ��, ��� ������������ ��������� ������: (����� �����
�� man(7))

���� ������� ��������� ������ ���������� ��� ���������� � ���� UNIX, ����������
����� ���������� ��� Linux ������������ ���� ���������: ��� �������, ���������
������ �������� ��������� �������, ���� � ������� SYNOPSIS, ��� ��������� �����
������� ��������� ������ �������:

    .BI «myfunction(int » argc «, char **» argv );

����� ������ ������ ��������� ��������� �������, �������� ������ SYNOPSIS,
��� ��� ��� ������������ ������ �����. �.�., �� ������ ������������:

    .I /usr/include/stdio.h

    .B #include <stdio.h>

����������� �������, ������� ������ ������������ � ������� ��������, ���������
������ �������:

    .B MAXINT

� ������ ����� ������: ���� ��������� ������ �������. ���� ������ ������ ����������
.TP (��������):

    .TP
    .B EBADF
    .I fd is not a valid file descriptor.
    .TP
    .B EINVAL
    .I fd is unsuitable for reading

����� ������ �� ������ ����������� (��� �� ������ ���� � ������ �����������)
��������� ������ �������. ���� ������ ����� �������, �� �� ��������� �������
roman:

    .BR man (7)

�������� ��������� ����� �����, ����� ������� ������ �������. �.�., � ����������:

    .SM UNIX

    .SM ASCII

    .SM TAB

    .SM NFS

    .SM LALR(1)

8) ��� ��� ������� ����������� �����������?

���� ���� ��������� �������, ������� ������������ ����������, ���������������
� «���������������» ����� ������������.

  • �������� �������� ����������.
  • ������������� ���� �����������: ������ �� groff ������, ����� �����������
    ���� �����������? ���������� ����� ������� groff � �����������. ������ �� �������
    man(1) ������, ����� �� ��������� ‘man ����_���������’? ��������� �� ��������
    ����������������� ��������? �������� �� xman(1x) � tkman(1tk) � ����� ������������?
    XFree86 3.1 ����� xman 3.1.6 — X11R6, �� ����� ��������� ������������ ��������
    �����������
    gzip -c -d < %s > %s
    zcat < %s > %s
  • �������� �� makewhatis(8) ��������� �������� �� ������� NAME?

9) ��� �������� ������� ��������� �����������,
��� ������ ���������?

��������� �� col(1), col �������� ��������������� ������������
������������������. ���������:

funnyprompt$ groff -t -e -mandoc -Tascii manpage.1 | col -bx > manpage.txt

����� -t � -e �������� groff �� ������������� �������������� tbl � eqn. � ����
������ ����� ������� ������������� ����� ��� �������, ������� �� ��������� �����
���������. � ������ �������, ����� �� ������������� -t, ����� ��� ���������,
������: ������� ����� ����������� ���������������. �� ������ ���� ��������, �����
������� ���������� ��� �������������� ��������:

funnyprompt$ grog /usr/man/man7/signal.7 groff -t -man /usr/man/man7/signal.7

«Grog» �������� «GROff Guess», � ������ ��, ��� �������
guess. � ���� ������ � ������� ��������� ������ �� perl, ������� ������� �������
� ������ �����������. ��������� ��� ��� ������ strip-headers � ��������� chmod
755.

    #!/usr/bin/perl -wn
    #  ��������� ����� �����:
    undef $/;
    #  �������� �������� �����������:
    s/^n*.*n+//;
    #  �������� ������� �����������:
    s/n+.*n+$/n/g;
    #  �������� �������� �������:
    s/nn+[^ t].*nn+(S+).*1nn+/n/g;
    #  ������������ ���� � ����� ������ ����� � ����:
    s/n{3,}/nn/g;
    #  �������� ��� ��������...
    print;

����������� ������ � �������� ������� ������� ����� ������� ‘man’, ���������
�� ������������ ��, ��� ��������� ����� groff. ��������:

funnyprompt$ man bash | strip-headers | col -bx > bash.txt

10) ��� �������� ����������� � ������� PostScript?

funnyprompt$ groff -t -e -mandoc -Tps manpage.1 > manpage.ps

����������� ��� ����������� ��� �����������, ��������� ��� ������� �������/�����������
PostScript. ��. ������ 9) ��� ��������� �����.

11) ��� ��������� �������� ‘apropos’ � ‘whatis’?

�����������, ��� �� �������� �������� — ����� ����������� ����������� �� �����
�������, � ��� ��� ����� ���� �������. ����� �������� �� ������ ������, ���������
�������:

funnyprompt$ apropos compiler
f77 (1) — Fortran 77 compiler
gcc (1) — GNU C and C++ compiler
pc (1) — Pascal compiler

Apropos � whatis ������������, ����� ���� ������� �����, �� ������� �������
���������� � ������������. ��� ��������� ���������� �����, ���������� ‘whatis’,
������� ����� ���������� � ����� �������� �������� ����������. ������ � �������,
����� whatis �������� ������ � ������ �� ������� ���������� ������ ��� �����
�������� ����������� �� ���������������� ��������. ����������, ��� ������ �������
�� ������� NAME (���� ������: ��� ������ ������� ��������� � ���� ������, �����
�������� ����������� ������� � ������� ������� ����� ����� �����������). �����
whatis ������� � ������� ��������� makewhatis(8). ������� ������ ������ ���������,
������� ���������� ����������� ��� ��������� ��������� ����� ���� ���������.
��� makewhatis, ���������� ��������� ���������� �� ������� NAME, �����, �����
�� ��������� ���������� ���������� � ���� ������, ������ ������������� �������
����� �������, ���������� � ������� 2). ���������� ��������
����� apropos � whatis. Apropos (������������ man -k) ���������� �������
������� � ����� ����� ������, � whatis (man -f) ���� ������ ����� �����.
�������������, ‘whatis cc’ ������� ���� �� ����������� �� cc � ������
�� ������ � gcc.

����������� � ����������� ��������������!

A) Copying conditions

Copyright 1995-2000 by Jens Schweikhardt <schweikh@noc.dfn.de>

Voice: ++49 7151 909516

Unless otherwise stated, Linux HOWTO documents are copyrighted by their
respective authors. Linux HOWTO documents may be reproduced and distributed
in whole or in part, in any medium physical or electronic, as long as this
copyright notice is retained on all copies. Commercial redistribution is
allowed and encouraged; however, the author would like to be notified of
any such distributions. All translations, derivative works, or aggregate
works incorporating any Linux HOWTO documents must be covered under this
copyright notice. That is, you may not produce a derivative work from a
HOWTO and impose additional restrictions on its distribution. Exceptions
to these rules may be granted under certain conditions; please contact
the Linux HOWTO coordinator at the address given below. In short, we wish
to promote dissemination of this information through as many channels as
possible. However, we do wish to retain copyright on the HOWTO documents,
and would like to be notified of any plans to redistribute the HOWTOs.
If you have questions, please contact the Linux HOWTO coordinator,
Tim Bynum, at
linux-howto@sunsite.unc.edu
via email.


��������� �����

��������� ����� �� ������� ������� �����
������ ����������� � 2000 SWSoft Pte Ltd. ��� �����
���������������.

���� �������� �������� ������ ������� Linux
HOWTO.

��������� ����� �� ��������� Linux HOWTO
����������� �� �������, ���� ���� ��
������� ����. ��������� Linux HOWTO, � ����� ��
��������, ����� ���� �������������� �
�������������� ��������� ��� �������� ��
����� �������� ���������� ��� �����������,
��� ������� ���������� ���� ������� ��
��������� ������ �� ���� ������.
������������ ��������������� �����������
� ����������; �� ��� ��� ����� ����� ������
� ����� �������� ������ �� ����� � �����
�������������.

��� �������� � ����������� ������,
����������� �� ���������� Linux HOWTO ������
�������������� ���� �������� �� ���������
������. ��� �������� � ����� ��������������
������� ��������� ��������������
����������� �� ��������������� ����������
HOWTO. ���������� ����� ��������� ������
��������� ������������ ���������� �
������������ Linux HOWTO � ������� �����
��������� �� ������ ������������ ����.

�� �� ������ �������������� ���
���������� �� ���� ��������� �������. ��
��� ���� ��������� ��������� ����� � ����
������������� � ���� ������
��������������� HOWTO. ���� � ��� ��������
�������, ����������, ���������� �
������������ ������� Linux HOWTO �� �����������
�����: <linux-howto@metalab.unc.edu>,
��� � ������������ �������� �������� Linux HOWTO
�������� SWSoft Pte Ltd. �� ������ <linux-howto@asplinux.ru>

Каждая уважающая себя система (или дистрибутив) на базе Linux содержит в своём составе так называемые man-страницы — «мануалы», т. е. справочные руководства. Ведь черпать информацию о том как пользоваться системой, в частности, о назначении команд, их опций, системной конфигурации и составляющих её (конфигурацию) файлов в итоге откуда-то нужно. Конечно, существуют большое количество технической литературы в виде изданий (как из открытых источников, так и коммерческих) по системному администрированию UNIX/Linux, однако всё это лишь дополняет (порой с качественным переводом) первоисточники, доступные локально «из коробки» в справочных системах Linux-дистрибутивов.

Конечно, man-руководства не содержат такой информации, к примеру, как сгенерировать и установить SSL-сертификат — они (man-руководства) и не предназначены для этого. Но любому системному администратору Linux получать информацию и исчерпывающее описание команд, библиотек функций, системной конфигурации и т. д. для обслуживаемого дистрибутива следует, в первую очередь, из справочной системы используемого дистрибутива.

Содержание

  1. Справочная система Linux
  2. Чтение интерактивной справки
  3. Хранение интерактивных руководств

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

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

По-умолчанию, без указания раздела команда man практически всегда находит требуемую информацию, поэтому на первый взгляд может показаться, что структура разделов не имеет особого значения. Но часты случаи, когда одна и та же искомая фраза содержится в разных контекстах и вот тут и полезно разбиение системной справки на разделы. К примеру, запрашиваемая фраза «passwd» подразумевает как команду, так и конфигурационных файл. Таким образом справочную информацию содержат (согласно вышеприведённой таблице) разделы 1, 4 и 5.

Стоит отметить, что в настоящее время разделы 8 всё чаще освобождаются и используются как резервные для последующего наполнения, а ранее содержащаяся в данных разделах информация (команды системного администрирования) перемещена (в большинстве дистрибутивов) в раздел 1. Также освобождаются и разделы 6.

Чтение интерактивной справки

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

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

Команда man использует для вывода руководства утилиты less или more (а также и другие инструменты для постраничного вывода текста), при этом аккуратно форматирует текст для удобства его восприятия. Используемая утилита постраничной разбивки задаётся в переменной среды PAGER. Аргумент заголовок — это чаще всего имя команды, файла или даже устройства, о котором необходимо вывести разделы справки. Как правило, в первую очередь просматриваются разделы, содержащие информацию о командах, т. е. разделы 1, 6 и 8, а далее поиск производится по возрастанию номеров разделов.

Для указания конкретного раздела справки следует передавать параметр раздел, например:

$ man sync

выведет описание для команды sync, а команда:

$ man 2 sync

отобразит страницы с описанием системного вызова sync.

Если нужно получить представление о том, в каких разделах доступна информация по интересующему запросу, нужно дать команду man -k запрос:

$ man -k sync
FD_CLR (3)           - synchronous I/O multiplexing
FD_ISSET (3)         - synchronous I/O multiplexing
FD_SET (3)           - synchronous I/O multiplexing
FD_ZERO (3)          - synchronous I/O multiplexing
_newselect (2)       - synchronous I/O multiplexing
adjtime (3)          - correct the time to synchronize the system clock
aio (7)              - POSIX asynchronous I/O overview
. . .
aio_cancel (3)       - cancel an outstanding asynchronous I/O request

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

Хранение интерактивных руководств

Для определения, где в конкретной Linux-системе хранятся страницы справочных руководств (они же являются входными данными для обработки командой nroff, используемой man), достаточно выполнить команду manpath:

$ manpath
/usr/local/man:/usr/local/share/man:/usr/share/man

В данном выводе представлены каталоги, в подкаталогах которых хранится справочная информация для систем Ubuntu. Пункты представленного списка разделены двоеточиями. Расположение для хранения man-страниц можно изменить. Поскольку данная опция хранится в переменной окружения MANPATH, то для этого нужно изменить значение этой переменной:

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

По-умолчанию для Linux-систем справочные руководства хранятся в /usr/share/man. Команда man также поддерживает работу с кэшем страниц, но только тогда, когда соответствующие каталоги /var/cache/man и /usr/share/man доступны для записи, что критично в плане безопасности. В целях экономии дискового пространства справочные руководства хранятся в сжатом виде и для сжатия используется, как правило, утилита gzip. Сжатие страниц практически не сказывается на производительности во время работы со справочной системой, поскольку команда man способна очень быстро производить разархивацию.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделить с друзьями:
  • Антигриппин аптечный инструкция по применению капсулы
  • Цераксон капельно с физраствором инструкция по применению
  • Бисопролол сукцинат 50 мг инструкция по применению цена отзывы аналоги
  • Венти баттс rockwool инструкция по монтажу
  • Миостимулятор для мышц бабочка инструкция по применению