Справочное руководство man

Фундаментальные основы 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 страницы в 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

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

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

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

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

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

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

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

Предисловие

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

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

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

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

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

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

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

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

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

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

$ man ls

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

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

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

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

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

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

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

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

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

$ man 3 printf

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

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

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

Всё об “apropos”

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

# makewhatis

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

$ man man

MANPATH

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

MANPATH /opt/man

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

GNU info

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

$ info

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

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

$ info diff

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

$ info info

/usr/share/doc

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

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

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

Linux Documentation Project

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

Обзор LDP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Об авторах

Daniel Robbins

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

Chris Houser

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

Aron Griffis

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


Команда man в Linux позволяет отобразить справочные страницы любой терминальной команды. Утилита поставляется почти со всеми дистрибутивами Linux.

Использование команды man в Linux

Содержание

  • Разделы руководства
  • Навигация по справочной системе Linux man
  • Синтаксис
  • Примеры использования команды man в Linux
  • Выводы

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

Разделы, из которых состоит справочная система.

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

Разделы руководства команды man в Linux

Навигация по справочной системе

Для навигации по справочной системе можно использовать клавиши и для перехода вверх или вниз построчно, PgUp и PgDn — для перехода вверх и вниз постранично.

При просмотре больших страниц рекомендуется воспользоваться поиском. Для этого надо нажать /, затем набрать строку поиска и нажать ↵ Enter. После этого строка поиска отобразится в нижней части экрана.

Для обратного поиска (снизу вверх) следует нажать ?. Подсветятся все совпадения с заданным поисковым выражением, а экран прокрутится до первого из них.

Для перехода к следующему подсвеченному вхождению нажимается n (Next), либо поисковая строка остаётся пустой (/) и нажимается ↵ Enter. Для обратного перехода (предыдущее совпадение) используется ? или N (Заглавная).

Для выхода из справочной системы используется клавиша Q (Quit).

Синтаксис

man [опция] [имя_команды]

Примеры использования команды man в Linux

Вывести справочную страницу для команды ls:

$ man ls

Вывести справочную страницу для пакета макросов man из раздела 7 (Альтернативное написание man 7 man.):

$ man man.7

Вывести справочную страницу для пакета макросов man из раздела 7. (Это еще одно альтернативное написание man 7 man. Оно может быть более удобным при копировании и вставке перекрестных ссылок на справочные страницы.):

$ man 'man(7)'

Последовательно вывести все доступные вводные страницы руководства.

$ man -a intro

Отформатировать справочную страницу для bash в формате по умолчанию troff или groff и направить её на принтер с именем ps. Выход по умолчанию для groff обычно PostScript. man --help должен сообщить, какой процессор привязан к опции -t:

$ man -t bash | lpr -Pps

Эта команда распакует и отформатирует исходную страницу руководства nroff ./foo.1x.gz в независимый от устройства (dvi) файл. Перенаправление необходимо, так как флаг -T заставляет вывод направляться на стандартный вывод без пейджера:

$ man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi

Найти в кратких описаниях и названиях справочных страниц ключевое слово printf как регулярное выражение. Распечатать любые совпадения:

$ man -k printf

Просмотреть справочные страницы, на которые ссылается smail, и распечатать краткие описания всех найденных:

$ man -f smail

Получить детальные инструкции по использованию команды:

$ man man

Выводы

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

Поделиться с друзьями

Каждая уважающая себя система (или дистрибутив) на базе 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.

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

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

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

Итак, как вы можете найти то, что ищете? Что ж, есть способы обойти это затруднительное положение с мужчиной.

Цифры — еще одна проблема для новичков. Что это такое и что они означают? Вы увидите такие вещи, как man (2) или man (5), цитируемые в документации и в Интернете. Вы увидите ссылки на команды с номерами, например, mount (2) и mount (8). Разумеется, не может быть более одной команды монтирования, верно? Как мы увидим, цифры важны и относительно просты.

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

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

