【Linux】环境变量进程虚拟地址空间

news/2024/5/7 19:35:55/文章来源:https://blog.csdn.net/qq_40376612/article/details/129968477

环境变量&进程虚拟地址空间

  • 环境变量
    • 一些常见的环境变量-PATH
    • 修改环境变量
  • 进程虚拟地址空间

环境变量

使用ls man pwd cd echo 这些指令时,不需要加./但是要运行我们自己的可执行程序就需要加上,本质上两个都是指令,为什么执行方法不同?

是由于环境变量在其中做了手脚
当使用操作系统指定的一些指令时,操作系统会通过环境变量来找到需要运行的代码,这样就不需要指定路径了

一些常见的环境变量-PATH

PATH:是可执行程序的搜索路径,我们执行ls man pwd cd echo 不需要输入路径,就是由于PATH环境变量中已经保存了这些路径
如果想要查看当前PATHecho $[环境变量名称]
在这里插入图片描述
如果有一个程序需要经常运行,我们又不想在每次运行时都指定路径,那么就可以将这个路径放到PATH的路径下。

修改环境变量

注意:这里暂时以PATH举例

修改分为两种:临时修改和永久修改

临时修改:直接使用命令行
export PATH=$PATH:想要添加的目录路径
在这里插入图片描述

永久修改:需要找到PATH文件,然后进行修改

一个linux系统中,可以有多个用户
如果需要让修改的结果对每一个用户都生效,那么就需要切换到root用户下,用vim进入/etc/bashrc,对PATH进行修改,但是不建议这样做。
建议只修改自己用户的PATH,用户级别的环境变量在自己用户的家目录下.bashrc和./bash_profile

vim ~/.bash_profile

在这里插入图片描述

这里有PATH的环境变量,通过:分割,就可以在里面添加自己的环境变量

在这里插入图片描述

注意:需要将xshell退出,重新进入登录才可以生效

环境变量的组织方式

环境变量是以字符指针数组的方式进行组织的,最后的元素以NULL结尾

进程虚拟地址空间

我们在写代码的时候,发现了这样一个Bug,子进程将val值修改后,父进程中看到的val竟然没有变化,并且val的地址还是指向的同一块空间,为什么相同空间内会出现两个值呢?
在这里插入图片描述
在这里插入图片描述

实际上是进程虚拟地址空间导致出现的这种现象,因为我们看到的地址并不是真实的物理内存地址,而是操作系统虚拟出来的一个虚拟地址。
这种虚拟地址是操作系统为每一个进程都分配的,大小为4g(在32位系统下),虚拟地址空间无法直接存储数据,当需要发生真实内存修改的时候,才会将虚拟内存和物理内存进行映射,来访问物理内存空间

操作系统为何不直接让进程访问物理内存,而是先虚拟一个虚拟地址空间呢?

直接访问物理内存,a进程是不知道当前的内存是否被使用的,这时候如果访问到了其他进程的空间,就会出现混乱,并且操作系统也不知道当前这个进程需要多大的内存空间,需要使用多久的内存空间,所以直接给进程4g的虚拟空间,当进程真正需要保存数据或者申请内存的时候,再让操作系统给进程分配空间,这样就比较合理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_283784.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python学习之http客户端和服务端

Part1前言python非常简洁,非常适合写小功能以及测试接口。本文主要记录用pyhon实现一个简单的http客户端和服务端。Part2http客户端这里采用request库来实现。示例如下import requests import json url http://127.0.0.1:81/test?key1123&key2456headers {Au…

代码不熟没关系,让AI替你写

程序员早已不是一个陌生的群体,但程序、代码相对普通人而言,看着还是比较深奥难懂,但自从有了ChatGPT,不少对此有兴趣的外行人士,也能轻松写出代码了,比如让ChatGPT写一个贪吃蛇游戏,按它给出的…

【如何使用Arduino控制WS2812B可单独寻址的LED】

【如何使用Arduino控制WS2812B可单独寻址的LED】 1. 概述2. WS2812B 发光二极管的工作原理3. Arduino 和 WS2812B LED 示例3.1 例 13.2 例 24. 使用 WS2812B LED 的交互式 LED 咖啡桌4.1 原理图4.2 源代码在本教程中,我们将学习如何使用 Arduino 控制可单独寻址的 RGB LED 或 …

ROS实践05 订阅方实现Python

文章目录运行环境:思路:1.1 Python代码实现1)工作空间创建和编译2)功能包创建和添加依赖3)新建.py文件4)修改CMakeList5)运行节点运行环境: ubuntu20.04 noetic 宏基暗影骑士笔记本…

Java每日一练(20230409)

目录 1. 多数元素 🌟 2. 反转链表 II 🌟🌟 3. 日期之间的遍历 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 多数元素 给定一个…

使用红黑树封装map和set

目录 一、set和map的底层结构 使用模板区分map和set 使用仿函数来比较大小 二、红黑树中set和map的迭代器 end和begin迭代器 operator迭代器 operator-- 三、set与map中的迭代器和const迭代器 四、迭代器的拷贝构造 五、完整代码 set.h map.h RBTree.h 一、set和ma…

