在你登陸Linux系統啓動一個bash shell時,默認狀況下bash在幾個文件中查找命令,這幾個文件成爲啓動文件;
bash檢查的啓動文件取決於你啓動bash shell的方式,啓動bash shell有3中方式:linux
當你登陸Linux系統時,登錄了shell會從5個不一樣的啓動文件裏讀取命令:shell
1.1 /etc/profile文件 主要登錄了linux系統,bash就會執行/etc/profile/啓動文件中的命令
每一個發行版的/etc/peofile文件都有不一樣的設置和命令bash
以上程序含有for循環是用來迭代/etc/profile.d目錄下全部文件函數
1.2 $HOME目錄下的啓動文件 ,通常linux發行版只用到下面4個裏面的1~2個文件:測試
他們都是隱藏文件,位於用戶HOME目錄下,因此每一個用戶均可以編輯這些文件並添加本身的環境變量,這些環境變量會在每次啓動bash shell會話時候生效。
如我的的測試機上面只有.profile .bashrcspa
若是你在命令行提示符敲下bash命令,你啓動的shell稱做爲交互式shell;
若是bash是做爲交互式shell啓動的,它就不會去訪問/etc/profile文件,而會去用戶的HOME目錄檢查.bashrc是否存在;
.bashrc文件有兩個做用;命令行
系統執行shell腳本時用的就是非交互式shell,不一樣的地方在於它沒有命令行提示符。
當shell啓動一個非交互式shell進程時,它會檢查這個環境變量來查看要執行的啓動文件,若是有指定的文件,shell會執行該文件裏的命令,這一般包括shell腳本變量設置。htm
1. 按變量的生存週期來劃分,Linux變量可分爲兩類: blog
2.永久環境變量,對全部用戶有效
修改/etc/profile文件也可,可是若是升級所用發行版也同樣會更新,定製過的變量會消失
建議修改/etc/profile.d目錄 中建立一個以.sh爲結尾的文件,把定製過的全局環境變量放置其中。
3.永久環境變量,對單一用戶有效
修改用戶目錄下的.bash_profile文件
4. 臨時環境變量,只對當前shell(BASH)有效
在shell的命令行下直接使用[export 變量名=變量值] 定義變量,
該變量只在當前的shell(BASH)或其子shell(BASH)下是有效的,
shell關閉了,變量也就失效了,再打開新shell時就沒有這個變量,須要使用的話還須要從新定義。