No Windows, quando você abre um prompt de comando, quase sempre o programa em execução é cmd.exe. É um derivado NT aprimorado do antigo baseado em DOS command.com, que por sua vez possui semelhanças com o CCPinterpretador de comando CP / M ainda mais antigo .
No Linux, como o @Griffin menciona, geralmente você está executando bashalgum tipo de emulador de terminal se estiver usando-o em um ambiente gráfico. (que pode variar bastante, dependendo da distribuição e do 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á outras conchas "alternativos" de uso comum, como csh, ksh, e tcsh.
O Windows também cmd.exepode ser considerado um shell (como pode explorer.exe).
O prompt de comando do Windows e todos os shells do Unix têm 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 e operadores condicionais que controlam o fluxo de scripts se um arquivo em lote de comandos for executado.
No entanto, no Linux e 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 especificando argumentos para esses programas. Não é realmente uma linguagem de programação, é apenas uma estrutura para o lançamento de programas.