为了理解这里发生了什么,您需要了解关于如何运行shell(在这种情况下是bash)的一些背景信息。
传统上,在UNIX系统上定义每个用户环境变量的地方是〜/ .profile。该文件由登录shell(即登录时启动的程序以及可以键入命令的程序)读取,前提是登录shell是Bourne兼容的shell。
Bash是Bourne兼容的外壳。当它作为登录shell被调用时,如果该文件存在,则读取〜/ .bash_profile;如果〜/ .bash_profile不存在,则会被〜/ .profile读取。作为一个经验法则,如果你在文本模式下输入你的密码(例如,在文本控制台上,或者用ssh远程输入),那么你得到的shell就是一个登录shell。
但是,如果您在图形程序中输入密码并登录到图形环境,则会绕过正常的登录shell。在这种情况下是否读取.profile取决于图形会话的设置方式;例如,它在Linux发行版,显示管理器和桌面环境之间有所不同。有时链中的某个程序显式调用登录shell;有时一个proPleagrams显式读取〜/ .profile;有时候这些都不会发生,并且〜/ .profile不会被读取。
你可以尝试设置环境变量在〜/ .bashrc或/ etc/.bashrc中
Stackoverflow用于帮助软件开发。你应该考虑在[unix.se],[ubuntu.se]或[su]上提问。 – Kenster