.bash_profile 加載


1.Debian默認的shell是Bash,
  1.1 命令行 和 ssh 登錄 ,首先讀入 /etc/profile,這是對所有用戶都有效的配置;然后依次尋找下面三個文件,這是針對當前用戶的配置。
   ~/.bash_profile
   ~/.bash_login
   ~/.profile

需要注意的是,這三個文件只要有一個存在,就不再讀入后面的文件了。比如,要是 ~/.bash_profile 存在,就不會再讀入后面兩個文件了。

  1.2 圖形界面登錄:只加載 /etc/prfile 和 ~/.profile。也就是說,~/.bash_profile 不管有沒有,都不會運行。

2.用戶進入操作系統圖形界面以后,常常會再手動開啟一個shell。這個shell就叫做 non-login shell,意思是它不同於登錄時出現的那個shell,不讀取/etc/profile和.profile等配置文件。

3.終端模擬器通常會有選項來指定是開 login shell 還是 non-login shell,比如 xfce4-terminal 可以在設置中修改。
 (deepin-terminal 改 ~/.config/deepin/deepin-terminal/config.conf ——>run_as_login_shell=true 也是)。

終上所述:

  1. 圖形界面登錄是 non-login 不運行 .bash_profile 。
  2. shell 和 ssh 登錄打開 login shell ,會運行 .bash_profile。
  3. 圖形界面登錄,可以指定 終端模擬器 為 non-login 還是 login ,但這只是指定 終端模擬器 ,經我實測,和寫到 .bashrc 效果一樣,每次打開終端都會執行一次。
  4. 要只在圖形界面登錄時執行一次,應該寫入 .profile,而不是 .bash_profile,或者在 .profile 增加一條 調用 .bash_profile。

參考:
Linux 的啟動流程 Linux 的啟動流程
我的桌面環境是non-login 環境嗎?
login shell與non-login shell的區別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM