man page (Русский) - ArchWiki

# man page (Русский)

man-страницы (от англ. manual — руководство) — справочные страницы, которые предоставляются почти всеми *nix-дистрибутивами, включая Arch Linux. Для их отображения служит команда `man`.

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

## Доступ к man-страницам

Чтобы отобразить man-страницу, наберите

    $ man имя_страницы

Все страницы разделены на несколько категорий:

1. Основные команды
2. Системные вызовы (функции, предоставляемые ядром linux)
3. Библиотечные вызовы (функции стандартной библиотеки языка Си)
4. Специальные файлы (обычно расположенные в `/dev`) и драйверы
5. Форматы файлов и соглашения
6. Игры
7. Прочие страницы (также включая соглашения)
8. Команды для системного администрирования (для которых обычно требуются права суперпользователя) и демоны

На 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

Установите mdocml из AUR. Чтобы конвертировать страницу, для примера `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

Установите roffit из AUR.

Для конвертирования страницы выполните:

    $ 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

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

## Полезные страницы

Здесь приведен небольшой список полезных 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.

Categories:

- System administration (Русский)
- Русский