So ändern Sie die Standard-Shell in Linux

Ändern der Standard-Shell in Linux Feature-Bild

Eine Shell ist die Schnittstelle, über die Sie mit Ihrem Linux-System kommunizieren können. Sie ermöglicht es Ihnen, Befehle einzugeben und Ihren Computer zu steuern. Jeder Linux-Benutzer hat eine Standard-Shell, die in den meisten Fällen bash ist. Es gibt auch viele andere Optionen, darunter Zsh, ksh, rc und fish. Hier zeigen wir Ihnen die verschiedenen Methoden, um Ihre Standard-Shell in Linux zu ändern.

Inhaltsverzeichnis

  • Wie Sie den Namen Ihrer aktuellen Shell finden
  • Alle installierten Shells auflisten
  • Standard-Shell in Linux mit Chsh ändern
  • Shell eines anderen Benutzers ändern
  • Standard-Shell in Linux mit Usermod ändern
  • Manuelles Ändern der Standard-Shell in Linux
  • Alternative zu Ihrer Standard-Shell

Wie Sie den Namen Ihrer aktuellen Shell finden

Bevor wir uns mit dem Ändern der Standard-Shell beschäftigen, ist es gut zu wissen, welche Shell Sie derzeit verwenden. Sie können dies herausfinden, indem Sie die Systemumgebungsvariable mit dem folgenden echo-Befehl überprüfen:

echo $SHELL

Dieser Befehl gibt den Pfad Ihrer aktuellen Shell aus, wie z.B. /bin/bash oder /bin/zsh.

Die Datei /etc/passwd enthält wichtige Informationen zu Benutzerkonten. Sie können auch diese Datei verwenden, um Ihre aktuelle Shell zu finden:

grep "^${USER}" /etc/passwd

Sie können auch weitere Informationen über die aktuelle Shell erhalten, indem Sie die Prozess-ID (PID) mit dem ps-Befehl überprüfen:

ps -p $$

Diese Ausgabe bestätigt, dass die aktuelle Shell bash ist.

Alle installierten Shells auflisten

Jetzt, da Sie Ihre aktuelle Shell kennen, möchten Sie vielleicht sehen, welche anderen Optionen auf Ihrem System verfügbar sind. Um alle installierten Shells auf Ihrem System zu finden, müssen Sie die Datei /etc/shells überprüfen.

Lassen Sie uns den cat-Befehl verwenden, um eine Liste aller auf Ihrem System verfügbaren Shells anzuzeigen:

cat /etc/shells

Auflistung aller in Linux Ubuntu installierten Shells

Dies gibt Ihnen eine Vorstellung davon, zu welchen Shells Sie wechseln können. Sie können auch jede neue Shell mit Ihrem Paketmanager installieren und sie als Ihre Standard-Shell verwenden.

Darüber hinaus können Sie diese aufgelisteten Shells vorübergehend ausprobieren, ohne Ihre Standard-Shell zu ändern. Um eine neue Shell-Sitzung zu starten, geben Sie einfach den Namen der Shell im Terminal ein.

Zum Beispiel, um die Zsh-Shell auszuprobieren, geben Sie ein:

zsh

Dies ermöglicht es Ihnen, mit verschiedenen Shells zu experimentieren, bevor Sie sich entscheiden, einen dauerhaften Wechsel vorzunehmen.

Standard-Shell in Linux mit Chsh ändern

Der einfachste Weg, die Standard-Shell in Linux zu ändern, ist die Verwendung des chsh-Befehls. Der chsh-Befehl steht für “change shell” und wird zusammen mit der Option -s gefolgt von Ihrem Shell-Pfad verwendet.

Wenn Sie Ihren Shell-Pfad nicht kennen, führen Sie type zsh im Terminal aus, um den gewünschten Pfad zu erhalten. Nachdem Sie Ihren Shell-Pfad erhalten haben, können Sie Ihre Standard-Shell auf Ihre spezifische Shell ändern.

Wenn Sie beispielsweise zu Zsh wechseln möchten, müssen Sie chsh -s mit dem Zsh-Shell-Pfad verwenden:

chsh -s /bin/zsh

Sie werden aufgefordert, Ihr Passwort einzugeben. Sobald Sie dies getan haben, müssen Sie sich abmelden und wieder anmelden, um die Änderungen zu bestätigen.

Der chsh-Befehl ändert die Standard-Login-Shell dauerhaft. Sie können die Änderungen überprüfen, indem Sie diesen Befehl ausführen:

grep "^${USER}" /etc/passwd

Shell eines anderen Benutzers ändern

Wenn Sie über Root-Rechte und die Fähigkeit verfügen, den sudo-Befehl zu verwenden, können Sie die Standard-Shell für andere Benutzerkonten ändern. Dies kann nützlich sein, wenn Sie einem anderen Benutzer eine andere Shell-Umgebung, wie fish, bereitstellen möchten.

