当前位置:首页>Linux>4张图搞懂Linux环境变量

4张图搞懂Linux环境变量

  • 2026-07-02 16:38:43
4张图搞懂Linux环境变量

大家好,我是图书《图解Linux网络编程》的作者,本文我们来深入探讨 Linux 环境变量。

1.什么是环境变量?

    环境变量是每个进程独享、可继承的一组 key=value 字符串,用于给进程传递运行配置、路径、语言、用户信息等全局参数。

  • 作用域:进程级,子进程默认继承父进程全部环境变量。

  • 存储形式:字符串 NAME=VALUE。

  • 生命周期:随进程创建而生、进程销毁而消失。

    环境变量存储在进程虚拟地址空间的栈,以字符串数组(环境变量表)存放。环境变量作用如下:

  • 命令检索:通过 PATH 指定目录,让系统无需完整路径即可查找并执行命令。

  • 程序配置:无需修改代码,通过键值参数向程序传递运行参数与业务配置。

  • 环境记录:保存用户身份、工作目录、家目录等系统与用户基础信息。

  • 进程继承:父进程的环境变量可自动传递给子进程。

  • 行为控制:控制系统语言编码、动态库路径、终端样式等系统运行特性。

2.从内核看环境变量

    Linux系统中,每个进程都有一个环境变量表,默认情况下环境变量表存储在进程虚拟地址空间的栈。task_struct 结构的 mm 字段(struct mm_struct类型)表示进程的虚拟地址空间,mm_struct 的 arg_start、arg_end、env_start、env_end 字段用于标记进程虚拟地址空间中命令行参数和环境变量的边界位置,定义如下:

structmm_struct {pgd_t *pgd; /* 指向进程的页全局目录 */structmaple_treemm_mt;/* 红枫树,Linux 6.1+ 正式取代 mm_rb(红黑树)+ mmap(链表) */unsignedlong start_code, end_code; /* 代码段的起始和结束地址 */unsignedlong start_data, end_data; /* 数据段的起始和结束地址,end_data 为 BSS 段起始地址 */unsignedlong start_brk, brk; /* 堆的起始地址和当前结束地址,start_brk 为 BSS 段结束地址 */unsignedlong start_stack; /* 用户栈的起始地址 */unsignedlong mmap_base; /* 内存映射区的起始地址 */unsignedlong arg_start, arg_end; /* 命令行参数的起始和结束地址 */unsignedlong env_start, env_end; /* 环境变量的起始和结束地址 */    ......};
进程虚拟地址空间的内存布局如图1所示。

图1    进程虚拟地址空间内存布局

虚拟地址空间是进程可使用的虚拟内存地址范围,每个进程拥有独立且私有的虚拟地址空间,与其他进程完全隔离。虚拟地址需通过页表转换为物理地址,才能去访问物理内存,转换过程由内存管理单元(MMU)自动完成。

  • 32位地址空间:用户空间:0x00000000 ~ 0xC0000000(3GB),内核空间:0xC0000000 ~ 0xFFFFFFFF(1GB),所有进程共享同一份内核空间。

  • 64位地址空间:用户空间:0x0000000000000000 ~ 0x00007FFFFFFFFFFF(128TB),内核空间:0xFFFF800000000000 ~ 0xFFFFFFFFFFFFFFFF(128TB)。

    用户空间通常被划分为:

  • 代码段: 存放编译后的机器指令,通常是只读的。

  • 数据段: 存放已初始化的全局变量和静态变量。

  • BSS段: 存放未初始化或初始化为零的全局变量和静态变量。

  • 堆: 用于程序运行时动态申请内存(如C语言的malloc),向高地址增长。

  • 内存映射区: 用于加载动态库或通过mmap系统调用映射文件。

  • 栈 : 用于函数调用,保存局部变量、函数参数和返回地址,向低地址增长。

    进程初始化时,环境变量表和命令行参数表都存储在栈,arg_start、arg_end、env_start、env_end 字段记录二者的起始和结束位置。

    父进程通过 fork 创建子进程时,会将其虚拟地址空间复制至子进程,子进程会继承父进程的环境变量表。子进程调用 execve 函数执行新程序后,子进程虚拟地址空间中的代码和数据会被销毁,子进程需要重新构建虚拟地址空间,具体情况如图2所示。

