0

I have been researching different command line interpreters and have noticed that the default Windows interpreter cmd.exe is not referred to as a shell on the Wikipedia page. Pretty much all of the command line interpreters of Unix-like systems are referred to as shells but not cmd.exe or most of the other interpreters for that matter.

Is there a reason for this or is "shell" just the nomenclature for interpreters belonging to Unix-like systems?

phuclv
  • 26,555
  • 15
  • 113
  • 235
Darien Springer
  • 437
  • 1
  • 4
  • 13
  • 3
    That's likely down to the opinion of whoever wrote that Wikipedia piece; Microsoft [refers to it as a shell](https://technet.microsoft.com/en-us/library/bb490954.aspx) in some documentation. – Bob Sep 28 '17 at 01:06
  • 1
    possible duplicate: [Command Prompt - Shell, Terminal, Console?](https://superuser.com/q/1229629/241386) – phuclv Sep 28 '17 at 01:20
  • 1
    cmd.exe is in fact a shell. "Shell" is most commonly used in conjunction with Unix systems as you mention, where there is a wide variety of them, and thus it is worthwhile to speak of them generically as you don't know which one the user has/uses, but any interface in which you can provide (generic) input for execution is a shell. a Terminal provides character input to a command shell, but explorer.exe is a shell that takes gestural input as well as character data. – Frank Thomas Sep 28 '17 at 03:33
  • 1
    Possible duplicate of [Command Prompt - Shell, Terminal, Console?](https://superuser.com/questions/1229629/command-prompt-shell-terminal-console) – I say Reinstate Monica Oct 06 '17 at 16:15

1 Answers1

2

Shell is main user interface to operation system. In Windows this interface is GUI. It uses explorer.exe as "file manager", creates "bottom menu", "folder window" and controls process of file opening: when you click on file it calls ShellExecute function.

So, "shell" in Windows is UI and "cmd" was only for some legacy or special commands. For many years Microsoft thought GUI is the best way to do anything.

It ~ 2006 they found that unix shells (bash, ksh, zsh) are very popular among sysadmins, so they invented PowerShell: .net based cmd substitution which is very cool especially if used with latest Powershell ISE. It is called shell because its main purpose to become "first class citizen" for many sys-admin tasks. Any modern Microsoft server product has cmdlets so you can do almost anything from powershell (with out of MMC).

I do not know why they did not use word "Shell" for "command.com" in MS-DOS era. It could be that they borrowed terminology from CP/M and called it "command processor".

Funny: there was a "DOS Shell" short-living GUI file manager for DOS. It was discontinued in 6.22 and most people used Norton Commander that time.

user996142
  • 1,493
  • 12
  • 20
  • according to the [tag:shell] tag: "A shell is software that lets users interact with the operating system, usually by typing at a command-line." [tag:windows-shell] [Windows Shell on MSDN](https://msdn.microsoft.com/en-us/library/windows/desktop/bb773177(v=vs.85).aspx), [Windows Shell on wiki](https://en.wikipedia.org/wiki/Windows_shell) – phuclv Sep 28 '17 at 01:18
  • 2
    A system can have many shells. cmd.exe, powershell.exe, and command.com, and explorer.exe are all examples of windows shells. The Op is simply incorrect that the command window is not called a shell. – Frank Thomas Sep 28 '17 at 03:27