So ändern Sie Ihre Standard-Shell unter Linux mit chsh

Bash ist nicht die einzige Linux-Shell. Es ist einfach, andere Shells auszuprobieren, wie zum Beispiel Zsh, das sehr beliebt ist. Wenn Sie eine gefunden haben, die Ihnen gefällt, verwenden Sie den Befehl chsh, um sie zu Ihrer Standard-Shell zu machen. Wir zeigen Ihnen wie.

Warum eine Shell wichtig ist

die Muschel sitzt zwischen Ihnen und dem Betriebssystem. Es stellt die Umgebung in einem Terminalfenster bereit, in der Sie Befehle eingeben und Programme ausführen können. Die Shell überprüft Ihre Eingaben und findet heraus, was Sie wollen. Wenn es Ihre Gebote selbst ausführen kann, tut es dies. Wenn externe Hilfe benötigt wird, durchsucht es den Pfad und findet die Programme, die tun können, was Sie verlangen.

Unter Linux stehen viele verschiedene Shells zur Verfügung. Sie alle ermöglichen Ihnen, die gleichen Kernaufgaben auszuführen: das Dateisystem erkunden, mit Dateien arbeiten, Programme starten und Skripte ausführen. Sie erfüllen diese Aufgaben jedoch jeweils auf ihre Weise und haben ihre eigenen Besonderheiten und Eigenheiten.

Shells werden in der Regel von Leuten entworfen, die wollen, dass sich Dinge auf eine bestimmte Weise verhalten. Wenn Ihr Denken mit dem dieses Designers übereinstimmt, könnte diese Hülle gut zu Ihnen passen. 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 kann jedoch einen zeitsparenden Unterschied bieten, der sich stark auf Ihren Workflow auswirken würde. Sie werden es nie wissen, 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 gebräuchlichsten:

bash: The Bourne wieder Shell ist der Standard in vielen Distributionen.
rbash: Das Eingeschränkt Die bash-Shell bietet der darin ausgeführten Person oder dem darin ausgeführten Skript nur minimale Funktionen.
Asche: Die Almquist-Muschel ist eine leichtere Version von bash.
Strich: Die Debian-Alquist-Shell ist die Standard-Shell-Skript bei Ubuntu. Während bash die Standard-Login- und interaktive Shell ist, wird dash zum Ausführen von Systemprozessen verwendet, da es viel leichter als bash ist.
zsch: Die Z-Schale ist eine moderne Version der Bash-Shell-Familie. Es bietet nette Verbesserungen, wie Befehls-Rechtschreibprüfungen und vorgeschlagene Korrekturen.
Fisch: Das freundliche interaktive Shell wurde von Grund auf neu geschrieben und ist von keiner der anderen Shell-Familien abgeleitet. Es soll benutzerfreundlich sein. Neben vielen anderen Vorteilen bietet fish Vorschläge für Befehle basierend auf Ihrem Verlauf und dem Inhalt des aktuellen Ordners, ähnlich wie prädiktiver Text.
ksh: Die KornShell bietet eine besonders starke Skriptsprache.

  Was ist ein TTY unter Linux? (und wie man den tty-Befehl verwendet)

Liste der installierten Shells

Verwenden Sie diesen Befehl, um zu sehen, welche Shells auf Ihrem Computer installiert sind. Es listet einfach den Inhalt der Datei /etc/shells auf:

cat /etc/shells

Wir haben Bash, Dash und Rbash erwähnt, aber was ist Sh?

sie ist die Thompson Shell, geschrieben im Jahr 1971 von Ken Thompson von Bell Labs Ruhm. Es wird nicht mehr gepflegt und ist längst von modernen Muscheln abgelöst worden. Es ist nur enthalten, um die Kompatibilität mit älteren Skripten zu gewährleisten, die immer noch Folgendes als erste Zeile haben:

#!/bin/sh

Dies weist das System an, die sh-Shell zu verwenden, um das Skript auszuführen. Haben Sie wirklich diese alte Shell auf Ihrem Computer und wird sie zum Ausführen Ihrer Skripte verwendet? Der Befehl what sagt uns, welches Programm tatsächlich ausgeführt wird, wenn Sie einen Befehl eingeben.

Mal sehen, was ausgeführt wird, wenn Sie sh eingeben:

which sh

Dies scheint eine Binärdatei zu finden. Wenn wir jedoch etwas tiefer graben, werden wir feststellen, dass es sich um einen symbolischen Link handelt, der tatsächlich auf dash verweist, die leichte Shell, die zum Ausführen von Skripten verwendet wird:

ls -l /bin/sh

Dies ist eine nette, leichte Methode, um ein Sicherheitsnetz für Skripte bereitzustellen, die erwarten, auf modernen Systemen sh zu finden.

  So richten Sie RocketChat Server unter Linux ein

