Is it true that all commands that can run in bash are not actually part of bash? I'm gradually realizing I have been confusing the shell and the applications that can run in it.
There isn't a sharp border between the shell and the applications.
Some of the commands that you run in a shell have to be built into the shell, because they act on the shell process. For example,
At another extreme, there are large applications that are made by different authors, such as Firefox or Emacs. These aren't going to be built into any shell because they're too big. But this isn't a fundamental impossibility, just a matter of design. For examples, there are shells¹ that have builtins to make simple GUI applications.
In the middle, there are commands that could go either way. For example, the
If you're curious, you can check the status of a given command with the
Reserved words such as
¹ dtksh. There is no free implementation.
Try using the bash command
Some are builtin, some are not. Use
Both quotes come from the bash mannual.