天天看點

linux下的環境變量

bashrc與profile都用于儲存使用者的環境資訊,bashrc用于互動式non-loginshell,而profile用于互動式login shell。

/etc/profile,/etc/bashrc 是系統全局環境變量設定

~/.profile,~/.bashrc使用者目錄下的私有環境變量設定

當登入系統獲得一個shell程序時,其讀取環境設定腳本分為三步:

  1. 首先讀入的是全局環境變量設定檔案/etc/profile,然後根據其内容讀取額外的文檔,如/etc/profile.d和/etc/inputrc
  2. 讀取目前登入使用者Home目錄下的檔案~/.bash_profile,其次讀取~/.bash_login,最後讀取~/.profile,這三個文檔設定基本上是一樣的,讀取有優先關系
  3. 讀取~/.bashrc

~/.profile與~/.bashrc的差別:

  • 這兩者都具有個性化定制功能
  • ~/.profile可以設定本使用者專有的路徑,環境變量,等,它隻能登入的時候執行一次
  • ~/.bashrc也是某使用者專有設定文檔,可以設定路徑,指令别名,每次shell script的執行都會使用它一次

以下給出幾種centos下環境變量的修改方式

1.直接運作指令

export PATH=$PATH:/usr/local/php/bin //此處我設定的php的      

使用這種方法,隻會對目前回話生效,也就是說每當登出或登出系統以後,PATH 設定就會失效,隻是臨時生效。

2.修改~/.bash_profile檔案,修改檔案中 PATH 一行,将 /usr/local/php/bin 加入到 PATH=$PATH:$HOME/bin 一行之後(注意以冒号分隔),儲存檔案并退出,執行 source ~/.bash_profile 使其生效,這種方法隻對目前登陸使用者生效。

3.修改/etc/bashrc(Ubuntu和Debian中是/etc/bash.bashrc),影響所有使用者使用的bash shell。/etc/bashrc顧名思義是為初始化bash shell而生,在bash shell打開時運作。這裡bash shell有不同的類别:登入shell和非登陸shell,登入shell需要輸入使用者密碼,例如ssh登入或者su - 指令提權都會啟動login shell模式。非登陸shell不會執行任何profiel檔案;互動shell和非互動shell,提供指令提示符等待使用者輸入指令的是互動shell模式,直接運作腳本檔案是非互動shell模式,一般情況下非互動shell模式不執行任何bashrc檔案。根據以上情況,選擇是否修改/etc/bashrc。