| "Standard library" is sort of a C-specific term. "builtins" are primitives that Bash can use internally without calling fork()/exec(). In fact, builtins originated in the Bourne shell to operate on the current shell process, because they would have no effect in a subprocess or subshell. In addition to builtins and commands, Bash also defines "reserved words", which are keywords to make loops and control the flow of the script. https://www.gnu.org/software/bash/manual/bash.html#Reserved-... Many distros will ship a default or skeleton .bashrc which includes some useful aliases and functions. This is sort of like a "standard library", if you like having 14 different standards. https://gist.github.com/marioBonales/1637696 '[' is an external binary in order to catch any shell or script that does not interpret it as a builtin operator. There may be a couple more. Under normal circumstances, it won't actually be invoked, as a Bash script would interpret '[' as the 'test' builtin. |