图2    环境变量表初始化

 execve 函数需要传入三个参数:新程序路径、命令行参数表、环境变量表。内核通过新程序路径找到可执行程序,再将可执行程序的代码段、数据段、BSS段信息加载至进程虚拟地址空间,内核同时也会初始化进程的堆、栈,并将execve 传入的命令行参数表和环境变量表设置至栈,子进程就有了新的环境变量表。

3.main 函数 

    子进程加载完新程序,会执行新程序的 main 函数,main 函数有如下几种形式:

intmain(void);intmain(int argc, char *argv[]);intmain(int argc, char *argv[], char *envp[]);

 参数说明:

  • argc:命令行参数个数。

  • argv:参数字符串数组。

  • envp:环境变量数组,以 NULL 结尾。

    完整版的 main 函数有三个参数,第三个参数 envp 指向栈区的环境变量表(如图2所示),通过 envp 能够访问环境变量表。

4.Shell 环境变量

谈到环境变量,我们自然会想到 Shell 环境变量,我们在使用 Linux 系统时,经常会用到 Shell 环境变量,那么 Shell 环境变量和进程环境变量有什么关系呢?

    Shell 环境变量是 Shell 全局共享的配置参数,当前 Shell 及其所有子进程都能读取。用来存储:路径、用户信息、语言、命令查找规则、系统配置等。Shell 维护了一个变量表(全局哈希表),用于存储:普通变量和环境变量。

  • 普通变量(局部):仅当前 Shell 生效,例如:a=123。

  • 环境变量(全局):被 export 导出的变量,当前 Shell 及其所有子进程都能读取,例如:export a=123,子进程只能继承环境变量。

    父进程的环境变量可以传递给子进程,但子进程的环境变量绝对无法反向传递给父进程。进程继承的是父进程环境变量的完整副本,而不是共享同一块内存,子进程对环境变量的任何修改都只会影响它自己及其后续的子进程,绝对不会影响父进程。

    Shell 常用环境变量如下:

  • PATH:命令搜索路径,决定系统去哪些目录查找可执行文件。

  • HOME:当前用户的主目录路径。

  • USER:当前登录用户的用户名。

  • SHELL:当前使用的 Shell 解释器路径,如 /bin/bash。

  • LANG:系统默认语言和区域设置。

  • PWD:当前工作目录的完整路径。

  • OLDPWD:上一次所在的工作目录路径。

  • PS1:主命令提示符样式,定义终端显示的输入前缀格式。

  • MAIL:当前用户的邮件存放路径,用于邮件通知检查。

  • HOSTNAME:当前机器的主机名。

  • TERM:当前终端类型。

    Shell 环境变量和进程环境变量的关系如图3所示。

