【环境变量】基本概念&理解 | 查看环境变量echo | PATH | 常见环境变量

目录

前言

基本概念&理解

查看环境变量方法

PATH环境变量 

PTAH应用系统指令 

PTAH应用用户程序

常见环境变量


大家天天开心🙂

前言

明确

  • Linux当中70%以上的命令程序都是用C语言写的
  • 执行命令程序和运行自己写的程序没有任何区别
  • 自己程序运行必须要带路径(绝对/相对都可)
  • 系统指令可带可不带(带不要瞎带)

  • 环境变量具有全局特性是可以被子进程看到的
  • 无论是全局变量还是局部变量,子进程的代码是继承父进程的,数据是拷贝的(子进程和父进程的数据是相互独立的)

回顾上篇博文

  • 登录Linux系统
  • 创建bash进程
  • 在命令行中输入参数
  • bash进程获取参数的路径&可执行程序
  1. 可执行程序是用户自己写(自己带路径)
  2. 可执行程序是系统指令(在bash进程的上下文环境变量中找)
  • 创建子进程
  • bash并把【命令行参数表】传给子进程main函数(传参)
  • 子进程接着执行自己的代码

产生这样一个问题:为什么我们自己的程序运行启动的时候需要带路径,但是系统的命令程序可带可不带路径❓

回答:在Linux当中,存在一些全局变量的设置(环境变量),告诉命令行解释器(bash进程),应该去那些路径底下去寻找这些可执行程序。

☞综下:ls不用带路径,因为ls所在的路径在环境变量当中。

基本概念&理解

概念&特性

  • 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。
  • 如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
  • 环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性 。
  • 环境变量都是大写。

整体理解

  • 登录Linux系统的时候,OS就把系统配置已经加载到了bash进程的上下文中(内存),系统配置就包括环境变量。
  • 当用户在命令行解释器中输入系统命令的时候,bash进程就拿到了命令行参数,根据环境变量,找到指令的可执行程序和路径,并创建指令的子进程。
  • (bash进程会根据$PATH在自己内存的上下文 配置信息中的 各种环境变量中找到对应的环境变量,并在此环境变量中找到对应的指令程序的路径和可执行程序)。

环境变量的作用
  • bash在执行命令的时候,需要先找到命令。因为要把命令所对应的二进制文件加载到内存中。
  • bash的上下文的环境变量中维护了一批指令的路径。
  • 默认这批指令的路径是bash创建子进程的搜索路径。
  1. 找到了就加载并运行
  2. 没找到就commend not fund
  • 注意❗:有部分指令程序&路径就在bash进程数据内部,不在环境变量PATH中,不受环境变量的影响。(后面讲)
  • 注意❗:系统中有很多配置,在我们登录Linux系统的时候,已经被加载到了bash进程中(内存中)

其中PATH就是一个典型的环境变量,☞PATH下面我们以PATH来讲解环境变量。

查看环境变量方法

  1. Linux系统登录
  2. bash进程启动,OS把配置信息加载到bash进程上下文中
  3. 输入指令echo信息
  4. bash在环境变量中找到的指令程序的路径运行(echo的程序&路劲就在bash数据段内部,不在环境变量中)
  5. 创建echo指令的子进程
  6. bash把命令行参数给echo子进程,子进程执行
  • PATH中有很多路径,这些路径以冒号:为分隔符分割,划分了路径的区域。
echo $NAME //NAME:你的环境变量名称
echo $PATH //打印环境变量PATH的内容

PATH环境变量 

PTAH应用系统指令 

  • PATH环境变量是具有全局特性的。
  • PATH变量里面保存了指令的路径。
  • 系统中有很多配置,在我们登录Linux系统的时候,已经被加载到了bash进程中(内存中),其中包括环境变量PATH。
  • bash在执行命令的时候,需要先找到命令。因为要把命令所对应的二进制文件加载到内存中。
  • bash的上下文的环境变量中维护了一批指令的路径。
  • 默认这批指令的路径是bash创建子进程的搜索路径。
  1. 找到了就加载并运行
  2. 没找到就commend not fund

PTAH应用用户程序

常见环境变量

PATH : 指定命令的搜索路径。
HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)。
SHELL : 当前Shell,它的值通常是/bin/bash。

🙂感谢大家的阅读,若有错误和不足,欢迎指正。

相关推荐

  1. Linux查看Oracle数据库的环境变量

    2024-04-04 16:46:02       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-04 16:46:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-04 16:46:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-04 16:46:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-04 16:46:02       20 阅读

热门阅读

  1. Chrome安装Vue插件vue-devtools

    2024-04-04 16:46:02       14 阅读
  2. 数据结构之图

    2024-04-04 16:46:02       13 阅读
  3. 2024.3.9力扣每日一题——找出数组的第 K 大和

    2024-04-04 16:46:02       16 阅读
  4. C++---string与字符数组之间的相互转换

    2024-04-04 16:46:02       11 阅读
  5. Ribbon 和 Feign的区别

    2024-04-04 16:46:02       13 阅读
  6. 每日一题:C语言经典例题之反转数

    2024-04-04 16:46:02       18 阅读
  7. 【Rust】——生命周期

    2024-04-04 16:46:02       17 阅读
  8. TypeScript

    2024-04-04 16:46:02       16 阅读
  9. day62 单调栈part01

    2024-04-04 16:46:02       15 阅读