实用工具集合之oh-my-zsh

2016-06-29

oh-my-zsh的安装和使用

zsh说明

介绍说明参考,若要安装,使用下一章节的步骤:

MacTalk 终极 Shell

  1. git插件

    在git受控的目录下,会显示git相关信息,另外对git命令做了很多简化。例如 gco=’git checkout’、gd=’git diff’、gst=’git status’、g=’git’等等

  2. autojump插件

    十分好用的跳转功能。

    直接输入目录名跳转

    ..直接回到上层

    j 部分目录名直接跳转

  • 各种补全:

    路径补全、命令补全,命令参数补全,插件内容补全等等。

    1
    2
    3
    4
    5
    6
    7
    
      触发补全只需要按一下或两下 tab 键,
    
      补全项可以使用 ctrl+n/p/f/b 下/上/右/左切换。 **方向切换**
    
      比如你想杀掉 java 的进程,只需要输入 kill java + tab键,如果只有一个 java 进程,zsh 会**自动替换为进程的 pid**,如果有多个则会出现选择项供你选择。
    
      ssh + 空格 + 两个tab键,zsh会列出所有访问过的主机和用户名进行补全
    
  • 智能跳转

    安装了autojump之后,zsh 会自动记录你访问过的目录,

    通过 j + 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全(比如,/home/xd/workspace,如果之前访问过,j wo 回车就会cd进入该路径)

  • 目录浏览和跳转:

    输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。 (很方便的功能)

  • 在当前目录下输入 .. 或 … (cd主目录) ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。(功能同: ..相当于alias了一个跳到前一文件夹的的别名)

centos下使用

一开始通过root下,使用yum install zsh下载后配置有问题, yum remove zsh卸载后,登录用户输入密码一直登录不了。

卸载时可能有什么依赖项被删除了。重新root下install后还原。还是建议通过官网步骤进行操作。

通过官网步骤安装:

https://github.com/robbyrussell/oh-my-zsh/

via curl:

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

PS提示显示

把 c 改为 d,c 表示当前目录,d 表示绝对路径,另外在末尾增加了一个「 > 」

在.zshrc中添加

1
2
3
4
5
# 把 c 改为 d,c 表示当前目录,d 表示绝对路径,显示格式"[➜ /home/xd ]$"
PROMPT='[%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}]$ '
# 把 c 改为 d,c 表示当前目录,d 表示绝对路径,另外在末尾增加了一个「 > 」
#PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}>'
#PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'

主题

默认主题是:ZSH_THEME=”robbyrussell”, .zshrc中有该配置项

oh my zsh 提供了数十种主题,相关文件在~/.oh-my-zsh/themes目录下

插件

oh my zsh 项目提供了完善的插件体系,相关的文件在~/.oh-my-zsh/plugins目录下

插件也是在.zshrc里配置,找到plugins关键字,你就可以加载自己的插件了,系统默认加载 git ,你可以在后面追加内容

使用autojump

智能跳转,安装了autojump之后,zsh 会自动记录你访问过的目录,通过 j + 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过hadoop-1.0.0目录,输入j hado 即可正确跳转。j –stat 可以看你的历史路径库。

  1. 先下载安装autojump
1
2
3
4
5
6
7
8
9
    如果是 Linux,去下载 autojump 的最新版本,比如:

    git clone git://github.com/joelthelion/autojump.git
    解压缩后进入目录,执行

    ./install.py
    最后把以下代码加入.zshrc:

    [[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh
  1. .zshrc中追加:
1
2
3
plugins=(git autojump)

[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh

配置文件备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# autojump
[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh
# 提示
PROMPT='[%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p%{$fg[cyan]%}%d %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}]$ '

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vi='vim'
alias la='ls -a'
alias ..='cd ..'
# man 彩色
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'

# 不要设置PS1,会与PROMPT冲突
# PS1="\[\e[32m\][\u@\h \w]$\[\e[m\] "
export HISTTIMEFORMAT="%F %T `whoami` "

卸载方法

https://github.com/robbyrussell/oh-my-zsh/

执行uninstall_oh_my_zsh

If you want to uninstall oh-my-zsh, just run uninstall_oh_my_zsh from the command-line. It will remove itself and revert your previous bash or zsh configuration.



Comments