是否可以在任何用户 shell 和 X 会话之前设置用户环境?
我的意思是,X 会话根本不会读取。用户 shell 也根本不会读取/etc/profile
。我想设置这样的环境变量,以便 Eclipse IDE 和 Maven CLI 都能看到它们。我知道我可以制作一个 eclipse.sh 包装器,这样一切都可以从 shell 执行,但我想知道这个问题是否可能。.profile
/etc/X11/*
答案1
影响整个系统(而不仅仅是特定用户)的环境变量设置不应放在加载系统或桌面会话时执行的许多系统级脚本中,而应放在
/etc/environment
- 此文件专门用于系统范围的环境变量设置。它不是脚本文件,而是由每行一个赋值表达式组成。具体来说,此文件存储系统范围的区域设置和路径设置。
不建议:
/etc/profile
- 每当进入 bash 登录 shell 时(例如从控制台或通过 ssh 登录时),以及在桌面会话加载时由 DisplayManager 执行此文件。当您向资深 UNIX 系统管理员询问环境变量时,您可能会提到这个文件。然而,在 Ubuntu 中,此文件的作用只是调用 /etc/bash.bashrc 文件。
/etc/bash.bashrc
- 这是 ~/.bashrc 文件的系统范围版本。Ubuntu 默认配置为每当用户进入 shell 或桌面环境时执行此文件。