So ändern Sie Ihre Standard-Shell unter Linux mit chsh
Veröffentlicht: 2022-01-29 Bash ist nicht die einzige Linux-Shell. Es ist einfach, andere Shells auszuprobieren, wie z. B. Zsh, das sehr beliebt ist. Wenn Sie eine gefunden haben, die Ihnen gefällt, verwenden Sie den chsh
, um sie zu Ihrer Standard-Shell zu machen. Wir zeigen Ihnen wie.
Warum eine Schale wichtig ist
Die Shell befindet sich 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 Bieten selbst durchfü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 die gleichen Kernaufgaben ausführen: das Dateisystem durchsuchen, mit Dateien arbeiten, Programme starten und Skripts ausführen. Sie erfüllen diese Aufgaben jedoch jeweils auf ihre eigene 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 Schale gut zu Ihnen passen. Außerdem ist es einfach, eine neue Shell unter Linux auszuprobieren.
In den meisten Linux-Distributionen, einschließlich Ubuntu, ist die Standard-Shell bash
. Es macht einen tollen Job und ist sehr fähig. Eine andere Shell könnte jedoch einen zeitsparenden Unterschied bieten, der sich stark auf Ihren Arbeitsablauf auswirken würde. Du wirst es nie erfahren, wenn du nicht hinsiehst!
RELATED: Was ist ZSH und warum sollten Sie es anstelle von Bash verwenden?
Ein Eimer voller Muscheln
Wir haben die verschiedenen Linux-Shells bereits behandelt, aber hier ist eine kurze Einführung in die gebräuchlichsten:
- bash: Die Bourne Again-Shell ist in vielen Distributionen der Standard.
- rbash: Diese eingeschränkte
bash
-Shell bietet der Person oder dem Skript, das darin ausgeführt wird, minimale Funktionalität. - ash: Die Almquist-Shell ist eine leichtere Version von bash.
- Bindestrich: Die Debian Alquist Shell ist das Standard-Shell-Skript in Ubuntu. Während
bash
die standardmäßige Anmelde- und interaktive Shell ist, wirddash
zum Ausführen von Systemprozessen verwendet, da es viel leichter alsbash
ist. - zsh: Die Z-Shell ist eine moderne Variante der
bash
-Shell-Familie. Es bietet nette Verbesserungen, wie Befehlsrechtschreibprüfungen und vorgeschlagene Korrekturen. - Fisch: Diese freundliche interaktive Shell wurde von Grund auf neu geschrieben und ist nicht von einer der anderen Shell-Familien abgeleitet. Es soll benutzerfreundlich sein. Neben vielen anderen Vorteilen bietet Fisch Vorschläge für Befehle basierend auf Ihrem Verlauf und dem Inhalt des aktuellen Ordners, ähnlich wie bei der Texterkennung.
- ksh: Die KornShell bietet eine besonders starke Skriptsprache.
VERWANDT: Was ist der Unterschied zwischen Bash, Zsh und anderen Linux-Shells?
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 Datei /etc/shells
auf:
Katze /etc/shells
Wir haben bash
, dash
und rbash
, aber was ist sh
?
sh
ist die Thompson-Shell, die bereits 1971 von Ken Thompson von Bell Labs geschrieben wurde. 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 aufrechtzuerhalten, die immer noch Folgendes als erste Zeile haben:
#!/bin/sh
Dies weist das System an, die sh
-Shell zum Ausführen des Skripts zu verwenden. Haben Sie wirklich diese alte Shell auf Ihrem Rechner und wird sie zum Ausführen Ihrer Skripte verwendet? Der which
-Befehl teilt uns mit, welches Programm tatsächlich ausgeführt wird, wenn Sie einen Befehl eingeben.
Mal sehen, was läuft, wenn Sie sh
:
was sch
Dies scheint eine Binärdatei zu finden. Wenn wir jedoch etwas tiefer graben, werden wir sehen, dass es sich um einen symbolischen Link handelt, der tatsächlich auf dash
zeigt, die leichte Shell, die zum Ausführen von Skripten verwendet wird:
ls -l /bin/sh
Das ist eine nette, leichtgewichtige Möglichkeit, ein Sicherheitsnetz für Skripte bereitzustellen, die erwarten, sh
auf modernen Systemen zu finden.
Installieren einer anderen Shell
Lassen Sie uns die fish
Shell installieren und 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 Fisch
Geben Sie auf Fedora Folgendes ein:
sudo dnf installiere Fisch
Wenn die Installation abgeschlossen ist, können Sie die installierten Shells noch einmal überprüfen:
Katze /etc/shells
Unsere neue Shell erscheint als /usr/bin/fish
. Notieren Sie sich diesen Pfad – Sie werden ihn in Kürze benötigen.
Die Umgebungsvariable $SHELL
Die Umgebungsvariable $SHELL
enthält den Namen Ihrer aktuellen Shell. Wir können mit echo
überprüfen, auf welches es eingestellt ist:
Echo $SHELL
Beginnen wir mit der fish
:
Fisch
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 fish
starten, erhalten wir eine freundliche Willkommensnachricht und die Eingabeaufforderung ändert sich. Was überraschen könnte, ist, dass die $SHELL
Umgebung immer noch den Pfad zur ausführbaren bash
-Datei enthält, /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. Die fish
-Shell erbt also die globalen und exportierten Umgebungsvariablen von der bash
-Shell. Da der Wert in der Umgebungsvariable $SHELL
nicht geändert wurde, hat er in der fish
-Shell denselben Wert wie in der bash
-Shell.
Wir betreiben fish
wie jedes andere Programm. Wir können auch exit
verwenden, um die fish
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 erkunden, bevor Sie den Sprung machen, und eine als Ihre Anlaufstelle übernehmen.
Wenn Sie sich entscheiden, den fish
– oder eine andere Muschel – zu Ihrem Standard zu machen, müssen Sie den chsh
verwenden.
Der chsh-Befehl
Mit dem chsh
können Sie Ihre Standard-Shell ändern. Der Trick besteht darin, sich bewusst zu sein, dass Sie damit sowohl die Standardanmeldung als auch die standardmäßigen interaktiven Shells ändern können. Vielleicht möchten Sie das eine oder das andere oder beides ändern.
Immer 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 Shell, die als Ihre interaktive Shell konfiguriert ist. Dies können entweder die gleichen oder unterschiedliche Schalen sein.
Um Ihre Login-Shell festzulegen, verwenden Sie chsh
ohne Parameter:
chsch
Sie werden nach Ihrem Passwort gefragt. Dann müssen Sie den Pfad zur neuen Shell eingeben und die Eingabetaste drücken.
Wenn wir von einem anderen eine Fernverbindung zu diesem Testcomputer herstellen, finden wir uns nach dem Einloggen in der fish
wieder.
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 fish
.
Die Umgebungsvariable $SHELL
enthält jetzt den Pfad zu Ihrer neuen Standard-Shell:
Echo $SHELL
Ändern der Shell eines anderen Benutzerkontos
Wenn Sie über Root-Rechte verfügen und sudo
verwenden können, können Sie die Shells anderer Benutzerkonten ändern. Der Befehl ist derselbe wie zuvor, wobei der Benutzername dieser Person der Befehlszeile hinzugefügt wurde:
sudo chsh -s /usr/bin/fish mary
Wenn sich mary
das nächste Mal anmeldet, sieht sie die neue Shell, wenn sie ein Terminalfenster öffnet.
Jeder hat einen Favoriten
Solange Sie sich mit Ihrer Wahl der Schale wohlfühlen und sie für Sie funktioniert, ist das großartig! Denken Sie daran, dass es in der Lage sein muss, allgemeine Skripte wie Installationsroutinen auszuführen. Für die hier genannten Muscheln sollte das kein Problem sein.
Natürlich können Sie auch eine neue Shell herunterladen und installieren und damit eine Probefahrt machen, ohne irgendwelche Konfigurationsänderungen an Ihrem Computer vorzunehmen. Wenn Sie bereit sind, den Bund fürs Leben zu schließen, führt chsh
die Zeremonie für Sie durch.
Linux-Befehle | ||
Dateien | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konvertieren · rclone · shred · srm | |
Prozesse | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Vernetzung | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten