20

I am reading a very long man page (man ssh). I want to save all of that text for more convenient reading in a text-editor.

Unfortunately, choosing either of :

  • Edit → Select All → Copy

  • Shell → Export Text As...

results in saving only a screen-full of the text, not all the text that scrolled by.

How do I extract the text of an entire man page?

  • There is a free 3rd party app Man Reader. Opens a window with a list on the left of all possible man pages. When you select one it prints the contents in the middle pane. Pretty nice. – jmh Nov 20 '18 at 23:12
25

You can push plain text to the clipboard by piping to pbcopy, to paste anywhere as usual.

man ssh | col -b | pbcopy

or equivalent

man -P "col -b | pbcopy" ssh

the latter of which is nicer if you want to use it as an alias, like mancp ssh, given:

alias mancp='man -P "col -b | pbcopy"'

There are methods to go to HTML/PDF: Can man pages be converted to html and/or pdf format?


If it's just the nicer reading experience you're after, you can right-click on a selection of a command and open its man page as a separate window/tab, with normal scrolling and ⌘F find.

Nicer reading

You can customise what this looks like in Terminal Preferences → Profiles, under the Man Page profile which is one of the default profiles to exist.
This includes font family and size (also see View menu) and background/foreground colours.

Man Page profile preferences

  • 2
    The right click for man page doesn't work with iTerm. On my machine it works sort of with terminal. The window flickered at I guess 10 times a second. I could stop it by clicking but i didn't know where i was clicking... – jmh Nov 20 '18 at 23:19
  • @jmh Seems to be a Mojave bug, this flickering, got it here as well – nohillside Nov 20 '18 at 23:30
  • 1
    pbcopy and pbpaste are two of the greatest utilities available on Macos. – Christopher Schultz Nov 21 '18 at 15:19
  • 1
    Thanks! All the Answers are informative and useful, but I had to accept this one. The man ssh | col -b | pbcopy solution directly addresses the specifics of my Question. And then, as icing on the cake, the Terminal.app’s built-in man-page reader trumps that for ease-of-use. – Basil Bourque Nov 21 '18 at 21:19
  • A useful expansion of your solution can also include the column width, and/or opening it directly in the text editor of choice, e.g.: MANWIDTH=80 MANPAGER="col -bx" man tmutil | open -fa "TextMate" – Asmus Nov 22 '18 at 12:21
13

If you want to read the man page in Preview, nicely formatted as a PDF, you can run

man -t ssh | open -f -a Preview

Or

man ssh | col -b | open -f -e

to open the text version in TextEdit.

6

Pipe the standard output of running man command to builtin col utility. Run the following command line:

man ssh | col -b > ssh.txt

  • @BasilBourque I also found this wonderful article. – Nimesh Neema Nov 20 '18 at 22:24
4

The best reading experience for these tasks is achieved when using a dedicated application for that.

Two candidates:

AquaLess

AquaLess is a text pager for Mac OS X. It allows you to browse plain text files and -- more importantly -- text output from Unix command line tools. AquaLess is a Cocoa replacement for the less command, which is constrained to the terminal window. AquaLess opens a separate window for each text, so you can keep working in the terminal while you read.

Or ManOpen

ManOpen is a MacOS X GUI application for viewing Unix manual pages, which are the standard documentation for Unix command line programs, programmer libraries, and other system information. It can open files directly or be given titles, in which case it will display the output from the `man' command-line program. An apropos interface is also provided, which is basically a quick-and-dirty search of the man page databases. Services are provided to other applications to open selected files/titles or do apropos searches using the selected text. ManOpen can be useful for opening a man page without dropping down to the command line, browsing and searching through long and complex man pages, or simply for printing them out.

Also included is an `openman' command line tool, which is similar to man except it will display the man pages in ManOpen.app instead of directly to the terminal.

Or read those pages in Safari? Then go bwana

Download Bwana and drop it into your applications folder. Then, without even running it, you can start viewing Unix manual pages using your browser. Just type "man:" followed by the man page you're looking for into your browser's URL field. Hit enter and let Bwana do the rest.

The man pages generated by Bwana are simple and to the point. We just threw in some color, some bold headers and cleaned it up a bit, so they go easy on the eye. In fact, Bwana is so simple - there's not much else we can say about it. So just download Bwana now to see how easy it integrates with your browser and what a difference it makes in viewing man pages.

You can then build a shell function for it like this:

function sman
    open -a Bwana man:$1
end

For completeness sake: if you have X11 installed, then you also have xman.

Other candidates might be Man Reader ($), Manpager, Manpower ($), Man Viewer.

3

Why make things more complicated than they are?

https://man.openbsd.org/ssh

Since you can post here, you obviously have access to the internet.

If you google around a bit you can probably find versions formatted in different ways, e.g., pdf or so.

  • 4
    +1 for pragmatism although now you have to figure out which version of the man page you're looking for, sometimes (for the various tools where the command line arguments are different between e.g. Linux and BSD, or where things changed a lot between versions) – fluffy Nov 21 '18 at 8:42
  • and in addition to @fluffy’s comments, this won’t work for any macOS tools of which there are plenty, e.g. tmutil for Time Machine. – grg Nov 21 '18 at 10:37
  • 1
    @grg Yes it does ss64.com/osx/tmutil.html – d-b Nov 21 '18 at 11:18
  • 1
    That’s a different website, did you get to that by searching from your link in the post or just Google? I’m aware there’s plenty of man pages online, including Apple’s own developer reference which indeed contains tmutil man page, but then this answer becomes nothing more than ‘Google it’? – grg Nov 21 '18 at 12:45
  • @grg I got it from Google. Yes, but the purpose with the question was to simplify reading man pages and webpages are a good way to achieve that goal. – d-b Nov 21 '18 at 23:31
2

If you like you have PDF copies of your manual pages, 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, 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.

The nice thing about PDF copies is it maintains formatting, i.e. bold font and italics, etc.


As a side note, 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 must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .