Chinaunix首页 | 论坛 | 博客
  • 博客访问: 442816
  • 博文数量: 95
  • 博客积分: 7012
  • 博客等级: 少将
  • 技术积分: 1127
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-13 22:49
文章存档

2010年(5)

2009年(43)

2008年(47)

我的朋友

分类: LINUX

2009-04-02 21:09:42

 

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

常见的环境变量 
           PATH:决定了shell将到哪些目录中寻找命令或程序
           HOME:当前用户主目录
           MAIL:是指当前用户的邮件存放目录。
           SHELL:是指当前用户用的是哪种Shell。
           HISTSIZE:是指保存历史命令记录的条数
           LOGNAME:是指当前用户的登录名。 
            HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
           LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。 
           PS1:是基本提示符,对于root用户是#,对于普通用户是$。
           PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”。
# PS1=" Hello,My NewPrompt :) "

使用修改.bashrc文件进行环境变量的编辑,只对当前用户有用。
使用修改 /etc/profile 文件进行环境变量的编辑,是对所有用户有用。大家一定要注意区别。 
profile文件在系统启动时将被运行。大家可以在里面加入其他命令,但是一定要加正确,不然的话系统会启动不起来的。
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

阅读(1671) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~