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

Linux

48144 readers
724 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

you are viewing a single comment's thread
view the rest of the comments
[–] [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