Bash не е единствената обвивка на Linux. Лесно е да изпробвате други обвивки, като Zsh, който е много популярен. Когато намерите такъв, който ви харесва, използвайте командата chsh, за да го направите своя обвивка по подразбиране. Ще ви покажем как.
Съдържание
Защо черупката е важна
Черупката седи между вас и операционната система. Той осигурява средата в терминален прозорец, която ви позволява да въвеждате команди и да стартирате програми. Shell проверява въведените ви данни и разбира какво искате. Ако може сам да извърши наддаването ви, той го прави. Ако има нужда от външна помощ, той търси пътя и намира програмите, които могат да направят каквото поискате.
В Linux има много различни обвивки. Всички те ви позволяват да изпълнявате едни и същи основни задачи: да изследвате файловата система, да работите с файлове, да стартирате програми и да изпълнявате скриптове. Всеки от тях обаче изпълнява тези задачи по свой собствен начин и имат свои собствени особености и особености.
Черупките обикновено се проектират от хора, които искат нещата да се държат по специфичен начин. Ако вашето мислене е в съответствие с това на този дизайнер, тази обвивка може да е подходяща за вас. Освен това, изпробването на нова обвивка на Linux е лесно.
В повечето дистрибуции на Linux, включително Ubuntu, черупката по подразбиране е bash. Върши страхотна работа и е много способен. Въпреки това, друга обвивка може да предложи разлика в спестяване на време, която би имала голямо влияние върху вашия работен процес. Никога няма да разберете, ако не погледнете!
Кофа с черупки
Покривахме различните Linux обвивки преди, но ето кратко въведение в най-често срещаните:
bash: The Борн отново черупката е по подразбиране в много дистрибуции.
rbash: Това Ограничен bash shell предоставя минимална функционалност на лицето или скрипта, работещ в него.
пепел: The Обвивка на Алмквист е по-лека версия на bash.
тире: Shell на Debian Alquist е шел скрипт по подразбиране в Ubuntu. Докато bash е входът по подразбиране и интерактивната обвивка, dash се използва за стартиране на системни процеси, защото е много по-лек от bash.
zsh: Z обвивката е модерен подход към семейството на черупките на bash. Той предлага чисти подобрения, като проверки на правописа на команди и предложени корекции.
риба: Това приятелска интерактивна обвивка е написан от нулата и не е извлечен от нито едно от другите семейства черупки. Той е предназначен да бъде удобен за потребителя. Сред многото си други предимства, fish предлага предложения за команди въз основа на вашата история и съдържанието на текущата папка, подобно на предсказуем текст.
ksh: KornShell осигурява особено силен скриптов език.
Избройте инсталираните обвивки
За да видите кои черупки са инсталирани на вашия компютър, използвайте тази команда. Той просто изброява съдържанието на файла /etc/shells:
cat /etc/shells
Споменахме bash, dash и rbash, но какво е sh?
sh е Томпсън черупка, написана през далечната 1971 г. от Кен Томпсън на Bell Labs слава. Вече не се поддържа и отдавна е изместен от модерни черупки. Той е включен само за поддържане на съвместимост с по-стари скриптове, които все още имат следното като първи ред:
#!/bin/sh
Това инструктира системата да използва обвивката sh за изпълнение на скрипта. Наистина ли имате тази древна обвивка на вашата машина и използва ли се за изпълнение на вашите скриптове? Командата who ще ни каже коя програма всъщност се изпълнява, когато въведете команда.
Нека видим какво се изпълнява, когато напишете sh:
which sh
Това изглежда намира двоичен файл. ако се поразровим малко по-дълбоко обаче, ще видим, че това е символична връзка, която всъщност сочи към тире, олекотената обвивка, използвана за изпълнение на скриптове:
ls -l /bin/sh
Това е чист и лек начин да се осигури предпазна мрежа за скриптове, които очакват да намерят sh в съвременните системи.
Инсталиране на друга обвивка
Нека инсталираме рибната черупка и да я зададем по подразбиране за Dave. В Ubuntu въвеждаме следната команда:
sudo apt-get install fish
На Manjaro използвайте pacman:
sudo pacman -Sy fish
Във Fedora въведете следното:
sudo dnf install fish
Когато инсталацията приключи, можете да проверите инсталираните черупки още веднъж:
cat /etc/shells
Нашата нова обвивка се появява като /usr/bin/fish. Обърнете внимание на този път — скоро ще ви трябва.
Променливата на средата $SHELL
Променливата на средата $SHELL съдържа името на текущата ви обвивка. Можем да проверим на кое е настроено с ехо:
echo $SHELL
Да започнем с рибната черупка:
fish
Сега, нека проверим отново какво казва променливата на средата $SHELL:
echo $SHELL
Първият път, когато използваме echo $SHELL, ние сме в обвивката на bash. Променливата на средата съдържа пътя към изпълнимия файл на bash, /bin/bash.
Когато стартираме рибната обвивка, получаваме приятелско приветствено съобщение и командният ред се променя. Това, което може да е изненадващо, е, че средата $SHELL все още държи пътя към изпълнимия файл на bash, /bin/bash. Това е добре – това е нормално.
Когато стартирате нова обвивка (или друга програма), тя наследява средата на родителската обвивка. Така че рибната обвивка наследява глобалните и експортираните променливи на средата от bash shell. Тъй като стойността в променливата на средата $SHELL не е променена, тя има същата стойност в обвивката за риба, която имаше в bash shell.
Ние изпълняваме риба като всяка друга програма. Можем също да използваме exit, за да излезем от черупката на рибата. Затваря се като всяка друга програма и се връщаме към обвивката на bash.
Това е чудесно, за да изпробвате нови черупки, да видите какво могат да правят и дали се разбирате с тях. Можете да изследвате, преди да направите скока, и да го приемете като своя обвивка.
Ако решите да направите рибата — или която и да е друга обвивка — по подразбиране, ще трябва да използвате командата chsh.
Командата chsh
Командата chsh ви позволява да промените вашата обвивка по подразбиране. Номерът е да сте наясно, че ви позволява да промените както стандартното влизане, така и интерактивните обвивки по подразбиране. Може да искате да промените едното или другото, или и двете.
Всеки път, когато влезете, за да получите команден ред, използвате обвивката, конфигурирана да бъде вашата обвивка за вход. Когато вече сте влезли и отворите терминален прозорец, използвате обвивката, конфигурирана да бъде вашата интерактивна обвивка. Те могат да бъдат едни и същи или различни черупки.
За да настроите вашата обвивка за вход, използвайте chsh без параметри:
chsh
Получавате подкана за вашата парола. След това трябва да въведете пътя към новата обвивка и да натиснете Enter.
Ако направим отдалечена връзка с този тестов компютър от друг, ще се окажем в рибната черупка, след като влезем.
За да промените вашата интерактивна обвивка, използвайте chsh с опцията -s (shell). Предайте пътя към новата обвивка в командния ред:
chsh -s /usr/bin/fish
Получавате подкана за вашата парола и се връщате към командния ред на текущата ви обвивка. Трябва да излезете и да влезете отново, за да влезе промяната в сила. Когато го направите, ще видите поздрава и командния ред на fish shell.
Променливата на средата $SHELL сега съдържа пътя към новата ви обвивка по подразбиране:
echo $SHELL
Промяна на обвивката на друг потребителски акаунт
Ако имате root права и можете да използвате sudo, можете да промените обвивките на други потребителски акаунти. Командата е същата като преди, с добавяне на потребителското име на този човек, добавено към командния ред:
sudo chsh -s /usr/bin/fish mary
Когато Мери влезе следващия път, тя ще види новата обвивка, когато отвори прозорец на терминала.