- Изучаем команды Linux: man
- 1. Введение
- 2. Часто используемые опции
- 3. Использование man-страниц
- 4. Упражнения
- Мануалы в Linux: как их вызвать с помощью команды man
- Как устроен справочник в Linux?
- Как читать интерактивную справку?
- Где хранятся мануалы?
- Интерактивные руководства в Linux – команда man
- Справочная система Linux
- Чтение интерактивной справки
- Хранение интерактивных руководств
Изучаем команды Linux: man
1. Введение
Один из важных рефлексов, который должен развиться у каждого пользователя Linux — это поиск информации, если что-то идет не так. Но несмотря на тот факт, что мы живем в мире, связанном с поисковыми системами, вики и огромным количеством иформации на кончиках ваших пальцев, всегда хорошо иметь локальную информацию в своей системе. Это обеспечивает простой и быстрый доступ к информации, даже при отсутствии подключения к интернету. Кроме того, информации, найденной в интернете, не всегда можно доверять, в то время как в руководствах все изложено четко и последовательно. Философия Unix (и, по наследству, Linux) говорит о том, что система должна быть хорошо документирована. Поэтому каждая программа распространяется с соответствующей man-страницей. Хотя man-страницы имеются во всех операционных системах на базе Unix, но между ними имеются отличия, поэтому то, что работает в Linux, может не работать, например, в Solaris. Кроме того, стиль написания этих руководств очень краткий и непривычный для новичков, поэтому вам может быть понадобится прочитать страницу несколько раз, пока вы привыкнете к нему.
2. Часто используемые опции
man -a keyword
выводит все доступные для keyword man-страницы
man -f keyword
ищет и выводит краткое описание всех man-страниц, где имеются ссылки на keyword
man —warnings
включает предупреждения
man -I .
включает чувствительность к регистру
man -H[browser]
активирует вывод в HTML и просмотр в браузере, который определен в $BROWSER или определен по умолчанию во время компиляции (обычно lynx).
3. Использование man-страниц
Если вы используете один из популярных дистрибутивов, то man-страницы скорее всего уже установлены как часть ядра системы вместе такими важными вещами как shell или система init. Чтобы лучше понять, как работает man, просто введите команду man man. Именно так все и работает: если мне нужна man-страница для ls, я ввожу man ls. В сетевом сообществе хорошим тоном считается сначала прочитать руководство, прежде чем задавать вопросы на форумах или в каналах IRC, о чем ветераны вам обяхательно напомнят с помощью аббревиатуры «RTFM». Если вы не знаете, что она значит, посмотрите в Google. Такой порядок действий — сначала man-страница, затем Google/Wikipedia, потом (если вы не нашли решения) форумы и социальные сообщества, является частью культуры Linux/FOSS.
Так как большинство man-страниц состоят более чем из одной страницы, для вывода используется less, и страницы можно перелистывать с помощью клавиш PgUp и PgDown, или Space и Esc + V. Выйти из man-страницы можно в любое время с помощью клавиши «q». Детально использование less мы разберем как-нибудь в другой раз, если вы хотите сделать это самостоятельно, вы всегда можете набрать man less. Поиск в man-странице вызывается с помощью клавишы «/», каждое последующее найденное вхождение можно просмотреть с помощью клавишы «n». Если вы знаете, что вам нужно, но не знаете точное название man-страницы, вам поможет apropos(1). Вы наверное обратили внимание на цифру в скобках после названия команды. Она задает категорию, к которой принадлежит команда. Для лучшей организации, и чтобы избежать дублирования, man-страницы делятся по категориям. Например, printf в Linux может принадлежать категориям 1, 1p, 3 и 3p. Она является как функцией библиотеки C, так и пользовательской командой, частью coreutils, которая часто используется в скриптах оболочки. В Linux категории, после номера которых следует «p», предназначены для POSIX-программистов. В таких случаях вы можете задать требуемую категорию, вставив ее номер между «man» и командой: man 3 printf. Ниже представлены категории, как они выглядят в современных системах Linux.
1 — исполняемые программы и команды оболочки;
2 — системные вызовы;
3 — библиотечные вызовы;
4 — файлы устройств (обычно расположены в /dev);
5 — форматы файлов;
6 — игры;
7 — макропакеты и соглашения;
8 — программы системного администрирования;
9 — процедуры ядра
Как уже говорилось ранее, система man была унаследована от старого Unix. С другой стороны, GNU предложил систему info, которая служит тем же целям, но имеет полезное нововведение, а именно использование гипертекстовых ссылок для перехода между страницами, аналогично тому, как это происходит в веб-браузерах. Так как OpenSolaris и BSD также используют программное обеспечение GNU (gawk, gcc, emacs. ), скорее всего на них тоже доступны некоторые страницы info. Познакомиться ближе с этой системой можно с помощью команды info info
4. Упражнения
1. Почему, как вы думаете, имеется деление на раздел 1 и 1p, или 3 и 3p?
2. Сделайте небольшое исследование и выясните различия в категориях между Linux и другими свободными системами на базе Unix.
3. Чтобы вы сделали, если вам нужно найти man-страницу, но apropos недоступен? Подсказка: man manpage
4. Найдите другую команду, которая встречается сразу в нескольких категориях.
Источник
Мануалы в Linux: как их вызвать с помощью команды man
В каждой системе на основе Linux желающей завоевать поклонников должны быть мануалы, это справочники, в которых любой пользователь сможет найти нужную для себя информацию о принадлежности команд, их возможностях, параметрах системы и ее составных частей. Выходом может стать использование специальной литературы, созданной на платной или бесплатной основе, о том, как управлять системами на UNIX, но данные книги могут служить лишь дополнениями для того, что содержится в справочниках в уже установленных ОС.
Мануалы в Linux не описывают то, как создать или заставить работать SSL-сертификаты, однако, перед их создателями и не было такой цели. Любой сисадмин, работающий с Linux должен получать всю требующуюся ему информацию о командах, списке функций, параметрах системы, с которой он работает из мануалов уже установленных в операционной системе.
Как устроен справочник в Linux?
Чтобы хранить всю информацию о возможностях системы было удобно, ее группируют по различным тематикам, данные в них могут отличаться друг от друга, все зависит от того, какой дистрибутив у вас установлен. Также возможно деление информации в мануалах на подразделы. Ниже вы сможете узнать, где можно найти всю системную информацию в Linux:
- Под цифрой 1 скрываются программы для обычных пользователей;
- Под цифрой 2 можно найти данные о кодах ошибок основного ядра и описание вызовов системы;
- Под цифрой 3 можно увидеть возможности библиотек системы;
- Под цифрой 4 в Linux можно увидеть описание сетевых протоколов и драйверов устройства;
- Пол цифрой 5 в Linux находятся описания файлов, которые поддерживаются системой;
- Под цифрой 6 в Linux находятся данные о примерах игр и программ в системе, HP-UX такой информации не имеет;
- Под цифрой 7 в Linux находится различная документация;
- Под цифрой 8 в Linux описаны возможности для системных администраторов и команды для них;
- Под цифрой 9 описаны системные ядра и внутренние интерфейсы.
Изначально система настроена так, что указывая раздел с помощью man, почти всегда пользователь найдет информацию быстро и может показаться, что делить мануал на тематики бессмысленно, однако это не так. Ведь некоторые команды в UNIX-системах могут использоваться сразу в 2 местах в зависимости от контекста. Пример:
- Есть фраза «passwd» и она имеет 2 значения, как команда и как файл системы;
Информацию о справочных данных вышеприведенные системы содержат в себе в разделах 1, 4 и 5.
Нельзя забывать и про то, что многие дистрибутивы в своих последних версиях переносят команды из раздела 8 в Linux в группу к остальным системным командам. А освободившийся раздел используется как резерв для информации о будущих обновлениях. Помимо этого все меньше информации становится в разделе 6.
Как читать интерактивную справку?
Чтобы прочитать нужную вам информацию в терминале, необходимо ввести в него поисковой запрос, который выглядит так:
man [-опции] номер раздела номер заголовка
Чтобы пользователь смог прочитать информацию, man использует такие утилиты как less и more, они дают возможность читать мануал с комфортом, помимо этого используются и другие возможности для вывода текста. Чтобы мануал был разбит на страницы, утилита использует переменную среды PAGER.
Последним в запрос вписывается заголовок, им может быть наименование утилиты, файла или самого компьютера, другими словами все, о чем нужно найти информацию. Для поиска вначале используются тематики под номерами 1, 6 и 8, именно они содержат данные о командах, если в них ничего не найдено, то проверяются остальные тематики.
-a — показать подряд все справочные страницы.
-f — выдает разделы, где присутствует команда.
-k — искать упоминание в тематиках.
Чтобы найти только раздел без указания заголовка нужно ввести, например, следующую команду:
Данная команда покажет все системные вызовы для «GNU Midnight Commander».
А для нахождения и раздела, и заголовка необходимо ввести название команды и номер раздела:
Однако не во всех команд есть раздел 2, например если написать «man 2 mc», то будет ошибка.
Чтобы такого не было у man есть опция «-f». Она выдаст разделы, в которых присутствует команда.
Как видно из скриншота, утилита mc присутствует только в 1 разделе.
Если пользователю нужны данные о том, в каких тематиках можно найти информацию о «mc», то к запросу man следует приписать аргумент –k. Например, если ввести:
то на экране появится следующая информация:
Результат выполнения man -k mc
После запроса пользователь получит все страницы, на которых упоминается «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» открывает их очень быстро, ведь она способна на быструю разархивацию.
Источник
Интерактивные руководства в 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.
Если нужно получить представление о том, в каких разделах доступна информация по интересующему запросу, нужно дать команду man -k запрос:
Вывод содержит список страниц (с указанием раздела или подраздела справочной системы в скобках), для которых в строках их описаний содержится ключевое слово. Этого же можно добиться командой apropos запрос.
Хранение интерактивных руководств
Для определения, где в конкретной Linux-системе хранятся страницы справочных руководств (они же являются входными данными для обработки командой nroff, используемой man), достаточно выполнить команду manpath:
В данном выводе представлены каталоги, в подкаталогах которых хранится справочная информация для систем Ubuntu. Пункты представленного списка разделены двоеточиями. Расположение для хранения man-страниц можно изменить. Поскольку данная опция хранится в переменной окружения MANPATH, то для этого нужно изменить значение этой переменной:
По-умолчанию для Linux-систем справочные руководства хранятся в /usr/share/man. Команда man также поддерживает работу с кэшем страниц, но только тогда, когда соответствующие каталоги /var/cache/man и /usr/share/man доступны для записи, что критично в плане безопасности. В целях экономии дискового пространства справочные руководства хранятся в сжатом виде и для сжатия используется, как правило, утилита gzip. Сжатие страниц практически не сказывается на производительности во время работы со справочной системой, поскольку команда man способна очень быстро производить разархивацию.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник