bash
printenv
哪个文件分配了 Lubuntu上列出的预设环境变量env
(如果不同,则为 LXQt 和 LXDE)?其他文件是否使用了相同的文件:
- 基于 Debian 的发行版
- 非 Debian 发行版(Red Hat 系列、Arch)
短暂性失眠!
答案1
其中大部分都在/etc
目录中的相关文件中定义。运行grep -r ^[[:upper:]] /etc/*
必须列出其中大部分。根据 Ubuntu,有几个特别有趣的文件文档是:
/etc/environment
:文档指出
“...此文件专门用于系统范围的环境变量设置。它不是脚本文件,而是由每行一个赋值表达式组成...”
/etc/profile.d
以 . 结尾的目录中的文件.sh
说明如下:
“...另一种方法是在 /etc/profile.d 目录中为此目的创建一个文件...每当进入 bash 登录 shell 时(例如从控制台或通过 ssh 登录时),/etc/profile.d 目录中带有 .sh 扩展名的文件就会被执行,并且当桌面会话加载时,DisplayManager 也会执行这些文件...”
答案2
在 LXQt 中,设置您将从菜单启动的程序的环境变量的最佳位置是会话设置;它们位于 INI 样式文件中的部分~/.config/lxqt/session.conf
中[Environment]
。您还可以在 GUI 中的首选项 -> LXQt 设置 -> 会话设置下配置它们,您将在环境页面中找到列表。双击列表中的行以编辑文本。
一般来说,进程会从启动它们的进程继承环境,它们可以对自己的环境进行额外的更改,然后将这些更改传递给它们启动的进程。这就是为什么你在哪里进行更改(实际上是你在哪些进程中更改环境)可能会有不同的答案,具体取决于你如何启动要赋予你试图设置的环境变量的程序。