Почему удар является оболочкой по умолчанию в большей части ОС?

Почему удар является оболочкой по умолчанию в большинстве Ose (Ubuntu, Fedora, OSX, и т.д.)? Почему случается так, что много опытных пользователей главным образом использует zsh? Если настолько хорошо, почему это не значение по умолчанию?

Я использую обоих, которые я не вижу, что различие для всех моих задач просто :)

38
задан 31 December 2015 в 17:03

5 ответов

Я сделал некоторое чтение на этом, и заключение, кажется, что это - оболочка по умолчанию GNU (используемый большей частью основанной на Linux ОС), и поэтому просто прибывает упакованное как часть GNU, также имея 20 лет разработки позади него делающий его стабильный и хорошо округленный, это является просто лучшим весь бездельник, удовлетворяя потребности всех кроме большинства опытных пользователей.

Для больше, читайте , Почему стандарт удара на Linux? (тот же вопрос на Unix & Linux).

Только для добавления немного больше к этому существует много других оболочек для попытки, если Вам интересно, вот некоторые из этого ответа :

  • Zsh больше усовершенствовал интерактивные средства, но несколько причуд когда дело доходит до сценариев (меньше теперь, чем назад в дни). В раннем к середине 1990-х, когда Linux был в своем младенчестве, zsh был фактически неизвестен.

  • Ksh был фактическим стандартом на коммерческих нельдах с середины 1980-х, но это было собственное программное обеспечение до 2000, таким образом, не опция на Linux. Кроме того, ksh имел возможности редактирования командной строки ниже среднего, по сравнению с ударом.

  • Pdksh, свободный клон ksh, был бы опцией, но это не было известно и имело плохие возможности выпуска командной строки. (Pdksh больше не является очень активным проектом, даже при том, что он все еще используется в некотором BSDs, теперь, когда ATT ksh свободен.)

  • Некоторые дистрибутивы устанавливают пепел вариант как /bin/sh. Пепел (которым я имею в виду любую свободную семью оболочек, названных пеплом) разработан, чтобы быть маленьким и быстрым без интерактивных функций (это только для редактирования сценариев). Возрождение пепла является относительно недавним; в 1990-х существующие варианты испытали недостаток в большом количестве функций.

  • Tcsh был самой усовершенствованной интерактивной оболочкой, пока zsh не пришел, но это является несовместимым с sh и не настолько хороший со сценариями .

33
ответ дан 23 November 2019 в 00:16

Оболочка Bourne ( sh назад в день) AT& T ответвление Unix был улучшен и заменен Shell Korn, ksh. ksh также вышел из AT& T Bell Labs и не был GPL (текущая версия является Лицензией Общественности Eclipse). Оболочка C, csh вышел из версии Беркли Unix и был также не GPL (лицензия BSD) и также использовал различный синтаксис, чем sh. Z-оболочка, zsh является улучшением на sh, но не GPL (подобная MIT лицензия). Bash был улучшением на sh, использовал GPL и от GNU. Только на одной только лицензии Bash, вероятно, был бы выбором для операционной системы GPL. Особенно с оболочкой, являющейся базовой частью дистрибутива.

, Но Bash был также проект GNU, давая его, я думаю, более активная разработка и вклады создания, легче, чем продукт прежней версии из Unix Беркли или AT& T Unix. Очень хороший случай мог быть сделан этим, zsh и был лучшей оболочкой, чем Bash, но недостаточно так для преодоления это - различная лицензия и состояние проекта не-GNU.

Обратный, когда дистрибутивы Linux сначала появлялись и выбирали свою оболочку по умолчанию (рано к середине 90-х), не было никакого GitHub (2008) или даже SourceForge (1999). В той точке я думаю, что проекты GNU имели реальное преимущество перед проектами не-GNU в том, чтобы быть замеченным и рисованием и включая новых разработчиков. Таким образом, дистрибутивы могли посмотреть на Z-оболочку как лучше, но также и ожидать, что Bash будет получать хорошую поддержку и сопровождение продвижение, и также иметь больше опций, добавленных к ней, позволяя ей поймать до zsh.

Теперь, когда Bash имел годы состояния по умолчанию, это стало defacto стандартом с книгами, записанными об этом. Существует одна книга, которая касается и Bash и Z-оболочки , но никакая книга, которая касается его исключительно, в то время как существуют несколько, которые делают так для Bash.

