I like using man the best, but there are two other methods that command-line programs can use to provide documentation, GNU's info and built in help (triggered by -h or --help on command-line).
GNU's info works better than man for more complex documentation--its practically a curses based e-book reader. For a taste of using info based documentation, try
info spell
on the command line to see the documentation for the aspell command. Info is even used as the internal help documentation for Emacs, reachable from inside of Emacs (via "Cntl-h i", naturally). I think rsync has too many facets for a man page and would benefit from having a longer info file that could explain the many use cases for rsync.Last resort is Google.
CLIs are much more limited at discoverability compared to a graphical interface (TUI/GUI) which can show you all the options and let the user directly interact.
tldr_or_man() { tldr $1 || man $1 }Man pages are presented through less, so you can begin a (regex) search with / and hit n to go to the next result or N to go back.
If you knew this, I am actually very surprised you don't find information near-instantly.
His point of that being slower still stands. I also find that just googling generally what I want can more quickly lead me to a stack overflow post with exactly what is needed, while MAN pages can be rather cryptic at times without reading the whole thing.
The real advantage of CLI is that it is a language, not just a UI. It is composable, programable, remote-able and easier to automate.
I created a single serving Ansible docker image with a couple of playbooks for this very purpose --devs were asking frequently to pull schemas or dump from various data sources internally "Hey I forgot the command to do this, what was it again?".
Eventually I gave them a Dockerfile, wrote up some documentation on how to change hosts in the run command if they so desired, questions all but stopped immediately, and the devs loved it.
I now get a new question "hey, can you make one of those but to do this?"
"Sure, here's a playbook for it, put this in that directory on your local machine and it'll be available in the container". Combined with dynamic host inventories, it's made me a few friends lol
The first problem may, of course, be a non-issue depending on what you need to do.
https://magit.vc/manual/magit/
Admittedly the ffmpeg bar is probably higher, esp. given that ffmpeg can be configured and built a couple dozen different ways.
Applications that have occasionally used UI MUST BE self descriptive. Their functionality MUST BE consumable without need of reading man pages.
Otherwise they will have very few users.
Computer is for human, but not human is for computer. As its configurational appendage.