Bourne Shell ( ш назад в день) от AT & T ветви Unix была улучшена и вытеснены в Korn Shell, KSH . ksh также вышел из AT & T Bell Labs и не был GPL (текущая версия - Eclipse Public License). C-оболочка csh вышла из версии Unix для Беркли и также не была GPL (лицензия BSD) и также использовала синтаксис, отличный от sh. Z-shell, zsh - это улучшение sh, но не GPL (MIT-подобная лицензия). Bash был улучшением sh, использовал GPL и GNU. Только на одной лицензии Bash, вероятно, был бы выбором для операционной системы GPL. Особенно с оболочкой, являющейся основной частью дистрибутива.
Но Bash был также проектом GNU, который, как мне кажется, дал ему более активную разработку и сделал вклад легче, чем унаследованный продукт из Berkeley Unix или AT & T Unix. Можно привести очень хороший пример того, что zsh является и был лучшей оболочкой, чем Bash, но этого недостаточно, чтобы преодолеть другой статус лицензии и не-GNU проекта.
В те времена, когда дистрибутивы Linux впервые появлялись и выбирали оболочку по умолчанию (с начала до середины 90-х годов), не было ни github (2008), ни даже SourceForge (1999). На данный момент, я думаю, что проекты GNU имели реальное преимущество перед проектами не-GNU в том, что их замечали и рисовали, включая новых разработчиков. Таким образом, дистрибутивы могут смотреть на Z-shell лучше, но также ожидают, что Bash получит хорошую поддержку и поддержку в будущем, а также добавит больше возможностей, что позволит ему догнать zsh.
Теперь, когда Bash имеет годы статуса по умолчанию, он стал стандартом де-факто с книгами, написанными об этом. Есть одна книга, которая охватывает как Bash, так и Z-shell , но нет книги, которая охватывает только ее, хотя есть несколько книг, которые делают это для Bash.
И в этот момент, если дистрибутивы изменят настройки по умолчанию для обновлений существующей системы, это нарушит настройки, так как некоторые файлы инициализации имеют разные имена (например, .bashrc против .zshrc), а содержимое файлов может иметь несовместимый синтаксис. Поэтому они очень неохотно делают это, оставляя новые загрузки с zsh по умолчанию и обновления с bash. Вероятно, они не хотят поддерживать два разных значения по умолчанию для одного и того же дистрибутива, и пользователи / компании также не хотят иметь с ними дело.
ksh
, то также верно, что большинство людей используют другую оболочку, и это само по себе объясняет, почемуksh
это не оболочка по умолчанию. Однако я не думаю, что это является причиной, давайте подождем некоторого убийственного ответа, который, я уверен, этот вопрос получит.