Einführung & Grundlagen
In Unix- und Linux-Umgebungen bestimmt die zugewiesene Login-Shell maßgeblich, wie Anwender mit dem Betriebssystem interagieren. Dieses Tutorial demonstriert den praxisnahen Einsatz des Systemwerkzeugs chsh (Change Shell) unter Ubuntu. Neben der praktischen Durchführung beleuchten wir die zugrundeliegenden Mechanismen und das Zusammenspiel mit den Konfigurationsdateien /etc/shells sowie /etc/passwd.
Aktive Shell ermitteln und verfügbare Login-Shells abfragen
Vor einer Modifikation empfiehlt sich stets eine Bestandsaufnahme der aktuellen Terminalumgebung. Über die Umgebungsvariable $SHELL lässt sich die derzeit aktive Login-Shell unmittelbar abfragen:
echo $SHELL
Die Terminalausgabe signalisiert eindeutig, dass dem gegenwärtig angemeldeten Benutzerkonto standardmäßig /bin/bash zugeordnet ist.

Das Betriebssystem erlaubt aus Sicherheitsgründen nicht die willkürliche Wahl jedes beliebigen Pfades als Login-Shell. Welche Interpreter als legitim eingestuft sind, definiert die Whitelist /etc/shells. Der Dateiinhalt lässt sich mit folgendem Aufruf einsehen:
cat /etc/shells
In der Liste tauchen etablierte Binärdateien wie /bin/sh und /bin/bash auf. Nur Pfade, die hier verzeichnet sind, akzeptiert das Dienstprogramm chsh für reguläre Konten ohne administrative Warnungen.

Alternative Shell (zsh) einrichten und Binärpfade validieren
Um einen Shell-Wechsel praxisnah durchzuspielen, installieren wir die populäre zsh über das APT-Paketmanagement:
sudo apt-get update -qq && sudo apt-get install -y zsh
Nach Abschluss des Installationsvorgangs steht die Z-Shell auf dem System bereit.

Da Befehle je nach Linux-Distribution an unterschiedlichen Orten im Verzeichnisbaum liegen können, lokalisieren wir den exakten Pfad des neu installierten Interpreters:
which zsh
Das System meldet zurück, dass die ausführbare Binärdatei unter /usr/bin/zsh hinterlegt wurde.

Moderne Paketmanager tragen frisch installierte Shells in der Regel eigenständig in /etc/shells ein. Wir verifizieren diesen Schritt mit einem gezielten Filterbefehl:
grep -E 'bash|zsh' /etc/shells
Das Ergebnis bestätigt die Präsenz von /bin/zsh sowie /usr/bin/zsh. Somit erfüllt zsh alle Systemvoraussetzungen für die Zuweisung als Standard-Shell.

Die Standard-Login-Shell via chsh konfigurieren
Zur Absicherung kontrollieren wir zunächst den Namen des aktuell agierenden Accounts:
id -un
Die Rückmeldung weist aus, dass die folgenden Operationen für den Benutzer root ausgeführt werden.

Mithilfe des Parameters -s weisen wir dem Benutzerkonto nun die neue Standard-Shell zu. Anstelle eines statischen Strings binden wir direkt die Befehlssubstitution von which ein:
chsh -s $(which zsh)
Das geräuschlose Beenden ohne Fehlermeldung signalisiert die erfolgreiche Umschreibung auf /usr/bin/zsh.

Hinter den Kulissen modifiziert chsh den entsprechenden Datensatz in der Benutzerdatenbank /etc/passwd. Zur Überprüfung filtern wir den spezifischen Kontoeintrag heraus:
grep "^$(whoami):" /etc/passwd
Das siebte und letzte Feld der Zeile verweist nun explizit auf /usr/bin/zsh. Ab der nächsten interaktiven Sitzung startet das System standardmäßig die neu konfigurierte Shell.

Systeminterna verstehen und bash als Standard wiederherstellen
Nach erfolgreichem Testlauf setzen wir die Konfiguration wieder auf den ursprünglichen Ubuntu-Standard zurück:
chsh -s /bin/bash
Auch diese Rücknahme quittiert das System sauber ohne Fehlerausgabe.

Abschließend verifizieren wir den Datensatz in /etc/passwd erneut:
grep "^$(whoami):" /etc/passwd
Das Zielfeld schließt wieder mit /bin/bash ab. Das Benutzerkonto befindet sich damit verlässlich wieder im ursprünglichen Auslieferungszustand.

Die Anpassung der Standard-Shell mittels chsh ist ein unkomplizierter, aber wirkungsvoller Eingriff in die persönliche Arbeitsumgebung. Dank des Zusammenspiels mit /etc/shells bleibt die Integrität des Systems stets gewahrt, während Entwickler ihre bevorzugte Terminal-Erfahrung flexibel realisieren können.