man page (Русский)
man-страницы (от англ. manual — руководство) — справочные страницы, которые предоставляются почти всеми *nix-дистрибутивами, включая Arch Linux. Для их отображения служит команда man
.
man-страницы изначально подразумевались как самодостаточные документы. Они ограничены в возможностях ссылаться друг на друга, в отличие от поддерживающих гиперссылки info-файлов — попытки GNU создать замену традиционному формату man-страниц.
Contents
Доступ к man-страницам
Чтобы отобразить man-страницу, наберите
$ man имя_страницы
Все страницы разделены на несколько категорий:
- Основные команды
- Системные вызовы (функции, предоставляемые ядром linux)
- Библиотечные вызовы (функции стандартной библиотеки языка Си)
- Специальные файлы (обычно расположенные в
/dev
) и драйверы - Форматы файлов и соглашения
- Игры
- Прочие страницы (также включая соглашения)
- Команды для системного администрирования (для которых обычно требуются права суперпользователя) и демоны
На man-страницы принято ссылаться по имени, с указанием номера категории в скобках. Часто существуют сразу несколько man-страниц с одинаковыми именами, но в разных категориях, например man(1) и man(7). В таком случае, команде man необходимо передать номер конкретной категории перед именем man-страницы, например:
$ man 5 passwd
отобразит man-страницу по файлу /etc/passwd
вместо утилиты passwd
.
Вместо того, чтобы отображать man-страницу целиком, вы можете вывести лишь ее краткое описание, используя команду whatis
. Например,
$ whatis ls
выведет краткое описание команды ls: "list directory contents" ("отобразить содержимое каталога").
Формат страниц
Для удобства навигации, все man-страницы соответствуют единому стандартному формату. Вот список некоторых разделов, которые часто используются на страницах:
- NAME — имя команды и краткое однострочное описание ее назначения.
- SYNOPSIS — список опций и аргументов командной строки, которые принимает команда, либо параметры функции и ее заголовочный файл.
- DESCRIPTION — более подробное описание назначения и принципов работы команды или функции.
- EXAMPLES — типовые примеры использования, обычно от самых простых к более сложным.
- OPTIONS — описания для каждой из опций, которые принимает команда.
- EXIT STATUS — коды возврата и их значения.
- FILES — связанные с командой или функцией файлы.
- BUGS — вероятные проблемы, связанные с работой команды или функции и ожидающие решения. Также известны как KNOWN BUGS.
- SEE ALSO — список связанных команд и функций.
- AUTHOR, HISTORY, COPYRIGHT, LICENSE, WARRANTY — информация о программе: ее история, условия использования, создатели программы.
Поиск по страницам
Хотя команда man
позволяет отображать man-страницы, возникает сложность, когда вы не знаете точного названия желаемой страницы. К счастью, вы можете воспользоваться опциями -k
или --apropos
, для поиска по ключевому слову в описаниях man-страниц.
Поиск работает только по индексированным страницам. Кеш индекса может устареть или вовсе отсутствовать, и на попытки поиска вы не будете получать ожидаемых результатов. Вы можете создать индекс или обновить его, выполнив
# mandb
Индексация страниц должна запускаться при каждом добавлении man-страниц.
Теперь вы можете воспользоваться поиском. Например, чтобы найти man-страницы, связанные с паролями ("password"), введите:
$ man -k password
или
$ man --apropos password
С тем же успехом, вы также можете воспользоваться командой apropos
:
$ apropos password
По-умолчанию, ключевое слово интерпретируется как регулярное выражение.
Если вы хотите произвести более углубленный поиск по всему содержимому страниц, используйте опцию -K
:
$ man -K password
Цветные man-страницы
Текст man-страниц может отображаться в разных цветах, что упрощает их чтение. Есть два основных метода, позволяющих раскрасить страницы — с помощью утилит less и most.
С помощью less (рекомендуется)
Преимущество этого способа в том, что less имеет более богатый набор возможностей, чем most, а также используется по умолчанию для отображения man-страниц.
Добавьте следующие строки в файл конфигурации вашей командной оболочки (для Bash это файл ~/.bashrc
):
man() { env LESS_TERMCAP_mb=$'\E[01;31m' \ LESS_TERMCAP_md=$'\E[01;38;5;74m' \ LESS_TERMCAP_me=$'\E[0m' \ LESS_TERMCAP_se=$'\E[0m' \ LESS_TERMCAP_so=$'\E[38;5;246m' \ LESS_TERMCAP_ue=$'\E[0m' \ LESS_TERMCAP_us=$'\E[04;38;5;146m' \ man "$@" }
Выполните команды из файла, чтобы увидеть изменения:
# source ~/.bashrc
Для Fish настройки будут выглядеть как-то так:
~/.config/fish/config.fish
set -xU LESS_TERMCAP_mb (printf "\e[01;31m") # begin blinking set -xU LESS_TERMCAP_md (printf "\e[01;31m") # begin bold set -xU LESS_TERMCAP_me (printf "\e[0m") # end mode set -xU LESS_TERMCAP_se (printf "\e[0m") # end standout-mode set -xU LESS_TERMCAP_so (printf "\e[01;44;33m") # begin standout-mode - info box set -xU LESS_TERMCAP_ue (printf "\e[0m") # end underline set -xU LESS_TERMCAP_us (printf "\e[01;32m") # begin underline
Чтобы сразу увидеть изменения (без перезапуска fish или системы), выполните:
# source ~/.config/fish/config.fish
Чтобы изменить эти цвета, обратитесь к статье Wikipedia:ru:Управляющие последовательности ANSI.
С помощью most (не рекомендуется)
Утилита most выполняет ту же задачу, что less и more, но имеет меньший набор возможностей. Настройка цветов для most проще, однако требуется дополнительная настройка для того, чтобы most работал наподобие less.
Установите пакет most, доступный в официальных репозиториях.
В файле /etc/man_db.conf
раскомментируйте параметр pager
и установите ему значение most -s
:
DEFINE pager most -s
Откройте любую man-страницу для проверки.
Настройка цветов осуществляется в пользовательском файле ~/.mostrc
(нужно создать, если он отсутствует), либо в системном файле /etc/most.conf
. Пример конфигурации:
% Color settings color normal lightgray black color status yellow blue color underline yellow black color overstrike brightblue black
Другой пример, показывающий, как настроить сочетания клавиш, подобно less
(переход к строке назначен на клавишу J
):
% less-like keybindings unsetkey "^K" unsetkey "g" unsetkey "G" unsetkey ":" setkey next_file ":n" setkey find_file ":e" setkey next_file ":p" setkey toggle_options ":o" setkey toggle_case ":c" setkey delete_file ":d" setkey exit ":q" setkey bob "g" setkey eob "G" setkey down "e" setkey down "E" setkey down "j" setkey down "^N" setkey up "y" setkey up "^Y" setkey up "k" setkey up "^P" setkey up "^K" setkey page_down "f" setkey page_down "^F" setkey page_up "b" setkey page_up "^B" setkey other_window "z" setkey other_window "w" setkey search_backward "?" setkey bob "p" setkey goto_mark "'" setkey find_file "E" setkey edit "v"
Цветные страницы в xterm или rxvt-unicode
Быстрый способ раскрасить цвета man-страниц, которые просматриваются через xterm / uxterm
или rxvt-unicode, заключается в редактировании файла ~/.Xresources
.
В подразделах представлена конфигурация для xterm и rxvt-unicode.
xterm
*VT100.colorBDMode: true *VT100.colorBD: red *VT100.colorULMode: true *VT100.colorUL: cyan
Эти настройки заменяют начертания текста цветами. Добавьте также:
*VT100.veryBoldColors: 6
если вы хотите видеть цвета и начертания одновременно. Смотрите также man xterm
для описания ресурса терминала veryBoldColors
.
rxvt-unicode
Конфигурация:
URxvt.colorIT: #87af5f URxvt.colorBD: #d7d7d7 URxvt.colorUL: #87afd7
После внесения изменений в файл, выполните:
$ xrdb -load ~/.Xresources
Запустите xterm
/uxterm
или rxvt-unicode
и вы должны увидеть цветные man-страницы. Эти настройки добавляют цвета для слов, написанных полужирным и подчеркнутым шрифтом в xterm/uxterm
, и цвета для слов в полужирном, подчеркнутом, и наклонном начертаниях в rxvt-unicode
. Вы можете также совмещать эти атрибуты в различные комбинации.
Просмотр локальных страниц
Кроме утилиты man, для чтения man-страниц вы также можете использовать веб-браузер, например lynx или Firefox. Просмотр страниц в браузере позволяет воспользоваться основным преимуществом info-страниц — гиперссылками. Пользователи KDE могут читать man-страницы в Konqueror, используя URL вида:
man:<name>
Кроме того, вы можете установить следующие пакеты из официальных репозиториев:
1. xorg-xman для просмотра страниц в X.
2. yelp — Help Browser из состава GNOME.
Конвертирование страниц в HTML
mdocml
Установите пакет mdocmlAUR. Чтобы конвертировать страницу, для примера, free(1)
, наберите:
$ gunzip -c /usr/share/man/man1/free.1.gz | mandoc -Thtml -Ostyle=style.css 1> free.html
Получившийся файл free.html
теперь можно открыть в любом веб-браузере.
man2html
Установите man2html из официальных репозиториев.
Сконвертируйте страницу командой:
$ man free | man2html -compress -cgiurl man$section/$title.$section$subsection.html > ~/man/free.html
Другая полезная функция man2html
— экспорт в обычный текстовый файл, который можно распечатать:
$ man free | man2html -bare > ~/free.txt
man -H
Реализация утилиты man от GNU, также позволяет открыть страницу в веб-браузере:
$ man -H free
Команда запустит браузер, установленный в переменной окружения BROWSER
. Вы можете указать браузер явно, передав путь до исполняемого файла сразу после опции -H
.
roffit
Установите пакет roffitAUR.
Для конвертирования страницы выполните:
$ gunzip -c /usr/share/man/man1/free.1.gz | roffit > free.html
Конвертирование в PDF
Man-страницы всегда были удобны для печати: они написаны в формате troff, который является типографским языком. Если у вас установлен ghostscript, конвертирование man-страниц в PDF выполнить очень просто:
man -t имя_страницы | ps2pdf - pdf_файл
По этой ссылке вы можете посмотреть, как будет выглядеть получившийся PDF-документ.
Обратите внимание, что шрифты главным образом ограничены набором Times и имеют жестко заданные размеры. Документ не будет содержать гиперссылок. Некоторые man-страницы форматировались так, чтобы выглядеть хорошо в терминале, однако могут отображаться некорректно в форме PostScript или PDF-документов.
Следующий perl-скрипт конвертирует man-страницы в PDF, кэшируя файлы в каталоге $HOME/.manpdf/
, и открывает программу для просмотра документа mupdf.
Usage: manpdf [<section>] <manpage>
#!/usr/bin/perl use File::stat; $pdfdir = $ENV{"HOME"}."/.manpdf"; -d $pdfdir || mkdir $pdfdir || die "can't create $pdfdir"; $manpage = $ARGV[0]; chop($manpath = `man -w $manpage`); die if $?; $maninfo = stat($manpath) or die; $manpath =~ s@.*/man./(.*)(\.(gz|bz2))?$@$1@; $pdfpath = "$pdfdir/$manpath.pdf"; $pdftime = 0; if (-f $pdfpath) { $pdfinfo = stat($pdfpath) or die; $pdftime = $pdfinfo->mtime; } if (!-f $pdfpath || $maninfo->mtime > $pdftime) { system "man -t $manpage | ps2pdf -dPDFSETTINGS=/screen - $pdfpath"; } die if !-f $pdfpath; if (!fork) { open(STDOUT, "/dev/null"); open(STDERR, "/dev/null"); exec "mupdf", "-r", "96", $pdfpath; #exec "acroread", $pdfpath; }
Просмотр онлайн-страниц
Существуют множество онлайн-хранилищ man-страниц; вот небольшой список:
- Man7.org. Первоисточник страниц для man-pages.
- man-страницы Debian GNU/Linux
- man-страницы DragonFlyBSD
- man-страницы FreeBSD Hypertext
- man-страницы Linux and Solaris 10
- man-страницы Linux/FreeBSD с комментариями пользователей
- man-страницы на die.net
- man-страницы на kernel.org
- man-страницы NetBSD
- man-страницы Mac OS X
- man-страницы UNIX
- man-страницы OpenBSD
- Руководство Plan 9 — Том 1
- Руководство Inferno — Том 1
- man-страницы Storage Foundation
- man-страницы форума The UNIX and Linux Forums
- репозиторий man-страниц Ubuntu
Полезные страницы
Здесь приведен небольшой список полезных man-страниц, которые могут помочь вам получить более углубленные знания о множестве полезных вещей. Некоторые из них могут служить хорошими справочниками (например, таблица ASCII).
- ascii(7)
- boot(7)
- charsets(7)
- chmod(1)
- credentials(7)
- fstab(5)
- hier(7)
- systemd(1)
- locale(1P)(5)(7)
- printf(3)
- proc(5)
- regex(7)
- signal(7)
- term(5)(7)
- termcap(5)
- terminfo(5)
- utf-8(7)
Вам могут быть интересны также и другие страницы седьмой категории:
$ man -s 7 -k ".*"
А также страницы, относящиеся непосредственно к Arch Linux:
- archlinux(7)
- mkinitcpio(8)
- pacman(8)
- pacman-key(8)
- pacman.conf(5)
Смотрите также
- Основные рекомендации — Основные рекомендации по Arch Linux.
- Man page — статья на Gentoo wiki.