zsh简介
zsh是shell语言类型,兼容bash,提供强大的命令行功能,比如tab补全,自动纠错功能等。缺点就是配置太麻烦,好在有一个叫做oh-my-zsh的开源项目,很好的弥补了这一缺陷,只需要修修改改配置文件,就能很顺手。
安装zsh
查看系统有几种shell
cat /etc/shells
安装zsh
yum install zsh
设置当前用户使用zsh
chsh -s /bin/zsh
安装oh-my-zsh
-
curl安装
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
-
wget安装
sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
修改oh-my-zsh配置文件
vi ~/.zshrc
# 修改插件
plugins=(
# 内置插件,启用即可
git
cp
mv
# 按两下esc键,用sudo权限
sudo
# 记录历史输入的zsh命令,自动提示,快速使用
zsh-autosuggestions
# zsh 命令高亮
zsh-syntax-highlighting
)
# 修改主题
ZSH_THEME="robbyrussell"
# 修改随机主题
ZSH_THEME="random"
# 设置哪些主题随机(可选)
ZSH_THEME_RANDOM_CANDIDATES=(
"robbyrussell"
"agnoster"
)
卸载zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" "" --unattended
安装autojump插件
git clone git://github.com/wting/autojump.git
cd autojump
# 安装
./install.py
# 卸载
./uninstall.py
安装完成后根据提示下面命令加入~/.bashrc
或者~/.zshrc
中
安装zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
安装zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
$ZSH_CUSTOM
其实是个变量,代表这个路径~/.oh-my-zsh/custom
,
也就是安装到了这个目录下。还有很多高效插件,等您发掘~oh my zsh官网
// 每次修改了这个`.zshrc`配置文件,需要重载一下,才能生效。
source .zshrc
// 也可以封装成一个简写命令 alias
alias rl='source ~/.zshrc'
zsh使用
-
⌃ + u
:清空当前行 -
⌃ + a
:移动到行首 -
⌃ + e
:移动到行尾 -
⌃ + f
:向前移动 -
⌃ + b
:向后移动 -
⌃ + p
:上一条命令 -
⌃ + n
:下一条命令 -
⌃ + r
:搜索历史命令 -
⌃ + y
:召回最近用命令删除的文字 -
⌃ + h
:删除光标之前的字符 -
⌃ + d
:删除光标所指的字符 -
⌃ + w
:删除光标之前的单词 -
⌃ + k
:删除从光标到行尾的内容 -
⌃ + t
:交换光标和之前的字符1、兼容 bash,原来使用 bash 的兄弟切换过来毫无压力,该咋用咋用。
2、强大的历史纪录功能,输入 grep 然后用上下箭头可以翻阅你执行的所有 grep 命令。
3、智能拼写纠正,输入gtep mactalk * -R,系统会提示:zsh: correct ‘gtep’ to ‘grep’ [nyae]? 比妹纸贴心吧,她们向来都是让你猜的……
4、各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下 tab 键,补全项可以使用 ctrl+n/p/f/b上下左右切换。比如你想杀掉 java 的进程,只需要输入 kill java + tab键,如果只有一个 java 进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。ssh + 空格 + 两个tab键,zsh会列出所有访问过的主机和用户名进行补全
5、智能跳转,安装了autojump之后,zsh 会自动记录你访问过的目录,通过 j + 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过hadoop-1.0.0目录,输入j hado 即可正确跳转。j –stat 可以看你的历史路径库。
6、目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。
7、在当前目录下输入 … 或 … ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。
8、通配符搜索:ls -l **/*.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替 find,文件太多就歇菜了。
git别名
// 比如
`git status`时,只需要输入`gst`。
`git pull` 时,只需要输入`gl`。
`git push 时,只需要输入`gp`等等。
详见 oh my zsh plugin git.plugin.zsh
参考:https://zhuanlan.zhihu.com/p/19556676