在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]