Чтобы использовать man, вы набираете man в командной строке, затем пробел и команду Linux. man открывает руководство по Linux на «странице руководства», описывающей эту команду — если, конечно, он может ее найти.

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

man man

Открывается страница руководства для man.

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

Как видите, это страница man (1).

Следуйте этим советам для навигации по странице:

Чтобы перемещаться по странице руководства по одной строке за раз: используйте колесо прокрутки мыши или клавиши со стрелками вверх и вниз и Enter.
Чтобы перемещаться по странице руководства по одному экрану за раз: нажмите клавишу пробела и клавиши PgDn и PgUp.
Чтобы перейти непосредственно к верхней или нижней части справочной страницы: нажмите клавиши Home и End.

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

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

Анатомия мужчины Пейдж

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

Ниже приведены некоторые из заголовков, которые вы можете увидеть:

Имя: имя команды, описываемой на странице руководства.
Сводка: краткое описание команды и ее синтаксиса.
Конфигурация: сведения о конфигурации устройства.
Описание: объяснение того, что делает программа.
Параметры: описание параметров командной строки, которые принимает команда.
Статус выхода: возможные значения статуса выхода для команды и причины их использования.
Возвращаемое значение: Если справочная страница предназначена для библиотечной процедуры, это описывает значение, которое библиотечная процедура может отправить обратно функции, которая вызвала эту процедуру.
Ошибки: список значений, которые могут быть помещены в errno. в случае ошибки.
Среда: список переменных среды, которые влияют на команду или программу и каким образом.
Файлы: список файлов, используемых командой или программой, например файлы конфигурации.
Атрибуты: сводка различных атрибутов команды.
Версии: подробные сведения о версиях ядра или библиотеки Linux, в которых системный вызов или функция библиотеки впервые появились или значительно изменились по сравнению с предыдущими версиями.
Соответствие: описание любых стандартов, которым может соответствовать команда, например POSIX.
Примечания: Разные примечания.
Ошибки: известные проблемы.
Примеры: один или несколько примеров, демонстрирующих использование команды.
Авторы: люди, написавшие или поддерживающие команду.
См. Также: Рекомендуемая литература, относящаяся к команде или теме.

Мужчина Разделы

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

Разделы руководства, перечисленные в

Разделы:

Общие команды: команды, которые вы используете в командной строке.
Системные вызовы: функции ядра, которые может вызывать программа.
Библиотечные функции: программы функций могут вызывать библиотеки кода (в основном стандарт C).
Специальные файлы: обычно устройства, например, находящиеся в / dev, и их драйверы.
Форматы файлов и соглашения: форматы файлов, таких как файлы passwd, cron table и tar.
Игры: Описание команд, таких как фортуна, которые отображают цитаты из базы данных при их запуске.
Разное: описание таких вещей, как inodes, параметры загрузки и сам человек.
Системное администрирование: команды и демоны обычно зарезервированы для работы с root.
Подпрограммы ядра: информация, относящаяся к внутренней работе ядра. Сюда входят функциональные интерфейсы и переменные, полезные, например, программистам, которые пишут драйверы устройств. В большинстве систем этот раздел не установлен.

Когда вы видите команду, за которой следует номер, это относится к описанию этой команды в этом разделе руководства. Например, man (1) относится к записи в первом разделе руководства, описывающем команду man.

На изображении выше вы видите ссылку на человека (7). Это означает, что в другом разделе больше информации о человеке. Когда мы впервые открыли страницу руководства, на ней был отображен man (1). Если вы набираете только man без номера раздела, man просматривает все разделы по порядку, ища запись для введенной вами команды. Конечно, он обнаружил человека (1) раньше человека (7).

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

Например, мы вводим следующее, чтобы открыть запись для человека в седьмом разделе:

man 7 man

В

Руководство открывается для человека в разделе семь.

А

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

Как найти записи в разделах

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

Вы можете легко узнать, в каких разделах руководства содержатся записи о командах. Каждая страница руководства имеет заголовок и краткое описание. Параметр -f (whatis) выполняет поиск по заголовкам страниц и возвращает список совпадений.

