从终端启动Sublime Text 2(Mac OS El Capitan)

3

我在Stack Overflow上查找了很多内容,别人的问题已经得到解决。但是我却不能在我的Mac上使任何一个解决方案生效。

我尝试过sudo mkdir /usr/local/binsudo mkdir -p /usr/local/bin,但终端显示:

mkdir: /usr/local: No such file or directory
mkdir: /usr/local/bin: Operation not permitted

当我执行 cd /usrls 命令时,它会显示以下文件:

X11
adic
lib
sbin
standalone
X11R6
bin
libexec
share

usr 文件夹里面应该有一个 local 文件夹吗?

无论如何,我无法在 usrusr/bin 文件夹内创建任何目录,甚至使用 ls。为什么会这样?是否有一种方法可以强制终端创建目录?

我也是新手,正在尝试理解终端的工作原理...


欢迎来到 Stack Overflow!请花点时间阅读《如何使用 Markdown 或 HTML 格式化我的帖子?》(http://stackoverflow.com/help/formatting),因为您似乎在努力调整格式。 - Jongware
4个回答

5

我因为这个原因没有升级到El Capitan,但是将subl符号链接放在~/bin中可以适用于任何版本的OS X。不过,首先我强烈建议使用Sublime Text 3。尽管它被称为“beta”版,但它非常稳定,并且相比ST2有很多功能增强、改进和错误修复。我已经专门使用它超过2年了,而且我不会想回去使用ST2。

  1. In your home directory, create a bin directory ($ is the terminal prompt, don't type it):

    $ cd
    $ mkdir bin
    
  2. Create the symlink. If you use ST3, this is the proper command. Otherwise, add \ 2 between Text and .app:

    $ ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl ~/bin/subl
    
  3. Either open or create ~/.profile or ~/.bashrc (if you already have one, use that. Otherwise, use .profile):

    $ bin/subl .profile
    
  4. Add the following to it (it really doesn't matter where in the file you put it):

    export PATH=$HOME/bin:$PATH
    

保存文件,重新启动终端会话,subl 命令现在应该已经可用。


根据您的评论,我怀疑 Sublime Text.app 实际上可能在您的 /Users/username/Applications 目录中,而不是在 /Applications 中。尝试运行以下命令来测试:

$ cd
$ rm bin/subl
$ ln -s /Users/username/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl $HOME/bin/subl
# where username is your actual user name
$ bin/subl .bashrc

如果Sublime打开时显示一个实际的.bashrc文件或一个空文件,那么你就可以添加上述export PATH=...命令并保存该文件。请记住,ln命令的路径假定你正在使用建议使用的Sublime Text 3版本。

1
@happycrappie 你在使用哪个shell? ~/.profile 应该会自动被调用。如果没有,尝试将其重命名为 .bashrc.bash_profilemv .profile .bashrc 就可以了。你可以在你的 .profile.bashrc 中添加任意数量的命令 - 它只是一个在登录shell中执行的shell脚本。我的目前有101行... - MattDMo
@happycrappie ls ~/bin 的结果是什么? - MattDMo
显然,我有两个应用程序文件夹,一个在我的用户文件夹内,另一个在根目录(?)硬盘上。我可以通过终端访问/Users/Eryc/Applications文件夹,但是我不能从根目录访问它。我甚至不认为我现在允许在我的终端中使用root。它显示iMac-de-Eryc:˜ Eryc$,当我输入cd ˜/时,它显示:-bash: cd: ˜/: No such file or directory所以我猜问题实际上是访问我的硬盘或根目录,或者是怎么称呼它...请记住我正在运行El Capitain,就像@imvelox提到的那样没有root。 - happycrappie
2
@happycrappie,您在此处使用“小波浪线”Unicode字符粘贴注释内容,但您的shell无法识别它。您需要使用常规ASCII波浪线(~,ASCII 0x7e)而不是您正在使用的那个(˜,UTF-8 0xcb9c)。 - Dan Lowe
@happycrappie 没问题,很高兴能帮助你。实际上,我会将编码更改为 en_US.UTF-8,这样您就不会在以后遇到 Unicode 字符的问题了。 - MattDMo
显示剩余10条评论

1
如果/usr/local不存在,尝试创建/usr/local/bin将会失败,因为没有地方可以放置它。您可以先创建/usr/local,或者使用-p标志来创建mkdir,这将自动创建路径中缺失的任何目录。
mkdir -p /usr/local/bin

指向El Capitan的rootless模式的答案是不正确的。有四个位置不受rootless模式限制。
/usr/local
/Applications
/Library
~/Library

0
我曾经遇到过类似的问题,尝试创建、删除和重新创建符号链接都没有成功,即使我的$PATH变量和~/.bash_profile内容看起来都是正确的。最终解决方法是从实际的Sublime安装目录(/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl)中移除空格,并运行符号链接创建命令。
$ ln -s /Applications/SublimeText.app/Contents/SharedSupport/bin/subl ~/bin/subl

-1

1
我正在阅读相关内容,大多数人认为禁用csrutil不是一个好主意。是否有其他方法,例如创建bash_profile - happycrappie
无根模式不限制/usr/local。在他们的WWDC会议上,明确指出这是一个允许使用但不受无根模式限制的位置。但如果它不存在,则无法在其下创建目录。 - Dan Lowe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接