当前位置:首页>Linux>[TinyLinux-005] 系统定制实战:init 脚本与个性化配置

[TinyLinux-005] 系统定制实战:init 脚本与个性化配置

  • 2026-03-15 14:22:51
[TinyLinux-005] 系统定制实战:init 脚本与个性化配置

[TinyLinux-005] 系统定制实战:init 脚本与个性化配置

系列简介:TinyLinux 是由 LabHub 发起的"大道至简"Linux 学习项目。我们通过对内核进行"剔骨"级的物理精简,旨在构建一个 100% 透明、可重现的极简实验室。

公众号:LabHub | 项目仓库:https://gitee.com/lynyujiang/tiny-linux.git


🛠 技术看板

项目
内容
实验目标
定制系统启动流程和用户环境,打造个性化 Linux 系统
核心知识点
init 脚本 / inittab / mdev 设备管理 / shell 环境配置
涉及目录
overlay/
难度等级
🌟🌟 (入门进阶)
核心文件
overlay/etc/init.d/rcS
overlay/etc/profile
启动时间
约 1.4 秒

1. 知识点详注 (Technical Glossary)

  • init 进程:Linux 系统启动后运行的第一个进程(PID=1),负责初始化系统、挂载文件系统、启动后续服务。TinyLinux 使用 BusyBox 的 init 作为主 init 进程。
  • inittab:BusyBox init 的配置文件,定义系统运行级别和初始化脚本。格式为 id:runlevel:action:process
  • rcS 脚本:系统启动时执行的第一个用户脚本,通常位于 /etc/init.d/rcS,负责基础系统初始化。
  • mdev:BusyBox 提供的轻量级设备管理器,是 udev 的简化版本。通过 /etc/mdev.conf 配置文件管理设备节点的创建和移除。
  • overlay 目录:TinyLinux 用于存放自定义配置文件的目录,在构建根文件系统时会自动合并到 rootfs_staging 中。

2. 理论背景 (Deep Theory)

2.1 Linux 启动流程回顾

BIOS/UEFI
    ↓
Bootloader (GRUB/QEMU 直接启动)
    ↓
Kernel (bzImage)
    ↓
initramfs (rootfs.cpio.xz)
    ↓
init 进程 (PID=1)
    ↓
/etc/inittab
    ↓
/etc/init.d/rcS
    ↓
Shell (/bin/sh)

2.2 BusyBox init 的工作原理

BusyBox 的 init 进程遵循以下流程:

  1. **读取 /etc/inittab**:如果存在,按配置执行
  2. 执行系统初始化:运行 sysinit 指定的脚本
  3. 启动登录 shell:根据配置启动 shell 或 getty
  4. 处理 ctrlaltdel:捕获 Ctrl+Alt+Del 组合键
  5. 管理运行级别:支持多运行级别切换

2.3 TinyLinux 的 init 策略

由于 TinyLinux 追求极简,我们采用简化的 init 策略:

特性
配置
说明
inittab
使用默认行为
初始化脚本
/etc/init.d/rcS
手动挂载文件系统
登录方式
直接 shell
无需密码登录
运行级别
单用户模式
无多用户切换

这种设计使得系统能够在 1.4 秒内完成启动并进入 Shell。


3. 源码与脚本深度走读 (Source Code Dive)

3.1 overlay 目录结构

overlay/
├── etc/
│   ├── init.d/
│   │   └── rcS           # 系统启动脚本
│   ├── mdev.conf         # 设备管理配置
│   ├── profile           # Shell 环境配置
│   ├── issue             # 登录欢迎信息
│   └── version           # 系统版本信息
└── lib/
    └── mdev/
        └── usb_handler   # USB 热插拔处理脚本(可选)

3.2 核心 init 脚本:rcS

#!/bin/sh
# TinyLinux Minimal Init

# 1. 基础挂载
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t devtmpfs devtmpfs /dev 2>/dev/null || true

# 2. 设置主机名
# hostname TinyLinux

# 3. 打印精简欢迎语
cat /etc/issue 2>/dev/null

脚本解析

行号
命令
作用
5
mount -t proc proc /proc
挂载 proc 文件系统,提供进程信息
6
mount -t sysfs sysfs /sys
挂载 sysfs 文件系统,提供设备信息
7
mount -t devtmpfs devtmpfs /dev
挂载 devtmpfs,自动创建设备节点
10
# hostname TinyLinux
注释掉的主机名设置(可选)
13
cat /etc/issue
显示欢迎信息

3.3 Shell 环境配置:profile

# /etc/profile: Minimal shell setup
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PS1='TinyLinux# '

# 常用别名
alias ll='ls -l'
alias df='df -h'
alias free='free -h'

# 自动打印版本(如果存在)
[ -f /etc/version ] && cat /etc/version

配置解析

