linux系统环境变量学习笔记

Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

环境变量一般在用户的根目录下的.profile文件中进行定义,以下是一个.profile文件的示例:

export TERM=vt100
set -o vi
#export LANG=zh_CN.hp15CN
export LANG=C
export LC_ALL=C
export PS1=`hostname`:`whoami`:'$PWD>'
export PATH=/usr/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:$ORACLE_HOME/bin:/opt/bin:/usr/ccs/bin:/usr/contrib/bin:.
export ORACLE_OWNER=oracle
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2

export LIBPATH=/usr/local/openwin/lib:/usr/lib:/apt/lib:$TUXDIR/lib:$TUXDIR/include/usr/local/openwin/lib

export HOME=/darkmi
export WORKDIR=$HOME/applications/mydomain/DefaultWebApp/cgi/cgi-bin
export PATH=$PATH:$HOME:$WORKDIR
export TEMPDIR=$WORKDIR/log
export TERM=vt100
export CC="cc"
export ORACLE_SID=testdb

alias ls='ls -aFx'
alias l='ls -aFl'
alias rm='rm -i'
alias d="ls -aFl|grep '^d'"

export DOMAIN=/darkmi/domains/mydomain
export WEBAPP=/darkmi/applications/mydomain/DefaultWebApp

alias tonpage='cd /darkmi/applications/mydomain/DefaultWebApp/npage'
alias t10='tail -f /darkmi/domains/mydomain/console10000.log'

其中以export开头的部分的部分都是环境变量的声明。

下表罗列了一些Linux系统使用的变量并说明了它们的用处。在表格后面将列举一些变量例值。

变量 说明
PATH 这个变量包含了一系列由冒号分隔开的目录,系统就从这些目录里寻找可执行文件。如果你输入的可执行文件(例如ls、rc-update或者emerge)不在这些目录中,系统就无法执行它(除非你输入这个命令的完整路径,如/bin/ls)。
HISTSIZE 保存历史命令记录的条数。
LDPATH 这个变量包含了一系列用冒号隔开的目录,动态链接器将在这些目录里查找库文件。
HOSTNAME 是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
SHELL 是指当前用户用的是哪种Shell。
PS1 是基本提示符,对于root用户是#,对于普通用户是$。
PS2 是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符。

说明:
这些环境变量不一定在所有的linux/unix系统中都是有效的,因为不同的系统、不同的shell都会一点区别于其它系统或shell的环境变量定义方式。如果要查看单个的环境变量使用[ehco $evn_name],比如:[echo $SHELL]会输出当前使用的何种shell。

通过shell命令操作环境变量

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

参考链接:
理解 Linux 配置文件

此条目发表在lnmp分类目录,贴了, 标签。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据