profile添加环境变量,linux中的profile
在Ubuntu中,有以下文件来设置环境变量
/etc/profile:登录时操作系统用来定制用户环境的第一个文件。该文件为系统的每个用户设置环境信息,并在用户首次登录时执行。
/etc/environment:操作系统登录时使用的第二个文件。在读取您自己的配置文件之前,系统设置环境文件的环境变量。
~/.profile:登录时使用的第三个文件是。profile文件,每个用户都可以使用它来输入专用于自己的shell信息。当用户登录时,文件只执行一次!默认情况下,他设置一些环境变量并执行用户的。bashrc文件。
/etc/bashrc:为每个运行bash shell的用户执行这个文件。当bash shell打开时,这个文件被读取。
~/.bashrc:这个文件包含特定于您的bash shell的bash信息,在登录和每次打开新的shell时都会读取这些信息。
通常,有三种方法可以设置环境变量:
一、临时设置
导出路径=/home/Yan/share/usr/local/arm/3 . 4 . 1/bin:$ PATH
二、当前用户的全局设置
打开~/。巴沙尔又加了一句:
导出路径=/home/Yan/share/usr/local/arm/3 . 4 . 1/bin:$ PATH
实施
来源。没有则创建
三。所有用户的全局设置
$ vim /etc/profile
添加:
导出路径=/home/Yan/share/usr/local/arm/3 . 4 . 1/bin:$ PATH
实施
源配置文件
测试echo $PATH
######################################################################################
登录后加载profile和bashrc的过程如下:
1)/etc/profile-/etc/profile . d/*。嘘
2)$HOME/。bash_profile - $HOME/。bashrc - /etc/bashrc
描述:
Bash首先执行/etc/profile脚本,/etc/profile脚本执行/etc/profile.d/*。依次嘘。
然后bash将执行。用户主目录中的bash_profile脚本,以及。bash_profile脚本将执行。用户主目录中的bashrc脚本。
的。bashrc脚本执行/etc/bashrc脚本。
至此,所有环境变量和初始化设置都已加载完毕。
Bash然后调用terminfo和inputrc来完成终端属性和键盘映射的设置。
PATH变量有专门的解释:
如果是超级用户登录,在/etc/profile执行之前,PATH已经设置了以下路径:
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
如果是普通用户,PATH会在执行/etc/profile之前设置以下路径:
/usr/local/bin:/bin:/usr/bin
这里注意:当用户切换加载一个变量,比如su-,如果用户自己切换,比如root,然后用su-root切换,加载的路径和上面不一样。
准确地说,并不总是如此。因此,在/etc/profile脚本中,进行了以下配置:
if[` id-u `=0];然后
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
船方不负担装货费用
在超级用户登录的情况下,在/etc/profile.d/krb5.sh脚本中,在路径变量search path的前面添加/usr/Kerberos/sbin:/usr/Kerberos/bin。
如果是普通用户登录,在/etc/profile.d/krb5.sh脚本中,在PATH变量的搜索路径前面添加/usr/kerberos/bin。
在/etc/profile脚本中,/usr/X11R6/bin目录将被添加到PATH变量的末尾。
在$HOME/。bash_profile中,$HOME/bin目录将被添加到PATH变量的末尾
以root为例,最终路径如下所示(没有其他定制)
/usr/Kerberos/sbin:/usr/Kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/x11r 6/bin:/root/bin
以爱丽丝用户(普通用户)为例。
/usr/Kerberos/bin:/usr/bin:/bin:/usr/x11r 6/bin:/home/Alice/bin
以下是剧本分析:
###############################################
# strace-o su-e trace=open su-Alice
# grep ^open/etc/su grep-v null grep =3 nl
###############################################
打开的文件如下:
1 open(/etc/ld.so.cache ,O_RDONLY)=3
2 open(/lib/libcrypt.so.1 ,O_RDONLY)=3
3 open(/lib/tls/libc.so.6 ,O_RDONLY)=3
4打开(/usr/lib/locale/locale-archive ,O_RDONLYO_LARGEFILE)=3
5 open(/etc/nsswitch.conf ,O_RDONLY)=3
6 open(/etc/ld.so.cache ,O_RDONLY)=3
7打开(/lib/libnss_files.so.2 ,O_RDONLY)=3
8 open(/etc/passwd ,O_RDONLY)=3
9 open(/etc/shadow ,O_RDONLY)=3
10 open(/etc/group ,O_RDONLY)=3
11 open(/etc/ld.so.cache ,O_RDONLY)=3
12 open(/lib/libtermcap.so.2 ,O_RDONLY)=3
13 open(/lib/libdl.so.2 ,O_RDONLY)=3
14 open(/lib/tls/libc.so.6 ,O_RDONLY)=3
15打开(/dev/tty ,O _ RDWR O _ non block O _ large file)=3
16 open(/etc/mtab ,O_RDONLY)=3
17 open(/proc/meminfo ,O_RDONLY)=3
18 open(/etc/nsswitch.conf ,O_RDONLY)=3
19 open(/etc/ld.so.cache ,O_RDONLY)=3
20 open(/lib/libnss_files.so.2 ,O_RDONLY)=3
21 open(/etc/passwd ,O_RDONLY)=3
22 open(/etc/profile ,O_RDONLYO_LARGEFILE)=3
23 open(/etc/profile.d/,O _ RDONLY O _ non block O _ large file O _ DIRECTORY)=3
24打开(/etc/profile。d/颜色。sh ,O_RDONLYO_LARGEFILE)=3
25开( . ),O _ RDONLY O _ non block O _ large file O _ DIRECTORY)=3
26打开(/etc/profile。d/油嘴滑舌2。sh ,O_RDONLYO_LARGEFILE)=3
27打开(/etc/profile。d/gnome-ssh-ask通行证。sh ,O_RDONLYO_LARGEFILE)=3
28 open(/etc/profile.d/krb5.sh ,O_RDONLYO_LARGEFILE)=3
29 open(/etc/profile.d/lang.sh ,O_RDONLYO_LARGEFILE)=3
30 open(/etc/sysconfig/i18n ,O_RDONLYO_LARGEFILE)=3
31打开(/usr/lib/locale/locale-archive ,O_RDONLYO_LARGEFILE)=3
32个打开(/usr/lib/gconv/gconv-modules。cache ,O_RDONLY)=3
33 open(/etc/profile.d/less.sh ,O_RDONLYO_LARGEFILE)=3
34 open(/etc/profile.d/qt.sh ,O_RDONLYO_LARGEFILE)=3
35 open(/etc/profile.d/vim.sh ,O_RDONLYO_LARGEFILE)=3
36打开(/etc/profile。d/which-2。sh ,O_RDONLYO_LARGEFILE)=3
37打开(/ceno/product/imeg/etc/profile ,O_RDONLYO_LARGEFILE)=3
38开(/home/alice/).bash_profile ,O_RDONLYO_LARGEFILE)=3
39开(/home/alice/).bashrc ,O_RDONLYO_LARGEFILE)=3
40 open(/etc/bashrc ,O_RDONLYO_LARGEFILE)=3
41开(/home/alice/).bash_history ,O_RDONLYO_LARGEFILE)=3
42开(/home/alice/).bash_history ,O_RDONLYO_LARGEFILE)=3
43 open(/etc/termcap ,O_RDONLY)=3
44 open(/etc/inputrc ,O_RDONLYO_LARGEFILE)=3
45打开(.,O _ RDONLY O _ non block O _ large file O _ DIRECTORY)=3
46开(/home/alice/).bash_logout ,O_RDONLYO_LARGEFILE)=3
47开(/home/alice/).bash_history ,O _ WRONLY O _ APPEND O _ large file)=3
48开(/home/alice/).bash_history ,O_RDONLYO_LARGEFILE)=3
########################################################
第一部分:
从1-21行基本是打开动态链接库文件和身份验证的文件。
########################################################
########################################################
第二部分:
第22行是打开/etc/profile文件,如下:
########################################################
# /etc/profile
#用于登录设置的全系统环境和启动程序
#函数和别名放在/etc/bashrc中
########################################################
#定义pathmunge函数
# echo $ path /bin/egrep-q (^:)$1($:)是过滤$PATH中的可执行目录,如果egrep到批配项,返回真但取反
#也就是不增加执行目录到$PATH中,选项问禁止所有的输出到标准输出,不管匹配行。如果选中输入行,以0 状态退出
#这里由 (竖线)或者换行符隔开的多个正则表达式会匹配与任何一个正则表达式所匹配的字符串
#一个正则表达式可以被包括在"()"(括弧)中进行分组
########################################################
pathmunge () {
如果!echo $ path /bin/egrep-q (^:)$1($:);然后
if [ $2=在];然后
PATH=$PATH:$1
其他
PATH=$1:$PATH
船方不负担装货费用
船方不负担装货费用
}
###########################################
#如果用户界面设计(用户界面设计的缩写)为0的用户,将在$PATH变量上加入/sbin/,/usr/sbin,/usr/local/sbin三个目录(^:)($:)
#因为调用pathmunge函数,没有加入在.之后参数,所以以上三个目录都加在了$PATH变量的最前面
###########################################
#路径操作
if[` id-u `=0];然后
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
船方不负担装货费用
##########################################
#调用pathmunge函数,在$PATH后面增加/usr/X11R6/bin
##########################################
pathmunge /usr/X11R6/bin之后
unset pathmunge
##########################################
#ulimit设定构成名词复数为软控制,-c为磁心存储文件文件大小,这里是不做限制
##########################################
#默认情况下没有核心文件
ulimit -S -c 0 /dev/null 21
##########################################
#id -un是打印输出当前的用户名,例如:根
#定义了日志名变量和邮件变量,会有程序用到这些变量
##########################################
用户=`id -un `
日志名=$用户
MAIL=/var/spool/mail/$USER
##########################################
#通过/bin/主机名获取主机名
#定义历史的记录数为1000
##########################################
主机名=`/bin/主机名的名称
HISTSIZE=1000
##########################################
#如果没有定义$INPUTRC并且不存在$HOME/.输入c文件
#定义变量输入c的值为/etc/inputrc
##########################################
if [ -z $INPUTRC -a!-f $HOME/.输入RC ];然后
输入资源=/etc/输入资源
船方不负担装货费用
export REMOTE_JAVA_DEBUG=on
导出路径用户日志名称邮件主机名历史大小输入
##########################################
#执行/etc/profile.d/下的所有脚本,-r是确认它们可读
##########################################
对于/etc/profile.d/*中的我.sh;做
if[-r $ I ];然后。$i
船方不负担装货费用
完成的
未设置我。/ceno/product/imeg/etc/profile
出口PS1=[e[32;1m][u @ h][e[33;1m]:[e[31;1m]w$ [e[0m]
########################################################
第三部分:
从24行到36行是执行/etc/profile.d/下的所有脚本,这个执行过程在/etc/profile中定义。
见前面/etc/profile中的脚本分析。
下面是对/etc/profile.d/下脚本做的简要说明,主要设定了环境变量(例如:路径),别名等
/etc/profile.d/colorls.sh:对/etc/目录_颜色的提取,并用设置目录显示时的颜色进行设定,最后定义了一些限位开关(限位开关)的别名
/etc/profile.d/glib2.sh:设定G_BROKEN_FILENAMES=1
/etc/profile。d/gnome-ssh-ask通行证。上海:设定SSH _ ask pass=/usr/libexec/OpenSSH/gnome-SSH-ask pass
/etc/profile.d/krb5.sh:增加/usr/kerberos/bin或/usr/kerberos/sbin到小路变量中
/etc/profile.d/lang.sh:设定语言环境,首先会加载/etc/sysconfig/i18n中的环境变量(郎,受支持SYSFONT)到壳中,
根据以上的变量再定义语言环境支持子集,最后再根据语言设定终端
/etc/profile.d/less.sh:设定less open= /usr/bin/less管道。sh % s ,LANGVAR=$LANG
/etc/profile.d/qt.sh:设定QTDIR=/usr/lib/qt-3.1
/etc/profile.d/vim.sh:设定别名vi=vim
/etc/profile.d/which-2.sh:设定alias which= alias /usr/bin/which-tty-only-read-alias-show-dot-show-tilde
########################################################
########################################################
第四部分:
第37行open(/ceno/product/imeg/etc/profile ,O_RDONLYO_LARGEFILE)=3,这里加载了用户自己的环境设定脚本。
########################################################
########################################################
第五部分:
第38行打开(/home/alice/).bash_profile ,O_RDONLYO_LARGEFILE)=3
第39行打开(/home/alice/).bashrc ,O_RDONLYO_LARGEFILE)=3
第40行open(/etc/bashrc ,O_RDONLYO_LARGEFILE)=3
第一步:bash打开/home/alice/.bash_profile文件,
第二步:bash_profile文件再判断有无/home/alice/.巴沙尔,如果有加载。没有则创建文件
第三步:最后通过。没有则创建文件加载/etc/bashrc文件
########################################################
########################################################
第六部分:
在41行打开(/home/alice/).bash_history ,O_RDONLYO_LARGEFILE)=3
在42行打开(/home/alice/).bash_history ,O_RDONLYO_LARGEFILE)=3
在43行open(/etc/termcap ,O_RDONLY)=3
在44行open(/etc/inputrc ,O_RDONLYO_LARGEFILE)=3
第一步打开bash _历史文件准备记录命令
第二步打开termcap文件
指定终端的功能数据库用于定义终端和打印机的属性及功能,包括各设备(例如,终端和打印机)的行数和列数以及要发送至该设备的文本的属性
第三步打开输入c
inputrc文件处理特定情况下的键盘映射。这个文件被Readline用作启动文件,Readline是Bash和大多数其他shell使用的与输入相关的库。
########################################################
########################################################
第七部分:
第46行打开(/home/Alice/)。bash _ logout ,o _ rdonly o _ largefile)=3
第47行打开(/home/Alice/)。bash _ history ,o _ wronly o _ append o _ large file)=3
第48行打开(/home/Alice/)。bash _ history ,o _ rdonly o _ largefile)=3
在这里,用户注销或退出。如果终端直接关闭,则。bash_logout和。bash_history文件将不被执行。
默认情况下。bash_logout脚本调用clear来清空屏幕。
########################################################