%2C%20ohne%20es%20zu%20deinstallieren%3F.png)
Ich habe neue Entwicklungsumgebungen ausprobiert, darunter zsh und oh-my-zsh. Nachdem ich oh-my-zsh installiert habe, startet es standardmäßig auf meinen Terminals (iTerm2 und Terminal) immer mit zsh und mit den Einstellungen von oh-my-zsh. Ich habe mich gefragt, ob es möglich ist, zsh und sein Setup mit oh-my-zsh zu „deaktivieren“ oder die Verwendung von zsh zu beenden, ohne oh-my-zsh deinstallieren zu müssen. Es wäre auch schön zu wissen, wie man sie wieder einschaltet.
Derzeit wechseln meine Terminals automatisch zu zsh (glaube ich) und verwenden oh-my-zsh automatisch. Ich möchte mehr Kontrolle darüber haben und sowohl steuern können, wann zsh verwendet wird als auch wann die oh-my-zsh-Funktionen verwendet werden.
Eine Sache, die mich auch interessiert, ist, woher die Terminalanwendungen wissen, welche Shell beim Start ausgeführt werden soll. Es wäre schön, wenn man das auch steuern könnte!
Es wäre hilfreich, wenn Sie das „Warum“ jedes Befehls, den Sie mir geben, so gut wie möglich erklären würden! :)
Ich verwende OS X. Ich weiß nicht, ob das eine Rolle spielt, aber mir gefallen Antworten besser, die eher auf allgemeinere Unix-Umgebungen anwendbar sind als auf meine eigene.
Antwort1
Der Wortlaut Ihrer Frage ist mehrdeutig, daher kann ich nicht sagen, ob Sie meinen, Sie möchten die Verwendung beenden zsh
oder Sie möchten die Verwendung beenden oh-my-zsh
. Ich werde auf beides eingehen.
Deaktivierenzsh
Führen Sie es einfach aus chsh
und wählen Sie die Shell aus, die Sie zuvor verwendet haben. Wenn Sie nicht wissen, welche Shell Sie zuvor verwendet haben, ist es mit ziemlicher Sicherheit bash
. Dieser Befehl ändert die „Login-Shell“, die Ihrem Benutzer zugeordnet ist. Im Wesentlichen ändert er Ihre Standard-Shell.
Damit die Änderungen wirksam werden, müssen Sie ein neues Terminalfenster öffnen. Wenn dies nicht funktioniert, müssen Sie sich abmelden und erneut anmelden, um Ihre Umgebung neu zu initialisieren.
Nur deaktivierenoh-my-zsh
- Überprüfen Sie, ob es
~/.zshrc.pre-oh-my-zsh
existiert. Wahrscheinlich ist es das. (Diese Datei wurde erstellt, als dasoh-my-zsh
Installationsskript Ihr vorheriges.zshrc
aus dem Weg geräumt hat..zshrc
ist eine Startdatei vonzsh
, ähnlich wie.bashrc
fürbash
.) - Wenn dies der Fall ist, führen Sie aus . Dadurch wird das erstellte Element aus dem Weg
mv ~/.zshrc ~/.zshrc.oh-my-zsh
geräumt , sodass wir das Original wiederherstellen können, indem wir ausführen .oh-my-zsh
.zshrc
mv ~/.zshrc.pre-oh-my-zsh ~/.zshrc
- Wenn es nicht existiert, öffnen Sie es
~/.zshrc
in einem Texteditor. Suchen Sie die Zeile mit dem Inhaltsource $ZSH/.oh-my-zsh
und kommentieren Sie sie aus oder entfernen Sie sie. Dadurch wird die Initialisierung von deaktiviertoh-my-zsh
.
Sie müssen Ihre Shell neu starten, damit die Änderungen wirksam werden.
Antwort2
Um manuell eine neue Standard-Shell festzulegen, führen Sie chsh -s /my/ new/shell aus, z. B. chsh -s /bin/bash. Öffnen Sie anschließend einfach Ihre Shells erneut.
Antwort3
Da es in der Antwort von @Gilles etwas versteckt ist, ist dies die schnelle Möglichkeit, zsh ohne Konfiguration zu laden, z. B. .zshrc .zshenv usw.
zsh -f
Dies ist nützlich, wenn Sie testen möchten, ob irgendetwas in Ihrer Konfiguration die Funktion einer zsh-Funktion verhindert.
Antwort4
Sie können zsh anweisen, seine benutzerspezifischen Konfigurationsdateien aus einem anderen Verzeichnis zu laden, indem Sie die UmgebungsvariableZDOTDIR
bevor Sie zsh starten.
Wenn Sie zsh starten möchten, ohne Ihre Konfigurationsdateien zu laden, legen Sie ZDOTDIR
ein nicht vorhandenes Verzeichnis fest. Wenn Sie Systemkonfigurationsdateien (außer /etc/zshenv
) überspringen möchten, können Sie ausführen zsh -f
. Wenn Sie Systemkonfigurationsdateien überspringen, aber die benutzerspezifischen Dateien ausführen möchten, führen Sie aus zsh -d
.
Wenn Sie beispielsweise oh-my-zsh testen möchten, ohne es als Standard festzulegen, legen Sie die Datei „ .zshrc
from oh-my-zsh“ nicht in Ihrem Home-Verzeichnis ab. Legen Sie sie stattdessen an einer anderen Stelle ab, z. B. in ~/.oh-my-zsh
, und führen Sie sie dann aus ZDOTDIR=~/.oh-my-zsh zsh
, wenn Sie oh-my-zsh verwenden möchten.
Terminalanwendungen führen die Shell aus, die durch die SHELL
Umgebungsvariable angegeben wird. Wenn diese Variable nicht gesetzt ist, führen sie die in der Benutzerdatenbank angegebene Login-Shell aus ( /etc/passwd
). Sie können eine andere Anwendung anfordern, wenn Sie einen Terminalemulator starten, z . B. xterm -e fish
.