读书人

Fedora14中的/etc/profile资料解析

发布时间: 2012-12-20 09:53:21 作者: rapoo

Fedora14中的/etc/profile文件解析

Fedora14中的/etc/profile文件解析

分析一下shell脚本之/etc/profile环境变量文件

//pathmunge()shell程序中的一个函数,PATH是linux寻找命令的默认路径,$1一般就代表默认路径,例如:在命令行执行source /etc/profile。$2如果是after,表示路径变为$PATH$1

pathmunge () {

case ${PATH} in

$1)

;;

*)

if [ $2 = after ] ; then

PATH=$PATH$1

else

PATH=$1$PATH

fi

esac

}

//先检查/usr/bin/id是否可执行,后才去检查变量EUID(有效用户标识),如果为NULL,则初始化变量EUID和UID

if [ -x /usr/bin/id ]; then

if [ -z "$EUID" ]; then

# ksh workaround

EUID=`id -u`

UID=`id -ru`

fi

USER="`id -un`"

LOGNAME=$USER

MAIL="/var/spool/mail/$USER"

fi

//判断,如果是root用户,则将/sbin、/usr/sbin /usr/local/sbin、/opt/FriendlyARM/toolschain/4.4.3/bin添加到PATH变量中。

if [ "$EUID" = "0" ]; then

pathmunge /sbin

pathmunge /usr/sbin

pathmunge /usr/local/sbin

pathmunge /opt/FriendlyARM/toolschain/4.4.3/bin

else

pathmunge /usr/local/sbin after

pathmunge /usr/sbin after

pathmunge /sbin after

fi

HOSTNAME=`/bin/hostname 2>/dev/null`

//表示当输入history命令时,最多显示多少命令pwd 命令被连续执行了三次。执行 history 后你会看到三条重复的条目。要剔除这些重复的条目,你可以将 HISTCONTROL 设置为 ignoredups:使用 HISTCONTROL 强制 history 不记住特定的命令,将 HISTCONTROL 设置为 ignorespace,并在不想被记住的命令前面输入一个空格。

HISTSIZE=1000

if [ "$HISTCONTROL" = "ignorespace" ] ; then

export HISTCONTROL=ignoreboth

else

export HISTCONTROL=ignoredups

fi

//将上边初始化的几个变量设为环境变量

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

//PS1是基本提示符,如对于Root用户是#,普通用户是$

//PS2是附属提示符,比如>

//最后删除此脚本中用到的变量和函数

//执行/etc/profile.d/目录下所有脚本文件

for i in /etc/profile.d/*.sh ; do

if [ -r "$i" ]; then

if [ "$PS1" ]; then

. $i

else

. $i >/dev/null 2>&1

fi

fi

done

//最后删除此脚本中用到的变量和函数
unset i

unset pathmunge

读书人网 >软件开发

热点推荐