How can I make manpages (from the man command) open in a web browser for easier navigation?
4 Answers
Using the man program
Looking at the manpage of man,
man man
There is the -H option, or its equivalent --html which will generate the HTML for the manual and open them in the browser.
This option will cause groff to produce HTML output, and will display that output in a web browser. The choice of browser is determined by the optional browser argument if one is provided, by the $BROWSER environment variable, or by a compile-time default if that is unset (usually lynx). This option implies -t, and will only work with GNU troff.
So to open any man page in the browser just use:
man -Hfirefox <command>
or
man --html=firefox <command>
Both are the same.
You can use firefox, google-chrome, chromium-browser or any other in place of the firefox word.
Select a default browser permanently
Before calling the man command, use the following command:
export BROWSER=firefox
This way, you can just use man -H or man --html without specifying the browser each time.
man -H ls
You can also add the previous export command to your ~/.bashrc so you won't have to type it each time you open a new terminal and try using man -H
Troubleshoot
If you got an error saying something like this:
man: command exited with status 3: /usr/bin/zsoelim | /usr/lib/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE | preconv -e UTF-8 | tbl | groff -mandoc -Thtml
You will need to install the groff package.
sudo apt-get install groff
Using Yelp
If a choice of browser is not relevant, you can use the yelp command which offers navigation through the man pages.
yelp man:<command>
# example: yelp man:ls
Using the Ubuntu Manpage Repository
You can also visit https://manpages.ubuntu.com/ and check almost all man pages there. All versions of the man pages for all the Ubuntu versions are available there. It also features a search functionality.
Of course, the downside of using the website is that you can't access it without being connected to the Internet.
- 14,180
man can actually do a lot of this on its own. You just need to install groff (GNU troff text-formatting system) and then you can use the H flag (cause groff to produce HTML output).
sudo apt install groff
man -Hfirefox bash
- 17,371
- 299,380
man2html
To search man pages
I installed the man2html package then navigated to http://localhost/cgi-bin/man/man2html to view the man pages. These pages can be viewed offline, link to other man pages and feature a search function.
Source
To directly open a page (from command line)
I made this script here (it's not short), it just navigates directly to the webpage (from man2html) for a certain manpage. It can open multiple man pages specified as command line arguments. Save the script somewhere and give it execute permissions (chmod +x script.sh). Run it as ~/script.sh (assuming saved in ~ directory) with pages to open as arguments. To open something like init(8), use ~/script "8 init".
dwww
To search man pages
Install the dwww paackage and navigate to http://localhost/dwww/man/1 to search the pages. These pages can be viewed offline, link to other man pages and feature a search function.
To directly open a page (from command line)
I made this script here (it's not short), it just navigates directly to the webpage (from dwww) for a certain manpage. It can open multiple man pages specified as command line arguments. Save the script somewhere and give it execute permissions (chmod +x script.sh). Run it as ~/script.sh page (assuming saved in ~ directory) with pages to open as arguments. To open something like init(8), use ~/script init/8. Without pcregrep, you need to type the /8 all the time, with it, just type the name of the page.
In response to Dan and ratijas comment : you can force firefox to open in a new process
man -H"firefox -new-instance -P 'default'" ls
I personnally have aliased it as man :
alias man="man -H'firefox -new-instance -P default'"