Mac必备软件渐集之ZSH-终极Shell

写在码字之前:“过一个平凡无趣的人生实在太容易了,你可以不读书,不冒险,不运动,不写作,不外出,不折腾……但是,人生最后悔的事情就是:我本可以。”——陈素封。很多事情只有真正的去折腾后,才发现她的美丽与魅力。Mac是如此,而这ZSH-Unix传承下来系统的终极Shell亦是如此。

Mac必备软件渐集之ZSH-终极Shell

很早就在各种博文中看过ZSH的大名鼎鼎。因Mac下自带的Bash觉得还行就没怎么理会。但开始折腾她,源于池建强先生的终极 Shell——ZSH,绝对的一种相见恨晚。喜欢在玩儿命令行且没有配置ZSH的盆友们,赶紧刷下这篇文章吧。保证物有所值!其好处就不在多加赘述了。

安装ZSH

目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh, 这货绝对是马车中的跑车,跑车中的飞行车,史称『终极 Shell』,但是由于配置过于复杂,所以初期无人问津,很多人跑过来看看 zsh 的配置指南,什么都不说转身就走了。直到有一天,国外有个穷极无聊的程序员开发出了一个能够让你快速上手的zsh项目,叫做「oh my zsh」,Github 网址是:https://github.com/robbyrussell/oh-my-zsh。这玩意就像「X天叫你学会 C++」系列,可以让你神功速成,而且是真的。

如果你用 Mac,恭喜你!输入cat /etc/shells可以看到Mac系统自带这ZSH。
如果你用 Redhat Linux,执行:sudo yum install zsh
如果你用 Ubuntu Linux,执行:sudo apt-get install zsh
如果你用 Windows……去洗洗睡吧。

安装完成后设置当前用户使用 zsh:chsh -s /bin/zsh,根据提示输入当前用户的密码就可以了。

安装oh my zsh

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

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

手动安装:

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

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


ZSH

ZSH 的配置

zsh 的配置主要集中在用户当前目录的.zshrc里(在mac的用户目录下ls -a命令就可以看到),用 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=vi
alias -s c=vi
alias -s java=vi
alias -s txt=vi
alias -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的初衷

开始折腾不仅是因为读了池建强先生的那篇博文;近来也是折腾Web前段,每次建立个html页面,因Mac下目测不能直接建立一个文件,只好在Terminal 那里touch一个。可是习惯玩儿Sublime Text的自己,不怎么折腾Vim,那打开该html可酒繁琐咯。总不能每次都拖进去或者使用open吧。而ZSH就可以利用其强大的配置,能针对文件类型设置对应的打开程序,哇哦,完美有木有?

那配置ZSH时候遇到点问题还是要记录下的。alias -s html=sublime,很明显这一句无法得到执行(没有配置sublime环境变量)。而参考网络上各种博文比如MAC 设置环境变量path的几种方法,颇为麻烦且目测并不能很好的工作;几番搜索,几番实践,发现“linux/mac下的自定义命令alias,并保存别名使其永久生效(重启不会失效)”这个方法不错,参见Here。利用 alias aCommandAlias='aCommand 一堆参数什么的'比如:

alias gpush='git push origin HEAD:refs/for/master'

这样在终端中,只需要输入gpush就ok了。但是只是这样的话,会在重启之后失效,解决办法是编辑~/.bashrc文件(没有的创建一个就好),每行加入一个alias命令。比如:

alias cdhome='cd ~'
alias cdroot='cd /'
alias gpull='git pull'
alias gci='git commit -a'
alias gpush='git push origin HEAD:refs/for/master'
alias gst='git status'
alias sublime='open -a "Sublime Text"' //加入Sublime Text
alias ip='osascript -e "IPv4 address of (system info)"' 

保存文件后,运行:source ~/.bashrc(不然不生效)就可以了。如果还不行的话,说明没有~/.bash_profile文件,或者文件中没有执行.bashrc文件。(.bash_profile文件是用户登陆终端的时候会自动执行的文件,一般此文件中会调用.bashrc)如果是这样,需要打开(如果没有的话先创建)文件:~/.bash_profile在里面加入一行:source ~/.bashrc即可!

昨晚在Mac下测试一番可以。加上ZSH的配置,只要输入xxx.html,就可以打开该文件,挺爽!

所以说:“过一个平凡无趣的人生实在太容易了,你可以不读书,不冒险,不运动,不写作,不外出,不折腾……但是,人生最后悔的事情就是:我本可以。——陈素封”,这一句讲的很好。很好美好就需要从折腾开始。因可能有一点繁琐的折腾,让更多的事儿变得更加简洁。

后记:关于更多ZSH信息请参见终极 Shell——ZSH

-2015-07-29于深圳南山-

原文出处: http://www.jeffjade.com
原文链接:Mac必备软件渐集之ZSH-终极Shell

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 142,272评论 1 300
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 61,027评论 1 256
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 93,908评论 0 212
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 40,909评论 0 175
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 48,638评论 1 255
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 38,710评论 1 175
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 30,332评论 2 267
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,125评论 0 165
  • 想象着我的养父在大火中拼命挣扎,窒息,最后皮肤化为焦炭。我心中就已经是抑制不住地欢快,这就叫做以其人之道,还治其人...
    爱写小说的胖达阅读 28,938评论 6 229
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 32,475评论 0 213
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,244评论 2 214
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 30,566评论 1 227
  • 白月光回国,霸总把我这个替身辞退。还一脸阴沉的警告我。[不要出现在思思面前, 不然我有一百种方法让你生不如死。]我...
    爱写小说的胖达阅读 24,206评论 0 31
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,095评论 2 213
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 31,479评论 3 204
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,609评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 25,988评论 0 166
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 33,480评论 2 230
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 33,549评论 2 229

推荐阅读更多精彩内容