什么是 zsh,要想解释好这个问题,那么得先说明什么是 shell。不负责任的解释说法就是 shell 就是一个壳。这个壳可不是蜗牛的壳,而是计算机的一个壳,固然也不是计算机的外壳啦,这个壳是相对于计算机内核的一个壳。是指“提供使用者使用界面”的软件,也能够说是一种命令解析器,它将人类输入的字符变成计算机能够识别的字符,或者是展示出计算机所计算出来的结果。
同时 shell 也是一种脚本语言,能够有不少有意思的用法。传统意义上的 shell 指的是命令行形式的 shell,在 Unix/Linux 系统下经常使用的 shell 有 bash/zsh/ksh/sh/csh 等等不一而同。mysql
咱们最经常使用的也是不少操做系统默认的 shell 就是 bash,它是一个为 GUN 计划编写的 shell,全称为 Bourne-Again SHell。而今天的主角显然不是这位默认集成的 bash,今天的主人翁是以拥有更增强大功能著称的 zsh。git
zsh 是一款功能强大的 shell 软件,它能够兼容 bash,而且提供了不少高效的改进:
- 更好的自动补全
- 更好的文件名展开
- 强大的定制性
## 将 zsh 做为默认终端
首先先看看当前系统中有哪些可使用的终端:
`cat /etc/shells`
个人电脑中显示以下:
```
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
```
在 Mac 下已经默认安装了,
通常的安装方法就是:
`sudo yum install zsh`
`sudo apt-get install zsh`
更多的安装方法能够查看这个网址:[http://www.zsh.org/](http://www.zsh.org/)程序员
安装完成后敲击如下内容到终端:
`chsh -s /bin/zsh`
若是一切顺利,那么再次打开终端的时候 zsh 就会是默认的终端。github
单单是用 zsh 是一件很是苦恼的事情,对于非程序员光是 shell 就已经算是很难以使用了,不过我想应该不会有非程序员使用终端吧。
zsh 相对于 bash 来讲增长了不少的功能,因此是使用难度也天然而然的就提高了不少。还好有一群爱折腾的年轻小伙子,开发了一款 zsh 的插件集合——
“Oh My ZSH”算法
>Oh-My-Zsh is an open source, community-driven framework for managing your ZSH configuration. It comes bundled with a ton of helpful functions, helpers, plugins, themes, and a few things that make you shout...sql
这是 Oh My ZSH 的官方介绍,能够在 [http://ohmyz.sh/](http://ohmyz.sh/) 中看到它的身影,它简明意概的说明了它是一个开源的管理 zsh 配置框架,它内置了很是多的插件、主题、functions等等。安装 oh my zsh 也是一件很是简单的事情,只要在终端中键入:(须要有 git 环境。安装同 zsh,只要把 zsh 替换成 git 便可)
`wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh`
固然咱们也能够选择使用原码安装:
`git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh`
`cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc`
这些命令都不复杂,若是一切顺利的话,安装完成以后咱们再次打开终端时,咱们的终端就会变得和原来大不同,终端会以多彩的形式呈现出来。oh my zsh 有不少强大的配置,这里就不展开说了,zsh 的配置主要集中在用户当前目录的 .zshrc 里了,咱们能够根据官网的介绍来配置咱们的 zsh。shell
好马配好鞍,有了一个强大的终端以后怎么能够没有一个配套的主题和第三方终端工具呢?按照个人审美习惯我从众多的 zsh 的主题中选择了 agnoster 这个主题以及一款很是好用的终端工具 iTerm。具体怎么安装和配置我就不在这里展开了,百度一下就能够有很是多的答案越于眼前了。在 Mac 系统下通常遇到的错误都是没有安装苹果自家的 Command line 引发的,只要安装了已经基本就不会遇到什么错误了。跟着晚上的教程一步一步作准没错。数据库
在咱们使用终端的时候每每会为频繁的输入路径而烦恼,虽然 zsh 已经有很是强大的路径补全功能,但任然不能知足咱们对于效率的追求。而这么强大的 zsh 这么可能会没有解决方案呢?答案是确定有,是有的。在 zsh 的众多插件当中,一款名为 autojump 的插件知足了咱们的需求。autojump - a faster way to navigate your filesystem,这是一款很是好用的插件,它经过记录咱们经常使用目录并经过必定的算法分析咱们将要去的目录,以达到快速到达的目的。好比说我要启动 MySql 数据库,那么我就得这样:bash
`cd /usr/local/mysql/support-files/`
`mysql.server start`
而若是咱们使用 autojump 的话,这一操做将变得极其简单,打开 MySQL 将会变成这样:
`j mysql`
`mysql.server start`
由于我常常访问这个目录,因此 aotojump 会记录下这个路径,这样在我键入 `j mysql` 的时候,它就会自动帮我跳转到这个目录下。能够说是很是的方便。咱们也能够为某个目录设置权重,这样就能够方便的“初始化”想要快速到达的目录了。autojump 不只仅支持 zsh,像 bash,fish都是支持的。框架
使用好终端能够方便咱们的操做,可让咱们以一种不一样角度去感觉计算机,这里要感谢 Mac OS,若是不是它我也不会踏上 shell 这一条道路上来,让我感觉到了 Unix/Linux 的魅力所在。之前也经常使用虚拟机折腾 Linux 系统,但每每都是一时热情,毕竟对于一个并非很懂 Linux 的人来讲,不少问题都会让本身很沮丧。而 Mac 这种开箱即用,并不须要折腾的系统或许是体验 Unix 哲学的最佳栖息地。