O Shell é uma camada que faz a intermediação de comandos e/ou serviços entre o sistema operacional e o usuário, podendo ser dividido em dois grupos:
Os shells CLIs (Command Line Interface), são aqueles que usam uma interface baseada em texto, também chamada linha de comando. Ou seja, para executar qualquer ação, é necessário digitar um comando equivalente.

O outro grupo são os shells GUI (Graphical User Interface), que usam uma interface gráfica para que os mesmos comandos não precisem ser digitados, utilizando ícones, atalhos e funções para essa tarefa, podemos citar como exemplo o popular Gnome Shell.

Geralmente, quando falamos em shell estamos nos referindo aos shells CLIs, ao terminal. Neste contexto, existem alguns interpretadores de comando diferentes, cada um com suas particularidades.
Bash
O Bash é o mais popular entre os interpretadores de comando, sendo o padrão na maioria das distribuições Linux.
O Bash (Bourne Again Shell), trata-se de uma implementação completa da especificação de shell IEEE POSIX e Open Group com edição de linha de comando interativa, controle de tarefas em arquiteturas que o suportam, recursos semelhantes ao csh, como substituição de histórico, expansão de chaves e uma enorme quantidade de outras características.
Lançado em 1989, o Bash foi escrito por Brian Fox para o Projeto GNU, para substituir o Bourne Shell (sh).

As principais características do Bash são:
- Edição de linha de comando;
- Histórico de comandos de tamanho ilimitado;
- Controle de trabalho;
- Funções shell e aliases;
- Arrays indexados de tamanho ilimitado;
- Aritmética inteira em qualquer base de dois a sessenta e quatro.
Zsh
O Zsh vem se tornando bastante popular, trata-se de um shell projetado para uso interativo, embora também seja uma poderosa linguagem de script.
Escrito por Paul Falstad e lançado em 1990, este shell incorporou muitos recursos úteis do Bash, Ksh e Tcsh, assim como muitos recursos originais foram adicionados.

O Zsh é um interpretador de comandos altamente personalizável, contando com um projeto chamado Oh My Zsh, que gerencia as configurações do Zsh, fornecendo diversos plugins e temas para você poder deixar o Zsh pronto para o seu uso com enorme facilidade.

Fish
O Fish é um shell de linha de comando totalmente equipado, inteligente e fácil de usar. O interpretador não adere a alguns padrões, sendo assim, a sintaxe de comandos pode variar um pouco.
O interpretador de comando suporta recursos poderosos, como realce de sintaxe, sugestões automáticas e preenchimento de guias por padrão, sem que o usuário necessite mexer em nenhum arquivo de configuração.

Algumas das principais características no Fish Shell são:
- Sugestões automáticas: o Fish sugere comandos conforme você digita com base no histórico e nas conclusões, assim como um navegador da web.

- Configuração baseada na Web: Você pode definir suas cores e visualizar funções, variáveis e histórico, tudo em uma página da web.

- Sane Scripting: O Fish é totalmente programável e sua sintaxe é simples, limpa e consistente. Você nunca mais escreverá “esac” para fechar um bloco switch/case, por exemplo.

Fazendo uso avançado de Shell Script
Quando o assunto são interpretadores de comando, é importantíssimo falarmos sobre shell script. Um shell script permite encadear comandos para solucionar tarefas mais complexas, como automatizar backups, redimensionar um lote de fotografias ou limpar erros de um arquivo de texto. Mas, eles não são apenas uma simples sequência de comandos e podem usar características comuns às linguagens de programação, como condições (if-then-else) e até loops (for, repeat).

Se você quer aprender tudo sobre Shell Script para automatizar suas tarefas do cotidiano e tornar o seu dia a dia mais produtivo, o Diolinux Play em parceria com o SlackJeff está oferecendo um curso gratuito de Shell Script avançado do qual você pode participar gratuitamente.
E você aí, utiliza algum dos interpretadores de comando apresentados aqui? Qual é o seu interpretador favorito?
Um abraço, pessoal.
Até a próxima.