pt.phhsnews.com


pt.phhsnews.com / Qual é a diferença entre Bash, Zsh e outros shells do Linux?

Qual é a diferença entre Bash, Zsh e outros shells do Linux?


A maioria das distribuições do Linux inclui o shell bash por padrão, mas você também pode alternar para outro ambiente de shell. Zsh é uma alternativa particularmente popular, e existem outras conchas, como cinzas, traços, peixes e tcsh. Mas qual é a diferença e por que existem tantos?

O que os shells 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 shell foi o Thompson Shell, desenvolvido no Bell Labs e lançado em 1971. Desde então, os ambientes Shell têm construído o conceito, adicionando uma variedade Novos recursos, funcionalidade 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 até o Bash: sh, csh, tsh e ksh

RELACIONADOS: O que é o Unix e por que ele é importante? O progenitor mais proeminente das conchas modernas é 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 suportava 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 na Universidade da Califórnia, 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.

Com o tempo, muitas pessoas corrigiram erros e adicionaram recursos ao shell C, culminando em uma versão melhorada do csh conhecida como "tcsh". Mas o csh ainda era o padrão em computadores baseados em Unix e tinha adicionado alguns recursos não padrão. David Korn, da Bell Labs, trabalhou no KornShell, ou “ksh”, que tentou melhorar a situação sendo compatível com a linguagem do shell Bourne, mas adicionando muitos recursos do shell csh. Foi lançado em 1983, mas sob licença proprietária. Não era software livre até os anos 2000, quando foi lançado sob várias licenças de código aberto.

O nascimento de bash

A interface do sistema operacional portátil para Unix, ou POSIX, foi outra resposta para o csh proprietário implementações. Ele criou com sucesso um padrão para interpretação de comandos (entre outras coisas) e eventualmente espelhou muitos dos recursos do KornShell. Ao mesmo tempo, o Projeto GNU estava tentando criar um sistema operacional livre compatível com Unix. O Projeto GNU desenvolveu um shell de software livre para ser parte de seu sistema operacional livre e o chamou de "Bourne Again Shell", ou "bash".

O Bash foi melhorado nas décadas desde seu primeiro lançamento em 1989, mas é ainda o shell padrão na maioria das distribuições Linux hoje. É também o shell padrão no macOS da Apple e está disponível para instalação no Windows 10.

da Microsoft.Novos Shells: ash, dash, zsh e fish

Embora a comunidade Linux tenha se estabelecido no Bash desde então, os desenvolvedores não pararam de criar novos shells quando 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 rooteado com o BusyBox instalado - ou qualquer outro dispositivo com o pacote BusyBox de software - ele está usando código do ash.

O Debian desenvolveu um ambiente shell baseado em cinzas e o chamou de "traço". Ele foi projetado para ser compatível com POSIX e leve, por isso é mais rápido que o Bash, mas não terá todos os recursos. O Ubuntu usa o shell dash como seu shell padrão para tarefas não interativas, acelerando os scripts de shell e outras tarefas em execução em segundo plano. O Ubuntu ainda usa o bash para shells interativos, no entanto, os usuários ainda têm o ambiente interativo com recursos completos.

Um dos mais novos shells mais populares é o Z shell, ou “zsh”. Criado por Paul Falstad em 1990, o zsh é um shell estilo Bourne que contém os recursos que você encontrará no bash, e ainda mais. Por exemplo, o zsh possui verificação ortográfica, a capacidade de observar logins / logouts, alguns recursos de programação integrados como bytecode, suporte a notação científica em sintaxe, permite aritmética de ponto flutuante e mais recursos.

Outra novidade shell é o Friendly Interactive Shell, ou “peixe”, lançado em 2005. Ele possui uma sintaxe de linha de comando única, projetada para ser um pouco mais fácil de aprender, mas não é derivada do shell Bourne ou do shell C. É uma ideia interessante, mas o que você aprende com o uso de peixes não necessariamente ajuda você a usar bash e outros shells derivados de Bourne.

Qual você deve escolher? (e por que o Zsh é popular)

Você não precisa escolher um shell. 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 até mesmo 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 maneira semelhante.

É 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ê pode apreciar se você gastar muito tempo na linha de comando.

Se você estiver familiarizado com o bash, você pode alternar para o zsh sem aprender uma sintaxe diferente, você só vai ganhar recursos adicionais. Se você estiver familiarizado com o zsh, você pode mudar para o bash sem aprender uma sintaxe diferente - você simplesmente não terá acesso a esses recursos.

“Oh My ZSH” é uma ferramenta que ajuda você a habilitar mais facilmente o plug-in do zsh. ins e alterna entre temas pré-criados, customizando rapidamente seu shell zsh sem gastar horas aprimorando as coisas.

Existem outros shells 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 mais adequado para você. No entanto, não é nem de longe tão comumente usado como bash ou zsh.

Como alternar entre shells

É fácil alternar para um novo shell para testá-lo. Apenas instale o shell do gerenciador de pacotes da sua distribuição Linux e digite o comando para iniciar o shell.

Por exemplo, digamos que você queira tentar o zsh no Ubuntu. Você executaria os seguintes comandos para instalar e depois iniciá-lo:

sudo apt install zsh zsh

Você estaria então sentado em um shell zsh. Digite "

exit" no shell para sair e retornar ao seu shell atual.Isso é apenas temporário. Sempre que você abrir uma nova janela de terminal ou entrar em seu sistema na linha de comando, você verá o seu shell padrão. Para alterar o shell que você vê ao entrar, conhecido como seu shell de login, geralmente é possível usar o comando

chshou "Change Shell".Para usar este comando, você primeiro 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 rodamos o seguinte comando:

which zsh

No Ubuntu, isso nos diz que o binário zsh está armazenado em /usr/bin/zsh.

Execute o seguinte comando, digite sua senha e você ' Será solicitado que você escolha um novo shell de login:

chsh

De acordo com o comando acima, digitaríamos

/ usr / bin / zsh. O shell zsh seria então nosso padrão até que nós executássemos o comandochshe o alterássemos de volta.


O uso de um switch de rede retardará a queda da minha Internet?

O uso de um switch de rede retardará a queda da minha Internet?

Você paga um bom dinheiro pela rápida conexão de banda larga, e seria uma pena se uma escolha ruim de hardware estivesse prejudicando sua rede. Os switches de rede são responsáveis ​​por sua conexão lenta? Recebemos um número não insignificante de consultas de leitores sobre hardware de rede, especialmente preocupações sobre se um switch de rede é ou não responsável por problemas de rede doméstica - problemas de velocidade de conexão e estabilidade.

(how-top)

Como enviar receitas para o Google Home para obter instruções passo a passo

Como enviar receitas para o Google Home para obter instruções passo a passo

Os assistentes por voz, como o Google Home, são excelentes ajudas de cozinha. Eles podem definir temporizadores, adicionar coisas à sua lista de compras e tocar música enquanto você cozinha. Mas o Google Home tem um recurso de destaque: você pode usá-lo para ler as receitas, uma de cada vez, enquanto cozinha.

(how-top)