@qidiandasheng
2016-11-12T13:41:58.000000Z
字数 3618
阅读 3332
使用工具
介绍什么是Shell直接看MACTALK里的介绍:
Shell是Linux/Unix的一个外壳,你理解成衣服也行。它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后再把结果返回用户或应用程序。
Linux/Unix提供了很多种Shell,为毛要这么多Shell?难道用来炒着吃么?那我问你,你同类型的衣服怎么有那么多件?花色,质地还不一样。写程序比买衣服复杂多了,而且程序员往往负责把复杂的事情搞简单,简单的事情搞复杂。牛程序员看到不爽的Shell,就会自己重新写一套,慢慢形成了一些标准,常用的Shell有这么几种,sh、bash、csh等。
目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh, 这货绝对是马车中的跑车,跑车中的飞行车,史称『终极 Shell』,但是由于配置过于复杂,所以初期无人问津,很多人跑过来看看 zsh 的配置指南,什么都不说转身就走了。直到有一天,国外有个穷极无聊的程序员开发出了一个能够让你快速上手的zsh项目,叫做「oh my zsh」。
所以说虽然mac 预装了zsh ,但是很少有人使用此shell ,因为 zsh 的默认配置及其复杂繁琐。oh my zsh这个开源项目,让zsh配置降到0门槛,而且它完全兼容 bash。安装oh my zsh时,它自动读取你的环境变量并且自动帮 zsh 进行设置。
zsh 的命令补全功能非常强大,可以补齐路径,补齐命令,补齐参数等。但是oh my zsh会使你的补全更加强大。
原来没有使用oh my zsh的话直接使用tab键能显示出所有待选项,但是选择特别麻烦,不能使用上下左右键选择。
使用了oh my zsh之后就能第一次tab后显示出所有待选项,再按一次 tab 键,进入选择模式,然后按上下左右键进行选择,并且当前选择的会有高亮。

alias其实就是把你一些平时觉得麻烦的命令简化成你自己记得的别名,下次直使用这个别名就行了。
比如我常常在要cd到某个特别长的目录:cd /Users/dasheng/Work/pod/Example我会觉得特别麻烦。所以会设置一下别名。
alias是在对应的shell配置文件下设置的。比如bash下是设置~/.bash_profile,zsh下是~/.zshrc。我们现在在zsh下设置:
//打开文件(你也可以直接文本打开)vi ~/.zshrc//写入别名,然后保存alias GoExample="cd /Users/dasheng/Work/pod/Example"//重新载入配置令刚才命令生效source ~/.zshrc//最后只要输入GoExample就能进入对应的目录了GoExample
所以我们常常会使用alias设置别名,zsh 不仅支持普通 alias,还支持针对文件类型的 alias。
比如设置:
alias -s gz='tar -xzvf'alias -s tgz='tar -xzvf'alias -s zip='unzip'alias -s bz2='tar -xjvf'alias -s php=vialias -s py=vialias -s rb=vialias -s html=vi
在 zsh 下直接输入xxx.rb,将自动用 vi 打开,直接输入xxx.tgz,将直接按照tar -xzvf解压。
zsh 的目录跳转更为智能,你无需输入cd,直接输入路径即可。..表示后退一级目录,../../表示后退两级,依次类推。(...的作用和../../相同)。
输入d,将列出当前 session 访问过的所有目录,再按提示的数字即可进入相应目录。
➜ ~ d0 ~1 ~/Work/DFC2 ~/Work/pod/DFCWeiXin3 ~/Work➜ ~ 2~/Work/pod/DFCWeiXin➜ DFCWeiXin git:(master) ✗
oh my zsh其实就是一种zsh的配置文件,也就是说它自动的帮你配置了~/.zshrc。oh my zsh提供了大量的主题和插件,极大的拓展了 zsh 的功能,推动了 zsh 的流行。
oh-my-zsh 内置了大量主题,可在~/.oh-my-zsh/themes中查看具体的配置。也可在官网查看各种主题的截图,选择自己喜欢的。oh-my-zsh默认的是robbyrussell,可以在.zshrc看到ZSH_THEME="robbyrussell",修改双引号里的主题名为你自己喜欢的主题。然后source ~/.zshrc重启配置文件,就能看到新主题了。
oh-my-zsh 提供极为丰富的插件,在~/.oh-my-zsh/plugins目录下查看具体的配置。在.zshrc中写入plugin(git wd autojump history-substring-search sublime osx)即可使用插件。以下插件按个人觉得的重要程度排序。
它的作用就是能够快速的切换到常用的目录。我们用命令行时经常会遇到这样一种情况,我们常用的目录就那么几个,而这些目录有时候会再很深的层级中。使用 cd 命令在这些深层级目录中切换就比较耗费时间了。
wd 插件正是为了解决这个问题,比如我们有一个常用的目录 /Users/dasheng/Work/pod/Example,我们首先进入到这个目录中,然后输入
wd add Example
这个命令相当于给当前目录做了一个标识,标识名叫做 web ,我们下次如果再想进入这个目录,只需输入:
wd Example
这样就可以完成目录切换了,非常方便。
//其实它就类似于alias做了一个目录的别名一样的东西。下面是一些常用命令//删除对应的映射wd rm Example//删除所有的映射wd clean//列出所有的映射wd list//列出对应目录下的文件wd ls pod
如果你之前打开过/Users/dasheng/Work/pod/Example目录,现在只需敲入j Example就可以快速切换到/Users/dasheng/Work/pod/Example目录。
你输入的每条命令他会给你记录下时间,并且在你的home目录创建.zsh_history/相对应的目录,并记录你在当前目录下用过的命令。
你只要输入你之前输入过的命令中任何一个字母,然后按上下键,它就会模糊匹配出之前的命令。
sublime插件
该插件可以使用命令行打开sublime。
常用命令如下:
st # 直接打开sublimest file_a # 用sublime打开文件 filest dir_a # 用sublime打开目录 dirstt # 在sublime打开当前目录,相当于 st .
osx插件
该插件增强 Mac 下的使用体验,提供了如下命令:
tab: 在一个新标签打开当前目录cdf: cd到当前Finder中打开的目录;quick-look: 快速预览该文件,类似于在 Finder 中按下空格键;man preview: 在 preview 中打开 man page;itunes: 命令行操作 iTunes。last-working-dir插件
last-working-dir 插件,可以记录上一次退出命令行时候的所在路径,并且在下一次启动命令行的时候自动恢复到上一次所在的路径。这一切不需要我们进行任何操作,全部都是自动完成的。只需要在 .zshrc 文件中将插件开启即可。
cat /etc/shells
以下就是Mac默认安装的shell
/bin/bash/bin/csh/bin/ksh/bin/sh/bin/tcsh/bin/zsh
输入以下命名,打开一个新的终端窗口便可
chsh -s /bin/zsh
curl 安装
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
wget 安装
wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh或:sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
需要把shell切换到zsh
uninstall_oh_my_zsh