现象
我每次打开终端或者在终端新建选项卡的时候非常慢,有时候会等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进行升级,看看官方是否解决了这个问题。