1. 程式人生 > >Centos環境變量文件的讀取流程

Centos環境變量文件的讀取流程

mask 系統目錄 out 順序 name 用戶 很好 設置 記錄

首先說一下login shell和non-login shell的區別。所謂login shell簡單來說就是需要輸入用戶名、密碼的登錄方式;而non-login shell的登錄方式就是不需要輸入用戶名、密碼的登錄方式。舉個更具體的例子,當你不管登錄到tty1~tty6那個界面輸入賬戶密碼,這就是login shell;而當你登錄有Xwindow的級別,當你右鍵新建一個命令終端時,此時就是non-login shell。

login shell

上流程圖:

/etc/profile--------------------------------------------------->~/.bash_profile---------------->開始操作 bash

|     |

|     |

|- - ->/etc/inputrc |- - ->~/.bashrc

| |

|- - ->/etc/profile.d/*.sh <- - - - - - - - - - - - - - - - -/etc/bashrc

|

/etc/sysconfig/i18n

大致流程就是這樣的,實線方向是主流程,虛線是文件的調用。

login shell 在啟動的時候,一定會讀取兩個配置文件:/etc/profile、~/.bash_profile(或 ~/.bash_login 或 ~/.profile)

一、/etc/profile

這個文件是系統的整體設定,也是每個使用者登錄 bash 的時候一定會讀取的配置文件。主要有一下幾個變量:

PATH:環境變量。會依據 UID 決定是否要包含 sbin 的系統目錄
MAIL:依據 UID 決定使用者的郵箱
USER:用戶名
HOSTNAME:主機名
HISTSIZE:歷史命令記錄數
/etc/profile 文件還會還會調用其他的文件,包括以下文件:

  • /etc/inputrc
    自定義按鍵輸入功能。
  • /etc/profile.d/*.sh
    bash 窗口的顏色、語系、命令別名等的一些設定。

    當你需要自定義一些整體環境變量時,就可以在這個目錄下新建一個以.sh結尾的文件。

  • /etc/sysconfig/i18n
    語系設定

二、~/.bash_profile

bash 在讀取完整體環境設定的 /etc/profile 並呼叫其他配置文件之後,接下來會讀取使用者的個人配置文件。在 login shell 的環境下,讀取的個人配置文件主要有以下三個:

1.~/.bash_profile
2.~/.bash_login
3.~/.profile
bash 只會讀取上面文件中的一個,而且讀取的優先級 1 > 2 > 3。

.bash_profile文件的內容,主要在PATH路徑上添加了/bin路徑;且如果存在~/.bashrc還會去讀取~/.bashrc

技術分享圖片

三、~/.bashrc

主要的定義了rm、cp、mv三個命令別名,並調用/etc/bashrc

技術分享圖片

四、/etc/bashrc

這個文件主要設置了umask的值變量PS1的值。

如果這個文件丟失,那麽,你的界面提示符就是變成這樣,因為你的PS1變量的值沒有設置:

技術分享圖片

五、其他的配置文件

1、~/.history  存儲了你的歷史命令

2、~/.bash_logout  可以自定義註銷時自動執行的操作

non-login shell

弄清楚了login shell的登錄流程,那麽non-login shell的登錄順序就很好理解了。

non-login方式登錄時是直接從~/.bashrc往後讀取的。

所以如果你要設置自己的環境變量,只需要寫到~/.bashrc文件裏面就可以了

Centos環境變量文件的讀取流程