6 Shells Alternativas do Linux para Usuários Avançados

Bash, ou o Bourne Again Shell, é o que vem pré-instalado na maioria das distribuições Linux. No entanto, não é a única shell disponível. Existem várias outras para experimentar. Aqui estão seis shells alternativas que podem substituir o bash. Cada uma delas tem seus prós e contras, então você precisa testá-las e ver qual é a melhor para você.

Índice

    1. sh (ou o Bourne Shell)
    1. Dash
    1. csh (ou C Shell)
    1. ksh (ou Korn Shell)
    1. zsh (ou Z Shell)
    1. Fish

Dica: Cansado de usar o Bash? Aprenda como mudar sua shell padrão no Linux.

1. sh (ou o Bourne Shell)

O Bourne shell, nomeado em homenagem ao seu criador Stephen Bourne, foi uma das primeiras shells já criadas. Você poderia dizer que foi usado como a base na qual o Bash foi criado. Às vezes, os usuários confundem ambos e pensam que são a mesma coisa, embora não sejam. É verdade que muitos scripts .sh também funcionarão no Bash, pois o Bash inclui muito do Sh, mas o oposto não é verdadeiro.

linux-shells-01-sh-shell

Você pode pensar no Sh como o predecessor do Bash. Ele não tem tantos recursos, mas é mais padronizado do que o Bash.

2. Dash

Dash é essencialmente o Bash em sistemas Debian. Se você está rodando uma distribuição baseada em Debian, é provável que esteja usando o Dash, não o Bash. No entanto, devido às complexidades de usar o Dash como a shell padrão, o Ubuntu (uma distribuição baseada em Debian) decidiu usar o Bash para scripts interativos, não o Dash como a shell padrão.

linux-shells-02-bash-vs-dash-990x495

Dash carece de muitos dos recursos do Bash, como conclusão de tabulação e histórico de comandos, mas é mais rápido e muito menor em tamanho (100K vs. 900K), o que é um fator se você estiver rodando em um computador não tão poderoso.

Leia também: Como Usar Sed no Linux

3. csh (ou C Shell)

As linguagens de programação C e C++ eram bastante populares, e grandes partes do próprio Linux são escritas nelas. É por isso que não é surpreendente que exista uma shell – o C Shell ou Csh – que usa o modelo de sintaxe C. Se você é fluente em C, essa shell será natural para você.

linux-shells-03-c-shell

No entanto, a shell Csh teve muitos bugs e poucos recursos. É por isso que a shell Tcsh surgiu. A Tcsh corrigiu a maioria dos bugs e adicionou novos recursos, como conclusão de comandos, controle de tarefas, correção ortográfica, etc. Infelizmente, Tcsh e Bash são muito diferentes, o que significa que você não pode executar scripts Bash na Tcsh e vice-versa.

Leia também: O Que É Log4Shell e Como Proteger Seu Sistema Linux Contra Isso

4. ksh (ou Korn Shell)

Ksh, ou a Korn shell (nomeada em homenagem ao seu criador David Korn), foi introduzida aproximadamente ao mesmo tempo que a Tcsh, mas ao contrário da Tcsh, é compatível com Sh e Bash. Era uma shell proprietária da AT&T até 2000, e é por isso que não se tornou tão popular. Ksh adiciona mais recursos ao Sh, como aritmética de ponto flutuante, controle de tarefas, alias de comandos e conclusão de comandos.

linux-shells-04-ksh-shell

5. zsh (ou Z Shell)

As shells listadas até agora foram criadas principalmente na década de 1970. Os computadores evoluíram muito desde então, e isso exige novas shells também. Uma das novas shells populares é a Z shell, ou Zsh. Foi criada por Paul Falstad em 1990.

linux-shells-05-zsh-shell

Ela possui os recursos do Bash e alguns a mais, como arquivos de inicialização, monitoramento de login/logout e recursos de programação embutidos, como bytecode, suporte para notação científica na sintaxe, aritmética de ponto flutuante, fechamento de comentários, conceitos, variáveis, funções e índice de teclas. Se você está procurando uma shell mais avançada, experimente a Z shell.

6. Fish

A busca por shells mais modernas não terminou com o Fish. O novo século viu novas shells, como o Fish (ou Friendly Interactive Shell). Foi lançado em 2005 e não é baseado na shell Sh. Seu aspecto mais distintivo é que possui uma sintaxe de linha de comando única, projetada para ser mais amigável para iniciantes. Também possui alguns recursos legais, como sugestões automáticas, seleção com as teclas de seta, suporte à área de transferência X, 256 cores de terminal, etc.

linux-shells-06-fish-shell

A principal desvantagem do Fish é que ele é muito diferente do Bash e de outras shells baseadas em Bourne. Como resultado, você não pode portar código (e conhecimento) do Fish para o Bash e Sh.

Então, qual shell é a melhor? Infelizmente, essa pergunta não pode ser respondida. Todas elas têm suas vantagens e desvantagens, e realmente depende do que você precisa. Mas agora que você conhece os prós e contras de cada uma dessas seis shells alternativas, será mais fácil para você decidir em qual situação qual shell deve ser usada. Embora, para ser honesto, essa escolha é em grande parte uma questão de preferências pessoais – eu mesmo fico com o Bash, e estou bem com isso. O Bash é a shell padrão por um motivo, você sabe!