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

Gra*_*eme 69 macos bash sublimetext

我一直无法修改添加Sublime Text 2的路径.我添加了一个~/bin目录并运行此命令:

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl
Run Code Online (Sandbox Code Playgroud)

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

我没有.bash_profile.要.profile.bashrc我说

PATH=$PATH:~/bin/subl
export PATH
Run Code Online (Sandbox Code Playgroud)

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

当我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
Run Code Online (Sandbox Code Playgroud)

当我输入时subl,我得到:

-bash: subl: command not found
Run Code Online (Sandbox Code Playgroud)

谢谢!

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

小智 88

我和你一样陌生,这意味着我甚至不确定如何阅读与修改PATH相关的一半内容.最终虽然我找到了一种方法来做到这一点,不需要你把subl放入.rvm/bin(因为那是其他的东西),但在其适当的目录,即〜/ bin.

转到您的终端并输入:

open -a Finder /usr/bin
Run Code Online (Sandbox Code Playgroud)

这将打开您的Finder到/ usr/bin目录.一旦你在那里打开一个新的Finder,转到应用程序,右键单击Sublime Text图标并转到Show Package Contents,然后转到Contents,SharedSupport,bin.复制subl文件并将其粘贴到显示/ usr/bin的其他Finder中

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

subl . (or subl file.name)
Run Code Online (Sandbox Code Playgroud)

  • 要使用符号链接,请参阅下面的Igor的答案. (3认同)

Igo*_*ine 51

所有的Instread在这里评论.您需要添加符号链接以进行升华/usr/local/bin.它不需要root访问权限.而且不需要创建另一个bin目录.

对于Sublime Text 2

ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)

对于Sublime Text 3

ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/
Run Code Online (Sandbox Code Playgroud)

  • +1这对我有用 - 关键是不要使用Sublime Text的文档中所述的/Applications...../bin/subl周围的语音标记(https://www.sublimetext.com/docs/2/osx_command_line的.html). (2认同)

Sha*_*awn 37

更新zsh 出于某种原因,当我最近从bash切换到zsh/prezto时,我的路径中的"〜/ bin"无效.我将其更改为"/ Users/myusername/bin",它再次正常工作.我会找到原因,并在找到它时更新.如果您有更好的解决方案,请评论.

我知道这是一篇旧帖子,但我想我会为其他任何人试图按照sublimetext提供的指令记录解决方案,以便逐步从OSX命令行处理sublime.Sublime文本更新3 Sublime Text 3文档

1)在主目录"〜/"中创建一个名为"bin"的目录

mkdir ~/bin
Run Code Online (Sandbox Code Playgroud)

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

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl
Run Code Online (Sandbox Code Playgroud)

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

ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" ~/bin/subl
Run Code Online (Sandbox Code Playgroud)

3)按照Ryan Hoffman关于如何在OSX中轻松添加路径的说明:添加到Mac OSX上的路径使用他的技术将新创建的"〜/ bin"添加到路径中.完成后你的/ etc/paths文件看起来像这样(注意结尾〜/ bin):

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
~/bin
Run Code Online (Sandbox Code Playgroud)

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

  • 这是正确的答案,它对我很有用(Mac OSX 10.8.4) (3认同)

Gno*_*lon 11

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


Gre*_*ill 7

我想为这个问题提出另一种解决方案.使用路径中已有的目录.像这样:

$ sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

您可以轻松地修改该脚本在你的路径已经在使用的位置改变,说的部分~/bin/subl,以/usr/local/bin/subl

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

$ sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
Run Code Online (Sandbox Code Playgroud)