With most operating systems, the command intepreter is built in; it is an integral part of the operating system. With UNIX, your command interpreter is just another program. Traditionally, a command interpreter is called a "shell," perhaps because it protects you from the underlying kernel - or because it protects the kernel from you!
Several different shells are available: you are free to choose the one that best suits your interests or your application. The most common ones are:
There are also a few third-party shells that serve special purposes, like emulating the VAX/VMS command language (DCL). I don't know if there is a DOS-lookalike shell available, but there probably is. Why you would want it is another question: all of the standard UNIX shells do a lot more than the DOS command interpreter. Furthermore, I like to discourage UNIX users from pretending that UNIX is something else. You are going to be spending a lot of time using UNIX: you will be better off learning it properly than trying to make it look like some other operating system.
In this book, we'll stick to the C shell and bash for interactive use. Because bash and ksh can read scripts written for the original Bourne shell, we use sh for shell programming.
Where we talk about "the Bourne Shell" or sh , it's usually a safe bet that the information applies to bash and ksh too. In the same way, "the C shell" generally also means tcsh -and, in some cases, bash as well. Just because bash , ksh and tcsh have the features of the shells they came from, though, it isn't safe to assume that their features are in the original csh or sh too.
If you're new to UNIX, don't worry about keeping track of all these shells. In this book, we talk mostly about the C and Bourne shells. Those two shell "styles" are all you really need to know at the start. Later, you can learn and appreciate what's been added to ksh , tcsh , and bash .