Bash Shell превышает 30 лет и все еще идет сильный. Что это делает, откуда он взялся, и почему это все еще самая распространенная оболочка на системах Linux?
Что такое раковина?
Когда вы открываете окно терминала и введите команды, что-то должно взять то, что вы напечатали, выясните, что вы предполагаете, и запустите задачи, которые вы просили. Программное обеспечение, которое делает это оболочкой. Оболочка - это интерпретатор команды. Он сканирует, что вы напечатали и выбираете команды, имена каталогов, имена файлов и имена программ, чтобы он мог выяснить, что вы пытаетесь достичь.
Люди часто используют фразы «клеммные окна», «командная строка» и «оболочка» взаимозаменяемо, но они три различных вещей. Окно терминала представляет собой программное представление физического Teletype Terminal. Отказ Это дает вам соединение с компьютером. Для того, чтобы сделать все полезное, вы должны быть в состоянии ввести инструкции в командной строке. Командная строка обеспечивается оболочкой, а окно терминала позволяет получить доступ к оболочке.
Оболочки также позволяют вам побуждать коллекцию команд в текстовый файл, называемый сценарием. Все команды в скрипте выполняются для вас каждый раз, когда вы запускаете скрипт. Сценарии обеспечивают эффективность, повторяемость и удобство.
Первое
Unix
раковина была
Thompson Shell.
, называется
штерива
Отказ Это было написано
Кен Томпсон
, который, возможно, самый ключевой член исходных отцов учредителей Unix в
Bell Labs
Отказ Оболочка Thompson была использована в качестве оболочки Unix по умолчанию, в том числе, включая Unix версии 6., она была заменена
Оболочка Борна
В версии 7 UNIX в 1979 году.
СВЯЗАННЫЕ С: Что такое UNIX, и почему это имеет значение?
Оболочка Борна
Оболочка Борна, написанная
Стивен Борн
Была модернизированная замена для Thompson Shell. Даже началось использовать ту же команду, что и корпус Thompson,
штерива
, Поддерживать обратную совместимость с существующими сценариями. Обратная совместимость была важной, но были включены новые функции, которые обеспечили большую функциональность, которую мы все еще используем сегодня.
Оболочка Bourne была интерактивной оболочкой и языком сценариев. Он поддерживал оформление переднего плана и фона и элементарного управления задачами. Трубы и перенаправления были добавлены вместе с улучшениями в обработке петель.
Оболочка в настоящее время содержит некоторые встроенные команды, что означает, что ему не нужно было проходить все для внешних утилит, что делает его более эффективным. Оболочка Bourne даже поддерживается «Вот документы», элегантный способ автоматизировать отправку данных в команды.
Оболочка Bourne подняла бар и стала новым стандартом.
СВЯЗАННЫЕ С: Как использовать «здесь документы» в Bash на Linux
Рождение bash
В 1984 году, когда Проект GNU объявил о своем намерении сделать бесплатный клон Unix, написанный с нуля и с Новое, разрешительное лицензирование - команда нуждалась в оболочке. Когда волонтер, который работал на оболочке для проекта GNU, неоднократно не удалось вообще ничего доставлять, Брайан Фокс было поручено написать клону из раковины Борна.
Это было названо Бурн снова оболочка или bash. Это было частично в уважении Стивена Борна и частично WordPlay ради этого. После его выхода в 1989 году, Chet Ramey. внес некоторые исправления ошибок в Bash. В конечном итоге он стал соовощной оболочкой Bash. В настоящее время он все еще является сопроводительным проектом Bash.
Линус Торвальдс
, создатель ядра Linux, сказал, что первые две программы, которые он побежал на своем новом ядре в 1991 году, были Bash и
GCC.
С
Компилятор GNU
Отказ Сопряжение утилит GNU с ядром Linux была взаимовыгодна. Операционная система GNU необходима ядро, а ядро Linux понадобилось все остальное, что составляет клон Unix.
Поскольку Bash - это стандартная оболочка GNU, она стала стандартной оболочкой во всех распределении GNU / Linux. Linux процветал до такой степени, что теперь он поддерживает удивительная сумма современного мира Отказ Оболочка Bash тоже приостановила эту волну успеха.
Bash включает в себя и улучшает набор функций Bourne Shell, но он также вдохновлялся от других снарядов, таких как
C оболочка
(
CSH
) и то
Kornshell.
(
кшш
). Например, расширение тильды »
~
«Для стоимости, проведенной в
Домой
Переменная среды поставляется из раковины C, а также
отказ
Команда, которая вызывает редактор по умолчанию на команды в
История команды
поставляется из Корншелла.
Bash представил файлы конфигурации, такие как файлы ".bashrc" и ".bash_profile" Отказ Редактирование командной строки на BASH далеко превзошла возможности предыдущих снарядов. Манипулирование ранее выполненным командам в истории команды была улучшенная версия функции «Банг истории». Расширение скобки была особенностью, которая отсутствовала от оболочки Bourne, которая была реализована в Bash в качестве сумерета функциональности, найденного в C RACK. Массивы были улучшены путем удаления их размеров. Расширение параметра в командной строке позволяет пользователям настроить их приглашение Bash.
Раковина Bash стремится соответствовать POSIX P1003.2 / ISO 9945.2 Оболочка и утилиты стандартный
СВЯЗАННЫЕ С: Линукс убил коммерческий Unix?
Почему Bash все еще важен
Bash не мог длиться в течение длительного времени более 30 лет - в качестве оболочки Linux по умолчанию, если бы не до работы. Из-за его длительного срока службы и массивной пользовательской базы, Bash зрелый и очень стабильный. Доступно много альтернативных оболочек, от ветеранов, таких как раковина C и kornshell, чтобы новые оболочки, такие как
Z Shell (
ZSH.
Несомненно
и то
Дружелюбная интерактивная оболочка
(
рыба
). Оба оболочки Z и раковины рыбы имеют некоторые особенности, которые Bash не так хорошо, как и, возможно, лучшие способы достижения некоторых из тех же вещей, которые делает Bash. Так почему же Bash все еще доминирующая раковина?
Из всех машин Linux я когда-либо призвал администрировать, я не вспоминаю ни одного, который не имел Bash в качестве оболочки. Unix Machines, да, но ящики Linux, нет. Это разбивает каждый раз. Это знакомство позволяет вам быстро работать и быть эффективным сразу. Вы уже знаете Bash, так что нет кривой обучения. Вы не получаете Hamsrung от крошечных различий в синтаксисе, которые вы собираетесь по кругу, пытаясь выяснить, почему что-то не работает. Время, проведенное выяснение, на каком заклинании должно быть на это Shell - это мертвое время, поэтому в интересах клиентского бизнеса используется хорошо известная и широко используемая оболочка.
Используя оболочку, которая представляет собой - или очень трудно быть состоится по POSIX, совместимыми важном для многих дистрибутивов Linux, но что имеет значение больше совместимости с предыдущими выпусками. Внесение изменений, которые могут сломать существующие сценарии, очевидно, непривлекательны. Привлекательный или нет, иногда вам просто нужно кусать пулю. 3 сентября 1967 года Швеция поменялась от вождения слева во время вождения справа. В 4:50 a.m. весь трафик должен был остановиться, медленно пробирайтесь на другую сторону дороги и еще раз остановились. В 5:00.
Будет ли когда-нибудь замениться?
Что может показаться немыслимым теперь может произойти позже. Если мы не хотим цепляться за убеждение, что мы все будем использовать Bash до конца второго дня, правда вероятна, что один день, Bash будет заменен в качестве оболочки Linux по умолчанию - будь то стандартная оболочка GNU или нет. Или, может быть, это будет Bash, но усиливается далеко за пределы оболочки, которую мы используем сегодня. Но все, что занимает место сегодняшнего bash, будет либо быть полностью (или почти почти) обратно совместимым или стоить потрясения, независимо от того, что могут быть преимущества.
Это не без прецедентов. С Версия 10.15. из Macos , Apple бросила Bash и приняла Z Shell в качестве оболочки по умолчанию. Apple имеет проблемы с широкой публичной лицензией GNU (GPL) V.3. К сожалению, это лицензия, которую использует Bash. Последняя версия Bash выпущена под GPL V.2, была версия 3.2 2007 года. Текущая версия 5.1. Яблоко было почти десятилетом с половиной позади. Единственный способ, которым Apple может включать в себя современную оболочку, не перемещаясь в GPL V.3, было вообще перемещаться в другую оболочку. До Apple, что стоило потрясения. (Тем не менее, вы все еще можете Переключитесь обратно в Bash на MacOS Если вы предпочитаете это!)
Существует мир различий между рабочей станцией пользователя и сервером Business Linux, который вы должны удаленно управлять над SSH-соединением Отказ Из почти 1,5 миллиона размещенных серверов Amazon EC2, Более 93% работают Linux Отказ Почти 75% веб-серверов работают Linux. Отказ Организации, такие как Red Hat, Amazon и Google используют Linux в доме.
Трудно представить, какие выгоды могут предложить новую оболочку, которая оправдала бы такого рода глобального потрясения. Вот почему Bash цементируется на месте.
Даже Microsoft теперь предлагает способ Запустите корпус Bash Linux на Windows 10 Действительно