在terminal中使用subl命令的问题:“找不到命令”&“没有这样的文件或目录”

我想事先道歉,这是一个新手问题! 我花了最后2个小时试图find一个解决scheme。

我有两个问题(我确定相关)。

背景:

这是我的$ PATH的样子:

/Users/Sponsi/.rvm/gems/ruby-1.9.3-p194/bin:/Users/Sponsi/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/Sponsi/.rvm/ruby/ruby1.9.3-P194 /斌:/Users/Sponsi/.rvm/bin:在/ usr / bin中:/ bin中:/ usr / sbin目录:/ sbin目录:在/ usr / local / bin目录:在/ usr /本地/ git的/ bin中:在/ usr / X11 / bin中

问题#1

我正在尝试使用命令行命令“subl”在OSX上启动Sublime Text 2。

我input了以下命令:“ ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

它只有一半的工作 – 当我进入“subl”我得到“命令未find”。 但是,当我重新input上面的命令说:“已经存在”。

我在网上search,发现(有点)修复。 我将以下内容添加到我的.bashrc中:

 echo 'export PATH="./bin:$PATH"' >> ~/.bashrc source ~/.bashrc 

使用命令“subl”不起作用,但只是暂时的。 如果我退出terminal或切换到另一个目录,它将停止工作(使我进入问题#2,见下文)。

问题2:

当我尝试使用命令“subl”在另一个目录下拉出一个文件时,我得到“-bash:./bin/subl:没有这样的文件或目录”我确认了我想要编辑的文件确实存在。

顺便说一句,我正在遵循Ruby教程发现@ http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

非常感谢您的参与!

如果您正在使用RVM,请执行以下操作:

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

在terminal中运行每个命令(按此顺序):

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

这应该工作!

注意:首先,你应该检查你的崇高的应用程序在Applications文件夹中,它的名字是Sublime Text 2,如果没有,你应该在第二个命令中更改名称并input崇高的应用程序的名称。

我卡在/ usr / bin中

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

或崇高3或更高版本

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

它已经在$ PATH中

对于El Captain或以后的操作系统:

El Capitan中 ,不允许写入/ usr / bin,但写入/ usr / local / bin是可以的。 默认情况下,/ usr / local / bin也应该在你的pathvariables中。

崇高的文字3

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

崇高的文字2

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

我遇到了同样的问题,在最近configuration的新Mac上。 在oh-my-zsh和崇高的文本之前安装了RVM,我遇到了同样的问题。 我尝试了不同的path

 /usr/bin /usr/local/bin 

他们都在路上。 对我来说有效的是摆脱了运行的命令行上的引号

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

编辑你的~/.bashrc文件,在其末尾包含这一行:

 export PATH="$HOME/bin:$PATH 

注意~在那里,而不是. 从你的例子? ~表示你的主目录,你的.bashrc文件所在的目录。 点表示terminal窗口的当前目录。

完成更改后,closuresterminal窗口并重新打开。 那么subl应该可以在PATH上使用。

关于你的第一个问题,是不是你的主目录(即〜/ bin)下面没有bin目录? 要检查这一点,请input以下内容:

 cd ~/ ls -l 

如果没有bin目录,请键入以下内容:

 mkdir bin 

一旦你创build了目录,重新键入以下内容:

 subl --help 

希望能照顾到这个问题

如果你想要,你也可以创build新的别名

alias subl =“/ Applications / Sublime \ Text.app/Contents/SharedSupport/bin/subl”

在更新到Sublime Text之后,接受答案的path略有改变。

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

当你改变目录或者重新打开terminal时,PATH不起作用的原因是.bashrc是一个非login交互文件。

只需在terminal中使用这一行:

 echo 'export PATH=$PATH:~/bin' >> ~/.bash_profile 

可能会解决这个问题,因为.bash_profile在每次login时都被加载。

如果你没有.bash_profile,就在使用上面的命令之前,在terminal中input:

 cd ~ touch .bash_profile 

然后使用正式的命令。

通常我不会碰到usr / local / bin,因为它是一个系统级文件夹。 听说最近在OS X El Capitan,苹果公司做了一些权限的限制。 因此,只需将克隆放在/ bin目录下的主目录中,然后在.bash_profile文件中添加PATH即可。

在linux sublime 3中,在你的terminal贴上

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

然后

 subl3 [filename]