WSL2 环境变量配置详解:export PATH、CUDA_HOME 与 $HOME 全解析
配置环境变量时,参考的代码实际含义是什么,如何根据自己的情况修改?
代码参考:WSL2配置tensorflow GPU环境_wsl2安装tensorflow-CSDN博客
export PATH=/home/yyf/.local/bin:$PATH
export CUDA_HOME=/usr/local/cuda-12.6
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
🧩 一、基础概念详解
1. export 是什么?
export 是 Bash 的一个命令,用来把变量“导出”为环境变量,供后续的程序(包括其他 shell 脚本或软件)使用。
2. PATH 是什么?
PATH 是一个环境变量,它定义了系统在执行命令时搜索的目录路径。
例如当你输入:
python
系统就会在 $PATH 中列出的目录里一个个查找有没有 python 可执行文件。
3. CUDA_HOME 是什么?
这是我们自定义的环境变量,用来告诉系统 CUDA 安装的位置。之后就可以使用 $CUDA_HOME 来代表 /usr/local/cuda-12.6,避免重复写长路径。
4. LD_LIBRARY_PATH 是干什么的?
这个变量告诉系统:动态链接库(.so文件)在哪里找,特别重要,比如你运行深度学习代码时,系统需要加载 CUDA 的 .so 文件,这个变量就派上用场了!
🛠 二、每条配置语句含义解析
🔍 第一行:
export PATH=/home/yyf/.local/bin:$PATH
✅ 解释:
-
export:是 shell 的一个命令,用来将一个变量“导出”为环境变量,这样它对当前 shell 启动的所有子进程都可见。 -
PATH:是一个环境变量,它告诉系统“在哪些目录下可以找到可执行文件”。比如你输入python,系统会按顺序查找PATH中的路径。 -
/home/yyf/.local/bin:这是用户安装 Python 包(用pip install --user)默认会放可执行文件的地方。这里你安装的程序才能被系统识别执行。 -
::是 Linux 中PATH路径之间的分隔符。 -
$PATH:是“取出当前 PATH 的值”,$ 是取变量值的语法。
🧠 总结作用:
把 /home/yyf/.local/bin 添加到 PATH 的最前面,确保你安装在这个位置的工具优先被使用。
🔍 第二行:
export CUDA_HOME=/usr/local/cuda-12.6
✅ 解释:
-
CUDA_HOME:这个是用户自己定义的变量,用于方便引用 CUDA 安装目录。 -
/usr/local/cuda-12.6:是你本机安装 CUDA 12.6 的实际路径。 -
=:赋值操作,意思是“让 CUDA_HOME 这个变量的值为右边的路径”。
🧠 总结作用:
定义了一个环境变量 CUDA_HOME,以后可以用 $CUDA_HOME 代替 /usr/local/cuda-12.6,让配置更简洁且易于切换版本。
🔍 第三行:
export PATH=$CUDA_HOME/bin:$PATH
✅ 解释:
-
$CUDA_HOME/bin:就是/usr/local/cuda-12.6/bin,是 CUDA 的可执行程序所在目录,比如nvcc就在这里。 -
:$PATH:在前面加上 CUDA 的路径,再加上原本的 PATH,表示“让 CUDA 的命令排在 PATH 的前面”,系统会优先使用这个版本。
🧠 总结作用:
让系统能够识别 nvcc 等 CUDA 命令,同时确保使用的是指定版本(比如 12.6)的 CUDA。
🔍 第四行:
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
✅ 解释:
-
LD_LIBRARY_PATH:是 Linux 系统的一个环境变量,指定系统去哪里找动态链接库(.so 文件)。 -
$CUDA_HOME/lib64:就是 CUDA 动态库所在的位置,像libcudart.so等文件就在这里。 -
:$LD_LIBRARY_PATH:保留系统已有的路径,在前面加上 CUDA 的库路径,避免其他库失效。
🧠 总结作用:
让系统知道 CUDA 的动态链接库放在哪,避免运行程序时提示 cannot find libcudart.so.xx 之类的错误。
🏠 三、关于 /home/yyf 和 $HOME 的理解
✅ home 是什么意思?
在 Linux 或 WSL2 中,文件系统结构如下:
/
├── bin/
├── etc/
├── home/
│ ├── user1/
│ ├── user2/
│ └── yyf/ ← 这就是你的用户文件夹
├── usr/
└── ...
-
/:表示系统的“根目录”(Root Directory),相当于 C 盘的最顶层。 -
/home/:是所有普通用户的主目录放置位置。 -
/home/yyf/:就是用户名叫yyf的用户的个人主目录,也可以写成~,代表“当前用户的 home”。
所以:
/home/yyf/.local/bin
就等于:
~/.local/bin
只是写法更完整和明确。
✅ yyf 是谁?
yyf 是你在 WSL2 或 Linux 中登录时的用户名。
你可以通过运行:
whoami
查看你当前的用户名(大概率就是 yyf,如果你复制的是别人的命令,可能得改成你自己的用户名),如果你是别的用户名,比如 alice,你就要改成:
export PATH=/home/alice/.local/bin:$PATH
或者,更推荐更通用写法:
export PATH=$HOME/.local/bin:$PATH
🔄 $HOME 是一个系统变量,代表当前用户的主目录,不管你是 yyf 还是 alice 都能自动适配!
🧪 四、如何使用这些配置?
-
打开终端:
vim ~/.bashrc -
在文件末尾添加:
export PATH=$HOME/.local/bin:$PATH export CUDA_HOME=/usr/local/cuda-12.6 export PATH=$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH -
保存退出(按
Esc,输入:wq回车)。 -
刷新配置:
source ~/.bashrc
✅ 如果你在使用的是 CUDA 11.7 或其他版本,请相应替换路径。
🚀 整体总结
| 命令 | 作用 |
|---|---|
export PATH=/home/yyf/.local/bin:$PATH | 优先使用用户目录下安装的命令(如用 pip 安装的工具) |
export CUDA_HOME=/usr/local/cuda-12.6 | 定义 CUDA 的安装路径,方便后面引用 |
export PATH=$CUDA_HOME/bin:$PATH | 让终端可以识别 nvcc 等 CUDA 命令 |
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH | 让系统运行时可以加载 CUDA 的动态链接库 |
💡 尽量使用 $HOME 代替硬编码的用户名路径,避免在不同用户之间复制出错。
更多推荐
所有评论(0)