对于经常在 Linux 环境下干活的码农们,shell 可以说是我们使用频率最高的程序了,shell 为我们和机器间建立了一个桥梁,它给我们提供一系列命令,我们就可以和机器进行愉快的交流了,比如写代码用vim命令,查找文件使用find,grep命令,版本控制使用git,查看机器性能使用top,bash 就是 shell 的一种,也是 Linux 下的默认 shell 程序,现在让我们使用 zsh,重新打造一个更加人性化的 shell

zsh 是什么

zsh属于 shell 的一种,和 bash 一样,但比 bash 更好用,zsh 完全兼容 bash,其强大的自动补全参数、文件名、以及自定义功能,可以提高我们的效率。

安装 zsh

说了这么多,让我们安装个 zsh 尝尝鲜吧,安装 zsh 灰常简单,centOS 用户,只用下面一条命令即可安装成功

1
yum install zsh

看下系统现在有哪些shell可以用

1
cat /etc/shells

安装zsh成功
可以看到,zsh 已经被正确安装了

安装 oh-my-zsh

zsh 虽然好用,但配置起来还比较麻烦,不过幸运的是,已经有大神给我们配置好了一个很棒的框架:oh-my-zsh,我们只需要安装使用就可以了,一条命令搞定:

1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

没有意外的话,你会看到下面这张图字样,说明 oh-my-zsh 已经安装好了
oh-my-zsh安装成功

使用

接下来简单配置和学习下 oh-my-zsh 的使用方式,就可以愉快玩耍(带你装B带你飞)了

主题

首先设置下主题吧,oh-my-zsh 提供了很多主题,主题的配置文件在~/.zshrc文件中可以看到,找到下面这行

1
ZSH_THEME="robbyrussel"

可以将值改为其他类型,oh-my-zsh 的主题可以在这里找到,当然,如果你再狂野点,直接改为”random”也是可以的…以后每次登陆,都能换个不同的口味,下面是我个人用的agnoster主题。
agnoster主题

命令补全

虽然 bash 下,tab 是一个好用的补全命令,但 oh-my-zsh 提供了更加强大的命令补全工具,很多时候,你只需要输入一条命令,然后按 tab,oh-my-zsh 就可以自动给你补全该条命令其他的参数,比如你想进入到nginx,输入cd /u/l/n,按下 tab,系统自动帮你补全这条命令,变为cd /usr/local/nginx,再比如,输入git,按两下 tab,系统给你返回关于 git 的一些其他命令,具体的功能,读者可以在使用中慢慢尝试。也可以通过alias命令,查看所有命令的别名。

在目录中穿越

我们经常会遇到先进入一个很深的目录,然后又换到另一个目录下的情况,如果要返回之前的某个目录,还会使用到history去查找,不过有了d命令,就可以简化这个步骤。d命令会列出你最近进入的目录,然后只需要输入对应目录的序号,即可重新进入该目录,如下图所示,d命令列出了我最近进入的几个目录,其中序号为3的目录是我的 nginx 目录,直接输入3,立马跳到 nginx 所在目录
目录跳转

oh-my-zsh还提供很多其他便捷的跳转命令,比如..,等同于bash中../...,等同于../..。所有的这些
当然目录跳转还可以有其他工具,比如autojump,就是一个非常好用的跳转插件。

关于 git

用 git 的同学,会经常需要对写的代码进行statusaddcommit等操作,以及审视git仓库的提交状态,oh-my-zsh 天生带有 git 插件,如下图
git插件
其中的 master 表示当前目录是 git 仓库,且是在 master 分支下,如果当前分支有文件改动,master 背景颜色就会变化,且后面的小图标也会对应改变,如下图所示
修改了文件,但没进行add
add
添加到暂存区,等待提交
等待提交

总结

由以上可以看出,zsh 配合 oh-my-zsh,可以大大方便我们在 Linux 下敲命令的任务,以上只是 zsh 很少的一部分,oh-my-zsh 还有很多插件和使用方法,等待大家去发掘。

update at 2018-01-20

发现一个强大的终端命令提示补全插件,具体安装使用看这里
之前看某些视频时,发现相似的效果,但没去找,现在偶然找到了,果断使用,效果不错~