当前位置:首页>Linux>告别迷路:快速上手 Linux 目录结构

告别迷路:快速上手 Linux 目录结构

  • 2026-07-03 01:31:45
告别迷路:快速上手 Linux 目录结构

告别迷路:快速上手 Linux 目录结构

刚接触 Linux 的运维工程师,十个有九个被目录结构折磨过。/etc/sysconfig/network-scripts//var/log/nginx//usr/lib/systemd/system/ 这些路径是什么意思?为什么配置文件在 /etc 而不是 /conf/proc 里的数字都是什么?磁盘已经填满了,/var/log 里的日志能不能删?这篇文章从运维工程师的实际工作出发,系统讲解 Linux 目录结构,让你告别迷路,能够快速定位文件、理解配置、排查故障。

1. 为什么理解 Linux 目录结构很重要

很多初中级工程师对 Linux 目录结构的认知是碎片化的:知道 /etc 是放配置的,知道 /var/log 是放日志的,但不知道为什么是这样划分的,也不知道某些特定文件应该在哪个目录下。这会导致几个具体问题:

  • 磁盘快满了,不知道去哪找大文件;
  • 想修改某个服务的配置,记不清配置文件在哪个目录;
  • 想重启某个服务,找不到对应的 systemd unit 文件;
  • 想查看内核参数,不知道去哪改;
  • 想清理日志,不知道哪些能删哪些不能删。

理解目录结构的来历和逻辑,能让你在面对未知问题时推导答案,而不是死记硬背。

2. FHS 标准:目录结构的组织逻辑

Linux 的目录结构不是随意设计的,有一个国际标准叫 FHS(Filesystem Hierarchy Standard),定义了每个目录的用途。目前使用的 FHS 3.0 发布于 2015 年。所有主流 Linux 发行版(CentOS、Ubuntu、Debian)基本都遵循这个标准,所以掌握了这个标准,在任何发行版上都能快速找到目标文件。

FHS 的核心设计思想是把文件按"是否可变"和"是否属于特定系统/应用"两个维度分类:

  • 静态内容 vs 动态内容:静态内容(配置文件、命令、库)安装后基本不变;动态内容(日志、数据、缓存)会随着使用不断增长。
  • 系统级 vs 用户级:系统级文件所有用户共享;用户级文件属于特定用户。
  • 可共享 vs 不可共享/usr 下的内容可以共享给其他系统;/etc 是本机专属的。

按这两个维度,得到了常见的目录结构:

/           根目录,目录树的起点
├── bin     基础系统命令(所有用户可用)
├── sbin    系统管理命令(通常需要 root)
├── boot    启动所需文件
├── dev     设备文件
├── etc     系统配置文件
├── home    普通用户家目录
├── lib, lib64  系统库
├── media   可移动介质挂载点
├── mnt     临时挂载点
├── opt     第三方可选软件
├── proc    内核和进程信息(伪文件系统)
├── root    root 用户家目录
├── srv     服务数据目录
├── sys     系统设备和内核信息(伪文件系统)
├── tmp     临时文件
└── var     动态数据(日志、数据库、队列等)

3. /bin 和 /sbin:系统命令

3.1 /bin — 基础用户命令

/bin 存放基础系统命令,这些命令在单用户模式下也必须可用,因为系统启动后第一个挂载的分区就是根分区,/bin 在根分区上。

# /bin 下的典型文件
/bin/ls          # 列出目录内容
/bin/cp          # 复制文件
/bin/mv          # 移动/重命名文件
/bin/rm          # 删除文件
/bin/cat         # 连接并显示文件内容
/bin/chmod       # 修改文件权限
/bin/chown       # 修改文件所有者
/bin/date        # 显示/设置系统时间
/bin/echo# 输出文本
/bin/pwd# 显示当前目录
/bin/mkdir       # 创建目录
/bin/grep        # 文本搜索
/bin/find        # 文件查找
/bin/tar         # 归档工具
/bin/gzip        # 压缩工具
/bin/awk         # 文本处理
/bin/sed         # 文本替换
/bin/sort        # 排序
/bin/uniq        # 去重
/bin/cut         # 剪切字段
/bin/wc          # 统计行/词/字符

3.2 /sbin — 系统管理命令

/sbin 存放系统管理命令,通常需要 root 权限才能执行:

/sbin/ifconfig   # 配置网络接口(已被 ip 命令取代)
/sbin/route      # 路由表管理
/sbin/iptables    # 防火墙规则管理
/sbin/fdisk       # 磁盘分区
/sbin/mkfs        # 创建文件系统
/sbin/fsck        # 文件系统检查
/sbin/mount       # 挂载文件系统
/sbin/umount      # 卸载文件系统
/sbin/modprobe    # 内核模块管理
/sbin/lsmod       # 查看已加载内核模块
/sbin/insmod      # 插入内核模块
/sbin/rmmod       # 移除内核模块
/sbin/sysctl      # 调整内核参数
/sbin/halt        # 关机
/sbin/reboot      # 重启
/sbin/shutdown    # 优雅关机
/sbin/init        # 进程管理器(init 1/3/5)
/sbin/runlevel    # 查看当前运行级别

