Basicamente, alguns comandos são embutidos no próprio programa bash shell (por exemplo, echo, set), neste caso, o bash já tem o código compilado nele para executar esses comandos internamente, em resposta a um usuário chamando-os do linha de comando. Se você olhar o manual em man bash
ou info bash
, ele terá uma lista dos 'builtins'.
Se um comando não for encontrado nos builtins, o shell pesquisará os diretórios listados na variável de ambiente $ PATH (na ordem listada), para ver se ele pode encontrar um comando externo lá. Caso contrário, informará um erro de que o comando não pode ser encontrado.