为啥环境变量写入到/etc/profile里面了,也source了,怎么就是不生效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥环境变量写入到/etc/profile里面了,也source了,怎么就是不生效相关的知识,希望对你有一定的参考价值。
source之后直接echo打印可以用,但是运行脚本的时候又不加载了
假设你的用户为A, 登录系统时也登录为A, 则此时/etc/profile 里面的环境变量直接应用到A用户,然后打开命令行, 你就可以通过 echo $变量名 (不需要花括号)查到你想要的变量名 (包括/etc/profile 和 /home/A/.bashrc 里面设置的;
之后sudo su, 登录为root用户, 这个时候/etc/profile的环境变量是不会自动加载的(因为没经历过开机那段时间的一部分黑箱操作), 那这个时候你只能echo到/home/root/.bashrc里面的变量.
然后说运行脚本, 你要确保的是当前用户和你脚本的所有者是同一个(同为A 或同为root), 否则需要chmod xxx 脚本名( xxx代表权限程度, 具体改成多少我不懂, 所以都改成放权程度最高的 777), 才能使脚本被不同的用户调用, 然后就是要关注当前用户下的.bashrc里面是否有目标变量名, 没有的话就往相应用户的.bashrc里面添加. 如果当前用户是开机登陆的用户(就是看有没有自动加载过/etc/profile),那直接就有目标变量 参考技术A 这个需要重启才能生效,如果用source,每次开bash都要source一下。
如果修改的是/home/用户名/.bash_profile,这个应该是能立即生效的,每次开bash都会自动载入一遍变量 参考技术B 设置永久环境变量
1.环境变量配置中,要先删除.bash_profile中的三行关于.bashrc的 定义,然后把环境变量配置在.bashrc中
2.选择要使用的java环境:update-alternatives –config java
3.要使得刚修改的环境变量生效:source .bashrc
4.查看环境变量:env 参考技术C echo <变量名>
就可以查看到底有没有生效,比如:
echo $path 参考技术D 想问一下,您是怎么解决的以上是关于为啥环境变量写入到/etc/profile里面了,也source了,怎么就是不生效的主要内容,如果未能解决你的问题,请参考以下文章
Linux 环境下/etc/profile和/etc/profile.d 的区别和用法呢?
ubuntu18每次启动linux都要source /etc/profile生效java环境变量
求助RHEL7/CENTOS7下,在/etc/profile里面设置环境变量不生效问题