
Bash is niet de enige Linux-shell. Het is gemakkelijk om andere shells uit te proberen, zoals Zsh, dat erg populair is. Als je er een hebt gevonden die je leuk vindt, gebruik dan de chsh commando om het uw standaard shell te maken. We laten je zien hoe.
Waarom een ​​schaal belangrijk is
De shell zit tussen jou en het besturingssysteem in. Het biedt de omgeving binnen een terminalvenster waarin u opdrachten kunt typen en programma’s kunt uitvoeren. De shell controleert uw invoer en zoekt uit wat u wilt. Als het uw bieding zelf kan uitvoeren, doet het dat. Als het hulp van buitenaf nodig heeft, zoekt het het pad en vindt het de programma’s die alles kunnen doen waar je om vraagt.
Er zijn veel verschillende shells beschikbaar op Linux. Ze stellen u allemaal in staat om dezelfde kerntaken uit te voeren: het bestandssysteem verkennen, met bestanden werken, programma’s starten en scripts uitvoeren. Ze voeren deze taken echter elk op hun eigen manier uit en hebben hun eigen speciale kenmerken en eigenaardigheden.
Schelpen worden meestal ontworpen door mensen die willen dat dingen zich op een specifieke manier gedragen. Als je denken overeenkomt met die van de ontwerper, is die schaal misschien wel een goede keuze voor jou. Bovendien is het eenvoudig om een ​​nieuwe shell op Linux te proberen.
In de meeste Linux-distributies, inclusief Ubuntu, is de standaardshell bash. Het doet geweldig werk en is zeer bekwaam. Een andere shell kan echter een tijdbesparend verschil bieden dat een grote impact zou hebben op uw workflow. Je zult nooit weten of je niet kijkt!
VERWANT: Wat is ZSH en waarom zou u het moeten gebruiken in plaats van Bash?
Een emmer met schelpen
We hebben de verschillende Linux-shells eerder behandeld, maar hier is een korte inleiding tot de meest voorkomende:
- bash: De Bourne again-shell is de standaard in veel distributies.
-
uitslag: Dit is beperkt
bashshell biedt minimale functionaliteit aan de persoon of het script dat erin draait. - as: De Almquist-schaal is een lichtere versie van bash.
-
streepje: De Debian Alquist Shell is het standaard shellscript in Ubuntu. Terwijl
bashis de standaard login en interactieve shell,dashwordt gebruikt om systeemprocessen uit te voeren omdat het veel lichter is danbash. -
zsh: De Z-schaal is een moderne versie van de
bashfamilie van schelpen. Het biedt handige verbeteringen, zoals spellingcontroles van opdrachten en voorgestelde correcties. - vis: Deze vriendelijke interactieve shell is helemaal opnieuw geschreven en is niet afgeleid van een van de andere shell-families. Het is bedoeld om gebruiksvriendelijk te zijn. Naast de vele andere voordelen biedt fish suggesties voor opdrachten op basis van uw geschiedenis en de inhoud van de huidige map, vergelijkbaar met voorspellende tekst.
- ksh: De KornShell biedt een bijzonder sterke scripttaal.
VERWANT: Wat is het verschil tussen Bash, Zsh en andere Linux-shells?
Maak een lijst van de geïnstalleerde shells
Gebruik deze opdracht om te zien welke shells op uw computer zijn geïnstalleerd. Het geeft eenvoudigweg de inhoud van het /etc/shells het dossier:
cat /etc/shells

We hebben het genoemd bash, dash, en rbash, maar wat is sh?
sh is de Thompson-schaal, geschreven in 1971 door Ken Thompson van de Bell Labs-faam. Het wordt niet langer onderhouden en is allang vervangen door moderne schelpen. Het is puur opgenomen om compatibiliteit te behouden met oudere scripts die nog steeds het volgende als eerste regel hebben:
#!/bin/sh
Dit instrueert het systeem om de sh shell om het script uit te voeren. Heb je echt die oude shell op je computer en wordt deze gebruikt om je scripts uit te voeren? De which commando zal ons vertellen welk programma werkelijk wordt uitgevoerd wanneer u een commando typt.
Laten we eens kijken wat er wordt uitgevoerd als u typt sh:
which sh
Dit lijkt een binair bestand te vinden. als we echter wat dieper graven, zullen we zien dat het een symbolische link is die echt naar verwijst dash, de lichtgewicht shell die wordt gebruikt om scripts uit te voeren:
ls -l /bin/sh

Dat is een handige, lichtgewicht manier om een ​​vangnet te bieden voor scripts die verwachten te vinden sh op moderne systemen.
Een andere shell installeren
Laten we het fish shell en stel deze in als de standaard voor dave. Op Ubuntu typen we het volgende commando:
sudo apt-get install fish

