Linux manpages-ru

Добавляем русские MAN страницы в Debian (Ubuntu)

Первое, старые но официальные

# apt-get install manpages-ru

Второе

датируются 2015 г.
$ sudo echo "deb
http://manpages.stupin.su/repo/ jessie main" >> /etc/apt/sources.list

более старые, датируются 2010 г.
$ sudo echo "deb
http://manpages.ylsoftware.com/debian/ all main" >> /etc/apt/sources.list
# apt-get update
# apt-get install manpages-ylsw-ru

Указание в переменной MANOPT локализацию
export MANOPT="-L ru"

Непосредственно указать перед просмотром

man -Lru ascii

Вырор секции
man -s 7 ascii


Третье, судя по датам самые новые

# Делаем резервную копию старых man-ов
tar -cf ru-backup.tar /usr/share/man/ru

# Заходим в каталог
mkdir -p ~/src/man-pages-ru/
cd ~/src/man-pages-ru/

Скачиваем архив с http://sourceforge.net/projects/man-pages-ru/
и переносим в папку
mv ~/Download/man-pages-ru_xxxxxxx.tar.bz2 ~/src/man-pages-ru/

# Распаковываем архив с новыми man-ами
tar -jxf man-pages-ru_xxxxxxx.tar.bz2

# Переходим в каталог, в который был распакован архив
cd man-pages-ru_xxxxxxx

# Удаляем файлы лицензии и readme, которые нам не нужны
rm License README

