
Ich habe meine Standard-Shell in Ubuntu von Bash auf Zsh geändert. Ich habe die inhttp://github.com/sorin-ionescu/preztound ausgeführt chsh -s zsh
. Danach konnte ich mich bei keiner Shell mehr anmelden, da diese beim Versuch, mich anzumelden, sofort auftaucht. Ich habe es vom Gnome-Terminal oder von xterm aus versucht und habe versucht, mich von tty1 ( Alt+ Ctrl+ F1) aus anzumelden. Sie schließt sich, sobald ich versuche, sie zu öffnen.
Antwort1
Um wieder in das System zu gelangen, können Sie im Einzelbenutzermodus booten, indem Sie in GRUB die Zahl 1 an das Ende der Linux-Kernelzeile anhängen. Die Vorgehensweise hierfür wird in diesem U&L Q&A mit dem Titel grob beschrieben:Kann ich einen Prozess als Root starten, ohne die Login-Shell von Root zu starten?.
Sobald Sie dies getan haben, werden Sie als Root zu einer Eingabeaufforderung weitergeleitet, von der aus Sie die an Ihrer Shell vorgenommenen Änderungen rückgängig machen können. Dadurch wird Ihr System wieder ordnungsgemäß funktionsfähig.
Ab hier möchten Sie wahrscheinlich chsh
Ihren Benutzernamen verwenden und nicht die Methode, die Sie zuvor verwendet haben.
Antwort2
Melden Sie sich als an root
. Überprüfen Sie, ob es zsh
installiert ist. Wenn nichtapt-get install zsh
Antwort3
Es gibt zwei Gründe, warum Sie möglicherweise kein Terminal öffnen oder sich im Textmodus nicht anmelden können: Entweder existiert Ihre Shell (wie in der Benutzerdatenbank aufgezeichnet) nicht oder die Konfigurationsdatei Ihrer Shell stürzt aufgrund eines schwerwiegenden Fehlers ab.
Wenn chsh
dies erfolgreich war, existiert Ihre Shell ( chsh
überprüft, ob die Shell in einer Liste zulässiger Pakete enthalten ist, und die Paketverwaltung von Ubuntu aktualisiert die Liste basierend auf den installierten Paketen). Sofern Sie das zsh
Paket danach nicht entfernt haben chsh -s zsh
(in diesem Fall sollten Sie es einfach neu installieren), können wir diesen Fall ausschließen.
Eine der Konfigurationsdateien, die Sie von Prezto erhalten haben, muss also fehlerhaft oder falsch installiert sein oder es fehlen wichtige Abhängigkeiten. Räumen Sie diese Konfigurationsdateien aus dem Weg. Starten Sie einen Dateimanager wie Nautilus und benennen Sie die folgenden Dateien in Ihrem Home-Verzeichnis um (falls sie vorhanden sind): .zlogin
, .zlogout
, .zprofile
, .zshenv
und .zshrc
. Wenn es sich um symbolische Links handelt, entfernen Sie einfach die symbolischen Links und erstellen Sie sie später neu.
Sobald Sie das getan haben, können Sie ein Terminal öffnen und zsh mit seiner Standardkonfiguration verwenden. Wenn Sie zsh zum ersten Mal ausführen, wird die neue Benutzeroberfläche angezeigt (Sie müssen sie bereits gesehen haben, wenn Sie die Anweisungen inhttps://github.com/sorin-ionescu/prezto).
Ändern Sie Ihre Shell vorübergehend zurück zu bash ( chsh -s bash
), bis Sie das Problem mit Prezto gelöst haben. Öffnen Sie ein Terminal (das jetzt bash ausführt) und führen Sie aus zsh
. Verschieben Sie die .z*
Dateien zurück an ihren Platz oder erstellen Sie die symbolischen Links gemäß Schritt 3 neu. Führen Sie es jetzt zsh
in diesem offenen Terminal aus und sehen Sie, welche Fehler auftreten. Wenn die Fehler nicht informativ sind, führen Sie es aus, zsh -x
um eine Debug-Verfolgung zu erhalten.
Sobald Sie das Problem gelöst haben und zsh startet, führen Sie es chsh -s zsh
erneut aus.