when do you usually use the man page for a complex command line tool to answer a question you have? (like git, openssl, rsync, curl, etc)

(edit: no need to say "i use --help then man")

I’d look there first
57.6%
Only after trying other options first
33.2%
Never
6.4%
Other / not sure
2.8%
Poll ended at .

i'm very curious about everyone who says "I'd look there first", if I want to figure out how to do something new I think I'll usually google how to do it rather than look at the man page, and then maybe later look at the man page to look up the details

(I've gotten enough of these answers:
- "I like that man pages don't require changing context"
- "with the man page I know I have the right version of the docs")

i think part of the reason I'm feeling interested in man pages right now even though I rarely use them is that search has gotten so much worse, it's frustrating, and it makes it feel more appealing to have trustworthy sources with clear explanations

@b0rk I date from the days when man pages were a novelty.

If it doesn't have a man page, it isn't finished.

@b0rk
I tend to look for examples close to what I want to do, or tutorials. I would love if man pages were more consistent in giving clear examples for common use cases. This is much easier to parse quickly than detailed explanations.

@b0rk One thing, and I don't know that this is solveable or maybe it was supposed to be solved by info pages but those were hard to memorize how to use, is learning the capabilities of a tool like...up front and at the top.

It's so hard to find the ingredients I need to concoct the correct incantation from man pages, even when I've done the thing with the tool before.

And sometimes you find things that SEEM like what you need but aren't.

@b0rk I agree with the sentiment, and I think that's why I installed tldr.sh again recently 🥲 granted that's far less in depth that what is provided by the man pages, but examples are concise.
@minkiu @b0rk omg this would’ve saved my mind when I was tinkering with tmux which has the worse man page I’ve ever seen.

@b0rk I have a lingering guilt about not going to man pages first, but often a blog post has been better crafted than the friendly manual. Not all manuals but enough to encourage an antipattern in search first.

I totally agree with your motivation to address/revaluate that.

@RyanParsley to be clear for me i'm mostly interested in figuring out if the man pages can become _better_ so that using them is actually a good experience, not accepting a bad experience

@b0rk a general statement of when official docs feel not super helpful is when they clearly articulate what a tool does without managing to express why/when kinds of context.

A good blog post about a tool tells a story that docs don't tend to.

Why does `man stow` mention perl or Carnegie mellon's depo program? That man page is pretty good all around but does have stuff to skim over that doesn't feel like it's there in service of the user.

@b0rk when you say better, do you mean content or format? Like jq man page is pretty stellar on the content side.

@RyanParsley either!

(it's a little hard for me to think about jq because I've completely given up on learning the jq language, but I don't think that has anything to do with the quality of the documentation)

@b0rk are you already familiar with https://tldr.sh/. I don't have it in my workflow, but seems like a neat idea to complement man pages.

Even if you have no interest in using it, perhaps it's existence and what's working there could be useful data.

tldr pages

Simplified and community-driven man pages

@RyanParsley yeah! i think 20 people have told me about it today haha, I don't use it either but people tell me all the time that they like it, I think it's an interesting project
@b0rk @RyanParsley any idea what are the main pain points make it hard to learn? "everything is a generator" and how arguments work are two of them it seems
@wader not sure, maybe the idea of learning a specialized domain specific language just doesn't feel worth it. Like I've never learned the awk language either
@b0rk that makes sense, and same for me about awk, maybe because jq fills that gap for most of my needs. but it you ever need to do lots of adhoc query and transform of semi-structured data i can recommend to learn jq!
@wader been trying out fx recently and I think it might work bette for mer, we'll see https://cheat.sh/
cheat.sh/:firstpage

@b0rk 👍 good to hear, only used it briefly. happy to answer jq questions if you ever venture into it again

@b0rk the man page for just is basically a less pretty help command :)

I suspect if people discover too many in a row like that and stop running that command.

@b0rk i remember this: when i learned about man and started using it, the stuff i wanted to know usually was on page 5 (quick reference / parameters). But i always forget that so it felt frustrating and abandoned them.

Instead I use --help command options. I only go to man when i want to learn the full and long version. But sometimes I do.

@b0rk usually I'd first look at --help, then web search, then man page. If I know it's a certain option and I just don't remember the name or how to use it it might be --help, man page then web search.

@b0rk I'm the kind of person who enjoyed reading man pages for leisure.

I read through the entirety of the rsync man page to compose my own favourite rsync invocation once.

The only tools where I resort to web search are shells, because their man pages are really hard to navigate (finding documentation for `read` in the bash man page is ... a nightmare).

Web search is often imprecise and as you note, has gotten so much worse that I am glad I never fully relied on it.

