分类: LINUX
2011-12-15 14:56:54
系统:2.6.18-164.el5
查看/etc/profile时,看到这一个参数:
pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}
大致的作用是:判断当前系统的PATH中是否存在该命令的目录,如果不存在,则判断要将该目录放在PATH之前还是之后。
[root@localhost ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
-q, --quiet, --silent
Quiet; do not write anything to standard output. Exit immediately with zero status if any match is found, even if an error was detected. Also see the -s or --no-messages option.
(^|:)$1($|:) 这句比较费解,()和|都是扩展的正则表达式,()查找组,|用或的方式查找字符串,$1表示命令所在的目录,(^|:)和($|:)表示以:开头或者以:结尾。整个表达式的意思就是在$PATH输出的开头或以:开头,在$PATH输出的末尾或以:结尾的该目录。
linux是一个多用户的操作系统,每个登录的用户都有一个专用的运行环境。在/etc/profile文件中修改的环境变量是对所有用户起作用的,而.bashrc只针对当前用户。
常见的环境变量:
PATH:决定了shell将到哪些目录中寻找命令或程序
HOME:当前用户主目录
MAIL:当前用户的邮件存放目录
SHELL:指当前用户用的是哪种shell
HISTSIZE:保存历史记录的条数
LOGNAME:当前用户的登录名
HOSTNAME:主机名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的
LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量
PS1:基本提示符,对于root用户是#,对于普通用户是$
PS2:附属提示符,默认是”>”。