@b0rk_reruns Also, some commands are programs, but bash has a built-in version anyway for performance. The built-in version doesn't need to spawn a new process and it's usually faster.
Examples are `echo`, `printf`, `true`, `false`, `test` (also aliased to `[`).

Functions are commands, too, but they're neither a program nor a built-in.