Dieser Artikel erklärt, wie Sie die Standard-Shell in Linux ändern. Dadurch können Sie bash, sh, zsh, csh, fish usw. als Shell festlegen.
Der Artikel enthält Anweisungen zum Ändern der Anmelde-Shell über die Befehlszeile mit chsh oder zum Ändern der Shell nur für eine bestimmte Terminalanwendung. Obwohl sich der Artikel an Linux-Benutzer richtet, sollte dies auch auf anderen Unix-ähnlichen Systemen funktionieren.
So ändern Sie die Standard-Login-Shell mit chsh (über die Befehlszeile)
Um die Standard-Login-Shell zu ändern, verwenden wir chsh
, ein Befehlszeilentool zum Ändern der Login-Shell.
Dieses Programm ändert die Login-Shell, indem es den /etc/passwd
ändert Datei und Einstellung des $SHELL
Umgebungsvariable. Sie können die Standard-Shell in einer Terminalanwendung überschreiben, indem Sie die Shell in den Terminaleinstellungen festlegen – Details finden Sie im zweiten Teil dieses Artikels.
Ein Hinweis für Fedora-Benutzer. Fedora hat chsh nicht standardmäßig installiert und um es zu verwenden, benötigen Sie ein Paket namens. um util-linux-user
zu installieren . Wenn Sie die Installation dieses Pakets überspringen möchten, können Sie lchsh
Um stattdessen die Standard-Login-Shell zu ändern:
sudo lchsh $USER
Es ist wichtig zu beachten, dass ein normaler Benutzer mit chsh nur die Login-Shell für das aktuelle Konto ändern kann, während der Superuser die Login-Shell für jedes Konto ändern kann, einschließlich des Root-Kontos. Außerdem besteht das Standardverhalten für Nicht-Root-Benutzer darin, nur Shells zu akzeptieren, die in der Liste /etc/shells
stehen Ablegen und eine Warnung an den Root-Benutzer ausgeben.
Bevor Sie also Ihre Muschel ändern, listen Sie alle Muscheln auf, die in /etc/shells
aufgeführt sind Datei von Ihrem Linux-System indem Sie den folgenden Befehl verwenden:
cat /etc/shells
Beispiel mit Ausgabe:
$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
/usr/bin/tmux
/bin/zsh
Wenn die Shell, die Sie verwenden möchten, hier nicht aufgeführt ist, ist sie möglicherweise nicht auf Ihrem System installiert. Installieren Sie es also (z. B. installieren Sie Zsh auf Debian / Ubuntu / Linux Mint / Pop! _OS mit:sudo apt install zsh
) und überprüfen Sie es erneut.
Um die Shell für Ihren Benutzer zu ändern, gehen Sie wie folgt vor:
chsh
Das funktioniert chsh
in einem interaktiven Modus, fragt Sie nach dem Passwort, listet dann Ihre aktuelle Shell auf (die meisten Linux-Distributionen verwenden Bash als Standard-Shell) und fordert Sie auf, einen Wert für Ihre neue Shell einzugeben. Hier ist der Befehl mit seiner Ausgabe:
$ chsh
Password:
Changing the login shell for logix
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
Um Ihre Shell zu ändern, geben Sie den Pfad zur neuen Shell ein (die in /etc/shells
existiert ) und drücken Sie die Enter
Schlüssel.
Um beispielsweise die Shell für den aktuellen Benutzer von bash auf zsh zu ändern:
$ chsh
Password:
Changing the login shell for logix
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]: /bin/zsh
Wenn Sie eine Version von chsh verwenden, die nicht mit einer interaktiven Eingabeaufforderung startet, nachdem sie chsh
ausgeführt wurde , ändern Sie die Login-Shell für Ihren Benutzer direkt:
chsh -s <SHELL>
z. B. um die Shell in Zsh zu ändern:
chsh -s /bin/zsh
Nachdem Sie die Shell Ihres Kontos geändert haben, melden Sie sich ab und wieder an, um die neue Shell zu verwenden.
Um die Login-Shell für einen anderen Benutzer oder für den Root-Benutzer zu ändern, melden Sie sich an der Shell-Eingabeaufforderung als Root an. unter su -
, sudo -i
, sudo su
usw. und führen Sie Folgendes aus:
- Um die Shell für das Root-Konto zu ändern (und wenn Sie dazu aufgefordert werden, geben Sie die gewünschte Login-Shell mit ihrem vollständigen Pfad ein):
chsh
- Um die Shell eines anderen Benutzers zu ändern (dies funktioniert auch für den Root-Benutzer mit
root
als Benutzername):
chsh -s <SHELL> <USERNAME>
Dieses Mal haben wir chsh mit diesem -s
verwendet -Option, die die Login-Shell direkt ändert (läuft nicht im interaktiven Modus). Hier, SHELL
ist die neue Shell (z.B. /bin/zsh
) und USERNAME
ist der Benutzer, für den Sie die Shell ändern; zum Beispiel, um die Shell auf /bin/zsh
zu ändern für den Benutzer Logix
, würden Sie verwenden:chsh -s /bin/zsh Logix
).
Das könnte Ihnen auch gefallen:Starship ist eine minimale und schnelle Shell-Eingabeaufforderung in Rust
Ändern Sie die Shell für Ihren Benutzer in einer Terminalanwendung
Sie können eine andere Shell als die Login-Shell verwenden ($SHELL
) für eine bestimmte Terminalanwendung, wenn diese Anwendung das Festlegen einer benutzerdefinierten Shell oder das Ausführen eines benutzerdefinierten Befehls anstelle der Standard-Shell zulässt.
Als Nebenbemerkung können Sie auch die aktuelle Shell ändern (keine dauerhafte Änderung), indem Sie den Shell-Befehl, den Sie verwenden möchten, in einem Terminal eingeben (z. B. wenn Sie „zsh“ eingeben, wechseln Sie zur Verwendung von zsh für diese Sitzung; beenden) durch Eingabe von „exit“).
Um GNOME-Terminal zu nehmen (wird als Standardterminal in GNOME- und Cinnamon-Desktops verwendet). Öffne sein Preferences
, klicken Sie in der linken Seitenleiste auf das derzeit aktive Profil (normalerweise als Standard oder Unbenannt bezeichnet, wenn Sie es nicht geändert oder neue Profile hinzugefügt haben) und dann auf Command
Registerkarte:
Hier können Sie eine benutzerdefinierte Shell festlegen, die nur mit dieser Anwendung verwendet wird. Aktivieren Sie den Run a custom command instead of my shell
Option, dann im Custom command
Geben Sie den vollständigen Pfad zu der Shell ein, die Sie verwenden möchten, z. /bin/zsh
, /bin/bash
, usw.
Im Xfce4-Terminal , öffnen Sie diesen Preferences
und auf der General
Tab haben Sie eine Option namens. Run a custom command instead of my shell
aktivieren , geben Sie dann den benutzerdefinierten Befehl darunter ein (dies ist die Shell, die Sie mit diesem Terminal verwenden möchten, z. B. /bin/zsh
, /usr/bin/fish
, usw.).
Verwenden von KDE Plasmas Konsolen , gehen Sie zu Settings -> Edit Current Profile
, und auf General
Tab, ändern Sie den Command
Feld für den vollständigen Pfad der Shell, die Sie verwenden möchten (wieder so etwas wie:/bin/zsh
, /bin/bash
, /usr/bin/fish
, usw.).
Verwendung von Guake , können Sie die Benutzer-Shell von Ihrem Preferences
verwenden , auf Shell
Tab, wo Sie eine Option aufgerufen haben. Finden Sie Default interpreter
Dadurch kann jede in aufgelistete Shell ausgewählt werden /etc/shells
.
Für Terminals, die es Ihnen ermöglichen, eine benutzerdefinierte Shell auszuführen, sollten Sie auch eine Option finden, mit der Sie den Befehl als Anmelde-Shell ausführen können (normalerweise nur „Befehl als Anmelde-Shell ausführen“). Informationen zu den Unterschieden zwischen einer Login-Shell und einer interaktiven Shell finden Sie auf dieser Seite.
Die Einstellung ist in den meisten Fällen gleich, daher werde ich auf weitere Beispiele verzichten. Es ist jedoch erwähnenswert, dass nicht alle Terminalanwendungen Optionen haben, um die Verwendung einer benutzerdefinierten Shell zuzulassen – verwenden Sie in solchen Fällen den chsh
Befehl zum Ändern der Login-Shell wie oben beschrieben.
Das könnte Ihnen gefallen:179 Farbschemata für Ihr Gtk-basiertes Linux-Terminal (Gnome-Terminal, Tilix, Xfce-Terminal, mehr)