"command not found"問題的解決辦法

"zsh: command not found:"這個錯誤相信大家都不陌生氓润,以前每次遇到這個問題都是Google一下,然后告訴你在xxx文件添加xxx文字座每,或者在Terminal運行xxx命令即可誉察,有些work,有些不行踱讨。

萬事皆有因魏蔗,今天我們就來說一下這個問題發(fā)生的時最常見的原因和解決辦法,讓你下次再遇到這種問題時自己就可以解決不需要在去Googlexxx Gems command not found痹筛。

問題通常發(fā)生在局部安裝了某個Terminal程序之后莺治,此時程序可能在某個ruby gem的bin目錄下廓鞠,或者Application下(如:sublime),需要我們創(chuàng)建一個指向這個地址軟鏈接谣旁,可以方便的訪問它床佳。例如:

subl . or pod install

Terminal訪問程序原理

Linux環(huán)境下通常我們將Terminal可訪問的程序放在/bin, /usr/bin, /usr/local/bin,有時也會放在~/bin目錄下榄审。

那么在Terminal頁面打開(其實是shell login)的時候砌们,程序是如何Load進來的呢?過程大致如下:

  1. Terminal打開時當前user默認的shell會去讀取自己的配置文件搁进,一般在~目錄下浪感;
  2. 這個配置文件會去export上述幾個路徑,讀取*/bin下的可執(zhí)行文件饼问;
  3. */bin下的可執(zhí)行文件通常情況下是指向某個路徑下的軟鏈接(可以使用ln -s創(chuàng)建)影兽;

問題原因

基于上面的過程,我們在Terminal中訪問得到command not found的具體原因可能如下:

  1. 當前調(diào)用的命令確實沒有安裝匆瓜,如:"lorem spear"赢笨;
  2. 當前命令安裝了,但是沒有創(chuàng)建軟鏈接到*/bin驮吱;
  3. 當前命令已創(chuàng)建軟鏈接到*/bin茧妒,但是所在*/bin路徑?jīng)]有被export;

解決辦法

接下來以Mac下的zsh為例給出解決辦法:

Linux系統(tǒng)或者其他Shell(如:bash左冬、sh等)只需要換一些shell的配置文件即可桐筏。

  • 首先zsh的配置文件在~/.zshrc,使用任何編輯器(vim拇砰、atom)打開這個文件梅忌,搜索export會看到有如下一行:

      `export PATH="/Users/yourname/.rbenv/shims:/opt/iOSOpenDev/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"`
    

    PATH=后是用:連接的多個*/bin路徑[1]

    /usr/sbin
    /bin
    /usr/bin
    /usr/local/bin
    

    我的機器中安裝了rbenviOSOpenDev,所以還 export 了:

    /Users/yourname/.rbenv/shims
    

    有的程序安裝時會自動添加自己的*/binexport或者引導你運行一些命令去添加除破,原理都是一樣的

  • 在上面的路徑中找一個合適的路徑牧氮,如/usr/bin或者/usr/local/bin,然后在這個路徑下創(chuàng)建一個指向not found那個程序的軟鏈接瑰枫。

    當然踱葛,你也可以像rbenv那樣直接將程序所在路徑或者一些特定的*/bin整個加到export中。

  • 你需要找到not found的這個程序在什么位置光坝,比如:

    • subl/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl路徑下尸诽;
    • pod的所在路徑可以通過下面命令找到(所有的ruby gems程序都可以通過這種方式找到):
    $ gem which cocoapods
    /Users/eloy/.gem/ruby/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods.rb
    $ /Users/eloy/.gem/ruby/2.0.0/bin/pod install
    

    如果以后有時間豐富一些常見的case。

  • 創(chuàng)建從程序所在位置*/bin的軟鏈接盯另。創(chuàng)建軟鏈接的命令是ln -s $source $target性含,-s參數(shù)表明創(chuàng)建的鏈接類型,source表示程序所在位置鸳惯,target表示軟鏈接的所在路徑商蕴。

    例如:ln -s /Users/kimimaro/.rbenv/versions/2.0.0-p645/bin/pod /usr/local/bin

  • 運行source命令使軟鏈接生效叠萍。新創(chuàng)建的軟鏈接在當前的Terminal頁面(即沒有再次運行shell login)不會生效,需要對當前Shell(在本例中即zsh)的配置文件(在本例中即~/.zshrc)手動執(zhí)行source來加載究恤。例如:

    source ~/.zshrc

此時再次運行命令已經(jīng)不會報錯了俭令。

腳注


  1. 這些系統(tǒng)路徑用戶使用權限登錄和非登等情況下作用有所不同,部宿,但由于我們絕大部分操作都在登錄情況下因此本文范圍內(nèi)不再詳述。 ?

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瓢湃,一起剝皮案震驚了整個濱河市理张,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绵患,老刑警劉巖雾叭,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異落蝙,居然都是意外死亡织狐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門筏勒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來移迫,“玉大人,你說我怎么就攤上這事管行〕瘢” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵捐顷,是天一觀的道長荡陷。 經(jīng)常有香客問我,道長迅涮,這世上最難降的妖魔是什么废赞? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮叮姑,結(jié)果婚禮上唉地,老公的妹妹穿的比我還像新娘。我一直安慰自己戏溺,他們只是感情好渣蜗,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著旷祸,像睡著了一般耕拷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上托享,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天骚烧,我揣著相機與錄音浸赫,去河邊找鬼。 笑死赃绊,一個胖子當著我的面吹牛既峡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碧查,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼运敢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了忠售?” 一聲冷哼從身側(cè)響起传惠,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎稻扬,沒想到半個月后卦方,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡泰佳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年盼砍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逝她。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡浇坐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汽绢,到底是詐尸還是另有隱情吗跋,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布宁昭,位于F島的核電站跌宛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏积仗。R本人自食惡果不足惜疆拘,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望寂曹。 院中可真熱鬧哎迄,春花似錦、人聲如沸隆圆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渺氧。三九已至旨涝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間侣背,已是汗流浹背白华。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工慨默, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弧腥。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓厦取,卻偏偏與公主長得像,于是被迫代替她去往敵國和親管搪。 傳聞我的和親對象是個殘疾皇子虾攻,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容