簡體   English   中英

如何在Bash中更改命令的默認目錄?

[英]How to change default directory for a command in Bash?

首先,我是Linux的新手,所以如果任何術語錯誤,請原諒。 我將盡力解決這個問題。

我已經通過Linuxbrew安裝了Ruby( 2.4.0 )。 ruby命令工作正常; 它安裝正確。 但是,當我嘗試使用gem命令(應該已經安裝了Ruby)時,會出現以下錯誤: bash: /usr/bin/gem: No such file or directory

現在,因為我在Linuxbrew上安裝了該目錄,所以我知道該目錄不正確。 例如:

which gem結果: /home/me/.linuxbrew/bin/gem

which ruby結果: /home/me/.linuxbrew/bin/ruby

因此,似乎gem已安裝,但在gem命令沒有鏈接到正確的路徑。 我假設我需要將gem命令定向到該gem的路徑, which gem不是bash所說的不存在的/usr/bin/gem 我將如何改變呢? 我徒勞地嘗試更改bash_profile但是我不確定該怎么做。

再說一次,對不起,如果未將rubygem稱為命令,並且問題不是標題中所述的“默認目錄”。 我不確定如何標記它。

編輯/ TL; DR:

基本上,我如何使gem執行此操作: /home/me/.linuxbrew/bin/gem而不是在/usr/bin/gem中查找程序?

不用運行gem ,而是運行/home/me/.linuxbrew/bin/gem ,即輸入完整路徑名(后跟您可能需要的任何參數)。

如果這太累了,您可以更改PATH。 在bin目錄前添加

PATH=$HOME/.linuxbrew/bin:$PATH

首先,出現錯誤/usr/bin/gem not found是,在同一個shell會話中,該文件以前曾經存在。 當多次運行同一命令時,Bash將緩存此內容以加快處理速度。 運行hash -r將清除此情況。

編輯您似乎已經管理過的PATH ,因此which命令給出了它要執行的結果。

要回答我自己的問題,

正如我以前安裝和卸載通過紅寶石易於得到,而不是Linuxbrew在同一個終端窗口,猛砸在尋找gemusr/bin ,而不是在我指定的路徑bash_profile到Linuxbrew。

因此,我敢肯定,上面用hash -r Stian答案也可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM