Ich habe neue Entwicklungsumgebungen ausprobiert, einschließlich 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 zu beenden, ohne oh-my-zsh deinstallieren zu müssen. Es wäre auch schön zu wissen, wie man sie wieder einschaltet.
Momentan gehen meine Terminals automatisch in zsh (glaube ich) und benutzen das oh-my-zsh automatisch. Ich möchte mehr Kontrolle darüber haben und kann beides kontrollieren, wenn das zsh verwendet wird und wenn die oh-my-zsh-Funktionen verwendet werden.
Eine Sache, die mich auch interessiert, ist, wie die Terminalanwendungen wissen, welche Shell beim Start gestartet werden soll. Das wäre schön, auch kontrollieren zu können!
Wenn Sie so viel wie möglich über das "Warum" jedes Befehls erklären, den Sie mir geben, wäre das nützlich! :)
Ich arbeite unter OS X. Ich bin mir nicht sicher, ob das wichtig ist, aber ich mag Antworten, die allgemeiner auf Unix-Umgebungen anwendbar sind, eher auf meine eigenen.
zsh
? oderoh-my-zsh
? welche?Antworten:
Der Wortlaut Ihrer Frage ist mehrdeutig, daher kann ich nicht sagen, ob Sie die Verwendung beenden
zsh
möchten oder nichtoh-my-zsh
. Ich werde beide behandeln.Deaktivieren
zsh
Führen
chsh
Sie einfach die zuvor verwendete Shell aus und wählen Sie sie aus. Wenn Sie nicht wissen, welche Shell Sie zuvor verwendet haben, ist dies mit ziemlicher Sicherheit der Fallbash
. Dieser Befehl ändert die "Login-Shell", die Ihrem Benutzer zugeordnet ist. Im Wesentlichen ändert es Ihre Standard-Shell.Sie müssen ein neues Terminalfenster öffnen, damit die Änderungen wirksam werden. Wenn dies nicht funktioniert, müssen Sie sich abmelden und erneut anmelden, um Ihre Umgebung neu zu initialisieren.
Nur deaktivieren
oh-my-zsh
~/.zshrc.pre-oh-my-zsh
vorhanden. Das tut es wahrscheinlich. (Diese Datei wurde erstellt, als dasoh-my-zsh
Installationsskript Ihre vorherige.zshrc
aus dem Weg.zshrc
räumte . Es handelt sich um eine Startdatei vonzsh
, ähnlich wie.bashrc
fürbash
.)mv ~/.zshrc ~/.zshrc.oh-my-zsh
. Dies wird dasoh-my-zsh
-created.zshrc
aus dem Weg räumen , so dass wir das Original wiederherstellen könnenmv ~/.zshrc.pre-oh-my-zsh ~/.zshrc
.~/.zshrc
in einem Texteditor. Suchen Sie die Zeile mit der Aufschriftsource $ZSH/.oh-my-zsh
und kommentieren Sie sie aus oder entfernen Sie sie. Dies deaktiviert die Initialisierung vonoh-my-zsh
.Sie müssen Ihre Shell neu starten, damit die Änderungen wirksam werden.
quelle
ZSH Config Switching
Wenn Sie verschiedene zsh Konfiguration Frameworks (oh-my-zsh, zprezto usw.) testen wollen und zwischen ihnen wechseln, Ihre beste Wette ist mit symbolischen Links für
~/.zsh
,~/.zshrc
,~/.zlogin
,~/.zlogout
,~/.zprofile
, und~/.zshenv
. Möglicherweise möchten Sie für jedes Framework ein Shell-Skript erstellen, um diese Symlinks für einen schnelleren Wechsel zu erstellen.Legen Sie Ihre Framework-Konfigurationen in eigenen Ordnern ab. Für jedes Framework.
~/.zsh
, dann~/.zsh
. Entweder~/.zsh
Symlink;rm ~/.zsh
, oder~/.zsh
Ordner.mv ~/.zsh ~/.zsh.backup
mv ~/.zsh ~/.oh-my-zsh
.Erstellen Sie anschließend für jedes Framework ein Shell-Skript, um die erforderlichen Symlinks zu erstellen. Hier ist ein Beispiel für zprezto, da ich es bereits benutze.
Dieses Skript ist ziemlich einfach und basiert auf der Tatsache, dass alle meine Symlinks nach dem gleichen Muster organisiert sind. Sie können das Entfernen kopieren und einfügen und nach der Schleife Linien für Symlinks erstellen , die nicht dem Muster folgen.
Ist das erledigt, Verwendung
~/bin/use-zprezto
--oder~/bin/use-whatever
--to Schalter zwischen zsh Frameworks.Beachten Sie, dass Änderungen nur in neuen zsh-Shells wirksam werden, nicht in vorhandenen Shells.
Shell-Umschaltung
Es ist ein bisschen gefährlich, aber wenn Sie so geneigt sind, können Sie einen Symlink für Ihren Shell-Befehl verwenden und den Symlink als Ihre Standard-Shell festlegen. Sie können dann der
use-*
obigen Skriptmethode folgen , um Ihre Standard-Shell zu ändern.Als Beispiel mit zsh ...
Dies ist gefährlich, weil Sie sich nicht unter einem Benutzer anmelden können, wenn die in gespeicherte Shell
/etc/passwd
kein gültiges Programm ist. Sie können sich also aus Ihrem Konto ausschließen, wenn Sie nicht vorsichtig sind. dh Ihr~/.shell
Symlink ist kaputt oder verweist nicht auf ein interaktives Programm. Sie können dies gerne mit einem Benutzerkonto versuchen, dies wird jedoch für Ihrroot
Konto NICHT EMPFOHLEN .Wenn Sie trotzdem fortfahren möchten, dann
quelle
chsh -s / bin / bash
Um eine neue Standard-Shell manuell festzulegen, führen Sie chsh -s / my / new / shell aus, z. B. chsh -s / bin / bash. Dann öffnen Sie einfach Ihre Muscheln.
quelle
Sie können zsh anweisen, die benutzerspezifischen Konfigurationsdateien aus einem anderen Verzeichnis zu laden, indem Sie die Umgebungsvariable
ZDOTDIR
vor dem Starten von zsh festlegen.Wenn Sie zsh starten möchten, ohne Ihre Konfigurationsdateien zu laden, legen Sie
ZDOTDIR
ein nicht vorhandenes Verzeichnis fest. Wenn Sie Systemkonfigurationsdateien (abgesehen von/etc/zshenv
) überspringen möchten , können Sie sie ausführenzsh -f
. Wenn Sie Systemkonfigurationsdateien überspringen möchten, aber die benutzerspezifischen Dateien ausführen möchten, führen Sie diese auszsh -d
.Wenn Sie beispielsweise oh-my-zsh testen möchten, ohne es zur Standardeinstellung zu machen, legen Sie das
.zshrc
von oh-my-zsh nicht in Ihrem Home-Verzeichnis ab. Stellen Sie es stattdessen woanders hin, z. in~/.oh-my-zsh
, und führenZDOTDIR=~/.oh-my-zsh zsh
Sie dann aus, wenn Sie oh-my-zsh verwenden möchten.Terminalanwendungen führen die durch die
SHELL
Umgebungsvariable angegebene Shell aus . Wenn diese Variable nicht gesetzt ist, führen sie die in der Benutzerdatenbank (/etc/passwd
) angegebene Anmeldeshell aus . Sie können eine andere Anwendung anfordern, wenn Sie einen Terminalemulator starten, zxterm -e fish
.quelle
Da es in @Gilles ein bisschen versteckt ist, antworten Sie auf den schnellen Weg, zsh ohne jegliche Konfiguration zu laden, zB .zshrc .zshenv etc
Dies ist nützlich, wenn Sie testen möchten, ob irgendetwas in Ihrer Konfiguration ein Feature von zsh daran hindert, zu funktionieren.
quelle