系統級啓動文件 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。