Linux| Linux配置環境變數
環境變數
在所有 Unix 和 類Unix系統中, 每個程序都有其各自的環境變數設定。 預設情況下, 當一個程序被建立時, 除了建立過程中的明確更改外,它繼承了其父程序的絕大部分環境設定。
一.設定永久環境變數
永久環境變數就是在推出系統後,重新登入系統,這些環境變數的設定依然生效,下面有三種方式來設定永久環境變數,分別從不同的作用域來說明和配置環境變數.
1.設定所有使用者生效
/etc/profile
檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行.
並從/etc/profile.d目錄的配置檔案中搜集shell的設定.
官方是不建議我們直接來修改該配置檔案的,這裡我們可以在/etc/profile.d/
userall.sh
(名字可以隨便命名),但是一定要放在/etc/profile.d/
目錄下
比如:#! /bin/bash ############# JDK ############################## export JAVA_HOME=/root/jdk1.8.0 export CLASSPATH=.:${JAVA_HOME}/jre/lib:${JAVA_HOME}/lib ################################################## export PATH=${JAVA_HOME}/bin:$PATH
2.設定指定使用者生效
~/.bash_profile
檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.bash_profile
檔案位於每個使用者目錄下,為隱藏檔案,如果不存在也可以手動建立.比如我們可以在.bash_profile
檔案末尾條件如下配置來設定該使用者的JDK環境變數export JAVA_HOME=/root/jdk1.8.0 export CLASSPATH=.:${JAVA_HOME}/jre/lib:${JAVA_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
二.臨時環境變數
另外如果只是需要設定零時的環境變數,可以直接在shell介面通過命令export 變零名=變數值
來設定,當視窗關閉,該環境變數就失效了.
三./etc/profile
和/etc/profile.d
的區別
CentOS 中每個使用者都要指定各自的環境變數,其中包括可執行的 path路徑,這些路徑決定了每個使用者在執行時的命令工具。
一般情況下,可以再每個使用者的環境變數裡設定各自的 path變數值,然後再執行export PATH使其生效,但如果使用者比較多,安裝命令工具也原來越多,且出來本身使用者可以執行這些工具,root使用者或其他使用者也可以執行命令,這時在每個使用者環境變數裡新增就比較複雜了。
所以可以用另外一種方法:可以在/etc/profile.d/
目錄下建立一個 path.sh
(名字可以隨便命名)指令碼,指令碼內容如下:
# cat /etc/profile.d/path.sh
export PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/nginx/sbin:/usr/local/php/bin:/usr/local/php/sbin:/usr/local/mysql/bin:/usr/local/redis/bin:/usr/local/daemontools/bin:/usr/local/daemontools/sbin:/usr/local/percona-xtrabackup/bin"
可以將需要各個使用者需要執行的命令路徑都寫在該命令中,這樣每次作業系統其中後,會自動執行path.sh指令碼,將所有的環境變數生效,讓各個使用者都可以直接執行各自的命令。
以後安裝了新軟體後,只需要將軟體相關路徑加入/etc/profile.d/path.sh
指令碼中,不需要再多個地方重複新增,使指令碼生效後,各個使用者都可以使用了。
四.建議
- 為所有使用者設定環境變數在
/etc/profile.d
目錄下新建指令碼檔案,將環境變數配置配置在指令碼檔案中. - 為當前使用者配置環境變數在
.bash_profile
檔案中新增環境變數配置 - 配置臨時環境變數,使用
export 變數名=變數值