1. 程式人生 > >Linux| Linux配置環境變數

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

    : 每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當用戶登入時,該
    檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.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 變數名=變數值