77

我在修改添加 Sublime Text 2 的路径时遇到问题。我添加了一个~/bin目录并运行以下命令

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

subl 链接出现在~/bin. 但我需要将~/bin目录添加到我的路径中。我对此很陌生,我不知道我的路在哪里。我环顾四周,发现可能的文件是.profile,.bash_profile.bashrc

我没有.bash_profile. 和.profile.bashrc添加

PATH=$PATH:~/bin/subl
export PATH

这是正确的添加吗?如果是这样,我应该在哪里添加它?

当我echo $PATH,我得到:

/Users/<username>/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/bin:/Users/<username>/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/<username>/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/<username>/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

当我输入subl时,我得到:

-bash: subl: command not found

谢谢!

ps 我之前安装了 Macports,它修改了我的.profile文件。不确定这是否与它有关 - 我现在不知道默认值是什么.profile样的。

4

14 回答 14

90

我和你一样新手,这意味着我什至不知道如何阅读与修改 PATH 相关的一半内容。最终,尽管我找到了一种方法,它不需要您将 subl 放入 .rvm/bin 中(因为那是为了其他东西),而是放在它的适当目录中,即 ~/bin 中。

转到您的终端并输入:

open -a Finder /usr/bin

这会将您的 Finder 打开到 /usr/bin 目录。在那里打开一个新的 Finder,转到 Applications,右键单击 Sublime Text 图标并转到 Show Package Contents,然后转到 Contents、SharedSupport、bin。复制 subl 文件并将其粘贴到显示 /usr/bin 的另一个 Finder 中

而已!您应该设置为使用以下命令:

subl . (or subl file.name)
于 2012-09-03T13:40:55.920 回答
61

所有人都在此处发表评论。您需要在 sublime 中添加符号链接/usr/local/bin。它不需要root访问权限。并且不需要创建另一个 bin 目录。

对于崇高的文字 2

ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/

对于崇高的文字 3

ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/
于 2014-09-30T04:53:42.043 回答
41

zsh 更新 由于某种原因,当我最近从 bash 切换到 zsh/prezto 时,路径中的“~/bin”不起作用。我将其更改为“/Users/myusername/bin”,它再次正常工作。我会寻找原因并在找到时更新。如果您有更好的解决方案,请发表评论。

我知道这是一篇旧帖子,但我认为我会为其他任何尝试遵循sublimetext 给出的说明以逐字从 OSX 命令行使用 sublime 的说明记录一个解决方案。Sublime text 3 更新 Sublime Text 3 文档

1)在你的主目录“~/”中创建一个名为“bin”的目录

mkdir ~/bin

2)在您刚刚创建的新目录中创建指向您的 sublime text 2 应用程序的符号链接

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

Sublime Text 3应用程序路径的更新略有不同:

ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" ~/bin/subl

3) 按照 Ryan Hoffman 关于如何在 OSX 中轻松添加到路径的说明:添加到 Mac OSX上的路径 使用他的技术将新创建的“~/bin”添加到路径中。完成后,您的 /etc/paths 文件将如下所示(注意末尾的 ~/bin):

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
~/bin

4) 打开一个新的终端窗口,从命令行开始使用 subl。

于 2013-07-18T19:06:30.153 回答
11

你不需要做PATH=$PATH:~/bin/subl。相反,PATH=$PATH:~/bin就足够了。这样,您就是在告诉 shell 查找~/bin二进制文件。使用您的命令,您告诉外壳程序查看~/bin/subl二进制文件的“文件夹”,这不起作用。此外,您不需要在两个文件中添加命令。在您的.bashrc. 我不是bash专家,但我可以推荐阅读这篇博文以进一步解释不同的启动文件。

于 2012-05-26T17:46:18.983 回答
7

我想提出一个替代解决方案来解决这个问题。使用路径中已有的目录。像这样:

$ sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

tl;博士

我在 Yosemite (OS X 10.10) 中遇到了同样的问题,在全新安装的操作系统中, ~/bin 目录不存在并且不在您的路径中。然而,在你的路径中已经有很多有用的地方,你可以将符号链接放置到 Sublime。

例如,这是我路径中当前的项目(用于$ echo $PATH获取列表):

/Applications/Postgres.app/Contents/Versions/9.3/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin:/usr/local/bin
/usr/local/mysql/bin

