【问题标题】:Launching Sublime Text 2 from Terminal (Mac OS El Capitan)从终端启动 Sublime Text 2 (Mac OS El Capitan)
【发布时间】:2015-10-31 20:53:16
【问题描述】:

我查看了 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。为什么会这样?有没有办法强制终端创建目录?

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

【问题讨论】:

标签: macos command-line sublimetext2 sublimetext osx-elcapitan


【解决方案1】:

我还没有升级到 El Capitán,部分原因是这个原因,但是将 subl 符号链接放入 ~/bin 将适用于任何版本的 OS X。不过,首先,我强烈推荐使用Sublime Text 3。尽管它被称为“测试版”,但它坚如磐石,与 ST2 相比,许多 功能添加、改进和错误修复。我已经专门使用它超过 2 年了,我不会梦想回去。

  1. 在你的主目录中,创建一个bin 目录($ 是终端提示符,不要输入):

    $ cd
    $ mkdir bin
    
  2. 创建符号链接。如果您使用 ST3,这是正确的命令。否则,在Text.app 之间添加\ 2

    $ ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl ~/bin/subl
    
  3. 打开或创建~/.profile~/.bashrc(如果您已经有,请使用它。否则,请使用.profile):

    $ bin/subl .profile
    
  4. 在其中添加以下内容(放在文件中的哪个位置并不重要):

    export PATH=$HOME/bin:$PATH
    

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


根据您的 cmets,我怀疑 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,正如推荐的那样。

【讨论】:

  • 谢谢,我想我明白了...我做了这些步骤,但我必须先source .profile,然后才能使用subl 命令。它有效,但我还有两个问题......我应该去终端的偏好并立即使用source .profile 启动它吗?我可以向我创建的.profile 添加更多命令,还是会与我为崇高的路径冲突?提前致谢。
  • @happycrappie 你用的是什么外壳? ~/.profile 应自动获取。如果不是,请尝试将其重命名为.bashrc.bash_profilemv .profile .bashrc 应该这样做。您可以根据需要向.profile.bashrc 添加任意数量的命令——它只是一个使用登录shell 执行的shell 脚本。我的目前有 101 行...
  • Idk what shell...我想这是标准的(我是整个终端的新手,但我正在努力掌握它)。每当我尝试在˜/folder 中使用ln 某些东西时,它都不允许我这样做。它显示以下内容:$ sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl ˜/bin/subl Password: ln: ˜/bin/subl: No such file or directory 即使我 sudo 它。
  • @happycrappie ls ~/bin 的结果是什么?
  • @happycrappie 您在此处使用“小波浪号”unicode 字符将内容粘贴到 cmets 中,您的 shell 不会将其识别为 home。您需要为此使用常规的 ASCII 波形符(~,ASCII 0x7e),而不是您正在使用的波形符(˜,UTF-8 0xcb9c)。
【解决方案2】:

如果/usr/local 不存在,尝试创建/usr/local/bin 将失败,因为无处可放。您可以先创建/usr/local,也可以在mkdir 中使用-p 标志,这将自动在路径中创建任何缺少的目录。

mkdir -p /usr/local/bin

指向 El Capitan 的无根模式的答案是不正确。四个位置不受无根模式的限制。

/usr/local
/Applications
/Library
~/Library

【讨论】:

    【解决方案3】:

    我遇到了类似的问题,尽管我的 $PATH 变量和 ~/.bash_profile 内容看起来符合预期,但所有创建、删除和重新创建符号链接的尝试都不起作用。最终对我有用的是从实际的 Sublime 安装目录 (/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl) 中删除空间并将符号链接创建运行为

    $ ln -s /Applications/SublimeText.app/Contents/SharedSupport/bin/subl ~/bin/subl
    

    【讨论】:

      【解决方案4】:

      这是因为 El Capitan 的新 rootless 系统:基本上 root 不能再访问系统目录了。

      要禁用此功能,请执行以下操作: Disabling rootless mode on El Capitan

      【讨论】:

      • 我正在阅读它,大多数人认为禁用csrutil 不是一个好主意。还有其他方法吗,例如创建bash_profile
      • 无根模式不限制/usr/local。在他们关于这个主题的 WWDC 会话中特别提到了它作为不受无根模式限制的允许位置。但如果它不存在,则无法在其下创建目录。
      猜你喜欢
      • 2015-12-30
      • 1970-01-01
      • 2014-11-01
      • 2018-12-12
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 2017-05-25
      • 2014-12-15
      相关资源
      最近更新 更多