Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Изучаем команды Linux: man

Оригинал: Learning Linux Commands: man
Автор: Rares Aioanei
Дата публикации: 15 ноября 2012 года
Перевод: А. Кривошей
Дата перевода: февраль 2013 г.

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. Найдите другую команду, которая встречается сразу в нескольких категориях.

5. Примеры

Синтаксис команды Описание
man -t command | lpr -Pps
Генерирует страницу, используя формат troff или groff, и посылает на печать на принтер ps
man -l -Tdvi command.1x.gz > command.1x.dvi
генерирует вывод в формате dvi (device independent), обычно используемый в дальнейшем такими утилитами, как dvips
man -C file
Использует file в качестве файла конфигурации вместо заданного по умолчанию