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使用者是#,對于普通使用者是$