macOS 上的终极 Shell

它可以让你神功速成,不必自宫。

下面我们看看如何安装、配置和使用 zsh。

安装 zsh

如果你用 Mac,可以用 zsh –version 看下版本,如果低于 5.0,可以用就可以使用 brew install zsh zsh-completions 升级一下。

如果你用 Redhat Linux,执行:sudo yum install zsh。

如果你用 Ubuntu Linux,执行:sudo apt-get install zsh。

如果你用 Windows……微软好像也开发了自己的 Shell……

安装完成后设置当前用户使用 zsh:

根据提示输入当前用户的密码就可以了。

安装 oh my zsh

首先你要有 git,这个就不说了。

安装「oh my zsh」,可以自动安装也可以手动安装。

自动安装有两种方式,

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

手动安装:

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zshcp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

都不复杂,安装完成之后退出当前会话重新打开一个终端窗口,你就可以见到这个彩色的提示了:

配置

zsh 的配置主要集中在用户当前目录的 .zshrc 里,用 vim 或你喜欢的其他编辑器打开 .zshrc,在最下面会发现这么一行字:

# Customize to your needs…

可以在此处定义自己的环境变量和别名,当然,oh my zsh 在安装时已经自动读取当前的环境变量并进行了设置,你可以继续追加其他环境变量。

接下来进行别名的设置,我自己的部分配置如下:

alias cls='clear'alias ll='ls -l'alias la='ls -a'alias vi='vim'alias javac="javac -J-Dfile.encoding=utf8"alias grep="grep --color=auto"alias -s html=mate # 在命令行直接输入后缀为 html 的文件名,会在 TextMate 中打开alias -s rb=mate # 在命令行直接输入 ruby 文件,会在 TextMate 中打开alias -s py=vi # 在命令行直接输入 python 文件,会用 vim 中打开,以下类似alias -s js=vialias -s c=vialias -s java=vialias -s txt=vialias -s gz='tar -xzvf'alias -s tgz='tar -xzvf'alias -s zip='unzip'alias -s bz2='tar -xjvf'

zsh 的厉害的地方在于不仅可以设置通用别名,还能针对文件类型设置对应的打开程序,比如:

alias -s html=mate,意思就是你在命令行输入 hello.html,zsh会为你自动打开 TextMat 并读取 hello.html; alias -s gz='tar -xzvf',表示自动解压后缀为 gz 的压缩包。

总之,只有想不到,没有做不到。

设置完环境变量和别名之后,基本上就可以用了,如果你是个主题控,还可以玩玩 zsh 的主题。在 .zshrc 里找到ZSH_THEME,就可以设置主题了,默认主题是:

ZSH_THEME=“robbyrussell”

oh my zsh 提供了数十种主题,相关文件在~/.oh-my-zsh/themes目录下,你可以随意选择,也可以编辑主题满足自己的个性化需求,我采用了默认主题 robbyrussell,不过做了一点小小的改动:

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%}'

对照原来的版本,我把 c 改为 d,c 表示当前目录,d 表示绝对路径,另外在末尾增加了一个“ > ”,改完之后的效果是这样的:

大家可以尝试进行改造,也算个趣事。不喜欢折腾的,原生主题也挺好。

最后我们来说说插件。

插件

oh my zsh 项目提供了完善的插件体系,相关的文件在 ~/.oh-my-zsh/plugins 目录下,默认提供了几百种,大家可以根据自己的实际学习和工作环境采用,想了解每个插件的功能,只要打开相关目录下的 README 文件看一下就知道了。插件也是在 .zshrc 里配置,找到 plugins 关键字,你就可以加载自己的插件了,系统默认加载 git ,你可以在后面追加内容,如下:

plugins=(git textmate ruby autojump osx mvn gradle tmux)

下面简单介绍几个:

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、textmate:mr 可以创建 ruby 的框架项目,tm finename 可以用 textmate 打开指定文件,等等。

3、osx:osx 的插件是用 AppleScritp 编写的,实现了不少快捷命令,比如 split_tab(分割窗口)、ofd(打开当前目录 Finder)、quick-look filename (可以直接预览文件)、man-preview grep (可以生成 grep手册 的pdf)版本等。

4、autojump:zsh 和 autojump 的组合形成了 zsh 下最强悍的插件,最后主要介绍一下它吧。

首先安装 autojump,在 macOS 中可以使用 brew 安装:

brew install autojump

如果是 Linux,去下载 autojump 的最新版本,比如:

git clone git://github.com/wting/autojump.git

解压缩后进入目录,执行

./install.sh

至此,安装、配置、插件三位一体,终极 Shell 全面登场。退出终端会话重新登录,开始感受 zsh 的迅疾如风。

使用 zsh

1、兼容 bash,原来使用 bash 的兄弟切换过来毫无压力,该咋用咋用。

2、强大的历史记录功能,输入 grep 然后用上下箭头可以翻阅你执行的所有 grep 命令。

3、各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下 tab 键,补全项可以使用 ctrl+n/p/f/b上下左右切换。比如你想杀掉 java 的进程,只需要输入 kill java + tab键,如果只有一个 java 进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。ssh + 空格 + tab 键,zsh 会列出所有访问过的主机和用户名进行补全。

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

5、目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。

6、在当前目录下输入 .. 或 … ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。

7、通配符搜索:ls -l */.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替 find,文件太多就歇菜了。

8、更强的别名:请参考配置一节。

9、插件支持:zsh 经过这些年的发展,程序员们为它开发了各种各样的插件,你要你能想到的,包括语言、工具、容器、操作系统、数据库、编辑器,应有尽有。想用啥就自己去找好了。

……

感谢那位开发了 oh my zsh 的程序员,他的代码提升了无数程序员的效率,节省了大量的时间。所以我们说,程序员改变世界。

有勘误或好的使用技巧,可以在留言补充

有勘误或好的使用技巧,可以在留言补充返回搜狐,查看更多

Copyright © 2088 世界杯预选赛中国_1994年世界杯冠军是谁 - nywk120.com All Rights Reserved.
友情链接
Top