zsh+oh-my-zsh

zsh+oh-my-zsh

oh-my-zsh 介绍

oh-my-zsh是基于zsh的功能做了一个扩展,方便的插件管理、主题自定义,以及漂亮的自动完成效果

先安装 zsh

brew info zsh
brew install zsh

再安装 oh-my-zsh

curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

或者

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

查看zsh版本

zsh --version

当前默认bash

echo $SHELL

确保zsh在/etc/shells列表中,修改默认shell

检查当前的shell有那些

cat /etc/shells
chsh -s /bin/zsh

注销用户,重新登录用户,确认已经是zsh,就可以了

提示 chsh:no changes made解决办法

chsh -s /bin/zsh
dscl . -read /Users/$USER/ UserShell
exec su - $USER

zsh兼容bash_profile

zsh 不会读取用户目录下的 .bash_profile.bashrc 文件,把你要在 ~/.bash_profile 里做的事写在 ~/.zshrc 里。

或者,手工在 ~/.zshrc 里使用 source 命令执行 ~/.bash_profile 也可以
方法是在 ~/.zshrc 中加入一行 source ~/.bash_profile

安装可能错误Error

.zshrc:3: command not found: ^M

The temporary solution to that is changing your core.autocrlf git config setting to use input, given that you are on OSX. See #4402 (comment).

cd $ZSH
git config core.autocrlf input
git rm --cached -r .
git reset --hard

oh-my-zsh.sh: : parse error near || after Upgrade

vi the ~/.gitconfig file and set the autocrlf = false. then it works

Git clone errors if .gitconfig specifies autocrlf = true #4069

PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set

PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set

Add RVM set at ~/.zshrc

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

常用alias配置

# alias base
alias free='top -l 1 | head -n 10 | grep PhysMem'
alias ls='ls -hG'
alias ll='ls -l'
alias la='ls -a'
alias l='ls -CF'
alias cls='clear'
alias gs='git status'
alias gc='git commit'
alias gqa='git add .'

# alias docker
alias dkst="docker stats"
alias dkps="docker ps"
alias dkpsa="docker ps -a"
alias dkimgs="docker images"
alias dkcpup="docker-compose up -d"
alias dkcpdown="docker-compose down"
alias dkcpstart="docker-compose start"
alias dkcpstop="docker-compose stop"

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

zsh插件设置

修改 ~/.zshrc 文件中plugins=(git) 这个部分

这个是本人的插件

plugins=(
  zsh_reload
  git
  osx
  brew
  colored-man-pages
  sudo
  autojump
  zsh-autosuggestions
)

查看插件列表

ls ~/.oh-my-zsh/plugins | grep [pluginsName]

可以再插件在最前面加 ! 表示禁用插件

  • osx 希望在 OSX 中 插件生效,请一定加入这个配置
  • zsh_reload ,这个增加了一个src的alias,可以重新reload zsh,尤其是当一个新的程序安装,zsh并不能像bash那样立马可以识别新的命令
  • autojump 配合autojump 使用 j 命令直接快速进入某个目录
  • zsh-syntax-highlighting,这个是当你正在输入一个命令的时候,显示绿色,表示这个命令是有效的存在的,显示红色表示这个命令在系统中不存在,当然不止这些。
  • brew 这两个是给OS X 的brew增加补全的。非这个系统请写成 !brew-cask !brew
  • colored-man-pages 顾名思义,彩色的man很赞!
  • sudo 当你输入一个命令发现需要root权限,通常只能按方向上键,然后光标移到头部,加入sudo,但是有了这个插件,不用再移动光标到头部了,直接两下 ESC, sudo就会自动加入到最前面。。。

自动提示命令 zsh-autosuggestions

输入命令时,终端会自动提示你接下来可能要输入的命令

  • 克隆仓库到本地 ~/.oh-my-zsh/custom/plugins 路径
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

~/.zshrc 中添加

plugins=(
  zsh-autosuggestions
)

可能看不到变化,可能你的字体颜色太淡

vim ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh

修改 ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'

语法高亮

zsh-syntax-highlighting 安装分源码和管理工具安装

# if use brew install
brew install zsh-syntax-highlighting
echo "source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

# use git install
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
echo "source \$ZSH_CUSTOM/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

插件推荐

  • rsync 增加了几个rsync的alias,简化操作

zsh 美化

主题预览

https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes

其中主题 robbyrussell dst agnoster duellj 可以尝试一下

autojump 配置

只在 zsh 中配置了插件

plugins=(
  git
  zsh_reload
  autojump
)

没有安装autojump是不能使用的

brew install autojump

安装完成后会有提示,因为是使用了zsh,将下面的配置添加到 ~/.bash_profile

# env of autojump
[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh

设置完成后,加载配置source ~/.bash_profile,然后就可以使用 j [路径短写]来跳转

autojump 是基于cd去过的路径,没用去过的路径无法短写跳转

路径跳转错误可以使用 autojump --purge 来清理错误路径



上一篇:磁盘IOPS计算与测量


下一篇:git安装配置oh-my-zsh