本文主要讲解如何基于iTerm2 + Oh My Zsh 打造赏心悦目的Mac终端,以及如何配置终端代理等。
下载iTerm2
可以直接去官网下载:https://www.iterm2.com/
安装完成后,在/bin目录下会多出一个zsh的文件。
Mac系统自带很多Shell,可以通过命令查看:
1 | cat /etc/shells |
结果如下:
由于Mac默认使用dash作为终端,所以首先修改为默认使用zsh:
1 | chsh -s /bin/zsh |
这就是iTerm2初始的样子,下面我们来美化它,让它变得好用又好看!
安装Oh my zsh
oh-my-zsh开源地址:https://github.com/robbyrussell/oh-my-zsh
主要有curl
和wget
两种安装方式,可任选一种进行安装:
1 | # curl 安装方式 |
1 | # wget 安装方式 |
安装命令和安装完成后的截图:
安装PowerLine
Powerline是agnoster主题的依赖。具体可以在repo里查询到:
https://github.com/agnoster/agnoster-zsh-theme
安装powerline的方式依然简单,也只需要一条命令:
1 | pip install powerline-status --user |
没有安装pip的同学可能会碰到zsh: command not found: pip。
使用命令安装pip即可:
1 | sudo easy_install pip |
安装后再次执行安装powerline的命令即可。
安装PowerFonts
安装字体库需要首先将项目git clone至本地,然后执行源码中的install.sh。
在你习惯的位置新建一个文件夹,如:~/Desktop/OpenSource/
在此文件夹下执行git clone命令:
1 | # git clone |
执行结果如下:
安装好字体库之后,我们来设置iTerm2的字体,具体的操作是iTerm2 -> Preferences -> Profiles -> Text,在Font区域选中Change Font,然后找到Meslo LG字体。有L、M、S可选,看个人喜好:
安装配色方案
配色方案在使用VIM或Colorful Log时会变得非常有用,同时界面也不会一片黑绿一样死板。
同样使用git clone的方式下载源码进行安装:
1 | cd ~/Desktop/OpenSource |
在打开的finder窗口中,双击Solarized Dark.itermcolors和Solarized Light.itermcolors即可安装明暗两种配色:
再次进入iTerm2 -> Preferences -> Profiles -> Colors -> Color Presets中根据个人喜好选择这两种配色中的一种即可:
安装主题
下载agnoster主题,执行脚本安装:
1 | cd ~/Desktop/OpenSource |
执行上面的命令会将主题拷贝到oh my zsh的themes中:
拷贝完成后,执行命令打开zshrc配置文件,将ZSH_THEME后面的字段改为agnoster。
1 | vi ~/.zshrc |
修改完成后按一下esc调出vi命令,输入:wq保存并退出vi模式。
此时command+Q或source配置文件后,iTerm2变了模样:
安装高亮插件
这是oh my zsh的一个插件,安装方式与theme大同小异:
1 | cd ~/.oh-my-zsh/custom/plugins/ |
这时我们再次打开zshrc文件进行编辑。找到plugins,此时plugins中应该已经有了git,我们需要把高亮插件也加上:
请务必保证插件顺序,zsh-syntax-highlighting必须在最后一个。
然后在文件的最后一行添加:source ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
按一下esc调出vi命令,输入:wq保存并退出vi模式。
执行命令使刚才的修改生效:
1 | source ~/.zshrc |
至此大功告成,请看最终效果图:
背景图片取自微软Surface Studio的4K壁纸(将近12MB大小),非常漂亮,需要的可以自取:
https://pan.baidu.com/s/1LKd4ghGyyNI6UwHhOHvfaA
提取码: snrd
更换背景图片方式:iTerm2 -> Preferences -> Profiles -> Window -> BackGround Image勾选图片即可。
可选择、命令补全
跟代码高亮的安装方式一样,这也是一个zsh的插件,叫做zsh-autosuggestion,用于命令建议和补全。
1 | cd ~/.oh-my-zsh/custom/plugins/ |
找到plugins,加上这个插件即可:
插件效果:
有同学说补全命令的字体不太清晰,与背景颜色太过相近,其实可以自己调整一下字体颜色。
Preferences -> Profiles -> Colors 中有Foreground是标准字体颜色,ANSI Colors中Bright的第一个是补全的字体颜色。
VScode显示异常问题
在经过上面配置后,发现VScode上的终端显示异常,主要原因是前面配置的agnoster主题需要PowerFonts字体的支持。
所以需要在VScode里设置字体(比如:Meslo LG L for Powerline
):
完成后,显示正常:
使用代理
由于GFW的存在,平时用终端安装npm包,或者clone GitHub上的仓库等操作时,经常速度是可怜的10K/s甚至不到的速度,即便开了 SS / V2Ray 等代理服务,貌似在终端上没什么卵用😭(其实主要原因是这些代理服务走的是会话层,而item的命令走在网络层,层级更低,所以流量无法用过代理转发)。
如果你用的是VPN方式代理,那么估计你没有这个烦恼
原因是主流的VPN协议(包括PPTP / L2TP / OPENVPN / SSTP)跑在第二层(数据链路层)和第三层(网络层),基本可以说是全流量代理。
那有没有什么方法可以让iterm上的流量能走代理从而提高下载速度呢?
答案是有的!
下面的操作的前提是你自己有有可用的代理服务
编辑~/.zshrc:
1 | vim ~/.zshrc |
在配置的最下面添加如下代码:
1 |
|
保存更改,执行:
1 | source ~/.zshrc |
接着只要在终端执行openP
就能打开终端代理,执行closeP
就能关闭终端代理
ZSH常用技能
- 自动补全
- ZSH的补全功能非常贴心,按TAB可以补全命令、路径还有参数。
- 杀进程
- Bash杀进程需要先用
ps aux | grep xxx
查找进程的PID,然后才能用kill PID
。ZSH可以直接就kill xxx
后按TAB会显示对应的PID,非常方便。
- Bash杀进程需要先用
- 历史记录
- ZSH的history可以跨session,可以共享,这样就一进行历史记录的受限查询。比如,输入git,再按向上箭头,会搜索前面所有的git命令。
- 通配符搜索
- l .png查找当前目录下所有png文件,l **/.png递归查找。