.bash_profile 和終端命令的問題
我添加了一些數據來
.bash_profile
執行兩個別名 ruby 版本 19 和適當的 gem。一旦我添加了數據,我就無法再執行任何命令,例如MacPorts命令埠或命令夥伴來執行TextMate。一旦我停用.bash_profile
,.bash_login
甚至.bash_history
一切都恢復了。.bash_history
得到了重新生成,不久之後我.bash_profile
恢復了我急需的別名,但後來我失去了再次執行這些命令的選項。以下是所有這些文件的一些輸出:jaspersmbp:~ jasper$ cat .bash_profile alias ruby='/opt/local/bin/ruby1.9' alias gem='/opt/local/bin/gem' jaspersmbp:~ jasper$ cat .bash_login jaspersmbp:~ jasper$ cat .bashrc HISTFILESIZE=1000000000 HISTSIZE=1000000 jaspersmbp:~ jasper$ cat .profile #Django path export PATH=/opt/local/bin:opt/local/sbin:/opt/local/lib/python2.4/site-packages/django/bin:$PATH # Apache alias alias apacherestart='sudo /opt/local/apache2/bin/apachectl -k restart' #Subversion OSX for Eclips Joomla Development export PATH=/opt/subversion/bin:$PATH #Test #echo $PATH ## # Your previous /Users/jasper/.profile file was backed up as /Users/jasper/.profile.macports-saved_2012-05-18_at_09:47:58 ## # MacPorts Installer addition on 2012-05-18_at_09:47:58: adding an appropriate PATH variable for use with MacPorts. export PATH=/opt/local/bin:/opt/local/sbin:$PATH # Finished adapting your PATH environment variable for use with MacPorts.
有誰知道為什麼
.bash_profile
主動取消使用諸如 mate 和 port 之類的命令?我真的需要.bash_profile
工作,所以我可以使用別名,並且我需要 MacPorts 埠命令用於各種軟體。
看起來 MacPort 正在生成您的配置文件,並弄亂了您的
PATH
等等。解決此問題的最簡單方法是自己動手 - 禁用 MacPort 生成/創建與您的路徑和別名有關的點文件,刪除.bash_profile
和.profile
文件,然後將以下內容附加到~/.bashrc
文件中:# define aliases alias ruby='ruby1.9' alias apacherestart='sudo apachectl -k restart' # define hist properties HISTFILESIZE=1000000000 HISTSIZE=1000000 # define path to programs PATH=/opt/local/bin:opt/local/sbin:/opt/subversion/bin:/opt/local/apache2/bin/:/opt/local/lib/python2.4/site-packages/django/bin:$PATH # define manpath MANPATH=/opt/local/share/man:$MANPATH # export env vars export HISTFILESIZE HISTSIZE PATH MANPATH
啟動一個新終端並執行
echo $PATH
以檢查是否所有內容都在其中,然後測試安裝在/opt/local/bin
. 由於上述PATH=
語句中的所有目錄現在都在您的目錄中,因此PATH
您不需要使用二進制絕對路徑的別名 - 例如,您不再需要別名,gem
因為您可以執行gem
.更新:如果您
~/.bashrc
沒有來源,請放入source ~/.bashrc
乾淨的~/.bash_profile
.
Bash 讀取
~/.bash_profile
它是否存在,~/.profile
如果不存在。因此,當您創建時~/.bash_profile
,您~/.profile
的不再使用。與其他 shell 相比,您的別名不是特定於 bash 的,因此您不妨將它們放在~/.profile
.此外,您啟動互動式登錄 bash,bash 讀取
~/.bash_profile
或~/.profile
(特定於 bash 的會話啟動腳本,或通用 shell 會話啟動腳本,如果它不存在),但不是~/.bashrc
(互動式 bash 啟動腳本)。因此,將這兩行放入您的文件~/.bash_profile
中以按原樣載入所有內容:. ~/.profile case $- in *i*) . ~/.bashrc;; esac