source /etc/profile 文件的作用
linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效。

问题描述:
在/etc/profile中添加环境变量后,是使用source /etc/profile编译后只能在当前终端生效;

重新开启一个终端后,该环境变量失效。

解决方法:
重启系统:reboot,问题解决;

因为设置的环境变量,并没有真正生效,只是使用source 命令让临时运行而已。

环境变量设置方法:
1、/etc/profile:是操作系统定制用户环境使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境的变量。
3、~/.bash_profile:在登录时用到的第三个文件是.profile文 件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用 户登录时,该文件仅仅执行一次,默认情况下,设置一些环境变量,执 行用户的.bashrc文件。

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
4、~/.bashrc:该文件包含专用于你的bash shell的bash信 息,当登录时以及每次打开新的shell时,该该文件被读取。

设置永久环境变量
1.环境变量配置中,要先删除.bash_profile中的三行关于.bashrc的 定义,然后把环境变量配置在.bashrc中
2.选择要使用的java环境:update-alternatives –config java
3.要使得刚修改的环境变量生效:source .bashrc
4.查看环境变量:env
可以放到/etc/bash/bashrc,这样就是系统级的

source命令用法:
source FileName:作用:在当前bash环境下读取并执行FileName中的命令。

注:该命令通常用命令“.”来替代,如:source .bash_rc 与 . .bash_rc 是等效的。

注意:source命令与shell scripts的区别是:source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source命令。

Logo

更多推荐