GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So ändern Sie die Standard-Shell in Linux

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)


Debian
  1. So ändern Sie die Farbe Ihres Linux-Terminals

  2. So ändern Sie die Standard-Python-Version unter Debian 9 Stretch Linux

  3. So ändern Sie die Identität eines Linux-Systems

  4. So ändern Sie die Standard-Shell in Linux

  5. So ändern Sie die MAC-Adresse unter Linux dauerhaft

So ändern Sie die Standardbenutzer-Shell im Linux-Betriebssystem

So ändern Sie die Standard-Shell im Linux-System

So ändern Sie das Standardterminal in Ubuntu

So ändern Sie eine Benutzer-Shell in Linux

So ändern Sie den Standard-SSH-Port in Linux [richtig und sicher]

So ändern Sie das Root-Passwort unter Linux