# Производим (рекурсивно) компрессию всех файлов
gzip -r ./*

# Копируем (рекурсивно, с правами администратора) все файлы в /usr/share/man/ru. При этом существующие файлы заменяются новыми
sudo cp -r ./* /usr/share/man/ru/

# После этого можно удалить каталог, в который мы распаковывали архив:
# переходим на уровень выше
cd ../
# и удаляем каталог
rm -rf man-pages-ru_xxxxxxx

После, лично у меня были не правильно выставлены права на ru-man после сжатия
Исправление:
find /usr/share/man/ru -type f -exec chmod 644 {} \;

 

После ручного добавление ФАЙЛОВ, нужно обновить базу man

$ mandb

 

mandb - create or update the manual page index caches

# mandb --help
Использование: mandb [ПАРАМЕТР...] [MANPATH]

  -c, --create               создать dbs с нуля, а не
                             обновлять
  -C, --config-file=ФАЙЛ использовать указанный
                             пользовательских файл
                             настроек
  -d, --debug                показывать сообщения
                             отладки
  -f, --filename=ИМЯ-ФАЙЛА
                             обновить запись только для
                             этого файла
  -p, --no-purge             не вычищать устаревшие
                             записи из dbs
  -q, --quiet                не выводить сообщения, за
                             исключением 'фиктивных'
                             предупреждений
  -s, --no-straycats         не искать или добавлять
                             побочные cat в dbs
  -t, --test                 проверить справочные
                             страницы на правильность
  -u, --user-db              создать только
                             пользовательские базы
                             данных
  -?, --help                 показать эту справку
      --usage                показать короткую справку
                             по использованию
  -V, --version              показать номер версии
                             программы

Обязательные или необязательные аргументы
к длинным именам параметров остаются
таковыми и к соответствующим коротким
параметрам.

 

Четвертое, хоть русские man и добавили, но переводов очень мало в совокупности
Будем использовать интерактивный перевод, интернет обязателен

Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc.

From Git (Recommended)

$ git clone https://github.com/soimort/translate-shell
$ cd translate-shell/
$ make
$ sudo make install

trans -list-engines

echo "good\morning" | xargs | trans -b :ru -e google
echo "good\morning" | xargs | trans -b :ru -e yandex
echo "good\morning" | xargs | trans -b :ru -e bing

Пример перевода man страницы

$ man ssh | col -bfx | trans -b -engine bing :ru
$ man -P cat ssh | trans -b -engine bing :ru

$ whatis ssh | trans -b -engine bing :ru

apropos [-M path] [-s section] keyword
whatis [-M path] [-s section] keyword

# man -s 7 -k 'ascii'
ascii (7)            - набор символов ASCII, представленный восьмеричным, д...
utf-8 (7)            - ASCII-совместимая многобайтовая юникодная кодировка
utf8 (7)             - ASCII-совместимая многобайтовая юникодная кодировка

#  whatis -s 7 ascii
ascii (7)            - набор символов ASCII, представленный восьмеричным, д...

# apropos -s 7 ascii
ascii (7)            - набор символов ASCII, представленный восьмеричным, д...
utf-8 (7)            - ASCII-совместимая многобайтовая юникодная кодировка
utf8 (7)             - ASCII-совместимая многобайтовая юникодная кодировка


# apropos --help

Использование: apropos [ПАРАМЕТР...] КЛЮЧ...

Language: ru

  -d, --debug                показывать сообщения
                             отладки
  -v, --verbose              выводить подробные
                             предупреждающие сообщения
  -e, --exact                искать точное совпадения
                             каждого ключа
  -r, --regex                считать каждый ключ
                             регулярным выражением
  -w, --wildcard             ключ(и) содержит групповые
                             символы
  -a, --and                  требуется совпадение всех
                             ключей
  -l, --long                 не обрезать вывод по ширине
                             терминала
  -C, --config-file=ФАЙЛ использовать указанный
                             пользовательских файл
                             настроек
  -L, --locale=ЛОКАЛЬ  задать локаль для этого
                             поиска
  -m, --systems=СИСТЕМА   использовать справочные
                             страницы от других систем
  -M, --manpath=ПУТЬ     установить путь поиска
                             справочных страниц в
                             значение ПУТЬ
  -s, --sections=СПИСОК, --section=СПИСОК
                             искать только в этих
                             секциях (разделяются
                             двоеточиями)
  -?, --help                 показать эту справку
      --usage                показать короткую справку
                             по использованию
  -V, --version              показать номер версии
                             программы

Обязательные или необязательные аргументы
к длинным именам параметров остаются
таковыми и к соответствующим коротким
параметрам.

Параметр --regex включён по умолчанию.

Об ошибках сообщай по адресу cjwatson@debian.org.


# whatis ssh
ssh (1)              - OpenSSH SSH client (remote login program)

# whatis ssh | trans -b :ru -e bing
SSH (1) - OpenSSH SSH-клиент (программа удаленного входа)

# whatis --help
Использование: whatis [ПАРАМЕТР...] КЛЮЧ...

  -d, --debug                показывать сообщения
                             отладки
  -v, --verbose              выводить подробные
                             предупреждающие сообщения
  -r, --regex                считать каждый ключ
                             регулярным выражением
  -w, --wildcard             ключ(и) содержит групповые
                             символы
  -l, --long                 не обрезать вывод по ширине
                             терминала
  -C, --config-file=ФАЙЛ использовать указанный
                             пользовательских файл
                             настроек
  -L, --locale=ЛОКАЛЬ  задать локаль для этого
                             поиска
  -m, --systems=СИСТЕМА   использовать справочные
                             страницы от других систем
  -M, --manpath=ПУТЬ     установить путь поиска
                             справочных страниц в
                             значение ПУТЬ
  -s, --sections=СПИСОК, --section=СПИСОК
                             искать только в этих
                             секциях (разделяются
                             двоеточиями)
  -?, --help                 показать эту справку
      --usage                показать короткую справку
                             по использованию
  -V, --version              показать номер версии
                             программы

Обязательные или необязательные аргументы
к длинным именам параметров остаются
таковыми и к соответствующим коротким
параметрам.

 

Output manpage as plaintext using cat as pager:
And redirect its stdout into a file:
Example: man -P cat ssh > man_ssh.txt

man ssh > ssh.txt

To get an ASCII man page file, without the annoying backspace/underscore attempts at underlining, and weird sequences to do bolding:
man ssh | col -b > ssh.txt

The correct way to output a man page into a plain text file
man ssh | col -b > ssh.txt
man ssh | col -bfx > ssh.txt

man ssh | col -bx > ssh.txt
col -b removes backspaces.
col -bx also replaces tabs with spaces which is my strong preference.

If I want the text to be formatted to a width of my preference while reading, then I change the command to this:
MANWIDTH=10000 man ssh | col -bx > ssh.txt

Man pages are usually troff pre-processed files, and you can get to the plain text with,
groff -t -e -mandoc -Tascii manpage.1 | col -bx > manpage.txt

groff is a wrapper for troff.

zcat /usr/share/man/man1/man.1.gz  | groff -mandoc -Thtml
zcat $(man -w $PAGE) | groff -mandoc -Thtml

посмотреть в чистом виде ман
gunzip -c /usr/share/man/man1/free.1.gz
zcat /usr/share/man/man1/free.1.gz

gzip -c -d < %s > %s
zcat < %s > %s

man ssh | strip-headers | col -bx > ssh.txt

groff -t -e -mandoc -Tps manpage.1 > manpage.ps

grog /usr/man/man7/signal.7
groff -t -man /usr/man/man7/signal.7

groff -man -Thtml
man -P cat ls

groff -mandoc -Thmtl

man -Tps ls > man_ls.ps


# man -Thmtl ls
groff: can't find `DESC' file
groff:fatal error: invalid device `hmtl'
man: команда завершилась с кодом 3: /usr/lib/man-db/zsoelim | /usr/lib/man-db/manconv -f UTF-8:KOI8-R -t UTF-8//IGNORE | preconv -e UTF-8 | tbl | groff -mandoc -Thmtl

# col --help
usage: col [-bfhpx] [-l nline]

# troff --help
usage: troff -abcivzCERU -wname -Wname -dcs -ffam -mname -nnum -olist
       -rcn -Tname -Fdir -Idir -Mdir [files...]

# grog --help
usage: grog [option]... [--] [filespec]...

"filespec" is either the name of an existing, readable file or "-" for
standard input.  If no `filespec' is specified, standard input is
assumed automatically.  All arguments after a `--' are regarded as file
names, even if they start with a `-' character.

`option' is either a `groff' option or one of these:

-h|--help       print this uasge message and exit
-v|--version    print version information and exit

-C              compatibility mode
--ligatures     include options `-P-y -PU' for internal font, which
                preserverses the ligatures like `fi'
--run           run the checked-out groff command
--warnings      display more warnings to standard error

All other options should be `groff' 1-character options.  These are then
appended to the generated `groff' command line.  The `-m' options will
be checked by `grog'.


# preconv --help
usage: preconv [ option ] [ files ]

-d           show debugging messages
-D encoding  specify default encoding
-e encoding  specify input encoding
-h           print this message
-r           don't add .lf requests
-v           print version number

The default encoding is `UTF-8'.

# /usr/lib/man-db/manconv --help
Использование: manconv [ПАРАМЕТР...]
            -f КОДИРОВКА[:...] -t КОДИРОВКА
            [ИМЯ-ФАЙЛА]

  -d, --debug                показывать сообщения
                             отладки
  -f, --from-code=КОДИРОВКА[:...]
                             возможные кодировки
                             исходного текста
  -q, --quiet                выводить некоторые
                             предупреждения
  -t, --to-code=КОДИРОВКА
                             кодировка вывода
  -?, --help                 показать эту справку
      --usage                показать короткую справку
                             по использованию
  -V, --version              показать номер версии
                             программы

Обязательные или необязательные аргументы
к длинным именам параметров остаются
таковыми и к соответствующим коротким
параметрам.

Об ошибках сообщай по адресу cjwatson@debian.org.

# /usr/lib/man-db/zsoelim --help
Использование: zsoelim [ПАРАМЕТР...] ФАЙЛ...

  -d, --debug                показывать сообщения
                             отладки
  -C, --compatible           для совместимости
                             (игнорируется)
  -?, --help                 показать эту справку
      --usage                показать короткую справку
                             по использованию
  -V, --version              показать номер версии
                             программы

Об ошибках сообщай по адресу cjwatson@debian.org.

# tbl --help
usage: tbl [ -vC ] [ files... ]

man groff

# groff -help
usage: groff [-abceghijklpstvzCEGNRSUVXZ] [-dcs] [-ffam] [-mname] [-nnum]
       [-olist] [-rcn] [-wname] [-Darg] [-Fdir] [-Idir] [-Karg] [-Larg]
       [-Mdir] [-Parg] [-Tdev] [-Wname] [files...]

-h      print this message
-v      print version number
-e      preprocess with eqn
-g      preprocess with grn
-j      preprocess with chem
-k      preprocess with preconv
-p      preprocess with pic
-s      preprocess with soelim
-t      preprocess with tbl
-G      preprocess with grap
-J      preprocess with gideal
-R      preprocess with refer
-a      produce ASCII description of output
-b      print backtraces with errors or warnings
-c      disable color output
-dcs    define a string c as s
-ffam   use fam as the default font family
-i      read standard input after named input files
-l      spool the output
-mname  read macros tmac.name
-nnum   number first page n
-olist  output only pages in list
-rcn    define a number register c as n
-wname  enable warning name
-z      suppress formatted output
-C      enable compatibility mode
-Darg   use arg as default input encoding.  Implies -k
-E      inhibit all errors
-Fdir   search dir for device directories
-Idir   search dir for soelim, troff, and grops.  Implies -s
-Karg   use arg as input encoding.  Implies -k
-Larg   pass arg to the spooler
-Mdir   search dir for macro files
-N      don't allow newlines within eqn delimiters
-Parg   pass arg to the postprocessor
-S      enable safer mode (the default)
-Tdev   use device dev
-U      enable unsafe mode
-V      print commands on stdout instead of running them
-Wname  inhibit warning name
-X      use X11 previewer rather than usual postprocessor
-Z      don't postprocess


-T, --troff-device[=DEVICE]

-T dev Set output device to dev.  For this device, troff generates the intermediate output; see groff_out(5).
Then  groff  calls  a  postprocessor to convert troff's intermediate output to its final format.  Real devices in groff are

dvi    TeX DVI format (postprocessor is grodvi).
html
xhtml  HTML and XHTML output  (preprocessors  are  soelim  and  pre-grohtml,  postprocessor  is
post-grohtml).
lbp    Canon CAPSL printers (LBP-4 and LBP-8 series laser printers; postprocessor is grolbp).
lj4    HP LaserJet4 compatible (or other PCL5 compatible) printers (postprocessor is grolj4).
ps     PostScript output (postprocessor is grops).
pdf    Portable Document Format (PDF) output (postprocessor is gropdf).

For the following TTY output devices (postprocessor is always grotty), -T selects the output encoding:
ascii  7bit ASCII.
cp1047 Latin-1 character set for EBCDIC hosts.
latin1 ISO 8859-1.
utf8   Unicode  character  set  in UTF-8 encoding.  This mode has the most useful fonts for TTY
mode, so it is the best mode for TTY output.

The following arguments select gxditview as the ‘postprocessor’ (it is rather a viewing program):
X75    75dpi resolution, 10pt document base font.
X75-12 75dpi resolution, 12pt document base font.
X100   100dpi resolution, 10pt document base font.
X100-12
100dpi resolution, 12pt document base font.

The default device is ps.


Macro Packages
Macro packages can be included by option -m.  The groff system implements and  extends  all  classical  macro packages  in a compatible way and adds some packages of its own.  Actually, the following macro packages come with groff:

man    The traditional man page format; see groff_man(7).  It can be specified on the command line as -man or -m man.

mandoc The  general  package for man pages; it automatically recognizes whether the documents uses the man or the mdoc format and branches to the corresponding macro package.  It can be specified on  the  command line as -mandoc or -m mandoc.

mdoc   The BSD-style man page format; see groff_mdoc(7).  It can be specified on the command line as -mdoc or -m mdoc.

me     The classical me document format; see groff_me(7).  It can be specified on the command line as -me  or -m me.

mm     The  classical mm document format; see groff_mm(7).  It can be specified on the command line as -mm or -m mm.

ms     The classical ms document format; see groff_ms(7).  It can be specified on the command line as -ms  or -m ms.

www    HTML-like macros for inclusion in arbitrary groff documents; see groff_www(7).

Details  on  the  naming of macro files and their placement can be found in groff_tmac(5); this man page also
documents some other, minor auxiliary macro packages not mentioned here.


ronn - convert markdown files to manpages

ronn [format...] file...
ronn -m|--man file...
ronn -S|--server file...
ronn --pipe file
ronn < file


# reman --help
USAGE: reman [input_file [output_file]
  or : reman - [output_file]
generic format processor

# desman --help
USAGE: desman [input_file [output_file]
  or : desman - [output_file]
man page format processor

# apt install debian-goodies
# debman --help
Usage: debman [options] [-- man(1) options] <man page name> ...

Options should be exactly one of:
        -f package.deb          read pages from package.deb archive
        -p package              download .deb for package and read pages
                                from there

# rman --help
rman
     [-f <ASCII|roff|TkMan|Tk|Sections|HTML|XML|MIME|LaTeX|LaTeX2e|RTF|pod>]
     [-S(ource of man page passed in)] [-F(ormatted man page passed in)]
     [-r <man reference printf string>] [-l <title printf string>]
     [-V(olume) <colon-separated list>] [-U(RLs as hyperlinks)]
     [-b (show subsections)] [-k(eep head/foot)]
     [-n(ame of man page) <string>] [-s(ection) <string>]
     [-p(aragraph mode toggle)] [-t(abstops spacing) <number>]
     [-N(ormalize spacing, changebars)] [-y (zap hyphens toggle)]
     [-K (declare that page has no breaks)]
     [-d(iff) <file> (diff of old page source to incorporate)]
     [-M(essage) <text> (included verbatim at end of Name section)]
     [-R(ebus words for TkMan)] [-C (enable Tcl/Tk formatting)]
     [-o (no op)] [-O <arg> (no op with arg)]
     [-q(uiet--don't report warnings)] [-h(elp)] [-v(ersion)]
     [<filename>]


п.с. Очень много утилит\скриптов для работы man страницами, только толку мало, очень скудная информация в русскоязычном сегменте

Комментарии