Linux环境变量配置方法

1. 配置文件的种类

(1)/etc/profile

此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.(login shell读
Linux环境变量配置方法

(2)/etc/bashrc

为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
Linux环境变量配置方法

(3)~/.bash_profile

每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.(login shell读)
Linux环境变量配置方法

(4)~/.bashrc

该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.(non-login shell会读)
Linux环境变量配置方法

(5)~/.bash_logout

当每次退出系统(退出bash shell)时,执行该文件.
Linux环境变量配置方法
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
一般来说,修改.bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一个特定的用户,如果需要给某个用户权限使用这些环境变量,只需要修改其个人用户主目录下的.bashrc文件就可以了。

2. Linux bash中环境配置及配置文件读取顺序

(1)login 与 non-login shell的概念

login shell: 取得 bash 是需要完整的登入流程,就称为 login shell。例如,你要有 tty1~tty6 登入,需要输入用户的账号与密码,此时取得的 bash 就称为 login shell。
一般来说,login shell会读取两个配置文件。
1) /etc/profile:这是系统整体的设定,最好不要修改这个文件。
2) ~/.bash_profile 或 ~/.bash_login 或 ~/.profile:属于使用者个人设定。

(2)non-login shell:取得 bash 接口的方法不需要重复登入的操作。

例如,①你以 X widow 登入 Linux后,在以 X 图形化接口启动终端机,此时那个终端并没有需要再次输入账号和密码,那个 bash 的环境就称 non-login shell 。
② 你原本的 bash 环境下再次下达 bash 这个指令,同样的也没有输入账号和密码,那第二个 bash(子程序)也是 non-login shell。(子shell也是non-login)
Linux环境变量配置方法
摘自:鸟哥私房菜,其中实线方向是主线流程,虚线是被调用的配置文件。

(3)不关机使得Bash生效

采用“source”或者“.”命令,读取环境配置文件。
由于 /etc/profile 与 ~/.bash_profile 都是在取得 login shell 的时候才会读取的配置文件,所以,如果将自己的偏好设定写入上述文件后,通常都是得注销在登入后,改设定才会生效。可以采用上述两个命令不关机使得shell环境变量生效。