/etc/profile是全局变量的配置文件,任何登录的用户都会加载配置文件里面的环境变量的。但是这里要区分的是登录式shell和非登录式shell。
登录式shell
指的用户使用shell命令行登录的,系统会自动的加载/etc/profile文件的,这里的用户指的是所有的用户
非登录式shell
指的使用ssh这一类的方式进行命令交互的,这一种登录的方式在登录的时候,并不会加载/etc/profile文件的,只会加载当前用户家目录下面的.branch文件的,所有假如你将环境变量配置在/etc/profile文件里面的话,在使用ssh方式的时候需要 source /etc/profile的
ssh linux121 " source /etc/profile && jps"
那我们怎么可以不用每次都要 source /etc/profile呢
可以把文件配置在/etc/profile.d/下面 以sh为文件后缀,为什么配置在这里就可以不用source了?
首先因为会自动的加载.bashrc文件,这个文件里面有这样一句话,判断是否有/etc/bashrc文件,这个文件是系统自带的,除非你把它删除了。
然后我们去看看 /etc/prfofile内容,最后会有一个加载/etc/profile.d/*.sh文件的动作,所以,非shell登录的用户将环境变量配置在这里,是不需要source的
网友评论