天天看點

Linux 設定和檢視環境變量的方法

1、Linux的變量種類

按變量的生存周期來劃分,Linux變量可分為兩類:

  • 永久的:需要修改配置檔案,變量永久生效。
  • 臨時的:使用export指令聲明即可,變量在關閉shell時失效。

2、設定變量的三種方法

2.1 在/etc/profile檔案中添加變量【對所有使用者生效(永久的)】

用vim在檔案/etc/profile檔案中增加變量,該變量将會對Linux下所有使用者有效,并且是“永久的”。

例如:編輯/etc/profile檔案,添加CLASSPATH變量

# vim /etc/profile 
# export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 
           
注:修改檔案後要想馬上生效還要運作# source /etc/profile不然隻能在下次重進此使用者時生效。
2.2 在使用者目錄下的.bash_profile檔案中增加變量【對單一使用者生效(永久的)】

用vim在使用者目錄下的.bash_profile檔案中增加變量,改變量僅會對目前使用者有效,并且是“永久的”。

例如:編輯guok使用者目錄(/home/guok)下的.bash_profile

# vi /home/guok/.bash.profile 
# export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 
           

注:修改檔案後要想馬上生效還要運作$ source /home/guok/.bash_profile不然隻能在下次重進此使用者時生效。

2.3 直接運作export指令定義變量【隻對目前shell(BASH)有效(臨時的)】

在shell的指令行下直接使用[export 變量名=變量值] 定義變量,該變量隻在目前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變量也就失效了,再打開新shell時就沒有這個變量,需要使用的話還需要重新定義。

3、環境變量的檢視

3.1 使用echo指令檢視單個環境變量
# echo $HOME 
/home/redbooks 
           
3.2 使用env檢視所有環境變量
# env 
HOSTNAME=redbooks.safe.org 
PVM_RSH=/usr/bin/rsh 
Shell=/bin/bash 
TERM=xterm 
HISTSIZE= 
... 
           
3.3 使用set檢視所有本地定義的環境變量
# set 
BASH=/bin/bash 
BASH_VERSINFO=([]="2"[]="05b"[]="0"[]="1"[]="release"[]="i386-redhat-linux-gnu") 
BASH_VERSION='2.05b.0(1)-release' 
COLORS=/etc/DIR_COLORS.xterm 
COLUMNS= 
DIRSTACK=() 
DISPLAY=: 
... 
           
3.4 unset可以删除指定的環境變量

set可以設定某個環境變量的值。清除環境變量的值用unset指令。如果未指定值,則該變量值将被設為NULL。示例如下:

# export TEST="Test..." #增加一個環境變量TEST 
# env|grep TEST #此指令有輸入,證明環境變量TEST已經存在了 
TEST=Test... 
# unset $TEST #删除環境變量TEST 
# env|grep TEST #此指令沒有輸出,證明環境變量TEST已經存在了 
           

4. 使用readonly指令設定隻讀變量

如果使用了readonly指令的話,變量就不可以被修改或清除了。示例如下:

# export TEST="Test..." #增加一個環境變量TEST 
# readonly TEST #将環境變量TEST設為隻讀 
# unset TEST #會發現此變量不能被删除 
-bash: unset: TEST: cannot unset: readonly variable 
# TEST="New" #會發現此也變量不能被修改 
-bash: TEST: readonly variable 
           

環境變量的設定位于/etc/profile檔案,如果需要增加新的環境變量可以添加下屬行:

5、常用的環境變量

PATH 決定了shell将到哪些目錄中尋找指令或程式

HOME 目前使用者主目錄

HISTSIZE 曆史記錄數

LOGNAME 目前使用者的登入名

HOSTNAME 指主機的名稱

SHELL 目前使用者Shell類型

LANGUGE  語言相關的環境變量,多語言可以修改此環境變量

MAIL 目前使用者的郵件存放目錄

PS1 基本提示符,對于root使用者是#,對于普通使用者是$

繼續閱讀