Linux中環境變量中文件執行順序


 
 
Linux 的變量可分為兩類:環境變量和本地變量
 
環境變量:或者稱為全局變量,存在於所有的shell 中,在你登陸系統的時候就已經有了相應的系統定義的環境變量了。Linux 的環境變量具有繼承性,即子shell 會繼承父shell 的環境變量。
本地變量:當前shell 中的變量,很顯然本地變量中肯定包含環境變量。Linux 的本地變量的非環境變量不具備繼承性。
 
Linux 中環境變量的文件
   
當你進入系統的時候,Linux 就會為你讀入系統的環境變量,Linux 中有很多記載環境變量的文件,它們被系統讀入是按照一定的順序的。
1.    /etc/profile 
 
此文件為系統的環境變量,它為每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行。並從/etc/profile.d 目錄的配置文件中搜集shell 的設置。這個文件,是任何用戶登陸操作系統以后都會讀取的文件(如果用戶的shell 是csh 、tcsh 、zsh ,則不會讀取此文件),用於獲取系統的環境變量,只在登陸的時候讀取一次。 (假設用戶使用的是BASH )
 
2.    /etc/bashrc 
 
在執行完/etc/profile 內容之后,如果用戶的SHELL 運行的是bash ,那么接着就會執行此文件。另外,當每次一個新的bash shell 被打開時, 該文件被讀取。每個使用bash 的用戶在登陸以后執行完/etc/profile 中內容以后都會執行此文件,在新開一個bash 的時候也會執行此文件。因此,如果你想讓每個使用bash 的用戶每新開一個bash 和每次登陸都執行某些操作,或者給他們定義一些新的環境變量,就可以在這個里面設置。
 
3.    ~/.bash_profile 
每個用戶都可使用該文件輸入專用於自己使用的shell 信息。當用戶登錄時,該文件僅僅執行一次,默認情況下,它設置一些環境變量,執行用戶的.bashrc 文件。單個用戶此文件的修改只會影響到他以后的每一次登陸系統。因此,可以在這里設置單個用戶的特殊的環境變量或者特殊的操作,那么它在每次登陸的時候都會去獲取這些新的環境變量或者做某些特殊的操作,但是僅僅在登陸時。
 
4.    ~/.bashrc 
 
該文件包含專用於單個人的bash shell 的bash 信息,當登錄時以及每次打開一個新的shell 時, 該該文件被讀取。單個用戶此文件的修改會影響到他以后的每一次登陸系統和每一次新開一個bash 。因此,可以在這里設置單個用戶的特殊的環境變量或者特殊的操作,那么每次它新登陸系統或者新開一個bash ,都會去獲取相應的特殊的環境變量和特殊操作。
 
5.   ~/.bash_logout 
當每次退出系統( 退出bash shell) 時, 執行該文件。
 
用戶登錄后加載profile和bashrc的流程如下: 
1)/etc/profile-------->/etc/profile.d/*.sh 
2)$HOME/.bash_profile-------->$HOME/.bashrc---------->/etc/bashrc 
bash首先執行/etc/profile腳本,/etc/profile腳本先依次執行/etc/profile.d/*.sh 
隨后bash會執行用戶主目錄下的.bash_profile腳本,.bash_profile腳本會執行用戶主目錄下的.bashrc腳本, 
而.bashrc腳本會執行/etc/bashrc腳本 
至此,所有的環境變量和初始化設定都已經加載完成.
bash隨后調用terminfo和inputrc,完成終端屬性和鍵盤映射的設定. 
 
 
 


免責聲明!

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



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