Linux是一个多用户多任务的操作系统,每个用户登录系统后,都会有一个专用的运行环境。
https://blog.csdn.net/u010533843/article/details/54986646
一、环境变量按照生命周期来分
- 永久的:需要用户修改相关的配置文件,变量永久生效。
- 临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。
二、环境变量按照作用域来分
1.系统环境变量:对该系统中所有用户都有效
/etc/environment:
是系统在登录时读取的第一个文件,该文件设置的是整个系统的环境,只要启动系统就会读取该文件,用于为所有进程设置环境变量。
系统使用此文件时并不是执行此文件中的命令,而是根据KEY=VALUE模式的代码,对KEY赋值以VALUE,因此文件中如果要定义PATH环境变量,只需加入 PATH=$PATH:/xxx/bin
/etc/profile:
是系统登录时执行的第二个文件,为系统的每个用户设置环境信息。当用户登录时,该文件被执行一次,并从 /etc/profile.d 目录的配置文件中搜集shell 的设置。
/etc/bashrc:
针对所有用户的bash初始化文件,当 bash shell 被打开时,该文件被读取,即每次新打开一个终端 shell,该文件就会被读取。
2.用户环境变量:只对特定的用户有效
~/.profile:
只对单个用户生效,当用户登录时该文件仅执行一次。用户可使用该文件添加自己使用的 shell 变量信息。
~/.bash_profile:
是交互式、login 方式进入bash 运行
包含专用于用户的bash shell的bash信息,当用户登录时,该文件仅仅执行一次。默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
~/.bashrc:
是交互式 non-login 方式进入bash 运行
包含专用于用户的bash shell的bash信息,当用户登录时以及每次打开新的shell时,该文件被读取。(每个用户都有一个.bashrc文件,在用户目录下)
shell
shell 是用户和Linux 内核之间的接口程序,你在提示符下输入的每个命令都由shell先解释然后传给Linux内核,shell 是一个命令行解释器。
bash 是 Linux 默认的 shell ,相对应的,windows shell就是cmd。