Начална » как да » Каква е разликата между Bash, Zsh и други обвивки на Linux?

    Каква е разликата между Bash, Zsh и други обвивки на Linux?

    Повечето Linux дистрибуции по подразбиране включват bash shell, но можете да преминете към друга обвиваща среда. Zsh е особено популярна алтернатива и има други черупки, като пепел, тире, риба и tcsh. Но каква е разликата и защо има толкова много?

    Какво правят черупките??

    Когато влезете в командния ред или стартирате прозорец на терминала в Linux, системата стартира програмата shell. Гъстовете предлагат стандартен начин за разширяване на средата на командния ред. Можете да замените обвивката по подразбиране за друга, ако желаете.

    Първата среда на обвивката беше Shell на Thompson, разработена в Bell Labs и пусната през 1971 година. Оттогава средата на Shell се основава на концепцията, като добавя разнообразие от нови функции, функционалност и подобрения в скоростта..

    Например, Bash предлага завършване на команди и имена на файлове, разширени функции за скриптове, история на командите, цветове, които могат да се конфигурират, псевдоними на команди и различни други функции, които не са били налице през 1971 г., когато е пусната първата обвивка..

    Черупката също се използва във фонов режим чрез различни системни услуги. Линукс дистрибуциите включват много функции, написани като shell скриптове. Тези скриптове са команди и други разширени функции на скриптови скриптове, протичащи през обкръжението на обвивката.

    Черупки, водещи до Bash: sh, csh, tsh и ksh

    Най-известният предшественик на съвременните черупки е черупката на Борн, известна още като "ш", която е кръстена на своя създател Стивън Борн, който е работил в Bell Labs на AT&T. Издаден през 1979 г., той се превърна в команден интерпретатор по подразбиране в Unix заради поддръжката си за подмяна на команди, тръбопроводи, променливи, тестване на състоянието и цикъл, както и други функции. Той не предлага много настройки за потребителите и не поддържа такива модерни тънкости като псевдоними, завършване на команди и функции на черупката (макар че последната беше добавена).

    Черупката С, или “csh”, е разработена в края на 70-те години от Бил Джой от Калифорнийския университет в Бъркли. Той добавя много интерактивни елементи, с които потребителите могат да контролират своите системи, като псевдоними (преки пътища за дълги команди), способности за управление на задания, история на командите и др. Той е моделиран от програмния език C, в който е написана самата операционна система Unix. Това също означава, че потребителите на черупката на Bourne трябва да научат C, така че да могат да въвеждат команди в него. В допълнение, csh имаше доста грешки, които трябваше да бъдат излъчвани от потребители и създатели, както през дълъг период от време. Хората в крайна сметка използваха обвивката на Bourne за скриптове, защото по-добре обработваха неинтерактивни команди, но останаха с C-черупката за нормална употреба.

    С течение на времето много хора са фиксирали бъгове и са добавили функции към C shell, завършвайки с подобрена версия на csh, известна като "tcsh". Но csh все още е по подразбиране в Unix-базирани компютри и е добавил някои нестандартни функции. Дейвид Корн от Bell Labs работи по KornShell, или "ksh", който се опитва да подобри ситуацията, като е обратно съвместима с езика на обвивката на Bourne, но добавя много функции от csh shell. Издаден е през 1983 г., но с лиценз за собственост. Това не беше свободен софтуер до 2000 г., когато беше пуснат под различни лицензи с отворен код.

    Раждането на баш

    Интерфейсът за преносима операционна система за Unix или POSIX е друг отговор на забързаните собствени реализации на csh. Той успешно създаде стандарт за интерпретация на команди (наред с други неща) и в крайна сметка отразяваше много от функциите в KornShell. В същото време проектът GNU се опитваше да създаде безплатна, съвместима с Unix операционна система. Проектът GNU разработи софтуерна обвивка, която да бъде част от свободната си операционна система и я нарече "Bourne Again Shell" или "bash".

    Баш е подобрен през десетилетията от първото му издание през 1989 г., но все още е стандартната обвивка на повечето дистрибуции на Linux днес. Той също е стандартна обвивка на MacOS на Apple и е достъпна за инсталиране на Windows 10 на Microsoft.

    По-нови черупки: пепел, тире, zsh и риба

    Въпреки че общността на Linux се е установила на Баш през годините, разработчиците не са спрели да създават нови черупки, когато Bash е пуснат за пръв път преди 28 години.

    Kenneth Almquist създава клонинг на обвивката на Борн, известен като Almquish shell, A Shell, "ash" или понякога просто "sh". също беше съвместим с POSIX и стана стандартна обвивка в BSD, различен клон на Unix. Черупката на пепелта е по-лека от bash, което я прави популярна в вградените Linux системи. Ако имате вграден Android телефон с инсталиран BusyBox - или друго устройство с софтуера BusyBox - използва код от пепел.

    Debian разработи среда на черупки, базирана на пепел и го нарече "тире". Той е проектиран да бъде POSIX-съвместим и лек, така че е по-бърз от Bash, но няма да има всички негови функции. Ubuntu използва обвивката на тире като обвивка по подразбиране за неинтерактивни задачи, като ускорява скриптовете и другите задачи, изпълнявани във фонов режим. Ubuntu все още използва bash за интерактивни черупки, но потребителите все още имат пълнофункционална интерактивна среда.

    Един от най-популярните по-нови черупки е Z shell или "zsh". Създаден от Пол Фалстад през 1990 г., zsh е обвивка в стил на Борн, която съдържа функциите, които ще намерите в bash, плюс още повече. Например, zsh има проверка на правописа, възможността да следи за вход / излизане, някои вградени функции за програмиране като байт-код, поддръжка за научна нотация в синтаксиса, дава възможност за аритметика с плаваща запетая и повече функции.

    Друга по-нова обвивка е Friendly Interactive Shell, или "риба", пусната през 2005 г. Тя има уникален синтаксис от командния ред, който е проектиран да бъде малко по-лесен за изучаване, но не е получен нито от обвивката на Bourne, нито от C shell. Това е интересна идея, но това, което научите чрез използването на риба, не е задължително да ви помогне да използвате bash и други черупки, извлечени от Bourne.

    Кои трябва да изберете? (и защо Zsh е популярно)

    Не е нужно да избирате черупка. Вашата операционна система избира за вас обвивката по подразбиране и този избор е почти винаги баш. Седнете пред Linux дистрибуция или дори Mac и почти винаги ще имате среда на bash shell. Bash има доста разширени функции, но вероятно няма да ги използвате, освен ако не програмирате скриптове.

    На вградени Linux системи или BSD системи ще завършите с черупката на пепелта. Но пепелта е базирана на Борн черупка и е до голяма степен съвместима с bash. Всички познания, които имате от използването на bash, ще се прехвърлят към използване на черупката на пепел или тире, въпреки че някои разширени функции за скриптове не са налице в тази лека обвивка.

    Почти всяка черупка, която ще срещнете, е базирана на Борн и работи по подобен начин - включително и zsh.

    Ето защо zsh е популярна. Тази по-нова обвивка е съвместима с bash, но включва повече функции. Черупката на zsh предлага вградена корекция на правописа, подобрено завършване на командния ред, зареждаеми модули, които действат като приставки за вашата обвивка, глобални псевдоними, които ви позволяват да псевдоним имена на файлове или нещо друго в командния ред, вместо само команди, и повече тематична подкрепа. Това е като bash, но с много екстри, допълнителни функции и конфигурируеми опции, които бихте оценили, ако прекарате много време в командния ред.

    Ако сте запознати с bash, можете да превключите на zsh без да изучавате различен синтаксис - просто ще получите допълнителни функции. ако сте запознати с zsh, можете да превключите на bash без да изучавате различен синтаксис - просто няма да имате достъп до тези функции.

    "Oh My ZSH" е инструмент, който ви помага по-лесно да активирате плъгини на zsh и да превключвате между готови теми, бързо да персонализирате вашия zsh shell без да харчите часове да променяте нещата..

    Има и други черупки. Например обвивката tcsh е все още наоколо и все още е опция. FreeBSD използва tsch като коренова обвивка по подразбиране и пепел като интерактивна обвивка по подразбиране. Ако редовно използвате програмирането C, tsch може да е по-подходящо за вас. Въпреки това, той не е почти толкова често използван като bash или zsh.

    Как да превключвате между черупките

    Лесно е да преминете към нова обвивка, за да я изпробвате. Просто инсталирайте черупката от диспечера на пакети на Linux дистрибуцията и въведете командата, за да стартирате обвивката.

    Например, да кажем, че искате да опитате zsh на Ubuntu. За да инсталирате, трябва да изпълните следните команди:

    sudo apt install zsh zsh

    След това ще седите на zsh черупка. Тип " изход "В черупката, за да го оставите и да се върнете към текущата ви обвивка.

    Това е само временно. Когато отворите нов прозорец на терминала или влезете в системата си в командния ред, ще видите подразбиращата се обвивка. За да промените обвивката, която виждате, когато влезете в системата като позната като логин, можете да използвате CHSH , или “Промяна на обвивката”, команда.

    За да използвате тази команда, първо трябва да намерите пълния път до вашата обвивка с командата. Например, да кажем, че искаме да сменим zsh черупката. Ще изпълним следната команда:

    които zsh

    На Ubuntu това ни казва, че zsh бинарната памет се съхранява в / usr / bin / zsh.

    Изпълнете следната команда, въведете паролата си и ще бъдете подканени да изберете нова обвивка за вход:

    CHSH

    Според горната команда ще влезем / ЮЕсАр / хамбар / zsh . Шелът zsh щеше да бъде нашият по подразбиране, докато не стартирахме CHSH и го променихте обратно.