96SEO 2026-02-19 22:46 16
在前面我们学习了进程与命令行参数了解到了指令的本质就是可执行程序选项就是通过main函数参数argv来获取并处理的。

但是系统的一些mkdir/ls/rm/pwd等指令是不需要添加
的目的是从当前文件夹中去寻找程序。
设置了环境变量后系统就知道了程序的路径会去你设置的路径里面寻找如果存在就开始运行了。
variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数
如我们在编写C/C代码的时候在链接的时候从来不知道我们的所链接的动态静态库在哪里但
是照样可以链接成功生成可执行程序原因就是有相关环境变量帮助编译器进行查找
等指令可以不带路径直接执行系统一定是有自己的默认搜索路径去找到这些可执行程序。
环境变量会记录这些搜索路径方便系统查找包含搜索路径的环境变量我们称作
这是用来分割路径的有4个“:”证明有五个路径。
linux的指令都在这些路径下因此就可以直接运行。
我们自己写的代码如果想不指定路径也需要将他放到PATH路径下才可以直接运行。
如下这段代码。
我们想要执行需要再可执行程序前面加上指定路径。
否则系统找不到会执行失败
这样就可以直接运行了但是又会让我们之前的环境变量消失因此最好使用如下代码
PATH$PATH:/home/kky/centos_test/109/240207_envir
我们也可以将可执行程序拷贝到已经存在PATH路径下这个过程叫做程序安装这也是可以的。
需要注意更改环境变量只限于本次登录重新登录环境变量会自动恢复。
在我们登录linux的时候可以看到进入时默认都是root身份root身份的家为/home/用户id
这里面有很多信息比如HOSTNAME主机名字SHELL外壳HISISIZE历史命令条数USER使用者等等
系统会存在大量的环境变量每一个环境变量都有他自己的特殊用途用来完成特定的系统功能。
我们也可以使用C语言的getenv参数来获取环境变量如下就是一种例子判断必须是root用户才可以继续执行否则就报错非法用户并退出。
env[]其实这第三个参数本质就是环境变量他将环境变量当做字符串放入这里。
我们可以看到打印出的内容就是输入env指令看到的那些内容main函数是如何获取到系统的环境变量的呢
命令行启动的进程都是shell/bash的子进程这是我们之前将进程和进程fork中提到过的子进程的命令行参数和环境变量是父进程bash给我们传递的。
在头文件unistd.h中有一个外置的二级指针environ变量他指向着bash的环境变量表。
在之前我们还更改过环境变量但是你可以发现你更改环境变量后会立即生效但是当你重启bash环境变量又会自动恢复这是因为你修改的是内存中的环境变量而环境变量是写到了磁盘的每一次重新登录都会给我形成新的bash解释器并且新的bash解释器会自动从磁盘中读取形成自己的环境变量表信息。
当我们进入家目录输入ls-al指令可以看到由一个文件叫做.bash_profile这是bash配置文件bash在启动的时候会自动读取该文件里面的内容并执行。
打开该文件里的内容可以看到PATH路径同时在前面他还会执行~/.bashrc
我们再打开~/.bashrc这也是在上面图片中的文件。
同时他也包含了另一个文件就这样一直读取这些文件里面的内容bash就可以将环境变量给配置好。
现在我们应该理解了每一次登录bash都会读取.bash_profile配置文件中的内容为bash形成一张环境变量表信息。
只要我们没有改过该配置文件在命令行中修改一些环境变量重启后都会恢复原样。
在命令行中我们可以直接定义变量如下就定义了一个MYENV_TEST变量内容为hellolinux。
但此时环境变量里是没有该变量的我们需要通过export进行导入。
我们重新启动shell后我们之前设置的环境变量依然不存在要想使他重启后仍然存在需要将该命令写到对应的文件去shell启动会自动读取文件里的内容进行配置。
依然是.bash_profile文件里添加如下红线代码这样重启后就存在该环境变量了。
在之前我们通过指令env获取了环境变量我们还通过代码利用进程的方式获取到了环境变量我们知道该进程的父进程是bash因此该进程可以继承bash的环境变量表并打印出来那么该进程fork的子进程呢是否也能打印出来环境变量。
这个结果证明系统环境变量具有全局属性。
进程都可以继承系统环境变量。
bash中也可以赋值在命令行中随意输入变量名赋值给某个值或者变量这些变量统称为本地变量。
但本地变量只在bash进程内部有效不会被子进程继承下去而环境变量通过让所有的子进程继承的方式实现环境变量的全局属性。
那么现在问题来了echo不算进程吗我们定义的abc本地变量说好的不会被子进程继承怎么echo可以打印呢
这是因为linux大部分命令是在磁盘中真正存在的需要由bash
export等他们是内建命令他是bash命令行的一个函数当然可以直接读取bash内部定义的本地变量。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback