質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

解決済

1回答

1697閲覧

macのシェルの起動がとても遅い

UpaZiro

総合スコア17

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

0クリップ

投稿2023/02/08 12:10

実現したいこと

ターミナルの起動が遅い(5分以上かかる)ので、どうにかしたい。

前提

チップ : Apple M1
macOS : 13.0.1(22A400)

発生している問題・エラーメッセージ

シェルを起動した際に、以下のような表示がされた状態で数分、実行待ちになってしまいます。
ウィンドウの上部には「ターミナル ー -zsh ▷ ng completion script ー 80×24」と表示されていて、この処理の実行待ちなのだと思います。

zsh

1Last login: Wed Feb 8 20:47:01 on ttys005 2Node.js version v19.6.0 detected. 3Odd numbered Node.js versions will not enter LTS status and should not be used for production. For more information, please see https://nodejs.org/en/about/releases/. 4/dev/fd/12:18: command not found: compdef

試したこと

angular cliを最新にするために以下のコマンドを実行

zsh

1npm uninstall -g @angular/cli 2npm cache verify 3npm install -g @angular/cli@latest

補足情報(FW/ツールのバージョンなど)

  • ネットに接続を切った状態だと、この現象は起こりません。ネットに接続した場合、こういった状況に陥ります。wi-fi環境を変えても同様だったので回線速度とかでは無さそうです。
  • 環境に関しては以下の通りです。

zsh

1npm -v 29.3.1 3 4 5node -v 6v18.14.0 7 8 9ng version 10 11 _ _ ____ _ ___ 12 / \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _| 13 / △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | | 14 / ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | | 15 /_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___| 16 |___/ 17 18 19Angular CLI: 15.1.4 20Node: 18.14.0 21Package Manager: npm 9.3.1 22OS: darwin arm64 23 24Angular: 25... 26 27Package Version 28------------------------------------------------------ 29@angular-devkit/architect 0.1501.4 (cli-only) 30@angular-devkit/core 15.1.4 (cli-only) 31@angular-devkit/schematics 15.1.4 (cli-only) 32@schematics/angular 15.1.4 (cli-only) 33 34 35brew -v 36Homebrew 3.6.21 37Homebrew/homebrew-core (git revision fd1219bb5bc; last commit 2023-02-08)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AbeTakashi

2023/02/08 13:22

~/.zshrcとかでなにかの特別な処理をされてるということはないのですか? ターミナル起動時にAngularの処理(ng completion?)とかが動いてるのなら、なにかしらその設定が入ってると思うのですが。まずはその辺を確認されたら良いのではないかと思いますし、分からなければそれらの起動時に読み込むファイルの内容(~/.zshrcとか)を質問文に追記されれば回答がでてくるかもしれません。
CHERRY

2023/02/08 13:31

> シェルを起動した際に、以下のような表示がされた状態で数分、実行待ちになってしまいます。 > ネットに接続を切った状態だと、この現象は起こりません。 コマンドが外部のサーバに接続に行って、接続できない場合にタイムアウトを待っているような動作ですね。 .zshrc 等に記載された内容を 一つずつ実行してみて、時間がかかる処理がどれか特定できないでしょうか。
take88

2023/02/08 15:13

他の方がしてきされているように、.zshrc を確認してもらうのが良いと思います。よくわからなければ、~/.zshrc の内容を、質問に追記してみてください。あと、.zshrc の処理時間の内訳を調べてみると良いかもしれません。やり方は、コメントには書ききれないので回答欄に書いておきます。
UpaZiro

2023/02/10 09:05

みなさんありがとうございます! コマンド関連の話が苦手なので困窮を極めていましたが、解決しました!!
guest

回答1

0

ベストアンサー

~/.zshrcに「source <(ng completion script)」という行があると思います。ターミナルに表示されている文字列はこれのことでしょうね。

ほかの方が指摘されているように.zshrcの確認と、どこが遅いのか解析してみたい気がします。

zshにはzprofというプロファイリングツールがありますので、それを使って、どこが遅いのか調べてみてはどうでしょうか。

手元にMacがないので試せないんですが、~/.zshenv と ~/.zshrc にそれぞれ次の内容を追記すれば良いようです。

# ~/.zshenv に追加 zmodload zsh/zprof && zprof
# ~/.zshrc の末尾に追加 if (which zprof > /dev/null 2>&1) ;then zprof fi

この状態で、zsh を再起動すると測定結果が表示されます。

exec $SHELL -l #zshを再起動

実行結果は次のような感じです。

num calls time self name ----------------------------------------------------------------------------------- 1) 2 138.65 69.33 55.26% 92.87 46.44 37.02% nvm 2) 1 227.28 227.28 90.59% 88.63 88.63 35.33% nvm_auto 3) 1 36.40 36.40 14.51% 30.69 30.69 12.23% nvm_ensure_version_installed 4) 1 15.65 15.65 6.24% 8.61 8.61 3.43% compinit 5) 1 9.32 9.32 3.71% 8.35 8.35 3.33% nvm_die_on_prefix 6) 2 7.36 3.68 2.94% 7.36 3.68 2.94% compdef 7) 2 7.04 3.52 2.81% 7.04 3.52 2.81% compaudit 8) 1 5.71 5.71 2.28% 5.71 5.71 2.28% nvm_is_version_installed 9) 4 0.97 0.24 0.39% 0.97 0.24 0.39% nvm_npmrc_bad_news_bears 10) 17 0.49 0.03 0.20% 0.49 0.03 0.20% bind2maps 11) 1 0.11 0.11 0.04% 0.06 0.06 0.02% complete 12) 1 0.06 0.06 0.02% 0.06 0.06 0.02% nvm_has 13) 1 227.30 227.30 90.60% 0.02 0.02 0.01% nvm_process_parameters 14) 1 0.01 0.01 0.01% 0.01 0.01 0.01% bashcompinit 15) 1 0.01 0.01 0.00% 0.01 0.01 0.00% nvm_is_zsh

色々出力されますが、call が実行回数、timeの最初の1つが時間(たぶん、ミリ秒)です。

投稿2023/02/08 15:17

編集2023/02/10 11:20
take88

総合スコア1351

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

UpaZiro

2023/02/10 09:04

``` # Load Angular CLI autocompletion. source <(ng completion script) export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion ``` を、 ``` # Load Angular CLI autocompletion. # source <(ng completion script) export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion ``` のように書き換えると問題が解決しました! ネットワーク関係なかったのでしょうか…? .zshrcの中身を見てみるというアドバイスが効きました!! ありがとうございました!
take88

2023/02/10 11:18 編集

@UpaZiro 解決したようで良かったです。 ちょっと訂正させてもらいますが、ネットワークを切断して実行すると、ng completion script が遅延する現象を私の環境でも確認できました。なので、なにかネットワーク通信を行ってるっぽいですね。 その部分の撤回します。回答も修正させていただきます。
UpaZiro

2023/02/11 01:20

ありがとうございます!本当に助かりました汗
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問