this post was submitted on 24 Jul 2023
31 points (100.0% liked)

Linux

48144 readers
722 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Is there a common location of all of the man files, so I can view them in a different editor instead of the cli?

Or is there a $ man dump command that I can use to export each individual man file for what's installed

Thanks, Forever noob

top 7 comments
sorted by: hot top controversial new old
[–] [email protected] 26 points 1 year ago* (last edited 1 year ago) (1 children)

You can list every man page installed on your system with man -k . , or just apropos .
But that's a lot of random junk. If you only want "executable programs or shell commands", only grab man pages in section 1 with a apropos -s 1 .

You can get the path of a man page by using whereis -m pwd (replace pwd with your page name.)

You can convert a man page to html with man2html (may require apt get man2html or whatever equivalent applies to your distro.)
That tool adds a couple of useless lines at the beginning of each file, so we'll want to pipe its output into a | tail +3 to get rid of them.

Combine all of these together in a questionable incantation, and you might end up with something like this:

mkdir -p tmp ; cd tmp
apropos -s 1 . | cut -d' ' -f1 | while read page; do whereis -m "$page" ; done | while read id path rest; do man2html "$path" | tail +3 > "${id::-1}.html"; done

List every command in section 1, extract the id only. For each one, get a file path. For each id and file path (ignore the rest), convert to html and save it as a file named $id.html.

It might take a little while to run, but then you could run firefox . or whatever and browse the resulting mess.

Or keep tweaking all of this until it's just right for you.

[–] [email protected] 2 points 1 year ago

Thank you for the insight! This is super helpful

[–] [email protected] 8 points 1 year ago* (last edited 1 year ago) (1 children)

the command manpath will show the paths it searches. usually it's /usr/share/man and /usr/man is a common location for them.

[–] [email protected] 4 points 1 year ago

And the man path can be configured using the $MANPATH environment variable, just like $PATH.

Oh, and if you leave a colon : at the end of $MANPATH, then it's like appending the default search path (which is binary specific I suppose).

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago) (1 children)

Sometimes I find myself looking man pages up on linux.die.net/man and mankier.com. Distros like Debian have manpages.debian.org (all manpages in Debian) which are useful as a web-based reference too

[–] [email protected] 2 points 1 year ago

Nice, thanks for the tip!

[–] [email protected] 4 points 1 year ago
load more comments
view more: next ›