Назад | Перейти на главную страницу

Невозможно распечатать страницы руководства из команды man

Я хочу сделать страницы руководства более толстыми. Однако мне не удалось это сделать.

Псевдокод того, чего я пытаюсь достичь

man man | lpr

Как можно распечатать руководство, чтобы вы сначала видели, сколько страниц будет напечатано?

man -Tps man | lpr

Это говорит человеку отформатировать вывод как файл postscript, который можно передать прямо на принтер. См. Дополнительную информацию о параметрах форматирования -T (troff) на странице руководства.

Чтобы предварительно просмотреть выходной файл, передайте его в файл и просмотрите его с помощью gv или okular.

man -Tps man > manual.ps
gv manual.ps

мужчина ls | col -b | lpr -P my_printer

Это распечатает страницу руководства для "ls", отформатирует ее с помощью "col", а затем распечатает на принтере с именем "my_printer"

Форматирование не требуется, но избавляет от специальных символов, упрощая чтение.

Более новые версии man (по крайней мере, моя версия на openSuSE 11 :)) автоматически определяют, является ли вывод терминалом или конвейером. Если вы хотите, чтобы неформатированные страницы руководства выводились на стандартный вывод, попробуйте:

man man | cat

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

man man | a2ps --stdin='man(1)'

Ответ на вопрос о количестве страниц выше (требуется 50 человек, чтобы добавить комментарии):

man ls | wc -l | awk '{ print $1/60 }'

По умолчанию количество строк на странице равно 60, поэтому, если вы не меняете это значение, просто разделите на 60 и округлите в большую сторону. Я забыл, как заставить awk обрабатывать FP как INT, чтобы округлить вас.