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

[root@FNSHB109 ~]# 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 GHS_LMHOST=@fnlicsv2,asblx18,fnlx14
export GHS_LMWHICH=ghs
fi
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