Terminal – How to Search or Print a Man Page Using Terminal

command lineprintingterminal

I often need to search or print a man page. Executing the man [-a index] name command invokes a readonly navigable viewer of name[(index)]. For example, the command below displays open(1).

man  open

The command below displays open(n).

man  -a  n  open

Is there a way to use the Terminal application to involve a viewer where I can search and/or print a man page?

Best Answer

Typing just the command name in Terminal and then right-click on it and select Open man Page, displays it in a fully scrollable and searchable Terminal window, which is much better then typing e.g. man bash. You can also use the key combination P to print the contents.


As a side note, here is a function I added to my .bash_profile file to create a PDF of each BSD command I'd check the manual page for:

manp () 
{ 
    docDir="$HOME/Documents/BSD Commands"
    [[ ! -d $docDir ]] && mkdir -p "$docDir"
    if [[ ! -f $docDir/$1.pdf ]]; then
        man -t "$1" | pstopdf -i -o "$docDir/$1.pdf"
        open "$docDir/$1.pdf"
    else
        open "$docDir/$1.pdf"
    fi
}

So, in Terminal, typing e.g. manp bash instead of man bash a PDF gets created, if it hasn't already been, and then opened by the app registered to handle PDF documents. The default is Preview, however on my system it's set to use [Skim][1], as its search functionality is better then Preview and as a matter of fact will find the search string when Preview just will not.

Note that the first time the function is used it will enumerate some fonts in the output in Terminal, however this is a one time enumeration of the fonts.