Linux 进程2

news2024/11/16 3:15:49

环境变量

再Linux操作系统中一切皆文件,这个环境变量自然也是一个文件,它的作用是辅助我们使用操作系统还可以辨识我们是什么用户(一般用户,root用户)。

env是读取完整环境变量的指令,里面记录了许多我登录操作系统所用的用户的信息,如

这里显示我的用户名字是ljj1,通过ssh的方式链接本地和远程的IP地址和端口号也有。这是当我通过SSH链接这个服务器时自动添加的环境变量。

这个表示我当前登录所使用的终端信息,当然这个也是一个文件只要我们像这个文件写入就可以在我这个设备上显示写入的信息。

我们平时编译程序时需要链接动静态库,但是我们并没有在编译时标明动静态库在哪,就是因为环境变量里也包含了通用的库的地址这是,库是操作系统本身就包含的。

这个就是动态库的地址,当编译器编译程序时会通过此路径找到相应的库进行链接。

这个用户并不是root用户,只是一个普通用户,所以会有一个根目录与root会有所不同

这个就是用户的根目录

小结:环境变量里面还有一些其他的变量信息如会话ID(session),编码信息,颜色编码等。若我们进入一个操作系统,但是没有环境变量的话使用起来会有多么的繁琐,当我们需要查看当前路径下的文件信息需要输入 /usr/bin/ls -la,但是有了环境变量能让我们方便需要甚至不需要直到这个程序在哪里或者动静态库在哪里,查看文件信息只需要 ls -la,编译只需要gcc或者g++加上文件名就可以。

更改添加环境变量

我们知道了当我们执行ls指令时实际上也是执行一个程序,只不过环境变量里面包含了程序所在的路径所以我们可以直接使用,那我们平时编译完一个程序时执行程序需要在命令行里面输入路径加程序名但是有了环境变量我们就不再需要输入路径,只需要程序名就可以了。

如图这里我们只需要添加我们当前目录的路径就可以直接使用了

即使我们并不在当前目录也可以,因为会在这个环境变量的路径上寻找这个程序。

环境变量是设计好也是操作系统非常重要的一些变量,一般情况是不太建议去修改,因为可能修改之后就不知道跟什么文件,程序重合产生一些意想不到的bug,若是需要修改这里建议使用export修改

这里可以理解为给PATH重新赋值,赋上旧PATH的值然后用:分割再加上你需要添加的绝对路径完成添加。注意export修改是临时的只对当前会话有效,若你重新开一个终端或者重新登录就恢复原样了,export是内存级的,是修改的内存中操作系统的环境变量,而环境变量本身的文件是没有修改的,若要永久修改就需要找到 .bashrc文件

需要直接在文件里面进行修改,文件在~目录下,用户会在其自己的目录下有一个环境变量的文件。上面用的是root账号。

当我是用户的时候只需要在我用户账号的根目录下就可以找到这个文件。

程序中的环境变量

我们的主函数是有参数的一共三个第一个是指令数,例如我们在外面使用ls程序会输入ls -l -a这里一共三个指令分别是程序名,-l选项和-a选项这三个就会传递给主程序,这里的argc就是3,第二个参数就是一个字符串指针数组,每个指针都分别指向“ls”“-l”“-a”这三个字符串。但其实操作系统还有一个参数会传递给程序就是环境变量,这里我们接收了第三个参数然后打印出来的结果就是

操作系统传进来的环境变量了,当我们编译的时候编译器就能通过这个去找到相应的链接库和自己的工作路径了,所以我们在同一个文件夹中进行的链接是不需要指定链接的文件的路径的。这个参数是具有全局性的,子进程都会继承下去。

本地变量

set是查询本地变量的指令

当我们没有加export时就是直接加入一个本地变量,这里我们加入了一个本地变量MYPATH

用set查询到了这个变量

在环境变量中是查询不到的。

这里我们使用了一个程序进行打印变量

但是子进程中并没有这个变量的。

所以我们得出结论本地变量只在当前进程中有效,此进程分出的子进程是不会继承本地变量的。

我们使用操作系统都是需要一个命令行程序,通过输入指令去指示操作系统工作,这个就是我们的外壳程序,也就是bash进程,而我们输入的指令所打开的程序就是这个程序的子程序。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文说清楚ETL与Kafka如何实现集成

ETL与Kafka为何需要集成? 随着企业对实时流数据的处理要求越来越高,很多企业都把实时流数(日志、实时CDC采集数据、设备数据…)先推入到kafka中,再通过ETL对kafka中的数据进行消费通过ETL强大的数据的转换、清洗功能来进行数据的集成与分发。 实时数据…

table表格,让thead固定,tbody内容滚动,关键是都对齐的纯css写法

前言:哈喽,大家好,今天给大家分享今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f…

地信、测绘、遥感、地质相关岗位招聘汇总

3s等相关专业25秋招&提前批招聘信息 该岗位信息表,覆盖全国各大省市,招聘岗位主要针对地信、测绘、地质、遥感、城规等专业。 1800WebGIS开发岗位汇总表 该信息表,主要是WebGIS开发岗为主,岗位要求熟悉熟悉Openlayers&#…

【C++篇】~类和对象(中)

