Por que o bash é padrão no Linux?

17

As distribuições mais recentes do Linux incluem o bash como shell padrão, apesar de existirem outras (discutivelmente) melhores shells disponíveis.

Estou tentando entender se isso é uma sobra histórica que ninguém quer mudar, ou existem algumas boas razões que fazem da bash a primeira escolha?

    
por Milan Babuškov 10.01.2012 / 11:29

6 respostas

15

A resposta curta é porque o linux é realmente GNU / Linux. Apenas o kernel é linux, mas a coleção base de utilitários que fornecem o ambiente similar ao Unix é fornecida pelo GNU e o shell GNU é bash
Como eu disse, essa é a resposta curta;)

editado para adicionar algum comentário adicional ...
Deixe-me prefixo dizendo que eu não sou um historiador Unix, então eu só posso responder IMHO

Alguns pontos, antes de tudo, bash é a pia da cozinha de conchas, como emacs é para editores.
Na época em que o bash foi lançado, não havia implementações gratuitas do ksh, o tcsh era um substituto gratuito do csh, mas Stallman tinha um discurso contra o csh para programação de shell. Como uma festa de shell interativa teve excelente histórico / comando de recall, juntamente com a economia de histórico de sessão para sessão. Foi uma queda no substituto para sh, bsh, ksh para programação shell e para um shell interativo decente.
Como uma bola de neve rolando ladeira abaixo, o bash ganhou força e tamanho.

Sim, existem dezenas de outros shells; conchas que são mais adequadas para o propósito individual ou gosto, mas para um único todo em torno de bash shell faz um trabalho decente e tem tido muitos olhos nele por mais de 20 anos.

    
por 10.01.2012 / 18:56
11

Bash tem alguns concorrentes em potencial:

  • O Zsh possui recursos interativos mais avançados, mas algumas peculiaridades quando se trata de criação de scripts (menos agora do que antigamente) . No início dos anos 90, quando o Linux estava em sua infância, o zsh era praticamente desconhecido.
  • O Ksh foi o padrão de fato em unicóes comerciais desde meados da década de 1980, mas era um software proprietário até 2000, então não é um opção no Linux. Além disso, o ksh tinha recursos de edição de linha de comando abaixo do padrão, em comparação com o bash.
  • Pdksh , um clone grátis de ksh, teria sido uma opção, mas não era bem conhecido e tinha recursos de edição de linha de comando ruins. (Pdksh não é mais um projeto muito ativo, embora ainda seja usado em alguns BSDs, agora que o ATT ksh é gratuito.)
  • Algumas distribuições instalam uma variante ash como /bin/sh . Ash (pelo qual me refiro a qualquer uma das famílias de shells chamadas ash) é projetado para ser pequeno e rápido, sem recursos interativos (é apenas para editar scripts). O renascimento das cinzas é relativamente recente; na década de 1990, as variantes existentes não tinham muitos recursos.
  • O Tcsh foi o shell interativo mais avançado até o zsh aparecer, mas é incompatível com sh e não é tão bom com scripts .

Além disso, o bash é o shell oficial do GNU , e os sistemas Linux são realmente GNU / Linux : muitos dos principais programas vêm do GNU, mesmo que a parte mais conhecida, o kernel Linux, não o faça. Na época, tornou-se o padrão de fato, bash era bem conhecido, tinha um status oficial e tinha um conjunto decente de recursos.

    
por 11.01.2012 / 01:53
3

Vindo do DOS (com doskey instalado) Eu realmente senti falta do recurso para recuperar os últimos comandos simplesmente movendo o cursor para cima / baixo. BASH foi o primeiro shell da IMO que implementou isso no * nix.

Então, provavelmente, a maioria dos caras dessa geração gostou do bash.

    
por 10.01.2012 / 22:16
2

Resposta mais simples? Porque algo "tem que ser" o padrão. O padrão mais sensato é aquele com o qual a maioria dos usuários já está familiarizada. Nesse ponto Bash é uma boa escolha. Todo mundo tem a liberdade de escolher qual é o melhor em seu mundo. A maioria escolherá usar o padrão se sempre fizer o que eles precisam.

    
por 10.01.2012 / 22:36
0

Todas as outras respostas são ótimas, mas do ponto de vista prático: Se eu me sento na frente de um sistema desconhecido (ou o acesso remotamente) e preciso fazer algo, posso contar com o bash disponível em todos, menos no sistemas mais antigos. Eu posso ir em frente e fazer as coisas.

Como apontado em outras respostas e em sua pergunta, há muitos outros shells (eu ouço muitas coisas boas sobre o zsh, mas não o testei.), mas eles variam com relação à sintaxe e às vezes os comandos usados para fazer as coisas. Se eu quiser apenas fazer algo, o bash é bastante complicado sem ter que se adaptar a outro shell.

Além disso, quando eu escrevo um script de shell que pode ser útil em geral, eu o escrevo para o bash e sei que, se tiver muito cuidado para não fazer coisas dependentes do sistema, ele será executado em praticamente qualquer lugar.

    
por 14.01.2012 / 10:53
0

Inércia.

O Bash era o shell grátis mais facilmente disponível quando os sistemas Linux (GNU / Linux, se preferir) começaram a aparecer. O fato de ser do projeto GNU não doeu.

Por que ainda é o shell padrão, nunca houve um motivo suficiente para alterá-lo. Mesmo que algum outro shell seja melhor, há vantagens em ter o mesmo shell de login padrão em diferentes distribuições, e seria difícil fazer com que todos (Debian, Red Hat, Suse, etc.) concordassem em mudar para outra coisa. / p>

E afinal, é apenas um padrão. Qualquer usuário pode usar chsh para alterar seu shell de login. Não há necessidade de alterar o padrão para todos.

    
por 14.01.2012 / 13:42

Tags