Linux环境变量

发布于 2021-03-24  39 次阅读


/etc/profile配置全局环境变量

/etc/profile配置的环境变量,每个用户无论用什么shell都会加载,在这里配置环境变量的适用性最强

系统的PATH变量下/bin、/sbin等都在这个文件下配置

~/.bash_profile配置用户环境变量

~/下.bash_profile 、.bashrc 、.zshrc等文件都是特定用户与特定shell的环境变量配置,需要用户和shell都匹配才能生效,属于用户自定义环境变量

export命令配置shell临时环境变量

export命令用来配置shell的临时环境变量,只在当前登录下生效,退出登录后就消失,语法为

export '变量名=变量值'

此方式适合临时的使用,不适合长期使用的变量设置

login shell与nologin shell

login shell为正常登录,需要用户名密码登录时所用的shell,如使用ssh登录

nologin shell为在shell中再次打开一个shell,不需要用户密码登录的shell,如使用su username命令登录

nologin shell需要有一个已经登录的shell为前提,而login shell不需要,只用打开了login shell才能打开nologin shell

主要区别是环境变量加载不同

  1. login shell加载环境变量(如bash):

    login shell环境变量加载过程如图

    实线为主动加载过程,虚线为被调用加载

    /etc/profile.d/* 为登录时执行的可执行文件

  2. nologin shell加载环境变量(如bash):

    noglogin shell会加载~/.bash_profile配置文件,参考上图执行被动加载。

/etc/bashrc与~/.bashrc

/etc/bashrc与~/.bashrc都为使用bash时的环境变量配置文件,/etc/bashrc为所有用户在使用bash时使用的配置文件,而~/.bashrc为特定用户使用bash时的配置文件

类似的/etc/profile和~/.profile也是所有用户与特定用户使用任意shell的配置文件