Почему удар является стандартным на Linux?

Вы попытались использовать пункт меню "Palm OS devices" в Системе-> Предпочтения? (Это может быть в Системе-> администрация, я не перед своими полями Ubuntu.)

(Полное раскрытие: Этот ответ предполагает, что a/your Palm Centro не запускает Windows Mobile.)

19
10.01.2012, 12:29
6 ответов

Короткий ответ - то, потому что Linux является действительно GNU/Linux. Только ядром является Linux, но основной набор утилит, обеспечивающих Unix как среда, обеспечивается GNU, и оболочка GNU является ударом
Как я сказал, это - короткий ответ ;)

отредактированный для добавления некоторого дополнительного комментария...
Позвольте мне префикс путем высказывания, что я не историк Unix, таким образом, я могу только ответить, по моему скромному мнению,

Несколько точек, в первую очередь, колотите, раковина оболочек, как emacs редакторам.
В то время, когда удар был выпущен не было никаких бесплатных ksh реализаций, tcsh был свободной csh заменой, но у Stallman была напыщенная речь против csh для программирования оболочки.
Поскольку интерактивный удар оболочки имел превосходный отзыв истории/команды, наряду с сохранением истории от сессии до сессии. Это было понижением замены для sh, bsh, ksh для программирования оболочки и сделало для достойной интерактивной оболочки.
Как прокрутка снежка под гору, удар развил скорость и размер.

Да, существуют десятки других оболочек; оболочки, которые лучше подходят для отдельной цели или вкуса, но для сингла все вокруг удара оболочки делают достойное задание и имели много глаз на него больше 20 лет.

18
27.01.2020, 19:44
  • 1
    я понимаю. Однако большинство дистрибутивов включает много другого программного обеспечения не-GNU. Мне кажется, что удар используется просто, потому что это используется, точно так же, как choroba прокомментировал из Windows, являющегося доминирующей ОС. Однако в течение многих десятилетий Windows имел лучшую поддержку оборудования (драйверы), которые мешали переключаться на другую ОС. Мне не удается видеть то, что Bash уникальной функции предлагает препятствовать тому, чтобы пользователи переключили? –  Milan Babuškov 10.01.2012, 21:21
  • 2
    +1 и хороший один @bdowning для короткого и простого :-) –  Nikhil Mulley 11.01.2012, 10:19
  • 3
    @MilanBabuškov должен быть установлен, потому что существует слишком много сценариев, которые используют определенные для удара функции. После того как Вы запускаете с того предположения, необходимо выровнять по ширине дополнительные оболочки. Тире был включен в distos как Ubuntu как часть плана уменьшить время начальной загрузки. Учитывая, что удар "достаточно хорош" как интерактивная оболочка, никакая другая оболочка еще не дала достаточно сильный аргумент, чтобы быть частью пакета по умолчанию loadout. –  ssokolow 14.06.2016, 15:47

Bash имеет некоторых потенциальных конкурентов:

  • Zsh больше усовершенствовал интерактивные средства, но несколько причуд когда дело доходит до сценариев (меньше теперь, чем назад в дни). В раннем к середине 1990-х, когда Linux был в своем младенчестве, zsh был фактически неизвестен.
  • Ksh был фактическим стандартом на коммерческих нельдах с середины 1980-х, но это было собственное программное обеспечение до 2000, таким образом, не опция на Linux. Кроме того, ksh имел возможности выпуска командной строки ниже среднего, по сравнению с ударом.
  • Pdksh, свободный клон ksh, был бы опцией, но это не было известно и имело плохие возможности выпуска командной строки. (Pdksh больше не является очень активным проектом, даже при том, что он все еще используется в некотором BSDs, теперь, когда ATT ksh свободен.)
  • Некоторые дистрибутивы устанавливают вариант пепла как /bin/sh. Пепел (которым я имею в виду любое свободное семейство оболочек, названных пеплом) разработан, чтобы быть маленьким и быстрым без интерактивных функций (это только для редактирования сценариев). Возрождение пепла является относительно недавним; в 1990-х существующие варианты испытали недостаток в большом количестве функций.
  • Tcsh был самой усовершенствованной интерактивной оболочкой, пока zsh не пришел, но это является несовместимым с sh и не настолько хорошим со сценариями.

