Какво правят Shells?
Когато влезете в командния ред или стартирате терминален прозорец на Linux, системата стартира програмата на shell. Shells предлагат стандартен начин за разширяване на средата на командния ред. Можете да замените приставката по подразбиране за друга, ако искате.
Първата среда на Shell е Thompson Shell, разработена в Bell Labs и издадена през 1971 година. Shell среди са се основава на концепцията оттогава, добавяйки разнообразие от нови функции, функционалност и подобрения на скоростта.
Например, Bash предлага завършване на команди и имена на файлове, усъвършенствани скриптови функции, история на командите, конфигурируеми цветове, псевдоними на команди и множество други функции, които не са били налични още през 1971 г., когато е била освободена първата shell.
Черупката се използва и на фона от различни системни услуги. Линукс дистрибуциите включват много функции, написани като скриптове на Shell. Тези скриптове са команди и други функции за разширено сканиране на черупки, които преминават през средата на корпуса.
Shells Leading до баш: sh, csh, tsh и ksh
Най-изявеният предшественик на модерните черупки е черупката "Бур", позната още като "Ш", която е кръстена на създателя й Стивън Бур, който работи в лабораториите на Bell & AT & T. Издаден през 1979 г., той стана по подразбиране командния интерпретатор в Unix, благодарение на подкрепата си за заместване на команди, тръбопроводи, променливи, тестване на състояния и цикли, заедно с други функции. Той не предложи много персонализиране за потребителите и не поддържа такива модерни нюанси като псевдоними, завършване на команди и функции на черупки (макар че последното беше добавено в крайна сметка).
C черупката, или "csh", е разработена в края на 70-те години от Бил Джой в Калифорнийския университет, Бъркли. Добавени са много интерактивни елементи, с които потребителите могат да контролират своите системи, като псевдоними (бързи команди за дълги команди), способности за управление на работата, история на командите и др. Той бе моделиран от езика за програмиране C, в който е написана самата операционна система Unix. Това също означаваше, че потребителите на shell Bourne трябваше да научат C, за да могат да въвеждат команди в него. В допълнение, csh имаше доста бъгове, които трябваше да бъдат изтласкани от потребители и творци, така и през голям период от време. Хората завършиха с помощта на Bourne shell за скриптове, защото се справиха по-добре с не-интерактивни команди, но останаха с черупката C за нормална употреба.
Раждането на бас
Баш се подобри в десетилетия след първото му пускане през 1989 г., но все още е стандартната черупка на повечето Linux дистрибуции днес. Това е и стандартната черупка на macOS на Apple и е достъпна за инсталиране на Microsoft Windows 10.
По-нови черупки: пепел, тире, zsh и риба
Докато общността на Линукс се е установила в Баш през годините, разработчиците не са спрели да създават нови черупки, когато Баш е бил освободен за първи път преди 28 години.
Kenneth Almquist създаде клонинг на Bourne Shell, известен като Almquish shell, A Shell, "пепел" или понякога просто "sh". тя също е POSIX съвместима и стана по подразбиране черупка в BSD, различен клон на Unix. Пепелта от пепелта е по-лека от баш, което я прави популярна в системите за вграден Linux. Ако имате коренно инсталиран телефон с Android с BusyBox инсталиран или друго устройство с комплект софтуер BusyBox, използва се код от пепел.
Кой трябва да избереш? (и защо Zsh е популярен)
Не е нужно да избирате черупки. Операционната ви система избира вашата стандартна черупка за вас, а този избор е почти винаги bash. Седнете пред дистрибуция на Linux - или дори в Mac - и почти винаги ще имате среда на баш черупки. Баш има доста напредничави функции, но вероятно няма да ги използвате, освен ако не програмирате скриптове.
На вградени Linux системи или BSD системи, ще завършите с черупката пепел. Но пепелта е основана на "Бърн" черупка и е до голяма степен съвместима с баш. Всяко познание, което имате от използването на bash, ще се прехвърли на използването на пепел или тире черупка, въпреки че някои от разширените функции за скриптове не са налични в тази лека черупка.
Почти всяка черупка, която ще срещнете, е базирана на Борн и работи по подобен начин - включително zsh.
Ето защо zsh е популярен. Тази по-нова черупка е съвместима с bash, но включва повече функции. Шаблонът zsh предлага вградена корекция на правописа, подобрена завършване на командния ред, зареждащи се модули, които действат като приставки за вашата черупка, глобални псевдоними, които ви позволяват да създадете псевдоним на имена на файлове или нещо друго на командния ред, а не просто на команди, и повече тематична подкрепа. Това е като bash, но с много екстри, допълнителни функции и конфигурируеми опции, които бихте могли да оцените, ако отделите много време на командния ред.
Ако сте запознати с bash, можете да превключите към zsh без да научите друг синтаксис - ще спечелите допълнителни функции. ако сте запознати с zsh, можете да превключите към bash без да научите друг синтаксис - просто няма да имате достъп до тези функции.
Има и други черупки. Например, tcsh черупката все още е наоколо и все още е опция. FreeBSD използва tsch като основна коренна обвивка и пепел като стандартна интерактивна черупка. Ако използвате програмирането C редовно, tsch може да бъде по-подходяща за вас. Въпреки това, тя не е толкова близо, колкото обикновено се използва като bash или zsh.
Как да превключвате между Shells
Лесно е да преминете към нова обвивка, за да я изпробвате. Просто инсталирайте корпуса от мениджъра на пакетите на Linux дистрибуцията и напишете командата за стартиране на корпуса.
Например, да речем, че искате да опитате zsh на Ubuntu. Бихте изпълнили следните команди, за да инсталирате и след това да го стартирате:
sudo apt install zsh zsh
Тогава щеше да седиш в черупката. Тип"
exit
В черупката, за да я напуснете и да се върнете към текущата ви обвивка.
chsh
или "Change Shell", команда.
За да използвате тази команда, първо трябва да намерите пълния път към черупката си с коя команда. Да приемем например, че искаме да променим обвивката на zsh. Ще изпълним следната команда:
which zsh
На Ubuntu това ни показва, че двойното зхх се съхранява на / usr / bin / zsh.
Изпълнете следната команда, въведете паролата си и ще бъдете подканени да изберете нов профил за вход:
chsh
Съгласно горната команда щяхме да влезем
/usr/bin/zsh
По този начин, zsh shell ще бъде нашата по подразбиране, докато не стартираме
chsh
команда и го промени.