news 2026/9/4 16:52:23

Ubuntu嵌入式开发 export环境变量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu嵌入式开发 export环境变量

前言

嵌入式新手在 Ubuntu 配置交叉编译工具链时,几乎只会看到export PATH=$PATH:/xxx这一种写法,对老师讲的通用公式export 变量名=值非常困惑。

为什么别的变量可以直接赋值,唯独 PATH 要拼接?引号什么时候加、什么时候不用?永久配置到底用.bashrc还是profile

一、export 通用万能语法(所有环境变量都遵守)

标准模板

export 变量名=值

核心规则

  • = 左右绝对不能有空格,否则直接报错

  • export:将变量升级为全局变量,内核编译、Shell 脚本都能识别

  • 不加 export 仅当前终端临时有效

嵌入式高频非 PATH 变量(编译内核必用)

这类变量直接覆盖赋值,不需要拼接旧值:

# CPU架构 export ARCH=arm64 # 交叉编译器前缀 export CROSS_COMPILE=aarch64-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:$PATH

5. 底层逻辑统一

  • PATH 不是特殊语法,只是通用公式的变形:
  • 通用公式:export 变量=值
  • PATH 逻辑:export PATH=旧PATH内容+新目录

三、永久环境变量两种配置文件(必区分)

1. 用户级配置 ~/.bashrc(个人开发首选)

只对当前用户生效、安全、无风险、嵌入式开发默认使用。

vim ~/.bashrc source ~/.bashrc

2. 系统级配置 /etc/profile(全局所有用户)

全部用户生效,需要 root 权限,适合多人服务器统一配置。

sudo vim /etc/profile source /etc/profile

注:/etc/environment系统底层路径,新手不要改。

四、两种生效方式

1. 临时生效

终端直接输入,关闭终端失效,适合临时测试。

export PATH=$PATH:/opt/gcc-arm/bin export ARCH=arm64

2. 永久生效

  • 个人开发:写入~/.bashrc

  • 多人服务器:写入/etc/profile

  • 改完必须source重载

五、嵌入式标准永久配置模板

# 内核编译全局参数 export ARCH=arm64 export CROSS_COMPILE=aarch64-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 # 重载全局配置

七、核心总结

  1. export 变量=值所有环境变量的通用语法

  2. PATH 不能直接覆盖,必须用$PATH:拼接,防止系统命令报废。

  3. 临时命令可不带引号,永久配置必须双引号 "",禁止单引号 ''

  4. 个人开发用~/.bashrc,多人服务器统一用/etc/profile

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 16:51:18

栈溢出问题解析:大数组导致程序崩溃的原理与解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 16:46:32

ReCLIP原理与复现:组合式零样本学习如何让CLIP识别‘红色苹果’

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 16:46:25

布鲁可星辰3DC积木人:从拆盒到摆柜的拼装与把玩指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 16:42:54

02:在Clion中新建第一个C++项目

文章目录1 准备文件夹,本堂课的所有C代码将存放在路径“D:\00C\CCode”中(不要有中文)2 双击打开Clion软件,新建项目3 修改项目存放位置4 敲代码P19例2-15 运行代码6 练习题1:打印练习(必做题)1…

作者头像 李华
网站建设 2026/9/4 16:41:27

2026年7月泸州市新房价格深度分析报告

一、报告背景与数据说明本报告基于2026年7月泸州市新房实际成交案例,结合区域分布、楼盘定位、户型结构与成交价格等多维数据,对当前泸州新房市场进行深度剖析。报告旨在为购房者、投资者及行业从业者提供客观、真实的市场参考。数据来源说明&#xff1a…

作者头像 李华
网站建设 2026/9/4 16:38:08

Hadoop监控实战:Grafana模板设计与可观测性落地

简介:本资源是一套专为大数据运维工程师与Hadoop平台管理员设计的Grafana监控仪表板模板集合,聚焦Hadoop生态核心组件的可视化可观测性建设,解决集群运行状态分散、指标难以统一分析的运维痛点。压缩包共14个文件,全部为JSON格式的…

作者头像 李华