1.环境变量
env查询默认:
储备:
我们在Linux终端上写的执行命令如何实现的呢?为什么我们写的代码运行要加./xxx进行运行呢?这便与命令行参数有关:
那么这些继承的参数,命令执行的路径怎么确定?
(1)常见环境变量(系统提供的具有“全局”属性)
a. (.PATH):指定命令的搜索路径
告诉shell该去哪一路径下查指令
默认:/usr/local/bin:(多个路径间用:连接)
进程启动时,子进程会从父进程那将.PATH继承下来
查看默认进程用echo$
b.(.HOME)记录当前用户家目录路径
c.(.SHELL)记录shell的版本
d.(.PWD)保存当前进程所在的工作路径
e.NAME:查看所在环境变量的名称
(2)获取环境变量属性:
(3)export
将本地变量变成环境变量
(4)补充:
环境变量可以被子进程继承
unset取消一个环境变量
指向环境变量表
2.进程地址虚拟空间
该地址不一定是物理地址(虚拟/线性)地址
先看一个现象:
为什么id地址相同却值不一样,且if else可以一起执行?
(1)进程地址空间本质上是一个内核数据结构对象(类似PCB)
处于进程与物理内存间的特殊存在
(2)空间地址中存在许多的区域划分存储各种属性
(3)地址空间上的地址本质上是一个数字,空间范围内的地址可以随意使用
图示:
3.总结:
对于父子进程来说他们的物理内存地址相同,当两者数据不做修改时,虚拟地址也一样,当修改: