解决在/etc/porfile下设置环境变量以后zsh没有起效的问题

问题1:

今天在添加java的环境变量的时候,我在/etc/profile添加了环境变量,因为我使用的是zsh,在source /etc/profile以后,zsh的主题和插件都没有了,java -version以后出现旗标信息,以为可以了,但是没有主题就很难受,重启shell。java -version提示没有此命令,懵~

推测问题原因:

由于在终端中source /etc/profile只是让本shell进程执行,相当于只是在本shell执行了环境变量,所以重启之后依旧失效

推测解决方法:

~/.zshrc中添加source /etc/profile

重启shell

输入java -version

完美解决!

通过百度发现:zsh其实并不使用/etc/profile文件,而是使用/etc/zsh/下面的zshenv、zprofile、zshrc、zlogin文件,并以这个顺序进行加载。

所以推测还有一种方法,在/etc/zsh/zprofile下面export相应的环境变量.

问题2:

在后面的使用中,发现切换到root用户的时候,java的环境变量又不生效了。

解决办法:

在/root/.bashrc文件尾部添加:
source /etc/profile

ok,完美解决

文章目录
  1. 1. 问题1:
  2. 2. 推测问题原因:
  3. 3. 推测解决方法:
  4. 4. 问题2:
  5. 5. 解决办法: