Translation(s): English - Français - Italiano - Brasileiro - Русский - Español

(!) ?/Discussion

A shell is a piece of software that provides an interface for users. Nowadays the term shell is mostly used for command-line interface (CLI) shells (People tend to use the term Desktop_environment rather than graphical shell).

Default Shell

Default Non-interactive Shell

A non-interactive shell is used to execute system scripts or scripts that use #!/bin/sh shebang. Debian uses dash as the default non-interactive shell. It is not intended to be used interactively by a user, for example, in a terminal emulator (hence non-interactive). Therefore, many interactive features are not present in dash, making it faster and more memory efficient than bash. Before DebianSqueeze bash was used as the default non-interactive shell.

Default Interactive shell

An interactive shell is used by a user in a virtual console or a terminal emulator. The default interactive shell is bash. The default interactive shell for newly created users can be set in /etc/adduser.conf.

Changing a User's Default Interactive Schell

Check which shells are currently installed:

$ cat /etc/shells


Change the default shell:

$ chsh

Enter the new value, or press return for the default
    Login Shell [/bin/bash]: /bin/zsh

Restart the terminal emulator for the change to take effect.

Available shells

Debian provides many different shells ( see ), many of them are still provided for compatibility with existing assets.

The main shells:

Note on some other shells:

See also