≡ Menu

How do I Print Out a Linux man or info Page?

Some time it is necessary to print a Linux man or info page. To print a ls command man page type the following command:

$ man ls | col -b | lpr -P hp1_floor2
Where,

  • col -b : To format man page output, it will not show any special character such as backspaces
  • lpr -P hp1_floor2 : hp1_floor2 is the printer name of the Linux/UNIX printer queue

To print the man page with effects such as italic and bold fonts on the HP Laser Jet printer, enter:
$ zcat /usr/share/man/man1/ls.1.gz | groff -man -Tps | lpr -P hp1_floor2

You can save man page as a ps file, enter:
zcat /usr/share/man/man1/ls.1.gz | groff -man -Tps >top.ps

Where,

  1. zcat : Open compressed /usr/share/man/man1/ls.1.gz file
  2. groff : Go through groff document formatting system, which is responsible for formatting of man page with effects such as italic and bold fonts on both screen and printer
  3. lpr -P hp1_floor2 : hp1_floor2 is the printer name of the Linux/UNIX printer queue

Here is a shell script that we have installed on all Linux workstations, it saves man page in a text file and later user can print it using lpr command.

#!/bin/bash
# Linux shell script to save man pages to text file
# so that later user can print them
# Created by nixcraft <http://www.cyberciti.biz>, under GPL v2.0 or above.
# ----------------------------------------------------------------------
CMDS="$@"
OUTDIR="/tmp/$USER.man"
[ ! -d "$OUTDIR" ] && mkdir -p "$OUTDIR"  :
for i in $CMDS
do
 man "${i}"  col -b > "$OUTDIR/${i}.txt"
done
echo "**********************************************************"
echo "All man pages saved to $OUTDIR directory"
echo "Just goto \"$OUTDIR\" directory and type the following command
to print man page(s):"
echo "lpr *.txt"
echo "**********************************************************"
exit 0
 

Just type the script-name followed by Linux commands, for example to print a man page of ls and bash type
$ saveman "ls bash"

Related: How do I print or make hard copies of Linux man and info pages?

Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

{ 3 comments… add one }

  • Charles McCreary May 27, 2012, 3:16 am

    I tried this:
    http://www.cyberciti.biz/tips/how-do-i-print-out-a-linux-man-or-info-page.html

    I think:
    man “${i}” col -b > “$OUTDIR/${i}.txt”

    should be
    man “${i}” | col -b > “$OUTDIR/${i}.txt”

  • Murpholinox May 31, 2012, 6:08 am

    and for (p)info pages how can I get the information into a pdf file?

  • Sebastian February 26, 2015, 10:45 pm

    Very useful instructions. Although i did not quite understand how to find the correct value to pass to the -P switch, the printer-name/destination. But was able to find it eventually:

    $ lpstat -s
    system default destination: HP-Photosmart-7200
    device for HP-Photosmart-7200: hp:/net/Photosmart_C7200_series?ip=192.168.1.3

    Where HP-Photosmart-7200 is the value i was looking for.

Leave a Comment