For many, many years now when I want to browse a man page about something I’ll type man X
into my terminal, substituting X for whatever it is I wish to learn about. Depending on the manual, it’s short and therefore easy to find what I want, or I am deep in the woods because I’m trying to find a specific flag that appears many times in a very long document. Woe is me if the flag switch is a bare letter, like x
.
And let’s say it is x. Now I am searching with /x
followed by n n n n n n n n N n n n n n
. Obviously I’m not finding the information I want, the search is literal (not fuzzy, nor “whole word”), and even if I find something the manual pager might overshoot me because finding text will move the found line to the top of the terminal, and maybe the information I really want comes one or two lines above.
So… there HAS to be a better way, right? There has to be a modern, fast, easily greppable version to go through a man page. Does it exist?
P.S. I am not talking about summaries like tldr
because I typically don’t need summaries but actual technical descriptions.
pr06lefs ( @pr06lefs@lemmy.ml ) 31•2 months agoKind of off topic, but you know what would be cool? If you had an ‘man explain’ command that would define all the flags/args in a command, like:
man explain rsync --append-verify --progress -avz -e "ssh -p 2222" root@$dip:/sdcard/DCIM/Camera newphonepix
Would give you:
rsync - a fast, versatile, remote (and local) file-copying tool --append-verify --append w/old data in file checksum --progress show progress during transfer --archive, -a archive mode is -rlptgoD (no -A,-X,-U,-N,-H) --verbose, -v increase verbosity --compress, -z compress file data during the transfer --rsh=COMMAND, -e specify the remote shell to use
etc.
thingsiplay ( @thingsiplay@beehaw.org ) 11•2 months agoYou can just grep the help output
$ rsync --help 2>&1 | grep -E '^ *(--append-verify|--progress|--archive)' --archive, -a archive mode is -rlptgoD (no -A,-X,-U,-N,-H) --append-verify --append w/old data in file checksum --progress show progress during transfer
So it should be possible to create a simple script to do that. Similarly one can output the man document as text to stdout, which in turn can be grepped. I have no grep command at hand to do this in a useful way:
man grep | col -b
gomp ( @gomp@lemmy.ml ) 2•2 months agoHere’s what I get in fish when I start writing a
rsync
command and hit tab to ask for completions:❱ rsync --append-verify --progress -avz - -0 --from0 (All *from/filter files are delimited by 0s) --delete (Delete files that don’t exist on sender) -4 --ipv4 (Prefer IPv4) --delete-after (Receiver deletes after transfer, not before) -6 --ipv6 (Prefer IPv6) --delete-before (Receiver deletes before transfer (default)) -8 --8-bit-output (Leave high-bit chars unescaped in output) --delete-delay (Find deletions during, delete after) [more lines omitted]
Obi ( @Obi@sopuli.xyz ) 10•2 months agoAs someone with 0 knowledge of Linux (and very little of programming/command lines in general), this thread reads funny AF.
martinb ( @martinb@lemmy.sdf.org ) 2•2 months agoWe are deep in the technical weeds here. 95% of Linux usage really doesn’t require such humour unfortunately.
kbal ( @kbal@fedia.io ) 10•2 months agoI am searching with /x
On most systems these days you can use regular expressions there. If
/-x
isn’t good enough try/-x[ ,]
or whatever. bastion ( @bastion@feddit.nl ) 9•2 months agoMan pages this, man pages that. When will the Linux community start really thinking about woman pages?
Eyck_of_denesle ( @Eyck_of_denesle@lemmy.zip ) 3•2 months agoWoman in emacs
crispy_kilt ( @crispy_kilt@feddit.de ) 3•2 months agoWhat’s a womanual?
bastion ( @bastion@feddit.nl ) 3•2 months agoThat’s the point.
I thought it would be clear that
we should start calling them womanualsthis was a joke.
MrSoup ( @MrSoup@lemmy.zip ) 8•2 months agoBonus:
You can open man pages inside GNOME Help by usingyelp man:X
e8d79 ( @e8d79@discuss.tchncs.de ) 5•2 months agoFor KDE users, this also works with
khelpcenter
. Norah - She/They ( @princessnorah@lemmy.blahaj.zone ) English1•2 months agoThank you, that’s awesome.
jbk ( @jbk@discuss.tchncs.de ) 3•2 months agowow I kept opening
man:somethingwithoutsectionunfortunately
in firefox instead of doing that lol
OneCardboardBox ( @OneCardboardBox@lemmy.sdf.org ) English7•2 months agoAs an emacs user, I use
M-x man
. All my standard keybindings make finding what I need very easy.Of course, it’s not so fast if you aren’t already in emacs.
thingsiplay ( @thingsiplay@beehaw.org ) 15•2 months agoI want to mention that one can set the pager for man to be Vim too. Then it would load the document in Vim instead in less for display and navigation. This can be set with option
man -P pager
or with the environmental variable$MANPAGER
or$PAGER
. I had set this up in the past with original Vim, but it required some special options for Vim as well. It was nice, but ultimately not needed; so I went back to less. Sometimes less is more.Edit: Here is how one can use Neovim as the pager:
export MANPAGER='nvim +Man!'
I kind of missed it and will set it to this now. Put this line in the Bash configuration .bashrc and every
man
document is loaded in Neovim now. amanneedsamaid ( @amanneedsamaid@sopuli.xyz ) English2•2 months ago+1, displaying in a Emacs buffer solves any issues I could have. If you’re already ‘in’ Emacs, this will be more frictionless than shell scripts around
man
vzq ( @vzq@lemmy.blahaj.zone ) 7•2 months agoHonestly, I usually just “man command” in google.
I know it’s wrong but my browser is tiled next to my terminal and it’s easy to look up stuff.
ParetoOptimalDev ( @ParetoOptimalDev@lemmy.today ) 2•2 months agoI did this before being in emacs made it so convenient to avoid, but got bit randomly by different versions or gnu vs BSD.
thingsiplay ( @thingsiplay@beehaw.org ) 5•2 months agoSorry for my previous comment. I was commenting before reading the entire post and was missing the point. On a sidenote, its often enough and helpful to just list the options with
program -h
or--help
. Sometimes the help option has more information or is easier to understand than the man document.When I search for options in a man document, I usually try it with putting a dash in front of it as
-x
or--ignore
in example. For really large documents sometimes it can help to add a space before it "-x
" or a comma after it "-x,
" depending on how its actually written. BTW the man program itself has a builtin help you can show by just pressingh
while looking at a document. jeffreyosborne ( @jeffreyosborne@lemm.ee ) 4•2 months agoI like tldr. It doesnt give incredibly in depth explanations, but it does show the basics of using most commands.
rotopenguin ( @rotopenguin@infosec.pub ) English2•2 months agoI have to remember to use tldr, one of these days. Some manpages get so lost in the pedantry of covering everything that the 99 percentile stuff is buried.
Schmerzbold ( @Schmerzbold@feddit.org ) English4•2 months agoYou can set on what line on the screen less (the pager program man uses by default) puts search results with the
-jn
/--jump-target=n
option. For example, using.5
as a value for n makes less focus the line with the search result on the center of the screen. This should help with your overshoot issue.Either set the option within less with the
-
command followed byj.5
↵ for the current running instance of less, or set and export theLESS
environment variable inside your~/.bashrc
to have less always behave that way. Tovervlag ( @Tovervlag@feddit.nl ) 3•2 months agoI lately often use chatgpt for these kind of things. It’s amazing in breaking down the parameters and what they mean. Verify, especially when the problem is hard and apparently unfindable. Chatgpt won’t find it either. It sometimes makes up things in these scenarios.
edit: You guys are allowed to not like my post but it really helps me so why not try it instead of just downvoting.
Asetru ( @Asetru@feddit.org ) Deutsch3•2 months ago
ParetoOptimalDev ( @ParetoOptimalDev@lemmy.today ) 3•2 months agowoman in emacs.
I also find info pages much nicer to use after an adjustment period given I grew up on vim and man.
crispy_kilt ( @crispy_kilt@feddit.de ) 2•2 months agoNice operating system. Just lacks a good editor
electricprism ( @electricprism@lemmy.ml ) 2•2 months agoI read man in nvim, there is a alias on the arch wiki IIRC (and syntax highlighting)
kubok ( @kubok@fedia.io ) 2•2 months agoI have krunner with the man plugin enabled. When typing man:X in the krunner prompt, a window opens with a nicely styled man page.
Jure Repinc ( @JRepin@lemmy.ml ) English2•2 months agoEven quicker is “#X”
kubok ( @kubok@fedia.io ) 1•2 months agoI did not know that. Thank you.
wuphysics87 ( @wuphysics87@lemmy.ml ) 2•2 months agoYou can search via regex. For instance you know a section heading or flag is the first thing on a line preceded with spaces. I also find it earier to read with extensions for colors.