如何在路径中添加〜/ bin?


74

我在修改添加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
您的标题和第一个段落指的是/bin,但其余问题指的是~/bin
基思·汤普森

1
您是对的-这表明我几乎完全不了解目录路径。我由subl文件移动到.rvm / bin中,其中发现一种解决方法的黑客在我的道路。这就是我现在需要做的,在我更好地学习UNIX之前,我将不了解如何正确地做。
Graeme

不要将可执行文件“ subl”放在文字路径中。只需输入其位置,即〜/ bin。另外,启动Terminal.app时,请查看/ etc / profile中的〜/ .bashrc。
bojolais 2012年

Answers:


89

我和您一样陌生,这意味着我什至不确定如何阅读与修改PATH相关的一半内容。最终,尽管我想到了一种方法,该方法不需要您将subl放入.rvm / bin中(因为这是用于其他用途),而是放入其适当的目录下,即〜/ bin。

转到终端并输入:

open -a Finder /usr/bin

这将在Finder中打开/ usr / bin目录。在那里打开新的Finder后,转到“应用程序”,右键单击“崇高文本”图标,然后转到“显示包内容”,然后转到“目录”,“ SharedSupport”,“ bin”。复制subl文件并将其粘贴到另一个显示/ usr / bin的Finder中

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

subl . (or subl file.name)

1
最简单的方法,分享这一点的道具
pbojinov 2013年

3
要使用符号链接,请参阅下面的Igor答案。
Obromios

键入只是open /usr/bin做同样的事情,因为当您不指定应用程序时,默认情况下终端会打开Finder。
伯特

58

所有的Instread评论在这里。您需要添加symlink才能升华到/usr/local/bin。它不需要root访问。并且不需要创建另一个bin目录。

对于Sublime Text 2

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

对于Sublime Text 3

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

2
+1这对我有用-关键是不使用Sublime Text的文档(sublimetext.com/docs/2/osx_command_line.html)中所述的/Applications...../bin/subl周围的语音标记。
WorkingMatt 2015年

ln: /usr/local/bin/: No such file or directory
丹尼尔·史普林格

它确实需要root访问。Permission denied当我尝试/bin/usr/local
丹尼尔·斯普林格]

@DanielSpringer,您可能会在新的osx系统上遇到这种情况。该目录来自UNIX世界,但不是由osx创建的。安装某些应用程序和实用程序后,它会出现。你自由自己去创造sudo mkdir -p /usr/local/bin
伊戈尔A. Melekhine

@ IgorA.Melekhine是sudo的替代品吗?如多用户友好的方式?(我相信我最终要做的是在〜中创建一个/ bin)
Daniel Springer

39

为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。


3
这是正确的答案,它非常适合我(Mac OSX 10.8.4)
AntonioOtero

我将其附加到了我的.zshrc文件的这一部分,并且可以正常工作。#用户配置 export PATH="/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/username/bin"
Will Farley 2015年

可能需要重启终端。
Kilmazing

为什么要说这么多答案来创建binin /usr/local这个答案奏效了
丹尼尔·斯普林格

11

你不需要做PATH=$PATH:~/bin/subl。相反,PATH=$PATH:~/bin就足够了。这样,您就是在告诉外壳程序寻找~/bin二进制文件。使用您的命令,您告诉外壳程序查看~/bin/subl二进制文件的“文件夹” ,该命令无效。此外,您无需在两个文件中添加命令。将它们添加一次.bashrc。我不是bash专家,但是我建议您阅读此博客文章,以获取有关不同启动文件的进一步说明。


谢谢,那篇博客文章很有用。我仍然没有正确解决问题,但是我找到了一种解决方法,即将subl文件插入到我的路径中的目录中。
Graeme

7

我想提出一个替代解决方案。使用路径中已经存在的目录。像这样:

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

tl; dr

我在优胜美地(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

就是这个!这是OSX 10.10及更高版本应接受的答案。关键是使用sudo nano / etc / paths将/ usr / local / bin / subl添加到您的路径中。然后,您可以执行符号链接。
cgossain 2015年

1
在El Capitan(OS X 10.11)中效果很好。谢谢!
JuanBoca

3

您需要先创建一个指向的符号链接/usr/bin。符号链接-或SymLink-是目录的别名或快捷方式。请按照以下步骤进行:

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

    cd ~

  2. 创建到usr/bin目录的符号链接。

    ln -s /usr/bin bin

    其中 ln=创建链接,-s=符号,后跟[target diectory][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您的命令行对其进行测试,它应该从Terminal启动Sublime Text 2。



2

在终端上简单地做到这一点:

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

那是我Sublime的存储位置,请尝试键入Sublime的路径,因为您的版本可能有所不同。

subl . 

应该工作正常。


2

我最近一直在努力解决这个问题。我意识到,~该路径不会扩展到您的主目录。至少不是我。

这就是我所做的,以使其正常工作。

export PATH=$PATH:$HOME/bin

subl是从应用程序目录链接到我的~/bin每一些后续说明我发现酿造木桶。不幸的是,该路径从未更新过。


1

这是执行此操作的完整说明(针对Sublime Text 3):

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

    $ csrutil status
    

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

    1. 通过重新启动计算机并在启动时按住Command + R引导到OS X的Recovery OS。

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

    3. 运行以下命令:

      $ csrutil disable
      $ reboot
      

    这是由于OS X的一项名为“系统完整性保护”安全功能,可以防止未经授权的用户访问系统位置和进程。因此,如果启用了此功能,则将无法修改/ 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 .
    

1
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的。


我跟着上面的一堆,小睡。我这样做-是的。谢谢伙计,很好很简单。
danjah

0

以下与我合作。我有Sublime版本3,如果有人正在寻求帮助,请在此处发布:

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

0

在优胜美地看来,该命令实际上是Sublime 3的命令,但我可能会误会:

    ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.