Linux 系統啓動文件,bash 啓動文件,設置環境變量的位置

系統級啓動文件 shell

====================================bash

一、/etc/rc  主啓動文件,不要修改它操作系統

二、/etc/rc.conf  決定啓動哪些系統自帶的守護進程,不要修改它進程

三、/etc/rc.conf.local 若是你想幹涉系統啓動時啓動的守護進程,請編輯本文件,本文件的內容會覆蓋/etc/rc.conf中的內容。it

四、/etc/rc.local  重點,你想讓Nginx,MySQL,Tomcat自啓動,請修改這個文件。登錄

五、/etc/rc.shutdown 重點,在操做系統關機時執行,可關閉Nginx,MySQL,Tomcat變量

 

一、 /etc/rc.local配置

系統啓動須要加載的守護進程(服務)和執行的程序。該文件只有一條「exit 0」語句,用戶可加入本身的啓動程序,但須要保證最後的返回是0。file

注意,該文件中不能加入用戶shell下的腳本,例如加入 alias ll="ls -l" 無效,由於該文件的執行環境是在系統shell下,系統還沒有進入用戶shell環境。終端

可配置環境變量,可作開機自啓動,由於開機自啓動程序須要使用環境變量。

 

 

 

bash(用戶級)啓動文件 - [Ubuntu]  (/etc/profile 、/etc/bashrc 、 ~/.profile 、 ~/bashrc 文件)

====================================

1)進入系統時,先執行/etc/rc.local文件,再/etc/profile文件,再執行/etc/bashrc文件;結束後,進入bash(假如登錄用戶爲user),先執行/etc/profile文件,再執行/home/user/.bash_profile文件,根據該文件,執行/home/user/.bashrc文件,再根據該文件,執行/etc/bashrc文件,執行完畢後,整個執行過程結束。


2)切換用戶(如從root用戶切換至wxc用戶)時,使用"su"命令,系統先執行/home/wxc/.bashrc文件,再根據該文件,執行/etc/bashrc文件,執行完畢後,整個執行過程結束;當使用"su -"命令時,先執行/etc/profile文件,再執行/etc/profile.d/*.sh和/home/wxc/.bash_profile文件,根據該文件,執行/home/wxc/.bashrc文件,再根據該文件,執行/etc/bashrc文件,執行完畢後,整個執行過程結束。

 

(1)/etc/profile

全局(公有)配置,無論是哪一個用戶,登陸時都會讀取該文件。

可配置環境變量,如JAVA_HOME

Mac 有此文件

 

(2)/etc/bashrc

全局(公有)配置,bash shell執行時,無論是何種方式,都會讀取此文件。

Mac 有此文件 

Ubuntu沒有此文件,與之對應的是/ect/bash.bashrc

 

 

(3)~/.bashrc

當bash shell是以non-login形式執行時,讀取此文件。如果以login形式執行,則不會讀取此文件。

當登陸時以及每次打開新的shell時,該該文件被讀取.

~/.bash_profile 與 ~/.bashrc  設置大體相同,因此一般前者會調用後者。

 

(4)~/.bash_profile

若bash shell是以login方式執行時,纔會讀取此文件。該文件僅僅執行一次!默認狀況下,他設置一些環境變量,執行用戶的~/.bashrc文件.

~/.bash_profile 與 ~/.bashrc  設置大體相同,因此一般前者會調用後者。

Mac 有此文件(注:Linux 裏面是 .bashrc 而 Mac 是 .bash_profile)

Unbutu默認沒有此文件,可新建。

 

(5)~/.bash_login

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

 

(6)~/.profile

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

另外,圖形模式登陸時,此文件將被讀取,即便存在~/.bash_profile和~/.bash_login。

Mac 默認沒有此文件,可手動建立此文件

 

 

(7)~/.bash_logout

註銷時,且是longin形式,此文件纔會讀取。也就是說,在文本模式註銷時,此文件會被讀取,圖形模式註銷時,此文件不會被讀取。

 

 

 

下面是在本機(Ubuntu)的幾個例子

====================================

1. 圖形模式登陸時,順序讀取:/etc/profile和~/.profile

2. 圖形模式登陸後,打開終端時,順序讀取:/etc/bash.bashrc和~/.bashrc

3. 文本模式登陸時,順序讀取:/etc/bash.bashrc,/etc/profile和~/.bash_profile

4. 從其它用戶su到該用戶,則分兩種狀況:

(1)若是帶-l參數(或-參數,--login參數),如:su -l username,則bash是lonin的,它將順序讀取如下配置文件:/etc/bash.bashrc,/etc/profile和~ /.bash_profile。

(2)若是沒有帶-l參數,則bash是non-login的,它將順序讀取:/etc/bash.bashrc和~/.bashrc

5. 註銷時,或退出su登陸的用戶,若是是longin方式,那麼bash會讀取:~/.bash_logout

6. 執行自定義的shell文件時,若使用「bash -l a.sh」的方式,則bash會讀取行:/etc/profile和~/.bash_profile,若使用其它方式,如:bash a.sh, ./a.sh,sh a.sh(這個不屬於bash shell),則不會讀取上面的任何文件。

7. 上面的例子凡是讀取到~/.bash_profile的,若該文件不存在,則讀取~/.bash_login,若前二者不存在,讀取~/.profile。

相關文章
相關標籤/搜索