Gebruik op Manjaro pacman:
sudo pacman -Sy fish

Typ het volgende op Fedora:
sudo dnf install fish

Als de installatie is voltooid, kunt u de geïnstalleerde shells nogmaals controleren:
cat /etc/shells

Onze nieuwe schaal verschijnt als /usr/bin/fish. Let op dat pad – je hebt het binnenkort nodig.
De $ SHELL-omgevingsvariabele
De $SHELL omgevingsvariabele bevat de naam van uw huidige shell. We kunnen controleren op welke het is ingesteld echo:
echo $SHELL
Laten we beginnen met fish schelp:
fish
Laten we nu opnieuw kijken wat de $SHELL omgevingsvariabele zegt:
echo $SHELL

De eerste keer dat we gebruiken echo $SHELL, we zijn in de bash schelp. De omgevingsvariabele bevat het pad naar het bash uitvoerbaar, /bin/bash.
Wanneer we het fish shell, krijgen we een vriendelijk welkomstbericht en verandert de opdrachtprompt. Wat misschien verrassend is, is de $SHELL omgeving nog steeds het pad naar de bash uitvoerbaar, /bin/bash. Dat is oké – dit is normaal.
Wanneer u een nieuwe shell (of een ander programma) start, neemt deze de omgeving van de bovenliggende shell over. Dus de fish shell erft de globale en geëxporteerde omgevingsvariabelen van de bash schelp. Omdat de waarde in de $SHELL omgevingsvariabele is niet gewijzigd, het heeft dezelfde waarde in de fish shell die het deed in de bash schelp.
Waren aan het rennen fish zoals elk ander programma. We kunnen ook gebruik maken van exit om het fish schelp. Het sluit zoals elk ander programma, en we keren terug naar het bash schelp.
Dat is geweldig om nieuwe schelpen uit te proberen, te zien wat ze kunnen doen en of je ermee kunt opschieten. Je kunt verkennen voordat je de sprong maakt en er een aannemen als je go-to-shell.
Als u besluit om het fish—Of een andere shell — uw standaard, u moet de chsh opdracht.
Het chsh Command
De chsh commando stelt je in staat om je standaard shell te veranderen. De truc is om je ervan bewust te zijn dat je hiermee zowel de standaard login als de standaard interactieve shells kunt wijzigen. Misschien wilt u de een of de ander wijzigen, of beide.
Elke keer dat u inlogt om een ​​opdrachtprompt te krijgen, gebruikt u de shell die is geconfigureerd als uw login-shell. Als u al bent ingelogd en een terminalvenster opent, gebruikt u de shell die is geconfigureerd als uw interactieve shell. Dit kunnen dezelfde of verschillende schalen zijn.
Gebruik om uw login-shell in te stellen chsh zonder parameters:
chsh

U wordt om uw wachtwoord gevraagd. Vervolgens moet u het pad naar de nieuwe shell typen en op Enter drukken.
Als we een externe verbinding maken met deze testcomputer vanaf een andere, bevinden we ons in de fish shell zodra we zijn ingelogd.

Om uw interactieve shell-gebruik te veranderen chsh met de -s (shell) optie. Geef het pad door naar de nieuwe shell op de opdrachtregel:
chsh -s /usr/bin/fish

U wordt om uw wachtwoord gevraagd en keert terug naar de opdrachtprompt van uw huidige shell. U moet uitloggen en weer inloggen om de wijziging door te voeren. Als u dat doet, ziet u de begroeting en het fish shell-opdrachtprompt.
De $SHELL omgevingsvariabele bevat nu het pad naar uw nieuwe standaard shell:
echo $SHELL

De shell van een andere gebruikersaccount wijzigen
Als u root-privileges heeft en sudo, kunt u de shells van andere gebruikersaccounts wijzigen. De opdracht is hetzelfde als voorheen, met de toevoeging van de gebruikersnaam van die persoon toegevoegd aan de opdrachtregel:
sudo chsh -s /usr/bin/fish mary

Wanneer mary Als ze vervolgens inlogt, zal ze de nieuwe shell zien als ze een terminalvenster opent.

Iedereen heeft een favoriet
Zolang je vertrouwd bent met je keuze van schaal, en het voor jou werkt, is dat geweldig! Onthoud gewoon dat het in staat moet zijn om algemene scripts uit te voeren, zoals installatieroutines. Voor de hier genoemde schelpen zou dit geen probleem moeten zijn.
U kunt natuurlijk ook een nieuwe shell downloaden en installeren, en deze meenemen voor een proefrit zonder enige configuratiewijzigingen op uw computer aan te brengen. Als je klaar bent om de knoop door te hakken, chsh zal de ceremonie voor je uitvoeren.