
前言嵌入式新手在 Ubuntu 配置交叉编译工具链时几乎只会看到export PATH$PATH:/xxx这一种写法对老师讲的通用公式export 变量名值非常困惑。为什么别的变量可以直接赋值唯独 PATH 要拼接引号什么时候加、什么时候不用永久配置到底用.bashrc还是profile一、export 通用万能语法所有环境变量都遵守标准模板export 变量名值核心规则 左右绝对不能有空格否则直接报错export将变量升级为全局变量内核编译、Shell 脚本都能识别不加 export 仅当前终端临时有效嵌入式高频非 PATH 变量编译内核必用这类变量直接覆盖赋值不需要拼接旧值# CPU架构 export ARCHarm64 # 交叉编译器前缀 export CROSS_COMPILEaarch64-linux-gnu- # 内核源码路径 export KERNEL_SRC/home/ubuntu/linux查看变量echo $ARCH二、PATH 环境变量详解嵌入式重点PATH 是系统命令搜索路径。执行 ls、gcc、交叉编译器时系统会按 PATH 里的目录依次查找程序多个目录用:分隔。1. 绝对不能写的致命错误# 千万不要直接覆盖会清空所有系统命令 export PATH/mnt/hgfs/2-shell一旦执行ls、sudo、gcc 全部失效。2. 正确 PATH 追加写法课堂标准写法export PATH$PATH:/mnt/hgfs/CS2618/2-Linux基础/2-code/2-shell原理$PATH保留系统原有所有路径保护系统命令:Linux 路径分隔符后面路径新增自己的工具链、脚本目录3. 引号完整讲解新手最容易踩坑# 写法1课堂简写临时输入完全可用 export PATH$PATH:/mnt/hgfs/CS2618/2-Linux基础/2-code/2-shell # 写法2规范双引号 推荐写入永久配置 export PATH$PATH:/mnt/hgfs/CS2618/2-Linux基础/2-code/2-shell # 写法3错误禁止使用单引号 export PATH$PATH:/mnt/hgfs/xxx详细区别无引号临时手动输入简单路径没问题双引号 可以解析$PATH兼容空格、中文、复杂路径适合永久配置单引号 完全不解析任何 $ 符号会把$PATH当成普通文本字符串导致路径赋值彻底失效绝对禁止4. PATH 两种优先级写法# 追加末尾日常推荐系统命令优先 export PATH$PATH:/opt/gcc-arm/bin # 放最前面调试专用自己的工具链优先 export PATH/opt/gcc-arm/bin:$PATH5. 底层逻辑统一PATH 不是特殊语法只是通用公式的变形通用公式export 变量值PATH 逻辑export PATH旧PATH内容新目录三、永久环境变量两种配置文件必区分1. 用户级配置 ~/.bashrc个人开发首选只对当前用户生效、安全、无风险、嵌入式开发默认使用。vim ~/.bashrc source ~/.bashrc2. 系统级配置 /etc/profile全局所有用户全部用户生效需要 root 权限适合多人服务器统一配置。sudo vim /etc/profile source /etc/profile注/etc/environment系统底层路径新手不要改。四、两种生效方式1. 临时生效终端直接输入关闭终端失效适合临时测试。export PATH$PATH:/opt/gcc-arm/bin export ARCHarm642. 永久生效个人开发写入~/.bashrc多人服务器写入/etc/profile改完必须source重载五、嵌入式标准永久配置模板# 内核编译全局参数 export ARCHarm64 export CROSS_COMPILEaarch64-linux-gnu- # 交叉工具链路径 export PATH$PATH:/opt/gcc-arm/bin # 课程脚本路径 export PATH$PATH:/mnt/hgfs/CS2618/2-Linux基础/2-code/2-shell六、高频常用命令echo $PATH # 查看当前路径 echo $ARCH # 查看自定义变量 unset ARCH # 删除环境变量 source ~/.bashrc # 重载个人配置 source /etc/profile # 重载全局配置七、核心总结export 变量值是所有环境变量的通用语法。PATH 不能直接覆盖必须用$PATH:拼接防止系统命令报废。临时命令可不带引号永久配置必须双引号 禁止单引号 。个人开发用~/.bashrc多人服务器统一用/etc/profile。