2

Новичок в Linux и несколько вопросов о сценариях оболочки:

  • ракушка
  • C оболочка
  • Баш оболочка
  • Оболочка Борна
  • скорлупа корна

Так много "снарядов"! В соответствии с этим, как мне узнать, для каких интерпретаторов сконфигурирована моя система Linux? Если у меня нет поддержки, скажем, korn , то как мне настроить мою систему для поддержки?

Кроме того, какой из этих оболочек наиболее "активен" (чаще всего обновляется и поддерживается)?

Заранее спасибо!

2 ответа2

3

Проблема, которую вы рассмотрели, - это та самая причина, по которой у нас есть понятие POSIX-совместимых оболочек и возможность создавать "переносимый" код. Если вы придерживаетесь POSIX-совместимого синтаксиса, изложенного в этой ссылке, вы можете быть уверены, что ваш код переносим.

Тем не менее, если ваша целевая аудитория - только Linux, то каждый дистрибутив Linux, который я когда-либо видел, поставляется с bash в качестве оболочки по умолчанию, поэтому вы можете быть достаточно уверены, что сценарий, совместимый с Bash 3.x, будет работать практически на любом дистрибутиве Linux. там.

0

Первый UNIX был в AT & T. Первой оболочкой была раковина Борна. Это было очень круто, но у него были серьезные ограничения.

Когда ребята из Беркли начали играть с UNIX и пытались улучшить его, они выпустили оболочку C. У него был другой язык программирования (хотя и с собственным недостатком), но он был намного лучше в интерактивном использовании. Благодаря своим преимуществам в интерактивном использовании, он стал очень популярным в любой UNIX, которая произошла от Berkeley UNIX.

Оболочка C (или csh) породила клон с открытым исходным кодом под названием tcsh. Если вы используете csh, вы, вероятно, используете не 'true' или оригинальный csh, а tcsh.

Тем временем ребята из UNIX не просто сидели на своих руках. Дейв Корн (хороший парень) создал новую оболочку под названием ... Корн скорлупа. Он следовал модели программирования, созданной оболочкой Bourne (возможно, превосходящей модель csh). Он стал очень популярным, стал ракушкой для многих людей. Он также стал частью спецификации UNIX. Это породило довольно популярный клон с открытым исходным кодом под названием pdksh, который довольно близко (хотя и не на 100%) совместим. В конце концов AT & T выпустила код как открытый исходный код.

Ребята из GNU хотели создать собственную UNIX-систему, поэтому им нужна была оболочка, которую они могли бы включить, не беспокоясь о проблемах лицензирования. Они создали Bash, Bourne Again Sheell. В основном совместимый с оригинальным Bourne, и основанный на идеях Csh и Ksh, он стал популярным как из-за простоты использования, так и потому, что он поставляется с каждым Linux. Было несколько версий, версия 2 - первая, очень полезная, и теперь она на версии 4 с новыми функциями.

Потом пришел зш. Он также следовал синтаксису оболочки Bourne и копировал то, что было хорошо в оболочке Bourne, ksh, csh и bash. Возможно, он имеет самый продвинутый синтаксис с функциями, которых нет в других оболочках.

TL; DR Итак, что использовать? Если вы кодируете скрипт запуска, вы хотите использовать /bin /sh, который совместим с POSIX /Original Bourne. Язык редкий, но он будет работать, даже если такие диски, как /usr, недоступны.

Если не сценарии запуска, у вас есть немного больше выбора. Если вы используете только свою машину, используйте все, что доступно в данный момент. Вы контролируете свою машину. Если вы пишете для раздачи другим людям, я бы использовал /bin /sh или bash. /bin /sh, хотя и простой, всегда доступен. bash является открытым исходным кодом, поэтому почти всегда доступен, достаточно стар, чтобы быть везде, но достаточно новым, чтобы иметь некоторые новые функции. Csh не доступен везде, и не Zsh.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .