linux系统环境变量读取

发布于 2019-11-26  190 次阅读


分类:

01.按文件分类

系统级别:/etc/environment、/etc/profile、/etc/bashrc
用户级别:~/.bash_profile、~/.bashrc、~/.bash_logout

02.按生命周期

永久有效:修改配置文件后激活,则永久生效;还一种[readonly  变量名],变量不可以修改或者清除;
临时有效:使用exprot命令声明,关闭shell则失效。export 变量名=变量值],unset 变量名。

03.文件分析

/etc/environment:系统登录读取第一个文件,根据KEY=VALUE模式读取变量,如:PATH=$PATH:/xxx/bin,系统环境;
/etc/profile:系统登录时执行的第二个文件,并从/etc/profile.d/目录下搜索shell设置文件,所有用户的用户环境;
/etc/bashrc:针对所有用户的初始化变量,每打开一个shell终端即是执行一次;
~/.bash_profile:针对当前单个用户,只执行一次,建议个人用户设置在这里;
~/.bashrc:针对前单个bash shell信息用户,每打开一个终端就执行一次。

04.执行顺序

登录shell的顺序:
/etc/profile –> (~/.bash_profile | ~/.bash_login | ~/.profile(Unix)) –> ~/.bashrc –> /etc/bashrc –> ~/.bash_logout
执行顺序有着复杂的关系,系统级别的读取与用户设置的读取有着相对的矛盾,而正常情况下,需要去阅读这些文件的脚本,然后分析之后就知其所以然了。
一般地:
登录系统时(开机启动):
/etc/enviroment –> /etc/profile –>HOME/.profile−−>HOME/.env
用户shell读取(已经开机):
/etc/profile ->/etc/enviroment –>HOME/.profile−−>HOME/.env

05.常用环境变量

1.PATH:指定命令的搜索路径;
2.HOME:指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录);
3.HISTSIZE:指保存历史命令记录的条数;
4.LOGNAME:指当前用户的登录名;
5.HOSTNAME:指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的;
6.SHELL:指当前用户用的是哪种Shell;
7.LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量;
8.MAIL:指当前用户的邮件存放目录;
9.PS1:命令基本提示符,对于root用户是#,对于普通用户是$;
10.PS2:附属提示符,默认是“>”。

06.例子

$ tail -3 .bash_profile      –增加如下三行
# set mairoot evn
export MYSQL_HOME=/usr/local/mysql
export PATH=/usr/local/mysql/bin:$PATH
$ source .bash_profile    -使得变量生效