我一直用的都是系统默认的bash,不过Miedo用了zsh后就一直给我推荐,今天就试试这个传说中的终极shell。
听说zsh配置不好弄,不过网上一搜就发现很多人推荐的oh-my-zsh,由一个国外程序员开发的项目oh-my-zsh可以让你零基础快速上手zsh,看来这个项目应该对zsh的普及推广出了很大力。zsh和bash一样是一种shell,oh-my-zsh包含了zsh配置、大量插件及多种主题。
下面看看具体如何做。
安装zsh
我用的系统是openSUSE 42.1,首先要安装zsh。
zypper install zsh
安装oh-my-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
目录下,并创建zsh的默认配置~/.zshrc
,最后将默认shell设置为zsh。
zsh的tab补全很厉害,比如在home目录下键入cd doc
命令,按下Tab会自动匹配到cd Documents/
目录;如果键入cd
命令加一个空格,然后按下Tab键,会自动列出当前目录中的所有子目录和文件,此时,如果继续按下Tab键,光标可以在出现的列表中移动,然后按下回车可以选中光标所在项。
再比如,在命令行键入kill vim
并按下Tab键,如果当前有在运行的vim进程,会自动替换成对应的进程号。
更多特性有待使用中你进一步发掘…
配置oh-my-zsh
oh-my-zsh默认自带了很多插件,但是自动安装后只开启了git插件,在文件~/.zshrc
中有一行:
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git)
看注释内容,默认插件一般位于~/.oh-my-zsh/plugins/
,想要启用某个插件直接把该插件的名字加到下面的括号内,各个插件名字之间用空格隔开。
Plugins Overview有插件的介绍,根据需要选择并开启。
插件
- 默认的git插件
oh-my-zsh和git的集成度比较高,在默认主题下,当你进入一个git仓库文件夹(及其子文件夹),zsh的命令提示行会自动显示git:(XXX)
,括号中的XXX是当前的branch名。另外,如果当前目录有未提交的改动或者新文件,命令提示行也会显示一个✗
以示提醒。
另外要说的就是git插件自带的Aliases,执行命令alias
可以看到多了很多git命令的alias,具体可以参见文件~/.oh-my-zsh/plugins/git/git.plugin.zsh
。
Cheatsheet给出了很多有用的功能介绍。
- z
这个插件就是一个神器,可以随意在不同位置见跳跃。如果你经常进入目录~/AAA/BBB/CCC/DDD/EEE/FFF
,在zsh命令行上键入z FFF
直接就跳进去了(前提是你使用了一段时间让该插件可以积累一些数据才可以),而且支持模糊匹配。类似的插件还有autojump,autojump是python写的,而z是shell写的。
- colored-man-pages
高亮显示man
手册中的关键字。
- command-not-found
命令没发现时,给出相关的包名字建议。
- history
Alias h
为列出命令历史,hsi
搜索命令历史。
主题
oh-my-zsh默认使用的主题是robbyrussell,但是oh-my-zsh自带的主题有很多,都在~/.oh-my-zsh/themes/
目录下放着,要想修改使用的主题,只要修改~/.zshrc
,将ZSH_THEME
指定为你想使用的即可。
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
# ZSH_THEME="robbyrussell"
ZSH_THEME="robbyrussell"
另外,可以参考Themes发现更多的主题及其预览。
尽情的尝试吧!!!
zsh技巧
最后,网上搜zsh技巧之类的,多多练习,熟练使用后shell操作效率大增!
比如这里:zsh使用指南(译)
参考:
[1] http://macshuo.com/?p=676
[2] http://hczhcz.github.io/2014/03/27/oh-my-zsh.html
[3] http://swiftcafe.io/2015/10/31/cafe-time-omz/