1.Debian默認的shell是Bash,
1.1 命令行 和 ssh 登陸 ,首先讀入 /etc/profile,這是對全部用戶都有效的配置;而後依次尋找下面三個文件,這是針對當前用戶的配置。
~/.bash_profile
~/.bash_login
~/.profilehtml
須要注意的是,這三個文件只要有一個存在,就再也不讀入後面的文件了。好比,要是 ~/.bash_profile 存在,就不會再讀入後面兩個文件了。shell
1.2 圖形界面登陸:只加載 /etc/prfile 和 ~/.profile。也就是說,~/.bash_profile 無論有沒有,都不會運行。segmentfault
2.用戶進入操做系統圖形界面之後,經常會再手動開啓一個shell。這個shell就叫作 non-login shell,意思是它不一樣於登陸時出現的那個shell,不讀取/etc/profile和.profile等配置文件。bash
3.終端模擬器一般會有選項來指定是開 login shell 仍是 non-login shell,好比 xfce4-terminal 能夠在設置中修改。
(deepin-terminal 改 ~/.config/deepin/deepin-terminal/config.conf ——>run_as_login_shell=true 也是)。ssh
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的區別命令行