UE4 C++编写自定义动画蓝图节点

UE中自带的动画蓝图节点有限,在实现一些功能时需要通过C编写一些自定义的动画蓝图节点,本文就来讲解其基础实现,自定义节点最终效果如下: 源文件下载:https://download.csdn.net/download/grayrail/87654290 1.流程简…

linux 服务器 docker 安装 mysql 8.0.32 常用命令

我的Docker专栏 https://blog.csdn.net/weixin_45580378/category_12276045.html docker 镜像 https://registry.hub.docker.com/_/mysql/tags 1.版本号可不写 不写就是最新版本 最好写上 docker pull mysql:版本号2.查看镜像是否安装成功 如下图 docker images3.创建文件…

活动送票福利|Jina AI x PyCon US 2023!

作为一家总部位于德国柏林的国际化公司,Jina AI 拥有来自 10 不同国家的团队成员,在中国(北京、深圳)、美国(圣何塞)均设有办公室。全球化基因深植于 Jina AI 团队,我们也非常注重国际化社区的建…

shardingsphere-jdbc 整合 springboot

shardingsphere官网地址 https://shardingsphere.apache.org/document/5.2.0/cn/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/sharding/ 当前我们演示的是水平分表 1、基础环境配置以及依赖管理 1.1 创建数据库表结构 CREATE TABLE address_0 (id bigint(…

linux 服务器 docker 安装 jdk jre java 1.8 环境 常用命令

我的Docker专栏 https://blog.csdn.net/weixin_45580378/category_12276045.html docker jdk 镜像 https://hub.docker.com/_/java/tags 1.下载JDK镜像 注:后面如果不写版本的话 就是最新版 建议写上 docker pull java:8u111-jdk2.查看镜像是否下载成功 docker…

家装产业的数字化,正在成为越来越多人的新共识

一场数字化的浪潮,正在各行各业上演着。家装行业,亦不例外。可以说,家装产业的数字化,正在成为越来越多人的新共识。如何借助数字化的手段改造家装行业,如何乘着数字化的东风实现家装行业的全面转型升级,正…

CF区间DP作业题解

1. Recovering BST 由于互质关系不是传递的,所以尽量挂在树的最下面,刚好构成二叉树 f[i][j][0]f[i][j][0]f[i][j][0] 表示区间 [i,j][i,j][i,j] 以 iii 为根,是否可以构成一棵树。 f[i][j][1]f[i][j][1]f[i][j][1] 表示区间 [i,j][i,j][i,j…

基于非线性权重因子和纵横交叉策略的麻雀搜索算法

目录 1 主要内容 非惯性权重模型 纵横交叉策略模型 2 部分程序 3 程序结果 4 程序链接 1 主要内容 该程序参考文献《基于Sobol序列和纵横交叉策略的麻雀搜索算法》对麻雀搜索算法进行改进,实现了基于纵横交叉策略和非线性权重因子的麻雀搜索算法 改进SSA算法【…

webpack配置本地TypeScript编译环境和开启本地服务

目录 1.创建一个文件夹 2.初始化一个package.json文件对我们安装包进行记录 3.安装webpack 4.配置webpack.config.js文件 1.创建一个文件夹 2.初始化一个package.json文件对我们安装包进行记录 执行npm init,文件命名为ts_demo,然后一直回车。 3.安装…

ImageIO 支持webp格式

TwelveMonkeys 提供了很多图片格式的支持,其中也包括了webp,但是其仅支持webp格式的读取,不支持webp格式的写出,这样的话如果想把图片转换成webp格式的图片就没办法实现了;下面我们使用 webp-imageio-core 对ImageIO图…

关键词采集工具可以帮助我们做那些方面的工作

针对搜索引擎的关键词采集工具可以帮助我们做那些方面的工作,至少从10个工作场景说明,并列举详细的使用场景 Msray-plus,是一款企业级综合性爬虫/采集软件。 支持亿级数据存储、导入、重复判断等。无需使用复杂的命令,提供本地W…

ROS实践01 C++ Python基本实现

文章目录运行环境:1.1 vscode 环境配置:1)ctrlshiftX 添加扩展插件:2)ctrlshiftB 配置中更换为以下代码1.2 C代码实现1)工作空间创建和编译2)功能包创建和添加依赖3)新建.cpp文件4&a…

新电脑装机——配置硬件、软件安装卸载、注册表、路径——介绍详解

装机工具、配置、路径,介绍详解电脑配置信息电脑历史记录黑色Window Top 加入黑色(微信不能调成黑色背景)edge浏览器的配置(被edge恶心过的必看,有方法解决edge被管理、不能新建标签)设置【地址栏搜索】&am…

多元函数的基本概念——“高等数学”

各位CSDN的uu们你们好呀,今天,小雅兰的内容是多元函数的基本概念,下面,让我们一起进入多元函数的世界吧 平面点集 多元函数的概念 多元函数的极限 多元函数的连续性 有界闭区域上多元连续函数的性质 平面点集 第一个是坐标平…