Sie können die gleiche chsh-Befehlsyntax mit einem zusätzlichen Parameter verwenden, der den Benutzernamen des Kontos angibt, das Sie ändern möchten.

Um beispielsweise die Shell eines anderen Benutzers auf Zsh zu ändern, führen Sie diesen Befehl im Terminal aus:

sudo chsh -s /bin/zsh user

Dieser Befehl sagt dem System, dass die Standard-Shell für den spezifischen Benutzer auf die Zsh-Shell geändert werden soll, die sich unter /bin/zsh befindet.

Standard-Shell in Linux mit Usermod ändern

Eine weitere Methode, um Shells zu wechseln, ist die Verwendung des usermod-Befehls. Dieser Befehl wird verwendet, um Benutzerkonten zu ändern, und kann auch verwendet werden, um die Standard-Shell zu ändern.

Um Ihre Standard-Shell mit usermod zu ändern, öffnen Sie ein Terminal mit Root-Rechten und geben Sie diesen Befehl ein:

sudo usermod -s /path/to/new/shell your_username

Hier müssen Sie /path/to/new/shell durch den gewünschten Shell-Pfad und your_username durch Ihren tatsächlichen Benutzernamen ersetzen.

Zum Beispiel, lassen Sie uns die Standard-bash-Shell auf zsh ändern:

sudo usermod -s /bin/zsh user

Wie zuvor, melden Sie sich ab und wieder an, um diese Änderungen wirksam werden zu lassen.

Sie können den Wechsel zur neuen Shell überprüfen, indem Sie die Benutzerkontodetails mit dem folgenden Befehl anzeigen:

getent passwd user

Manuelles Ändern der Standard-Shell in Linux

Sie können die Standard-Shell auch manuell ändern, indem Sie die Datei /etc/passwd bearbeiten. Sie können dies tun, indem Sie den Standard-Shell-Pfad durch die neue Shell ersetzen. Seien Sie jedoch vorsichtig mit dieser Technik, da sie zu Problemen führen kann, wenn sie nicht korrekt durchgeführt wird.

Um Ihre Shell manuell zu ändern, öffnen Sie die Datei /etc/passwd mit Ihrem bevorzugten Texteditor (wie nano oder vim) mit Root-Rechten:

sudo nano /etc/passwd

Suchen Sie in der Datei nach Ihrem Benutzernamen. Das letzte Feld im Eintrag Ihres Benutzers zeigt Ihre aktuelle Shell an. Ändern Sie es in den Pfad Ihrer gewünschten Shell.

Zum Beispiel, lassen Sie uns unseren Standard-Pfad /bin/bash auf /bin/zsh ändern:

Ändern der Standard-bash-Shell in der /etc/passwd-Texteditor.

Speichern Sie schließlich die Datei, indem Sie Ctrl + S drücken, und beenden Sie den Editor mit Ctrl + X. Melden Sie sich erneut ab und wieder an, um die Änderungen anzuwenden.

Alternative zu Ihrer Standard-Shell

Während Bash ein großartiges und leistungsstarkes Skripting-Tool ist, gibt es mehrere andere Shells, die Ihr Kommandozeilen-Erlebnis verbessern und bessere Anpassungsoptionen bieten können:

Fish

fish steht für Friendly Interactive Shell. Diese Shell hat eine intuitive Kommandozeilenoberfläche mit Syntaxhervorhebung, automatischen Vorschlägen und Tab-Vervollständigungen, die das Eingeben von Befehlen zum Kinderspiel machen.

fish enthält auch ein webbasiertes Konfigurationstool. Das bedeutet, dass Sie Einstellungen anpassen und Funktionen erstellen können, ohne in Konfigurationsdateien graben zu müssen.

Zsh

Zsh, oder Z shell, ist hochgradig anpassbar und hat viele nützliche Funktionen. Einige der besten Funktionen sind Globbing, Autokorrektur, benutzerdefinierte Konfigurationen und erweiterte Tab-Vervollständigung.

Zsh unterstützt auch Plugins und Themes, was es einfach macht, Ihr Shell-Erlebnis nach Ihren Wünschen anzupassen. Mit Zsh können Sie auch Ihren Git-Zweig anzeigen und komplexe Dateioperationen mit einfachen Mustern durchführen.

Ksh

ksh, oder die KornShell, nimmt die besten Funktionen von der C-Shell und der Bourne-Shell und macht sie zu einer leistungsstarken und benutzerfreundlichen Shell mit erweiterten Skripting-Funktionen. Einige Funktionen von ksh umfassen integrierte mathematische Funktionen, Kommandozeilenbearbeitung, Shell-Skripting und Erweiterbarkeit.

Fazit

Das Ändern Ihrer Standard-Shell in Linux ist ein einfacher Prozess, der Ihr Kommandozeilen-Erlebnis verbessern kann. Wenn Sie ein Power-User sind, sollten Sie auf jeden Fall andere alternative Linux-Shells ausprobieren.

Bildnachweis: Lukas über Unsplash. Alle Screenshots von Haroon Javed.