2013-01-10 40 views
0

我剛剛從MacPorts的安裝GMT4(通用製圖工具),並已運行到與終端一些嚴重的問題...... 當終端使用ls命令我得到以下幾點:太多的bash初始化文件?

-bash: ls: command not found 

爲了解決這個問題我」我嘗試了很多東西,我在網上閱讀了許多不同的地方。我已將以下文件更改爲包含/ usr和/ bin:

~/.bashrc 
~/.bash_profile 
~/.profile 

這樣做讓我回到了之前丟失的sudo命令。 但是,如果不手動導出路徑(「新建會話」),我仍然無法在新的終端窗口中使用ls。當我運行使用系統函數的shell腳本時,這導致了問題。所以我開始想知道這三個文件究竟做了什麼,以及如果有三個文件做同樣的事情會導致它們互相干擾。如果任何人都可以告訴我需要添加這些好的路徑,我不知道,也許我可以刪除其中一個文件或其他的東西是衝突的。現在我只需在每個新的終端窗口中運行「export PATH = $ PATH:/ usr」,並且它適用於該會話。

我在2011年初配備4GB內存的MacBook Pro上運行Mac OS X 10.6。

背景對於那些有興趣誰: 我的最終目標是使用Relax粘彈性鬆弛的中洋脊系統進行建模拿出某種形式的滑動量和位置之間構成法律或功率關係正常斷層導致的岩石圈最大張應力。

+0

我的建議是將這三個文件移動到不同的位置,看看是否修復它。如果是這樣,你可以嘗試將它們零碎地恢復。完全刪除它們不會恢復系統配置;通過從'/ etc/skel'中拷貝這些文件(或者任何OSX使用的,以便混淆我們)來完成一個完全乾淨的操作。 – tripleee

+0

如果您需要實際幫助,向我們展示如何在這些文件中操作PATH,這將非常重要。對於故障排除,如果您在終端窗口中運行'/ bin/bash --login -i -x',你會發現什麼? – tripleee

回答

3

Bash manual實際上解釋這些文件相當徹底。但是,手冊沒有描述這些機制在實際中通常如何使用。接下來是常見最佳實踐的簡要簡要版本。

.profile在登錄時被shbash讀取。

.bashrc被非登錄Bash shell讀取。按照慣例,.bash_profile依次來源.bashrc

.bash_profile在Bash登錄時被讀取。如果此文件存在,則不會讀取.profile。按照慣例,.bash_profile應該從.profile來源(如果存在)。