对于经常在 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 用户,只用下面一条命令即可安装成功

yum install zsh

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

cat /etc/shells

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

安装 oh-my-zsh

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

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文件中可以看到,找到下面这行

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

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