使用终端有三个基本工具:zsh,vim,tmux。之后会逐个对这个三个工具进行介绍。
熟悉Linux系统或者Mac系统的,对于「bash」都不会陌生。bash是用户和系统交互的最基本的脚本环境。而zsh(Z shell)是bash的一个替代品,他对于bash有了很多的优化,无论是使用命令,外观,体验,能够让用户更方便顺畅的使用Terminal。
本文主要会介绍zsh,oh-my-zsh的安装,基本环境的配置,以及一些实用的插件。主题风格的配置之后会单独介绍。
zsh主要是通过oh-my-zsh的拓展,实现了很多好用的功能。
github网址:ohmyzsh/ohmyzshgithub.com/ohmyzsh/ohmyzsh
安装zsh,oh-my-zsh
- Mac系统安装zsh十分简单:
$ brew install zsh
zsh就安装在/bin/zsh路径里
系统默认的环境是bash,从bash进入zsh只需要输入:zsh即可,相反也是一样。
- 安装oh-my-zsh
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
- 安装完成后需要配置每次打开terminal时默认就是zsh。
$ chsh -s /bin/zsh
- zsh会在用户路径下生成.zshrc文件,与bashrc类似,在里面添加默认的环境的变量。
常用插件配置
- 路径大小写忽略
zsh上的路径默认是对大小写不敏感的,这样的好处是很多时候输入路径忘记了某一个文件夹是大写,zsh会自动将你输入的小写改为大写,「tab」的提示功能也是一样,会提示无论大写还是小写,这样极大减少了输错路径的概率。
- 更换自带主题
zsh官方自带了很多不同风格的主题,可以自定义设定,在~/.zshrc里面改一行即可。
随机主题可以在每次打开zsh使用不同的主题:
ZSH_THEME="random"
更换其他主题、github的主题需要单独配置,这里暂时不介绍。
- autojump
神级插件!!路径层级嵌套非常多的时候,我们使用「cd」一级一级的输入+Tab效率是非常低的,「autojump」能够根据用户平时使用路径的频繁程度,根据输入的关键词,直接跳到路径下去,关键词是路径其中一段即可。
安装autojump
$ brew install autojump
例如,我们想访问某一个文件夹,如果用常规命令输入的话
$ cd 绝对路径
但如果使用「autojump」,只需要输入
$ j 路径关键词
可以看到直接跳进该路径下了。
「autojump」会按照关键词使用频率做一个排序,有的时候有一些路径有相似的关键词时,使用「tab」可以查看排序,例如:
想访问哪一个,输入相应的数字即可。
- zsh-autosuggestion
一般再输入路径,命令时需要点击「tab」才会提示你一些补全信息,「zsh-autosuggestion」会在输入的时候就会自动在后面填出最可能输入的指令,并且随着之后输入的内容更新,并且会在下方显示所有可能的选项,当符合你的需求的时候按「tab」即可。
安装需要从github上clone项目:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
之后在「~/.zshrc」里添加内容:
plugins=(zsh-autosuggestions)
source一下重启terminal即可使用。
- zsh-syntax-highlighting
命令高亮,颜色能够增强命令的可读性,看起来也不会很枯燥了,对于命令里的类型也有了很直观的认知。
安装方法很简单
$ brew install zsh-syntax-highlighting
不仅仅是添加了颜色,对于正确的命令,会用绿色显示出来,错误的指令显示为红色,正确的路径下面会有下划线显示。
其他
- zsh在Linux系统也是完全支持的,Linux系统下插件的安装可以查看GitHub里项目的readme,这里不做讲述;
- bash和zsh基本99%是通用的,但也有时候会出现问题,我这里目前只有两个地方遇到了问题:安装anaconda 的时候oh-my-zsh需要配置,snpe的环境只支持bash环境。
- 插件和主题分别放在~/.oh-my-zsh/plugins和~/.oh-my-zsh/themes两个文件夹里面,方便管理和使用。