您好、欢迎来到现金彩票网!
当前位置:棋牌游戏娱乐平台 > 外壳命令 >

macOS 上的终极 Shell

发布时间:2019-06-12 09:34 来源:未知 编辑:admin

  很早写过这个主题并发表在了我的博客上,貌似是我博客上阅读量最大的一篇文章。昨天有读者反馈了文章中的一些问题,毕竟过去好几年了,再者,之前的文风比较啰嗦,废话很多,于是写一个升级版。正好,微信文章对代码样式的支持也很给力了,看这也舒服。

  什么是 Shell 呢?Shell 是 Linux/Unix 的一个外壳,你理解成衣服也行。它负责外界与 Linux 内核进行交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核。内核是真正干活的,干完之后再把结果返回用户或应用程序。从某种意义上,Shell 有点像产品经理,负责提需求,内核是程序员,负责实现这些需求。

  Linux/Unix 提供了很多种 Shell,为什么要这么多 Shell?可能和女生买衣服买包的心理差不太多,程序员们也普遍具备把复杂的事情搞简单,然后把简单的事情再搞复杂的综合能力。一个强人程序员看到不爽的 Shell,他并不会去改进这玩意,而是自己重写一套,久而久之,就形成了一些标准。常用的 Shell 有这么几种,sh、bash、csh 等,想知道你的系统有几种Shell,可以通过以下命令查看:

  在 Linux 系统里执行这个命令和 Mac 略有不同,你会发现 Mac 多了一个 zsh,也就是说,macOS 为用户预装了个 zsh,这是个什么 Shell 呢?

  目前常用的 Linux 系统和 macOS 系统的默认 Shell 都是 bash,但是真正的强者都深藏不露,比如 zsh, 史称「终极 Shell」。不过由于早期配置过于复杂,无人问津,很多人跑来看看 zsh 的配置指南,二话不说扭头就走了。直到有一天,国外有个穷极无聊的程序员开发出了一个能够让你快速上手的 zsh 项目,叫做「oh my zsh」,Github 网址是:

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

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

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

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

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

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

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

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

  至此,安装、配置、插件三位一体,终极 Shell 全面登场。退出终端会话重新登录,开始感受 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,文件太多就歇菜了。

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

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

http://nanosong.com/waikemingling/161.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有