Кроме того, удар является официальной оболочкой GNU, и системами Linux является действительно GNU/Linux: многие базовые программы прибывают из GNU, даже если самая известная часть, ядро Linux, не делает. В то время, когда это стало фактическим стандартом, удар был известен, имел официальное состояние и имел достойный набор функций.

12
27.01.2020, 19:44
  • 1
    Как я понимаю, стандарт POSIX указывает требуемые функции Оболочки Bourne в/bin/sh, и большинство дистрибутивов Linux зависит от сценариев оболочки, записанных для использования Оболочки Bourne. Bash является в основе расширенной версией Оболочки Bourne, и/bin/sh является на самом деле ссылкой на/bin/bash, что когда выполняемые выполнения только с функциями Оболочки Bourne. –  bgvaughan 12.01.2012, 20:18
  • 2
    @bgvaughan Некоторые дистрибутивы поставляет удар как /bin/sh, другие поставляют пепел. Например, Ubuntu /bin/sh был dash (ветвление пепла, сохраняемого Debian) некоторое время. Bash имеет больше функций, ясень меньше и быстрее. Оба - совместимый POSIX (или по крайней мере достаточно совместимый на практике). –  Gilles 'SO- stop being evil' 12.01.2012, 20:54

Самый простой ответ? Поскольку что-то "должно быть" значением по умолчанию. Самое разумное значение по умолчанию является тем, которым большинство пользователей уже довольно. На той точке Bash является хорошим выбором. У всех есть свобода выбрать, который является лучшим в их мире. Большинство примет решение использовать значение по умолчанию, если оно всегда делало то, в чем они нуждаются.

4
27.01.2020, 19:44

При прибытии из DOS (с установленным doskey) я действительно пропустил функцию, чтобы повторно вызвать последние команды путем простого перемещения курсора/вниз. Bash был IMO первая оболочка, которая реализовала, это на *отклоняет.

Так, вероятно, большинству парней от того поколения вперед понравился удар.

3
27.01.2020, 19:44
  • 1
    В то время как не использовавший компьютер до 1990-х, я находился под предположением это tcsh было первое *, отклоняют оболочку для использования клавиш со стрелками для навигации назад и вперед через историю оболочки. –  Anthony G - justice for Monica 18.06.2016, 02:06

Все другие ответы являются большими, но с практической точки зрения: Если я сажусь перед незнакомой системой (или получите доступ к ней удаленно), и я должен сделать что-то, я могу рассчитывать на удар, являющийся доступным на всех кроме самых старых систем. Я могу просто идти вперед и добиться цели.

Как указано в других ответах и в Вашем вопросе, существует много других оболочек (я слышу много хороших вещей о zsh, но не попробовал его.), но они варьируются относительно синтаксиса, и иногда команды раньше добивались цели. Если я просто хочу сделать что-то, удар достаточно хитер, не имея необходимость адаптироваться к другой оболочке.

Кроме того, когда я пишу сценарий оболочки, который мог бы быть обычно полезным, я пишу это для удара, и я знаю, что, если я очень боюсь делать системно-зависимые вещи, это будет работать почти куда угодно.

1
27.01.2020, 19:44

Инерция.

Bash, оказалось, был наиболее легко доступной бесплатно оболочкой, когда Linux (GNU/Linux, если Вы предпочитаете) системы начал появляться. То, что это из проекта GNU, не причиняло боль.

Что касается того, почему это - все еще оболочка по умолчанию, никогда не было достаточно хорошей причины изменить его. Даже если некоторая другая оболочка лучше, существуют преимущества для наличия той же оболочки входа в систему по умолчанию через различные дистрибутивы, и было бы трудно заставить всех (Debian, Red Hat, SuSe, и т.д.) соглашаться переключиться на что-то еще.

И в конце концов, это - только значение по умолчанию. Любой пользователь может использовать chsh изменить его оболочку входа в систему. Нет никакой потребности изменить значение по умолчанию для всех.

1
27.01.2020, 19:44

Теги

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