Возможно, вы слышали о Bash — оболочке по умолчанию в большинстве дистрибутивов Linux. В Linux предустановлена еще одна оболочка: оболочка Bourne.
Оболочка Bourne — одна из старейших оболочек, которые до сих пор используются в современных системах Linux, хотя она и не так широко используется, как Bash. Вот что вам нужно знать об оболочке Bourne в Linux.
Что такое оболочка Борна?
Оболочка Борна, часто сокращаемая до «sh», названа в честь британского ученого-компьютерщика Стивена Р. Борна, который разработал его, работая в Bell Labs в 1978 году. Оболочка заменила более раннюю оболочку Thompson, написанную одним из первых создателей Unix, Кеном Томпсоном.
Оболочка Bourne впервые появилась в версии 7 Unix в 1979 году. У него были такие функции, как управление потоком, переменные и улучшенная обработка строк. Эти функции упростили использование оболочки в качестве языка программирования, а не просто для вызова других программ.
Хотя оболочка Bourne оставалась популярной для написания переносимых скриптов в системах Unix, она заменен для интерактивного использования оболочкой C, KornShell, оболочкой Bourne Again, также известной как Bash, и оболочкой Z оболочка. Эти оболочки предлагали такие функции, как
история команд и редактирование командной строки это облегчило жизнь пользователям и администраторам.Синтаксис KornShell, Bash и оболочки Z (описанный ниже) зависит от оболочки Bourne.
Более мощные кроссплатформенные языки сценариев с еще более продвинутыми функциями, такие как Perl и Python, также в значительной степени заменили сценарии оболочки.
Тем не менее, оболочка Bourne широко известна, и многие сценарии, поставляемые с программами Linux, используют ее синтаксис для различных задач.
Поведение оболочки Борна было кодифицировано в стандарт POSIX, так что многие современные Unix-подобные системы каким-то образом реализуют его с помощью совместимой оболочки.
Современные альтернативы Bourne Shell
Существует несколько современных альтернатив оригинальной оболочке Bourne в системах Linux с открытым исходным кодом. Вот некоторые из самых известных:
1. Bourne Again Shell (Bash)
Имя Оболочка Bourne Again (Bash) это игра на оболочке Борна. Эта оболочка изначально разрабатывалась как компонент системы GNU, предшествовавшей Linux на несколько лет.
Он в значительной степени совместим со сценариями, изначально написанными для оболочки Bourne. Он также включает такие функции, как редактирование командной строки, впервые реализованное в KornShell.
Bash является оболочкой по умолчанию во многих дистрибутивах Linux и, таким образом, сам по себе стал стандартом де-факто.
2. КорнШелл
КорнШелл, также известный как ksh, был первоначально разработан Дэвидом Корном, также работавшим в Bell Labs, в 1980-х годах. Построенный поверх оболочки Bourne, KornShell представил некоторые дополнительные функции, такие как управление заданиями, массивы и редактирование командной строки. Последнее было революционной функцией, когда оно впервые появилось, потому что это было намного проще, чем использование механизма истории оболочки C.
Если вам нужно повторно отредактировать ранее введенную команду, вы можете использовать для этого команды, подобные Vi или Emacs.
KornShell использовался по умолчанию в некоторых коммерческих системах Linux, таких как Oracle Solaris. Поскольку оригинальный KornShell изначально был выпущен AT&T по проприетарной лицензии, в конечном итоге была выпущена версия с открытым исходным кодом под названием pdksh.
3. Оболочка Almquist/Debian Almquist
Оболочка Almquist изначально была написана Кеннетом Алмквистом и задумывалась как облегченная замена оболочки Bourne. Многие системы BSD включают его как реализацию sh.
Версия была портирована на Debian в 1990-х годах и известна как оболочка Debian Almquist. Как следует из названия, это реализация sh в системах Debian и Ubuntu.
4. Z оболочка
Z оболочка, или zsh, — одна из новейших оболочек, первоначально разработанная в 1990 году Полом Фалстедом. Оболочка Z стала известна своими расширенными функциями. Хорошим примером является рекурсивная подстановка или возможность сопоставления подстановочных знаков в подкаталогах.
Оболочка Z — это оболочка входа по умолчанию для macOS и Kali Linux.
Совместимость с Bourne Shell
Хотя эти оболочки в значительной степени совместимы со сценариями, изначально написанными для оболочки Bourne, существуют способы изменить их поведение, чтобы они больше походили на исходную оболочку.
Основной способ сделать это через символическая ссылка. Большинство систем будут использовать символические ссылки /bin/sh либо в Bash, либо в другую оболочку. При таком вызове оболочка перейдет в режим совместимости с оболочкой Bourne.
Вы можете видеть, какая оболочка /bin/sh связано с с команда лс:
ls -l /bin/sh
Теперь вы знаете о Bourne Shell
Оболочка Bourne — один из старейших стандартов для сценариев в Unix-подобных системах. Даже если он был заменен другими оболочками, он по-прежнему жизненно важен для запуска сценариев, написанных другими.
Bash — одна из лучших производных от Bourne для кодирования, особенно из-за его подхода к переменным. У него есть несколько уникальных переменных, которые могут побудить вас рассмотреть его для вашего следующего проекта.