1. 環境變量是操做系統環境設置的變量,適用於整個系統的用戶進程; shell
2. 環境變量能夠在命令中設置,可是用戶註銷的時候將會丟失這些設置值; vim
3. 若要重複適用,則最好在.profile中定義;環境變量的使用與本地變量的使用方法相同,bash
4. 可是在使用以前,必須用export命令導出。ide
一.Linux的變量種類按變量的生存週期來劃分,Linux變量可分爲兩類:spa
1.永久的:須要修改配置文件,變量永久生效操作系統
2.臨時的:使用export命令聲明便可,變量在關閉shell時失效命令行
二.Linux 環境變量文件linux變量文件有/etc/environment 或 /etc/profile 或 ~/.profile 或 /etc/bash.bashrc 或 ~/.bashrc, 以及~/.bash_profile(通常是用戶在本身目錄下新建的),~/.bash_logout.生命週期
1./etc/environment:是系統在登陸時讀取的第一個文件,用於爲全部進程設置環境變量。系統使用此文件時並非執行此文件中的命令,而是根據而是根據KEY=VALUE模式的代碼,對KEY賦值以VALUE,所以文件中若是要定義PATH環境變量,只需加入一行形如 PATH=$PATH:/xxx/bin的代碼便可進程
2./etc/profile:此文件是系統登陸時執行的第二個文件。 爲系統的每一個用戶設置環境信息,當用戶第一次登陸時,該文件被執行。並從/etc/profile.d目錄的配置文件中搜集shell的設置。it
(/etc/profile能夠用於設定針對全系統全部用戶的環境變量,環境變量週期是永久性)
3. ~/.profile:
對應當前登陸用戶的profile文件,用於定製當前用戶的我的工做環境(變量是永久性)
4. /etc/bash.bashrc:是針對全部用戶的bash初始化文件,在此中設定的環境變量將應用於全部用戶的shell中,此文件會在用戶每次打開shell時執行一次
5.~/.bashrc:該文件包含專用於你的bash shell的bash信息,當登陸時以及每次打開新的shell時,該文件被讀取。(~/.bashrc只針對當前用戶,變量的生命週期是永久的)
6.~/.bash_profile:每一個用戶均可使用該文件輸入專用於本身使用的shell信息,當用戶登陸時,該文件僅僅執行一次。默認狀況下,他設置一些環境變量,執行用戶的.bashrc文件。(若是~/目錄下沒有.bash_profile則新創建一個)
當一個shell關閉時,在bash_profile中定義的系統變量則會失效。所以,每打開一個新的shell時都要運行一次source bash_profile.並且針對當前用戶。
7.~/.bash_logout:當每次退出系統(退出bash shell)時,執行該文件。
說明:
1.以上這幾個文件的執行順序是/etc/enviroment–>/etc/profile –>~/.profile –>/etc/bash.bashrc–> ~/.bashrc
2.要使得剛修改的環境變量生效:source .bashrc
3.查看環境變量:env
4.使用readonly命令設置只讀變量,若是使用了readonly命令的話,變量就不能夠被修改或清除了。
5.使用unset命令來清除環境變量
$ unset TEMP_KEVIN #刪除環境變量TEMP_KEVIN
三.設置變量的三種方法1. 在/etc/profile文件中添加變量[對全部用戶生效(永久的)]
用vim在文件/etc/profile文件中增長變量,該變量將會對Linux下全部用戶有效,而且是「永久的」。
例如:編輯/etc/profile文件,添加TEST變量
# vim/etc/profile
exportTEST=JIBO
注:修改文件後要想立刻生效還要運行# source /etc/profile否則只能在下次重進此用戶時生效。
2. 在用戶目錄下的.bash_profile文件中增長變量[對單一用戶生效(永久的)]
用vim在用戶目錄下的.bash_profile文件中增長變量,改變量僅會對當前用戶有效,而且是「永久的」。
例如:編輯jibo用戶目錄(/home/jibo)下的.bash_profile
$ vi/home/jibo/.bash.profile 若是沒就更改.bashrc文件.
添加以下內容:
exportTEST=JIBO
注:修改文件後要想立刻生效還要運行
$source /home/jibo/.bash_profile否則只能在下次重進此用戶時生效。
3. 直接運行export命令定義變量(只對當前shell(BASH)有效(臨時的))
在shell的命令行下直接使用[export變量名=變量值]定義變量,該變量只在當前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變量也就失效了,再打開新shell時就沒有這個變量,須要使用的話還須要從新定義。
1>同一行鍵入2個語句,使用分號隔開
VARIABLE-NAME=value; export VARIABLE-NAME
也能夠分行寫:
VARIABLE-NAME=value
export VARIABLE-NAME
4.set命令
在$HOME.profile文件中,設置環境變量時,除了export能夠導出以外,還有set -a命令,能夠指明全部變量直接被導出;不過別在/etc/profile中設置,在本身的$HOME.profile中設置。