shell环境变量

📅 2026/7/10 9:49:49
shell环境变量
一、全局环境变量、局部环境变量局部本地环境变量生效范围仅限当前正在运行的Shell会话新开子Shell、别的终端窗口都读取不到这个变量创建示例bashlocal_var“我是局部变量”echo $local_varbash # 进入子shellecho $local_var # 空白无输出子进程拿不到父shell的普通局部变量生命周期关闭当前终端/Shell会话变量直接销毁不会自动持久保存全局导出型环境变量创建方式局部变量搭配 export 命令导出升级为全局变量bashglobal_var“全局测试内容”export global_var生效规则能向下传递给由当前Shell启动的所有子Shell、子进程反过来子Shell修改、重新export该变量无法改动父Shell里原始数值进程内存互相隔离子进程数据不会向上回写局限仅本次终端会话有效系统重启、重开终端后变量会消失想要永久生效需要写入Shell启动文件二、PATH环境变量命令检索路径核心作用Shell执行一条普通命令比如 ls 、 python 时不会漫无目的全盘搜程序会按PATH里冒号 : 分隔的目录顺序挨个查找对应可执行文件找到就运行全部目录检索不到就报「未找到命令」。查看PATHbashecho $PATH示例输出/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin实用场景举例自己编译的程序放在 /opt/my_app/bin 直接输程序名系统识别失败把目录追加进PATH后就能直接调用bashexport PATH$PATH:/opt/my_app/bin易错提醒不要直接写 PATH/opt/my_app/bin 会清空系统原有检索目录内置 ls 、 cd 等基础命令会暂时失效。三、bash启动文件 ~/.bashrc会话持久化配置文件定位代表当前登录用户的家目录 ~/.bashrc 是单用户专属、交互式Shell启动时自动读取执行的脚本文件文件名开头 . 代表隐藏文件。功能终端新开一个bash会话打开SSH窗口、本地终端bash会自动加载 .bashrc 内部代码把 export 环境变量 、自定义别名 alias 、PATH追加规则写进 .bashrc 每次开终端会自动完成配置摆脱「临时export重启失效」的问题实操步骤用文本编辑器打开文件 vim ~/.bashrc 末尾补充配置bashexport my_variable“持久化的全局变量”加载改动让本次终端立刻生效不用重启终端bashsource ~/.bashrc新开终端测试变量可以正常读取达成永久配置效果补充区分系统级配置 /etc/bashrc 是对系统全部用户生效 .bashrc 仅针对当前登录用户四、Shell数组变量使用普通变量单次只能存1份数据数组可以在一个变量名下批量存放多条数据bash下标从0开始计数。数组创建两种写法bash写法1括号空格分隔赋值arr(“苹果” “香蕉” “橙子”)写法2按下标逐个赋值fruit[0]“西瓜”fruit[1]“葡萄”读取数据bashecho ${arr[0]} # 取出第1个元素苹果echo ${arr[]} # 一次性输出数组所有元素echo ${#arr[]} # 获取数组内元素总个数结果为3遍历数组循环打印全部内容bashfor item in ${arr[]}doecho $itemdone修改、删除元素basharr[1]“蜜桃” # 把下标1的香蕉替换成蜜桃unset arr[2] # 删除下标2的橙子unset arr # 清空整个数组示例截图