Por que o bash é o shell padrão na maioria dos sistemas operacionais (Ubuntu, Fedora, OSX etc.)? Por que muitos usuários avançados usam principalmente o zsh? Se é tão bom, por que não é o padrão?
Eu uso os dois, não vejo diferença, pois todas as minhas tarefas são simples :)
bash
default
zsh
history-of-ubuntu
Talal
fonte
fonte
ksh
, também é verdade que a maioria das pessoas usa um shell diferente, e isso por si só explicaria por queksh
não é o shell padrão. No entanto, acho que não é esse o motivo, vamos aguardar uma resposta matadora que tenho certeza de que essa pergunta receberá.Respostas:
Eu li isso e a conclusão parece ser que é o shell padrão do GNU (usado pela maioria dos sistemas operacionais Linux) e, portanto, simplesmente vem empacotado como parte do GNU, além de ter 20 anos de desenvolvimento por trás dele. estável e bem arredondado, é simplesmente o melhor em todos os aspectos, atendendo às necessidades de todos, exceto dos usuários mais avançados.
Para saber mais, leia Por que o bash é padrão no Linux? (a mesma pergunta no Unix e Linux).
Só para adicionar um pouco mais a isso, existem muitas outras conchas para tentar, se você estiver interessado, aqui estão algumas desta resposta :
fonte
O Bourne Shell ( sh no passado) do ramo AT&T do Unix foi aprimorado e substituído pelo Korn Shell, ksh . O ksh também saiu do AT&T Bell Labs e não era da GPL (a versão atual é a Licença Pública do Eclipse). O C-shell, csh , saiu da versão Berkeley do Unix e também não era GPL (licença BSD) e também usava sintaxe diferente da sh. O Z-shell, zsh é uma melhoria no sh, mas não no GPL (licença semelhante ao MIT). O Bash foi uma melhoria no sh, usou a GPL e o GNU. Apenas com a licença Bash provavelmente teria sido a escolha para um sistema operacional GPL. Particularmente com uma concha sendo uma parte essencial de uma distribuição.
Mas o Bash também era um projeto GNU, dando a ele, acho, um desenvolvimento mais ativo e facilitando as contribuições do que um produto herdado do Berkeley Unix ou da AT&T Unix. Pode-se argumentar muito bem que o zsh é e tem sido um shell melhor que o Bash, mas não o suficiente para superar sua licença diferente e o status do projeto não-GNU.
Quando as distros do Linux apareceram pela primeira vez e escolheram seu shell padrão (no início dos anos 90), não havia github (2008) ou mesmo um SourceForge (1999). Nesse ponto, acho que os projetos GNU tinham uma vantagem real sobre os projetos não-GNU em serem notados, desenhar e incluir novos desenvolvedores. Portanto, as distros podem considerar o Z-shell melhor, mas também esperam que o Bash receba um bom suporte e manutenção daqui para frente e também tenham mais recursos adicionados a ele, permitindo que ele atinja o zsh.
Agora que o Bash tem anos de status padrão, tornou-se um padrão defacto, com livros escritos sobre isso. Há um livro que cobre o Bash e o Z-shell , mas nenhum livro que o cobre exclusivamente, enquanto há vários que o fazem para o Bash.
E, nesse ponto, se as distros alterassem o padrão para atualizações de um sistema existente, as configurações seriam interrompidas, pois alguns arquivos de inicialização têm nomes diferentes (por exemplo, .bashrc versus .zshrc) e o conteúdo dos arquivos pode ter sintaxe incompatível. Portanto, eles ficariam muito relutantes em fazer isso, deixando novos downloads com o zsh como padrão e as atualizações com o bash. Dois padrões diferentes para a mesma distribuição são algo que eles provavelmente não querem ter suporte e os usuários / empresas também não querem lidar com isso.
fonte
As linguagens de shell do Unix são todas feias. Alguns particularmente (
csh
), outros talvez um pouco menos (ksh
? Na verdade, eu não sei), mas realmente quando se trata de aspectos como legibilidade e rigidez para grandes projetos, nenhum deles pode se aproximar de linguagens de uso geral bem projetadas, como Python, C # ou Haskell. Então, quando você quiser algo sólido, nunca escolherá nenhum dos sabores de casca.Você os escolhe quando deseja fazer rapidamente coisas simples. Para isso, você precisa:
sh
a compatibilidade é uma grande vantagem aqui e, mais uma vez, quanto mais popular, melhor.Então veja, a popularidade é um ponto maior nessas linguagens shell do que nas linguagens de uso geral. Portanto, mesmo que
ksh
seja um pouco “melhor” como uma linguagem em si, não há realmente muita vantagem em usá-la sebash
for um pouco mais popular (o que era, no setor relevante, desde que foi escolhida como padrão). para GNU).As pessoas que fazem a troca são deliberadas e experientes o suficiente para lidar facilmente com a mudança para seu shell favorito. OTOH, um novato que é forçado a trabalhar com um shell menos popular ficará rapidamente confuso se pedir algo à Internet e ele não funcionar. Portanto, qualquer distro que não seja destinada apenas aos veteranos do Unix corre algum risco se fizer algo além
bash
do padrão, um passo do qual relativamente poucas pessoas se beneficiariam (e apenas um pouco).fonte
fonte
"Massa crítica" é a resposta principal, IMO. O Bash não é apenas para trabalhos de linha de comando, é para scripts e há um número enorme de scripts do Bash por aí. Não importa quão melhor seja agora uma alternativa para a interação, a necessidade de poder "plug and play" apenas esses scripts supera essas vantagens. Dessa forma, o único shell que pode derrubar o Bash de forma realista agora é completamente compatível com versões anteriores e o candidato mais provável a isso é ... a próxima versão do Bash.
fonte