Како да промените своју подразумевану шкољку на Линуку помоћу цхсх

Баш није једина опција када је реч о Линук шкољкама. Истраживање других, попут веома популарне Зсх, је једноставно. Када пронађете ону која вам одговара, употребите команду `chsh` да је поставите као вашу подразумевану шкољку. У наставку ћемо показати како.

Зашто је шкољка битна?

Шкољка представља спојницу између вас и оперативног система. Она пружа окружење унутар терминала где уносите команде и покрећете програме. Шкољка анализира ваш унос и одређује шта желите. Ако може сама да изврши ваш захтев, то ће и учинити. Уколико јој је потребна помоћ споља, тражиће у путањама програме који могу да обаве задатак.

На Линук-у постоји велики избор различитих шкољки. Све оне вам омогућавају да обављате исте основне ствари: крећете се кроз систем датотека, управљате датотекама, покрећете програме и скрипте. Међутим, свака од њих то ради на свој начин, са јединственим карактеристикама и специфичностима.

Шкољке су обично осмишљене од стране људи који желе да ствари функционишу на одређени начин. Уколико се ваш начин размишљања поклапа са идејом дизајнера, та шкољка би вам могла савршено одговарати. Поред тога, испробавање нове шкољке на Линук-у је лако.

На већини Линук дистрибуција, укључујући Убунту, подразумевана шкољка је баш. Она добро обавља свој посао и веома је моћна. Ипак, друга шкољка може да понуди уштеду времена која би значајно утицала на ваш радни процес. Нећете сазнати ако не истражите!

Разноврсност шкољки

Раније смо разматрали различите Линук шкољке, али ево кратке листе најчешћих:

баш: Борнова поново рођена шкољка је подразумевана у многим дистрибуцијама.

рбаш: Ова ограничена баш шкољка нуди минималну функционалност особи или скрипти која се у њој извршава.

пепео: Алмквист шкољка је лакша верзија баша.

црта: Дебиан Алквист Шкољка је подразумевана шкољка за скрипте у Убунту-у. Док је баш подразумевана пријава и интерактивна шкољка, црта се користи за покретање системских процеса јер је знатно лакша од баша.

зсх: З шкољка представља модеран приступ баш породици шкољки. Нуди погодна побољшања, као што су провера правописа команди и предлози за исправке.

риба: Ова пријатељска интерактивна шкољка је написана из почетка и није изведена ни из једне друге породице шкољки. Намењена је да буде лака за коришћење. Између осталог, риба нуди предлоге за команде на основу ваше историје и садржаја тренутног фолдера, слично предвидљивом тексту.

ксх: КорнШел пружа посебно јак скриптни језик.

Приказ инсталираних шкољки

Да бисте видели које су шкољке инсталиране на вашем систему, користите следећу команду. Она једноставно приказује садржај датотеке `/etc/shells`:

cat /etc/shells

Поменули смо баш, црту и рбаш, али шта је са сх?

сх је Томпсонова шкољка, коју је далеке 1971. написао Кен Томпсон из Бел Лабс. Она се више не одржава и одавно је замењена модерним шкољкама. Укључена је само ради компатибилности са старијим скриптама које још увек имају следећи ред као први:

#!/bin/sh

Ово говори систему да користи сх шкољку за извршавање скрипте. Да ли заиста имате ту древну шкољку на својој машини и да ли се она користи за покретање ваших скрипти? Команда `which` ће нам показати који се програм заправо покреће када унесете команду.

Да видимо шта се покреће када унесете `sh`:

which sh

Изгледа да ово проналази бинарну датотеку. Међутим, када дубље истражимо, видећемо да је то симболичка веза која заправо указује на црту, лагану шкољку која се користи за извршавање скрипти:

ls -l /bin/sh

Ово је једноставан начин да се обезбеди сигурност за скрипте које очекују да пронађу сх на модерним системима.

Инсталирање нове шкољке

