iTerm / Terminal OS X öffnet eine Shell nur langsam

13

Ich verwende OS X 10.8 und in letzter Zeit stelle ich fest, dass iTerm2 beim Öffnen einer neuen Shell manchmal recht langsam sein kann. Es dauert ungefähr 5 Sekunden, bis ich etwas tun kann. Könnte nicht viel scheinen, aber ich arbeite viel in der Shell, so dass es ziemlich nervig werden kann.

Ich benutze ZSH mit oh-my-zsh.

Ich habe Terminal ausprobiert, oh-my-zsh deinstalliert, alles Unnötige aus den Startdateien (.zshenv, .zlogin, .zprofile, .zshrc, .zlogout) gelöscht und die ASL-Dateien in / var / log / asl und gelöscht Obwohl es ein wenig sinkt (wie 0,20s), gibt es nichts, was es auf ziemlich augenblicklich oder sogar unter 3,0s reduziert.

Hat jemand eine andere Idee?

Dimitri
quelle
Verwandte Fragen: 31403 , 41743 , 236953 , 444614
Lri
Haben Sie versucht, den Befehl für neue Shells in so etwas wie zu ändern login -pfq username /usr/local/bin/zsh?
Lri
@ lauri-ranta: Versuchte alles in diesen anderen Threads, aber ohne Erfolg. Der Versuch "login -pfq Benutzername / usr / local / bin / zsh" hat ebenfalls nichts gebracht.
Dimitri
Um zu sehen, ob es sich um Shell- oder iTerm2 handelt: Wie lange dauert es, eine neue Shell zu starten? (durch Eingabe zshin ein bereits geöffnetes Terminalfenster)?
Matteo
hinzufügen zu .zshrc:[ $((RANDOM & 1)) -eq 0 ] && do not sleep 5
theoden8

Antworten:

18

Login löschen /var/log/asl, dh

rm -rf /var/log/asl/*.asl
Neo
quelle
1
Können Sie erklären, WARUM iterm von diesem Protokollordner verlangsamt wird und ob etwas getan werden kann, um dieses Problem tatsächlich zu verhindern?
David
2
@david Sie können diesen Link überprüfen, um zu verstehen, warum neue Registerkarten langsam sind. apple.stackexchange.com/a/71930/89583
Archan Mishra
Wow --- vielen Dank --- für iterm2 scheint es die Antwort zu sein, den Vorschlag am Ende dieser Seite (/ bin / bash -il) von dem Typ zu verwenden, der auf -1 herabgestimmt wurde. Funktioniert super.
David
12

Gemäß dem obigen Kommentar von Archan Mishra besteht die Antwort für iTerm 2 darin, einen benutzerdefinierten Terminalbefehl einzurichten, /bin/bash -il der die Suche in den System-ASL-Protokollen vollständig umgeht. iterm2 wird sofort geöffnet.

David
quelle
0

Dies sind die Schritte, mit denen ich die Startgeschwindigkeit meiner Shell optimiert und die Verzögerung bei der Ausführung von Befehlen verringert habe.

  1. Wenn Sie powerlevel9k verwenden, empfehle ich, sofort auf powerlevel10k umzuschalten .

Powerlevel10k ist ein Thema für Zsh. Es betont Geschwindigkeit, Flexibilität und Out-of-the-Box-Erfahrung. Es ist eine Neuimplementierung des beliebten Powerlevel9k zsh-Themas. Es sieht bei gleicher Konfiguration genauso aus, macht die Eingabeaufforderung jedoch 10-100-mal schneller. Es ist auf jeder Ebene des Stacks optimiert, bis hin zur Verwendung einer gepatchten Version von libgit2, mit der ein Repo viermal schneller als das Original gescannt werden kann. Es kann die Zsh-Startverzögerung beseitigen, auch wenn es nicht durch ein Thema mit Funktionen wie Instant Prompt verursacht wird.

  1. Gehen Sie zu Einstellungen -> Profile -> Allgemein -> Befehl und wählen Sie die Option Befehl anstelle der Anmeldeshell und fügen Sie den folgenden Befehl in das Feld daneben ein.
login -pfq username /usr/local/bin/zsh -il

Die letzte Anmeldezeit wird nicht angezeigt, wenn Sie jetzt einen neuen Tab starten. Wenn zsh am Speicherort / usr / local / bin / zsh nicht vorhanden ist, müssen Sie zsh mithilfe von Brew installieren. Das von mac bereitgestellte Standard-zsh befindet sich unter / usr / bin / zsh und verwendet möglicherweise eine ältere Version wie 5.2, die bei Verwendung mit iTerm oder oh-my-zsh zu langsamer Geschwindigkeit führen kann.

  1. Führen Sie den folgenden Befehl im Terminal aus, um das Einfügen in zsh zu beschleunigen.
mkdir -p $ZSH_CUSTOM/lib && touch $ZSH_CUSTOM/lib/misc.zsh
  1. Punkt 2 sollte bereits für langsame Anmeldezeiten sorgen. Führen Sie jedoch aus Sicherheitsgründen den folgenden Befehl aus
mkdir -p .hushlogin
  1. Möglicherweise verwenden Sie unzählige Plugins, die langsam sind und Verzögerungen verursachen. Sie müssen auf diese Plugins hinweisen und sie entfernen. Dazu benötigen Sie eine zsh-Profilerstellung. Folgen Sie diesem Link für weitere Details -

https://stevenvanbael.com/profiling-zsh-startup

Shubham Jain
quelle
Willkommen bei Super User! Bitte posten Sie nicht dieselbe Antwort auf mehrere Fragen. Wenn die gleichen Informationen wirklich beide Fragen beantworten, sollte eine Frage (normalerweise die neuere) als Duplikat der anderen geschlossen werden. Sie können dies anzeigen, indem Sie abstimmen, um es als Duplikat zu schließen, oder, wenn Sie nicht genug Ruf dafür haben , eine Flagge hissen, um anzuzeigen, dass es sich um ein Duplikat handelt. Passen Sie andernfalls Ihre Antwort auf diese Frage an und fügen Sie dieselbe Antwort nicht einfach an mehreren Stellen ein.
DavidPostill