No Windows, quando você abre um prompt de comando, quase sempre o programa em execução é cmd.exe
. É uma derivada avançada do NT do antigo command.com
baseado em DOS, que por sua vez tem semelhanças com o interpretador de comandos CP / M CCP
ainda mais antigo.
No Linux, como @Griffin menciona, normalmente você está executando bash
em algum tipo de emulador de terminal se estiver usando-o em um ambiente gráfico. (que pode variar muito dependendo da sua distro e ambiente de trabalho). Isso significa "Bourne Again SHell" porque é uma versão estendida de um shell "Bourne" anterior ( sh
) que é padrão no Unix há muito tempo. Há outros shells "alternativos" em uso comum, como csh
, ksh
e tcsh
.
O Windows cmd.exe
também pode ser considerado um shell (assim como explorer.exe
).
O prompt de comando do Windows e todos os shells Unix possuem vários "built-ins", ou comandos que são manipulados inteiramente dentro do shell. Isso inclui alguns comandos básicos (como cd
) e muitos comandos condicionais e operadores que controlam o fluxo de script se um arquivo de lote de comandos for executado.
No entanto, tanto no Linux quanto no Windows, a grande maioria dos "comandos" que fazem coisas úteis são na verdade programas externos que são "chamados" pelo shell. E esse é o objetivo principal de um shell, permitir que um operador inicie programas com argumentos específicos para esses programas. Não é estritamente uma linguagem de programação, é apenas uma estrutura para o lançamento de programas.