@b0rk I gave up on groff so long ago that I forgot to try using an LLM to create a man page from HeaderDoc and Markdown. I'll have to give that a shot sometime.
@b0rk same here. I find man pages quite overwhelming, especially for complex tools. Tldr has also become a go to source for me
@Chase @b0rk Thanks for mentioning tldr, it looks great
@b0rk I typically use -h or --help first, then the man page if necessary.
@bortzmeyer @b0rk same.  and then web search if the man page is unhelpful.  i think part of it is trying to avoid a context switch from the terminal?
@b0rk I voted for man pages first;but I implicitly assumed it was a tool with which I was already familiar; if it were a completely new tool, there's a good chance I'd go web-search-first
@b0rk
-First man
-Second no more google or any others similar, but https://lumo.proton.me or https://chat.mistral.ai/, more information, easier to use
Lumo: Privacy-first AI assistant where chats stay confidential

Meet Lumo, the zero-access encrypted AI assistant by Proton that does not track or record your conversations. Ask me anything — it's confidential

@Phil35 @b0rk this.

If the man page is difficult to decipher or missing, I’ll try --help and as a third option ask Mistral. Usually I don’t have to go further, but on the rare occasion I do, I try to find a blog post or YouTube video explaining it.

@b0rk the most memorable drawback I've run into with online man pages is version differences between what I have installed and what the online man page is.
@b0rk that's basically what I do. program builtin help then as it's no help Google/other search engine then if i still need to know something hit the man page

@b0rk For me, it is avery very old habit. When I started out poking at Unix systems, if I wanted to "get information from outside the computer I was on", I could, if I was lucky, turn my head and ask someone else in the same room.

Otherwise, I would have to fire up a newsreader, post to UseNet, wait for the UUCP spool to empty (over a modem), wait for the reply to be written, then wait for the relevant article to trickle back in a later UUCP update batch.