配置项
说明
PATH/bin:/sbin:/usr/bin:/usr/sbin
命令搜索路径
PS1TinyLinux# 
Shell 提示符
alias llls -l
长列表别名
alias dfdf -h
人类可读磁盘使用量
alias freefree -h
人类可读内存使用量

3.4 设备管理配置:mdev.conf

# /etc/mdev.conf
# 格式:devicename_regex user:group mode [action]

# 核心设备
null        0:0 666
zero        0:0 666
console     0:5 600
tty         0:5 666

# 串口设备(QEMU 调试关键)
ttyS[0-9]*  0:20 660

# 磁盘设备
sd[a-z][0-9]* 0:6 660
vd[a-z][0-9]* 0:6 660

# 输入设备
event[0-9]* 0:0 660 =input/

# 热插拔支持
sd[a-z][0-9]* 0:0 660 */lib/mdev/usb_handler

3.5 构建脚本中的 overlay 合并

# scripts/build_rootfs.sh 片段

# Merge overlay custom files
if [ -d "${TINYLINUX_CUSTOM_DIR}" ]; then
    echo_info "Overlaying custom files from ${TINYLINUX_CUSTOM_DIR}..."
    sudo cp -rf "${TINYLINUX_CUSTOM_DIR}/""${STAGING_DIR}/"
fi

4. 配置详解 (Config & Engineering)

4.1 添加自定义欢迎信息

