欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux,centos7.2,/etc/profile文件详解

程序员文章站 2022-06-03 22:46:56
...

/etc/profile
Linux是一个多用户的操作系统,每个用户登录系统后,都会有一个运行环境。打个比喻,一群人圣诞节这一天要去拍照,摄影师给每个人都发了一个红帽子,绿衣服,这是标配。当然你觉得红帽子和绿衣服太单调的话,也可以选择给自己加个星星,加个长筒袜之类的。那么摄影师做的统一分配就是/etc/profile这个文件所起到的作用,修改这个文件里面的内容是对所有用户起作用的。

[[email protected] ~]# cat /etc/profile

pathmunge函数的作用是将一个路径添加到PATH变量中,如果PATH变量中已有此路径则不作操作

pathmunge () {
    case ": ${PATH}:" in
        *:"$1":*)
            ;;
        *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}

设置用户的EUID, 标识实际的登录用户ID, 对于root用户, id默认为0

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用户,则将/usr/sbin /usr/local/sbin添加到PATH变量中

 if [ "$EUID" = "0" ]; then
        pathmunge /usr/sbin
        pathmunge /usr/local/sbin
    else
        pathmunge /usr/local/sbin after
        pathmunge /usr/sbin after
    fi

初始化HOSTNAME

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

当输入history命令时,最多显示多少命令

HISTSIZE=1000

if [ "$HISTCONTROL" = "ignorespace" ] ; then
   export HISTCONTROL=ignoreboth #在不想被记住的命令前面输入一个空格,该命令就不会出现在历史记录中
else
    export HISTCONTROL=ignoredups #剔除历史记录的命令中连续的重复条目
fi

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

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

将上边初始加粗样式化的几个变量设为环境变量

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002普通用户umask
else
    umask 022 root用户umask
fi

对/etc/profile.d/下.sh结尾的文件进行循环

 for i in /etc/profile.d/*.sh ; do
        if [ -r "$i" ]; then  如果该文件可读
            if [ "${-#*i}" != "$-" ]; then  如果$-变量中包含i
                . "$i"  使用当前SHELL直接执行该文件
            else
                . "$i" >/dev/null   否则将执行结果抛弃
            fi
        fi
    done
    
unset i  最后删除此脚本中用到的变量和函数
unset -f pathmunge
export LANG=C  和语言相关的环境变量

PATH: 决定了shell将到哪些目录中寻找命令或程序

export PATH=/home/buildmgr/bin5.6/mercurial-scripts/bin:/ap/local/devtools/bin:$PATH 
export HGHOME=/home/buildmgr/bin5.6
export [email protected],asblx18,fnlx14
export GHS_LMWHICH=ghs
fi
相关标签: profile