切换到zsh
- 查看系统shell:Mac OS下,命令行输入
cat /etc/shells
- 切换zsh:命令行输入
chsh -s /bin/zsh
,根据提示输入用户密码
安装oh-my-zsh
- 前提是已经安装好git
- 自动安装:
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
- 手动安装:
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
- 安装完成重开shell即可
安装插件
- 提供的插件在
~/.oh-my-zsh/plugins
目录下
- 添加插件
.zshrc
文件中plugins=(git)
(默认加载git)
- 几个插件
git
:当处于一个git受控的目录下时,Shell 会明确显示git和branch
对 git 很多命令进行了简化,例如gco=’git checkout’
、gd=’git diff’
、gst=’git status’
、g=’git’
命令内容可以参考~/.oh-my-zsh/plugins/git/git.plugin.zsh
osx
:tab增强,quick-look filename
可以直接预览文件,man-preview grep
可以生成grep手册的pdf版本等
autojump
- 默认安装好了
brew
brew install autojump
- 把以下代码加入文件
.zshrc
[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh
简单配置
cd
并回车,打开用户当前目录,使用ls -A
显示所有文件(包括隐藏文件),应该会有一个.zshrc
文件
vi .zshrc
使用vim打开文件,i
进入insert模式编辑文件。
- 编辑完按
esc
进入末行模式,输入:wq
并回车,会保存修改并退出vim,回到之前的shell窗口。
alias subl="'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl'"
alias -s txt=subl#输入txt后缀的文件,自动用sublime打开
alias -s c=subl
alias -s zsh=subl
alias -s py=subl
alias -s js=subl
alias -s java=subl
alias -s html=subl
alias clr='clear'
alias ll='ls -l'
alias la='ls -a'
alias vi='vim'
alias grep="grep --color=auto"
alias -s gz='tar -xzvf'#自动解压后缀为 gz 的压缩包。
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xjvf'
主题设置
- 系统默认的主题可以在
.zshrc
文件中看到ZSH_THEME="robbyrussell"
- oh-my-zsh提供了很多主题,存在
~/.oh-my-zsh/themes
目录下
- 更换主题
直接修改.zshrc
文件中ZSH_THEME="robbyrussell"
一行,把robbyrussell
改成themes目录下存在的文件名即可(不包括后缀)
- 编辑主题的部分内容
用文本编辑器(如sublime)打开theme文件(如robbyrussell.zsh-theme
),直接编辑保存即可
比如把原来的prompt修改为:
PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}'
现在shell显示的就是绝对路径了。
使用zsh
- 历史纪录:输入
j
然后用上下箭头可以翻阅执行过的所有j
命令
- 智能拼写纠正,输入
gtep mactalk * -R
,系统会提示:zsh: correct ‘gtep’ to ‘grep’ [nyae]?
- 各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。
触发补全:按一下或两下tab
键,补全项可以使用 ctrl+n/p/f/b上下左右切换。
比如你想杀掉 java 的进程,只需要输入kill java + tab
,如果只有一个 java 进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。
ssh+空格+两个tab
,zsh会列出所有访问过的主机和用户名进行补全。
- 智能跳转,安装了autojump之后,zsh 会自动记录你访问过的目录,通过
j + 目录名
可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全。j –stat
可以看历史路径库。
- 目录浏览和跳转:输入
d
,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。
- 在当前目录下输入
..
或...
,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。
- 通配符搜索:
ls -l **/*.sh
,可以递归显示当前目录下的shell文件,文件少时可以代替find