В этом примере мы набираем следующее:

man -f man

В

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

Например, набираем следующее:

man -f printf

В

Похоже, что для printf были найдены две записи: первая — в первом разделе, а другая — в третьем. Однако это разные команды. На странице руководства в первом разделе описана команда командной строки printf, которая форматирует вывод в окне терминала. Страница руководства в третьем разделе описывает printf семейство библиотечных функций в Язык программирования C.

Также можно искать по кратким описаниям, а также по заголовкам страниц. Для этого вы используете опцию -k (apropos). Это также будет соответствовать вхождениям поискового запроса внутри других, более длинных слов.

Набираем следующее:

man -k printf

В

Многие из этих команд описаны на одних и тех же нескольких страницах руководства, поскольку их основные функции в основном одинаковы. На странице руководства для vprintf описаны функции 10 команд, перечисленных на изображении выше.

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

Допустим, вы хотите изменить пароль учетной записи пользователя. Мы можем искать любые команды, которые упоминают «пользователь» в заголовках или описаниях страниц руководства. Затем мы можем передать его через grep для поиска записей, содержащих «пароль».

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

man -k 'user ' | grep password

В

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

Поскольку это справочная страница section one, и нам не нужно включать номер раздела в команду, мы вводим следующее:

man passwd

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

man -k word | grep count

В

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

man wc

Говоря о wc, мы также можем использовать параметр -k (apropos) с одной точкой (.) В качестве цели поиска, которая будет соответствовать всему. Если мы передадим это через wc и используем параметр -l (lines), он сообщит нам, сколько страниц руководства имеется на компьютере.

Чтобы сделать все это, мы набираем следующую команду:

man -k . | wc -l

В

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

Поиск на мужской странице

Вы также можете искать вперед или назад от вашего текущего положения на странице руководства.

В этом примере мы вводим следующее, чтобы открыть страницу руководства по команде history:

man history

В

Для поиска вперед мы нажимаем косую черту (/), а затем вводим слово «событие». Цель поиска появляется в нижней части окна терминала, и мы нажимаем Enter, чтобы начать поиск.

В

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

А

Нажмите «n», чтобы перейти от результата к результату в нижней части страницы. Для поиска в обратном направлении по странице руководства нажмите «N»; это вернет вас обратно в начало страницы.

Чтобы включить или выключить выделение, нажмите Esc + U.

Если вы находитесь в самом низу страницы руководства и хотите выполнить поиск вверх, нажмите вопросительный знак (?), А затем введите условие поиска. Мы искали «вход».

А

Опять же, любые совпадающие результаты выделяются.

Результаты по поисковому запросу

Для поиска следующего совпадающего результата нажмите «n» для перехода к началу страницы руководства. Нажмите «N», чтобы перейти к предыдущему результату сопоставления и перейти к концу страницы руководства.

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

Если мы введем «-N» и нажмем Enter, мы сможем увидеть номера строк на странице руководства.

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

Мы нажимаем амперсанд (&), вводим поисковый запрос (число), а затем нажимаем Enter.

А

Отображаются только строки, содержащие наш поисковый запрос.

Строки, содержащие слово

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

Чтобы снова увидеть все строки, мы нажимаем амперсанд (&), а затем нажимаем Enter.

В

Мы набираем «292», а затем «g», чтобы перейти к этой строке.

Команда перехода к строке

Как только мы набираем «g», мы попадаем в строку 292 (поэтому «g» не появляется на изображении выше). Строка 292 отображается вверху окна терминала.

Строка 292 в верхней части экрана на странице руководства в окне терминала.

Вы можете нажать «-n» и нажать Enter, чтобы удалить номера строк.

Прочтите сказочное руководство

На страницах руководства есть много информации. Даже с командами, которые вы считаете хорошо знакомыми, можно с уверенностью сказать, что есть другие варианты, о которых вы никогда не слышали.

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

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

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

