以bash为例,当linux在启动的时候,会读取 /etc/profile文件,其实这个文件就是一个shell脚本文件,所以可以在这个文件中定义一些环境变量。
注意:在这个文件中定义的变量是系统变量,即:只要操作系统启动了,这些变量就存在,和用户是否登录无关。
当每个用户登录的时候,linux会启动一个用户登录的shell,这个shell会去读取 $HOME/.profile(或$HOME/.bashrc)文件,所以在这些文件中定义的变量,就叫用户变量,是当用户登录成功之后,才会存在的变量。
注意:系统变量和用户变量都是能被登录用户直接使用的,区别仅仅是不同的用户,他们的用户变量可能不一样。
使用 set 命令不带参数,显示结果是:系统变量 + 用户变量
使用 env 命令不带参数,显示结果是:用户变量
使用 export 命令不带参数,显示结果是:被导出成为用户变量的系统变量
使用 declare命令不带参数,结果和 set 一样