How do I make man pages open in a web browser?
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.
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
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.