Um shell é um software que fornece uma interface para usuários(as). Atualmente, o termo shell é utilizado principalmente para interfaces de linha de comando. Por contraste, um shell gráfico é um termo raramente usado para um Ambiente 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 para contas de usuário(a) normais (aqueles(as) com um UID >= 1000). O shell padrão atribuído a novas contas de usuário(a) pode ser alterado a qualquer momento editando o arquivo /etc/adduser.conf.
Debian uses Bash as the default interactive shell for normal user accounts (those with a UID ⩾ 1000). The default shell assigned to new usesr accounts can be changed at any time by editing the file /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 em ambientes POSIX é um executável localizado no sistema de arquivos em /bin/sh, que é um link simbólico para o shell padrão. A maioria dos scripts do sistema usa esse shell, via #!/bin/sh shebang. Alterar o shell não interativo padrão de um sistema é simplesmente uma questão de alterar esse link simbólico para atingir um executável diferente.
Em todas as versões até, e incluindo, o DebianLenny, Bash era o shell não interativo padrão. Começando com o DebianSqueeze, o Debian usa o Dash (o shell Debian Almquist) como alvo do link simbólico /bin/sh. Dash não tem muitos dos recursos que se esperaria de um shell interativo, o que permite que seja mais rápido e mais eficiente em termos de memória do que o Bash.
Do DebianSqueeze ao DebianBullseye, foi possível selecionar o Bash como alvo do link simbólico /bin/sh, executando dpkg-reconfigure dash. No entanto, a partir do 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 (Single UNIX Specification).
mksh - Um shell Korn em conformidade similar com a Política Debian §10.4 e a Especificação Única do Unix como visto acima; também contém mksh-static, que pode ser ainda a melhor escolha para /bin/sh.
zsh - Outro shell poderoso (consulte a documentação oficial).
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 "Por que não devo programar em csh?" (em inglês) por Tom Christiansen, postado em 28 de setembro de 1995. (arquivado na Wayback Machine)
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)
"Diferenças entre shells UNIX e como alterar seu shell" por Brian Blackmore, por volta de dezembro de 1998 (arquivado na Wayback Machine)
CategoryCommandLineInterface | CategorySoftware | CategorySystemAdministration