美文网首页
linux环境变量之登录式shell和非登录式shell

linux环境变量之登录式shell和非登录式shell

作者: 程序员的交流电 | 来源:发表于2020-08-07 12:01 被阅读0次

    /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的


    相关文章

      网友评论

          本文标题:linux环境变量之登录式shell和非登录式shell

          本文链接:https://www.haomeiwen.com/subject/dylfdktx.html