在类Unix系统中我们可以很随心的添加一些程序在终端里快捷方法,比如将一些常用的工具放在/usr/bin下面
Sublime Text3是一个小巧精致而又功能强大的程序,而且本猫也安装了Swift语言的语法包,对于一些天马行空一闪而过的的创意再也不用动用Xcode了.所幸的是在Sublime Text的程序包中作者早就添加了终端支持,其相对目录为:
Contents/SharedSupport/bin/subl
我们只要将该文件做一个软连接到/usr/bin里就可以实现对任何文件快速用sublime text打开了.指令如下:
ln -s "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl" /usr/bin/subl
可是结果却是:操作不被允许:
ln: /usr/bin/subl: Operation not permitted
使用管理员sudo命令,依旧失败!
原来MacOS 10.11开始apple引入了Rootless机制,你再也不能随心所欲的改写很多关键路径了,就算你是Root用户也不行,除非是Apple自身签名的软件(含命令行工具)才可以!用Apple的话来说:
Rootless机制将成为对抗恶意程序的最后防线
有兴趣的童鞋可以参考下面的链接:
在 OS X 10.11 中引入的 Rootless 是如何实现的?有什么优势与缺陷?
Mac OS X 11中的/usr/bin 的“Operation not permitted”
如果要关闭Rootless必须重启Mac进入恢复模式,然而关闭它意味着你的MacOS安全大门变得有些薄弱,这并不是什么好消息!!!!!
那么有没有什么办法即可以不用关闭Rootless又可以设置Sublime Text3的快捷方式呢!?
答案是:必须的!!!
我们只需要将其路径添加到/usr/local/bin下即可,Rootless并没有限制该目录的修改,而且bash也会从该目录中寻找可执行的bin!YES!!!
问题得以完美解决!以后打开任何swift文件,我们只需要在终端的任意路径中敲:
subl xxx.swift
即可!骚年,你值得拥有!!! ;)
原文:https://blog.csdn.net/mydo/article/details/52815749