Para usuários comuns, nas atuais distribuições
Linux muito amigáveis, é cada vez menos necessário usar comandos.
Mas Linusers mais experientes gostam de usar comandos para poder configurar, resolver problemas, aprender Linux, ou mesmo porquê apreciem ambientes gráficos mais simples ou minimalistas, com poucos detalhes como ícones ou menus, painéis etc...
Quando se digita CRTL+ALT+F1 para sair do X-Window, do ambiente gráfico, aparece uma tela, geralmente escrito "Login:". Diz-se que se está em um ambiente chamado "Shell Pura" (e/ou "Bash Puro") onde pode-se digitar comandos.
"Shell" é uma palavra da língua inglesa que significa "Concha" (aquela concha do Marisco, da ostra, do caramujo etc). É assim chamada porque basicamente é uma "Casca", dentro da qual roda o
Interpretador de Comandos que serve para "passar", "falar", os comandos do usuário ao sistema operacional.
Uma das primeiras versões de Shell era escrita em linguagem C para o Unix e chamava-se Csh, "C Shell". Variantes da "C Shell" original existiram nos anos 60 e 70, como a "Thompson Shell", "Korn Shell" (de David Korn, da Bell Labs) e a "Bourne Shell" (Sh) (de Stephen Bourne, da AT&T, EUA).
Embora em Unix se use muito ainda "Bourne Shell" clássica, sh, em Linux, o mais conhecido e usado dos interpretadores de comandos é o
Bash (uma modificação melhorada de "Bourne Shell", baseada no csh e no Korn Shell).
Existem vários outros "Shells". Eu particularmente gosto do próprio Bash,
Zsh e
Fish (Friendly Interactive Shell).
Veremos que a Shell pode ser usada em forma pura, ou ainda em janelas acessórias como terminais.