Linux中变量分局部与全局:局部变量直接赋值(如name="张三"),仅当前Shell生效;全局变量需用export导出,供子Shell继承;永久生效须写入~/.bashrc或/etc/profile并source刷新。

Linux 里自定义变量,关键看「要不要让子进程(比如新启动的 bash、执行的脚本)也能用」。要,就导出为全局;只在当前终端或当前脚本里用,就用局部变量——不是靠命令名区分,而是靠是否 export。
怎么定义局部变量
局部变量最简单,直接赋值就行,只对当前 Shell 生效:
- 写法:`name="张三"` 或 `age=25`(等号两边绝对不能有空格)
- 含空格或特殊字符时,必须加引号:`msg="Hello World"`
- 引用方式:`echo $name` 或 `echo ${name}`(后者更安全,尤其变量后紧跟字母时)
- 关闭终端或新开一个终端,这个变量就没了,其他 Shell 完全看不到
怎么定义全局变量(环境变量)
全局变量 = 局部变量 + export。它能让当前 Shell 及所有后续启动的子 Shell、脚本都访问到:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 两步法:先定义再导出 —— `myapp="/opt/mytool"; export myapp`
- 一步法:`export mypath="/usr/local/bin"`
- 验证是否生效:运行 `bash` 进入子 Shell,然后 `echo $mypath` 看能不能输出
- 注意:修改子 Shell 里的全局变量,不会影响父 Shell 的值(单向继承)
怎么让变量永久生效
上面两种都是「当前会话有效」。想每次打开终端都有,得写进配置文件:
- 仅当前用户永久生效:把 `export xxx=xxx` 加到 `~/.bashrc`(推荐)或 `~/.profile`
- 所有用户都生效(需 root 权限):加到 `/etc/profile` 或 `/etc/environment`
- 改完记得执行 `source ~/.bashrc` 刷新,或者新开终端
怎么查看和清理变量
查变量不用猜,命令很明确:
- 看所有全局变量:`printenv` 或 `env`
- 看某个变量:`printenv PATH` 或 `echo $HOME`
- 看包括局部变量在内的全部变量:`set | grep "^my"`(set 输出量大,建议配合 grep)
- 删除变量:`unset myapp`(删掉后,当前 Shell 就再也访问不到了)

















