系統級啟動文件
====================================
1、/etc/rc 主啟動文件,不要修改它
2、/etc/rc.conf 決定啟動哪些系統自帶的守護進程,不要修改它
3、/etc/rc.conf.local 如果你想干涉系統啟動時啟動的守護進程,請編輯本文件,本文件的內容會覆蓋/etc/rc.conf中的內容。
4、/etc/rc.local 重點,你想讓Nginx,MySQL,Tomcat自啟動,請修改這個文件。
5、/etc/rc.shutdown 重點,在操作系統關機時執行,可關閉Nginx,MySQL,Tomcat
1、 /etc/rc.local
系統啟動需要加載的守護進程(服務)和執行的程序。該文件只有一條“exit 0”語句,用戶可加入自己的啟動程序,但需要保證最后的返回是0。
注意,該文件中不能加入用戶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形式,此文件才會讀取。也就是說,在文本模式注銷時,此文件會被讀取,圖形模式注銷時,此文件不會被讀取。
設置環境變量
export xxx=xxxx
例如 export http_proxy=http://example.com:8080
刪除環境變量
unset xxxx
例如 unset http_proxy
下面是在本機(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。