Zsh

不少程序员都觉得Mac的一大优势就是其Shell,也有很多人觉得Mac与Linux在Shell上很相似。不错,但是Mac还是略胜一筹或者说高一个量级。今天,我将向大家介绍一个Mac特有的Shell(Linux也可以安装,但是不是系统自带。)—— Zsh。

切换到Zsh

使用cat /etc/shells指令,我们可以看看自己的系统有哪些Shells,下面是我的Mac的结果:

1
2
3
4
5
6
7
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish

使用这个指令切换到Zsh:chsh -s /bin/zsh。(想使用其他Shell也是同样的指令哦。)

这是,我们的Shell配置文件就为.zshrc了。

我觉得从这里我们应该可以知道,为什么之前的Shell配置文件要以.bash_profile命名了吧。因为Mac默认Shell是Bash。

迁移Bash配置

我使用Bash有好几年了,那些配置都是一些环境变量啊什么的,如果在Zsh的配置里再写一遍,无疑是一件很费时又低效的事。那有没有什么快捷的方式呢?当然有!

通过如下指令:source ~/.bash_profile就可以将.bash_profile里的配置全部引入到.zshrc中了。同理,如果你想自己写配置,也可以通过这种方式引入。(后文你将看到一个第三方工具就是这么做的。)

安装oh my zsh

通过wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh指令安装。

这时我们发现在.zshrc文件中,多了两行:

1
2
export ZSH=/Users/NAME/.oh-my-zsh
source $ZSH/oh-my-zsh.sh

自定义Shell主题

使用oh my zsh主要的原因是使用其提供的漂亮的主题,主题目录在.oh-my-zsh/themes/下,选择主题ZSH_THEME="robbyrussell"。这时我的Shell主题就是robbyrussell了。

打开robbyrussell.zsh-theme文件,我们可以看见几条配置。

我将其中的PROMPT修改为:

PROMPT='${ret_status} %{$fg[cyan]%}%d %{$reset_color%} $(git_prompt_info)%{$fg_bold[red]%}>%{$fg_bold[yellow]%}>%{$fg_bold[green]%}> '

这时我的Shell就变成了这样:

Zsh

可以发现我的定制有:显示绝对路径,>>>等。

还有很多主题与配置,大家可以自己尝试。

定制Shell

Zsh还有个功能就是“别名”。不知道大家有没有这样的经历,需要打开.plist这样的文件,如果用普通编辑器打开会非常界面不友好,而用Xcode打开则完美可观。那怎么在控制台直接用Xcode打开文件呢?(其他软件同理)

我在.zshrc中添加:alias xcode="/Applications/Xcode.app/Contents/MacOS/Xcode",之后我就可以使用xcode X来用Xcode打开X文件了。

我们也可以为某种类型文件设置默认打开方式:alias -s html=atom(当我们键入.html文件时,会自动用Atom打开)。

安装插件

oh my zsh为Zsh提供了100+插件,如果我们需要安装某插件,只需要在.zshrc文件中的plugins=()中添加,用空格隔开,只需要填插件名字,默认添加了git

在这里我向大家介绍几种网上很常见的插件:

  1. git当你处于一个 git 受控的目录下时,Shell 会明确显示 「git」和 branch,如上图所示,另外对 git 很多命令进行了简化,例如 gco=’git checkout’、gd=’git diff’、gst=’git status’、g=’git’等等,熟练使用可以大大减少 git 的命令长度,命令内容可以参考~/.oh-my-zsh/plugins/git/git.plugin.zsh。
  2. osxtab 增强,quick-look filename 可以直接预览文件,man-preview grep 可以生成 grep手册 的pdf 版本等。
  3. autojump像他的名字一样,提供自动补全等很多功能,大家自己去尝试吧。

注意:安装autojump建议使用Homebrew

brew install autojump

然后按照提示将一句类似这个

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

的句子插入到.zshrc文件中即可。



本文链接: http://home.meng.uno/articles/d911b12b/ 欢迎转载!

© 2018.02.08 - 2020.06.02 Mengmeng Kuang  保留所有权利!

UV : | PV :

:D 获取中...

Creative Commons License