Executable

$PATH 和執行檔的問題

  • November 18, 2018

我在生成的目錄中有一個 unix 執行檔。我相信我需要在我的目錄中獲取這個目錄,$PATH以便 unix 執行檔是可執行的,但是原始碼的文件說我需要編輯我的 shell 配置文件以添加$home/meme/bin到我的 shell 路徑中。

如果您希望能夠通過在命令行上鍵入程序名稱來執行程序,則程序執行檔必須位於PATH環境變數中列出的目錄之一中。您可以像這樣看到變數的目前值($是您的提示,下面的值是範例):

$ echo $PATH
/home/drbunsen/bin:/usr/local/bin:/usr/bin:/bin

您有多種選擇;雖然 #1 和 #2 涉及不太高級的概念,但我建議 #3 在實踐中工作較少:

  • 您可以將執行檔放在PATH. 例如,如果/home/drbunsen/bin已經在您的. 上PATH,您可以將執行檔放在那裡。/usr/local/bin或者,如果您希望所有使用者都可以使用執行檔,則可以將其放入。
  • 您可以將執行檔所在的目錄添加到PATH. 編輯文件~/.profile~/意味著該文件在您的主目錄中)(如果文件不存在,則創建該文件)。像這樣添加一行:
PATH=$PATH:$HOME/meme/bin

(注意它是$HOME, 不是$home; unix 通常區分大小寫。你也可以寫~/meme/bin,~是它在文件路徑開頭時的同義詞$HOME。)更改將在你下次登錄時生效。你可以輸入這個終端中的同一行,它將影響在該終端中執行的 shell 以及從它啟動的任何程序。

  • 我推薦的方法是將執行檔與作為程序一部分的其他文件一起保存在它自己的目錄中,但也不要更改PATH

保留執行檔$HOME/meme的好處是,如果您想刪除或升級程序,一切都在一個地方。有些程序甚至需要這樣做才能找到它們使用的文件。不更改PATH的優點是安裝和解除安裝程序的工作量更少。

為了兩全其美,請在您的目錄中創建一個符號連結PATH,指向實際的執行檔。從命令行,執行如下命令:

cd ~/bin
ln -s ../meme/bin/* .

這是假設~/bin已經在你的PATH; 如果不是,請~/.profile按照上面的說明添加。如果您願意,請選擇另一個位置。現在使程序可用是創建符號連結的問題;使它們不可用是刪除符號連結的問題;並且您可以通過查看符號連結輕鬆跟踪您手動安裝的程序以及它們所在的位置。

引用自:https://unix.stackexchange.com/questions/16242