Oh My ZSH!
什么是 Zsh
Zsh(Z shell) 是一款可用作交互式登录的 shell 及脚本编写的命令解释器,兼容 bash。shell 是负责外界与 Linux 内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核处理之后再把结果返回用户或应用程序。
# 查看系统中包含哪些 shell
cat /etc/shells
# /bin/bash
# /bin/csh
# /bin/ksh
# /bin/sh
# /bin/tcsh
# /bin/zsh
# 查看当前采用的 shell
echo $SHELL
# /bin/zsh
可以通过命令来切换你想用的 shell:
chsh -s /bin/zsh
On My Zsh
Zsh 虽然功能强大,但是配置十分麻烦,用户社区网站 Oh My Zsh 应运而生,主要收集 Zsh 的第三方插件及主题。那么 Zsh 好不好用呢,用官方的话就是 Your terminal never felt this good before。Zsh 的配置文件位于 ~/.zshrc 中,参考配置可以点击这里 👈
# via curl
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# via wget
$ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
主题
抛弃 bash 一成不变的呆板界面,拥抱丰富多彩的主题,只要如下设置即可,更多主题点击这里:
vim ~/.zshrc
# 找到主题一行改为你想要的
ZSH_THEME="ys"
# 更新配置或重启终端
source ~/.zshrc
倘若你足够奔放的话,可以设置主题为 random,每次重启都会眼前一亮:
ZSH_THEME="random"

智能提示
可帮助用户键入常用命令选项及参数的可编程命令行补全功能:
git commit
# commit -- record changes to repository
# commit-tree -- create new commit object
rm -
# -R -r -- remove directories and their contents recursively
# -f -- ignore nonexistent files, never prompt
# -i -- prompt before every removal
自动补全
这里推荐用一款 Incremental completion on zsh 的插件,下载后通过以下命令执行即可,可以参考这里:
source incr*.zsh

再推荐一款补全历史命令的插件 zsh-autosuggestions:
# 克隆项目
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
# 在 .zshrc 中添加该插件
plugins=( git zsh-autosuggestions 其他插件 )
生效后再输入,可看见灰色的补全效果,此时默认按键 → 补全,通过以下命令可以设置其他快捷键:
// 直接在 .zshrc 中添加下句即可
bindkey ',' autosuggest-accept

自动跳转
这里列一款 autojump 插件,是替换 cd 命令的存在,首选需要安装:
brew install autojump
然后在 .zshrc 的插件一行添加进来:
plugins=( git autojump 其他插件 )
使用方式如下,如果不知道目录全名,输入一部分,按 Tab 键自动补全即可:
# j P 然后 tab 选择,autojump 简写为 j
# 同 autojump P
j P
# --> Projects
注意,若之前没有切换到该目录的历史,跳转是不会生效的。
但是感觉还是不实用,不入直接命令 d 好用,直接输入该命令即可列出快捷跳转的目录,再次输入序号即可跳转到相应目录:
> d
# 0 ~
# 1 ~/Projects/myProject
# 2 ~/Projects
> 1
其他
1、省略 cd 命令:
..
# 等同于
cd ..
# alias
...=../..
....=../../..
.....=../../../..
......=../../../../..
2、命令 - 可快速切换至你之前访问的目录路径
# 加 cd 可以查看所有历史路径,后面接数字就可以跳转到对应的路径上
# 直接使用 - 命令,则默认跳转序号为 1 对应的路径上
cd -
# 1 -- ~
# 2 -- ~/Projects/Tate-Young.github.io
cd -2
# ~/Projects/Tate-Young.github.io
-
# ~
3、iTerm2
iTerm2 号称是终端的替代者,但是个人用不太习惯,还是喜欢简单的好,有喜欢的可以捡走,这里只是提到下。官网传送门 👈
那这里在介绍几个终端常用的快捷键:
- cmd + k - 清屏
- cmd + T - 分屏
参考链接
- oh-my-zsh,让你的终端从未这么爽过 By 赛亚猫