Fatmawati Achmad Zaenuri / Shutterstock
Bash ist nicht die einzige Linux-Shell. Es ist einfach, andere Muscheln wie Zsh auszuprobieren, was sehr beliebt ist. Wenn Sie eine gefunden haben, die Ihnen gefällt, verwenden Sie die chsh
Befehl, um es zu Ihrer Standard-Shell zu machen. Wir zeigen Ihnen wie.
Warum eine Shell wichtig ist
die Muschel sitzt zwischen Ihnen und dem Betriebssystem. Es bietet die Umgebung in einem Terminalfenster, in dem Sie Befehle eingeben und Programme ausführen können. Die Shell überprüft Ihre Eingabe und findet heraus, was Sie wollen. Wenn es Ihr Gebot selbst ausführen kann, tut es dies. Wenn es Hilfe von außen benötigt, durchsucht es den Pfad und findet die Programme, die alles tun können, was Sie angefordert haben.
Unter Linux sind viele verschiedene Shells verfügbar. Mit allen können Sie dieselben Kernaufgaben ausführen: das Dateisystem erkunden, mit Dateien arbeiten, Programme starten und Skripte ausführen. Sie führen diese Aufgaben jedoch jeweils auf ihre eigene Weise aus und haben ihre eigenen Besonderheiten und Besonderheiten.
Muscheln werden in der Regel von Menschen entworfen, die möchten, dass sich die Dinge auf eine bestimmte Art und Weise verhalten. Wenn Ihr Denken mit dem dieses Designers übereinstimmt, passt diese Shell möglicherweise gut zu Ihnen. Außerdem ist es einfach, eine neue Shell unter Linux auszuprobieren.
In den meisten Linux-Distributionen, einschließlich Ubuntu, Die Standard-Shell ist bash
. Es macht einen tollen Job und ist sehr fähig. Eine andere Shell bietet jedoch möglicherweise einen zeitsparenden Unterschied, der sich stark auf Ihren Workflow auswirkt. Sie werden es nie erfahren, wenn Sie nicht hinsehen!
Ein Eimer voller Muscheln
Wir haben die verschiedenen Linux-Shells bereits behandelt, aber hier ist eine kurze Einführung in die gängigsten:
- Bash: Das Bourne wieder ist Shell der Standard in vielen Distributionen.
- rbash: Dies Beschränkt
bash
Die Shell bietet der darin ausgeführten Person oder dem Skript nur minimale Funktionen.
- Asche: Das Almquist Muschel ist eine leichtere Version von Bash.
- Strich: Die Debian Alquist Shell ist die Standard-Shell-Skript in Ubuntu. Während
bash
ist das Standard-Login und die interaktive Shell. dash
wird verwendet, um Systemprozesse auszuführen, da es viel leichter als ist bash
.
- zsh: Die Z-Schale ist eine moderne Version des
bash
Muschelfamilie. Es bietet nette Verbesserungen wie Rechtschreibprüfungen für Befehle und Änderungsvorschläge.
- Fisch: Dies freundliche interaktive Shell wurde von Grund auf neu geschrieben und stammt nicht aus einer der anderen Shell-Familien. Es soll benutzerfreundlich sein. Neben seinen vielen anderen Vorteilen bietet fish Vorschläge für Befehle, die auf Ihrem Verlauf und dem Inhalt des aktuellen Ordners basieren, ähnlich wie prädiktiver Text.
- ksh: Die KornShell bietet eine besonders starke Skriptsprache.
Listen Sie die installierten Shells auf
Verwenden Sie diesen Befehl, um zu sehen, welche Shells auf Ihrem Computer installiert sind. Es listet einfach den Inhalt der /etc/shells
Datei:
cat /etc/shells
Wir haben erwähnt bash
, dash
, und rbash
, aber was ist sh
?
sh
ist der Thompson Shell, geschrieben im Jahr 1971 von Ken Thompson von Bell Labs Ruhm. Es wird nicht mehr gewartet und wurde längst von modernen Muscheln abgelöst. Es dient lediglich der Aufrechterhaltung der Kompatibilität mit älteren Skripten, deren erste Zeile noch Folgendes enthält:
#!/bin/sh
Dies weist das System an, das zu verwenden sh
Shell, um das Skript auszuführen. Haben Sie wirklich diese alte Shell auf Ihrem Computer und wird sie zum Ausführen Ihrer Skripte verwendet? Das which
Der Befehl teilt uns mit, welches Programm tatsächlich ausgeführt wird, wenn Sie einen Befehl eingeben.
Mal sehen, was beim Tippen läuft sh
::
which sh
Dies scheint eine Binärdatei zu finden. Wenn wir jedoch etwas tiefer graben, werden wir sehen, dass es sich um eine symbolische Verbindung handelt, auf die tatsächlich verwiesen wird dash
, die leichte Shell, die zum Ausführen von Skripten verwendet wird:
ls -l /bin/sh
Dies ist eine saubere und einfache Möglichkeit, ein Sicherheitsnetz für Skripte bereitzustellen, die voraussichtlich gefunden werden sh
auf modernen Systemen.
Installieren einer anderen Shell
Lassen Sie uns das installieren fish
Shell und setzen Sie es als Standard für dave
. Unter Ubuntu geben wir den folgenden Befehl ein:
sudo apt-get install fish
Verwenden Sie auf Manjaro pacman
::
sudo pacman -Sy fish
Geben Sie auf Fedora Folgendes ein:
sudo dnf install fish
Wenn die Installation abgeschlossen ist, können Sie die installierten Shells noch einmal überprüfen:
cat /etc/shells
Unsere neue Shell erscheint als /usr/bin/fish
. Beachten Sie diesen Pfad – Sie werden ihn in Kürze benötigen.
Die Umgebungsvariable $ SHELL
Das $SHELL
Die Umgebungsvariable enthält den Namen Ihrer aktuellen Shell. Wir können überprüfen, mit welchem es eingestellt ist echo
::
echo $SHELL
Beginnen wir das fish
Schale:
fish
Lassen Sie uns nun noch einmal überprüfen, was die $SHELL
Umgebungsvariable sagt:
echo $SHELL
Das erste Mal verwenden wir echo $SHELL
, wo in der bash
Schale. Die Umgebungsvariable enthält den Pfad zum bash
ausführbar, /bin/bash
.
Wenn wir die fish
Shell erhalten wir eine freundliche Begrüßungsnachricht und die Eingabeaufforderung ändert sich. Was überraschen könnte, ist die $SHELL
Umwelt hält immer noch den Weg zum bash
ausführbar, /bin/bash
. Das ist okay – das ist normal.
Wenn Sie eine neue Shell (oder ein anderes Programm) starten, erbt sie die Umgebung der übergeordneten Shell. Also, die fish
Shell erbt die globalen und exportierten Umgebungsvariablen von der bash
Schale. Weil der Wert in der $SHELL
Umgebungsvariable wurde nicht geändert, sie hat den gleichen Wert in der fish
Shell, die es in der tat bash
Schale.
Wir laufen fish
wie jedes andere Programm. Wir können auch verwenden exit
zu verlassen fish
Schale. Es schließt wie jedes andere Programm und wir kehren zum zurück bash
Schale.
Das ist großartig, um neue Muscheln auszuprobieren, zu sehen, was sie können und ob Sie mit ihnen auskommen. Sie können erkunden, bevor Sie den Sprung machen, und einen als Ihre Go-to-Shell übernehmen.
Wenn Sie sich entscheiden, die zu machen fish
– oder jede andere Shell – Ihre Standardeinstellung ist, dass Sie die verwenden müssen chsh
Befehl.
Der Befehl chsh
Das chsh
Mit dem Befehl können Sie Ihre Standard-Shell ändern. Der Trick besteht darin, dass Sie sowohl die Standardanmeldung als auch die interaktiven Standardshells ändern können. Vielleicht möchten Sie das eine oder das andere oder beides ändern.
Wenn Sie sich anmelden, um eine Eingabeaufforderung zu erhalten, verwenden Sie die Shell, die als Anmeldeshell konfiguriert ist. Wenn Sie bereits angemeldet sind und ein Terminalfenster öffnen, verwenden Sie die Shell, die als interaktive Shell konfiguriert ist. Dies können entweder die gleichen oder verschiedene Schalen sein.
Verwenden Sie zum Festlegen Ihrer Login-Shell chsh
ohne Parameter:
chsh
Sie werden aufgefordert, Ihr Passwort einzugeben. Dann müssen Sie den Pfad zur neuen Shell eingeben und die Eingabetaste drücken.
Wenn wir von einem anderen Computer aus eine Remoteverbindung zu diesem Testcomputer herstellen, befinden wir uns in der fish
Shell, sobald wir uns angemeldet haben.
Um Ihre interaktive Shell zu ändern, verwenden Sie chsh
mit dem -s
(Shell) Option. Übergeben Sie den Pfad zur neuen Shell in der Befehlszeile:
chsh -s /usr/bin/fish
Sie werden aufgefordert, Ihr Kennwort einzugeben und zur Eingabeaufforderung Ihrer aktuellen Shell zurückzukehren. Sie müssen sich abmelden und wieder anmelden, damit die Änderung wirksam wird. Wenn Sie dies tun, sehen Sie die Begrüßung und die fish
Shell-Eingabeaufforderung.
Das $SHELL
Die Umgebungsvariable enthält jetzt den Pfad zu Ihrer neuen Standard-Shell:
echo $SHELL
Ändern der Shell eines anderen Benutzerkontos
Wenn Sie Root-Rechte haben und verwenden können sudo
können Sie die Shells anderer Benutzerkonten ändern. Der Befehl ist derselbe wie zuvor, wobei der Benutzername dieser Person zur Befehlszeile hinzugefügt wurde:
sudo chsh -s /usr/bin/fish mary
Wann mary
Wenn sie sich das nächste Mal anmeldet, sieht sie die neue Shell, wenn sie ein Terminalfenster öffnet.
Jeder hat einen Favoriten
Solange Sie mit Ihrer Wahl der Schale vertraut sind und diese für Sie funktioniert, ist das großartig! Denken Sie daran, dass allgemeine Skripts wie Installationsroutinen ausgeführt werden müssen. Für die hier genannten Muscheln sollte dies kein Problem sein.
Natürlich können Sie auch eine neue Shell herunterladen, installieren und eine Probefahrt machen, ohne Konfigurationsänderungen an Ihrem Computer vorzunehmen. Wenn Sie bereit sind, den Knoten zu knüpfen, chsh
wird die Zeremonie für Sie durchführen.