Is there anywhere you can download a manpage for every builtin commands?
I know you can just use help
or man bash
and search to find info about it, but I want them separated, so I can just do man read
and get the read manpage.
Is there anywhere you can download a manpage for every builtin commands?
I know you can just use help
or man bash
and search to find info about it, but I want them separated, so I can just do man read
and get the read manpage.
help read
help read | less
In zsh:
run-help read
or type read something
and press M-h
(i.e. Alt+h
or ESC h
).
If you want to have a single man
command so as not to need to know whether the command is a built-in, define this function in your ~/.bashrc
:
man () {
case "$(type -t "$1"):$1" in
builtin:*) help "$1" | "${PAGER:-less}";; # built-in
*[[?*]*) help "$1" | "${PAGER:-less}";; # pattern
*) command -p man "$@";; # something else, presumed to be an external command
# or options for the man command or a section number
esac
}
type -t
gives and empty string for a pattern. How does this work? *[[?*]*
?
– balki
Aug 24 '11 at 16:17
type
looks up an exact name. I don't think there's a way to look up a pattern, short of having a hard-coded list of built-ins and doing some complicated parsing of the output of alias
, typeset -f
and $PATH
lookups.
– Gilles 'SO- stop being evil'
Aug 24 '11 at 16:23
Try this:
bashman () { man bash | less -p "^ $1 "; }
You may have to hit n a couple of times to get to the actual command instead of a paragraph that happens to have the command name as the first word.
Explanation: this pipes the entire output of man bash
, i.e. bash's entire man page (which is a huge document, and has subsections explaining each bash builtin command) to the reading program less
. less' -p
flag stands for "pattern"; what it does is automatically scroll to the first point in the input text that matches the pattern. The pattern here is a regex which matches "The start of a line (^
), followed by a specific number of spaces, followed by ..." – and here, bash inserts the first argument provided to the bashman
function, because bash sees the special $1
token (which means "the first argument") in a string delimited with double-quotes (single quotes would tell bash that you literally mean the characters $1
). So, if you run bashman cd
, you will effectively be searching for any line in bash's man page with starts with a bunch of spaces, then the string "cd". Because there might be other points in bash's entire man page that also match this pattern besides the actual heading of the section that explains, eg., "cd", this function may not actually take you to the correct part of the bash man page.
LESS=-p"^ $1 " man bash
. That way, you're not stripping any escape sequences.
–
Jul 23 '13 at 01:03
man
function: function man() { local binman=/usr/bin/man; if ! $binman $1 &>/dev/null; then echo "No man entry for \"$1\"."; elif $binman bind | grep "BSD General Commands Manual" &>/dev/null; then LESS=-p"^ $1 " $binman bash; else $binman $1; fi; }
.
– Luke Davis
Mar 16 '18 at 04:44
$man bash builtins
- opens a dedicated man page. Then search e.g. for shopt [
. Advantage of this approach is that is a method so it's immediately transferable. Disadvantage is that you have to remember it;)
– honzajde
May 26 '22 at 11:01
builtins (1)
man page. This is still a big aggregate document, but at least it's just the builtins and not everything to do with bash. – mattdm Aug 04 '11 at 20:45man builtins
work on linux mint. – suspectus Jan 29 '14 at 11:04help <BuiltinName>
-- Hope it helps those people like me annoyed on the failure ofman
andinfo
with famous builtins. E.g.help command
to know about the great yet less used commandcommand
. Finally as the question also hints, thehelp
alone simply lists all possible builtins. (Verified on Ubuntu 16.04). – Loves Probability Nov 26 '16 at 05:13man builtins
man bash-builtins
,man zshbuiltins
andrun-help
(zsh-only) – dza Oct 12 '22 at 12:40