In Unix, what is the shell?

In Unix, the shell is a program that interprets commands and acts as an intermediary between the user and the inner workings of the operating system. Providing a command-line interface (i.e., the shell prompt or command prompt), the shell is analogous to DOS and serves a purpose similar to graphical interfaces like Windows, Mac OS X, and the X Window System.

On most Unix systems, there are several shells available. For the average user, they offer similar functionality, but each has different syntax and capabilities. Most shells fall within one of two classes: those descended from the Bourne shell (i.e., sh), which first appeared in Version 7 Unix, and those from the C Shell (i.e., csh), which made its debut in BSD. Nearly every Unix system has these two shells installed, but may also have several others: bash, ksh, tcsh, and zsh.

For more, see In Unix, where can I get information on differences between the various shells? To determine what options are available for your login shell (i.e., your default shell), look at the file /etc/shells on your system.

Most shells double as interpreted programming languages. To automate tasks, you may write scripts containing built-in shell and Unix commands. When you execute a script, the shell interprets these commands as if you had entered them from the command-line prompt. Compared to compiled programs, shell scripts are slow but easy to write and debug.

In general, shells of the Bourne shell class are better for scripting than those derived from the C shell.

To Unix, the shell is just another program. For this reason, any program can be designated a login shell in /etc/shells. For example, some Emacs users pride themselves on never needing a traditional shell prompt.

At Indiana University, for personal or departmental Linux or Unix systems support, see At IU, how do I get support for Linux or Unix?

This document was developed with support from National Science Foundation (NSF) grants 1053575 and 1548562. Any opinions, findings, conclusions, or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the NSF.

This is document agvf in the Knowledge Base.
Last modified on 2018-02-01 15:39:27.

  • Fill out this form to submit your issue to the UITS Support Center.
  • Please note that you must be affiliated with Indiana University to receive support.
  • All fields are required.

Please provide your IU email address. If you currently have a problem receiving email at your IU account, enter an alternate email address.

  • Fill out this form to submit your comment to the IU Knowledge Base.
  • If you are affiliated with Indiana University and need help with a computing problem, please use the I need help with a computing problem section above, or contact your campus Support Center.

Please provide your IU email address. If you currently have a problem receiving email at your IU account, enter an alternate email address.