类和对象(中) 1.类的默认成员函数​ 默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。一个类,我们不写的情况下编译器会默认生成以下6个默认成员函数,需要注意的是这6个中最重要的是前…

YOLOv8改进系列,YOLOv8替换主干网络为PP-HGNetV2(百度飞桨视觉团队自研,助力涨点)

摘要 PP-HGNetV2(High Performance GPU Network V2) 是百度飞桨视觉团队自研的 PP-HGNet 的下一代版本,其在 PP-HGNet 的基础上,做了进一步优化和改进,最终在 NVIDIA GPU 设备上,将 “Accuracy-Latency Balance” 做到了极致,精度大幅超过了其他同样推理速度的模型。其在…

远程桌面连接工具Microsoft Remote Desktop Beta for Mac

Microsoft Remote Desktop Beta for Mac 是一款功能强大的远程桌面连接工具,具有以下功能特点: 软件下载地址 跨平台连接: 允许 Mac 用户轻松连接到运行 Windows 操作系统的计算机,打破了操作系统的界限,无论这些 Wi…

什么是HTTP DDOS,如何防护

在当今高度互联的网络世界中,网络安全威胁日益严峻,其中HTTP DDoS(Distributed Denial of Service,分布式拒绝服务)攻击作为一种常见的网络攻击手段,给企业和个人用户带来了巨大的挑战。今天我们就来详细介…

计算机四级-计算机网络

一、基础知识 1.对计算机网络发展具有重要影响的广域网是:ARPANET 随机争用型的介质访问控制方法起源于:ALOHANET 2.计算机网络发展阶段: A)第一阶段的主要成果是计算机技术与通信技术的结合 B)第二阶段的主要成果…

ZYNQ FPGA自学笔记~操作PLL

一 时钟缓冲器、管理和路由 垂直时钟中心(clock backbone)将设备分为相邻的左侧和右侧区域,水平中心线将设备分为顶部和底部两侧。clock backbone中的资源镜像到水平相邻区域的两侧,从而将某些时钟资源扩展到水平相邻区域。BUFG不…

一、RTOS入门

目录 一、裸机与RTOS介绍 1、裸机 2、 RTOS 二、FreeRTOS简介 1、FreeRTOS 特点 2、关于FreeRTOS学习资料 一、裸机与RTOS介绍 1、裸机 简介:裸机又称为前后台系统,前台系统指的中断服务函数,后台系统指的大循环(While循环…

基于PHP的新闻管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于phpMySQL的新闻管理系统。…

数据结构—(java)反射,枚举,lambda表达式

文章目录 反射反射的定义:反射相关的类:反射相关的方法:反射示例:获取Class类对象创建指定类的对象反射私有属性:反射私有方法:反射私有的构造方法 枚举枚举的意义枚举类的实现枚举类的使用:Enu…

JVM面试知识点手册

第一部分:JVM 概述 1.1 JVM 简介 Java Virtual Machine(JVM) 是 Java 语言的核心组件,负责将 Java 程序编译后的字节码(bytecode)转换为机器指令,并在目标机器上执行。JVM 提供了硬件和操作系…

创客匠人案例故事|闭关 20 天,私域大爆发,高额发售秘诀是什么?

不是你的能力决定了你的命运,而是你的决定改变了你的人生 王龙老师心赏教养法创始人心赏家园家庭“心生态”发起人国家二级心理咨询师 他是一名致力于解决家庭困境的老师,通过心赏转化五步法,帮助身陷家庭困境的父母,解决自我关系…

Linux——k8s认识

计算资源隔离 - 更方便进行高并发架构的维护和升级 - 架构管理的灵活性更高,不再以单个节点的物理资源作为基础 技术: - 硬件辅助虚拟化 - 容器技术 在企业部署方案中,很少以单节点实现虚拟化和容器技术,一般以集群状态来运…

翻唱技巧:AU和Cubase翻唱录制对轨技巧

分享和记录一下个人翻唱的经验和技巧!防止后续自己忘了!同时如果有大佬看到,希望可以帮我指出其中的错误!个人推荐用Cubase12录制翻唱,因为Cubase12可以做乐段的标记,翻唱时有助于学习一些歌曲的层次设计。…

C++对象拷贝时的优化编译

在现代编译器中,当我们在 C中进行对象的拷贝操作时,编译器并非只是机械地执行逐字节的复制。相反,它会进行优化,避免不必要的拷贝构造等等,这种优化包括“返回值优化”(RVO),“拷贝省…

JavaSE——String类

一、字符串构造 注意:String是引用类型,内部并不存储字符串本身。 有三种方式: public class Test1 {public static void main(String[] args) {// 使用常量串构造String s1 "hello java";System.out.println(s1);// 直接newSt…

JavaEE:探索网络世界的魅力——玩转UDP编程

文章目录 UDPUDP的特点UDP协议端格式校验和前置知识校验和具体是如何工作的? UDP UDP的特点 UDP传输的过程类似于寄信. 无连接: 知道对端的IP和端口号就直接进行传输,不需要建立连接.不可靠: 没有确认机制,没有重传机制,如果因为网络故障导致该段无法到达对方,UDP协议也不会…

Linux:make,Makefile

hello,各位小伙伴,本篇文章跟大家一起学习《Linux:make,Makefile》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 如果本篇文章对你有帮助,还请各位点点赞&…