Shell é a interface do usuário main para o sistema operacional. No Windows, essa interface é GUI. Ele usa explorer.exe
como "gerenciador de arquivos", cria "menu inferior", "janela da pasta" e controla o processo de abertura de arquivos: quando você clica em um arquivo, ele chama ShellExecute
function.
Portanto, "shell" no Windows é interface do usuário e "cmd" era apenas para alguns comandos legados ou especiais. Por muitos anos a Microsoft pensou que a GUI é a melhor maneira de fazer qualquer coisa.
Ele ~ 2006 eles descobriram que shells unix (bash, ksh, zsh) são muito populares entre os administradores, então eles inventaram PowerShell : substituição cmd baseada em .net que é muito legal especialmente se usada com o mais recente Powershell ISE. É chamado shell porque seu objetivo principal é tornar-se "cidadão de primeira classe" para muitas tarefas sys-admin. Qualquer produto moderno de servidor da Microsoft possui cmdlets para que você possa fazer quase tudo a partir do PowerShell (com o MMC).
Eu não sei porque eles não usaram a palavra "Shell" para "command.com" na era do MS-DOS. Pode ser que eles pegaram a terminologia do CP / M e a chamaram de "processador de comando".
Engraçado: havia um gerenciador de arquivos GUI de curta duração "DOS Shell" para DOS. Ele foi descontinuado em 6.22 e a maioria das pessoas usava o Norton Commander naquela época.