详细介绍就略过吧,可以参考这篇文章:使用ZSH的九个理由

下面记录一下我在配置ZSH的过程中的要点:

1、基本上你能找到的配置教程都是基于oh-my-zsh的。

因为zsh配置过于复杂,所以有了oh-my-zsh这个项目,目的在于简化zsh配置。项目地址:https://github.com/robbyrussell/oh-my-zsh

在项目readme文档中详细介绍了使用方法,这里略过。

2、使用oh-my-zsh的前提是你已经安装好了zsh。

oh-my-zsh其实就是一堆zsh脚本的集合,zsh原程序还是需要独立安装的。各个平台的方法不同,不再赘述。

3、readme文档中提供的手动安装方法如下
1
2
3
4
5
6
7
8
9
10
11
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
       # 把该项目的代码clone下来
 
cp ~/.zshrc ~/.zshrc.orig
       # 备份原zsh配置文件
 
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
       # 复制oh-my-zsh提供的zshrc模版文件
chsh -s /bin/zsh
       # 改变当前用户的默认shell
4、基本配置(以我的.zshrc为例)
1
2
3
# Path to your oh-my-zsh installation.
# 这里填写你oh-my-zsh目录的路径,我是使用apt安装的,因此在/usr/share下面
export ZSH=/usr/share/oh-my-zsh
1
2
3
4
5
6
7
8
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
 
# 其实原文注释就很详细了,这里就是主题的名称。
# 所谓主题其实就是在themes目录里的一个zsh脚本文件,用来配置提示符之类的shell命令
ZSH_THEME="clean"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Uncomment the following line to use case-sensitive completion.
# 自动匹配时候是否区分大小写,我选择了no
# CASE_SENSITIVE="true"
 
# Uncomment the following line to disable bi-weekly auto-update checks.
# 这里我关闭了自动更新
DISABLE_AUTO_UPDATE="true"
 
# Uncomment the following line to enable command auto-correction.
# 大部分人用zsh都开启了这个自动修正命令的功能,我刚从bash转过来,还是不习惯。
# 更习惯用command_not_found这个软件提供的错误提示,而不是强制修改我的命令。
#ENABLE_CORRECTION="true"
 
# Uncomment the following line to display red dots whilst waiting for completion.
# 这里其实就是在等待自动完成的时候显示红色的点,看起来更直观
COMPLETION_WAITING_DOTS="true"
 
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# 这里选择命令历史的时间格式,这个确实很方便,每个命令都记录下运行时刻了。
HIST_STAMPS="yyyy-mm-dd"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
 
# 这里选择你要加载的插件,上面讲的很清楚,不要加载太多!
# 我更习惯将插件里面的代码直接粘贴到这个.zshrc文件里,个人喜欢统一管理。
plugins=(git sudo debian colored-man)
 
# 下面这句是关键,加载oh-my-zsh的主要代码,默认即可
source $ZSH/oh-my-zsh.sh
 
# User configuration
# 下面开始是用户自己的配置项了
export PATH=$HOME/bin:/usr/local/bin:$PATH
5、下面是其他一些有用的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 运行未未安装程序时,提示安装软件。
# 是自带的一个插件,最主要的代码就是下面这一行,我就直接在这里粘贴了
# 但是command_not_found这是一个软件,需要另外安装的。
source /etc/zsh_command_not_found
 
# 禁用zsh自己匹配*这样的符号,不然就无法传递给目标程序了。
setopt no_nomatch
 
# 下面的提示符设置改编自主题“clean”。所以注释掉了加载主题的那行代码。
#
# root的用户名显示为红色,其他用户名显示为白色
if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="white"; fi
 
# 行首提示符
PROMPT='%{$fg[$NCOLOR]%}%n@%m:%{$fg[blue]%}%B%c/%{$reset_color%} $(git_prompt_info)%(!.#.$) '
RPROMPT='[%*]'
 
# 当程序返回值不为0时,在行尾红色显示
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
RPS1=${return_code}
 
# 这里是ls针对文件类型颜色配置,我不喜欢zsh默认的颜色配置,这个是bash默认的颜色
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:"
 
