配置环境变量时,参考的代码实际含义是什么,如何根据自己的情况修改?
代码参考: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
代替硬编码的用户名路径,避免在不同用户之间复制出错。