创建 overlay/etc/issue

  ____        _    __  __          _
 / ___| _   _| |__|  \/  | ___  __| |_ __
 \___ \| | | | '_ \ |\/| |/ _ \/ _` | '__|
  ___) | |_| | |_) | |  | |  __/ (_| | |
 |____/ \__,_|_.__/|_|  |_|\___|\__,_|_|

TinyLinux 6.12.51 - Built on $(date +%Y-%m-%d)

4.2 添加系统版本信息

创建 overlay/etc/version

TinyLinux v0.1.0
Kernel: 6.12.51
BusyBox: 1.36.1
Build: 2026-03-08

4.3 增强 rcS 脚本

#!/bin/sh
# TinyLinux Enhanced Init

echo"Starting TinyLinux..."

# 1. 基础挂载
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t devtmpfs devtmpfs /dev 2>/dev/null || true

# 2. 启动 mdev 设备管理器
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

# 3. 设置主机名
hostname TinyLinux

# 4. 挂载临时目录
mount -t tmpfs tmpfs /tmp
mount -t tmpfs tmpfs /var

# 5. 打印欢迎信息
cat /etc/issue

# 6. 显示系统信息
echo"CPU: $(cat /proc/cpuinfo | grep 'model name' | head -1 | cut -d: -f2)"
echo"Memory: $(free -m | awk 'NR==2{print $2}MB total, "$3"MB used)"

4.4 添加网络初始化(可选)

创建 overlay/etc/init.d/network

#!/bin/sh
# Network initialization

# 配置 loopback 接口
ip link set lo up
ip addr add 127.0.0.1/8 dev lo

# 如果使用 QEMU 用户模式网络
# ip link set eth0 up
# udhcpc -i eth0

4.5 自定义 Shell 提示符

提示符风格
PS1 设置
效果
极简风格
PS1='# '
标准风格
PS1='\u@\h:\w$ 'root@TinyLinux:~# 
项目风格
PS1='TinyLinux# 'TinyLinux# 
时间风格
PS1='[\t] # '[12:34:56] # 

5. 工程实验步骤 (Lab Steps)

5.1 添加欢迎信息

cd /home/devhub/xlabs/tiny-linux

# 创建 issue 文件
cat > overlay/etc/issue << 'EOF'
  ____        _    __  __          _
 / ___| _   _| |__|  \/  | ___  __| |_ __
 \___ \| | | | '_ \ |\/| |/ _ \/ _` | '__|
  ___) | |_| | |_) | |  | |  __/ (_| | |
 |____/ \__,_|_.__/|_|  |_|\___|\__,_|_|

TinyLinux 6.12.51

EOF

5.2 添加版本信息

cat > overlay/etc/version << 'EOF'
TinyLinux v0.1.0
Kernel: 6.12.51
BusyBox: 1.36.1
Build: 2026-03-08
EOF

5.3 增强 rcS 脚本

cat > overlay/etc/init.d/rcS << 'EOF'
#!/bin/sh
# TinyLinux Enhanced Init

echo"Starting TinyLinux..."

# 1. 基础挂载
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t devtmpfs devtmpfs /dev 2>/dev/null || true

# 2. 启动 mdev 设备管理器
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

# 3. 设置主机名
hostname TinyLinux

# 4. 挂载临时目录
mount -t tmpfs tmpfs /tmp
mount -t tmpfs tmpfs /var

# 5. 打印欢迎信息
cat /etc/issue

# 6. 显示系统信息
echo"CPU: $(cat /proc/cpuinfo | grep 'model name' | head -1 | cut -d: -f2)"
echo"Memory: $(free -m | awk 'NR==2{print $2"MB total, "$3"MB used"}')"
EOF

chmod +x overlay/etc/init.d/rcS

5.4 重新构建系统

source env.sh
./scripts/make_all.sh

5.5 测试启动

./scripts/run_qemu.sh

5.2 观察点 (Observation Points)

启动后应该看到:

Starting TinyLinux...
  ____        _    __  __          _
 / ___| _   _| |__|  \/  | ___  __| |_ __
 \___ \| | | | '_ \ |\/| |/ _ \/ _` | '__|
  ___) | |_| | |_) | |  | |  __/ (_| | |
 |____/ \__,_|_.__/|_|  |_|\___|\__,_|_|

TinyLinux 6.12.51

CPU:  AMD QEMU Virtual CPU version 2.5+
Memory: 498MB total, 24MB used

TinyLinux#

5.3 避坑指南

现象
原因
解决方案
欢迎信息不显示
/etc/issue
 不存在
检查 overlay 目录结构
rcS 脚本报错
语法错误
使用 sh -n rcS 检查语法
设备节点缺失
mdev 未启动
检查 mdev -s 命令
提示符未改变
profile 未加载
检查 /etc/profile 路径
挂载失败
内核不支持
检查内核配置 CONFIG_*_FS

6. 验证与重现

6.1 系统验证命令

# 1. 查看主机名
hostname
# 输出:TinyLinux

# 2. 查看挂载点
mount
# 输出:proc, sysfs, devtmpfs, tmpfs

# 3. 查看设备节点
ls -l /dev/
# 输出:ttyS0, null, zero, sd* 等

# 4. 查看 Shell 提示符
echo$PS1
# 输出:TinyLinux#

# 5. 查看版本信息
cat /etc/version
# 输出:TinyLinux v0.1.0 ...

6.2 测试 profile 配置

# 测试别名
ll /bin/
df -h
free -h

# 测试 PATH
echo$PATH
# 输出:/bin:/sbin:/usr/bin:/usr/sbin

6.3 对应提交

项目
信息
对应提交
9e35606c4
 (refactor: separate configuration from build scripts)
检出命令
git checkout 9e35606c4
重现步骤
source env.sh && ./scripts/make_all.sh
预期输出
TinyLinux#
 提示符和欢迎信息

⚠️ 注意:Git 提交信息请执行 git log --oneline -5 获取最新提交。


7. 总结与延伸

7.1 本章收获

通过本章,我们掌握了系统定制的核心技能:

  • ✅ 理解了 init 进程和 rcS 脚本的工作原理
  • ✅ 学会了使用 overlay 目录定制系统配置
  • ✅ 掌握了 mdev 设备管理器的配置方法
  • ✅ 能够独立定制 Shell 环境和提示符

7.2 思考题

  1. 如何添加开机自动运行服务(如 SSH、Web 服务器)?
  2. 如何实现多用户登录和密码认证?
  3. 如何使用 inittab 配置多个运行级别?
  4. 如何实现系统关机/重启命令?

7.3 下一章预告

在 [TinyLinux-006] 中,我们将探索网络功能配置,让 TinyLinux 能够连接外部网络。敬请期待!


🌟 互动与支持

如果你觉得这个项目对理解 Linux 底层有帮助,请不要吝啬你的支持:

  • 点赞 & 在看:点击右下角,让更多极客看到这个"活的代码教科书"。
  • 关注 LabHub:第一时间获取 TinyLinux 的最新"手术"报告。
  • Star 项目:点击 Gitee 仓库地址 给我们一个五星好评!

本文由 LabHub 团队原创,转载请注明出处。


项目地址:https://gitee.com/lynyujiang/tiny-linux.git

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 17:25:01 HTTP/2.0 GET : https://f.mffb.com.cn/a/479833.html
  2. 运行时间 : 0.256840s [ 吞吐率:3.89req/s ] 内存消耗:4,441.25kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=31a19207adfa2b7e1e36267e55d16701
  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.001439s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001870s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001124s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.008283s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001474s ]
  6. SELECT * FROM `set` [ RunTime:0.000606s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001528s ]
  8. SELECT * FROM `article` WHERE `id` = 479833 LIMIT 1 [ RunTime:0.006060s ]
  9. UPDATE `article` SET `lasttime` = 1774603501 WHERE `id` = 479833 [ RunTime:0.024026s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000971s ]
  11. SELECT * FROM `article` WHERE `id` < 479833 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001238s ]
  12. SELECT * FROM `article` WHERE `id` > 479833 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001209s ]
  13. SELECT * FROM `article` WHERE `id` < 479833 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002133s ]
  14. SELECT * FROM `article` WHERE `id` < 479833 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003700s ]
  15. SELECT * FROM `article` WHERE `id` < 479833 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002343s ]
0.261531s