現象
我每次打開終端或者在終端新建選項卡的時候非常慢,有時候會等5s才能讓你開始輸入字符,而且標題欄會顯示Curl、Python3.7等字樣,但是在斷網情況下卻加載很快。這個會影響效率。
解決思路
我看到curl操作,我猜測肯定有的腳本進行初始化的時候采用了curl操作,但是我不知道是誰,我準備抓包去看看到底是哪個操作,我首先采用的是Charles工具,但是Charles工具采用的是代理的方式,會在你的wifi的頁面也是一個http和socket的代理進行轉發,但是在終端里面,平常的curl不會走到Charles設置的代理,我感覺這個代理是個軟代理,并沒有設置到網卡上面。所以這個方案行不通了。但是我還記得有個強大的代理軟件叫wireshark(大鯊魚),這個抓包工具非常強大,能抓到tcp的每步連接,所以就下載一個看了一下,果真黃天不負有心人,我能抓到一個DNS操作,而且是在每次在終端新建選項卡的時候就會出現api.sdkmain.io
,所以我敢斷定就是這個的問題。所以我先百度了一下sdkmain是什么東西,可惜百度相關的搜索幾乎為0,于是用了Google搜索看到了兩篇關于介紹sdkmain的文章:
SDKMAN——軟件開發工具管理器
sdkmain官網
現在我只想說 百度LJ。
解決
所以就去了~/.bash_profile 和~/.zshrc 里面去查找sdkmain 。其實在~/.zshrc 的里面有兩行關于init的代碼
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
88 # export SDKMAN_DIR="/Users/mi/.sdkman
89 # [[ -s "/Users/mi/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/mi/.sdkman/bin/sdkman-init.s h"
只要注釋掉就可以了,sdkmain這個確實有問題,每次初始化都會進行curl加載,導致加載時間變慢,咱們最終沒有解決問題,因為sdkmain不可以用了,我只是把這個困擾我很長時間的一個問題找到了并且規避了他,所以值得我去記錄一下,之后我會試試怎么把sdkmain進行升級,看看官方是否解決了這個問題。