Bash ou Zsh, qual é a diferença, por que usar um ou outro? [duplicado]


23

Então, a pergunta praticamente diz tudo. Estou no Snow Leopard e desenvolvo muito a web, principalmente no Rails 3, que faz uso pesado do console.

Vi alguns blogueiros notáveis ​​etc. mencionarem o Zsh como sua preferência pelo Bash, mas não sei que diferença isso faria.

Alguém poderia me dar uma boa comparação de que diferença existe e o que pode fazer alguém preferir uma opção ou outra?



11
Se isso ajuda, um artigo de 2016: stackabuse.com/zsh-vs-bash
Cœur

Esta questão tornou-se relevante outra vez devido a maçãs mudar para zsh
amar

Respostas:


16

Isto é do FAQ do Zsh :

2.5: Semelhanças com o bash

O Bourne-Again Shell, bash, é outro shell aprimorado semelhante ao Bourne; o mais óbvio
A diferença do zsh é que ele não tenta emular o shell Korn. Desde que ambos
conchas estão em desenvolvimento ativo, provavelmente não é sensato ser muito específico 
aqui. Em termos gerais, o bash prestou mais atenção à conformidade com os padrões (isto é, POSIX) para
por mais tempo e até agora evitou os recursos interativos mais obscuros (programáveis 
conclusão etc.) que o zsh possui.

Eu usei os dois, mas prefiro o Bash hoje em dia, porque as máquinas em que trabalho são padronizadas para bash consistentemente. O comentário de conformidade com os padrões é importante para mim porque isso significa consistência entre os sistemas operacionais.

O Zsh possui boas habilidades de preenchimento automático, mas eu continuava encontrando casos em que não sabia o que queria. Isso foi há vários anos, por isso pode ter melhorado desde então.

Descobri que ativar o "modo vi" ( set -o vi) no Bash o torna um ambiente de linha de comando muito mais agradável do que normalmente é, então faço isso imediatamente no meu .bashrcarquivo.

Ao escrever scripts de shell, eu nunca programa em bash ou zsh - eu programo usando sh ( /bin/sh), porque é o menor denominador comum e o menos provável de ter problemas de compatibilidade. Esse é apenas um velho hábito que me sustentou bem.


2
Uma diferença é que os caracteres curinga se comportam de maneira diferente. Por exemplo, para encontrar todas as ocorrências de arquivos chamados "vi" pode-se usar o bash com o comando locate */vi. Usando zsh, o resultado para o mesmo comando é zsh: no matches found: */vi. Para que a pesquisa funcione no zsh, a consulta de pesquisa deve estar entre aspas, como locate "*/vi".
Pro Backup

Mas os dois exemplos funcionam no bash.
John Stack
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.