linux下环境变量及文件执行顺序

.理解linux下环境变量及文件执行顺序前,要先理解下面的相关概念:

<!--[if !supportLists]-->1.<!--[endif]-->login shell:用户通过终端登录凭借用户名和密码登录控制台的动作是login shell,也就是说最终     会调用login命令的操作都可称之为login shell

<!--[if !supportLists]-->2.<!--[endif]-->non-login shell:用户在图形界面启动一个terminal,或者执行/bin/bash/usr/bin/bash都属于     non-login shell

3.对于login shell读取文件的顺序是:/etc/profile

                       ~/.bash_profile

                        ~/.bash_login

                        ~/.profile

  /etc/profile 是必须要执行的,后面3个谁存在就执行谁(然后后面的就不会再执行)

关于~ 是什么目录:表示当前登录用户的用户目录(可以通过cd ~  pwd 来得知)

4.

 4.1./etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行

      

通过查看脚本的注释介绍,表明该脚本是用于系统环境和启动程序的,用户登录设置的功能和别名则      在/ect/bashrc脚本中,所以,/etc/profile是所有用户的环境;然后脚本会在执                行/etc/profile.d/*.sh的相关脚本,用来搜集shell的设置(具体的脚本未截图)若其中有环境设定的    话,也会被全局引用

 

    4.2.我的linux上存在.bash_profile脚本(root用户)

        

可以看出,先判断是否存在.bashrc脚本,若存在的话,执行(而该脚本文件主要用来设置别名的,从注   释可以看出);然后就会来设置特殊的环境和开始程序(即是用户级别的设置)

    4.3.现在我们查看.bashrc脚本

      

脚本设置了几个命令别名;然后判断是否存在/ect/bashrc脚本,存在就执行

      4.4.我们查看/ect/bashrc脚本

      

     可以看出使用来对非登录的shell设置。

 

  总结:通过上面的脚本查看,大致总结一下,环境设置的文件执行顺序Login shell配置文件执行顺序:

 /etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc

     /etc/profile此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.

    /etc/profile.d/*.sh用来搜集shell的设置

     ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息(环境变量或程序                   等),当用户登录时,该文件仅仅执行一次!即是为用户而定制脚本文件。

  

 non-login shell配置文件执行顺序:

  ~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh

  ~/.bashrc: 该文件包含命令别名信息,也可以设置环境或程序等(登录时或者每次打开新的shell             ---non-login shell,该文件就被读取)

  /etc/bashrc该脚本在Login shellnon-login shell都会被执行,但我们通过上面脚本查看用来               对非登录的shell设置

 

二:通过ls -a 查看root用户的工作目录

  

.bash_logout:脚本不难理解,用户退出时,要被执行的脚本

.bash_history:即是对该用户的执行的脚本命令的记录(histroy命令即对该文件查看)

猜你喜欢

转载自javazqd110.iteye.com/blog/2320210