终端(Terminal)是一个命令行实用工具,在计算机早期,它曾被用作计算机的操作系统(没有图形界面)。当时最流行的操作系统是MS-DOS(后来演变成Windows),也就是今天的Powershell。Windows上的Powershell与macOS(早期称System、Mac OS X、OS X)和Linux操作系统的UNIX(Shell)有很大不同,导致Windows并不受程序员的青睐,也有很多终端工具不被支持,例如Homebrew(现在已有Scoop替代,不过支持的软件数量很少)、wget等。
Mac上的预装终端功能强大,基本上不亚于著名终端iTerm。它在设置中可以调节终端主题、终端启动等专业设置。
Zsh全称为Z Shell,是macOS和Linux上的一个终端。与同类软件(例如Bash、Sh、Csh等)不同的是,Zsh的功能极为强大,预装了很多实用的终端软件,这也就是为什么后面我们要介绍的GitHub开源项目Oh-My-Zsh选择基于Zsh的原因。
.zshrc是Mac及Linux的Zsh终端的一个必要文件,默认为隐藏,Mac中可以通过“⌘ + ⇧ + .”来显示(可以用文本编辑打开)。它是Zsh的一个永久配置文件,跟它相像的还有.zprofile临时配置。如果你不想打开配置文件,可以用终端命令“nano ~/.zshrc”或“vim ~/.zshrc”来编辑。注意,当你用它们来编辑之后,一定要输入命令“source ~/.zshrc”或者重启终端,这样才能应用更改。
Oh-My-Zsh是GitHub上面的一个备受欢迎的项目,是美化Zsh的不二选择。建议搭配iTerm使用。现在它已经发展成为了一个庞大的项目,经过更新迭代,现在已经有了数百种主题以及数百个扩展。这也是我后面要讲到的内容。
官方网址:https://ohmyz.sh
iTerm是一个macOS上的第三方终端。它功能十分强大,界面清爽干净,不过只支持英文。
根据官网的安装方法,我们可以知道,它跟Homebrew一样,克隆的也是GitHub上面的内容。如果你不介意速度,或者网络在国外,建议使用以下脚本:
# Using curl
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
当终端上出现Oh-My-Zsh的彩色字样时,就表示安装成功了。
跟Homebrew一样,国内也有人做了Oh-My-Zsh的国内安装版,源在Gitee的mirrors上。不过可能得有些麻烦:
# Using wget
wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh
找到以下部分:
# Default settings
ZSH=${ZSH:-~/.oh-my-zsh}
REPO=${REPO:-ohmyzsh/ohmyzsh}
REMOTE=${REMOTE:-https://github.com/${REPO}.git}
BRANCH=${BRANCH:-master}
把
REPO=${REPO:-ohmyzsh/ohmyzsh}
REMOTE=${REMOTE:-https://github.com/${REPO}.git}
替换为
REPO=${REPO:-mirrors/ohmyzsh}
REMOTE=${REMOTE:-https://gitee.com/${REPO}.git}
编辑后保存, 运行安装即可。 (运行前先给install.sh权限)
修改仓库地址:
cd ~/.oh-my-zsh
git remote set-url origin https://gitee.com/mirrors/oh-my-zsh.git
git pull
Oh-My-Zsh现在已经拥有数百种主题,可美化终端。你可以通过编辑 .zshrc的方式来设置主题。
其中,我推荐这些主题:
Robbyrussell: Oh-My-Zsh的默认主题,更适合搭配亮色背景,界面清爽、干净。
Agnoster: Oh-My-Zsh的暗色默认主题,适合搭配暗色背景,使用了ANSI前景色,不过得额外安装字体,比较麻烦。
Random: Oh-My-Zsh的随机主题,每次运行Zsh时它都会随机选择一个主题,并显示出“[oh-my-zsh] Random theme ‘xxx’ loaded“的字样。
如果再配上iTerm以及Solarized主题,那就更不错了。
和主题一样,Oh-My-Zsh也拥有丰富的扩展库,可提高生产力。你同样可以通过编辑 .zshrc的方式来添加扩展。找到“plugins=(xxx xxx xxx)”的那一行,你就可以添加你喜欢的扩展了。其中预装的我推荐git、macOS、z、emoji、emotty。还有一些比较好的插件,不过得自行搜索安装:zsh-autosuggestions、zsh-syntax-highlighting、autojump等等。