2015-02-09 74 views
0

我有一個複雜的PATH,我想修改,但我不明白該怎麼做。我甚至無法弄清楚某個目錄是如何到達那裏的。此外,它有兩次。編輯路徑的順序真的很難嗎?有沒有辦法簡單地編輯每個決定路徑的文件?Unix路徑需要重新排序

+0

評論[如何防止在csh中複製路徑變量](http://stackoverflow.com/a/137981/15168)我的答案(鏈接)包含一個Bourne/Korn/Bash shell腳本,用於刪除重複名稱一個PATH,可用於刪除所選條目(並且您可以輕鬆地在PATH的任一端添加條目;不直接支持在中間插入條目)。還有[如何操作shell腳本中的路徑元素](http://stackoverflow.com/questions/273909/how-do-i-manipulate-path-elements-in-shell-scripts/274448#274448)。 – 2015-02-09 03:06:16

回答

0

不難。該路徑是存儲在進程環境PATH變量中的冒號分隔的字符串。如果你改變字符串的值,你的命令搜索路徑將會改變。這裏的所有都是它的。

PATH=/bin:/usr/bin:/usr/local/bin:$HOME/bin:. 

當你從一個系統默認的.bashrc文件/ etc和您的本地配置.RC和.bashrc中文件記錄中創建的默認路徑。您可以從$ HOME/.bashrc中修改或編輯PATH

編輯:通常,因爲它很容易更改,所以bashrc文件包含的每個腳本(可以直接或通過其他腳本)都可以修改路徑。要知道哪個人正在做出特定的改變,你必須跟蹤腳本。

+0

我查看了/ etc/bashrc,〜/ .bashrc和〜/ .profile,並沒有找到我想要刪除的目錄。這就是我爲什麼掙扎着。我應該在哪裏看?我知道/etc/paths.d也有助於PATH變量,但它也不在那裏。 – 2015-02-09 02:18:07

+0

嘗試平分搜索 - 在〜/ .bashrc的頂部打印$ PATH,以查看它是由系統還是本地rc文件添加的。再次登錄(例如'ssh localhost')並查看它說的是什麼。然後你可以從那裏上下移動。 – Andras 2015-02-09 02:21:50

+0

可能更簡單,只是後處理PATH刪除不需要的目錄 - PATH = $(echo -n $ PATH | sed -e's |:/ unwelcome/path:|:| g') ' – Andras 2015-02-09 02:29:43