2012-06-05 76 views
34

我想事先道歉,這是一個新手問題!我花了最後2個小時試圖找到解決方案。在終端中使用subl命令的問題:「未找到命令」&「沒有這樣的文件或目錄」

我有兩個問題(我確定有關)。

背景:

這是我的$ PATH是什麼樣子:

/Users/Sponsi/.rvm/gems/ruby-1.9.3-p194/bin:/Users/Sponsi/ .rvm /寶石/紅寶石1.9.3-P194 @全球/斌:/Users/Sponsi/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/Sponsi/.rvm/bin:在/ usr /倉:/ bin中:/ usr/sbin目錄:/ sbin目錄:在/ usr/local/bin中:在/ usr /本地/ GIT中/ bin中:在/ usr/X11/bin中

問題#1

我正嘗試使用命令行命令「subl」在OSX上啓動Sublime Text 2。

我進入下面的命令: 「ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl

它只是一半的工作 - 當我輸入‘subl’我得到‘命令未找到已經存在’但是,當我在上面它說,重新輸入命令。」 「

我在網上搜索,發現了(有點)FIX添加以下到我的.bashrc:

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

使用命令‘subl’的工作,但只是暫時的。如果我退出終端或切換到另一個目錄它停止工作(把我帶到問題#2,見下文)。

問題2:

當我試圖拉起一個文件的另一個目錄下使用命令「subl」我知道「 - bash:./bin/subl:沒有這樣的文件或目錄「我確認了我想要編輯的文件確實存在。

BTW,我下面發現@http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

非常感謝你爲你的時間Ruby教程!

回答

106

在終端中運行每個命令(按此順序):

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

這應該工作!

注:首先,你應該檢查你的崇高的應用程序是在應用程序文件夾,它的名字是崇高的文本2,如果沒有,你應該在第二個命令更改名稱和類型崇高的應用程序的名稱。

+0

只因爲某種原因似乎對我有用的東西。 –

+0

非常感謝!只爲我工作:) – Runeony1

+0

這是我的一個。謝謝! –

2

編輯您的~/.bashrc文件包含這條線在它的結束:

export PATH="$HOME/bin:$PATH 

通知的~是存在的,而不是.從你的榜樣? ~表示您的主目錄,這是您的.bashrc文件所在的目錄。點表示您的終端窗口的當前目錄。

完成更改後,關閉終端窗口並重新打開它。然後subl應該在PATH上可用。

+1

我很困惑。現在,我收到的是「未找到命令」。我重新啓動了我的電腦,重新安裝了Sublime Text,刪除了並重新將subl文件添加到我的/ bin中,然後重新輸入了上面的所有命令,但都無濟於事。我對我的電腦做的唯一更改是刪除了一個用戶帳戶 - 這不應該與subl沒有任何關係,對吧? – Ralitza

+0

也許可以使用'export PATH =「$ HOME/bin:$ PATH'來替代嗎?我應該首先說出來,你不應該刪除你的程序並重新安裝它,這純粹是一個配置問題 – Jeremy

94

如果你正在使用RVM,這樣做:

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

這對我來說是完美的工作 –

+0

完美的作品,必須是與rvm搞定的路徑 –

+0

最佳答案,完美的工作! – Iamsamstimpson

23

我堅持我的在/ 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

+2

如果你已經有/ usr/bin的話,這是最好的方法,它會自動地撿起它,而不會有任何其他的煩躁 –

+5

對於崇高的文本3(和更高版本)關閉「\ 2」。像這樣:'sudo ln -s/Applications/Sublime \ Text.app/Contents/SharedSupport/bin/subl/usr/bi n' –

+1

當我這樣做時,我不能進行手術。有任何想法嗎? – jamesscaggs

2

關於你的第一個問題,是不是你的主目錄下設置了bin目錄(即〜/ bin)?要對此進行檢查,鍵入以下內容:

cd ~/ 
ls -l 

如果沒有bin目錄,鍵入以下內容:

mkdir bin 

一旦你創建的目錄,重新鍵入以下內容:

subl --help 

希望能照顧到這個問題

7

我在最近配置的新Mac上遇到了同樣的問題。我在oh-my-zsh和崇高的文本之前安裝了RVM,並且遇到了同樣的問題。我在路徑上嘗試過不同的位置

/usr/bin 
/usr/local/bin 

它們都在路徑中。什麼工作對我來說是讓運行的

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

這也是爲我修復的。 –

+0

Sublime Text文檔https://www.sublimetext.com/docs/2/osx_command_line.html引用了/ Applications ....路徑。你說的完全正確,而把報價單留下來就是解決方案。查看你的路徑類型'echo $ PATH'。/usr/local/bin是放置符號鏈接的最佳位置,應該已經存在於你的路徑中。 – WorkingMatt

+0

非常感謝,這也給我修好了!我不知道爲什麼,但... – AndrewSouthpaw

1

有一個更新崇高文字以下的輕微變化,從在接受答案的路徑在命令行上去掉引號。

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

+0

這對我有用。 – rikobo

0

的原因,當你改變了目錄或重新打開終端則路徑是行不通的就是.bashrc中是一個非登錄交互式文件。

在終端簡單地使用這行:因爲.bash_profile是加載每次有登錄時間

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

可能會解決這個問題。

如果你沒有。.bash_profile中, 只是用上面的命令之前,在終端輸入:

cd ~ 
touch .bash_profile 

然後使用正式命令。

因爲它是系統級別的文件夾,所以我通常不會觸及usr/local/bin。聽說最近在OS X El Capitan,蘋果公司做出了一些權限限制。 因此,只需將克隆放在/ bin文件夾下的主目錄中,然後在.bash_profile中添加PATH,一切都應該可以正常工作。

13

對於厄爾尼諾船長或更高版本的操作系統:

埃爾卡皮坦,你不能寫到/ usr/bin中,但寫到/ usr/local/bin目錄就可以了。默認情況下,/ usr/local/bin也應該位於路徑變量中。

對於崇高的文本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 
2

您還可以,如果你想要一個像

別名subl創建新的別名爲」/Applications/Sublime \ Text.app/Contents/SharedSupport/bin/subl「

0

在linux中崇高3,在你的終端粘貼

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

然後

subl3 [filename] 
0
$ alias subl="/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl" 

$ subl . 這工作! :D

相關問題