2011-09-29 29 views
4

我的路徑中有很多很久以前由腳本添加的條目。它們不在我的.bashrc,.bash_profile或.bash_login中。

我擔心在.bashrc中重置我的路徑會產生不良的長期結果。有沒有辦法找到東西已添加到我的路徑,並手動刪除它們?東西總是由文件添加或者路徑緩存在某處?如果是後者,是否容易清理?

+0

會更好在superuser.com堆棧交換站點上。 – chown

+0

這也適合unix.stackexchange.com。 – Cascabel

回答

12

找到最簡單的方法修改您的PATH是運行:

 
    $ bash --login -i -xv 2>&1 | grep ' \. ' 

比如我:

 
+ . /etc/profile.d/bash_completion.sh 
     . /etc/bash_completion 
++ . /etc/bash_completion 
+++ . /etc/bash_completion.d/abook 
+++ . /etc/bash_completion.d/ant 
+ . /etc/profile.d/lapack0.sh 
+ . /etc/profile.d/openssl.sh 
+ . /etc/profile.d/qt3-devel.sh 
+ . /etc/profile.d/tetex-profile.sh 
+ . /etc/profile.d/xinit.sh 
+ . /etc/bash.bashrc

...

+0

另請嘗試添加**源**字到grep ... – gavenkoa

+0

當您獲取修改bash行爲的** ALL **文件的列表時,您需要grep他們以獲取** PATH = **模式... – gavenkoa

+0

如上所述上面,確保grep for'source':'bash --login -xv -c「echo」2>&1 | grep -E「(\。| source)」'。 –

0

檢查您的/etc/profile文件,並根據您的操作系統版本/etc/profile.d/目錄。

5

你不應該讓一些隨機的系統管理員決定什麼在你的PATH無論如何,你應該將其設置爲你需要的路徑。你開始於

# POSIX way of getting the system's PATH to POSIX tools: 
PATH=$(getconf PATH) # Or /usr/bin/getconf PATH. 

其次是你需要的任何東西,例如,

PATH="$PATH:/usr/local/bin" 
PATH="$PATH:/usr/local/sbin" 
PATH="$PATH:$HOME/bin" 

並把它放在你的殼體的.profile或等價物中。請注意,出於安全原因,您的不需要想要.或PATH中世界可寫的目錄。

+0

$ getconf PATH結果爲 /bin:/ usr/bin 我不確定/ usr/X11R6/bin是什麼東西,或者在我的路徑中仍然需要它們。有什麼想法嗎? – mbarrows

+0

如果您不使用X11窗口系統(使用xterm,firefox,acroread等),則不需要/ usr/X11R6/bin。如果您不確定,請輸入'ls/usr/X11R6/bin'來查看是否需要任何列出的可執行文件。我會說它不會傷害你的PATH。 – Jens

2

您總是可以隨意查看每個$PATH組件的目錄內容,並決定是否使用其中的程序。如果你不使用這些程序,那很有可能,你不會因從$ PATH中刪除目錄而受到傷害。如果該目錄不存在,那麼您可以完全安全地將其刪除。

令人費解的是,目錄顯示在您的個人資料和相關文件中。你也應該檢查~/.profile。您還應該查看諸如/etc/profile之類的資料。

就我個人而言,我認爲我負責我的PATH。我根據我的規則從頭開始設置它,選擇我需要的目錄。你沒有義務接受系統管理員爲你設置的內容,儘管你不應該空閒地刪除他們添加的PATH組件。但他們對可取之處的看法可能與你的不同。

唯一的長期不良影響可能是您使用的某些程序停止工作,因爲它依賴於舊版本的$ PATH中的某些內容。所以,請記錄下你開始搞亂PATH之前的一切 - 但不要害怕調整PATH以適合自己。