Here's how to learn about the many bash builtins you might be unfamiliar with. You probably use some bash builtins fairly often whether or not you think of them as builtins or simply as commands. After all, bash builtins are commands, but not implemented as separate executables. Instead, they are part of the bash executable. In other words, they are “built into” bash, thus the term “bash builtins”. If you’re looking for a particular builtin, the which command isn’t going to find it for you because it only looks through a collection of executables. This includes system commands like /bin/echo as well as scripts for which you have execute permission. Here’s an example of which not finding anything: $ which help /usr/bin/which: no help in (/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/home/shs/bin:/opt/pash:/home/shs) As you can see, the which command looks down your search path ($PATH) and reports back when it can’t find a match. Ask for a man page on any particular builtin, on the other hand, and a man page describing all of the builtins will be displayed along with explanations for each one. Just be prepared for a lot of scrolling as you scan through the output! Here’s a line count for my generated output: $ man popd | wc -l 2109 NOTE: It doesn’t matter which particular builtin you ask about. You will get the same big helping of descriptions for all of them. $ man shift | wc -l 2109 Ask about a builtin with the bash builtin called “help” and you’re going to get a fairly thorough explanation of what that builtin will do for you. Since help is a builtin, it can tell you about itself and any other bash builtin. $ help help help: help [-dms] [pattern ...] Display information about builtin commands. Displays brief summaries of builtin commands. If PATTERN is specified, gives detailed help on all commands matching PATTERN, otherwise the list of help topics is printed. Options: -d output short description for each topic -m display usage in pseudo-manpage format -s output only a short usage synopsis for each topic matching PATTERN Arguments: PATTERN Pattern specifying a help topic Exit Status: Returns success unless PATTERN is not found or an invalid option is given. To get a list of all of the bash builtins, just type “help” on the command line and you should get a two-column listing like that shown below. $ help GNU bash, version 5.2.15(1)-release (x86_64-redhat-linux-gnu) These shell commands are defined internally. Type `help' to see this list. Type `help name' to find out more about the function `name'. Use `info bash' to find out more about the shell in general. Use `man -k' or `info' to find out more about commands not in this list. A star (*) next to a name means that the command is disabled. job_spec [&] history [-c] [-d offset] [n] or his> (( expression )) if COMMANDS; then COMMANDS; [ elif > . filename [arguments] jobs [-lnprs] [jobspec ...] or jobs> : kill [-s sigspec | -n signum | -sig> [ arg... ] let arg [arg ...] [[ expression ]] local [option] name[=value] ... alias [-p] [name[=value] ... ] logout [n] bg [job_spec ...] mapfile [-d delim] [-n count] [-O o> bind [-lpsvPSVX] [-m keymap] [-f fil> popd [-n] [+N | -N] break [n] printf [-v var] format [arguments] builtin [shell-builtin [arg ...]] pushd [-n] [+N | -N | dir] caller [expr] pwd [-LP] case WORD in [PATTERN [| PATTERN]...> read [-ers] [-a array] [-d delim] [> cd [-L|[-P [-e]] [-@]] [dir] readarray [-d delim] [-n count] [-O> command [-pVv] command [arg ...] readonly [-aAf] [name[=value] ...] > compgen [-abcdefgjksuv] [-o option] > return [n] complete [-abcdefgjksuv] [-pr] [-DEI> select NAME [in WORDS ... ;] do COM> compopt [-o|+o option] [-DEI] [name > set [-abefhkmnptuvxBCEHPT] [-o opti> continue [n] shift [n] coproc [NAME] command [redirections> shopt [-pqsu] [-o] [optname ...] declare [-aAfFgiIlnrtux] [name[=valu> source filename [arguments] dirs [-clpv] [+N] [-N] suspend [-f] disown [-h] [-ar] [jobspec ... | pid> test [expr] echo [-neE] [arg ...] time [-p] pipeline enable [-a] [-dnps] [-f filename] [n> times eval [arg ...] trap [-lp] [[arg] signal_spec ...] exec [-cl] [-a name] [command [argum> true exit [n] type [-afptP] name [name ...] export [-fn] [name[=value] ...] or e> typeset [-aAfFgiIlnrtux] name[=valu> false ulimit [-SHabcdefiklmnpqrstuvxPRT] > fc [-e ename] [-lnr] [first] [last] > umask [-p] [-S] [mode] fg [job_spec] unalias [-a] name [name ...] for NAME [in WORDS ... ] ; do COMMAN> unset [-f] [-v] [-n] [name ...] for (( exp1; exp2; exp3 )); do COMMA> until COMMANDS; do COMMANDS-2; done function name { COMMANDS ; } or name> variables - Names and meanings of s> getopts optstring name [arg ...] wait [-fn] [-p var] [id ...] hash [-lr] [-p pathname] [-dt] [name> while COMMANDS; do COMMANDS-2; done help [-dms] [pattern ...] { COMMANDS ; } Wrap-Up There are likely many bash builtins that you use fairly often on the command line, a healthy handful that you use in scripts, and a good number that you have never tried. Maybe it’s time to explore and learn some new tricks! Related content how-to How to find files on Linux There are many options you can use to find files on Linux, including searching by file name (or partial name), age, owner, group, size, type and inode number. By Sandra Henry Stocker Jun 24, 2024 8 mins Linux opinion Linux in your car: Red Hat’s milestone collaboration with exida With contributions from Red Hat and critical collaborators, the safety and security of automotive vehicles has reached a new level of reliability. By Sandra Henry Stocker Jun 17, 2024 5 mins Linux how-to How to print from the Linux command line: double-sided, landscape and more There's a lot more to printing from the Linux command line than the lp command. Check out some of the many available options. By Sandra Henry Stocker Jun 11, 2024 6 mins Linux how-to Converting between uppercase and lowercase on the Linux command line Converting text between uppercase and lowercase can be very tedious, especially when you want to avoid inadvertent misspellings. Fortunately, Linux provides a handful of commands that can make the job very easy. By Sandra Henry Stocker Jun 07, 2024 5 mins Linux PODCASTS VIDEOS RESOURCES EVENTS NEWSLETTERS Newsletter Promo Module Test Description for newsletter promo module. Please enter a valid email address Subscribe