為什麼這麼多程序都存在於 PATH 中?
至少,桌面 Linux 讓我感到困惑的一件事是,幾乎所有東西都在我的 PATH 中。我所說的一切,是指每個桌面應用程序,包括像 gnome-character-map 和 glchess 這樣的東西。這些沒有命令行界面可言,所以我想不出我會定期從終端啟動這些的情況 - 而且,在這種不太可能的情況下,我無法想像需要輸入完整的內容會帶來不便路徑。它看起來很混亂,但也許有一個很好的理由。
那麼,為什麼會發生這種情況?對性能或可維護性有什麼值得注意的影響嗎?
使用者可能想要執行的所有命令都在 PATH 中。這就是它的用途。這包括您直接執行的命令、其他人直接執行的命令,以及您或其他人因被其他命令呼叫而間接執行的命令。這不僅限於從終端執行的命令:從 GUI 執行的命令也在命令搜尋路徑中進行搜尋(同樣,這就是它的用途)。
需要輸入完整路徑會很糟糕:您需要找出完整路徑是什麼!您需要跟踪它是在
/usr/bin
(包含作業系統附帶的大多數程序)還是在/usr/local/bin
(包含管理員手動安裝的程序,以及不屬於某些核心作業系統的程序) unix 變體),或者在其他一些系統特定的目錄中,或者在使用者的主目錄中的某個地方。很難回答“對性能或可維護性的影響”,因為您沒有說出您將其與什麼進行比較。如果您要與必須在任何地方輸入完整路徑進行比較,那對於可維護性來說是一場噩夢:如果您曾經重新定位程序,或者如果您想安裝比作業系統附帶的或由系統管理員安裝的版本更新的版本,您必須在任何地方替換該完整路徑。在幾個目錄中查找名稱對性能的影響可以忽略不計。
如果您與 Windows 進行比較,情況會更糟:有些程序不僅將執行檔添加到 PATH 中,還添加了各種垃圾,最終您會得到一個
PATH
仍然不包含所有程序的長達一英里的變數,因為許多程序在安裝時不會將它們自己添加到系統 PATH 中。