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

Linux 环境变量详解

1. 系统定义好的变量

  • PATH:决定了 shell 将到哪些目录中寻找命令或程序
  • HOME:用户的家目录
  • USER:用户登录的用户名。
  • PWD:当前系统路径(当前用户所在目录)
  • HISTSIZE:shell 的历史记录, 能记录最多历史命令的条数
  • LOGNAME:用户的登录名(等同于 USER)
  • HOSTNAME:主机的名称
  • HOST:指主机的名称(macos)
  • SHELL:当前用户正在使用的shell, 默认使用的是/bin/bash
  • LANGUGE:语言相关的环境变量,多语言可以修改此环境变量(不重要)
  • MAIL:用户邮件的存放目录(不重要)

2. 变量周期分类

  1. 零时变量: 用export命令在终端环境下声明变量,重启 Shell 就会失效
  2. 永久变量: 用户将变量添加到相关的配置文件,如:/etc/profile~/.bash_profile~/.zshrc,添加后则永久生效, 重启 shell 也不会失效,

3. 变量作用域分类

  1. 用户级: 仅对设置这个变量的用户生效,对其他用户则无效
    • 将环境变量写进用户目录下的~/.bash_profile~/.zshrc文件里面
    • .bash_profile是针对 bash 用户的,.zshrc是针对 zsh 用户的.
  2. 系统级: 对该系统中所有用户都有效
    • 将环境变量写进系统目录下的/etc/profile文件里面

书写格式

这里我们约定俗成一下名词: 变量值=路径

# 单变量值 export 变量名=路径1 # 多变量值 export 变量名=路径1:路径2:路径3:路径4 # 引用变量作为变量值 export 变量名=$变量1:$变量2:路径1:路径2
  1. 如果直接写成export PATH=/.../.../..., 这样新添加的变量会覆盖PATH之前的所有的变量值,若想不覆盖就要书写成export PATH=$PATH:/.../...
    • $PATH的作用是新加的路径也包含自己, 相当于引用了PATH自己现有的变量值
    • 这里的$符号可以理解为引用符号, 引用已经定义的变量的值
  2. 追加多条路径由:进行分隔, 如:export PATH=$PATH:$HOME/nvim/:/tmp/,:后面加上自己要追加的路径, 新加的路径会追加到PATH里面

4. 变量相关命令

  1. env: 查看当前用户全部的环境变量
  2. export: 显示当前系统定义的所有环境变量, 设置环境变量
  3. printenv: 查看指定环境变量的值
  4. unset: 清除指定环境变量
http://www.jsqmd.com/news/477199/

相关文章:

  • 如何为AppManager贡献代码:完整的Android应用管理项目开发者指南
  • Ant Design Blazor 快速创建项目
  • Mysql 中数据主键类型不一样导致数据插入速度快慢问题
  • 5个必学的AST Explorer使用技巧:快速掌握代码分析神器
  • 如何从源码构建Sigil:跨平台EPUB编辑器的完整指南
  • 【01最短路 BFS】1368. 使网格图至少有一条有效路径的最小代价
  • RLHF在多模态领域的应用:MM-RLHF框架与视觉语言模型对齐技术
  • Taming Transformers完整贡献指南:10个技巧助你成为AI图像合成专家
  • Dolt:将Git与数据库完美结合的开源项目
  • Redis 的用途
  • 如何快速掌握Embark框架:从代码规范到贡献流程的完整指南
  • Vue3商城移动端调试终极指南:Chrome DevTools与Vue DevTools实战技巧
  • Dolt:数据版的Git,让数据库管理更智能
  • Prisma与监控系统:10个性能指标收集和应用监控实现终极指南
  • Gorilla合作伙伴计划:API提供商如何接入生态系统
  • OCRmyPDF与文档扫描标准:符合ISO 19005(PDF/A)的处理
  • 用UE5 Multi-User Editing实现远程团队协作:公网部署+会话管理全流程解析
  • 如何快速掌握AppManager:10个实用技巧提升Android管理效率
  • LeetCode 热题 100 之 215. 数组中的第K个最大元素 347. 前 K 个高频元素 295. 数据流的中位数
  • SecretVault强网杯2025 Web题解:从JWT绕过到HTTP头注入的实战剖析
  • sc-im配置与自定义:打造属于你的终端表格工作流
  • Buildroot+Qt开发:嵌入式GUI应用的快速部署方案
  • 从安装到渲染:MakeHuman完整工作流教程(含Blender导出技巧)
  • OpenVPN 2.5.9 快速部署与多端口转发实战指南
  • PyCaret特征工程:轻松构建专业级特征缩放与选择Pipeline
  • Spring开发系列教程(1)——简介
  • 【从零入门23种设计模式20】行为型之状态模式
  • 瑞芯微RK3568控制板PCB设计实战:从PMU布局到叠层优化的效率提升
  • AI应用落地新范式:从FDE到AgentOps的工程化演进
  • Hugging Face Transformers 介绍