我已经尝试过了,但每次重新启动系统时,我的变量都不见了。
如何在Ubuntu WSL2上永久存储环境变量?
所以这就是我的工作方式:
如果在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
以使变量在终端中可用。
如果您希望在关闭shell会话后保持一个变量,则需要将其永久设置为环境变量。您可以在为当前用户或所有用户设置它之间进行选择。
-
要为单个用户设置永久环境变量,请编辑.bashrc文件:
sudo nano~/.bashrc
-
使用以下语法为要添加的每个变量写一行:
export[VARIABLE_NAME]=[VARIABLE_value]
-
现在重新启动您的终端
这是它的完整链接:https://phoenixnap.com/kb/linux-set-environment-variable
有几种方法可以实现这一点。
-
首先,也是通常的方法(正如您所发现的(,是在shell启动脚本中设置环境变量。对于bash,它将是
~/.bash_profile
,对于zsh,它是~/.zprofile
,而对于fish,它将为~/.config/fish/config.fish
。 -
但我也建议你考虑试用鱼壳,因为它有一个很大的特点,那就是它能够设置";通用变量";,它们被自动传播到外壳的所有其他实例,无论是现在还是将来。
例如,
set -Ux myvariable 42
将创建一个通用(和导出(变量,即使在关闭并重新打开shell后,该变量也将保持不变,而无需创建配置文件。Fish还有许多其他很棒的功能,这使它成为我的首选(在使用zsh 15年后(。
也就是说,我不确定你在WSL的目标是什么,但如果是";学习Linux";,那么你最好从bash或zsh开始,因为它们更像";传统的";贝壳,当然,bash是事实上的标准。
向.bashrc
文件添加别名
sudo nano ~/.bashrc
在文件的末尾添加这一行(在我的情况下,我想运行laravel(
alias laravel='~/.config/composer/vendor/laravel/installer/bin/laravel'
然后重新启动wsl shell
exit