当前位置: 首页 > news >正文

shell环境变量

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

  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 # 清空整个数组

示例截图:


http://www.jsqmd.com/news/1160117/

相关文章:

  • Muse Image:基于扩散模型的社交媒体图像生成技术解析
  • VB6.0在Windows 10/11上的兼容性安装与运行时修复指南
  • 它们由权重构成:揭秘大模型背后的灵魂架构
  • 市场分析PPT模板推荐哪家?2026年超全选购指南
  • STM32F411RE与L9958实现高性能BLDC电机驱动方案
  • 微机课设核心器件解析:8255与DAC0832在8086波形发生器中的3种典型接口电路
  • 信息素养大赛 C++ 复赛真题精讲:从“滑雪板打包”到“选书方案”的 2 种优化策略
  • ANSYS 2026安装架构深度解析:HPC运行时、许可证机制与Windows部署陷阱
  • 3分钟整理Windows右键菜单:ContextMenuManager让你的桌面效率翻倍
  • 阴阳师自动化脚本终极指南:三步解决模拟器适配难题
  • 基于蓝牙5.4与STM32的高性能无线音频系统设计
  • Creo 10.0教育版合法安装与工程级配置指南
  • 卡地亚中国官方售后服务中心|地址与官方服务热线权威信息公告(2026年7月最新) - 卡地亚服务中心
  • 基础 1 —— Docker 的简介
  • 江西省赣州市兴国县九里蓝湾六层别墅电梯落地:主梁加固后现浇土建井道,木纹定制家用电梯安全交付
  • Ansible远程管理飞牛OS实操:Playbook执行、SSH穿透与固定TCP地址配置
  • 逸程扎根南京秦淮 专业黄金回收鉴定服务 - 融媒生活
  • 2026多商户商城系统哪家好,别被功能清单带偏
  • 旧金回收卖高价 南京秦淮实用方法分享 - 融媒生活
  • SEO 优化哪个公司好?业内公认实力强的 SEO 优化企业推荐 - 品牌推荐大师
  • 亚马逊自研AI芯片技术解析:从架构设计到设备端应用
  • Linux核心运维命令
  • Transformer 注意力简化运算:CCF-CSP 202305-2 矩阵题 2 种实现对比
  • 直流有刷电机驱动方案:TC78H651AFNG与PIC18F4585的优化设计
  • 高温SAW传感器设计避坑:薄膜脱湿(Dewetting)的7种抑制方法与实测案例
  • 平板配件制造的进化逻辑:铭宏智造的工程化思维与市场适配实践 - 资讯焦点
  • 2026 深圳品牌首饰回收用户真实反馈合集|首榜易奢福线下门店全品类首饰探店测评 - ys韩
  • TS2007FC与PIC18F4620实现低功耗高音质音频系统设计
  • 大模型入门指南:小白程序员轻松掌握LLM应用开发,收藏必备!
  • 论文初稿没思路?7款一键生成论文工具1天实现毕业流程全通关