Az alapértelmezett shell megváltoztatása Linuxon a chsh segítségével

A Bash nem az egyetlen Linux shell. Könnyű kipróbálni más shelleket, például a Zsh-t, ami nagyon népszerű. Ha talált egyet, amely tetszik, használja a chsh parancsot, hogy az legyen az alapértelmezett shell. Megmutatjuk, hogyan.

Miért fontos a Shell?

A héj Ön és az operációs rendszer között helyezkedik el. A terminálablakon belül olyan környezetet biztosít, amely lehetővé teszi parancsok begépelését és programok futtatását. A shell ellenőrzi a bevitelt, és kitalálja, mit akarsz. Ha képes maga végrehajtani az ajánlattételt, akkor megteszi. Ha külső segítségre van szüksége, megkeresi az útvonalat, és megtalálja azokat a programokat, amelyek bármit megtehetnek, amit kér.

Számos különböző shell érhető el Linuxon. Mindegyik lehetővé teszi ugyanazon alapvető feladatok elvégzését: a fájlrendszer felfedezését, a fájlokkal való munkát, a programok indítását és a szkriptek futtatását. Ezeket a feladatokat azonban mindegyik a maga módján hajtja végre, és megvannak a sajátosságai és sajátosságai.

A héjakat általában olyan emberek tervezik, akik azt akarják, hogy a dolgok meghatározott módon működjenek. Ha az Ön gondolkodása összhangban van a tervezőével, akkor ez a shell jó választás lehet az Ön számára. Ráadásul egyszerű egy új shell kipróbálása Linuxon.

A legtöbb Linux disztribúcióban, beleértve az Ubuntut is, az alapértelmezett shell a bash. Remek munkát végez és nagyon tehetséges. Egy másik shell azonban időmegtakarítási különbséget kínálhat, amely nagy hatással lenne a munkafolyamatára. Soha nem tudhatod, ha nem nézed meg!

Egy vödör kagyló

Korábban már foglalkoztunk a különböző Linux shellekkel, de itt van egy gyors bevezetés a leggyakoribbakról:

  Miért 2020 a tökéletes idő az IRC újralátogatására?

bash: Az Patak ismét shell az az alapértelmezett sok disztribúcióban.
rbash: Ez Korlátozott A bash shell minimális funkcionalitást biztosít a benne futó személy vagy szkript számára.
hamu: Az Almquist héj a bash könnyebb változata.
dash: A Debian Alquist Shell az alapértelmezett shell script Ubuntuban. Míg a bash az alapértelmezett bejelentkezési és interaktív shell, a dash a rendszerfolyamatok futtatására szolgál, mivel sokkal könnyebb, mint a bash.
zsh: A Z shell a bash kagylócsalád modern felfogása. Ügyes fejlesztéseket kínál, például parancsok helyesírás-ellenőrzését és javasolt javításokat.
hal: Ezt barátságos interaktív héj a semmiből íródott, és nem származik a többi héjcsaládból. Célja, hogy felhasználóbarát legyen. Számos egyéb előnye mellett a fish parancsjavaslatokat kínál az előzmények és az aktuális mappa tartalma alapján, hasonlóan prediktív szöveg.
ksh: A KornShell különösen erős szkriptnyelvet biztosít.

Sorolja fel a telepített shelleket

Ezzel a paranccsal megtekintheti, hogy mely parancsértelmezők vannak telepítve a számítógépére. Egyszerűen felsorolja az /etc/shells fájl tartalmát:

cat /etc/shells

Említettük már a bash-t, a dash-t és az rbash-t, de mi az az sh?

sh az Thompson shell, írta még 1971-ben Ken Thompson nak,-nek Bell Labs hírnév. Már nem karbantartják, és már régen felváltották a modern héjak. Pusztán azért került bele, hogy fenntartsa a kompatibilitást a régebbi szkriptekkel, amelyek első sorában továbbra is a következők szerepelnek:

#!/bin/sh

Ez arra utasítja a rendszert, hogy az sh shell használatával hajtsa végre a parancsfájlt. Valóban megvan az az ősi shell a gépeden, és azt használják a szkriptek futtatására? A melyik parancs megmondja nekünk, hogy melyik program fut valójában, amikor beír egy parancsot.

Lássuk, mi fut le, amikor beírja az sh:

which sh

Úgy tűnik, hogy ez egy binárist talál. ha azonban egy kicsit mélyebbre ásunk, látni fogjuk, hogy ez egy szimbolikus hivatkozás, amely valójában a dash-re mutat, a szkriptek végrehajtására használt könnyű shellre:

ls -l /bin/sh

Ez egy ügyes, könnyű módja annak, hogy biztonsági hálót biztosítson a szkriptek számára, amelyek elvárják, hogy megtalálják az sh-t a modern rendszereken.

  A Photolamus Real Artists csodálatos karikatúrákat készít rólad

