如何在 Linux 中永久设置新的环境变量及其值
我使用
export
来设置环境变量。但问题是它的会话特定的。如果我打开新会话,设置的值将消失。
先谢谢你了
如果您想在 shell 中设置变量(而不是超级用户的):
.bashrc
存在ls -A ~/.bashrc
export VARIABLE=value
$ echo $VARIABLE
value
请记住,这取决于您的 shell。
解决方案:为了导出并保持环境变量在 Linux 上持久存在,您应该将变量 deceleration 导出到以下文件之一:
~/.bash_profile
/ ~/. bash_login
/ ~/.profile
.
当 bash 作为交互式/非交互式登录 shell 被调用时,它首先从文件中读取并执行命令
/etc/profile
(如果存在),然后查找以下文件(按该顺序并执行相同的操作)~/.bash_profile
,~/. bash_login
,~/.profile
。
示例:将秘密令牌添加到我的用户配置文件中。
cat << End >> ~/.profile
export SECRET_TOKEN=abc123!@#
End
输出:
echo $SECRET_TOKEN
abc123!@#
通常的位置是
~/.bashrc
假设您使用的是 bash,这是大多数发行版中的默认设置。用 echo $SHELL
检查一下自己。
如果您只想在登录 shell 中设置变量(但不在脚本中),则可以使用 ~/.bash_profile
。
这适用于 Debian 11。它应该适用于其他基于 Debian 的发行版,例如 Ubuntu 等。我正在使用旧式 Nano 来编辑位于
pam_env.conf
目录中名为 /etc/security/
的文件,您可以使用您想要的任何其他内容而不是纳米。
sudo nano /etc/security/pam_env.conf
在该文件中设置环境变量的格式如下:
VARIABLE [DEFAULT=[value]] [OVERRIDE=[value]]
(例如,让我们将
DXVK_HUD
变量设置为值 full
。这相当于 export DXVK_HUD=full
您可以将变量名称及其值替换为您想要的用例。)
这就是在该文件中作为新行查看的方式:
DXVK_HUD DEFAULT=full OVERRIDE=full
通过保存进行更改(CTRL+O 组合键用于通过 nano 进行更改)。然后按回车键(Enter 键)。然后按 CTRL+X 退出 nano。
重新启动系统。然后在终端中输入
env
并查看是否可以在列表中看到您的环境变量。应该在那里。
关于何时将其放在此处有一个很好的解释: http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html 如果您没有 root 访问权限,请将其放在本地某个位置,例如 .bash_profile 或取决于您使用的 shell。通过输入命令 ps 找到您的 shell。
将其设置为
/etc/environment
。在我的 Ubuntu 安装中,这是您可以持久设置环境变量的地方。对于不同的发行版,该文件可能有所不同。以下是我的 /etc/environment
文件的内容。
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
查看上面的环境变量
PATH
是如何设置的。
导出命令注意事项
export varname
使变量 varname
可用于从当前 shell(即运行 export
命令的 shell)运行的任何子 shell。任何其他 shell,无论是与当前 shell 无关还是父 shell,都不会具有此变量。知道了这一点,假设您使用的是 bash shell,您可以在 .bashrc
文件中编写导出命令。 .bashrc
是一个每次启动 bash shell 时都会运行的文件,因此您在其中编写的任何命令都会在任何打开的 bash shell 中执行。因此,将导出命令写入 .bashrc
文件中是另一种选择。您正在使用的任何其他 shell 的过程也类似。例如。对于 Z shell,文件是 .zshrc。
declare -x [variable_name]=[variable_value] 效果很好...
示例:
声明 -x MY_VARIABLE=值
要进行检查,请转到另一个登录的终端会话并输入:
环境 | grep MY_VARIABLE ;这将确认它已被创建并且是 ;可以被其他进程访问