您的位置:首页 > 财经 > 产业 > 天天seo百度点击器_秀米h5制作教程_西安优化外_兰州seo公司

天天seo百度点击器_秀米h5制作教程_西安优化外_兰州seo公司

2025/4/22 1:36:20 来源:https://blog.csdn.net/2203_76003626/article/details/144025462  浏览:    关键词:天天seo百度点击器_秀米h5制作教程_西安优化外_兰州seo公司
天天seo百度点击器_秀米h5制作教程_西安优化外_兰州seo公司

环境变量

  • 1.命令行参数
  • 2.环境变量:PATH
  • 3.其它环境变量
  • 4.获得环境变量的方法
    • 1.命令操作
    • 2.代码操作
  • 5.理解环境变量的特性
  • 6.本地变量
    • 1.内建命令
    • 2.Shell脚本

1.命令行参数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  1. 往命令行输入的字符串,被 bash 进程以空格分割成各种命令行参数。bash 进程创建一张命令行参数表(argv),用来支持选项功能 。
  2. main 函数的参数 argv(命令行参数表),是程序实现不同子功能的方法。
  3. 输入的指令同样支持选项功能(指令,大部分都是C写的)

2.环境变量:PATH

  1. 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数。
  2. 我们在编写C/C++代码在链接的时候,不知道我们链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
  3. 环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。

在这里插入图片描述

  1. 要执行一个程序时,系统必须要先找到该程序。我们写的程序需要带上当前路径:./
  2. 执行系统命令不需要带上./是因为系统中存在环境变量,帮助系统找到目标二进制文件(可执行程序)
  3. 不推荐将二进制文件拷贝到 usr/bin 路径下。

问题:执行系统命令时,系统为什么会在 usr/bin 路径下查找?
答案:存在环境变量:PATH。环境变量 PATH 中的内容含有多个路径,系统会在这些路径中搜索指令。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用户登入时,系统创建 bash 进程,bash 会读取系统配置文件(.bashrc 和 .bash_profile)中的关于环境变量的内容,在 bash 进程内部构成一张环境变量表(指针数组,指向字符串),同时 bash 还可以接收用户的指令,创建命令行参数表。bash 有两张表(命令行参数表,环境变量表)

在这里插入图片描述

总结:

  1. 如果 Linux 系统有10个用户登入时:系统会创建10个bash进程,每一个 bash 进程,都存在命令行参数表和环境变量表。
  2. 用户登入时,系统创建 bash 进程,bash 进程读取系统配置文件,在 bash 进程内部创建环境变量表。当在命令行输入命令(例如:ls -a -l),先做命令行解析获得命令行参数表,在表中获取可执行文件的程序名,再取指定的环境变量 PATH 中查找,找到就运行,没找到就报错。
  3. 指令的查找操作是由 bash 进程亲自查找的。

3.其它环境变量

查看环境变量方法:echo $环境变量名

环境变量名:

  1. HOME:用户家目录(cd ~ 能被执行的原因:进程 bash 解析命令行,创建命令行参数表,其中的 ~ 去匹配环境变量表中的 HOME)
  2. SHELL:当前Shell的版本,通常是/bin/bash。
  3. USER:当前用户。
  4. LOGNAME:登入用户。
  5. HISTSIZE:能保存历史命令的总条数。
  6. HOSTNAME:主机名。
  7. SSH_TTY:终端设备号。
  8. PWD:当前工作路径。
  9. OLDPWD:上一次的工作路径(cd - 能被执行的原因:进程 bash 解析命令行,创建命令行参数表,其中的 - 去匹配环境变量表中的 OLDPWD)
  1. 环境变量被 bash 直接使用,间接被用户使用。
  2. su:提权,USER和LOGNAME没有被修改。
  3. su -:切换为 root 用户,USER和LOGNAME被修改。

4.获得环境变量的方法

1.命令操作

  1. env:查看所有的环境变量。
  2. echo $环境变量名:打印环境变量名所对应的内容。
  3. export 环境变量名=环境变量内容:导入环境变量,可以使用 env 命令查看。
  4. unset 环境变量名:删除环境变量。
  5. set 变量名:显示本地定义的 shell 变量/环境变量。

2.代码操作

  1. main 函数参数char* env[],获取环境变量。

在这里插入图片描述
main 函数其实不是程序的入口,main 函数被 _start 函数调用,内部记录了 main 函数参数的个数 arg_count,通过 arg_count 调用不同参数数量的 main 函数。

  1. char* getenv(const char* name):根据环境变量名,返回环境变量的内容。

在这里插入图片描述
1. 环境变量被子进程所继承,可以通过环境变量做个性化操作。
2. 环境变量对子进程来说是共享的,但倘若子进程修改环境变量会发生写时拷贝。

例如:写一个程序,只有我能执行,即便是 root 用户都无法执行。

在这里插入图片描述

  1. 全局变量:extern char** environ(二级指针,指向环境变量表)获取环境变量。

在这里插入图片描述

在这里插入图片描述
environ 没有包含在任何头文件中,所以在使用时要用 extern 声明。

5.理解环境变量的特性

  1. 环境变量的全局特性,可以被子孙进程继承。

在这里插入图片描述

6.本地变量

  1. set:查看环境变量和本地变量。
  2. unset 本地变量:删除本地变量。

在这里插入图片描述
bash 设置本地变量的原因:

  1. Shell 是一种脚本语言,需要本地变量支持。
bash i=0; while [ $i -le 10 ]; do echo $i; let i++; done

注意:本地变量不会被子进程所继承,只能在 bash 进程内部使用。

  1. 一些本地变量具有特殊用途。

PS1='[\u@\h \W]\$ ':打印命令行。

在这里插入图片描述 PS2='> ':续行。

在这里插入图片描述

1.内建命令

export 本地变量:将本地变量变为环境变量。

在这里插入图片描述

2.Shell脚本

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com