linux 环境变量
*******************************
linux环境创建过程:用户进入系统后,会先读取全局配置文件,再读取用户主目录下的配置文件
shell会话类型:login shell、non-login shell
login shell文件加载流程:先加载/etc/profile(全局配置文件)、然后进入用户主目录,如果有~/.bash_profile,则加载该文件;如果没有~/.bash_profile文件,则加载~/.bash_login;如果没有~/.bash_login文件,则加载~/.profile文件
non-login shell文件加载流程:先加载/etc/bash.basgrc(全局配置脚本),然后再加载用户住目录下的配置文件~/.bashrc,通常non-login shell会继承父login shell的会话环境
示例:
su:以这种方式切换用户,non-login shell
su -:用这种方式切换用户,login shell
不同的会话方式加载的配置文件不同,输出的环境变量也不一样
*******************************
shell变量与环境变量
shell变量:用户在会话环境中设置的临时变量
环境变量:用户在会话环境或者配置文件中设置、并通过命令export输出为环境变量
相关命令:
set:显示shell变量、环境变量
unset:删除shell变量、环境变量,命令格式:unset name
env:显示环境变量,命令格式:env、env | grep param_name
printenv:显示环境变量,
命令格式:printenv、printenv param_name、printenv | grep param_name
export:设置、删除环境变量
设置环境变量:export name=value
删除环境变量:export -n name
注意:在命令行中设置的环境变量只在当前会话有效,在其他会话无效,可在配置文件/etc/profile中设置,使环境变量持久生效
示例