当前位置:首页>Linux>Linux 运维必会:这些命令不会,排障效率至少慢一半

Linux 运维必会:这些命令不会,排障效率至少慢一半

  • 2026-07-04 16:37:55
Linux 运维必会:这些命令不会,排障效率至少慢一半

Linux 运维必会:这些命令不会,排障效率至少慢一半

一、问题背景

我带过不少初中级运维工程师,发现一个普遍现象:很多新人面对故障时只会 topdf -hfree -m 三件套,看到不熟悉的输出就抓瞎。等他们查清楚问题,故障已经过了一个小时。

运维工程师的核心竞争力不是"会多少命令",而是"看到现象后能在 5 秒内想到用什么命令"。这种反射弧来自大量的命令积累和实战练习。

我做了 8 年运维,从最开始的只会 lscdcat,到后来能 5 分钟定位一个 OOM、3 分钟定位一个磁盘 I/O 瓶颈,靠的就是把常用命令练成了肌肉记忆。这篇文章把我日常排障必用的 50+ 个命令整理出来,按主题分类,给出"目的 → 关键参数 → 输出解读 → 实战片段 → 注意事项"的完整说明。

每一节都是可以直接照着操作的实战手册,不是教科书式的命令清单。学完这篇文章,你应该能做到:

  • 看到 load average: 28.50, 30.10, 32.40 立刻想到查 CPU
  • 看到业务慢立刻想到 vmstat + iostat 组合
  • 看到 No space left on device 立刻想到 df -i 查 inode
  • 看到进程卡住立刻想到 strace -p 或 /proc/PID/wchan

二、适用场景

本文覆盖以下运维场景:

  • 物理机 / 虚拟机 / 云服务器的日常运维
  • 应用服务(Nginx / Tomcat / MySQL / Redis / Kafka)的进程级排查
  • CPU / 内存 / 磁盘 I/O / 网络四个维度的性能分析
  • 进程状态 / 系统调用 / 内核事件追踪
  • 文本处理 / 批量操作 / 自动化脚本
  • 故障定位 / 根因分析 / 性能调优

不覆盖:

  • macOS 系统命令(BSD 风格,部分参数不同)
  • Windows Server
  • 容器内部署的命令(容器内命令和宿主机基本一致,但资源限制、namespace 视角不同)
  • 大型分布式系统(Hadoop、Ceph、Kafka 集群)的运维命令

三、核心知识点

3.1 Linux 命令的"反射弧"

运维工程师要建立的第一类反射弧是"现象 → 命令"。下面是一些典型映射:

现象
第一反应命令
业务慢
uptime
 / top / vmstat
