在 Ubuntu WSL 中,如何存储永久环境变量?

问题描述 投票:0回答:6

我已经尝试过,但每次重新启动系统时,我的变量都消失了。

如何在 Ubuntu WSL2 上永久存储环境变量?

ubuntu environment-variables windows-subsystem-for-linux wsl-2
6个回答
14
投票

所以这对我有用:

如果在 Ubuntu WSL2 上使用 Bash,则

~/.bash_profile
是永久环境变量的正确文件,但是请确保在变量之前添加
export
关键字,如下所示:

export THISVAR=thisIsAVar
export ANOTHERVAR=anotherVar

要添加变量,请使用命令

sudo nano ~/.bash_profile
(如果您喜欢 Nano 编辑器)或
sudo vim ~/.bash_profile
(如果您喜欢 Vim)。将变量输入到
.bash_profile
后,保存文件,然后输入
source ~/.bash_profile
以使变量在终端中可用。


5
投票

如果您希望某个变量在关闭 shell 会话后仍然存在,则需要将其永久设置为环境变量。您可以选择为当前用户或所有用户设置。

  1. 要为单个用户设置永久环境变量,请编辑 .bashrc 文件:

    sudo nano ~/.bashrc

  2. 使用以下语法为您要添加的每个变量写一行:

    导出[变量名称]=[变量值]

  3. 现在重新启动您的终端

这是它的完整链接: https://phoenixnap.com/kb/linux-set-environment-variable


2
投票

有几种方法可以解决这个问题。

  1. 首先,通常的方法(正如您所发现的)是在 shell 启动脚本中设置环境变量。对于 bash,这将是

    ~/.bash_profile
    ,对于 zsh 来说,这将是
    ~/.zprofile
    ,对于 Fish,这将是
    ~/.config/fish/config.fish

  2. 但是我也建议您考虑尝试 fish shell,因为它有一个很棒的功能,可以设置“通用变量”,这些变量会自动传播到 shell 的所有其他实例,无论是存在的还是在未来。

    例如

    set -Ux myvariable 42
    将创建一个通用(并导出)变量,即使在您关闭并重新打开 shell 后该变量也将持续存在,而无需创建配置文件。

    Fish 还有许多其他出色的功能,使其成为我的首选 shell(在使用 zsh 15 年之后)。

也就是说,我不确定您使用 WSL 的目标是什么,但如果是“学习 Linux”,那么您可能最好从 bash 或 zsh 开始,因为它们是更“传统”的 shell,当然是 bash ,成为事实上的标准。


1
投票

~/.profile
中设置环境对我有用。

如果

~/.bash_profile
~/.bash_login
,则 bash(1) 不会读取此文件 存在。

适用于 WSL2 Ubuntu。


1
投票

.bashrc
文件添加别名

sudo nano ~/.bashrc

将此行添加到文件末尾(在我的例子中,我想运行 laravel)

alias laravel='~/.config/composer/vendor/laravel/installer/bin/laravel'

然后重新启动 wsl shell

exit

0
投票

我在 wsl 上使用

zsh
,因此更改
~/.bashrc
文件不起作用。

~/.zshrc
导出 PATH 就成功了。

我在

~/.zshrc
文件的末尾添加了这一行

export PATH=$PATH:/path/to/bin

然后重新启动 wsl shell。

© www.soinside.com 2019 - 2024. All rights reserved.