开始使用zsh

切换到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)
  • 几个插件
  1. 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
  2. osx:tab增强,quick-look filename可以直接预览文件,man-preview grep可以生成grep手册的pdf版本等
  3. autojump
    • 默认安装好了brew
    • brew install autojump
    • 把以下代码加入文件.zshrc
      [[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh

简单配置

  • 打开和修改.zshrc
  1. cd并回车,打开用户当前目录,使用ls -A显示所有文件(包括隐藏文件),应该会有一个.zshrc文件
  2. vi .zshrc使用vim打开文件,i进入insert模式编辑文件。
  3. 编辑完按esc进入末行模式,输入:wq并回车,会保存修改并退出vim,回到之前的shell窗口。
  • 使用sublime Text打开文件
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

  1. 历史纪录:输入j然后用上下箭头可以翻阅执行过的所有j命令
  2. 智能拼写纠正,输入gtep mactalk * -R,系统会提示:zsh: correct ‘gtep’ to ‘grep’ [nyae]?
  3. 各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。
    触发补全:按一下或两下tab键,补全项可以使用 ctrl+n/p/f/b上下左右切换。
    比如你想杀掉 java 的进程,只需要输入kill java + tab,如果只有一个 java 进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。
    ssh+空格+两个tab,zsh会列出所有访问过的主机和用户名进行补全。
  4. 智能跳转,安装了autojump之后,zsh 会自动记录你访问过的目录,通过j + 目录名可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全。j –stat可以看历史路径库。
  5. 目录浏览和跳转:输入d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。
  6. 在当前目录下输入.....,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。
  7. 通配符搜索:ls -l **/*.sh,可以递归显示当前目录下的shell文件,文件少时可以代替find

参考:终极Shell

posted @ 2017-11-03 15:36  4645  阅读(701)  评论(0编辑  收藏  举报