云网牛站
所在位置:首页 > Linux教程 > Ubuntu 18.04每次打开命令行都要重新source profile的解决方法

Ubuntu 18.04每次打开命令行都要重新source profile的解决方法

2018-10-25 15:40:50作者:CaptainXero稿源:LINUX站

在Ubuntu 18.04.1 LTS操作系统下配置了JAVA环境,每次重新打开命令行都要重新source profile,以下是该问题的原因分析及解决方法、注意事项。

 

产生该问题的原因分析和记录

1.bashrc是在系统启动后就会自动运行。

2.profile是在用户登录后才会运行。

3./etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量。

 

延伸:login shell与non-login shell

1.non-login shell:登录终端不需要密码,例如直接在Ubuntu当前用户中打开的终端。这种情况shell不会读取/etc/profile和/.bash_profile,而是读取/.bashrc来应用新的环境变量。

2.login shell:需要输入密码登录的shell,例如通过 su 用户名 登录的shell。此种方式登录时,shell会重新读取/etc/profile和~/.bash_profile来应用新的环境变量。

3.识别非login的shell方法还是运行#echo $0命令,得到的结果假设没有'-'前缀。即为非login的。

 

解决方法

把export语句写在~/.bashrc文件里,或者在该文件里写上source /etc/profile。可以参考在Ubuntu 18.04.1系统中搭建Java环境及创建Maven项目一文。

 

注意事项

non-login shell启动的脚本不会入/etc/profile中的命令,所以在/etc/profile中设置的某些命令不会生效,可能会导致一些问题,需要格外注意。

 

相关主题

什么是bashrc配置文件,如何对其进行编辑

精选文章
热门文章