尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

shell环境变量

shell环境变量
📅 发布时间:2026/7/10 10:06:20

一、全局环境变量、局部环境变量

  1. 局部(本地)环境变量

生效范围:仅限当前正在运行的Shell会话,新开子Shell、别的终端窗口都读取不到这个变量
创建示例:

bash

local_var=“我是局部变量”
echo $local_var
bash # 进入子shell
echo $local_var # 空白无输出,子进程拿不到父shell的普通局部变量
生命周期:关闭当前终端/Shell会话,变量直接销毁,不会自动持久保存

  1. 全局(导出型)环境变量

创建方式:局部变量搭配 export 命令导出升级为全局变量

bash

global_var=“全局测试内容”
export global_var

生效规则:能向下传递给由当前Shell启动的所有子Shell、子进程;反过来子Shell修改、重新export该变量,无法改动父Shell里原始数值(进程内存互相隔离,子进程数据不会向上回写)
局限:仅本次终端会话有效,系统重启、重开终端后变量会消失,想要永久生效需要写入Shell启动文件

二、PATH环境变量(命令检索路径)

核心作用

Shell执行一条普通命令(比如 ls 、 python )时,不会漫无目的全盘搜程序,会按PATH里冒号 : 分隔的目录顺序挨个查找对应可执行文件,找到就运行,全部目录检索不到就报「未找到命令」。

查看PATH

bash

echo $PATH

示例输出:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

实用场景举例

自己编译的程序放在 /opt/my_app/bin ,直接输程序名系统识别失败;把目录追加进PATH后就能直接调用:

bash

export PATH=$PATH:/opt/my_app/bin

易错提醒

不要直接写 PATH=/opt/my_app/bin ,会清空系统原有检索目录,内置 ls 、 cd 等基础命令会暂时失效。

三、bash启动文件 ~/.bashrc(会话持久化配置)

文件定位
代表当前登录用户的家目录, ~/.bashrc 是单用户专属、交互式Shell启动时自动读取执行的脚本文件(文件名开头 . 代表隐藏文件)。

功能

  1. 终端新开一个bash会话(打开SSH窗口、本地终端),bash会自动加载 .bashrc 内部代码
  2. 把 export 环境变量 、自定义别名 alias 、PATH追加规则写进 .bashrc ,每次开终端会自动完成配置,摆脱「临时export重启失效」的问题

实操步骤

  1. 用文本编辑器打开文件: vim ~/.bashrc ,末尾补充配置:

bash

export my_variable=“持久化的全局变量”

  1. 加载改动让本次终端立刻生效(不用重启终端):

bash

source ~/.bashrc

  1. 新开终端测试,变量可以正常读取,达成永久配置效果

补充区分:系统级配置 /etc/bashrc 是对系统全部用户生效; .bashrc 仅针对当前登录用户

四、Shell数组变量使用

普通变量单次只能存1份数据,数组可以在一个变量名下批量存放多条数据,bash下标从0开始计数。

  1. 数组创建两种写法

bash

写法1:括号空格分隔赋值

arr=(“苹果” “香蕉” “橙子”)

写法2:按下标逐个赋值

fruit[0]=“西瓜”
fruit[1]=“葡萄”

  1. 读取数据

bash

echo ${arr[0]} # 取出第1个元素:苹果
echo ${arr[@]} # 一次性输出数组所有元素
echo ${#arr[@]} # 获取数组内元素总个数(结果为3)

  1. 遍历数组(循环打印全部内容)

bash

for item in ${arr[@]}
do
echo $item
done

  1. 修改、删除元素

bash

arr[1]=“蜜桃” # 把下标1的香蕉替换成蜜桃
unset arr[2] # 删除下标2的橙子
unset arr # 清空整个数组

示例截图:


相关新闻

  • 2026年7月最新泉州天梭官方售后客户服务电话及线下网点地址 - 天梭服务中心
  • 它们由权重构成:揭秘大模型背后的灵魂架构
  • 微机课设核心器件解析:8255与DAC0832在8086波形发生器中的3种典型接口电路

最新新闻

  • 全自动植树机器人 SolidWorks 2023 三维建模:从零件到装配体的 4 大模块设计详解
  • 【JAVA毕设源码分享】基于SpringBoot的高尔夫球场管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 工业负载控制与STM32智能驱动实战解析
  • TikTok评论采集工具:三步实现抖音评论批量导出与数据分析
  • 5个专业技巧让Source Han Serif CN字体发挥极致效果
  • 终极解决方案:3分钟彻底修复DistroAV插件NDI Runtime缺失问题

日新闻

  • OpenClaw本地化部署:xParse文档解析引擎实战指南
  • 蓝牙 5.4 协议栈深度解析:从 HCI 到 L2CAP 的 7 层数据流
  • PyTorch nn.CrossEntropyLoss 实战:3种权重设置与标签平滑对比(附代码)

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号