3.3 /usr/bin 和 /usr/sbin

CentOS/RHEL 7+ 中,/bin 和 /sbin 其实是软链接,指向 /usr/bin 和 /usr/sbin

# 在 CentOS 7 上验证
ls -la /bin
# lrwxrwxrwx 1 root root 7 Jun  3  2020 /bin -> usr/bin

ls -la /sbin
# lrwxrwxrwx 1 root root 7 Jun  3  2020 /sbin -> usr/sbin

这是因为早期 /bin 和 /usr/bin 是分开的(/bin 在根分区,/usr 在独立分区),后来统一合并到 /usr 下,但为了兼容性保留了软链接。新版 FHS 建议所有命令统一放在 /usr/bin 和 /usr/sbin

运维中的实际意义:

  • 某些精简版 Docker 镜像可能没有做这个软链接,如果容器里 which ls 找不到命令,检查是否在 /usr/bin 下。
  • 磁盘满了先看 /usr,这个目录通常占用最多空间,因为所有软件包都装在这里。

4. /usr:用户程序

/usr 是 Linux 中最大的目录之一,存放用户安装的应用程序和库。它的设计初衷是"用户相关",但实际上几乎所有用户态程序都在这里。

4.1 /usr 子目录详解

/usr/bin/         # 用户命令(和 /bin 内容基本相同,/bin 是链接)
# 额外存放非基础的系统管理工具
# 如:yum、docker、nginx、mysql 等

/usr/sbin/        # 系统管理命令(和 /sbin 基本相同)
# 如:httpd、named、mysqld 等守护进程

/usr/lib/         # 程序库文件
# 32 位库文件,不同发行版位置不同
/usr/lib64/       # 64 位库文件

/usr/lib/systemd/system/  # systemd unit 文件(服务管理)
# nginx.service、docker.service 等

/usr/local/       # 手动编译安装的软件(重要!)
# 优先级高于 /usr/bin
# /usr/local/bin  # 编译安装的命令
# /usr/local/sbin # 编译安装的管理命令
# /usr/local/lib  # 编译安装的库
# /usr/local/etc  # 编译安装的配置文件

/usr/share/       # 架构无关的共享数据
# /usr/share/doc   # 软件文档
# /usr/share/man   # man 手册
# /usr/share/zoneinfo  # 时区数据

/usr/include/     # C 头文件(编译软件时需要)

/usr/src/         # 内核源码(通常不直接使用)
# /usr/src/kernels/  # 各版本内核头文件

4.2 运维中 /usr 的常见操作

# 查看某个命令属于哪个包(以 nginx 为例)
rpm -qf /usr/sbin/nginx   # CentOS/RHEL
dpkg -S /usr/sbin/nginx   # Ubuntu/Debian

# 查看 /usr 占用空间
du -sh /usr

