linux 系統管理篇--環境變量 1. 顯示環境變量HOME $ echo $HOME /home/terry 2. 設置一個新的環境變量WELCOME $ export WELCOME="Hello!" $ echo $WELCOME Hello! 3. 使用env命令顯示所有的環境變量 $ env HOSTNAME=terry.mykms.org PVM_RSH=/usr/bin/rsh SHELL=/bin/bash TERM=xterm HISTSIZE=1000 4. 使用set命令顯示所有本地定義的Shell變量 $ set BASH=/bin/bash BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu") BASH_VERSION='2.05b.0(1)-release' COLORS=/etc/DIR_COLORS.xterm COLUMNS=80 DIRSTACK=() DISPLAY=:0.0 5. 使用unset命令來清除環境變量 set可以設置某個環境變量的值。清除環境變量的值用unset命令。如果未指定值,則該變量值將被設為NULL。示例如下: $ export TEST="Test..." #增加一個環境變量TEST $ env|grep TEST #此命令有輸入,證明環境變量TEST已經存在了 TEST=Test... $ unset $TEST #刪除環境變量TEST $ env|grep TEST #此命令沒有輸出,證明環境變量TEST已經存在了 6. 使用readonly命令設置只讀變量 如果使用了readonly命令的話,變量就不可以被修改或清除了。示例如下: $ export TEST="Test..." #增加一個環境變量TEST $ readonly TEST #將環境變量TEST設為只讀 $ unset TEST #會發現此變量不能被刪除 -bash: unset: TEST: cannot unset: readonly variable $ TEST="New" #會發現此也變量不能被修改 -bash: TEST: readonly variable 7. 用C程序來訪問和設置環境變量 對于C程序的用戶來說,可以使用下列三個函數來設置或訪問一個環境變量。 ◆ getenv()訪問一個環境變量。輸入參數是需要訪問的變量名字,返回值是一個字符串。如果所訪問的環境變量不存在,則會返回NULL。 ◆ setenv()在程序里面設置某個環境變量的函數。 ◆ unsetenv()清除某個特定的環境變量的函數。 另外,還有一個指針變量environ,它指向的是包含所有的環境變量的一個列表。下面的程序可以打印出當前運行環境里面的所有環境變量: #i nclude extern char**environ; int main () { char**var; for (var =environ;*var !=NULL;++var) printf ("%s \n ",*var); return 0; } Linux下的環境變量設置 # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc pathmunge () { if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi fi } # Path manipulation if [ `id -u` = 0 ]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin fi pathmunge /usr/X11R6/bin after unset pathmunge # No core files by default ulimit -S -c 0 > /dev/null 2>&1 USER="`id -un`" LOGNAME=$USER MAIL="/var/spool/mail/$USER" HOSTNAME=`/bin/hostname` HISTSIZE=1000 if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then INPUTRC=/etc/inputrc fi export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then . $i fi done unset i JAVA_HOME="/opt/j2sdk1.4.2_01" MYSQL_HOME="/var/mysql" CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar PATH=$PATH:$JAVA_HOME/bin:$MYSQL_HOME/bin:/opt/apache-ant-1.5.4/bin export JAVA_HOME CLASSPATH PATH CVSROOT=/cvsroot; export CVSROOT LINUX系統環境變量 /etc/profile對整個系統有效. 確定你使用的是bash 修改~/.bash_profile 把你要設置的環境變量寫進去 例如 JAVA_HOME=/usr/local/jdk export JAVA_HOME |
|