Egy másik shell telepítése

Telepítsük a halhéjat, és állítsuk be alapértelmezettként a dave számára. Ubuntuban a következő parancsot írjuk be:

sudo apt-get install fish

Manjaro esetén használja a pacmant:

sudo pacman -Sy fish

Fedorán írja be a következőket:

sudo dnf install fish

Ha a telepítés befejeződött, még egyszer ellenőrizheti a telepített shelleket:

cat /etc/shells

Az új shell a /usr/bin/fish néven jelenik meg. Vegye figyelembe ezt az utat – hamarosan szüksége lesz rá.

A $SHELL környezeti változó

A $SHELL környezeti változó tartalmazza az aktuális shell nevét. Az echo segítségével ellenőrizhetjük, hogy melyikre van beállítva:

echo $SHELL

Kezdjük a halhéjjal:

fish

Most nézzük meg újra, mit mond a $SHELL környezeti változó:

echo $SHELL

Amikor először használjuk az echo $SHELL-t, a bash shellben vagyunk. A környezeti változó tartalmazza a bash végrehajtható fájl elérési útját, a /bin/bash.

Amikor elindítjuk a halhéjat, egy barátságos üdvözlő üzenetet kapunk, és a parancssor megváltozik. Ami meglepő lehet, az az, hogy a $SHELL környezet még mindig tartalmazza a bash futtatható fájl elérési útját, a /bin/bash fájlt. Rendben van – ez normális.

Amikor elindítunk egy új parancsértelmezőt (vagy bármely más programot), az örökli a szülő shell környezetét. Tehát a halhéj örökli a globális és exportált környezeti változókat a bash héjtól. Mivel a $SHELL környezeti változó értéke nem változott, ugyanaz az értéke a fish shellben, mint a bash shellben.

A halakat ugyanúgy futtatjuk, mint bármely más programot. A halhéjból való kilépéshez a kilépést is használhatjuk. Bezárul, mint minden más program, és visszatérünk a bash shellhez.

  Skype-hívások rögzítése Linuxon az OpenBroadcaster használatával

Ez nagyszerű az új shell-ek kipróbálásához, hogy megnézze, mire képesek, és hogy kijössz-e velük. Ugrás előtt felfedezhetsz egyet, és elfogadhatsz egyet a shell-nek.

Ha úgy dönt, hogy a halat – vagy bármely más héjat – alapértelmezetté teszi, akkor a chsh parancsot kell használnia.

A chsh parancs

A chsh parancs lehetővé teszi az alapértelmezett shell megváltoztatását. A trükk tudatában van annak, hogy lehetővé teszi mind az alapértelmezett bejelentkezési, mind az alapértelmezett interaktív héjak megváltoztatását. Lehet, hogy meg akarja változtatni az egyiket vagy a másikat, vagy mindkettőt.

Amikor bejelentkezik, hogy parancssort kapjon, a bejelentkezési parancsértelmezőként beállított shellt használja. Ha már bejelentkezett, és megnyit egy terminálablakot, akkor az interaktív parancsértelmezőként beállított parancsértelmezőt használja. Ezek lehetnek azonos vagy különböző héjak.

A bejelentkezési shell beállításához használja a chsh parancsot paraméterek nélkül:

chsh

A rendszer kéri a jelszavát. Ezután be kell írnia az új shell elérési útját, és meg kell nyomnia az Enter billentyűt.

Ha távoli kapcsolatot létesítünk ezzel a tesztszámítógéppel egy másikról, bejelentkezés után a halhéjban találjuk magunkat.

Az interaktív shell megváltoztatásához használja a chsh-t a -s (shell) kapcsolóval. Adja át az új shell elérési útját a parancssorban:

chsh -s /usr/bin/fish

A rendszer kéri a jelszavát, és visszatér az aktuális shell parancssorához. A módosítás életbe lépéséhez ki kell jelentkeznie, majd újra be kell jelentkeznie. Ha ezt megteszi, látni fogja az üdvözlést és a halkagyló parancssort.

A $SHELL környezeti változó mostantól tartalmazza az új alapértelmezett shell elérési útját:

echo $SHELL

Másik felhasználói fiók shelljének módosítása

Ha root jogosultságokkal rendelkezik, és tudja használni a sudo-t, módosíthatja a többi felhasználói fiók shelljét. A parancs ugyanaz, mint korábban, az adott személy felhasználónevének hozzáadásával a parancssorba:

sudo chsh -s /usr/bin/fish mary

Amikor Mary legközelebb bejelentkezik, látni fogja az új parancsértelmezőt, amikor megnyit egy terminálablakot.

Minden