@qidiandasheng
2016-11-12T21:41:58.000000Z
字数 3618
阅读 2961
使用工具
介绍什么是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=vi
alias -s py=vi
alias -s rb=vi
alias -s html=vi
在 zsh 下直接输入xxx.rb,将自动用 vi 打开,直接输入xxx.tgz,将直接按照tar -xzvf解压。
zsh 的目录跳转更为智能,你无需输入cd,直接输入路径即可。..表示后退一级目录,../../表示后退两级,依次类推。(...的作用和../../相同)。
输入d,将列出当前 session 访问过的所有目录,再按提示的数字即可进入相应目录。
➜ ~ d
0 ~
1 ~/Work/DFC
2 ~/Work/pod/DFCWeiXin
3 ~/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 # 直接打开sublime
st file_a # 用sublime打开文件 file
st dir_a # 用sublime打开目录 dir
stt # 在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