Ubuntu
.bashrc 未載入,.bash_profile 存在
在 ubuntu 終端中,我的 .bashrc 在我執行之前不可用: source ~/.bashrc
我有一個 ~/.bash_profile 的內容:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
我有一個 ~/.profile :
# if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi
我應該怎麼做才能讓我的 .bashrc 自動載入?我應該合併 .bash_profile 和 .profile 並刪除其中一個嗎?謝謝
您需要將存在於您的相同邏輯添加
.profile
到您的.bash_profile
..profile
如果.bash_profile
存在則不使用,因此您.bashrc
沒有被採購。不過,在 .bash_profile 中不需要檢查您是否正在執行 bash。這就足夠了:
[[ -f ~/.bashrc ]] && source ~/.bashrc
SuperUser 上有一個很好的答案,解釋了.bashrc 和 .bash_profile 之間的區別。
本質上,“配置文件”文件僅在登錄時讀取。你可以這樣想;當您登錄時,shell 使用配置文件之一來“設置您的配置文件”。
否則,如果您已經登錄,並且您啟動了一個新會話(打開一個新選項卡/視窗或在 cli 上呼叫 bash),shell 只會讀取您的“rc”文件。
我通過將大部分內容放在我的 .bashrc 文件中,然後從我的 .profile 文件中獲取 .bashrc 文件來處理這個問題。這是一個例子:
我的
.profile
文件:source ~/.bashrc
我的
.bashrc
文件:alias g='egrep -i' export CLICOLOR=1 export LSCOLORS=ehfxcxdxbxegedabagacad PS1="\[\e[0;31m\]\u\[\e[0;32m\]@\[\e[0;31m\]\h\[\e[0;37m\] \w\[\e[0;39m\]" case `id -u` in 0) PS1="${PS1}# ";; *) PS1="${PS1}$ ";; esac