Um shell é um software que fornece uma interface para usuários(as). Atualmente, o termo shell é utilizado principalmente para interfaces de linha de comando.
Shell gráfico é um termo raramente utilizado para ambientes de área de trabalho.
Shell interativo
Um shell interativo é usado por usuários(as) em um console virtual ou em um emulador de terminal.
O Debian usa Bash como o shell interativo padrão.
O shell interativo padrão para usuários(as) recém-criados(as) pode ser definido em /etc/adduser.conf.
Para alterar o shell interativo padrão para o(a) usuário(a) atual:
Verifique quais shells estão instalados: cat /etc/shells
Defina o novo shell do(a) : chsh
Shell não interativo
Um shell não interativo é usado para executar scripts. Não se destina a ser usado interativamente por um(a) usuário(a), por exemplo, em um emulador de terminal, mas concentra-se em velocidade e compatibilidade com padrões.
O shell não interativo padrão é o /bin/sh, que é um link simbólico para um shell real. A maioria dos scripts do sistema usa esse link via #!/bin/sh shebang.
Em todas as versões, incluindo a DebianLenny, o Bash é o shell não interativo padrão (alvo do /bin/sh symlink).
Começando no DebianSqueeze, o Debian usa o Dash como alvo para o /bin/sh symlink. O Dash carece de muitos recursos que se esperaria de um shell interativo, tornando-o mais rápido e mais eficiente que o Bash.
Do DebianSqueeze até o DebianBullseye, foi possível selecionar o bash como o alvo do /bin/sh symlink (executando dpkg-reconfigure dash). No DebianBookworm, isso não é mais suportado.
Outros shells
O Debian fornece muitos e diferentes shells. Alguns shells de destaque incluem:
Bash - Um shell muito poderoso, com interface interativa muito boa.
Dash - Um shell rápido, em conformidade com a Política Debian §10.4 e a Especificação Única do Unix.
mksh - Um Korn shell rápido, em conformidade com a Política Debian §10.4 e a Especificação Única do Unix. Também contém mksh-static, que poderia ser uma escolha /bin/sh melhor.
zsh - Outro shell poderoso (veja http://zsh.sourceforge.net/Intro/ - em inglês).
fish - Outro shell interativo e amigável.
tcsh - Uma versão melhorada do Berkeley csh.
busybox - Um shell minúsculo, usado em initrd e no Instalador Debian.
csh e tcsh devem ser evitados como linguagens de script. Veja http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ (em inglês).
ash - Substituído por Dash no Debian desde o DebianSarge.
ksh - A versão AT&T do Korn shell.
rc - Implementação do shell Plan 9 da AT&T
rush - shell de usuário(a) restrito(a)
Veja também
https://en.wikipedia.org/wiki/Comparison_of_command_shells - Comparação de shells de linha de comando (em inglês)
https://wiki.archlinux.org/index.php/Command-line_shell - Shell de linha de comando no wiki do Arch Linux (em inglês)
(Arquivo) http:/www.looking-glass.org/shell.html - Diferenças entre shells UNIX e como alterar seu shell (postagens mensais - em inglês)
CategoryCommandLineInterface | CategorySoftware | CategorySystemAdministration