图3    Shell 环境变量
我们不要把 Shell 想的过于神秘,Shell 其实也是一个普通程序。Shell 程序内部维护了一个变量表(哈希表),哈希表的内容存储在进程虚拟地址空间的数据段或堆。当前 Shell 调用 fork 函数创建子 Shell 时,子 Shell 会继承当前 Shell 的虚拟地址空间,所以子 Shell 会继承当前 Shell 的变量表(子 Shell 拥有和父 Shell 一样的普通变量和环境变量
    当子 Shell 调用 execve 函数执行新程序时,子 Shell 的虚拟地址空间中的内容被销毁(包括变量表)。如果子 Shell 执行的是一个普通程序 ,这个过程和普通进程执行新程序是一样的;如果子 Shell 执行的是一个 Shell 程序(如/bin/bash),那么子 Shell 需要初始化环境变量表,子 Shell 会将变量表中的环境变量(从当前 Shell 继承而来)传入 execve 函数,execve 函数会将环境变量表设置至栈,新的 Shell 程序执行 main 函数时,会依据栈中的环境变量表重新构建 Shell 内部的变量表,这样新的 Shell 和当前 Shell 也会有相同的环境变量表。
5.设置和获取环境变量

    Linux 提供了获取和设置环境变量的方法,定义如下:

#include<stdlib.h>// 读取环境变量,成功:返回指向变量值字符串的指针,失败:返回 NULL。char *getenv(constchar *name);// 设置/新增环境变量,成功:返回 0,返回 -1。intsetenv(constchar *name, constchar *value, int overwrite);// 删除环境变量,成功:返回 0,返回 -1。intunsetenv(constchar *name);

参数说明:

  • name:环境变量名字符串,如 "PATH"、"HOME"。

  • value:变量值字符串。

  • overwrite:覆盖标志,如下:

    • 0:若变量已存在,不修改。

    • 非0:若变量已存在,强制覆盖。

    示例代码如下:

setenv("AAA""123456"1);char *path = getenv("PATH");printf("PATH = %s\n\n", path);unsetenv("AAA");
图4    获取和设置环境变量
如图4所示,Linux 系统为每个用户程序定义了一个全局变量 environ(二级字符串指针,实时指向环境变量表),用户程序需要通过 environ 定位到环境变量表,再通过环境变量名(name)找到对应的环境变量,才能获取和修改环境变量。
    当用户程序想要新增一个环境变量时,这种情况的处理就会比较复杂。默认情况下,环境变量表是存储在栈,栈的内存布局已经固化,在栈区增加一个环境变量,会打乱其它数据。新增一个环境变量时,Linux系统会在堆区申请一块新的内存区域作为新的环境变量表,首先将旧的环境变量表复制至新的环境变量表,再将新环境变量插入新的环境变量表,最后将 environ 指向新的环境变量表。

6.Shell 环境变量相关命令

常用Shell 环境变量命令如下:

  • 查看单个变量值

echo $var

  • 查看所有环境变量

env

  • 查看所有变量:环境变量 + 局部变量 + 函数

set

  • 定义并导出为环境变量

export KEY="value"

  • 查看所有已导出的环境变量

export

  • 删除普通变量/环境变量

unset var_name

最后:

我的新书《图解Linux网络编程》发布了,我对Linux网络编程的应用开发技术以及内核源码进行了深入的研究,并以图解方式创作了《图解Linux网络编程》这本书,如果你想系统性地学习Linux网络编程,从底层原理到上层应用彻底通关Linux网络编程,欢迎入手我的新书

    另外我在B站发布的【硬核Linux】视频专栏已经更新到第21个视频了,感兴趣的小伙伴请B站搜用户:物联网心球,找到投稿->充电专属

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 12:01:11 HTTP/2.0 GET : https://f.mffb.com.cn/a/495622.html
  2. 运行时间 : 0.109871s [ 吞吐率:9.10req/s ] 内存消耗:4,783.23kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c088fbe5812a4c5aacd24292a2e74b13
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000567s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000828s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000343s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000286s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000536s ]
  6. SELECT * FROM `set` [ RunTime:0.000221s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000534s ]
  8. SELECT * FROM `article` WHERE `id` = 495622 LIMIT 1 [ RunTime:0.006143s ]
  9. UPDATE `article` SET `lasttime` = 1783051271 WHERE `id` = 495622 [ RunTime:0.005922s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000255s ]
  11. SELECT * FROM `article` WHERE `id` < 495622 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000506s ]
  12. SELECT * FROM `article` WHERE `id` > 495622 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000592s ]
  13. SELECT * FROM `article` WHERE `id` < 495622 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001267s ]
  14. SELECT * FROM `article` WHERE `id` < 495622 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.012833s ]
  15. SELECT * FROM `article` WHERE `id` < 495622 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004339s ]
0.111449s