# git theming,关于git目录的提示符号配置
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}(%{$fg_no_bold[yellow]%}%B"
ZSH_THEME_GIT_PROMPT_SUFFIX="%b%{$fg_bold[blue]%})%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✗"
6、zsh中grep搜索结果中的关键字没有红色高亮

在文件 oh-my-zsh/lib/grep.zsh中,有export GREP_COLOR=’1;32′

若要恢复grep默认红色的设置,要么删除那行代码,要么在.zshrc中 export GREP_COLOR=” 重新赋为空值


在 Ubuntu Linux 中安裝 Zsh 及 Oh-my-zsh
直接用 apt-get 安裝 zsh 套件
$ apt-get install zsh
$ zsh --verison

從 GitHub 下載 oh-my-zsh 套件
$ git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

如果本來沒有安裝 zsh 可以直接使用 oh-my-zsh 的範例 zshrc
$ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

看看有什麼 Theme 可以用
$ ls ~/.oh-my-zsh/themes

編輯 ~/.zshrc 更換 zsh 的 theme 我自己喜歡用 candy
ZSH_THEME="candy"

看看有什麼 Plugin 可以用
$ ls ~/.oh-my-zsh/plugins

編輯 ~/.zshrc 啟用 Plugin
plugins=(git git-flow debian grails rvm history-substring-search github gradle svn node npm zsh-syntax-highlighting sublime)

下載 zsh-syntax-highlighting plugin
$ cd ~/.oh-my-zsh/custom/plugins
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git

新增自訂 zsh 設定,我會把 alias 和 PATH 的設定放在這邊
$ cat ~/.oh-my-zsh/custom/xxx.zsh
alias df='df -h'
alias h='htop'
PATH=$PATH:/opt/app/bin/


安装 Zsh 及 Oh-my-zsh的更多相关文章

  1. Mac下安装zsh(Oh My ZSH)的shell,替代原有的bash

    说明:一开始装zsh我是拒绝的,因为这个东西装简单,卸载很难,并且装了之后默认Shell的配置文件不能用了,比如~/.bashrc这些.所以在装的时候要再三考虑好! 官网:http://ohmyz.s ...

  2. 安装更强大更美观的zsh,配置oh my zsh及插件

    安装更强大更美观的zsh,配置oh my zsh及插件 #0x0 安装zsh #0x1 安装oh my zsh #0x2 配置zshrc #0x3 配置主题 #0x4 安装插件 #0x5 小结 #0x ...

  3. Linux 以非root用户安装zsh&配置on my zsh

    此文章参考以下三篇文章,如有侵权请联系 Linux非root用户安装zsh, 并用oh-my-zsh进行配置 在没有sudo权限的Linux服务器下安装oh-my-zsh 不使用root权限安装zsh ...

  4. Ubuntu下安装配置zsh和oh my zsh

    zsh优势:自动补全功能强大和很高的可配置性 1.查看当前系统装了哪些shell    cat /etc/shells 2.当前正在运行的是哪个版本的shell    echo $SHELL 3.安装 ...

  5. Zsh和oh my zsh的安装和使用

    Zsh 兼容 Bash,据传说 99% 的 Bash 操作 和 Zsh 是相同的,默认 CentOS / Ubuntu / Mac 系统用的是 Bash,倒也不是说 Bash 不好,而是说我们有更好的 ...

  6. iTerm的安装以及配置Oh My Zsh

    iTerm说简单点就是Windows的命令提示符,可能说这个大家感觉没用过,其实也就是人们经常使用CMD,相当于苹果的终端,但是比自带的终端强大多了. 本文就是简单的说一下安装和简单的配置过程. 首先 ...

  7. 安装 Homebrew&iterm2&Oh My Zsh

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/instal ...

  8. 关于scp在zsh报错:zsh:no matches found :

    我要将某一目录下面所有文件拷贝的时候,scp *.jpg 的时候,报错 zsh: no matchs found:path 其实是zsh自己解析了*号,所以,只要给*加上就可以了\ scp \*.jp ...

  9. 安装 zsh 、 on-my-zsh 和 autojump

    安装 zsh . on-my-zsh 和 autojump zsh 是 linux 上另外一个 shell ,号称是终极 shell .它的配置比较复杂,一般的发行版中,默认没有安装这个 shell ...

  10. Env:zsh和fish安装和使用

    zsh优势兼容bash, 方便git管理,但是有时候切换速度较慢,特别遇到git仓库目录 fish优势速度较快,路径提示也不错,但是和bash不兼容 1. zsh 首先,可以通过cat /etc/sh ...

随机推荐

  1. vue进行路由拼图的使用案例

    实现思路,利用路由进行实现多个组件拼图: Detail.vue <template> <div> <h1>详细展示</h1> <div>鞍山 ...

  2. FileRecv VNCViewer 使用方法

    版本 区别 一路点点点 . 就ok了 看到这个页面 点击   vnc viewer 输入 老师 会告诉你 IP地址  点击 就ok

  3. CentOS7 安装 PostGIS方法(适合国内网络)

    安装Postgresql 9.4 yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1. ...

  4. 基于MVC4+EF5.0+Ajax+Json+CSS3的简单注册页面(get&post)

    使用mvc4可以很快速的创建页面,但封装的过多,难免会有些性能上的问题.所以基于此,通过使用简单的手写html,加ajax,json来创建一个注册页面,会比较干净,简洁. 本项目的环境是MVC4+EF ...

  5. python-单链表的实现

    #!/usr/bin/python class Node(object): def __init__(self,value,next=None): self.value,self.next=value ...

  6. Linux 命令学习之cd

    功能说明: cd 命令是 linux 最基本的命令语句,其他的命令都会依赖与 cd 命令.因此学好 cd 命令是必须的. 语 法:cd [目的目录] 补充说明:cd指令可让用户在不同的目录间切换,需要 ...

  7. spring mongo data api learn

    1 索引 1.1 单列索引 @Indexed @Field(value = "delete_flag") private Boolean deleteFlag = false; @ ...

  8. 203_Removed-Linked-List-Elements

    目录 203_Removed-Linked-List-Elements Description Solution Java solution 1 Java solution 2 Python solu ...

  9. Softwaretechnik

    1.Einführung 1.1 Was ist Softwareentwicklung Softwareentwicklung ist eine Wissenschaftliches Fach üb ...

  10. Delphi 通得进程ID获取主窗口句柄

    只知道进程ID,获取主窗口句柄的方法如下: 通过EnumWindows枚举所有窗口 使用GetWindowThreadProcessID,通过窗口句柄获取进程ID 比便获取的进程ID与当前已知的进程I ...