当前位置:   article > 正文

【Linux】解锁进程地址空间奥秘,高效环境变量的实战技巧

【Linux】解锁进程地址空间奥秘,高效环境变量的实战技巧

1. 环境变量

1.1. 概念

环境变量:是由操作系统提供的一组全局变量,每个环境变量都有它特定的用途,它们对于多个程序都是可见,并且可在程序之间共享。

  1. 定义变量的本质是开辟内存空间,并通过变量名来标识这块空间,以便程序能够读取或修改其中的数据。

  2. 操作系统或者bash都是程序,程序在运行期间可以通过malloc、new等函数来动态开辟内存空间。

  3. 系统或者用户级别的环境变量,本质是在操作系统或者bash运行期间开辟内存空间,并给这块空间赋予了名称和内容。

  4. 环境变量不是一个单一的变量,而是由多个变量组成的集合,每个变量都有特定的名称和内容,彼此之间互不影响。

1.2. 常见环境变量

一、PATH

PATH:指定命令的搜索路径。

  1. PATH用于指定一系列目录,其中的可执行文件可在命令行中直接运行,无需指定完整路径。

  2. PATH结构:其内容是一个字符串,这个字符串是由多个路径组成,路径之间以冒号作为分隔符,其中每个路径都是系统默认的搜索路径。

99H`K82D6HPU$PT45}ICL.png

  1. 因为执行一个程序的前提是找到它,所以在命令行中直接输入一个命令时,OS会按照以下步骤来查找该命令对应的可执行文件:检查命令是否为Shell的内部命令(cd、alias等),如果是,直接执行 —> 检查PATH变量,根据PATH变量中指定的路径顺序逐个查找 —> 如果找到,就立即执行;如果没找到,就会报错 (commad not found)。

在这里插入图片描述

PATH=路径:$PATH

  • 功能:将新的路径添加到PATH中,同时保留原有的路径不被覆盖($PATH功能)。

W($)AZTYSNP1`WTY4@SS9IN.png 二、USER

USER:表示当前登陆的用户名。

在这里插入图片描述

  • whoami:显示当前登陆的用户名;一种实现方式是直接读取USER环境变量的内容来确定当前用户名。

三、PWD

PWD:表示当前工作目录的路径。

在这里插入图片描述
四、HOME

HOME:表示当前用户的主目录路径。即:用户登陆Linux系统中,默认所处的路径(家目录)。

在这里插入图片描述

1.3. 和环境变量相关的命令

echo $本地/环境变量

  • 功能:显示某个本地/环境变量的内容。

export 环境变量名=内容。

  • 功能:设置一个新的环境变量。

env

  • 功能:显示所有的环境变量。

unset 本地/环境变量

  • 功能:清楚某个本地/环境变量。

set

  • 功能:显示本地变量和环境变量。

2. 命令行参数

  1. 命令行参数:在执行命令或者程序时,传递给它们的额外信息。这些参数可以用来控制程序的行为、指定输入文件、配置选项。

  2. 命令参数通常分为两种类型:一种为位置参数,它是按顺序传递给程序的参数,如:cat file1 file2,file1、file2为位置参数;另一种为选项参数,它用于控制程序的行为,如:ls -l -a,-l、-a为选项参数。

2.1. int argc、char* argv[]

int main(int argc,char* argv[])

  1. int argc:整数类型的参数,表示命令行参数的数量(包括程序名本身)。

  2. char* argv:字符指针数组,用于存储命令行参数。argv[0]是程序的名称。

  3. 通过命令行启动一个程序时,程序的本身名称被视为第一个命令行参数(argv[0]),是命令行参数的一部分;程序的选项和位置参数也是命令行参数的一部分(argv[1]. . .)。

问:为什么指令可以根据不同的选项执行不同的功能?

答:选项作为命令行参数传递给指令(程序)的main函数中的argc、argv参数,来完成让同一个指令根据不同的选项执行不同的功能。即:通过不同的选项,让同一个可执行程序来执行它内部不同的功能。

N%LKVQ~MZQUZE8ZFB%(B2CJ.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/989260
推荐阅读
相关标签