系統的環境變量在配置web server以及編寫程序都常常被用到, 因此瞭解必要的關於系統變量的知識是非常有必要的,下面關於linux系統變量的查看以及方法。
在Windows下,查看環境變量的命令是:set,這個命令會輸出系統當前的環境變量。
Linux下Linux查看環境變量準確的說是REDHAT下應該如何查看呢,命令是:
export
如果你想查看某一個名稱的環境變量,命令是:echo $環境變量名,比如:
echo $ORACLE_HOME
Windows對應的命令是:
set 環境變量名。
外補一篇:
1. Linux查看環境變量顯示環境變量HOME
$ echo $HOME/home/redbooks
2. Linux查看環境變量設置一個新的環境變量hello
$ export HELLO=”Hello!”
$ echo $HELLO
Hello!
3. Linux查看環境變量使用env命令顯示所有的環境變量
$ env
HOSTNAME=redbooks.safe.org
PVM_RSH=/usr/bin/rsh
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
…
4. Linux查看環境變量使用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. Linux查看環境變量使用unset命令來清除環境變量
set可以設置某個環境變量的值。清除環境變量的值用unset命令。如果未指定值,則該變量值將被設爲NULL。示例如下:
$ export TEST=”Test…” #增加一個環境變量TEST
$ env|grep TEST #此命令有輸入,證明環境變量TEST已經存在了
TEST=Test…
$ unset $TEST #刪除環境變量TEST
$ env|grep TEST #此命令沒有輸出,證明環境變量TEST已經存在了
示例如下:
$ 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
6. Linux查看環境變量使用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文件