И в этой точке, если бы дистрибутивы должны были изменить значение по умолчанию для обновлений существующей системы, оно повредило бы установки, поскольку некоторые файлы инициализации имеют различные имена (например, .bashrc по сравнению с .zshrc), и содержание файлов может иметь несовместимый синтаксис. Таким образом, они очень отказались бы сделать это, оставив новые загрузки для имения zsh как значения по умолчанию и обновлений для имения удара. Два различных значения по умолчанию для того же дистрибутива - что-то, что они, вероятно, не хотят должными быть поддерживать, и пользователи/компании также не хотят иметь дело с также.

9
ответ дан 23 November 2019 в 00:16
  1. Это было там, когда это было необходимо
  2. , Это имеет достаточно услады для глаз, что начинающие пользователи могут провести неделю, настраивая их подсказку.
  3. случаи общего использования это достаточно хорошо (наиболее распространенное существо запускают единственную команду)
  4. , Где это не достаточно хороший жемчуг, Python и lua могут поднять слабое.
  5. жемчуг делает ужасную интерактивную оболочку
  6. , хотя рыба, ksh или zsh могут теоретически быть лучшей оболочкой существует недостаточно улучшения для меня для беспокойства, когда жемчуг работает так хорошо, или мобильность является проблемой, таким образом, я нацелен на тире так или иначе.
1
ответ дан 23 November 2019 в 00:16

Языки оболочки Unix все ужасны. Некоторые особенно (csh), некоторые, возможно, немного меньше (ksh? Я не знаю на самом деле), но действительно когда дело доходит до аспектов как удобочитаемость и твердый для больших проектов, ни один из них не может быть рядом с хорошо разработанными языками общего назначения, такими как Python, C# или Haskell. Так, когда Вы захотите что-то твердое, Вы никогда не будете выбирать ни одного из ароматов оболочки вообще.

Вы действительно выбираете их, когда Вы хотите быстро сделать простой материал. Для этого Вам нужно:

  • Краткий синтаксис и достаточно непротиворечивости, таким образом, можно на самом деле запомнить его (трудно искать операторы стенографии). Это имеет большое значение, если бы Ваша оболочка установлена везде, потому что Вы действительно скорее не запомнили бы больше чем одного из этих монстров клуджа.
  • Хорошие интерактивные функции, таким образом, можно взломать прямо терминал и получить материал, работающий, не имея необходимость переключаться между несколькими файлами сценария.
  • способность захватить любой отрывок сценария отовсюду и иметь его просто работают. sh совместимость является большим плюс здесь, и еще раз более популярное лучше.

, Таким образом, Вы видите, популярность является скорее большей точкой на этих языках оболочки, чем это для языков общего назначения. Следовательно, даже если ksh немного “ better” как язык сам по себе, нет действительно такого большого количества advatage в использовании его, если bash просто немного более популярно (которым это было в соответствующем секторе, так как это было сначала выбрано в качестве значения по умолчанию для GNU).

люди, которые действительно переключаются, являются преднамеренными об этом и испытали достаточно для легкой обработки переключения на их любимую оболочку. OTOH, новобранец, который вынужден работать с менее популярной оболочкой, будет быстро перепутан, если они попросят у Интернета чего-то, и это не работает. Следовательно, любой дистрибутив, это не только нацелено на ветеранов Unix, берет на себя некоторый риск, если бы это делает что-нибудь кроме bash стандарт, шаг, из которого относительно немного людей извлекли бы выгоду (и только немного).

1
ответ дан 23 November 2019 в 00:16

"Критическая масса" является основным ответом, IMO. Bash не только для работы командной строки, это для сценариев и существует огромное, огромное количество сценариев Bash там. Неважно, сколько лучше альтернатива теперь для взаимодействия, потребность быть в состоянии только к "Plug and Play", те сценарии перевешивают такие преимущества. По сути, единственная оболочка, которая может реалистично сбросить Bash теперь, является той, которая полностью назад совместима, и наиболее вероятный кандидат на это является... следующей версией Bash.

0
ответ дан 23 November 2019 в 00:16

Другие вопросы по тегам:

Похожие вопросы: