152 Stimmen

Wie kann man zsh als Anmeldeshell unter Mac OS X (in iTerm) laufen lassen?

Wenn zsh unter Mac OS X als Anmeldeshell eingestellt ist und von iTerm gestartet wird, berücksichtigt zsh nicht, dass es als Anmeldeshell ausgeführt wird, obwohl es als '-zsh' gestartet wird ('-' ist das erste Zeichen von arg[0]), was eigentlich bedeuten sollte, dass es als Anmeldeshell starten sollte.

Wenn ich also die Login-Shell auf bash einstelle, erkennt bash dieses erste '-' in $0 und läuft als Login-Shell, aber zsh tut das nicht, obwohl es so scheint, als ob es das sollte.

Gibt es eine Möglichkeit, entweder zsh dazu zu bringen, das '-' in arg[0] zu erkennen, oder iTerm dazu zu bringen, die Shell mit einem --login Kommandozeilenargument auszuführen?

2 Stimmen

Ich weiß, es ist schon eine Weile her, dass diese Frage gestellt wurde, aber ich bitte Sie, die Antwort von @Harold Putman zu akzeptieren. Sie ist die einzige, die auf die gestellte Frage eingeht.

222voto

Damien Wilson Punkte 4510
chsh -s $(which zsh)

Sie werden nach Ihrem Passwort gefragt, aber sobald Sie Ihre Einstellungen aktualisiert haben, werden alle neuen iTerm/Terminal-Sitzungen, die Sie auf diesem Rechner starten, standardmäßig mit zsh gestartet.

114voto

Harold Putman Punkte 1201

Setzen Sie in iTerm -> Einstellungen -> Registerkarte Profile -> Abschnitt Allgemein den Befehl auf: /bin/zsh --login

/bin/zsh --login

60voto

Ark Punkte 980

Gehen Sie zum Benutzer und Gruppen Fenster des System-Einstellungen -> Wählen Sie den Benutzer -> Klicken Sie auf das Schloss, um Änderungen vorzunehmen (linke untere Ecke) -> Rechtsklick auf den aktuellen Benutzer wählen Erweiterte Optionen... -> Wählen Sie die Anmelde-Shell: /bin/zsh und OK

22voto

hasanain Punkte 754

Der Befehl zum Ändern der Shell beim Start lautet chsh -s <path_to_shell> . Die Standard-Shells in Mac OS X werden innerhalb des bin Wenn Sie also zum Standardverzeichnis wechseln möchten zsh dann würden Sie folgendes verwenden

chsh -s /bin/zsh

Wenn Sie eine andere Version von zsh dann müssen Sie diese Version möglicherweise zu /etc/shells um die nicht standardmäßige Shell-Meldung zu vermeiden. Wenn Sie zum Beispiel die Homebrew-Version von zsh dann müssen Sie hinzufügen /usr/local/bin/zsh in die oben genannte Datei einfügen, was Sie mit einem einzigen Befehl tun können sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells" und führen Sie dann

chsh -s /usr/local/bin/zsh

Wenn Sie das Ganze mit einem einzigen Befehl erledigen wollen, kopieren Sie einfach den folgenden Befehl, wenn Sie zsh bereits installiert haben

sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells" && chsh -s /usr/local/bin/zsh

17voto

Brian Agnew Punkte 260470

Haben Sie versucht, den Shell-Eintrag in Kontoeinstellungen .

Gehen Sie zu den Konteneinstellungen, entsperren Sie das Konto und klicken Sie mit der rechten Maustaste auf Ihr Benutzerkonto für die Erweiterte Einstellungen Dialog. Ihre Shell sollte /bin/zsh sein, und Sie können diesen Aufruf entsprechend bearbeiten (d. h. das Argument --login hinzufügen).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X