Profile

為什麼可以將 ~/.profile 添加到 ~/.bash_profile?

  • October 25, 2019

安裝RVM時,會收到以下消息:

* WARNING: You have '~/.profile' file, you might want to load it,
 to do that add the following line to '/home/dotancohen/.bash_profile':

   source ~/.profile

我很擔心,因為我的 ~/.profile 文件包含xmodmap ~/.Xmodmap我顯然不想在每次打開新 shell 時執行(交換我的 CapsLock 和 ESC 鍵)。

為什麼明智的 RVM 開發.profile人員會建議採購.bash_profile

.profile並且.bash_profile在它們被執行的時間方面是相同的:它們在您登錄時執行。不同之處在於只有 bash 執行.bash_profile;Bourne 風格的 shell(dash、ksh 等)執行.profile. .profile如果.bash_profile不存在,Bash 本身就會執行。

即使你有 bash 作為你的登錄 shell,.profile它也經常是在你以圖形模式登錄時執行的——許多發行版都設置了 X 會話啟動腳本來執行sh和載入.profile

因此建議使用.profile而不是.bash_profile做諸如定義環境變數之類的事情。除非您絕對需要特定於 bash 的功能,否則只需將所有內容放入.profile. 但即使你這樣做了,也有理由保留 a .bash_profile,即當 bash 載入它時,它不會 load .bashrc,即使它是互動式的。因此,對於大多數人來說,~/.bash_profile應該由以下兩行組成:

. ~/.profile
case  $- in *i*) . ~/.bashrc;; esac

你不應該xmodmap.profile. 這不會在您打開新的 shell 時執行,但會在您使用帶有 X11 轉發的 SSH 遠端登錄時執行。不幸的是,當您以圖形模式登錄時,沒有載入任何標准文件。Debian 載入~/.xsessionrc(我認為這適用於所有顯示管理器,除了載入 Gdm ~/.xprofile);其他發行版有不同的設置。如果您需要跨發行版的可移植性,配置您的桌面環境以xmodmap在啟動時執行可能會更容易。如果您所做的只是交換 CapsLock 和 Ctrl,則可以使用大多數現代桌面環境提供的介面的 XKB 設置來完成。

引用自:https://unix.stackexchange.com/questions/253634