команда man в linux
Интерактивные руководства в Linux – команда man
Каждая уважающая себя система (или дистрибутив) на базе Linux содержит в своём составе так называемые man-страницы — «мануалы», т. е. справочные руководства. Ведь черпать информацию о том как пользоваться системой, в частности, о назначении команд, их опций, системной конфигурации и составляющих её (конфигурацию) файлов в итоге откуда-то нужно. Конечно, существуют большое количество технической литературы в виде изданий (как из открытых источников, так и коммерческих) по системному администрированию UNIX/Linux, однако всё это лишь дополняет (порой с качественным переводом) первоисточники, доступные локально «из коробки» в справочных системах Linux-дистрибутивов.
Конечно, man-руководства не содержат такой информации, к примеру, как сгенерировать и установить SSL-сертификат — они (man-руководства) и не предназначены для этого. Но любому системному администратору Linux получать информацию и исчерпывающее описание команд, библиотек функций, системной конфигурации и т. д. для обслуживаемого дистрибутива следует, в первую очередь, из справочной системы используемого дистрибутива.
Справочная система Linux
Для удобства организации и хранения справочной документации все страницы справочных руководств в 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 использует для вывода руководства утилиты less или more (а также и другие инструменты для постраничного вывода текста), при этом аккуратно форматирует текст для удобства его восприятия. Используемая утилита постраничной разбивки задаётся в переменной среды PAGER. Аргумент заголовок — это чаще всего имя команды, файла или даже устройства, о котором необходимо вывести разделы справки. Как правило, в первую очередь просматриваются разделы, содержащие информацию о командах, т. е. разделы 1, 6 и 8, а далее поиск производится по возрастанию номеров разделов.
Для указания конкретного раздела справки следует передавать параметр раздел, например:
выведет описание для команды sync, а команда:
отобразит страницы с описанием системного вызова sync.
Вывод содержит список страниц (с указанием раздела или подраздела справочной системы в скобках), для которых в строках их описаний содержится ключевое слово. Этого же можно добиться командой apropos запрос.
Хранение интерактивных руководств
Для определения, где в конкретной Linux-системе хранятся страницы справочных руководств (они же являются входными данными для обработки командой nroff, используемой man), достаточно выполнить команду manpath:
В данном выводе представлены каталоги, в подкаталогах которых хранится справочная информация для систем Ubuntu. Пункты представленного списка разделены двоеточиями. Расположение для хранения man-страниц можно изменить. Поскольку данная опция хранится в переменной окружения MANPATH, то для этого нужно изменить значение этой переменной:
По-умолчанию для Linux-систем справочные руководства хранятся в /usr/share/man. Команда man также поддерживает работу с кэшем страниц, но только тогда, когда соответствующие каталоги /var/cache/man и /usr/share/man доступны для записи, что критично в плане безопасности. В целях экономии дискового пространства справочные руководства хранятся в сжатом виде и для сжатия используется, как правило, утилита gzip. Сжатие страниц практически не сказывается на производительности во время работы со справочной системой, поскольку команда man способна очень быстро производить разархивацию.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Как пользоваться командой man в Linux: основы и секреты
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Встроенное руководство Linux
Существует старая шутка: единственная команда, которую нужно знать в Linux это man – точка входа в руководство пользователя. Несмотря на то, что тут есть доля правды, но даже сама команда man может ввести в тупик вначале. Вернее, поиск информации с помощью этой команды.
Наверное, у всех был случай, когда знали, что вы хотите сделать, но не знали какая команда поможет выполнить поставленную задачу. Это похоже на то, как искать слово в словаре при том, не зная самого слова.
Итак, как же можно найти, то что нужно? С man можно легко обойти эту сложность.
Как перейти к руководству
Ниже показано руководство по команде man :
Структура руководства
В начале страницы можно увидеть Название (Name) и Описание (Synopsis). Есть определённые правила оформления страницы руководства. Есть руководства по командам, программам, функциям и т.д. Не во всех руководствах есть эти заголовки, так как некоторые из них применимы только к конкретным командам.
Ниже приведён список заголовков, которые можно встретить в руководстве.
Разделы руководства
Прокрутив ниже на несколько страниц увидите список разделов в данном руководстве:
Это следующие разделы:
Цифры в скобках рядом с командой указывают на раздел руководства. Например, man (1) означает первый раздел руководства, которая описывает работу команды man.
Если нужно найти информацию в конкретном разделе нужно передать команде номер этого раздела.
Например, чтобы открыть седьмой раздел руководства по команде man введем следующую команду:
Руководство откроется с седьмого раздела:
Поиск записей в разделах
В основном, если нужно просто узнать, как пользоваться той или иной командой, не надо указывать номер раздела. man найдёт стандартную запись в первом разделе руководства, которая описывает как нужно пользоваться командой. Иногда же, в поиске нестандартной информации, нужно открыть конкретный раздел, содержащий запись по команде.
В Linux легко можно найти разделы, в которых встречается нужная записб. Каждое руководство обладает названием и кратким описанием. Ключ –f (whatis) ведёт поиск по заголовкам и возвращает все вхождения.
Например, введем следующую команду:
Например, введём следующую команду:
Как видно, для команды printf были найдены две записи: одна в первом разделе, и другая в третьем разделе. Однако это разные команды. Информация в разделе 1 описывает команду printf командной строки, которая форматирует данные при выводе в окно терминала. В третьем же разделе описывается семейство функций библиотеки printf в языке программирования C.
Многие из этих команд описаны в одних и тех же информационных страницах, поскольку их основные функциональные возможности в основном одинаковы. Справочная страница для vprintf описывает функциональность 10 команд, перечисленных на рисунке выше.
Эту функцию можно использовать для поиска информации, для выполнения конкретной задачи, даже если не знаете имя команды, которую хотите использовать.
Для этого нужно ввести следующую команду:
Так как правило использования указано в первом разделе руководства, не нужно указывать конкретный раздел:
Допустим на нужна команда, которая выводит количество слове в текстовом файле. Набираем в командной строке, что-то подобное:
Чтобы узнать все, что нужно знать о подсчете слов, введите следующую команду:
Чтобы сделать все это введем команду:
Итого, у нас 6 706 страниц руководства, но не пусть вас не путает, если у вас это число отличается, так как объем руководства напрямую зависит от установленных в системе программ и предустановленных справочников.
Поиск по руководству
Также есть возможность вести поиск по самому руководству. Например, давайте рассмотрим руководство по команде history :
Чтобы вести поиск в следующих страницах от текущей вводим символ прямой косой черты / и набираем искомое слово. Результат этих действий будет отображаться внизу командной строки. Чтобы начать поиск нажимаем Enter.
Система выведет и выделит первое совпадение по искомому слову:
Также можно перемещаться вперед и назад по найденным результатам.
Есть другой способ поиска по руководству. Он скрывает все строки, которые не содержат совпадения с искомым словом, поэтому лучше использовать номера строк с этим методом.
Если набрать –N и нажать Enter во время просмотра руководства, то радом со строками отобразятся номера строк.
Теперь отобразятся только строки, в которых найдено искомая фраза:
Просмотре вывод можно найти наиболее интересные результаты. Мы видим, что строка 292 наиболее подходящая и хотим просмотреть данный раздел руководства.
Чтобы показать все снова держим нажатым & и нажимаем Enter.
Теперь набираем номер строки: 292, а затем букву «g», чтобы перейти к указанной строке.
Как только мы нажмем «g» нас перебросит на 292 строку (именно поэтому на скриншоте выше не показана буква «g»).
Чтобы убрать нумерацию строк достаточно набрать –n и нажать Enter.
Прочитайте волшебное руководство
На страницах руководства много полезной информации. Даже у команд, которые вы думаете, вы хорошо знаете, есть такие возможности, о которых вы никогда не слышали.
Вы также определенно найдете команды, о существовании которых вы не знали. С таким количеством различных способов поиска и отслеживания информации, потрясающе иметь под рукой такую команду.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Мануалы в Linux: как их вызвать с помощью команды man
В каждой системе на основе Linux желающей завоевать поклонников должны быть мануалы, это справочники, в которых любой пользователь сможет найти нужную для себя информацию о принадлежности команд, их возможностях, параметрах системы и ее составных частей. Выходом может стать использование специальной литературы, созданной на платной или бесплатной основе, о том, как управлять системами на UNIX, но данные книги могут служить лишь дополнениями для того, что содержится в справочниках в уже установленных ОС.
Мануалы в Linux не описывают то, как создать или заставить работать SSL-сертификаты, однако, перед их создателями и не было такой цели. Любой сисадмин, работающий с Linux должен получать всю требующуюся ему информацию о командах, списке функций, параметрах системы, с которой он работает из мануалов уже установленных в операционной системе.
Как устроен справочник в Linux?
Чтобы хранить всю информацию о возможностях системы было удобно, ее группируют по различным тематикам, данные в них могут отличаться друг от друга, все зависит от того, какой дистрибутив у вас установлен. Также возможно деление информации в мануалах на подразделы. Ниже вы сможете узнать, где можно найти всю системную информацию в Linux:
Изначально система настроена так, что указывая раздел с помощью man, почти всегда пользователь найдет информацию быстро и может показаться, что делить мануал на тематики бессмысленно, однако это не так. Ведь некоторые команды в UNIX-системах могут использоваться сразу в 2 местах в зависимости от контекста. Пример:
Информацию о справочных данных вышеприведенные системы содержат в себе в разделах 1, 4 и 5.
Нельзя забывать и про то, что многие дистрибутивы в своих последних версиях переносят команды из раздела 8 в Linux в группу к остальным системным командам. А освободившийся раздел используется как резерв для информации о будущих обновлениях. Помимо этого все меньше информации становится в разделе 6.
Как читать интерактивную справку?
Чтобы прочитать нужную вам информацию в терминале, необходимо ввести в него поисковой запрос, который выглядит так:
man [-опции] номер раздела номер заголовка
Чтобы пользователь смог прочитать информацию, man использует такие утилиты как less и more, они дают возможность читать мануал с комфортом, помимо этого используются и другие возможности для вывода текста. Чтобы мануал был разбит на страницы, утилита использует переменную среды PAGER.
Последним в запрос вписывается заголовок, им может быть наименование утилиты, файла или самого компьютера, другими словами все, о чем нужно найти информацию. Для поиска вначале используются тематики под номерами 1, 6 и 8, именно они содержат данные о командах, если в них ничего не найдено, то проверяются остальные тематики.
Чтобы найти только раздел без указания заголовка нужно ввести, например, следующую команду:
Данная команда покажет все системные вызовы для «GNU Midnight Commander».
А для нахождения и раздела, и заголовка необходимо ввести название команды и номер раздела:
Однако не во всех команд есть раздел 2, например если написать «man 2 mc», то будет ошибка.
Чтобы такого не было у man есть опция «-f». Она выдаст разделы, в которых присутствует команда.
Как видно из скриншота, утилита mc присутствует только в 1 разделе.
Если пользователю нужны данные о том, в каких тематиках можно найти информацию о «mc», то к запросу man следует приписать аргумент –k. Например, если ввести:
то на экране появится следующая информация:
После запроса пользователь получит все страницы, на которых упоминается «mc», в них указан номер тематики или подраздела, а также ключевое слово.
Где хранятся мануалы?
Чтобы узнать, где именно в системе Linux находятся мануалы, которые по совместительству являются и входными данными, работающими с командой nroff, следует ввести команду manpath. После ее введения появится ответ системы:
/usr/local/man:/usr/local/share/man:/usr/share/man
Результат данной команды показывает подкаталоги, которые содержат в себе справочную информацию в системе Ubuntu.
Все 3 расположения разделены между собой знаком «:».
В любой момент можно сменить месторасположение страниц мануала, однако они находятся в переменной окружения MANPATH, поэтому для перемещения страниц мануала нужно сменить показатель переменной:
Изначально в системах на основе Linux справочники хранятся в /usr/share/man. Команда «man» может работать и с кэшем страниц, однако для этого такие каталоги как /var/cache/man и /usr/share/man должны быть открыты для записей в них, что ведет к нарушениям в безопасности.
Для экономии пространства на диске мануалы находятся в сжатом виде, им это обеспечивает такая утилита как gzip.
Несмотря на то, что страницы сжаты, команда «man» открывает их очень быстро, ведь она способна на быструю разархивацию.
Команда man основы linux или RTFM
Как говорили мне в институте:
Человеческий мозг не может хранить всю информацию обо всем сразу, но может хранить информацию о том, где ее найти.
От человека с дубиной до человека за клавиатурой
Первый навык
Структура
Страницы руководства предназначены для конкретной операционной системы и ее версии, вместе с которой они установлены. Это важно, потому что могут быть небольшие различия в командах и их параметрах в зависимости от конкретной версии операционной системы. Man-страницы очень полезные, но стиль их написания может отпугнуть новичков. Не стоит их бояться, достаточно разобрать структуру, прочитать несколько раз, и все станет понятно. Тем не менее, пользователи обычно находят их все более полезными, поскольку со временем они становятся более знакомыми и простыми к восприятию, также взаимодействуя с ними пользователи получают опыт работы в Unix-подобных операционных системах. Попробуем в этом разобраться.
Сама команда чрезвычайно проста в использовании. Ее основной синтаксис:
Примеры использования
В качестве другого примера, можно вывести man-страницу самой команды man:
Каждая страница руководства представляет собой самостоятельную статью, которая разделяется на несколько разделов, заголовки для которых помечены буквами верхнего регистра. Секции для команд, как правило, похожи на NAME, SYNOPSIS, DESCRIPTION, OPTIONS, AUTHOR, BUGS, COPYRIGHT, HISTORY и SEE ALSO, хотя могут быть некоторые отличия в соответствии с конкретной командой. Некоторые из них могут быть разбиты на подразделы, в частности OPTIONS, в случае команды с множеством опций.
Разделы страниц руководства
Кроме того, страницы руководства в целом организованы в разделы, каждая из которых содержит страницы о конкретной категории тем, как показано ниже. Раздел, которому принадлежит статья, указан в скобках в верхней строке перед заголовком NAME.
1. исполняемые программы или команды оболочки
2. системные вызовы
3. библиотечные процедуры
4. специальные файлы (т.е. Устройства в каталоге / dev)
5. форматы файлов
6. игры
7. макросы
8. команды системного администрирования
9. подпрограммы ядра
n. Tcl / Tk (язык программирования)
Поиск в man
Поиск в man-странице вызывается с помощью клавиши «/», каждое последующее найденное вхождение можно просмотреть с помощью клавиши «n». Если вы знаете, что вам нужно, но не знаете точное название man-страницы, вам поможет apropos(1). Вы наверное обратили внимание на цифру в скобках после названия команды. Она задает категорию, к которой принадлежит команда. Для лучшей организации, и чтобы избежать дублирования, man-страницы делятся по категориям. Например, printf в Linux может принадлежать категориям 1, 1p, 3 и 3p. Она является как функцией библиотеки C, так и пользовательской командой, частью coreutils, которая часто используется в скриптах оболочки. В Linux категории, после номера которых следует «p», предназначены для POSIX-программистов. В таких случаях вы можете задать требуемую категорию, вставив ее номер между «man» и командой:
Что такое man
Поэтому разработчики придумали специальную систему справки, в которой вы можете найти информацию о любой команде. Большинство команд содержат в своих пакетах страницы справки, которые добавляются в общую базу данных во время установки. Как вы уже поняли, в этой статье мы разберемся что такое man и как пользоваться этой утилитой.
Что такое man?
Команда man позволяет получить доступ к общей базе справки по команде, функции или программе. Обычно для просмотра справки программе надо передать название команды или другого объекта в системе. Синтаксис у неё такой:
$ man раздел название_страницы
Обычно название страницы совпадает с именем команды или названием программы. Вся справка разделена на несколько разделов. По умолчанию страницы справки выводятся из всех разделов, но вы можете выводить страницы справки из определённого раздела. Для этого достаточно передать номер раздела команде. Вот список основных разделов:
Давайте рассмотрим несколько примеров. Для того чтобы посмотреть справку по команде man достаточно выполнить такую команду:
Для команды ls справка вызывается так:
Каждая страница справки разделена на несколько секций. Вы можете видеть их на снимках экрана выше. Это:
Конечно существуют и другие разделы, но эти самые основные. Если информации про утилиту мало, то некоторые разделы могут быть объединены вместе, а некоторых может и вовсе не быть.
Для просмотра информации и управлением страницей справки используются такие горячие клавиши:
С перемещением по странице, скорее всего, всё понятно. Для того чтобы искать какое-либо слово на странице нажмите клавишу / и начните набирать слово, которое надо искать. Оно будет отображаться внизу окна:
Затем нажмите Enter и программа подсветит все вхождения этого слова в текст. Для поиска следующего вхождения нажимайте n:
Этих клавиш вам полностью хватит чтобы пользоваться справкой. Для вывода информации используется утилита less, поэтому если вам нужно больше горячих клавиш, смотрите соответствующую статью.
При запуске утилиты можно использовать несколько опций, давайте рассмотрим эти опции. Их не так уж много и самые интересные из них только несколько. Опция -f позволяет посмотреть краткое описание справочной страницы. Например:
Опция -K позволяет выполнять поиск по самим справочным страницам. Поиск выполняется методом перебора, поэтому занимает некоторое время:
А чтобы отобразить man на русском Linux надо передать этой опции значение ru_RU:
Однако для того чтобы это работало нужно чтобы в системе были установлены пакеты локализации для русского языка.