你的位置:首页 > 操作系统

[操作系统]Linux 设置环境变量


Shell会话有两种类型:login shell 会话和 non-login shell 会话。login shell 会话会提示用户输入用户名和密码,如虚拟控制台会话。而在GUI中启动的终端会话则是一个典型的 non-login shell 会话。

用户登录系统后,bash程序就会启动并读取一系列启动文件。login shell 会读取一个或多个启动文件,如下表所示:

文件说明
/etc/profile 适用于所有用户的全局配置脚本
~/.bash_profile  用户的个人启动文件。可扩展或重写全局配置脚本
~/.bash_login 若 ~/.bash_profile 缺失,则 bash 尝试读取此脚本
~/.profile 若 ~/.bash_profile 与 ~/.bash_login 均缺失,则 bash 尝试读取此文件。在基于 Debian 的 Linux 版本中(如 Ubuntu),这是默认值 

 

 

 

 

 

non-login shell 读取的启动文件如下:

文件说明
/etc/bash.bashrc  适用于所有用户的全局配置脚本
~/.bashrc 用户的个人启动文件。可扩展或程序全局配置脚本 

 

 

 

non-login shell在读取以上启动文件之外,还会继承父进程的环境,父进程通常是一个login shell。


用户可以通过修改启动文件自定义环境变量,例如在 ~/.bashrc 中配置:

export JAVA_HOME=/usr/lib/jvm/java-7-sunexport PATH=$PATH:${JAVA_HOME}/bin

 

只有在启动 shell 会话时才会读取 ~/.bashrc,因此对 ~/.bashrc 做出的修改只有在关闭 shell 终端会话并重启才会生效。也可以用 source 命令使 bash 重新读取 ~/.bashrc 文件:

source ~/.bashrc