# 查找哪些软件占用了最多空间
du -sh /usr/* | sort -rh | head -20

# /usr/local 是手动编译软件的首选目录
# 编译安装 nginx 时默认 prefix=/usr/local/nginx
# 实际文件分布在:
# /usr/local/nginx/conf/     配置文件
# /usr/local/nginx/logs/     日志文件(但通常 ln -s 到 /var/log/nginx)
# /usr/local/nginx/html/     网站文件
# /usr/local/nginx/sbin/     管理命令

5. /etc:配置文件

/etc 是 Linux 系统中最重要的目录之一,存放系统级配置文件。这个名字来自早期 Unix 的 "etcetera"(其他),后来被运维工程师调侃为 "Editable Text Configuration"(可编辑的文本配置)。

5.1 /etc 子目录结构

/etc/
├── passwd        # 用户账户信息(UID、GID、shell)
├── shadow        # 用户密码(加密存储,仅 root 可读)
├── group         # 用户组信息
├── gshadow       # 组密码(通常不用)
├── sudoers       # sudo 权限配置(必须用 visudo 编辑)
├── hosts         # 静态主机名解析(DNS 被 DNS 服务器接管前使用)
├── hostname      # 主机名(CentOS/RHEL 7+)
├── resolv.conf   # DNS 解析服务器地址
├── sysconfig/    # CentOS/RHEL 特有的系统配置
│   ├── network           # 网络配置(主机名、网关)
│   ├── network-scripts/  # 网卡配置文件(ifcfg-eth0)
│   ├── iptables*        # 防火墙规则
│   └── selinux/         # SELinux 配置
├── systemd/      # systemd 配置
│   ├── system/    # 系统级 service 文件
│   ├── user/      # 用户级 service 文件
│   └── systemd.conf  # systemd 主配置
├── ssh/          # SSH 服务配置
│   ├── sshd_config   # SSH 服务端配置
│   └── ssh_config    # SSH 客户端配置
├── nginx/        # Nginx 配置(CentOS/RHEL)
│   ├── nginx.conf
│   ├── conf.d/
│   └── default.d/
├── httpd/        # Apache 配置(CentOS/RHEL)
├── php.ini       # PHP 主配置(位置因发行版而异)
├── mysql/        # MySQL 配置
│   └── my.cnf
├── redis/        # Redis 配置
│   └── redis.conf
├── docker/       # Docker 配置
│   └── daemon.json
├── kubernetes/  # K8s 配置
├── apt/          # Ubuntu/Debian 包管理器配置
│   ├── sources.list   # apt 源列表
│   └── sources.list.d/
├── yum/          # CentOS/RHEL yum 配置
│   ├── yum.conf
│   └── repos.d/       # yum 源配置
├── cron.d/       # 系统级 cron 任务
├── crontab       # crontab 主配置
├── logrotate.d/  # 日志切割配置
│   ├── nginx
│   ├── syslog
│   └── mysql
├── rsyslog.conf  # 日志服务配置
├── firewalld/    # firewalld 配置(CentOS/RHEL 7+)
├── iptables/     # iptables 配置(CentOS/RHEL 6)
├── modprobe.d/   # 内核模块加载配置
├── sysctl.conf   # 内核参数配置
├── sysctl.d/    # 内核参数配置片段(优先级高于 sysctl.conf)
├── security/    # PAM 配置目录
│   └── pam_env.conf
├── pam.d/       # PAM 模块配置
│   ├── system-auth   # 系统认证配置
│   ├── password-auth
│   └── sudo
├── login.defs   # 用户账户默认配置(密码策略、UID 范围等)
├── profile.d/   # shell 环境变量脚本(登录时自动执行)
├── bashrc       # bash 配置(每次打开 bash 执行)
├── bash_profile # bash 配置(仅登录 shell 执行)
├── cron.deny    # 禁止使用 cron 的用户
├── hosts.allow  # TCP Wrappers 允许列表
├── hosts.deny   # TCP Wrappers 拒绝列表
└── X11/         # X Window 配置(通常不用)

5.2 常见配置文件用途速查

需求
配置文件
添加系统用户
/etc/passwd
/etc/group
配置网络
/etc/sysconfig/network-scripts/ifcfg-eth0
(CentOS)或 /etc/netplan/(Ubuntu)
配置主机名
/etc/hostname
 或 hostnamectl set-hostname
配置 DNS
/etc/resolv.conf
配置防火墙
/etc/firewalld/zones/
 或 /etc/iptables/rules.v4
配置 SSH 登录
/etc/ssh/sshd_config
查看启动服务
/etc/systemd/system/multi-user.target.wants/
配置 sudo 权限
/etc/sudoers
(必须用 visudo 编辑)
配置定时任务
/etc/cron.d/
/etc/crontab
配置日志切割
/etc/logrotate.d/
配置系统时区
/etc/localtime
(复制时区文件)
配置语言
/etc/locale.conf
配置内核参数
/etc/sysctl.conf
/etc/sysctl.d/

5.3 /etc 的实际运维操作

# 查看某服务(如 nginx)的所有配置文件
find /etc -name "*nginx*" -type f

# 查看网络配置文件
cat /etc/sysconfig/network-scripts/ifcfg-eth0

# 查看 hosts 文件(DNS 污染时可能需要手动修改)
cat /etc/hosts

# 查看 DNS 服务器
cat /etc/resolv.conf

# 查看 SSH 服务配置是否正确(修改后验证)
sshd -t

# 强制所有 SSH 用户使用指定配置(强制策略)
# 在 /etc/ssh/sshd_config 中使用 Match 块

6. /var:变量数据

/var 是 Linux 中增长最快的目录,存放运行时产生的动态数据:日志、数据库、缓存、队列、邮件。如果磁盘快满了,90% 的情况是 /var 太大了。

6.1 /var 子目录详解

/var/
├── log/           # 系统和应用日志(最重要的目录)
│   ├── messages   # 系统主日志(CentOS/RHEL)
│   ├── syslog     # 系统日志(Ubuntu/Debian)
│   ├── auth.log   # 认证日志(Ubuntu/Debian)
│   ├── secure     # 安全日志(CentOS/RHEL)
│   ├── dmesg      # 内核环形缓冲区日志
│   ├── boot.log   # 启动日志
│   ├── cron       # cron 任务执行日志
│   ├── nginx/
│   │   ├── access.log
│   │   └── error.log
│   ├── httpd/     # Apache 日志(CentOS/RHEL)
│   ├── mysql/     # MySQL 日志
│   │   ├── error.log
│   │   ├── slow.log
│   │   └── binlog/
│   ├── redis/     # Redis 日志
│   ├── docker/    # Docker 日志
│   ├── kubelet/   # Kubernetes kubelet 日志
│   └── audit/     # 审计日志

├── lib/           # 应用运行时数据
│   ├── mysql/     # MySQL 数据文件(InnoDB 数据在此)
│   ├── redis/     # Redis 持久化文件(dump.rdb)
│   ├── docker/    # Docker 镜像/容器存储
│   ├── containerd/ # containerd 存储
│   ├── systemd/   # systemd 运行时数据
│   └── rpm/       # RPM 包数据库

├── cache/         # 应用程序缓存
│   ├── yum/       # yum 缓存
│   ├── dnf/       # dnf 缓存(CentOS/RHEL 8+)
│   ├── apt/       # apt 缓存(Ubuntu/Debian)
│   ├── nginx/     # Nginx 缓存(fastcgi_cache/proxy_cache)
│   └── composer/  # Composer 缓存

├── spool/         # 队列和待处理任务
│   ├── mail/      # 邮件队列(服务器收到的邮件暂存这里)
│   ├── cron/      # cron 任务队列
│   └── at/        # at 任务队列

├── tmp/           # 临时文件(重启后可能保留)

├── opt/           # /opt 下软件的动态数据

├── run/           # 运行时 PID 文件和状态信息
│   ├── nginx.pid   # Nginx 进程 ID
│   ├── sshd.pid    # SSH 进程 ID
│   ├── mysqld.pid  # MySQL 进程 ID
│   ├── docker.sock
│   └── systemd/

├── lock/          # 锁文件(防止资源重复使用)

└── local/         # /usr/local 的变量数据

6.2 /var/log 详解

日志是运维工程师排查故障的第一手资料,必须详细了解:

# 查看系统日志
# CentOS/RHEL
tail -f /var/log/messages

# Ubuntu/Debian
tail -f /var/log/syslog

# 查看认证相关日志(登录成功/失败)
# CentOS/RHEL
tail -f /var/log/secure

# Ubuntu/Debian
tail -f /var/log/auth.log

# 查看 nginx 日志
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

# 查看 MySQL 日志
tail -f /var/log/mysql/error.log
tail -f /var/log/mysql/slow.log

# 查看 Docker 日志(containerd 格式)
journalctl -u docker --since "1 hour ago"
docker logs nginx_container --tail 100 -f

# 查看 Kubernetes 日志
kubectl logs -n namespace podname --tail=100 -f
journalctl -u kubelet -n 200

6.3 /var 的磁盘清理

磁盘满了,先看 /var 里谁最大:

# 查看 /var 下各子目录大小
du -sh /var/* | sort -rh

# 查看 /var/log 下各文件大小
du -sh /var/log/* | sort -rh

# 找最大的 20 个文件
find /var -type f -exec du -h {} + | sort -rh | head -20

# 找最大的 20 个目录
find /var -type d -exec du -h {} + | sort -rh | head -20

# 找 7 天以上的旧日志(谨慎删除)
find /var/log -name "*.log.*" -mtime +7 -ls

# 查看当前日志文件(不是 .1, .2.gz 那些)
ls -lhS /var/log/*.log

日志清理风险提醒:

  • 不要直接 rm /var/log/nginx/access.log,会破坏 inode,导致 Nginx 无法写入日志。
  • 正确做法是 truncate -s 0 /var/log/nginx/access.log 或 > /var/log/nginx/access.log
  • 或者用 logrotate 自动管理(logrotate -f /etc/logrotate.d/nginx)。
  • 正在写入的日志文件如果被删除,进程持有的是已删除文件的 fd(文件描述符),磁盘空间不会立即释放,直到进程关闭该 fd。
  • 生产环境的日志文件,尤其是 MySQL 的 binlog、中继日志,绝对不能随意删除,要按备份策略处理。

6.4 /var/lib:应用数据

# /var/lib/mysql 是 MySQL 数据目录(innodb 数据文件)
# 默认配置:
# innodb_data_home_dir = /var/lib/mysql
# datadir = /var/lib/mysql

# /var/lib/docker 是 Docker 的存储目录
# 查看 docker 使用了多大空间
docker system df -v

# /var/lib/kubelet 是 Kubernetes kubelet 的数据目录
# 包括 Pod 的 emptyDir 卷、CSI 驱动数据等
# 这个目录通常会很大
du -sh /var/lib/kubelet/pods/*

7. /dev:设备文件

/dev 存放设备文件,是 Linux"一切皆文件"设计思想的典型体现。硬件设备在 /dev 中以文件形式存在,对这些"文件"的读写就是对设备的读写。

7.1 常见设备文件

# 块设备(以块为单位随机访问,如硬盘、U盘)
/dev/sda         # 第一块 SCSI/SATA 硬盘
/dev/sda1        # 第一块硬盘的第一个分区
/dev/sdb         # 第二块硬盘
/dev/vda         # VirtIO 虚拟磁盘(云服务器常见)
/dev/nvme0n1     # NVMe 固态硬盘
/dev/nvme0n1p1   # NVMe 硬盘第一个分区

# 字符设备(以字符流方式访问,如终端、打印机)
/dev/null        # 空设备,写入即丢弃,读取即 EOF
/dev/zero        # 无限零字节源
/dev/random      # 阻塞式随机数生成(高质量但会阻塞)
/dev/urandom     # 非阻塞式随机数(速度快但质量稍低)
/dev/loop0       # 循环设备(挂载 ISO 文件等)
/dev/tty1        # 第一个虚拟终端(Ctrl+Alt+F1)
/dev/console     # 系统控制台

# 终端设备
/dev/pts/0       # 伪终端(SSH 远程登录产生)
/dev/tty         # 当前终端

# 随机访问设备
/dev/sda         # 整块磁盘(危险!dd if=/dev/zero of=/dev/sda 会清空磁盘)

7.2 运维中的 /dev 操作

# 查看磁盘分区布局(lsblk 比 fdisk -l 更清晰)
lsblk

# 查看块设备信息
blkid

# 查看所有 SCSI/SATA 设备
lsscsi

# 查看 NVMe 设备
nvme list

# 创建空设备文件(一般不需要手动创建)
mknod /dev/null c 1 3    # 创建设备文件
mknod /dev/zero c 1 5    # 创建零字节设备

# 查看哪个设备是根分区
df -h
# 或
lsblk

7.3 /dev/shm:共享内存设备

# /dev/shm 是 tmpfs 文件系统,默认是物理内存的一半
# 常用于共享内存、Redis 的临时存储
# 查看大小
df -h /dev/shm

# Redis 配置中如果使用 /dev/shm 作为持久化路径(不建议用于生产):
# dir /dev/shm/redis
# 优点是极快,缺点是断电数据丢失

8. /proc 和 /sys:内核接口

/proc 和 /sys 是 Linux 的两个伪文件系统,不占用磁盘空间,是内核向用户空间暴露信息的窗口。读取文件就是读取内核数据,写入文件就是修改内核参数。

8.1 /proc 详解

/proc 目录下以数字命名的子目录是进程 ID(PID),每个数字对应一个运行中的进程:

# /proc/1 是 init/systemd 进程(PID 1)
# 查看 PID 1 的详细信息
ls -la /proc/1

# 查看所有进程的简要信息
ls /proc/ | grep -E "^[0-9]+$"

# 查看系统总体信息
/proc/cpuinfo       # CPU 信息
/proc/meminfo       # 内存信息(最常用的内存监控来源)
/proc/loadavg       # 系统负载(top 命令的来源)
# 格式:1分钟负载 5分钟负载 15分钟负载 运行进程数/总进程数 最近PID
/proc/uptime        # 系统运行时间(秒)
/proc/diskstats     # 磁盘 I/O 统计
/proc/net/dev       # 网络接口流量统计
/proc/net/tcp       # TCP 连接状态(十六进制)
/proc/net/udp       # UDP 连接状态
/proc/net/sockstat  # 套接字统计
/proc/filesystems   # 支持的文件系统类型
/proc/mounts        # 当前挂载情况
/proc/cmdline       # 内核启动参数
/proc/version        # 内核版本
/proc/sys/kernel/   # 内核参数(可通过 sysctl 修改)
# /proc/sys/kernel/hostname     主机名
# /proc/sys/kernel/shmmax       共享内存最大字节数
# /proc/sys/vm/swappiness       交换分区使用倾向
/proc/sys/net/      # 网络参数(可通过 sysctl 修改)
# /proc/sys/net/core/rmem_max   接收缓冲区最大值
# /proc/sys/net/core/wmem_max   发送缓冲区最大值

8.2 常用 /proc 命令

# 查看 CPU 型号和核心数
cat /proc/cpuinfo | grep "model name" | head -1
cat /proc/cpuinfo | grep processor | wc -l

# 查看内存总量和使用情况
cat /proc/meminfo | head -5

# 查看系统负载
cat /proc/loadavg

# 查看进程 1234 的内存映射
cat /proc/1234/maps

# 查看进程 1234 的命令行
cat /proc/1234/cmdline | tr '\0'' '

# 查看进程 1234 的文件描述符
ls -la /proc/1234/fd/

# 查看进程 1234 的环境变量
cat /proc/1234/environ | tr '\0''\n'

# 查看某个 PID 对应的进程名
cat /proc/1234/comm

8.3 /sys 详解

/sys 是内核设备和内核属性的接口,比 /proc 更结构化:

/sys/block/           # 所有块设备(如 sda、nvme0n1)
/sys/block/sda/queue/ # 块设备队列参数
# /sys/block/sda/queue/read_ahead_kb  预读块数
# /sys/block/sda/queue/scheduler      I/O 调度器
# /sys/block/sda/queue/nr_requests    请求队列长度
/sys/class/net/       # 网络接口
# /sys/class/net/eth0/operstate  接口状态(up/down)
# /sys/class/net/eth0/speed      速率(需 ethtool)
/sys/devices/         # 设备树(内核内部结构)
/sys/module/          # 已加载内核模块
# /sys/module/xt_connlimit/parameters/  模块参数
/sys/power/           # 电源管理
/sys/kernel/          # 内核参数
# /sys/kernel/mm/hugepages/    大页内存配置
# /sys/kernel/mm/transparent_hugepage/  THP 配置

8.4 运维中的 /proc 和 /sys 操作

# 动态调整内核参数(临时生效,重启丢失)
# 查看
cat /proc/sys/net/core/rmem_max
# 修改
echo 134217728 > /proc/sys/net/core/rmem_max
# 等价于 sysctl -w net.core.rmem_max=134217728

# 永久修改,在 /etc/sysctl.conf 中添加
# net.core.rmem_max = 134217728
# 然后执行 sysctl -p

# 查看 I/O 调度器(SSD 建议改为 mq-deadline 或 none)
cat /sys/block/sda/queue/scheduler

# 临时修改 I/O 调度器
echo mq-deadline > /sys/block/sda/queue/scheduler

# 永久修改,在 grub 配置中添加内核参数
# 修改 /etc/default/grub
# GRUB_CMDLINE_LINUX="... elevator=mq-deadline"
# 然后 grub2-mkconfig -o /boot/grub2/grub.cfg

# 查看和修改 swappiness
cat /proc/sys/vm/swappiness   # 默认 60
echo 10 > /proc/sys/vm/swappiness  # 临时修改
# 永久修改:vm.swappiness=10 写到 /etc/sysctl.conf

# 查看透明大页(某些数据库要求关闭)
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag

9. /lib 和 /lib64:系统库

/lib 和 /lib64 存放系统运行所需的共享库(.so 文件),类似于 Windows 的 .dll 文件。

# 32 位库目录
/lib/

# 64 位库目录
/lib64/

# /lib 是软链接到 /usr/lib
ls -la /lib -> /usr/lib
ls -la /lib64 -> /usr/lib64

# 库文件的作用
# /lib/modules/$(uname -r)/  内核模块(.ko 文件)
# /lib/systemd/  systemd 库文件
# /lib64/modules/  内核模块(64 位)

运维中关于库文件的常见问题:

# 查看某个命令依赖哪些库
ldd /usr/sbin/nginx

# 示例输出:
# linux-vdso.so.1 (0x00007ffd5a9cf000)
# libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8a4c6d5000)
# libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f8a4c4a0000)
# libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f8a4c270000)

# 库文件缺失会导致 "error while loading shared libraries"
# 解决方法:安装对应库或设置 LD_LIBRARY_PATH

# 查看内核模块
lsmod

# 加载内核模块
modprobe ip_vs_rr   # 加载 IPVS 负载均衡模块

# 查看模块详细信息
modinfo ip_vs_rr

10. /boot:启动文件

/boot 存放 Linux 内核和引导加载器所需的文件。这是最早被挂载的分区之一,在根分区之前。

/boot/
├── vmlinuz-5.4.0-generic        # 内核镜像(压缩的内核)
├── initrd.img-5.4.0-generic     # 初始化内存盘(initramfs)
├── System.map-5.4.0-generic     # 内核符号表(调试用)
├── config-5.4.0-generic         # 内核编译配置
├── grub/                         # GRUB2 引导加载器配置
│   └── grub.cfg                  # GRUB 主配置文件
├── efi/                          # UEFI 启动文件
│   └── EFI/
│       └── ubuntu/               # Ubuntu 的 UEFI 启动项
└── memtest86+/                   # 内存测试工具

运维中的 /boot 操作:

# 查看已安装的内核版本
ls -la /boot/vmlinuz-*
ls -la /boot/initrd.img-*

# 查看当前使用的内核版本
uname -r

# 清理旧内核(CentOS/RHEL)
package-cleanup --oldkernels --count=2
# 或
yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))

# 清理旧内核(Ubuntu)
apt autoremove --purge linux-image-$(uname -r | sed 's/-generic//')-*
# 或
apt-get autoremove -y

# 查看 /boot 分区使用情况
df -h /boot

# /boot 分区太小(默认 500M~1G),新内核装不进去是常见问题
# 清理旧内核即可解决

风险提醒:

  • 不要手动删除 /boot 下的内核文件,必须用包管理器(yum/dnf/apt)删除,否则会导致下次内核升级失败。
  • 删除旧内核前确保新内核运行正常。
  • 如果 /boot 是独立分区(很多云服务器默认如此),满了会导致内核升级失败、服务器无法启动。

11. /root 和 /home:用户目录

11.1 /root:root 用户家目录

/root 是 root 超级用户的家目录,与普通用户的 /home/username 分离。这样设计的好处是即使 /home 所在的文件系统挂了,root 用户仍然可以登录系统进行修复。

# /root 的典型内容
/root/
├── .bashrc          # bash 配置(每次打开 bash 时加载)
├── .bash_profile    # bash 配置(登录 shell 时加载)
├── .bash_history    # 命令历史记录
├── .ssh/            # SSH 密钥和配置
│   ├── authorized_keys
│   ├── id_rsa       # root 的私钥
│   └── id_rsa.pub   # root 的公钥
└── anaconda-ks.cfg  # Anaconda 安装器生成的应答文件(安装系统时产生)

11.2 /home:普通用户家目录

# /home 下的每个子目录是一个用户
/home/admin_user/
├── .bashrc
├── .bash_history
├── .bash_profile
├── .ssh/
│   └── authorized_keys
├── Documents/
├── Downloads/
└── .config/         # 用户级应用程序配置
# 查看各用户家目录大小
du -sh /home/*

# 查看当前用户
whoami

# 查看用户信息
id
id admin_user

# 修改用户家目录(usermod)
usermod -d /new/home/admin_user admin_user

12. /tmp:临时文件

/tmp 是系统临时文件存放区,所有用户都可以读写。

# /tmp 的典型特征
# - 所有用户可读写
# - 程序创建的临时文件放这里
# - 重启后可能被清空(取决于 systemd tmp.mount 配置)
# - 权限 1777(sticky bit,防止删除他人文件)

# 查看 /tmp 占用
df -h /tmp
du -sh /tmp/*

# 查找 /tmp 下最大的文件
find /tmp -type f -exec du -h {} + | sort -rh | head -10

# 查找过于老旧的临时文件
find /tmp -type f -atime +30 -ls  # 30 天未访问的文件
find /tmp -type f -mtime +30 -ls  # 30 天未修改的文件

关于 sticky bit:

# /tmp 权限应该是 1777
ls -ld /tmp
# drwxrwxrwt  root root  /tmp

# t 表示 sticky bit:即使你有权限删除该目录下的文件,也只能删除自己的文件
# 这是为了让多用户共享 /tmp 时不会误删他人文件

13. 其他目录:/srv、/opt、/mnt、/media

13.1 /srv:服务数据

/srv 设计用来存放"服务提供的数据",如 Web 服务器的网站文件、FTP 服务器的文件仓库、Git 服务器的仓库。但实际上这个目录用得不多,很多运维工程师把数据放到了 /var/www 或 /opt 下。

/srv/
├── www/           # 网站数据(Nginx/Apache 默认有时指向这里)
├── ftp/           # FTP 服务数据
├── git/           # Git 服务器仓库
└── vpn/           # VPN 服务数据

13.2 /opt:可选/第三方软件

/opt 是手动安装的"大型"第三方软件的首选目录。特点是软件厂商创建一个与软件名相同的子目录,所有文件放在里面,形成独立的软件环境:

/opt/
├── google/
│   └── chrome/
│       └── ...
├── jetbrains/          # JetBrains IDE
│   └── Toolbox/
│       └── ...
├── vmware/             # VMware 工具
└── docker-desktop/      # Docker Desktop

很多商业软件和部分开源软件会默认安装到 /opt

13.3 /mnt 和 /media

/mnt/          # 临时挂载点,系统管理员手动挂载用
/media/        # 自动挂载的可移动介质(光盘、U 盘)

运维中的 /mnt 使用场景:

# 临时挂载一个 ISO 文件
mount -o loop /path/to/centos.iso /mnt
ls /mnt

# 临时挂载一块云盘
mount /dev/sdc1 /mnt

# 挂载网络文件系统
mount -t nfs 10.0.0.100:/data /mnt

# 查看所有挂载
df -hT

14. 运维视角:日常操作路径总结

14.1 日常排查的路径清单

操作场景
路径
查看系统日志
/var/log/messages
(CentOS)、/var/log/syslog(Ubuntu)
查看 SSH 登录日志
/var/log/secure
(CentOS)、/var/log/auth.log(Ubuntu)
查看 Nginx 配置
/etc/nginx/
查看 Nginx 日志
/var/log/nginx/
查看 MySQL 配置
/etc/my.cnf
/etc/mysql/
查看 MySQL 日志
/var/log/mysql/
查看 Redis 配置
/etc/redis/
查看 PHP 配置
/etc/php.ini
/etc/php-fpm.d/
查看 Docker 配置
/etc/docker/daemon.json
查看 Docker 数据
/var/lib/docker/
查看 systemd 服务
/etc/systemd/system/
/usr/lib/systemd/system/
查看防火墙规则
/etc/firewalld/zones/
/etc/iptables/
查看定时任务
/etc/cron.d/
/etc/crontab
查看启动项
/etc/rc.d/rc.local
/etc/systemd/system/
查看内核参数
/etc/sysctl.conf
/proc/sys/
查看 DNS 配置
/etc/resolv.conf
查看网络接口配置
/etc/sysconfig/network-scripts/
(CentOS)、/etc/netplan/(Ubuntu)
查看用户账户
/etc/passwd
/etc/shadow
查看 sudo 权限
/etc/sudoers
查看 SSH 配置
/etc/ssh/sshd_config
查看系统版本
/etc/os-release
查看 SELinux 配置
/etc/selinux/config
/var/log/audit/audit.log
查看内核模块
/lib/modules/$(uname -r)/

14.2 常见问题的排查路径

磁盘满了,去哪找大文件?

du -sh /var/* | sort -rh | head -10
find / -type f -size +100M -exec du -h {} \; 2>/dev/null | sort -rh | head -20

MySQL 连接不上,配置文件在哪?

/etc/my.cnf
/etc/mysql/my.cnf
find /etc -name "my.cnf"

某个服务启动失败,日志在哪?

systemctl status nginx
journalctl -u nginx --since "10 minutes ago"

想看某个进程打开了哪些文件?

# 查看 PID 1234 的文件描述符
ls -la /proc/1234/fd/
# 等价于
lsof -p 1234

想看某个端口被哪个进程占用?

ss -tulnp | grep :80
# 或
lsof -i :80

想临时修改内核参数,怎么做?

# 临时(立即生效,重启丢失)
sysctl -w net.ipv4.tcp_tw_reuse=1

# 永久(重启后生效)
echo"net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
sysctl -p

15. 磁盘分区与挂载的关系

理解目录结构和磁盘分区的关系,是理解 Linux 存储模型的关键。

15.1 分区挂载示例

# 查看当前分区和挂载关系
df -h

# 示例输出:
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1       100G   50G   50G  50% /
# tmpfs           7.8G     0  7.8G   0% /dev/shm
# /dev/sda2       500G   300G  200G  60% /data
# /dev/sdb1       1.0T   800G  200G  80% /backup
# /dev/sdc1       200G   100G  100G  50% /mnt/backup2

这个示例说明:

  • /dev/sda1 挂载在根目录 /,这是根分区,包含了 /etc/usr/var 等所有目录(除非它们有独立分区)
  • /dev/sda2 挂载在 /data,这意味着 /data 目录下的内容存在第二块磁盘上
  • /dev/sdb1 挂载在 /backup
  • /tmpfs 是内存文件系统,不占用磁盘空间

15.2 常见分区方案

云服务器常见分区(单盘方案):

/        根分区(所有目录都在根分区)
/boot    如果是独立分区,通常 1G 足够

自建物理服务器常见分区(多盘方案):

/           根分区(50~100G)
/boot       1G(独立分区)
/var        剩余空间(存放日志和数据,增长最快)
swap        内存的 1~2 倍(内存 > 8G 时,swap 可以 ≤ 内存)
/home       单独分区(用户数据隔离)

数据库服务器分区方案:

/           根分区(100G)
/boot       1G
swap        内存的 1 倍
/var/lib/mysql  独立大分区(SSD 优先)
/var/log/mysql  独立分区(日志单独存放)
/backup         独立分区(备份盘)

15.3 分区对运维的影响

# 查看某目录所在分区
df -h /var/log/nginx

# 查看某文件的 inode 信息(文件系统的存储位置)
stat /var/log/nginx/access.log

# 查看磁盘分区表
fdisk -l /dev/sda

# 查看 LVM 逻辑卷
lvs
pvs
vgs

# 如果 /var/log 在独立分区,磁盘满了不影响根分区
# 如果 /var/log 和 / 在同一分区,磁盘满了会导致系统无法写入日志
# 严重时会导致应用崩溃

16. 总结

理解 Linux 目录结构的核心是理解 FHS 的设计逻辑:

按"是否变化"分类:

  • /bin/sbin/usr/etc/lib — 静态,系统安装后基本不变
  • /var/tmp/run — 动态,随使用不断增长

按"共享范围"分类:

  • /usr/opt — 可以共享给其他系统(只读)
  • /etc/var/run — 本机专属(不可共享)

按"系统层级"分类:

  • /bin/sbin/etc — 系统级,所有用户共享
  • /home/username — 用户级

几个必须记住的关键目录:

目录
必须记住的内容
/etc
所有配置文件,找配置来这里
/var/log
所有日志,排查故障来这里
/var/lib
数据库数据、Docker 存储
/proc
内核和进程信息,只读接口
/sys
内核设备接口,可写参数在这里
/usr/local
手动编译的软件装这里
/run
进程 PID 文件、socket 文件

日常运维三句诀:

  • "找配置,先看 /etc"
  • "查日志,先翻 /var/log"
  • "改内核参数,看 /proc/sys 或 /etc/sysctl.conf"

理解了这个逻辑,即使遇到未知目录或文件,也能根据其所在路径推测出它的用途。目录结构不是靠死记硬背的,理解了逻辑,自然就能推导。

文末福利

今天给大家分享一份运维工程师入门到高级学习路线,希望对大家有所帮助。图中资料也为大家打包好,文末免费领取

扫码即可获取

备注运维初中高

(注意是扫码领取↑ 后台不回复)

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 05:22:29 HTTP/2.0 GET : https://f.mffb.com.cn/a/495772.html
  2. 运行时间 : 0.167590s [ 吞吐率:5.97req/s ] 内存消耗:4,701.45kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=9901bafc95de91f8bf83a0e3704f4562
  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.000610s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000816s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.010347s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000499s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000765s ]
  6. SELECT * FROM `set` [ RunTime:0.000363s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000755s ]
  8. SELECT * FROM `article` WHERE `id` = 495772 LIMIT 1 [ RunTime:0.003349s ]
  9. UPDATE `article` SET `lasttime` = 1783027349 WHERE `id` = 495772 [ RunTime:0.029063s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000340s ]
  11. SELECT * FROM `article` WHERE `id` < 495772 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000486s ]
  12. SELECT * FROM `article` WHERE `id` > 495772 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002880s ]
  13. SELECT * FROM `article` WHERE `id` < 495772 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.026695s ]
  14. SELECT * FROM `article` WHERE `id` < 495772 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005607s ]
  15. SELECT * FROM `article` WHERE `id` < 495772 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002597s ]
0.169425s