I will, frequently, after having opened the man page, start a web search pretty soon after, because many man pages are badly written (and I must say that good technical writing is a skill that doesn't necessarily correlate with "ability to write code").

@vatine @b0rk
Yup, same. My first laptop ran qnx 4 and came with the man pages on paper (it was something like 1.5 shelf-metres of very nicely bound softcover books), and I was coming from MS-DOS and Win 3.1. I spent a lot of time poring over those manuals to learn even the most basic stuff like "how to 'dir'" and "how to quit elvis".
@vatine @b0rk I feel you, with a twist: The first UNIX System I used was a Siemens SINIX machine at the university hospital, and it came with many, many volumes of printed out man pages! I was tasked with administering the machine as a Zivildienstleistender, because nobody else was around anymore who could do it ...
So I spent the first month just reading all the man pages and trying out commands.
@b0rk
Two things, for me:
* If I'm already using $tool, then "man $tool" seems the most direct way to find what I need to know to use it
* web search sucks and has for a long time now. Google or DDG is just as likely to direct me to slop, or previously to an undated HOWTO that might be 3 versions out of date and from before the tool was rewritten in rust or some other reason to fully change its UX
@b0rk As others have mentioned, -h first, then man pages.
Some programs are very well documented, so I'd rather check what's immediately available first (and trust the developer), and then only confront the possibly overwhelming, outdated or confusing search engine replies which often take more time and caution to handle

@b0rk It depends. I use Google first when I try to find the right tool for the job, and those searches usually yield full commands that I can just copy-paste. But a manpage in this case won't help as I don't know what to man.

When I know the right tool, and it's not ffmpeg, I try to craft the correct command myself. That helps me remember it better.

@b0rk for me, I think it's a combination of an 'old people' thing and a 'highly suspicious of a lot of the modern Internet' thing.

When I learned to use computers, competent search engines and rich online resources like Stack Exchange were a long way off – even having the Internet in your home without paying per minute wasn't around yet. So you had to develop the skills of finding stuff out from the available local resources like manuals, because that was all you had.

Then good search engines came along, but I was always aware that there's a risk of depending too much on them and losing the ability to figure stuff out yourself. Even now, I sometimes find myself coding without the Internet (or effectively so – laptop on train with terrible connectivity) and it's useful that I can still get things done.

And now search engines are all getting enshittified, and/or monetised, and/or straight-up _worse_ (Google doesn't return the results I actually wanted nearly as often as it used to). And the less said about 2020s answers to this kind of question, the better. So I'm doubly glad I haven't abandoned my old approaches to things. More and more I feel it's important to keep external corporately-provided "do it for you" services at arm's length, and not base your whole workflow on them to the extent that you're a captive market or dependent on them not going down.

@simontatham yea i think part of the reason I'm newly interested in man pages right now is that search engines are so much worse than they used to be
@b0rk @simontatham another aspect: the man page on your machine matches the software on your machine
the online docs are probably for the very latest version, which is probably not the one you're running
(I used to make this argument on IRC channels a couple of decades ago… so yes to the "old people" aspect, too)
@dakkar @b0rk @simontatham Another problem with Googling the answer is that most of the content it finds is for Ubuntu, and I don't have Ubuntu.

@b0rk @simontatham You've DEFINITELY given me something to think about.

In rsync's case in particular, I go to the HTML version of the man page on Samba's website and look it up there. I think if the man page was easier to invoke outside of a terminal window with browser/editor bindings (read: CTRL+F), I train my brain to use the local copy.

@cr1901 @b0rk @simontatham for certain tools that have a capital-M Manual—you know, the organized kind that you'd get an HTML or PDF render of—you'll sometimes find the HTML packaged in Linux distros (as a separate -doc subpackage if not in the main package itself). but to open such docs, you'll have to root around in /usr/share{,doc}, and that's if you know the manual exists in the first place; you might just as well find a bare-minimum README...

seems like there's an unfilled niche for making a system's heterogenous doc tree more discoverable. something with slightly more tailored UI than a directory tree view (let alone navigating to each one individually). a generated HTML page would be a good start, and a plugin for KHelpCenter and such would be really cool. it's entirely possible there's an existing solution here I'm just not familiar with, though

@simontatham @b0rk Slightly different area, but for programming I’ve had good experiences with devdocs and devdocs.el as long as the programming language has a large standard library and good docs (doesn’t help with third-party libraries).

@rudi @b0rk yes, programming languages that have a strong culture of good docs are definitely a plus.

Still on the subject of decoupling myself from Internet dependence, I've been working hard on my Rust workflows recently so that I more often use local `cargo doc` or `rustup doc` instead of just going to docs.rs/foo or doc.rust-lang.org/bar. Partly that means I can still consult the docs if the Internet is out of reach, and partly it means I get the version of the docs that matches what I'm actually using.

("Working hard" in the sense that first I had to fix some annoying problems that meant those commands didn't even work for me, like Ubuntu wanted to open the rustdoc output in Abiword, or rustup put its docs somewhere that the apparmor restrictions on snap!Firefox didn't let it read.)

@simontatham @b0rk yes this - I’m old enough to remember man pages that were actually printed out in A4 ring binders. They do have the advantage of not needing to wade through a dozen HowTo articles that answer the most basic usage to find documentation that actually covers the options you actually need.
@b0rk in general I'm in the terminal, I know the command should do the thing I want, and man is in the terminal so I don't have to switch app (and being distracted by the browser)

@b0rk answered with that option as well. with alt+h in fish, it just opens as some kind of overlay, allowing me to search the man page without removing what I've entered first.

If the man page doesn't work, the second approach is `cheat <command>` with cheat being a fish function which queries cheat.sh/<command> and pipes the output into bat.

And only after that, I'll search for information via the browser ^^

@b0rk It was a bit of a toss-up for me. Sometimes I'll go straight to man, other times straight to generic google alternative. Man has the advantage of being right there - I don't even have to change my window focus - and while it can be very dense, there's a good chance I'll find an answer in the introduction or the examples at the end. But often it's simply too dense and I'm more interested in quickly solving the problem right in front of me than mastering a new tool, and then I'll open a browser and do a search.

The bad news for man pages though is that quality has definitely declined over the years. More modern packages are less likely to have a good man page, or sometimes don't have one at all. It's pretty obvious why, no sense complaining about it, but it can be annoying.

@uastronomer when you say "it's pretty obvious why" what do you mean?

(is it that with stack overflow & the internet generally it feels like there's less pressure to have good docs than when they were the only source of information?)

@b0rk Hmm. Not so obvious after all, now that you've made me think about it.

I mean that dev teams don't always have the resources or interest in supporting what they might see as "legacy" documentation, especially when they are already expected to put documentation on their website, in github, on discord, or wherever else their community hangs out. This wasn't an option in the old days, but now it is.

@b0rk usually Google just brings me to a online man page if it's a program that has an extensive man page or --help (git, curl, etc.). If I don't know the program has a good man page then I will Google.
@b0rk i tend to first try to find the answer in the man page, and if i can’t do so quickly i’ll search for it on the internet. and if that fails, i’ll read the man page more carefully

@b0rk It kind of depends on the question—usually my question is something like “what's the option to do such-and-such again?” which is easily answered by --help or the manpage.

When it's something more conceptual, then --help probably won't explain it and my first stop will be the manpage to see whether it does, because it's authoritative and I already have it. If that fails, then I'll try the web, and maybe a relevant book if I have one.

@b0rk I look a the man page if there is an option for what I want, usually searching for keywords I am interested in. However with git/ffmpeg I usually just google for what I need too. Their manpages are so full of options that I get easily overwhelmed. Some big manpages like bash's I've seen enough times to not get lost.

@b0rk I search for tools where I already know the man page is unhelpful (either too small or there's just a million options that make a whole language to learn to do basic stuff).

Which is quite a lot tbh, but I do absolutely start out with the official documentation on practically everything. Answers and mistake-preventions are almost always found in there the quickest, because mistakes consume a ton of time.

@b0rk I use apropos first to find the manual pages around the subject. If it doesn't turn up anything, I hit the web (or 'apt-cache search' to see if there are packages that might help me)