~/bin/subl您可以通过更改说明的部分轻松修改脚本以使用路径中已经存在的位置/usr/local/bin/subl

因此,运行以下命令将实现您的目标。

$ sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
于 2014-12-22T18:25:05.847 回答
3

我最近一直在努力解决这个问题。我意识到~路径中没有扩展到您的主目录。至少它不适合我。

这就是我为使它工作所做的。

export PATH=$PATH:$HOME/bin

根据我为 brew cask 找到的一些后续说明,我subl从应用程序目录链接到我的。~/bin不幸的是,路径从未更新。

于 2014-06-09T23:46:42.223 回答
3

您需要首先创建一个指向/usr/bin. 符号链接 - 或 SymLink - 是目录的别名或快捷方式。执行以下操作:

  1. 首先,使用终端命令行确保您位于主目录中

    cd ~

  2. 创建指向您的usr/bin目录的符号链接。

    ln -s /usr/bin bin

    where ln= 创建链接,-s= 符号,后跟[target diectory]and[name of link]

  3. 测试你的新链接

    cd bin

    这应该带你到你的~/bin- 相同的/usr/bin~表示里面隐藏着一条很长的路径。

  4. 现在,回到你的主文件夹安装subl命令

    cd ~

  5. 安装 Sublime Text 2 命令行工具。我将sudo用来绕过任何权限块。

    sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

    你应该很高兴去!通过简单地输入subl命令行来测试它,它应该从终端启动 Sublime Text 2。

于 2014-02-14T16:22:56.957 回答
2

简单地在终端上执行此操作:

sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/bin/subl

那是我的 Sublime 存储的地方,尝试输入 Sublime 的路径,因为您的版本可能不同。

subl . 

应该工作正常。

于 2014-04-04T17:42:03.670 回答
2

遇到了同样的挑战,最终只创建了一个 .bash_profile 文件,并直接在那里添加了路径语句。工作顺利。您可能还想查看 Alvin Alexander 的示例 .bash_profile 帖子(http://alvinalexander.com/blog/post/mac-os-x/sample-mac-osx-bashrc-terminal-startup-file) - 我找到了我还将添加一些其他有用的命令。

于 2013-01-28T17:50:11.847 回答
2
echo $PATH

并使用其中已经存在的路径之一。在这个例子中“/usr/local/bin”

sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

如果系统返回No such file or directory

sudo mkdir /usr/local/bin/
sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

测试它是否工作

subl

这适用于 Sublime Text 3。

于 2017-08-05T03:50:32.397 回答
1

以下是执行此操作的完整说明(对于Sublime Text 3):

  1. 请通过以下命令检查您的系统完整性保护状态:

    $ csrutil status
    

    如果已启用,请按照以下步骤操作:

    1. 通过重新启动机器并在启动时按住 Command + R 启动到 OS X 的恢复操作系统。

    2. 从实用程序菜单启动终端。

    3. 运行以下命令:

      $ csrutil disable
      $ reboot
      

    这是由于OS X 的一项名为System Integrity Protection的安全功能,它将防止对系统位置和进程的未经授权的访问。因此,如果启用此功能,您将无法修改 /usr/bin 的内容。

  2. 创建从/usr/bin~/bin的符号链接:

    $ sudo ln -s /usr/bin ~/bin
    
  3. 创建从 Sublime Text 3 CLI 工具到~/bin的符号链接:

    $ sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl ~/bin
    
  4. 测试一下。

    $ subl .
    
于 2016-06-18T18:15:57.077 回答
0

以下对我有用。如果有人寻求帮助,我有 Sublime 版本 3 并将其发布在这里:

sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /bin/subl
于 2013-10-03T13:05:40.323 回答
0

在 MacOS 11 上,此命令为我建立了 Sublime Merge 的符号链接。主要区别似乎是ln使用-sv而不是调用-s

ln -sv "/Applications/Sublime Merge.app/Contents/SharedSupport/bin/smerge" /usr/local/bin/smerge
于 2022-02-09T20:48:11.217 回答
0

似乎在 Yosemite 中该命令实际上是针对 Sublime 3 的,但我可能弄错了:

    ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/
于 2015-08-05T01:15:59.080 回答