不得不说 Apple 的产品真的很耐用,我手里这台2017款的 Macbook Pro,搭载的系统版本还是10.15.7,也就是 macOS Catalina
1. 关于 shell 的介绍
2019年的 WWDC 大会,苹果介绍了 macOS 下一代的版本 Catalina,从 Catalina 开始系统默认的 shell 由 bash 换成了 zsh ,故搭载 Catalina 版本的系统无需额外再安装 zsh
1.1 查看系统自带的 shell
- 输入命令
cat /etc/shells
查看系统已安装的 shell 都有哪些 - 现在知道 shells 都在隐藏目录 bin 下(使用
command+shift+.
命令可以显示或隐藏文件) - 输入指令
echo $SHELL
查看当前 shell 是什么
1.2 设置默认 shell
如果不是 /bin/zsh
,则需要设置当前用户的默认 shell 为 zsh
- 使用指令
chsh -s /bin/zsh
切换至 zsh,需要输入密码并重新打开 - 使用指令
chsh -s /bin/bash
切换回 bash,需要输入密码并重新打开
shell 的配置文件在 finder 中默认都是隐藏文件,可以使用 command+shift+.
指令显示或隐藏文件
-
bash 的配置文件所在路径
bash# ~代表家目录 $ open ~/.bash_profile
-
zsh 的配置文件所在路径
bash# ~代表家目录 $ open ~/.zshrc
2. 安装 iTerm2 及主题配置
2.1 iTerm2官网下载安装
从 iTerm2官网 下载的是 zip 压缩文件,解压后直接双击执行程序文件,或者直接将它拖到 Applications 目录
2.2 使用 homebrew 进行安装
shell
$ brew cask install iterm2
安装好 iTerm2 后打开,iTerm2 的默认外观与 Terminal 差不多,还需要配置美化一下
2.3 配置 iTerm2 的主题
-
打开 iTerm2,点击左上角 iTerm2,选择 Preferences
-
在 Preferences 配置界面,找到 Profiles -> Colors -> Color Presets 下拉列表,选择你喜欢的主题 如果没有你喜欢的,就去访问 iTerm2 主题网站,挑选你喜欢的主题。
-
访问 iTerm2 主题网站下载 zip 包并解压至本地,找到 schemes 文件夹,里面就是 iTerm2 的所有主题了
-
再次点开 Color Presets 下拉列表,选择
Import...
后找到刚才解压的 schemes 文件夹,选择一个 .itermcolors 文件导入,当然你也可以全部导入 -
再次点开 Color Presets 下拉列表,就可以看到刚导入的主题了
3. 安装 Oh My Zsh 及主题配置
打开 Oh My Zsh 官网,点击 install-oh-my-zsh 可以看到有两种安装方式,但都需要科学上网
3.1 via curl
js
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
3.2 via wget
需要先安装 wegt,输入命令行 brew intall wegt
,再执行以下指令
js
sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
3.3 手动安装
如果无法科学上网,会报错 Connection refused
,考虑手动安装,去github 下载,地址是 github.com/ohmyzsh/ohm...
-
找到远程仓库,并 clone 至本地
js$ git clone https://github.com/ohmyzsh.git
-
进入 tool 目录运行 install.sh 脚本
js$ sh install.sh
-
如果安装完提示文件权限不足,尝试以下指令
js$ chmod 755 /usr/local/share/zsh $ chmod 755 /usr/local/share/zsh/site-functions
安装完 Oh My Zsh,默认比较丑
如果不是 zsh,需要把当前用户的默认 shell 设置为 zsh
bash
# 切换至 zsh
$ chsh -s /bin/zsh
3.4 配置 Oh My Zsh 主题
使用下面的指令查看 Oh-My-Zsh 内置的主题,无需再单独下载
bash
ls ~/.oh-my-zsh/themes
这些主题都长啥样?没有预览效果,怎样选嘛?别着急,点击进入 Oh My Zsh 主题列表,这样就能直观地找到自己喜欢的主题了
找到你喜欢的主题,接下来咱们就开始修改主题了
3.4.1 open + source
-
打开 .zshrc,即 zsh 的配置文件
js$ open ~/.zshrc
-
试着将主题
ZSH_THEME="robbyrussell"
修改为"angoster"
,然后 source 一下,即可生效js$ source ~/.zshrc
3.4.2 使用 vim 指令
-
在终端输入以下指令
js$ vim ~/.zshrc
-
键入字母
i
,进入编辑模式 -
光标定位至
ZSH_THEME=
这一行,在双引号内输入你喜欢的主题名称 -
键入
sec
,输入:wq
,退出编辑模式 -
最后依旧是 source 一下配置文件
js$ source ~/.zshrc
3.4.3 随机主题
- 如果你希望每次打开 iTerm2 终端,随机体验一个主题
ZSH_THEME="random"
- 如果你希望在最喜欢的几个候选主题中随机切换
ZSH_THEME_RANDOM_CANDIDATES=("robbyrussell" "agnoster" "powerlevel9k/powerlevel9k")
- 只希望排除几个不喜欢的主题随机
ZSH_THEME_RANDOM_IGNORED=("robbyrussell" "agnoster" "powerlevel9k/powerlevel9k")
当然,最后别忘了要 source 一下
3.4.4 第三方主题
如果你不喜欢 Oh-My-Zsh 的自带主题,可以考虑第三方主题,但需要单独下载,这里推荐zsh官方额外主题和 powerlevel9k 主题(现在已经有 powerlevel10k 主题)github.com/ohmyzsh/ohm...
- 打开上面的链接,拷贝 HTTPS 地址或直接点击 Download ZIP 下载解压
- 使用拷贝的地址自动安装,注意存放的本地目录路径
- 打开 .zshrc 配置文件,修改
ZSH_THEME="powerlevel10k-master/powerlevel10k"
- source 配置文件
- 这里安装 powerlevel10k 时,会安装 Meslo 字体,选择 Yes 就好
3.5 配置 Powerline 字体
iTerm2 修改主题之后,因为某些主题含有特殊字符或表情,可能会出现乱码,如果你刚好又没有安装 powerlevel 主题,那就需要安装 Meslo 字体来解决兼容性问题。
-
打开 Powerline Fonts,拷贝克隆指令
-
打开 iTerm2 终端,输入克隆指令
js$ git clone https://github.com/powerline/fonts.git --depth=1
-
克隆完了,找到 fonts 仓库,可以看到 install.sh 安装文件
-
cd 到 fonts 目录下,输入
./install.sh
,运行 install.sh 文件js$ cd fonts $ ./install.sh
-
安装完字体库之后(可以输入指令
rm -rf fonts
删掉 fonts 文件夹),打开 iTerm2 的 Preferences 配置界面,找到 Profiles -> Text -> Font,选择 "ProFont for Powerline" 字体 -
重启 iTerm2,可以看到问号消失了,还有了箭头
3.6 命令高亮显示插件
zsh-syntax-highlighting 插件可以使 iTerm2 输入的命令有语法高亮显示效果 有两种安装方法
3.6.1 homebrew 安装
-
brew install 安装
bash$ brew install zsh-syntax-highlighting
-
安装完成后,可以看到 homebrew 的程序安装目录里多一个 zsh-syntax-highlighting 文件夹
-
启用 zsh-syntax-highlighting 插件,下面2种方式一样
-
在终端输入以下指令
bashecho "source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
-
打开 .zshrc 配置文件
vim ~/.zshrc
,在最后一行手动添加source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
-
-
退出 .zshrc 配置文件后,记得 source 一下
3.6.2 git 命令安装
-
git 安装
bashgit clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
-
安装完成后,编辑 .zshrc 配置文件,你可以选择输入
open ~/.zshrc
或使用 vim 指令vim ~/.zshrc
-
打开 .zshrc 配置文件后,找到 plugins 配置,在括号内增加 zsh-syntax-highlighting,与其他插件名用空格隔开
bashplugins=( [plugins...] zsh-syntax-highlighting)
-
退出 .zshrc 配置文件后,记得 source 一下
3.7 命令自动建议填充
zsh-autosuggestions 插件可以帮助我们快速补全命令
3.7.1 homebrew 安装
-
brew install 安装
bashbrew install zsh-autosuggestions
-
安装完成后,可以看到 homebrew 的程序安装目录里多一个 zsh-autosuggestions 文件夹
-
启用 zsh-autosuggestions 插件,输入指令
vim ~/.zshrc
打开 .zshrc 配置文件,在最后一行手动添加source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
-
退出 .zshrc 配置文件后,记得 source 一下
3.7.2 git 命令安装
-
git 安装
bashgit clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
-
安装完成后,编辑 .zshrc 配置文件,你可以选择输入
open ~/.zshrc
或使用 vim 指令vim ~/.zshrc
-
打开 .zshrc 配置文件后,找到 plugins 配置,在括号内增加 zsh-autosuggestions,与其他插件名用空格隔开
bashplugins=( [plugins...] zsh-autosuggestions)
-
退出 .zshrc 配置文件后,记得 source 一下
3.8 快速跳转插件
autojump 插件可以快速跳转至你想去的目录
autojump - a faster way to navigate your filesystem
3.8.1 homebrew 安装
-
brew install 安装
bashbrew install autojump
-
安装完成后,可以看到 homebrew 的程序安装目录里多一个 zsh-autojump 文件夹
-
启用 zsh-autojump 插件,输入指令
vim ~/.zshrc
打开 .zshrc 配置文件,在最后一行手动添加source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
-
退出 .zshrc 配置文件后,记得 source 一下
3.8.2 git 命令安装
-
git 安装
bashgit clone git://github.com/wting/autojump.git
-
安装完成后,进入 autojump 目录,执行按照命令
bashcd autojump ./install.py
4. iTerm2 的一些配置
4.1 隐藏用户名与主机名
默认的 用户名@主机名
这种显示方式一般会比较长,在使用过程中很占空间
- 首先使用
whoami
指令查看当前用户名 - 输入指令
vim ~/.zshrc
打开 .zshrc 配置文件,在最后一行手动添加DEFAULT_USER="xx"
,这里的xx
就是上面whoami
指令返回的用户名 - 退出 .zshrc 配置文件后,记得 source 一下,是不是清爽了很多
4.2 设置 Status Bar
说到这个 Status Bar ,我觉得最有用的当属下面这个搜索功能,当我们使用 vim 指令编辑一些配置文件时,想搜索一些关键词,这个搜索框效率大大滴(虽然 command + F
也可以)
怎么配置呢?
- 打开 iTerm2 的 Preferences 配置界面,按照下图1234点击
- 你想要什么功能直接往下拖即可
5. iTerm2 的一些快捷键
bash
# 新建tab
command + T
# 向右切换tab
command +shift + ]
# 向左切换tab
command +shift + [
# 快速切换到第几个页签
command + 数字
# 快速定位到光标处
command + /
# 查看上一条命令
control + p