内存吃紧
free -h
 / `dmesg
磁盘 I/O 高
iostat -xz 2
 / iotop
网络连不上
ss -lntp
 / mtr / tcpdump
进程消失
systemctl status
 / journalctl -u
磁盘写满
df -h
 / du -sh /*
inode 满
df -i
系统日志
journalctl -p err
系统调用
strace -p PID
进程打开了什么文件
lsof -p PID

3.2 命令的"风险等级"

运维命令按风险分四类:

  • 安全级
    (read-only):uptimefreedfss -sps
  • 观察级
    (可能影响性能):stracetcpdumpperf top
  • 修改级
    (明确改变状态):systemctl restartkilliptables -I
  • 破坏级
    (高风险):rm -rfddmkfsfdisk

任何命令执行前都要先判断它属于哪一级。破坏级命令必须有备份、有审批、有回滚。

3.3 重点目录速查

路径
用途
/proc/PID/
进程运行时信息(内存、文件、状态)
/proc/sys/
内核运行时参数
/proc/loadavg
系统负载
/proc/meminfo
内存详情
/sys/fs/cgroup/
cgroup 资源限制
/var/log/
系统日志
/etc/systemd/system/
systemd 单元配置
/sys/class/net/
网卡运行时信息

熟悉这些目录能让你在系统启动不起来、工具命令都不可用时依然能排查。

四、整体命令使用思路

我习惯把命令按"目的"组织成 5 类:

  1. 状态查询类
    :查看系统或进程当前状态
  2. 问题定位类
    :根据状态进一步追踪根因
  3. 变更执行类
    :修改配置或重启服务
  4. 批量处理类
    :处理多个文件或进程
  5. 信息提取类
    :从日志或输出中提取关键信息

每类命令的选择逻辑在下面章节展开。

五、进程类命令

5.1 ps:进程快照

目的:列出系统所有进程的状态。

关键参数

bash
ps aux                    # BSD 风格,所有进程ps -ef                    # System V 风格ps -eo pid,ppid,user,stat,pcpu,pmem,etime,comm,args --sort=-pcpu

输出解读

  • USER
    :进程运行用户
  • PID
    :进程 ID
  • %CPU
    :CPU 占用率
  • %MEM
    :内存占用率
  • STAT
    :进程状态(R 运行、S 中断、D 不可中断睡眠、Z 僵尸、T 停止、I 空闲)
  • START
    :启动时间
  • TIME
    :累计 CPU 时间
  • COMMAND
    :启动命令

实战片段

bash
# 找占用 CPU 最高的 10 个进程ps -eo pid,ppid,user,pcpu,pmem,comm --sort=-pcpu | head -11# 找内存占用最高的 5 个进程ps -eo pid,user,pmem,comm --sort=-pmem | head -6# 找僵尸进程ps -eo pid,ppid,stat,comm | awk '$3 ~ /Z/'# 找运行超过 24 小时的进程ps -eo pid,etime,comm | awk '$2 ~ /-/ {print}'# 显示进程的命令行(完整)ps -ef | grep <name> | grep -v grep

注意事项

  • ps aux
     在不同发行版的输出列顺序可能不同
  • STAT
     列中的 D 状态(不可中断睡眠)通常是 I/O 阻塞,要重点关注
  • etime
     显示进程运行时长(如 01:23:45 或 5-01:23:45),新版本支持
  • Linux 3.x 内核后,ps 默认只显示当前用户的进程,必须加 a 或 x 才显示所有

5.2 top:实时进程监控

目的:动态查看系统状态和进程信息。

关键参数

bash
top -b -n1            # 批处理模式,只跑一次,适合脚本top -p <pid1>,<pid2>  # 只监控指定进程top -u <user>         # 只看指定用户top -H -p <pid>       # 显示进程的线程

常用交互

  • P
    :按 CPU 排序
  • M
    :按内存排序
  • T
    :按累计 CPU 时间排序
  • 1
    :显示每个 CPU 核心
  • H
    :显示线程
  • c
    :显示完整命令行
  • k
    :kill 进程
  • q
    :退出

实战片段

bash
# 找出 CPU 最高的进程(结合 ps 用)top -b -n1 -o %CPU | head -20# 看 Java 进程的线程top -H -p <pid># 看指定用户的进程top -u www-data

注意事项

  • top
     交互模式下不要按 k 误操作
  • top -b -n1
     比 ps 慢,但能看到每个进程的实时 CPU 占用
  • 推荐用 htop 替代默认 top,更直观,支持鼠标

5.3 htop:top 的增强版

目的:比 top 更友好的交互式监控。

安装

bash
yum install -y htopapt install -y htop

实战片段

bash
htop -d 5        # 5 秒刷新一次htop -u www-data # 只显示指定用户htop -p <pid>    # 只显示指定进程htop -t          # 树形视图

注意事项

  • htop 鼠标可点击,比 top 友好
  • 颜色标记:D 状态标红色,R 状态标绿色
  • 鼠标拖动显示树形关系

5.4 pidstat:进程级资源统计

目的:按时间间隔采样进程 CPU、内存、I/O 数据。

关键参数

bash
pidstat -p <pid> 2 5        # 每 2 秒采样 1 次,共 5 次pidstat -u 2 5               # 所有进程 CPUpidstat -r 2 5               # 内存pidstat -d 2 5               # I/Opidstat -w 2 5               # 上下文切换

实战片段

bash
# 监控 Java 进程的 CPUpidstat -p <pid> 2 5 -u# 监控 MySQL 进程的 I/Opidstat -p $(pidof mysqld) 2 5 -d# 看上下文切换最高的进程pidstat -w 2 5 | head -20

注意事项

  • pidstat 在 CentOS 7+ / Ubuntu 16+ 默认在 sysstat 包里
  • 比 top 适合在脚本里用,可以批量采样
  • pidstat -t 显示线程级数据

5.5 pstree:进程树

目的:以树形结构显示进程父子关系。

关键参数

bash
pstree -a           # 显示命令行pstree -p           # 显示 PIDpstree -u           # 显示用户切换pstree -s <pid>     # 显示指定进程的父链

实战片段

bash
pstree -ap | headpstree -p <pid> | head

注意事项

  • 找不到父进程时显示 init 或 systemd(PID 1)
  • 进程很多时输出会很长,建议用 less 查看

5.6 strace:追踪系统调用

目的:跟踪进程的系统调用和信号。

关键参数

bash
strace -p <pid>            # 跟踪运行中的进程strace -c -p <pid>         # 汇总统计strace -e trace=network,read,write -p <pid>  # 只跟踪网络和读写strace -f -p <pid>         # 跟踪子进程strace -T -p <pid>         # 显示每个调用耗时strace -tt -o /tmp/trace.log <cmd>  # 启动并跟踪命令

实战片段

bash
# 看 Java 进程在做什么strace -p <pid> -T -tt -e trace=network,read,write# 统计某进程的系统调用类型strace -c -p <pid># 启动 MySQL 并跟踪strace -f -o /tmp/mysql-strace.log mysqld --user=mysql

注意事项

  • strace
     会显著降低进程性能(5%-30%),不要在生产高负载机器上用
  • strace 输出可能很大,建议 strace ... 2>&1 | tee /tmp/strace.log
  • strace
     需要 ptrace 能力,容器默认没有
  • 跟踪的进程如果是 root 运行,strace 必须也是 root
  • -c
     模式按 Ctrl+C 退出时打印汇总

5.7 lsof:列出打开的文件

目的:查看进程打开的文件、socket、管道等。

关键参数

bash
lsof -p <pid>             # 进程打开的所有文件lsof -i :80               # 占用 80 端口的进程lsof /var/log/messages    # 谁在写这个文件lsof -u <user>            # 指定用户打开的文件lsof +D /var/log          # 目录下所有被打开的文件(递归)lsof -i -P -n             # 显示 TCP/UDP 连接

实战片段

bash
# 看 80 端口被谁占用lsof -i :80# 看 /var/log/messages 谁在写lsof /var/log/messages# 看进程打开的网络连接lsof -p <pid> -i -P -n# 看谁在删日志lsof +D /var/log | grep deleted

注意事项

  • lsof
     输出可能很大,加 | head 或 | grep
  • +D
     目录递归比较慢,大目录慎用
  • lsof -i
     比 ss -lntp 信息更详细

5.8 /proc/PID/*:进程运行时信息

目的:直接通过文件系统查看进程信息。

关键路径

bash
/proc/<pid>/cmdline         # 命令行/proc/<pid>/cwd -> /path    # 当前工作目录/proc/<pid>/environ         # 环境变量/proc/<pid>/fd/             # 打开的文件描述符/proc/<pid>/maps            # 内存映射/proc/<pid>/status          # 进程状态/proc/<pid>/stat            # 进程统计/proc/<pid>/statm           # 内存统计/proc/<pid>/wchan           # 进程在哪个内核函数中睡眠/proc/<pid>/limits          # 资源限制

实战片段

bash
# 看进程的命令行(tr 处理 NUL 字符)cat /proc/<pid>/cmdline | tr'\0'' 'echo# 看进程的环境变量cat /proc/<pid>/environ | tr'\0''\n'# 看进程打开的文件描述符ls -la /proc/<pid>/fd/ | head# 看进程在哪个内核函数中睡眠(卡住时)cat /proc/<pid>/wchanecho# 看进程的状态cat /proc/<pid>/status# 看进程的内存映射cat /proc/<pid>/maps | head# 看进程的资源限制cat /proc/<pid>/limits

注意事项

  • /proc/PID/fd/
     是符号链接,指向真实的 fd
  • 进程被 kill 后这些文件会消失,所以要快
  • wchan
     在很多发行版是空的(需要 root 才能看到符号名)

六、内存类命令

6.1 free:内存使用情况

目的:快速查看内存总量、已用、空闲、可用、缓存。

关键参数

bash
free -h        # 人类可读free -m        # MB 单位free -g        # GB 单位free -s 2      # 每 2 秒刷新free -c 5      # 刷新 5 次

输出解读

text
              total        used        free      shared  buff/cache   availableMem:          64217       12832        1024        2048       50361       48876Swap:          4095         128        3967
  • total
    :总物理内存
  • used
    :已用(包含 buff/cache)
  • free
    :完全空闲
  • shared
    :共享内存(tmpfs 等)
  • buff/cache
    :块设备和页缓存,可回收
  • available
    :真正可用的内存(free + 可回收 buff/cache)

实战片段

bash
# 关键看 available,不是 freefree -h# 如果 available 接近 0,used 接近 total,内存才真不够# 持续监控watch -n 2 free -h

注意事项

  • 很多新人看到 free 很小就以为内存不够,其实 buff/cache 是 Page Cache,可以随时回收
  • 真正代表"还能分配多少内存"的是 available 字段
  • 不要被 buff/cache 大吓到,Linux 会自动用多余内存做缓存

6.2 /proc/meminfo:内存详情

目的:看更详细的内存信息。

实战片段

bash
# 看关键指标grep -E 'MemTotal|MemFree|MemAvailable|Buffers|Cached|SwapTotal|SwapFree|Dirty|Writeback|AnonPages|Mapped|Shmem' /proc/meminfo# 重点关注:# Dirty: 等待写盘的脏页# Writeback: 正在写盘的页# AnonPages: 匿名页(堆、栈)# Mapped: 映射的文件# Shmem: 共享内存

注意事项

  • /proc/meminfo
     是 free 的底层数据源
  • Dirty
     持续增长说明磁盘写入慢,可能有 I/O 瓶颈
  • AnonPages
     大说明程序占用内存多

6.3 pmap:进程内存映射

目的:查看进程占用的内存分布。

关键参数

bash
pmap -x <pid>       # 详细模式pmap -d <pid>       # 设备格式pmap <pid> | sort -k2 -n -r | head# 按 RSS 排序

实战片段

bash
# 看 MySQL 进程的内存分布pmap -x $(pidof mysqld) | sort -k3 -n -r | head -20# 看 RSS 最大的内存段pmap -x <pid> | awk 'NR>1 {print $2, $4}' | sort -k2 -n -r | head -10

注意事项

  • pmap
     输出很长,sort 后用 head 看大头
  • RSS
     是常驻内存大小,Size 是虚拟地址空间大小
  • pmap
     比 /proc/PID/maps 友好

6.4 vmstat:虚拟内存统计

目的:综合看系统 CPU、内存、I/O、上下文切换。

关键参数

bash
vmstat 2 5          # 每 2 秒采样,共 5 次vmstat -s           # 一次性输出统计vmstat -d           # 磁盘统计

输出解读

text
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 2  0      0 1024000 200000 5000000    0    0     1    20  500 1000 10  5 80  5  0

关键字段:

  • r
    :等待运行的进程数(r > CPU 核数说明 CPU 满)
  • b
    :不可中断睡眠的进程数(I/O 阻塞)
  • swpd
    :已用 swap
  • free
    :空闲内存
  • si / so
    :swap in / out
  • bi / bo
    :块设备 in / out
  • in
    :中断次数
  • cs
    :上下文切换
  • us / sy / id / wa / st
    :user / system / idle / iowait / steal

实战片段

bash
# 看 CPU 是不是 I/O 等待vmstat 2 5# 看 wa 字段,> 30% 说明 I/O 严重# 看上下文切换vmstat 2 5# 看 cs 字段,> 100000/秒 可能有问题# 看是不是被偷了 CPU(虚拟机)vmstat 2 5# 看 st 字段,> 10% 说明宿主机忙

注意事项

  • vmstat
     第一行是开机以来的平均值,没参考价值,从第二行看
  • r
     队列长度持续 > CPU 核数就是 CPU 瓶颈
  • b
     持续 > 0 说明有 I/O 阻塞
  • si / so
     持续 > 0 说明物理内存不够

6.5 slabtop:内核 slab 缓存

目的:查看内核 slab 分配器的内存使用。

实战片段

bash
# 实时查看slabtop -d 2# 看 dentry(目录项)缓存slabtop | head -20# 看某个 slab 的细节cat /proc/slabinfo | head -20

注意事项

  • 内核 slab 缓存持续增长可能是内核内存泄漏
  • dentry
     缓存太多说明打开过很多文件
  • slabtop
     默认安装,需要 procps 包

七、CPU 类命令

7.1 uptime:系统负载

目的:快速看系统运行时间和 1/5/15 分钟负载。

实战片段

bash
uptime# 14:23:11 up 32 days,  4:17,  3 users,  load average: 0.15, 0.22, 0.18

输出解读

  • load average
     三个值分别对应 1 / 5 / 15 分钟的运行队列平均长度
  • 健康负载 = CPU 核数以下
  • 如果 1 分钟负载远高于 5 分钟和 15 分钟,故障刚发生
  • 如果三个值都高,故障已经持续

注意事项

  • 负载高不一定是 CPU 满,也可能是 I/O 阻塞(看 iowait
  • 经验值:load < CPU 核数 算健康,> 2× 核数算严重
  • nproc
     看 CPU 核数

7.2 mpstat:多核 CPU 统计

目的:看每个 CPU 核心的使用情况。

关键参数

bash
mpstat -P ALL 2 5    # 所有核,每 2 秒采样 5 次mpstat -I ALL 2 5    # 中断统计mpstat -I CPU 2 5    # 中断按 CPU 聚合

实战片段

bash
# 看每核的 CPU 使用mpstat -P ALL 2 5# 看中断分布(网卡风暴时用)mpstat -I ALL 2 5# 看软中断mpstat -I SCPU 2 5

注意事项

  • mpstat
     在 sysstat 包里
  • %usr
     高 → 用户态进程占 CPU
  • %sys
     高 → 内核态忙(系统调用或内核 bug)
  • %iowait
     高 → I/O 阻塞
  • %steal
     高(虚拟机)→ 宿主机资源被抢占
  • %soft
     高 → 软中断风暴

7.3 sar:系统活动报告

目的:长期采样并记录系统活动,可以回看历史。

关键参数

bash
sar -u 2 5           # CPUsar -r 2 5           # 内存sar -d 2 5           # 磁盘sar -n DEV 2 5       # 网络sar -b 2 5           # I/O 速率sar -q 2 5           # 队列长度

实战片段

bash
# 看 CPU 历史sar -u# 看昨天的 CPU 数据sar -u -f /var/log/sa/sa01# 看内存历史sar -r# 看网络流量历史sar -n DEV# 看磁盘历史sar -d

注意事项

  • sar
     需要 sysstat 包,配置 /etc/sysstat/sysstat 后定期采集
  • sar
     数据默认保留 7 天
  • sar -f
     看历史某天的数据
  • sar 是排查"昨天故障"的最佳工具

7.4 perf:Linux 性能分析

目的:内核和应用的性能采样和追踪。

关键参数

bash
perf top                       # 实时热点perf top -p <pid>              # 指定进程perf record -p <pid> -g        # 采样 30 秒perf report                    # 报告perf stat -p <pid> sleep 5     # 5 秒内的硬件事件统计

实战片段

bash
# 看系统热点perf top# 采样 MySQL 进程 30 秒,看热点函数perf record -p $(pidof mysqld) -g -- sleep 30perf report# 看 CPU 上下文切换perf stat -e context-switches,cs,migrations -p <pid> sleep 5

注意事项

  • perf
     需要 linux-tools 包
  • perf
     用 tracepoint 和 kprobe 可以做深度分析
  • perf top
     在高负载机器上开销较大
  • 容器内需要 --privileged 或 perf_event_open 权限

八、磁盘 I/O 类命令

8.1 iostat:磁盘 I/O 统计

目的:看每块磁盘的读写速率、利用率、等待时间。

关键参数

bash
iostat -xz 2 5         # 扩展模式,每 2 秒采样 5 次iostat -m 2 5          # MB 单位iostat -d sda 2 5      # 只看 sda 磁盘iostat -p ALL 2 5      # 显示分区

输出解读

text
Device  r/s     w/s     rkB/s    wkB/s  await svctm  %utilsda     1.20    5.50    50.0     200.0   2.5   0.5    0.5
  • r/s
     / w/s:每秒读写次数
  • rkB/s
     / wkB/s:每秒读写字节数
  • await
    :平均每次 I/O 等待毫秒数(队列 + 服务时间)
  • svctm
    :平均每次 I/O 服务毫秒数(基本不再用)
  • %util
    :设备利用率(饱和度)

实战片段

bash
# 找 I/O 瓶颈磁盘iostat -xz 2 5# 关键看:# %util > 60% 算繁忙# await > 10ms(机械盘)算有问题# await > 1ms(SSD)算有问题

注意事项

  • %util
     接近 100% 说明设备饱和
  • await
     飙升但 %util 不高,可能是 RAID 卡或 SAN 问题
  • iostat
     第一行是开机以来的平均值,没参考价值
  • %util
     在 SSD 上意义不大,主要看 await

8.2 iotop:进程级 I/O 监控

目的:找出占用 I/O 最多的进程。

关键参数

bash
iotop -o        # 只显示正在做 I/O 的进程iotop -b -n 3   # 批处理模式,3 次采样iotop -a         # 累计 I/Oiotop -p <pid>   # 指定进程

实战片段

bash
# 找出写盘最猛的进程iotop -o -d 2 -n 5# 监控 MySQL 进程iotop -p $(pidof mysqld)

注意事项

  • iotop
     需要 iotop 包
  • 输出按列排序:磁盘读、磁盘写、IO 总占比、命令
  • 容器内需要 SYS_ADMIN 权限

8.3 smartctl:硬盘健康

目的:查硬盘 SMART 信息,预测硬盘故障。

关键参数

bash
smartctl -a /dev/sda           # 全部信息smartctl -H /dev/sda           # 健康状态smartctl -t long /dev/sda      # 长自检smartctl -l selftest /dev/sda  # 自检日志

实战片段

bash
# 看硬盘健康smartctl -H /dev/sda# PASSED = 健康,FAILED = 故障# 看硬盘温度smartctl -a /dev/sda | grep -i temperature# 看重映射扇区数(重要指标)smartctl -a /dev/sda | grep -i reallocated# 短自检smartctl -t short /dev/sda

注意事项

  • 物理机才有 SMART,虚拟机看不到物理硬盘
  • Reallocated_Sector_Ct
     增长是硬盘快坏的重要信号
  • 自检会降低磁盘性能,生产环境慎用

九、文件系统类命令

9.1 df:磁盘空间

目的:看文件系统的空间使用。

关键参数

bash
df -h        # 人类可读df -hT       # 带文件系统类型df -i        # inode 使用df -h /path  # 看指定路径所在分区

实战片段

bash
# 关键看 Use% 和 inodedf -hdf -i# 找空间使用 > 80% 的分区df -h | awk 'NR>1 && $5+0 > 80 {print}'# 看指定目录所在分区df -h /var/log

注意事项

  • 必须同时看空间和 inode,inode 满也会无法写文件
  • df -hT
     能看到文件系统类型(ext4、xfs、tmpfs)
  • bind mount 的目录会和原分区一起算

9.2 du:目录大小

目的:看目录或文件占用空间。

关键参数

bash
du -sh /path     # 汇总du -h --max-depth=1 /path  # 子目录深度du -ah /path | sort -h | tail# 找大文件

实战片段

bash
# 找根下最大的目录du -sh /* 2>/dev/null | sort -h | tail -10# 找 /var/log 下最大的文件du -ah /var/log 2>/dev/null | sort -h | tail -20# 找最近 1 天内变大超过 100M 的文件find / -xdev -mtime -1 -size +100M -execls -lh {} \;

注意事项

  • du
     会扫描目录,大目录很慢
  • 在 I/O 高的机器上用 ionice -c3 nice -n 19 du ... 降低影响
  • du -h
     显示单位人性化,du -sh 只显示总和
  • du -h --max-depth=1
     看第一层

9.3 ls:文件列表

目的:看目录内容。

关键参数

bash
ls -lh      # 人类可读ls -lhS     # 按大小排序ls -lht     # 按时间排序ls -lR      # 递归ls -la      # 包含隐藏文件

实战片段

bash
# 找目录下最大的 10 个文件ls -lhS | head -10# 找最近修改的 10 个文件ls -lht | head -10

注意事项

  • ls
     在大目录上慢
  • 文件很多时用 ls -U 跳过排序
  • ls -d */
     只看目录

9.4 mount:挂载点

目的:查看挂载点和挂载选项。

实战片段

bash
# 看所有挂载点mount | column -t# 看指定挂载选项mount | grep -E ' / '# 看是否只读mount | grep 'ro,'

注意事项

  • 文件系统被改成只读(ro,relatime)通常是硬件问题
  • mount -o remount,ro /
     可以临时改成只读

9.5 tune2fs / xfs_info:文件系统信息

目的:查文件系统参数。

实战片段

bash
# ext4 文件系统tune2fs -l /dev/sda1# xfs 文件系统xfs_info /dev/sda1xfs_info /mnt/data

注意事项

  • ext4 用 tune2fs
  • xfs 用 xfs_info
  • 生产环境改文件系统参数前必须先备份

十、网络类命令

10.1 ss:Socket 统计

目的:替代 netstat 的现代工具。

关键参数

bash
ss -lntp     # 监听中的 TCP 端口ss -anp      # 所有连接ss -s        # 统计ss -tan state established  # 已建立的连接ss -tan state time-wait   # TIME_WAITss -i         # 详细信息

实战片段

bash
# 看监听端口ss -lntp# 看连接数ss -sss -tan | awk '{print $1}' | sort | uniq -c | sort -rn# 看进程名(需要 root)ss -lntp | grep :80# 看指定状态连接ss -tan state time-wait | wc -lss -tan state close-wait | wc -l

注意事项

  • ss
     比 netstat 快很多
  • TIME_WAIT
     大量堆积说明短连接多
  • CLOSE_WAIT
     大量堆积说明对端没关闭连接,代码 bug
  • 看不到进程名时检查是否 root

10.2 netstat:网络统计(兼容)

目的:兼容老系统的网络工具。

关键参数

bash
netstat -lntpnetstat -anpnetstat -s

注意事项

  • netstat
     在新系统上可能未装(CentOS 8+ / Ubuntu 22+)
  • 优先用 ss

10.3 ip:网络配置

目的:替代 ifconfig 的现代工具。

关键参数

bash
ip a        # 看所有 IPip route    # 看路由ip neigh    # 看 ARP 表ip link# 看网卡ip -s link# 看网卡统计

实战片段

bash
# 看本机 IPip a | grep -E 'inet '# 看路由ip routeip route get 8.8.8.8  # 看指定目标的路由# 看 ARPip neigh# 看网卡流量ip -s link show eth0

注意事项

  • ifconfig
     在新系统可能未装
  • 改 IP / 路由用 ip addr add / ip route add
  • ip
     命令是立即生效,不会持久化

10.4 mtr:网络诊断

目的:结合 ping 和 traceroute 的网络诊断工具。

关键参数

bash
mtr -rwn -c 20 <target>    # 报告模式,20 次mtr -rwn -c 100 <target>   # 100 次,更准

实战片段

bash
mtr -rwn -c 20 8.8.8.8mtr -rwn -c 20 example.com

注意事项

  • mtr
     比 traceroute 信息更丰富,能看到丢包率和平均延迟
  • Loss%
     列:丢包率
  • Avg
    :平均延迟
  • 中间节点丢包不一定是该节点问题,下一跳丢包才说明
  • 需要 root 或 CAP_NET_RAW 权限

10.5 traceroute:路由追踪

目的:显示包到目标经过的路由节点。

关键参数

bash
traceroute -n -w 2 -m 15 <target>     # ICMP 模式traceroute -T -n -w 2 -m 15 <target>  # TCP 模式(穿透防火墙)traceroute -I -n <target>             # ICMP 模式

注意事项

  • 经典 UDP 模式容易被防火墙拦
  • traceroute -T
     用 TCP SYN 包,更可靠
  • * * *
     表示该节点不回包,可能禁了 ICMP

10.6 tcpdump:抓包

目的:抓网络包分析。

关键参数

bash
tcpdump -i eth0                       # 抓 eth0tcpdump -i eth0 -nn -A                # 显示协议和内容tcpdump -i eth0 -nn -s 0 port 80      # 抓 80 端口tcpdump -i eth0 -nn host 1.2.3.4      # 指定主机tcpdump -i eth0 -nn -w /tmp/cap.pcap  # 写文件tcpdump -r /tmp/cap.pcap              # 读文件

实战片段

bash
# 看 80 端口的 HTTP 请求tcpdump -i eth0 -nn -A -s 0 port 80# 抓 MySQL 包tcpdump -i eth0 -nn port 3306 -w /tmp/mysql.pcap# 看 SYN 包tcpdump -i eth0 -nn 'tcp[tcpflags] & tcp-syn != 0'# 看 DNStcpdump -i eth0 -nn port 53

注意事项

  • tcpdump
     在高流量接口上可能丢包
  • -s 0
     抓完整包(默认 68 字节只抓头)
  • 抓包文件用 Wireshark 打开更友好
  • 抓包会消耗磁盘空间,控制 -c 限制包数

10.7 dig:DNS 查询

目的:详细 DNS 查询。

关键参数

bash
dig example.comdig +short example.comdig +trace example.com    # 完整解析过程dig @8.8.8.8 example.com  # 指定 DNS 服务器dig -x 8.8.8.8            # 反向解析

实战片段

bash
# 看 DNS 解析dig +short example.com# 看解析过程(哪些 DNS 服务器参与)dig +trace example.com# 指定 DNS 服务器dig @8.8.8.8 example.com

注意事项

  • dig
     比 nslookup 输出更详细
  • +trace
     模拟迭代查询
  • ANSWER: 0
     表示没解析到

10.8 nslookup:DNS 查询(兼容)

目的:DNS 查询的另一种工具。

实战片段

bash
nslookup example.comnslookup -type=mx example.com

注意事项

  • nslookup
     已被某些发行版标记为废弃
  • 优先用 dig 或 host

10.9 host:DNS 查询(简洁)

目的:简单的 DNS 查询。

实战片段

bash
host example.comhost -t mx example.com

十一、日志与包类命令

11.1 dmesg:内核日志

目的:看内核环形缓冲区的消息。

关键参数

bash
dmesg -T          # 人类可读时间dmesg -T -l err   # 只看错误dmesg -T -f kern  # 只看内核消息dmesg -C          # 清空(危险)

实战片段

bash
# 看内核日志dmesg -T | tail -100# 看 OOMdmesg -T | grep -i -E 'oom|killed'# 看硬件错误dmesg -T | grep -i -E 'mce|machine check|hardware error'# 看挂载错误dmesg -T | grep -i 'mount'

注意事项

  • dmesg -C
     会清空缓冲,禁止
  • 内核日志在重启后会保留到 /var/log/kern.log 或 messages
  • OOM、文件系统错误、硬件错误都会出现在 dmesg

11.2 journalctl:systemd 日志

目的:systemd 统一日志查询。

关键参数

bash
journalctl -u nginx.service                     # 服务日志journalctl -u nginx --since "1 hour ago"# 最近 1 小时journalctl -p err -b                            # 本次启动的错误journalctl -f                                   # 实时跟踪journalctl _PID=<pid>                           # 指定进程journalctl -k                                   # 内核日志journalctl --vacuum-time=7d                     # 清理 7 天前

实战片段

bash
# 看服务日志journalctl -u nginx --since "1 hour ago" --no-pager# 看本次启动的所有错误journalctl -p err -b --no-pager# 实时跟踪journalctl -u mysql -f# 看指定 PID 的日志journalctl _PID=$(pidof mysqld) --no-pager# 清理旧日志journalctl --vacuum-time=7d

注意事项

  • journalctl
     默认在内存中,重启会丢(除非配置持久化)
  • 持久化配置:/var/log/journal/ 目录
  • --no-pager
     防止分页(适合脚本)
  • 时间格式:"YYYY-MM-DD HH:MM:SS"

11.3 rpm / yum:CentOS/RHEL 包管理

关键命令

bash
rpm -qa                     # 所有已装包rpm -qa --last | head# 按安装时间排序rpm -V <package>            # 验证包文件是否被改rpm -qf /path/file          # 文件属于哪个包rpm -ql <package>           # 包安装的所有文件yum history# 安装历史yum history info <id>       # 某次安装详情yum history undo <id>       # 回滚

实战片段

bash
# 看最近 10 次安装yum history | head# 看某个文件的来源rpm -qf /usr/bin/ls# 看某个包安装的所有文件rpm -ql nginx# 看哪些包文件被改rpm -Va | head# 验证关键命令是否被替换rpm -V coreutils

注意事项

  • rpm -V
     输出异常说明文件被修改,可能是入侵
  • yum history undo
     可能回滚失败的依赖
  • rpm -V
     没有输出表示包文件完整

11.4 dpkg / apt:Debian/Ubuntu 包管理

关键命令

bash
dpkg -l                     # 所有已装包dpkg -L <package>           # 包安装的所有文件dpkg -S /path/file          # 文件属于哪个包dpkg -V                     # 验证包文件debsums -c                  # 验证包文件apt list --installed        # 已装包apt log# 安装日志

注意事项

  • dpkg -V
     可能提示缺失,常见于 logrotate 后的文件
  • debsums
     需要单独安装

十二、文本处理三剑客

12.1 grep:文本搜索

关键参数

bash
grep -n          # 显示行号grep -i          # 忽略大小写grep -r          # 递归grep -E          # 扩展正则grep -v          # 反向grep -c          # 计数grep -l          # 只显示文件名grep -A 5        # 显示匹配后 5 行grep -B 5        # 显示匹配前 5 行grep -C 5        # 显示匹配前后 5 行grep --color     # 高亮

实战片段

bash
# 在日志中找错误grep -nE 'error|exception' /var/log/messages# 递归找包含某字符串的文件grep -rn 'TODO' /opt/app/# 排除注释行grep -v '^#' /etc/nginx/nginx.conf# 找指定时间范围的日志grep '2026-07-03 14:2' /var/log/messages

注意事项

  • grep -E
     用扩展正则,grep -P 用 Perl 正则
  • 大文件用 grep --mmap 减少 I/O
  • grep -F
     按字面量搜索,跳过正则

12.2 awk:文本处理

关键参数

bash
awk '{print $1}'# 第一列awk -F: '{print $1}'# 自定义分隔符awk '$3 > 80' file              # 条件awk 'NR>1' file                 # 跳过第一行awk '{sum+=$1} END {print sum}'# 求和awk -v t=10 '$1 > t' file       # 传参

实战片段

bash
# 统计 access log 各 IP 访问次数awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head# 看系统连接的各个状态数量ss -tan | awk 'NR>1 {print $1}' | sort | uniq -c | sort -rn# 求某列总和ps -eo pcpu | awk '{sum+=$1} END {print sum}'# 格式化输出df -h | awk 'NR>1 {printf "%-20s %s\n", $6, $5}'

注意事项

  • awk
     的 $0 是整行,$1 $2 是字段
  • NR
     是行号,NF 是字段数
  • awk
     内部正则强大,能替代很多 grep + sed 组合

12.3 sed:流编辑器

关键参数

bash
sed 's/old/new/' file          # 替换每行第一个sed 's/old/new/g' file         # 替换所有sed -i.bak 's/old/new/g' file  # 原地编辑并备份sed -n '5,10p' file            # 显示 5-10 行sed '/^#/d' file               # 删除注释行sed '/pattern/d' file          # 删除匹配行sed -i '/pattern/d' file       # 原地删除

实战片段

bash
# 替换配置文件中的参数sed -i.bak 's/^port=.*/port=8080/' /etc/myapp/config.ini# 删注释行sed '/^#/d; /^$/d' /etc/nginx/nginx.conf# 提取指定行范围sed -n '10,30p' /var/log/messages# 多重替换sed -e 's/foo/bar/g' -e 's/baz/qux/g' file

注意事项

  • sed -i
     一定要先备份或加 .bak 后缀
  • 路径含 / 时分隔符改 # 或 |
  • sed -n 'Np'
     打印第 N 行

12.4 xargs:参数构造器

关键参数

bash
xargs -I {} cmd {}              # 占位符xargs -n 1 cmd                  # 每次 1 个参数xargs -P 4 cmd                  # 4 个并发xargs -d '\n' cmd               # 自定义分隔符

实战片段

bash
# 杀所有匹配进程ps -ef | grep 'java' | grep -v grep | awk '{print $2}' | xargs kill# 批量改文件权限find /var/log -name '*.log' | xargs chmod 644# 并行压缩find . -name '*.log' | xargs -P 4 gzip# 处理文件名含空格的find . -name '*.txt' -print0 | xargs -0 rm

注意事项

  • 没有 -I 时 xargs 默认按空格分词
    ,文件名含空格会出问题
  • 用 find -print0 + xargs -0 处理文件名含特殊字符
  • xargs -I {}
     显式占位符更安全

十三、find:文件查找

find 关键参数

bash
find /path -name '*.log'# 按名find /path -type f                 # 文件find /path -type d                 # 目录find /path -size +100M             # 大于 100Mfind /path -mtime -7               # 7 天内修改find /path -mtime +30              # 30 天前修改find /path -user www-data          # 按用户find /path -perm 777               # 按权限find /path -name '*.log' -delete   # 删除(危险)

实战片段

bash
# 找 /var/log 下 30 天前的文件find /var/log -name '*.log' -mtime +30# 找大文件find / -xdev -size +1G -type f 2>/dev/null# 干跑删除(先看会删什么)find /var/log -name '*.log' -mtime +30 -print# 真的删除(确认后再执行)find /var/log -name '*.log' -mtime +30 -delete

注意事项

  • find -delete
     一定要先 find -print 看一遍
  • -xdev
     不跨文件系统,避免扫描 /proc/sys
  • 大目录用 -maxdepth 限制深度
  • 不要
    对根目录执行 find -delete

十四、服务管理类命令

14.1 systemctl:服务管理

关键参数

bash
systemctl status <service>systemctl start <service>systemctl stop <service>systemctl restart <service>systemctl reload <service>systemctl enable <service>systemctl disable <service>systemctl list-units --type=servicesystemctl list-units --state=failedsystemctl cat <service>systemctl show <service>

实战片段

bash
# 看服务状态systemctl status nginx# 看服务启动失败原因systemctl status nginx -l --no-pagerjournalctl -u nginx --no-pager# 看服务配置systemctl cat nginx# 看运行时配置systemctl show nginx | grep -E 'MemoryMax|CPUQuota'# 重启并查看日志systemctl restart nginxjournalctl -u nginx -f

注意事项

  • systemctl reload
     不中断服务(如果支持)
  • systemctl restart
     会短暂中断
  • 状态 inactive (dead) 不一定是问题,可能服务不自动启动
  • 状态 active (running) 但端口没监听 = 假活

14.2 journalctl:服务日志

见 11.2 节。

14.3 service:兼容旧 SysV

实战片段

bash
service nginx statusservice nginx restart

注意事项

  • service
     命令会调用 systemctl
  • 仅用于兼容性,新脚本用 systemctl

十五、文件与权限类命令

15.1 stat:文件元信息

实战片段

bash
stat /etc/passwd# File: /etc/passwd# Size: 2841       Blocks: 8          IO Block: 1024   regular file# Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)# Access: 2026-07-03 10:23:11.000000000 +0800# Modify: 2026-06-30 14:23:11.000000000 +0800# Change: 2026-06-30 14:23:11.000000000 +0800

注意事项

  • Access
     时间在 2.6+ 内核可能被记录不准
  • Modify
     是内容修改时间
  • Change
     是元数据修改时间

15.2 getfacl / setfacl:ACL 权限

实战片段

bash
# 看 ACLgetfacl /var/www/html# 给 nginx 用户加读权限setfacl -m u:nginx:r-x /var/www/html# 移除 ACLsetfacl -x u:nginx /var/www/html

注意事项

  • 文件系统挂载时启用 ACL:mount -o acl /dev/sda1 /mnt
  • ACL 比传统 ugo 权限更灵活
  • 备份时要带 getfacl -R 保存 ACL

15.3 chattr / lsattr:文件属性

实战片段

bash
# 设为不可修改(重要文件用)chattr +i /etc/passwdlsattr /etc/passwd# 设为只追加(日志用)chattr +a /var/log/messages

注意事项

  • chattr +i
     防止文件被改、被删,但 root 也能解
  • chattr +a
     文件只能追加,不能修改
  • 误用 chattr +i 会让配置改不动,紧急时用 chattr -i

十六、资源限制类命令

16.1 ulimit:进程资源限制

关键参数

bash
ulimit -a        # 所有限制ulimit -n        # 文件描述符ulimit -u        # 进程数ulimit -s        # 栈大小ulimit -t        # CPU 时间ulimit -v        # 虚拟内存

实战片段

bash
# 看所有限制ulimit -a# 临时修改(仅当前 shell)ulimit -n 65535# 永久修改echo"ulimit -n 65535" >> /etc/profile

注意事项

  • ulimit
     在登录 shell 里设置才生效
  • systemd 服务的限制在 unit 文件里 LimitNOFILE=

16.2 /etc/security/limits.conf

实战片段

bash
cat /etc/security/limits.conf

配置格式

text
#<domain> <type> <item> <value>* soft nofile 65535* hard nofile 65535root soft nofile 65535root hard nofile 65535

注意事项

  • 修改后需要重新登录才生效
  • systemd 服务不读这个文件,要在 unit 里设置
  • *
     表示所有用户,但 root 可能需要单独设置

十七、配置示例汇总

17.1 进程信息收集脚本

bash
#!/usr/bin/env bash# /usr/local/bin/proc-info.shPID=${1:?"usage: $0 <pid>"}echo"=== Process Info for PID $PID ==="ps -p $PID -o pid,ppid,user,stat,etime,pcpu,pmem,comm,argsechoecho"=== Status ==="cat /proc/$PID/status 2>/dev/nullechoecho"=== Wchan ==="cat /proc/$PID/wchanechoecho"=== Open files (top 20) ==="ls -la /proc/$PID/fd 2>/dev/null | head -20echoecho"=== Open network connections ==="ls -la /proc/$PID/fd 2>/dev/null | grep socket | wc -lecho sockets

17.2 系统健康检查脚本

bash
#!/usr/bin/env bash# /usr/local/bin/health-check.shecho"=== Uptime ==="uptimeechoecho"=== CPU ==="mpstat -P ALL 2 2 | tail -n $(($(nproc)+1))echoecho"=== Memory ==="free -hechoecho"=== Disk ==="df -hechoecho"=== Inode ==="df -iechoecho"=== I/O ==="iostat -xz 2 2 | tail -n +4echoecho"=== Connections ==="ss -sechoecho"=== Failed services ==="systemctl --failed --no-pager

十八、风险提醒

  • rm -rf
     任何目录前先 ls 确认
  • find -delete
     一定要先 find -print 看
  • kill -9
     数据库进程会导致数据损坏
  • iptables -F
     容易失联
  • chmod 777
     是危险的万能钥匙
  • chattr +i
     后文件改不动
  • dd if=/dev/zero of=/dev/sda
     会清空磁盘
  • 配置文件改之前先备份
  • Shell 脚本路径加引号
  • 远程操作前确认网络稳定

十九、验证方式

  • 跑一遍 health-check.sh 看输出
  • 用 wrk 压测对比
  • 看监控基线是否正常
  • 用 strace -c 跟踪进程的系统调用分布
  • 写运维剧本让新人执行一遍

二十、回滚方案

  • 配置改之前先 cp 备份
  • 服务改之前先 systemctl show 看状态
  • 关键操作前先 iptables-save 备份规则
  • 配置文件入 Git,方便回滚
  • 数据库 schema 改之前先备份
  • 升级包之前先 yum history 记下 ID

二十一、生产环境注意事项

  • 任何破坏性操作必须三思
  • 重要操作必须有第二个人知道
  • 业务高峰期不做高风险操作
  • 改配置文件先在测试环境试
  • 监控先行:先看基线,再变更
  • 重要变更走变更工单
  • 数据库 / etcd 重要数据定期备份
  • 命令风险等级标注在 Runbook 里
  • 容器内命令要确认 namespace
  • 敏感信息(密码、Token)通过环境变量或密钥管理,不要写进脚本

二十二、总结

把命令练成肌肉记忆是运维工程师的基本功。50+ 个常用命令覆盖了 CPU、内存、磁盘 I/O、网络、进程、日志、服务管理、文本处理、资源限制等所有常见排障场景。

最后给初中级运维工程师的几点建议:

  1. 每个命令都亲手敲一遍
    :看会不等于会
  2. 建立"现象 → 命令"的反射弧
    :先看现象,再想命令
  3. 做笔记
    :把所有命令的实战场景记下来
  4. 整理 Runbook
    :把命令按场景组织成可执行文档
  5. 风险意识
    :每个命令前先判断风险等级
  6. 持续学习
    :新工具(bpftrace、systemd-cgtop)持续关注
  7. 配合监控
    :命令 + 监控才能快速定位
  8. 复盘总结
    :每次故障后整理使用的命令

把这 50+ 个命令练成肌肉记忆,配合上监控告警和 Runbook,你就能在 5 分钟内从"业务慢了"走到"根因已定",剩下就是按操作手册执行。

文末福利

今天给大家分享一份超级牛掰的Linux学习笔记,足足有1456页!是一位Linux运维大佬整理分享的,分享是获得大佬同意的,大家有需要的尽管收藏起来!

笔记介绍

这份笔记非常全面且详细,从Linux基础到shell脚本,再到防火墙、数据库、日志服务管理、Nginx、高可用集群、Redis、虚拟化、Docker等等,与其说Linux学习笔记,不如说是涵盖了运维各个核心知识。

并且图文并茂,代码清晰,每一章下面都有更具体详细的内容,十分适合Linux运维学习参考!

笔记展示

笔记下载

扫描下方二维码,回复暗号1456页Linux笔记“,即可100%免费领取成功

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 18:23:27 HTTP/2.0 GET : https://f.mffb.com.cn/a/503410.html
  2. 运行时间 : 0.100597s [ 吞吐率:9.94req/s ] 内存消耗:5,133.72kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=483527dee3a1ac38c0f3c2f3619fbd5a
  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.000802s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000784s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000281s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000247s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000482s ]
  6. SELECT * FROM `set` [ RunTime:0.000205s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000523s ]
  8. SELECT * FROM `article` WHERE `id` = 503410 LIMIT 1 [ RunTime:0.000870s ]
  9. UPDATE `article` SET `lasttime` = 1783160607 WHERE `id` = 503410 [ RunTime:0.014338s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000400s ]
  11. SELECT * FROM `article` WHERE `id` < 503410 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000693s ]
  12. SELECT * FROM `article` WHERE `id` > 503410 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000497s ]
  13. SELECT * FROM `article` WHERE `id` < 503410 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000704s ]
  14. SELECT * FROM `article` WHERE `id` < 503410 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000875s ]
  15. SELECT * FROM `article` WHERE `id` < 503410 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.007109s ]
0.102232s