淺析Linux下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件


轉自:http://www.ahlinux.com/shell/20239.html

0x01

  /etc/profile:此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行,並從/etc/profile.d目錄的配置文件中收集shell的設置;

 

  /etc/bashrc:為每一個運行bash shell的用戶執行此文件,當bash shell被打開時,該文件被讀取;

 

  ~/.bash_profile:每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,它設置一些環境變量,執行用戶的.bashrc文件;

 

  ~/.bashrc:該文件包含用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該文件被讀取;

 

  ~/.bash_logout:當每次退出系統(退出bash shell)時,執行該文件;

 

  另外,/etc/profile中設定的變量(全局)的可以作用於任何用戶,而~/.bashrc等中設定的變量(局部)只能繼承/etc/profile中的變量,他們是“父子”關系;

  

  ~/.bash_profile是交互式、login方式進入bash運行的;

  ~/.bashrc是交互式、non-login方式進入bash運行的;通常二者設置大致相同,所以通常前者會調用后者;

 

0x02 Ubuntu下bash的幾個初始化文件

  /etc/profile 全局(公有)配置,不管是哪個用戶,登錄時都會讀取該文件;

  

  /etc/bashrc Ubuntu下沒有此文件,與之對應的是/etc/bash.bashrc,它也是全局的;bash執行時,不管是何種方式,都會讀取此文件;

  

  ~/.profile 若bash是以login方式執行時,讀取~/.bash_profile,若它不存在,則讀取~/.bash_login,若前兩者不存在,讀取~/.profile;另外,圖形模式登錄時,此文件將被讀取,即使存在~/.bash_profile和~/.bash_login;

  

  ~/.bash_login 若bash是以login方式執行時,讀取~/.bash_profile,若它不存在,則讀取~/.bash_login,若前兩者都不存在,則讀取~/.profile;

 

  ~/.bash_profile Ubuntu默認沒有此文件,可新建。只有bash是以login形式執行時,才會讀取此文件。通常該配置文件還會配置成去讀取~/.bashrc;

 

  ~/.bashrc 當bash是以non-login形式執行時,讀取此文件。若是以login形式執行,則不會讀取此文件;

  

  ~/.bash_logout 注銷時,且是login形式,此文件才會讀取。也就是說,在文本模式注銷時,此文件會被讀取,圖形模式注銷時,此文件不會被讀取。

  

  

  

  

  

 


免責聲明!

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



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