本文以CentOS 7/Mac 为例,介绍zsh的配置使用教程。git
echo $SHELL
github
cat /etc/shells
shell
yum install zsh # CentOS brew install zsh # mac安装
chsh -s /bin/zsh # CentOS
oop
## Mac以下 在 /etc/shells 文件中加入以下一行 /usr/local/bin/zsh ## 接着运行 chsh -s /usr/local/bin/zsh
能够经过echo $SHELL查看当前默认的shell,若是没有改成/bin/zsh,那么须要重启shell。this
配置zsh是一件麻烦的事儿,爱折腾的程序猿怎么可能忍受?!因而,oh-my-zsh出现了,有了这个东东,zsh配置起来就方便多了!插件
有若干安装方式,介绍三种:
1.自动安装
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
2.手动安装命令行
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
3.真-手动安装code
在oh-my-zsh的github主页,手动将zip包下载下来。 将zip包解压,拷贝至~/.oh-my-zsh目录。此处省略拷贝的操做步骤。 执行cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
三选一便可,适合各类环境下的安装,而后须要
source ~./.zshrc
将配置生效。如下修改了.zshrc
文件以后,都执行一下这个命令。教程
经过以下命令能够查看可用的Theme:
# ls ~/.oh-my-zsh/themes
如何修改zsh主题呢?
编辑~/.zshrc
文件,将ZSH_THEME="candy"
,即将主题修改成candy
。我采用的clean。递归
在~/.zshrc
中找到plugins
关键字,就能够自定义启用的插件了,系统默认加载git
。
命令内容能够参考cat ~/.oh-my-zsh/plugins/git/git.plugin.zsh
经常使用的:
gapa git add --patch gc! git commit -v --amend gcl git clone --recursive gclean git reset --hard && git clean -dfx gcm git checkout master gcmsg git commit -m gco git checkout gd git diff gdca git diff --cached gp git push grbc git rebase --continue gst git status gup git pull --rebase
完整列表:
https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git
解压文件用的,全部的压缩文件,均可以直接x filename,不用记忆参数
固然,若是你想要用tar命令,可使用tar -加tab键,zsh会列出参数的含义。
按照官方文档介绍,须要使用以下命令安装,而不是一些博客中的介绍:
yum install autojump-zsh # CentOS brew install autojump # Mac
CentOS安装好以后,须要在~/.zshrc
中配置一下,除了在plugins
中增长autojump
以外,还须要添加一行
[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh
安装好以后,记得source ~/.zshrc
,而后你就能够经过j+目录名
快速进行目录跳转。支持目录名的模糊匹配和自动补全。
j -stat
:能够查看历史路径库
一旦在 shell 敲入正确命令并能执行后,shell 就会存储你所敲入命令的历史记录(存放在~/.zsh_history
文件中),方便再次运行以前的命令。能够按方向键↑和↓来查看以前执行过的命令
能够用 r来执行上一条命令
使用ctrl-r
来搜索命令历史记录
能够简化命令输入,在.zshrc
中添加 alias shortcut='this is the origin command'
一行就至关于添加了别名
在命令行中输入 alias
能够查看全部的命令别名
连按两次Tab会列出全部的补全列表并直接开始选择,补全项可使用 ctrl+n/p/f/b上下左右切换
智能跳转,安装了 autojump 以后,zsh 会自动记录你访问过的目录,经过 j 目录名 能够直接进行目录跳转,并且目录名支持模糊匹配和自动补全,例如你访问过 hadoop-1.0.0 目录,输入j hado 便可正确跳转。j –stat 能够看你的历史路径库。
命令选项补全。在zsh中只须要键入 tar - 就会列出全部的选项和帮助说明
在当前目录下输入 .. 或 … ,或直接输入当前目录名均可以跳转,你甚至再也不须要输入 cd 命令了。在你知道路径的状况下,好比 /usr/local/bin 你能够输入cd /u/l/b 而后按进行补全快速输入
目录浏览和跳转:输入 d,便可列出你在这个会话里访问的目录列表,输入列表前的序号,便可直接跳转。
命令参数补全。键入kill
就会列出全部的进程名和对应的进程号
更智能的历史命令。在用或者方向上键查找历史命令时,zsh支持限制查找。好比,输入ls,而后再按方向上键,则只会查找用过的ls命令。而此时使用则会仍然按以前的方式查找,忽略 ls
多个终端会话共享历史记录
通配符搜索:ls -l **/*.sh,能够递归显示当前目录下的 shell 文件,文件少时能够代替 find。使用 **/ 来递归搜索
扩展环境变量,输入环境变量而后按 就能够转换成表达的值
在 .zshrc 中添加 setopt HIST_IGNORE_DUPS 能够消除重复记录,也能够利用sort -t ";" -k 2 -u ~/.zsh_history | sort -o ~/.zsh_history手动清除
转自Michael翔