Installieren einer anderen Shell

Lassen Sie uns die Fischmuschel installieren und als Standard für dave festlegen. Unter Ubuntu geben wir den folgenden Befehl ein:

sudo apt-get install fish

Verwenden Sie auf Manjaro Pacman:

sudo pacman -Sy fish

Geben Sie in 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. Merken Sie sich diesen Pfad – Sie werden ihn in Kürze brauchen.

Die Umgebungsvariable $SHELL

Die Umgebungsvariable $SHELL enthält den Namen Ihrer aktuellen Shell. Wir können mit echo überprüfen, auf welchen es eingestellt ist:

echo $SHELL

Beginnen wir mit der Fischschale:

fish

Lassen Sie uns nun noch einmal überprüfen, was die Umgebungsvariable $SHELL sagt:

echo $SHELL

Wenn wir echo $SHELL zum ersten Mal verwenden, befinden wir uns in der Bash-Shell. Die Umgebungsvariable enthält den Pfad zur ausführbaren Bash-Datei /bin/bash.

Wenn wir die Fischschale starten, erhalten wir eine freundliche Willkommensnachricht und die Eingabeaufforderung ändert sich. Was überraschend sein könnte, ist, dass die $SHELL-Umgebung immer noch den Pfad zur ausführbaren Bash-Datei /bin/bash enthält. Das ist in Ordnung – das ist normal.

Wenn Sie eine neue Shell (oder ein anderes Programm) starten, erbt diese die Umgebung der übergeordneten Shell. Die Fisch-Shell erbt also die globalen und exportierten Umgebungsvariablen von der Bash-Shell. Da der Wert in der Umgebungsvariablen $SHELL nicht geändert wurde, hat er in der Fisch-Shell denselben Wert wie in der Bash-Shell.

Wir betreiben Fisch wie jedes andere Programm. Wir können auch exit verwenden, um die Fischschale zu verlassen. Es schließt sich wie jedes andere Programm, und wir kehren zur Bash-Shell zurück.

Das ist großartig, um neue Muscheln auszuprobieren, zu sehen, was sie können und ob Sie damit zurechtkommen. Sie können es erkunden, bevor Sie den Sprung wagen, und eine als Ihre bevorzugte Shell annehmen.

  So überprüfen Sie den Festplattenzustand unter Linux

Wenn Sie den Fisch – oder eine andere Shell – als Standard festlegen möchten, müssen Sie den Befehl chsh verwenden.

Das chsh-Kommando

Mit dem Befehl chsh können Sie Ihre Standard-Shell ändern. Der Trick besteht darin, sich bewusst zu sein, dass Sie sowohl das Standard-Login als auch die standardmäßigen interaktiven Shells ä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 Ihre Anmelde-Shell konfiguriert ist. Wenn Sie bereits angemeldet sind und ein Terminalfenster öffnen, verwenden Sie die als interaktive Shell konfigurierte Shell. Dies können entweder die gleichen oder unterschiedliche Schalen sein.

Um Ihre Login-Shell einzurichten, verwenden Sie chsh ohne Parameter:

chsh

Sie werden zur Eingabe Ihres Passworts aufgefordert. Dann müssen Sie den Pfad zur neuen Shell eingeben und die Eingabetaste drücken.

Wenn wir von einem anderen aus eine Remote-Verbindung zu diesem Testcomputer herstellen, befinden wir uns nach dem Einloggen in der Fischmuschel.

Um Ihre interaktive Shell zu ändern, verwenden Sie chsh mit der Option -s (Shell). Übergeben Sie den Pfad zur neuen Shell in der Befehlszeile:

chsh -s /usr/bin/fish

Sie werden zur Eingabe Ihres Kennworts aufgefordert und kehren zur Eingabeaufforderung Ihrer aktuellen Shell zurück. Sie müssen sich ab- und wieder anmelden, damit die Änderung wirksam wird. Wenn Sie dies tun, sehen Sie die Begrüßung und die Eingabeaufforderung für die Fischmuschel.

Die Umgebungsvariable $SHELL enthält jetzt den Pfad zu Ihrer neuen Standard-Shell:

echo $SHELL

Shell eines anderen Benutzerkontos ändern

Wenn Sie Root-Rechte haben und sudo verwenden können, können Sie die Shells anderer Benutzerkonten ändern. Der Befehl ist derselbe wie zuvor, wobei der Benutzername dieser Person in der Befehlszeile hinzugefügt wurde:

sudo chsh -s /usr/bin/fish mary

Wenn Mary sich das nächste Mal anmeldet, sieht sie die neue Shell, wenn sie ein Terminalfenster öffnet.

Jeden