1、linux环境变量:
a、查看当前shell的pid:echo $$
b、查看全局环境变量和局部环境变量:set
c、查看全局环境变量:printenv --注:没有单独查看局部变量的命令
d、创建局部环境变量可以直接在这个shell中用等号赋值如:test=testing //建议系统变量用大写字母,个人环境变量用小写字母,局部变量只在当前设置他的shell中起作用。
e、创建全局变量:创建全局变量可以先创建局部变量,然后将局部变量导出到全局变量中。但是如果导出到子bash中的全局变量,父bash中还是看不到的。例:
[root@sq ~]# echo $$
1942
[root@sq ~]# bash
[root@sq ~]# test=test1
[root@sq ~]# export test //注意这里没有$符号
[root@sq ~]# echo $test
test1
[root@sq ~]# exit
[root@sq ~]# echo $test
[root@sq ~]#
f、取消设置的全局变量和局部变量可以用:unset 变量名,但是全局变量如果只在子shell中删了变量,父shell中还是有变量。必须在父shell中删除该变量。
2、启动文件
bash检查的启动文件取决于启动bash shell的方式:1、登录时的默认登录shell 2、非登录的交互式shell 3、作为运行脚本的非交互shell
a、登录shell:登录系统时bash会处理/etc/profile;$HOME/.bash_profile;$HOME/.bash_login;$HOME/.profile; ---/etc/profile是全局配置,后面三个是用户专属配置一般发行版取其中之一。
profile文件还会逐一访问位于/etc/profile.d目录下的每个文件。
b、非登录交互式shell:如执行bash命令后进入的子shell
他不会访问/etc/profile文件,而会去访问家目录下的.bashrc文件,这文件作用是:会查看/etc目录下的共用bashrc文件,并且可以为用户定制自己的命令别名和私有脚本函数。/etc/bashrc会被系统上每个启动交互式shell会话的用户执行。一般交互式shell中不用export。/etc/bashrc文件也会执行位于/etc/profile.d目录下的那些应用专属启动文件。
c、非交互式shell(运行脚本时用的shell):bash shell提供了BASH_ENV环境变量,当运行一个脚本时他会检查这个环境变量来查看要执行的启动文件。如果有指定就会执行文件里的命令。有的默认没配置的。
总结:
登录式shell如何读取配置文件:
/etc/profile -->/etc/profile.d/*.sh -->~/.bash_profile -->~/.bashrc -->/etc/bashrc
非登录式shell如何读取配置文件:
~/.bashrc -->/etc/bashrc -->/etc/profile.d/*.sh
3、环境变量还可以在/etc/profile.d/ 目录下创建一个 path.sh 脚本,脚本内容如:
export PATH="/bin"
linux环境变量
最新推荐文章于 2024-07-26 12:20:23 发布