Как да промените вашата обвивка по подразбиране на Linux с chsh

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 осигурява особено силен скриптов език.

  Как да сканирате отворени портове на компютър с Linux със Zenmap

Избройте инсталираните обвивки

За да видите кои черупки са инсталирани на вашия компютър, използвайте тази команда. Той просто изброява съдържанието на файла /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 в съвременните системи.

  Как да настроите Docker на Linux

Инсталиране на друга обвивка

Нека инсталираме рибната черупка и да я зададем по подразбиране за 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.

Това е чудесно, за да изпробвате нови черупки, да видите какво могат да правят и дали се разбирате с тях. Можете да изследвате, преди да направите скока, и да го приемете като своя обвивка.

  Как да използвате SLSK за архивиране на спестяванията на Steam игри в Linux

Ако решите да направите рибата — или която и да е друга обвивка — по подразбиране, ще трябва да използвате командата 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

Когато Мери влезе следващия път, тя ще види новата обвивка, когато отвори прозорец на терминала.

Всеки