前言
现在,越来越多的人趋向使用ZSH取代(Linux)原本的Bash作为自己的终端Shell。的确,ZSH才是适用于现代的Shell:
- 更丰富的命令提示
- 更鲜明的演示标记
- 更强大的插件支持
什么是ZSH
回答什么是ZSH前,我们先解释什么是Bash:
Bash最早在1989年发布第一个正式版本(2020年12月7日还发布了最新稳定版本5.1)。是Shell的一个版本。
而ZSH和Bash一样,ZSH也是终端内的一个命令行解释器(Shell),
具体表现为其作用是用户输入一条命令,Shell 就立即解释执行一条。不局限于系统、语言等概念、操作方式和表现方式等。比如:我们使用的cd
、wget
、curl
和mount
等命令。
传统的shell(如:Bash),命令和显示的文字以单色为主;而ZSH不仅支持彩色字体,还支持命令填充:
macOS安装ZSH
macOS安装ZSH过于简单,我们先讲解。
默认情况下:
- macOS High Sierra(mac10.13系统)系统自带ZSH
- macOS Catalina(mac10.15系统)系统开始,默认使用ZSH。
所以,如果你的系统,是macOS Catalina以后的版本,可以直接跳过此步骤(下列的激活ZSH也跳过)
激活ZSH
旧版本的macOS也是有自带zsh,你可以在终端内输入:
cat /etc/shells
可以看到,有一个/bin/zsh
选项,说明已安装
如果没有/bin/zsh
选项,可能是你的macOS版本实在是太旧,可以使用Homebrew去安装ZSH:
brew install zsh
有了/bin/zsh
选项后,我们设置为默认Shell,然后输入密码,最后,重启终端,就是ZSH了。
chsh -s /bin/zsh
配置Oh-my-zsh
1. 什么是Oh-my-zsh
ZSH的功能极其强大,只是配置过于复杂,起初只有极客才在用。后来,一些极客为了让更多人受益,开发了Oh-my-zsh这个插件,用来简化zsh的配置,让zsh更加容易上手。
2. 安装Oh-my-zsh
Oh-my-zsh十分简单,可以看看项目地址:https://github.com/ohmyzsh/ohmyzsh。
官方配置非常简单,但是因为项目官方脚本在GitHub的原因,国内访问可能有点困难,为此给大家提供三个方法配置。
官方配置
Linux/Mac打开终端,输入官方提供的脚本:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
为了保证脚本能顺利运行,你的Linux/Mac
服务器需要:
- 提前安装
git
、curl
- 可以成功连接GitHub
- 如果有
~/.zshrc
文件,最好提前备份
如果上述方式下载不下来,可以自己用git clone(有的时候git clone 不下来,可以多试几次)
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh 失败了
手动配置
其实,手动配置重复的内容就是我写的脚本配置:
- 在oh-my-zsh的github主页,手动将zip包下载下来。
- 将zip包解压,拷贝至
~/.oh-my-zsh
目录。 - 执行
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
或手动复制~/.oh-my-zsh/templates/zshrc.zsh-template内文件内容到~/.zshrc内。(如果没有~/.zshrc文件,可以手动创建) - 重启终端或终端输入
source ~/.zshrc
使配置生效
不是很建议普通用户使用手动配置
去配置Oh-my-zsh。
配置主题和内置插件:
vim ~/.zshrc,然后添加以下两行(注意注释已存在的)
ZSH_THEME="alanpeabody"
plugins=(git web-search jsontools z vi-mode zsh-syntax-highlighting zsh-autosuggestions)
其中zsh-syntax-highlighting zsh-autosuggestions是第三方插件,需要自己git clone
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting