linux profile文件详解

# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
//pathmunge在PATH中查找是否含有$1字符串的行,没有的话插入该字符串到PATH中
//输入参数:$1与$2
//由$2决定把$1插入到PATH字符串中的行首或者行尾。
pathmunge () {
//在PATH字符串中查找是否含有$1字符串,如何含有返回0。
//其中/bin/egrep命令是查询的意思,其参数-q表示不必在
//屏幕上打印结果,只放回结果(找到返回0)."(^|:)$1($|:)"中
//^表示行首,$表示行尾。|表示或。这里的表达式的意思是
// ":$1:",行首"$1:",行尾":$1"
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
//当$2输入的是after的时候
if [ "$2" = "after" ] ; then
//把$1加入到行尾
PATH=$PATH:$1
else
//把$1加入到行首
PATH=$1:$PATH
fi
fi
}

# ksh workaround
//在这里[]相当于c语言中的if()。-a表示逻辑与。-z "$EUID"表示$EUID字符串长度
//是否为0,为0的时候为真。-x /usr/bin/id 表示id文件是否具有可执行权限。有
//该权限返回真。
if [ -z "$EUID" -a -x /usr/bin/id ]; then
//执行id给两个变量赋值
//付给用户id
EUID=`id -u`
//付给实际id
UID=`id -ru`
fi

# Path manipulation
//EUID是否为0
if [ "$EUID" = "0" ]; then
//执行pathmunge函数,函数参数为/sbin.相当于把/sbin付给了$1.$2为空
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi

# No core files by default
//无任何限制
ulimit -S -c 0 > /dev/null 2>&1

//id是否有可执行权限
if [ -x /usr/bin/id ]; then
//设置用户的名称,MAIL变量
USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
//设置HOSTNAME与HISTSIZE环境变量
HOSTNAME=`/bin/hostname`
HISTSIZE=1000

//-a表示逻辑与,-z "$INPUTRC"表示该变量的字符串长度是否为0.
//! -f "$HOME/.inputrc"表示.inputrc是否为一般文件。前面有个!表示逻辑非。
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

//循环遍历/tc/profile.d文件中的脚本,如果脚本有可读权限,就执行。
for i in /etc/profile.d/*.sh ; do
//是否有可读权限
if [ -r "$i" ]; then
//执行各个子脚本
. $i
fi
done

//取消变量i与函数pathmunge
unset i
unset pathmunge

# This is added by hisilicon cross tools installer
# Do not edit it, please!
export PATH="/opt/hisilicon/toolchains/arm-uclibc-linux-soft/bin/:$PATH"


# 2011年 07月 21日 星期四 09:20:18 CST
# Hisilicon Linux, Cross-Toolchain PATH
export PATH="/opt/hisi-linux/x86-arm/arm-hisiv100-linux/target/bin:$PATH"
#


# 2012年 11月 08日 星期四 10:38:16 CST
# Hisilicon Linux, Cross-Toolchain PATH
export PATH="/opt/hisi-linux/x86-arm/arm-hisiv200-linu

x/target/bin:$PATH"
#


相关文档
最新文档