nixCraftは2018年1月21日(米国時間)、「Linux / Unix Bash Shell List All Builtin Commands - nixCraft」において、bashの組み込みコマンドを一覧表示する方法を伝えた。組み込みコマンドとはbash自体に実装されているコマンドであり、bashの振る舞いを変更したり、制御構文として機能したりするコマンドが用意されている。bashの組み込みコマンドは引数なしでhelpと入力することで表示させることができる。
helpでbashの組み込みコマンドの一覧を表示させた場合
$ help
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
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 [&] (( expression ))
. filename [arguments] :
[ arg... ] [[ expression ]]
alias [-p] [name[=value] ... ] bg [job_spec ...]
bind [-lpvsPVS] [-m keymap] [-f fi break [n]
builtin [shell-builtin [arg ...]] caller [EXPR]
case WORD in [PATTERN [| PATTERN]. cd [-L|-P] [dir]
command [-pVv] command [arg ...] compgen [-abcdefgjksuv] [-o option
complete [-abcdefgjksuv] [-pr] [-o continue [n]
declare [-afFirtx] [-p] [name[=val dirs [-clpv] [+N] [-N]
disown [-h] [-ar] [jobspec ...] echo [-neE] [arg ...]
enable [-pnds] [-a] [-f filename] eval [arg ...]
exec [-cl] [-a name] file [redirec exit [n]
export [-nf] [name[=value] ...] or false
fc [-e ename] [-nlr] [first] [last fg [job_spec]
for NAME [in WORDS ... ;] do COMMA for (( exp1; exp2; exp3 )); do COM
function NAME { COMMANDS ; } or NA getopts optstring name [arg]
hash [-lr] [-p pathname] [-dt] [na help [-s] [pattern ...]
history [-c] [-d offset] [n] or hi if COMMANDS; then COMMANDS; [ elif
jobs [-lnprs] [jobspec ...] or job kill [-s sigspec | -n signum | -si
let arg [arg ...] local name[=value] ...
logout popd [+N | -N] [-n]
printf [-v var] format [arguments] pushd [dir | +N | -N] [-n]
pwd [-LP] read [-ers] [-u fd] [-t timeout] [
readonly [-af] [name[=value] ...] return [n]
select NAME [in WORDS ... ;] do CO set [--abefhkmnptuvxBCHP] [-o opti
shift [n] shopt [-pqsu] [-o long-option] opt
source filename [arguments] suspend [-f]
test [expr] time [-p] PIPELINE
times trap [-lp] [arg signal_spec ...]
true type [-afptP] name [name ...]
typeset [-afFirtx] [-p] name[=valu ulimit [-SHacdfilmnpqstuvx] [limit
umask [-p] [-S] [mode] unalias [-a] name [name ...]
unset [-f] [-v] [name ...] until COMMANDS; do COMMANDS; done
variables - Some variable names an wait [n]
while COMMANDS; do COMMANDS; done { COMMANDS ; }
$
helpの引数に組み込みコマンド名を指定すると、その組み込みコマンドの使い方を表示させることができる。man bashと実行してbashのオンラインマニュアルを調べることで同様の説明を読むこともできるが、helpの方は対象とする組み込みコマンドの説明だけを表示させることができる。
help自体も組み込みコマンドとして実装されている。コマンドはシェルから別のファイルを呼び出すことで実行される。組み込みコマンドはすでにbashの内部に実装された機能であり、別のファイルから呼び出すといったことはしない。組み込みコマンドは通常のコマンドと異なり、bashの内部に実装された機能であるため、bashの内部状態を変更するといった処理を行うことができる。