.. include:: ../header.txt .. _shell_choice: A Choice of Shells =========================== .. describe:: shell The **shell** is the interface between the command prompt user and the operating system. It interprets the user's commands and invokes the appropriate systems calls so that the commands are executed. A Bit of Shell History ------------------------- .. index:: shell history, ksh, bash, csh, tcsh, sh * The first shell was the Bourne shell (`sh`) by Steven Bourne of AT&T Bell Labs. * The C shell (csh) was developed for BSD Unix, to offer better programming, but much of the syntax was changed. It has a few ancestor shells, which add additional features (tcsh). * The Korn shell (ksh), by David Korn (AT&T Bell Labs) offered better programming like C shell, but followed the Bourne shell syntax. It is often called the K shell. * The BASH shell (bash) is quite similar to the Korn shell, but was released by the GNU project with an open source license. .. _chsh: :command:`chsh` --------------- .. index:: chsh .. program:: chsh .. describe:: chsh change your login shell SYNOPSIS :command:`chsh` [ -s shell ] [ -l ] [ username ] DESCRIPTION :command:`chsh` is used to change your login shell. If a shell is not given on the command line, :command:`chsh` prompts for one. The new shell must be one of the shells listed in the :file:`/etc/shells` file. OPTIONS .. option:: -s, --shell Specify your login shell. .. option:: -l, --list-shells Print the list of shells listed in /etc/shells and exit.