Команда man позволяет получить доступ к общей базе справки по команде, функции или программе. Обычно для просмотра справки программе надо передать название команды или другого объекта в системе. Синтаксис у неё такой:

$ man раздел название_страницы

Обычно название страницы совпадает с именем команды или названием программы. Вся справка разделена на несколько разделов. По умолчанию страницы справки выводятся из всех разделов, но вы можете выводить страницы справки из определённого раздела. Для этого достаточно передать номер раздела команде. Вот список основных разделов:

  • 1 — команды оболочки или программы;
  • 2 — системные вызовы;
  • 3 — функции библиотек;
  • 4 — файлы из каталога /dev;
  • 5 — форматы файлов;
  • 6 — игры;
  • 7 — разное;
  • 8 — команды администрирования системы;
  • 9 — процедуры ядра.

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

man man

Для команды ls справка вызывается так:

man ls

Каждая страница справки разделена на несколько секций. Вы можете видеть их на снимках экрана выше. Это:

  • NAME — имя программы или команды, а также краткое её описание;
  • SYNOPSIS — синтаксис команды и порядок передачи в неё опций;
  • DESCRIPTION — более подробное описание команды;
  • CONFIGURATION — настройки программы;
  • OPTIONS — опции команды;
  • EXAMPLE — примеры использования;
  • AUTHORS — авторы программы.

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

Для просмотра информации и управлением страницей справки используются такие горячие клавиши:

  • стрелка вверх/вниз — прокрутка информации вверх или вниз;
  • e или j — переместиться на одну строку вверх;
  • y или h — переместиться на одну строку вниз;
  • z — переместиться на одно окно вниз;
  • w — переместиться на одно окно вверх;
  • d — переместиться на пол окна вниз;
  • u — переместиться на пол окна вверх;
  • / — поиск вхождений указанных после символов вперед;
  • ? — то же самое, что и предыдущее, только поиск назад;
  • n — в режиме поиска отображение следующего вхождения;
  • N — в режиме поиска отображение предыдущего вхождения.

С перемещением по странице, скорее всего, всё понятно. Для того чтобы искать какое-либо слово на странице нажмите клавишу / и начните набирать слово, которое надо искать. Оно будет отображаться внизу окна:

Затем нажмите Enter и программа подсветит все вхождения этого слова в текст. Для поиска следующего вхождения нажимайте n:

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

При запуске утилиты можно использовать несколько опций, давайте рассмотрим эти опции. Их не так уж много и самые интересные из них только несколько. Опция -f позволяет посмотреть краткое описание справочной страницы. Например:

man -f ls

С помощью опции -k можно выполнять поиск по кратким описаниям справочных страниц. Например, давайте найдём все страницы, в описаниях которых есть слово printf:

man -k printf

Опция -K позволяет выполнять поиск по самим справочным страницам. Поиск выполняется методом перебора, поэтому занимает некоторое время:

man -K core

Команда будет открывать найденные страницы по очереди. Для выхода нажмите Ctrl+C. Опция -L позволяет вручную задать язык, на котором будет отображена страница. Например для вывода информации про man на английском выполните:

man -L en_US man

А чтобы отобразить man на русском Linux надо передать этой опции значение ru_RU:

man -L ru_RU man

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

Выводы

Если вам нужны другие опции, вы можете найти их в справочной странице для команды man. Перечисленного в этой статье по моему мнению будет вполне достаточно для полноценного просмотра справки по нужным вам программам. Если вы хотите разобраться с Linux вам обязательно придется научиться пользоваться двумя вещами. Первая из них — это Google, а вторая — справка man. Удачи в изучении Linux!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Понравилась статья? Поделить с друзьями:
  • Ребагид инструкция по применению цена отзывы аналоги таблетки цена
  • Установка снегозадержателя на профнастил инструкция по монтажу
  • Антитокс для животных инструкция по применению для крс
  • Масло персиковое для горла цена инструкция по применению
  • Фритюрница мулинекс clean air t51 инструкция