Linux 进程2

server/2024/11/15 0:56:19/

环境变量

再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.ppmy.cn/server/119277.html

相关文章

html+css网页设计 旅游网站首页1个页面

htmlcss网页设计 旅游网站首页1个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&#xff…

istio中如何使用serviceentry引入外部服务

假设需要引入一个外部服务,外部服务ip为10.10.102.90,端口为32033. 引入到istio中后,我想通过域名gindemo.test.ch:9090来访问这个服务。 serviceentry yaml内容如下: apiVersion: networking.istio.io/v1beta1 kind: ServiceEn…

硬件工程师笔试面试——电机

目录 18、电机 18.1 基础 电机原理图 电机实物图 18.1.1 概念 18.1.2 电机的一些基本分类和特点 18.2 相关问题 18.2.1 不同类型的电机在实际应用中有哪些具体的优势和劣势 18.2.2 在设计一个电机系统时,我应该如何考虑电机的选型和配置? 18.2.3 对于需要频繁启停的…

828华为云征文|华为云Flexus云服务器X实例之openEuler系统部署Docker Compose管理工具Dockge

828华为云征文|华为云Flexus云服务器X实例之openEuler系统部署Docker Compose管理工具Dockge 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、Dockge介绍2.1 Dockge简介2.2 Dockge功能…

Python——俄罗斯方块

俄罗斯方块游戏是一款经典的益智游戏,通常使用编程语言Python来实现。下面是一个简单的俄罗斯方块游戏的示例代码: import pygame import random# 定义颜色 BLACK (0, 0, 0) WHITE (255, 255, 255) RED (255, 0, 0) GREEN (0, 255, 0) BLUE (0, 0,…

python 实现eulers totient欧拉方程算法

eulers totient欧拉方程算法介绍 欧拉函数(Euler’s Totient Function),通常表示为 𝜑(𝑛),是一个与正整数 𝑛相关的函数,它表示小于或等于 𝑛的正整数中与 &#x1d45…

HX711电子秤模块详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 3.工作原理介绍 三、程序设计 main.c文件 hx711.h文件 hx711.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 HX711是一种高精度、低成本的压力传感器信号放大器,主要用于测量重力或压力变化。…

分享几种方式获取免费精致的Live2d模型

文章目录 1、 Live2D官方示例数据集(可免费下载)2、模之屋3、unity商店4、直接b站搜索5、youtube6、BOOTH完结 1、 Live2D官方示例数据集(可免费下载) 官方提供了一些 Live2D实例模型给大家下载使用 地址:https://ww…