Большинство последних дистрибутивов Linux включают bash в качестве оболочки по умолчанию, хотя есть и другие (возможно) лучшие оболочки.
Я пытаюсь понять, является ли это каким-то историческим пережитком, который никто не хочет менять, или есть какие-то веские причины, которые делают bash первым выбором?
/bin/sh
, который является оболочкой по умолчанию в «нормальных» UNIX-системах ...bash
это лучшая оболочка, потому что я ее хорошо знаю, и она везде, делает все, что мне нужно, кратко и относительно легко, легко читается и может быть понятна людям, не зная, как создавать сценарии bash. Что еще ты хочешь от снаряда? Если вам нужно много функций программирования, вы неправильно используете оболочку.Ответы:
Короткий ответ - потому что linux действительно GNU / Linux. Только ядро является linux, но базовый набор утилит, обеспечивающих среду, подобную Unix, предоставляется GNU, а оболочка GNU - bash.
Как я уже сказал, это короткий ответ;)
отредактировано, чтобы добавить дополнительный комментарий ...
Позвольте мне префикс, сказав, что я не историк Unix, так что я могу ответить только IMHO
Несколько моментов, прежде всего bash - это раковина раковин, как emacs для редакторов.
На момент выпуска bash не было свободных реализаций ksh, tcsh была бесплатной заменой csh, но у Столлмана был разглагольствование против csh для программирования оболочки.
Как интерактивная оболочка, bash имел отличный отзыв истории / команд, а также сохранение истории от сеанса к сеансу. Это было заменой sh, bsh, ksh для программирования оболочки и сделано для достойной интерактивной оболочки.
Как снежный ком, катящийся вниз по склону, удар набирает обороты и размеры.
Да, есть десятки других оболочек; Оболочки, которые лучше подходят для индивидуального назначения или вкуса, но для одиночного всхода раковины делают достойную работу и смотрят на это более 20 лет.
источник
У Bash есть несколько потенциальных конкурентов:
/bin/sh
. Ясень (под которым я подразумеваю любое из рыхлого семейства оболочек, называемых пеплом) разработан так, чтобы быть маленьким и быстрым, без интерактивных функций (он предназначен только для редактирования скриптов). Возрождение пепла относительно недавно; в 1990-х годах существующим вариантам не хватало многих возможностей.Кроме того, bash является официальной оболочкой GNU , а системы Linux на самом деле являются GNU / Linux : многие из основных программ исходят из GNU, даже если самая известная часть, ядро Linux, не делает этого. В то время, когда он стал стандартом де-факто, bash был хорошо известен, имел официальный статус и имел приличный набор функций.
источник
/bin/sh
, другие отправляют пепел. Например, Ubuntu какое-то время/bin/sh
былаdash
развилкой пепла, поддерживаемой Debian. Bash имеет больше возможностей, зола меньше и быстрее. Оба являются POSIX-совместимыми (или, по крайней мере, достаточно совместимы на практике).Самый простой ответ? Потому что что-то «должно быть» по умолчанию. Наиболее разумным по умолчанию является тот, который большинству пользователей уже удобен. В этом смысле Bash - хороший выбор. У каждого есть свобода выбора лучшего в своем мире. Большинство выберет использовать по умолчанию, если он всегда делал то, что им нужно.
источник
Исходя из DOS (с установленным doskey) я действительно упустил возможность вспомнить последние команды, просто перемещая курсор вверх / вниз. BASH был IMO первой оболочкой, которая реализовала это на * nix.
Так что, вероятно, большинство парней того поколения любили bash.
источник
tcsh
была первая * nix оболочка, которая использовала клавиши со стрелками для навигации по истории оболочки.Все остальные ответы хороши, но с практической точки зрения: если я сижу перед незнакомой системой (или получаю к ней удаленный доступ) и мне нужно что-то делать, я могу рассчитывать на доступность bash на всех, кроме самых старых, системах. Я могу просто пойти дальше и добиться цели.
Как указано в других ответах и в вашем вопросе, есть много других оболочек (я слышал много хорошего о zsh, но не пробовал.), Но они различаются в зависимости от синтаксиса и иногда используемых команд чтобы добиться цели. Если я просто хочу что-то сделать, bash достаточно сложен без необходимости адаптации к другой оболочке.
Кроме того, когда я пишу сценарий оболочки, который может быть в целом полезен, я пишу его для bash и знаю, что, если я буду очень осторожен, чтобы не делать зависящие от системы вещи, он будет работать практически везде.
источник
Инерция.
Bash оказался самой легко доступной бесплатной оболочкой, когда начали появляться системы Linux (если хотите, GNU / Linux). Тот факт, что это из проекта GNU, не повредит.
Что касается того, почему это все еще оболочка по умолчанию, то никогда не было достаточно веских причин для ее изменения. Даже если какая-то другая оболочка лучше, есть преимущества наличия одинаковой оболочки входа по умолчанию в разных дистрибутивах, и было бы трудно заставить всех (Debian, Red Hat, Suse и т. Д.) Согласиться переключиться на что-то другое.
И в конце концов, это только по умолчанию. Любой пользователь может использовать
chsh
для изменения его или ее оболочки входа в систему. Нет необходимости менять настройки по умолчанию для всех.источник