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

A shell is a piece of software that provides an interface for users. Nowadays the term shell is mostly used for CommandLineInterface shells.

Graphical shell is a rarely used term for a DesktopEnvironment.

Interactive shell

An interactive shell is used by a user in a virtual console or a TerminalEmulator.

Debian uses Bash as the default interactive shell.

The default interactive shell for newly created users can be set in /etc/adduser.conf.

To change the interactive shell for the current user:

Non-interactive Shell

A non-interactive shell is used to execute scripts. It is not intended to be used interactively by a user, for example, in a terminal emulator, but rather focuses on speed and compatibility with standards.

The default non-interactive shell is /bin/sh which is a symbolic link to a real shell. Most system scripts use this, via the #!/bin/sh shebang.

In all releases up to and including DebianLenny, Bash was the default non-interactive shell (target of the /bin/sh symlink).

Beginning with DebianSqueeze, Debian uses Dash as the target of the /bin/sh symlink. Dash lacks many of the features one would expect in an interactive shell, making it faster and more memory efficient than Bash.

From DebianSqueeze to DebianBullseye, it was possible to select bash as the target of the /bin/sh symlink (by running dpkg-reconfigure dash). As of DebianBookworm, this is no longer supported.

Other shells

Debian provides many different shells. A few notable shells include:

See also

CategoryCommandLineInterface | CategorySoftware | CategorySystemAdministration