为所有登录场景设置环境变量

lon*_*nix 4 linux bash login ubuntu environment-variables

我在 linux (ubuntu) 中使用 Microsoft 的 dotnet,它具有拨号家庭遥测功能。我想禁用它,说明说

.NET Core 工具收集使用数据以帮助我们改善您的体验。数据是匿名的,不包括命令行参数。数据由 Microsoft 收集并与社区共享。您可以通过使用您喜欢的 shell 将 DOTNET_CLI_TELEMETRY_OPTOUT 环境变量设置为“1”或“true”来选择退出遥测。

我读过.profile.bashrc.bash_profile/etc/environment,等,在被读取后,他们的差异,如果在所有。

所以我不知道该放在DOTNET_CLI_TELEMETRY_OPTOUT=1哪里?我希望它始终被加载,无论我是否在没有桌面的情况下登录、使用桌面登录、远程 ssh 登录、启动终端、从父终端启动终端等。

我应该把它放在哪个文件(或多个文件)中?我将如何为所有用户执行此操作?

Nas*_*ley 5

如果您使用Ubuntu其中一个标签,您将拥有一个名为

/etc/profile.d
Run Code Online (Sandbox Code Playgroud)

As root,在里面创建一个文件。让我们称之为

dotnet_optout.sh
Run Code Online (Sandbox Code Playgroud)

用文本编辑器打开它并输入以下内容:

#!/bin/sh

DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_CLI_TELEMETRY_OPTOUT
Run Code Online (Sandbox Code Playgroud)

Uodate:您不必使文件可执行。这只是我早期 Linux 时代的一种习惯力量。不过,如果你这样做,它不会伤害任何东西。

之后,您可以注销并重新登录或:

bash
Run Code Online (Sandbox Code Playgroud)

这将启动一个新的 shell 会话 /etc/profile.d/dotnet_optout.sh

要确认完成后,请输入:

echo $DOTNET_CLI_TELEMETRY_OPTOUT
Run Code Online (Sandbox Code Playgroud)

你会得到一个输出1

简而言之,您放置在该目录中的任何人都可以执行的脚本bash(或sh类似来源的shell /etc/profile)将影响每个人的环境。

如果您有使用其他 shell 的用户,配置将类似,但您需要更新不同的配置文件。