Хајде да инсталирамо рибљу шкољку и поставимо је као подразумевану за корисника Дејва. На Убунту-у, укуцајте следећу команду:

sudo apt-get install fish

На Мањароу, користите pacman:

sudo pacman -Sy fish

На Федора-и, укуцајте следеће:

sudo dnf install fish

Када је инсталација завршена, поново можете проверити листу инсталираних шкољки:

cat /etc/shells

Наша нова шкољка се појављује као `/usr/bin/fish`. Запамтите ову путању – ускоро ће вам бити потребна.

Променљива окружења $СХЕЛЛ

Променљива окружења `$SHELL` чува име ваше тренутно активне шкољке. Можемо проверити њену вредност користећи `echo`:

echo $SHELL

Сада, покренимо рибљу шкољку:

fish

И поново проверимо шта каже променљива окружења `$SHELL`:

echo $SHELL

Први пут када користимо `echo $SHELL`, налазимо се у баш шкољци. Променљива окружења садржи путању до баш извршне датотеке, `/bin/bash`.

Када покренемо рибљу шкољку, добијамо пријатељску поруку добродошлице и командна линија се мења. Међутим, можда вас изненади што `$SHELL` окружење још увек садржи путању до баш извршне датотеке, `/bin/bash`. То је у реду, то је нормално.

Када покренете нову шкољку (или било који други програм), она наслеђује окружење родитељске шкољке. Дакле, рибља шкољка наслеђује глобалне и извезене променљиве окружења из баш шкољке. Пошто вредност променљиве окружења `$SHELL` није промењена, она има исту вредност у рибљој шкољци као и у баш шкољци.

Рибу покрећемо као и било који други програм. Такође, можемо користити `exit` за излазак из рибље шкољке. Она се затвара као и сваки други програм и враћамо се у баш шкољку.

Ово је одлично за испробавање нових шкољки, да видите шта могу и да ли вам одговарају. Можете истраживати пре него што одлучите да једну усвојите као вашу подразумевану.

Ако се одлучите да рибу – или било коју другу шкољку – учините подразумеваном, мораћете да користите команду `chsh`.

Команда chsh

Команда `chsh` вам омогућава да промените подразумевану шкољку. Важно је запамтити да она вам омогућава да промените и подразумевану пријаву и подразумеване интерактивне шкољке. Можда ћете желети да промените једно, друго, или оба.

Када год се пријавите да бисте добили командну линију, користите шкољку која је подешена као ваша шкољка за пријаву. Када сте већ пријављени и отворите прозор терминала, користите шкољку која је подешена као ваша интерактивна шкољка. Оне могу бити исте, а могу бити и различите.

Да бисте подесили своју шкољку за пријаву, користите `chsh` без параметара:

chsh

Тражиће се од вас да унесете лозинку. Затим морате да унесете путању до нове шкољке и притиснете `Enter`.

Ако успоставимо даљинску везу са овим пробним рачунаром са другог, наћи ћемо се у рибљој шкољци када се пријавимо.

Да бисте променили вашу интерактивну шкољку, користите `chsh` са опцијом `-s` (шкољка). Проследите путању до нове шкољке на командној линији:

chsh -s /usr/bin/fish

Поново се тражи ваша лозинка и враћате се на командну линију ваше тренутне шкољке. Морате се одјавити и поново пријавити да би промена ступила на снагу. Када то урадите, видећете поздрав и командну линију рибље шкољке.

Променљива окружења `$SHELL` сада садржи путању до ваше нове подразумеване шкољке:

echo $SHELL

Промена шкољке за другог корисника

Ако имате роот привилегије и можете да користите `sudo`, можете променити шкољку за друге корисничке налоге. Команда је иста као и пре, са додатком корисничког имена особе у командној линији:

sudo chsh -s /usr/bin/fish mary

Када се Мери следећи пут пријави, видеће нову шкољку када отвори прозор терминала.

Сваки