O que as conchas fazem?
Quando você entra na linha de comando ou inicia uma janela de terminal no Linux, o sistema inicia o programa shell. Os shells oferecem uma maneira padrão de estender o ambiente de linha de comando. Você pode trocar o shell padrão por outro, se quiser.
O primeiro ambiente de shell foi o Thompson Shell, desenvolvido na Bell Labs e lançado em 1971. Desde então, os ambientes de shell têm construído o conceito, adicionando uma variedade de novos recursos, funcionalidades e melhorias de velocidade.
Por exemplo, o Bash oferece conclusão de comandos e nomes de arquivos, recursos avançados de script, histórico de comandos, cores configuráveis, aliases de comando e uma variedade de outros recursos que não estavam disponíveis em 1971, quando o primeiro shell foi lançado.
O shell também é usado em segundo plano por vários serviços do sistema. As distribuições do Linux incluem muitas funções escritas como scripts de shell. Esses scripts são comandos e outras funções avançadas de script de shell executadas no ambiente do shell.
Shells que levam ao Bash: sh, csh, tsh e ksh
O mais proeminente progenitor de shells modernos é o Bourne shell - também conhecido como “sh” - que recebeu o nome de seu criador Stephen Bourne, que trabalhou no Bell Labs da AT & T. Lançado em 1979, tornou-se o interpretador de comandos padrão no Unix devido ao seu suporte à substituição de comandos, tubulações, variáveis, testes de condição e looping, além de outros recursos. Ele não oferecia muita personalização para os usuários e não dava suporte a nichos modernos como aliases, conclusão de comandos e funções de shell (embora esse último tenha sido adicionado).
O shell C, ou "csh", foi desenvolvido no final dos anos 1970 por Bill Joy, da Universidade da Califórnia, em Berkley. Ele adicionou muitos elementos interativos com os quais os usuários podiam controlar seus sistemas, como aliases (atalhos para comandos longos), habilidades de gerenciamento de tarefas, histórico de comandos e muito mais. Ele foi modelado a partir da linguagem de programação C, na qual o próprio sistema operacional Unix foi escrito. Isso também significava que os usuários do shell Bourne tinham que aprender C para que pudessem inserir comandos nele. Além disso, o csh tinha alguns bugs que precisavam ser martelados pelos usuários e criadores por um longo período de tempo. As pessoas acabaram usando o shell Bourne para scripts porque manipulavam comandos não interativos melhor, mas ficavam com o shell C para uso normal.
O nascimento do bash
O Bash foi aprimorado nas décadas desde seu primeiro lançamento em 1989, mas ainda é o shell padrão na maioria das distribuições do Linux atualmente. Ele também é o shell padrão do macOS da Apple e está disponível para instalação no Windows 10 da Microsoft.
Conchas mais recentes: cinzas, traço, zsh e peixe
Embora a comunidade Linux tenha se estabelecido no Bash nos anos seguintes, os desenvolvedores não pararam de criar novos shells quando o Bash foi lançado pela primeira vez há 28 anos.
Kenneth Almquist criou um clone de shell Bourne conhecido como shell Almquish, A Shell, “ash”, ou às vezes apenas “sh”. Ele também era compatível com POSIX e tornou-se o shell padrão no BSD, uma ramificação diferente do Unix. O shell cinza é mais leve que o bash, o que o torna popular em sistemas Linux embarcados. Se você tem um telefone Android com root com o BusyBox instalado - ou qualquer outro dispositivo com o pacote de software BusyBox - está usando o código do ash.
Qual você deve escolher? (e por que Zsh é Popular)
Você não precisa escolher uma concha. Seu sistema operacional escolhe seu shell padrão para você, e essa escolha é quase sempre bash. Sente-se na frente de uma distribuição Linux - ou mesmo de um Mac - e você quase sempre terá um ambiente de shell bash. O Bash tem alguns recursos avançados, mas você provavelmente não os usará, a menos que você programe scripts de shell.
Em sistemas Linux embarcados ou sistemas BSD, você terminará com o shell ash. Mas o ash é um shell baseado em Bourne e é amplamente compatível com o bash. Qualquer conhecimento que você tenha sobre o uso do bash será transferido para um shell ash ou dash, embora alguns recursos de script avançados não estejam disponíveis neste shell leve.
Quase todos os shell que você encontrará são baseados em Bourne e funcionam de forma semelhante, incluindo zsh.
É por isso que o zsh é popular. Este novo shell é compatível com o bash, mas inclui mais recursos. O shell zsh oferece correção de ortografia incorporada, conclusão de linha de comando aprimorada, módulos carregáveis que funcionam como plug-ins para o shell, aliases globais que permitem aliasar nomes de arquivos ou qualquer outra coisa na linha de comando em vez de apenas comandos e mais suporte a temas. É como bash, mas com muitos extras, recursos adicionais e opções configuráveis que você apreciaria se passasse muito tempo na linha de comando.
Se você estiver familiarizado com o bash, poderá alternar para o zsh sem aprender uma sintaxe diferente. Você ganhará recursos adicionais. Se você estiver familiarizado com o zsh, poderá mudar para o bash sem aprender uma sintaxe diferente. Você não terá acesso a esses recursos.
Existem outras conchas também. Por exemplo, o shell tcsh ainda está por aí e ainda é uma opção. O FreeBSD usa tsch como seu shell root padrão e ash como seu shell interativo padrão. Se você usa a programação C regularmente, o tsch pode ser melhor para você. No entanto, não é nem de perto tão comumente usado como bash ou zsh.
Como alternar entre os reservatórios
É fácil mudar para um novo shell para experimentá-lo. Basta instalar o shell do gerenciador de pacotes da sua distribuição Linux e digitar o comando para iniciar o shell.
Por exemplo, digamos que você queira experimentar o zsh no Ubuntu. Você executaria os seguintes comandos para instalar e depois iniciá-lo:
sudo apt install zsh zsh
Então você estaria sentado em uma casca de zinco. Tipo"
exit
”No shell para sair e retornar ao seu shell atual.
chsh
ou “Change Shell”, comando.
Para usar este comando, primeiro você precisa encontrar o caminho completo para o seu shell com o comando which. Por exemplo, digamos que queremos mudar para o shell zsh. Nós executaríamos o seguinte comando:
which zsh
No Ubuntu, isso nos diz que o binário zsh é armazenado em / usr / bin / zsh.
Execute o seguinte comando, insira sua senha e você será solicitado a escolher um novo shell de login:
chsh
De acordo com o comando acima, entraríamos
/usr/bin/zsh
. O shell zsh seria, então, nosso padrão até que executássemos o
chsh
comando e mudou de volta.