首先确保你安装了brew,未安装的请参考此文:Mac安装Homebrew以及使用
安装zsh
brew install zsh zsh-completions
验证是否安装成功
我们可以在命令行中输入这个命令来查看我们的电脑上是否安装了zsh命令行
$ zsh --version
安装oh my zsh
前提条件:必须已安装ZSH
我们可以在命令行中输入这个命令来查看我们的电脑上是否安装了zsh命令行
$ zsh --version
如果安装了,这个命令就会输出zsh当前的版本号。确定 zsh 已经安装后,我们就可以继续安装Oh My Zsh了。
安装Oh My Zsh
Oh My Zsh 的安装方式非常简单,可以通过curl或wget的方式,用一条命令即可安装。
curl 方式
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
wget 方式
$ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
安装过程中输出如下
到这里,Oh My Zsh 就安装成功了。
Oh My Zsh目录结构
进入~/.oh-my-zsh目录后,看看该目录的结构
cache custom lib log MIT-LICENSE.txt oh-my-zsh.sh plugins README.markdown templates themes tools
lib 提供了核心功能的脚本库
tools 提供安装、升级等功能的快捷工具
plugins 自带插件的存在放位置
templates 自带模板的存在放位置
themes 自带主题文件的存在放位置
custom 个性化配置目录,自安装的插件和主题可放这里
设置主题
安装完毕后,我们就可以使用了,咱们先来简单配置一下。
Oh My Zsh 提供了很多主题风格,我们可以根据自己的喜好,设置主题风格,主题的配置在 ~/.zshrc 文件中可以看到,用一个自己熟悉的编辑器打开这个文件,可以找到这一项:
ZSH_THEME="robbyrussel"
可以看到,我们默认使用的主题叫做robbyrussel。 它的显示效果嘛,大概是这样
Oh My Zsh默认自带了一些默认主题,存放在~/.oh-my-zsh/themes目录中。我们可以查看这些主题
3den.zsh-theme essembeh.zsh-theme junkfood.zsh-theme rgm.zsh-theme Soliah.zsh-theme evan.zsh-theme kafeitu.zsh-theme risto.zsh-theme adben.zsh-theme example.zsh-theme kardan.zsh-theme rixius.zsh-theme af-magic.zsh-theme fino-time.zsh-theme kennethreitz.zsh-theme rkj-repos.zsh-theme afowler.zsh-theme fino.zsh-theme kiwi.zsh-theme rkj.zsh-theme agnoster.zsh-theme fishy.zsh-theme kolo.zsh-theme robbyrussell.zsh-theme alanpeabody.zsh-theme flazz.zsh-theme kphoen.zsh-theme sammy.zsh-theme amuse.zsh-theme fletcherm.zsh-theme lambda.zsh-theme simonoff.zsh-theme apple.zsh-theme fox.zsh-theme linuxonly.zsh-theme simple.zsh-theme arrow.zsh-theme frisk.zsh-theme lukerandall.zsh-theme skaro.zsh-theme ....
这么多的主题可以满足你的各种偏好了,我们只需在./zshrc文件中配置需要的主题即可,比如我们想用lambda.zsh-theme这个主题,我们只要这样配置 ZSH_THEME="lambda"
然后保存这个文件文件,再打开一个新的命令行窗口即可看到效果了。那么这么多的主题如何快速找到哪些是我们喜欢的呢,我们还可以这样设置 ZSH_THEME="random"
我们将主题设置为随机,这样在我们每次打开命令行窗口的时候,都会随机在默认主题中选择一个。这样我们如果觉得当前的主题比较喜欢,可以直接使用 echo 命令输出当前主题的名称 $ echo $ZSH_THEME
更新oh-my-zsh
设置自动更新oh-my-zsh
默认情况下,当oh-my-zsh有更新时,都会给你提示。如果希望让oh-my-zsh自动更新,在~/.zshrc 中添加下面这句
DISABLE_UPDATE_PROMPT=true
要手动更新,可以执行
$ upgrade_oh_my_zsh
卸载oh my zsh
直接在终端中,运行uninstall_oh_my_zsh既可以卸载。
参考文档
http://www.google.com
http://ohmyz.sh/
http://swiftcafe.io/2015/10/31/cafe-time-omz/
安装zsh后,终端mvn命令不能用问题解决
刚开始装maven时,我们会把mvn的环境变量配置在~/.bash_profile文件中,而当你安装zsh后,会发现mvn命令不起作用了,好像没有装一样。其原因还是在启动linux或终端时各个配置文件的先后加载问题及作用域问题。先来看如何解决上面的问题
先打开.zshrc文件,加入mvn的环境变量配置
export MAVEN_HOME=/Users/yangzeyi/Platform/install/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
然后按esc键后,输入命令:wq进行保存退出,记住冒号不可少。重启终端,会发现mvn命令可用。
那为什么会出现这种原因呢,是因为这些系统文件会存在一个优先执行顺序,首先在登录时,先执行的是/etc/profile文件。
然后在启动用户目录下的~/.bash_profile、~/.bash_login或~/.profile文件中的其中一个,执行顺序为~/.bash_profile、~/.bash_login、~/.profile。如果~/.bash_profile文件存在的话,一般还会执行~/.bashrc文件。若要退出shell时还会执行~/.bash_logout文件。
所以不难发现,当在zsh下执行各项命令时,此时~/.zshrc文件则已经执行呢。而~/.bash_profile文件没有执行,所以在其中配置的mvn参数不会加载。其实有两种方法可以解决,一种是楼主上面操作的方法,还有一种与第一种类似,就是在~/.zshrc文件中加入source ~/.bash_profile命令即可。原理都是一样,即是在执行zsh相关的文件时会加载到mvn的相关配置。
简单介绍一下各个文件的作用域:
(1)/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。
(2)/etc/bashrc:为每一个运行bash shell的用户执行次文件。当bash shell被打开时,该文件被读取。
(3)~/.bash_profile:每个用户都可以使用该文件输入专用与自己使用的shell信息,当用户登录时,该问价仅仅执行一次,默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
(4)~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该 文件被读取。
(5)~/.bash_logout:当每次退出系统时(退出bash shell),执行该文件。另外,/etc/profile中设定的变量可以作用于任何用户,而~/.bashrc等中设定的变量只能继承/etc/profile中的变量,是“父子”关系。
(6)~/.bash_profile是交互式、login方式进入bash运行的~/.bashrc是交互式non-login方式进入bash运行的通常二者设置大致相同,所以通常前者会调用后者。