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 都能自动适配!


🧪 四、如何使用这些配置?

  1. 打开终端:

    vim ~/.bashrc
    
  2. 在文件末尾添加:

    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
    
  3. 保存退出(按 Esc,输入 :wq 回车)。

  4. 刷新配置:

    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 代替硬编码的用户名路径,避免在不同用户之间复制出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值