当前位置:首页>Linux>测试工程师必备的Linux知识

测试工程师必备的Linux知识

  • 2026-08-18 23:11:48
测试工程师必备的Linux知识

软件测试从入门到精通 · 第26篇


很多测试新人在面试时会被问到一个问题:“你会Linux吗?”

有人回答:“会一点,会看日志。”面试官追问:“怎么看一个10GB的日志文件中某个关键字出现了多少次?”很多人就答不上来了。

在互联网公司中,90%以上的服务端应用跑在Linux上。不管你做功能测试、接口测试还是性能测试,如果不会基本的Linux操作,排查问题会非常受限。

但这并不意味着你需要成为一个Linux运维专家。对测试工程师来说,Linux的学习目标是掌握日常工作最常用的命令和操作思路。这篇文章就聚焦于测试工作中真正用得到的Linux知识。读完本文,你将能够独立登录服务器、查看日志分析问题、部署测试环境、编写简单的自动化脚本。


测试工程师接触Linux的典型场景:

  • 查看日志定位问题:测试环境报错了,查看报错日志。

  • 部署测试环境:新版本需要重新部署war包或jar包。

  • 验证数据:想知道数据库里到底有没有这条记录。

  • 性能测试:压测时需要查看服务器的CPU、内存、磁盘。

  • 环境问题排查:测试环境起不来,需要看进程是否在运行、端口是否被占用。

  • Docker容器管理:测试环境部署在容器中,需要查看容器状态、重启容器、查看容器日志。

  • 文件传输:从本地上传测试包到服务器,或从服务器下载日志文件。

这些场景都不需要深入的Linux知识,但必须会基础操作。


一、连接Linux服务器

Linux服务器通常没有图形界面,所有操作都通过终端完成。第一步就是用 SSH(Secure Shell)协议远程登录到服务器。

SSH连接

SSH是远程连接Linux服务器的标准协议,加密传输,比Telnet等明文协议安全得多。连接时需要提供服务器的IP地址、用户名和密码或密钥。

# 基本格式ssh user@host# 示例:用密码登录ssh root@192.168.1.100# 首次连接会出现确认提示“The authenticity of host...can't be established”# 输入yes确认即可,断开连接输入exit或按Ctrl+D# 使用密钥登录(推荐,无需每次输密码)ssh -i ~/.ssh/id_rsa root@192.168.1.100# 设置密钥登录(一次配置,后续免密)ssh-copy-id root@192.168.1.100       # 将本机公钥传到服务器

如果经常连接多台服务器,每次都输完整的ssh user@ip很麻烦。推荐配置~/.ssh/config文件,用简短别名代替IP,也可以在配置中指定密钥文件和端口:

# ~/.ssh/config示例Host test-server                # 别名,之后直接用ssh test-server    HostName 192.168.1.100     # 实际IP地址    User root                   # 登录用户名    Port 22                     # SSH端口(默认22)    IdentityFile ~/.ssh/id_rsa  # 使用的私钥文件# 配置后只需输入简短别名即可连接ssh test-server

文件传输(SCP)

连接服务器后,经常需要将本地的测试包或数据文件上传到服务器,或者把服务器的日志文件下载到本地做分析。scp命令基于SSH协议,安全可靠:

# 本地上传到服务器scp app.jar root@192.168.1.100:/home/deploy/# 从服务器下载到本地scp root@192.168.1.100:/home/logs/app.log ./app.log# 递归传输整个目录(上传多个文件时常用)scp -r testdata/ root@192.168.1.100:/home/testdata/

常用SSH客户端

如果不想用命令行,也可以使用图形化的SSH客户端,对于Windows用户尤其方便:

  • Xshell(Windows):功能强大,国产企业常用。

  • SecureCRT(Windows/Mac):老牌工具。

  • Termius(全平台):界面美观,支持移动端。

  • Windows Terminal+SSH(Windows):免费、轻量。

  • iTerm2(Mac):Mac用户首选。


二、核心命令分类精讲

Linux有数百个命令,但测试工程师日常用到的不超过20个。下面按使用场景分类讲解,每个命令都会说明什么时候用和为什么要这样用。

2.1 目录和文件操作

这是进入Linux世界的第一步,你需要知道自己在哪个目录、目录里有什么文件、如何创建和删除文件。这些命令和Windows的文件管理器做的事情本质上一样,只是没有图形界面。

# 查看当前目录pwd                     # 输出:/home/testuser                        # 不知道自己在哪里时,先敲pwd# 切换目录cd /usr/local           # 进入指定目录cd ..                   # 返回上一级cd ~                    # 返回home目录cd -                    # 返回上一次所在的目录(非常常用!)# 列出文件ls                      # 列出当前目录文件ls -l                   # 详细信息(权限、大小、时间)ls -la                  # 包括隐藏文件ls -lh                  # 人类可读的大小(KB/MB/GB)ls -lt                  # 按修改时间排序(最新的在最前)# 创建目录mkdir test              # 创建test目录mkdir -p a/b/c          # 递归创建多层目录# 创建文件touch test.log          # 创建空文件# 复制cp file1 file2          # 复制文件cp -r dir1 dir2         # 递归复制目录# 移动/重命名mv old.txt new.txt      # 重命名mv file.txt /tmp/       # 移动到/tmp# 删除(慎用!)rm file.txt             # 删除文件rm -rf directory/       # 强制递归删除目录--高危操作!

2.2 文件查看命令

这是测试工程师使用频率最高的命令集。你登录服务器的首要任务通常是查看日志文件。日志文件可能很大(GB级别),用对了工具才能快速找到想要的条目。

# cat-查看小文件全部内容cat application.properties    # 查看配置文件(只适合几十行的小文件)# less-分页查看大文件(推荐!)less app.log                  # 打开大日志文件,可以上下翻页,不会卡死# 进入less后的操作:# 空格键→翻到下一页# b,翻回上一页# /关键字,搜索关键词(按n跳到下一个匹配,N跳到上一个)# q,退出# G,跳到最后一行(看最新的日志)# g,跳到第一行# head-查看文件头部head -n 20 app.log            # 只看前20行,适合看日志格式、表头# tail-查看文件尾部(最常用!)tail -f app.log               # 实时监控日志输出(Ctrl+C退出)                              # 部署完重启服务后,用这个看日志有没有滚动tail -n 100 app.log           # 看最后100行,适合刚登录时快速扫一眼tail -f app.log | grep ERROR  # 实时监控中只显示错误日志(组合技!)

2.3 日志查看三大核心命令

测试工程师看日志,90%的情况用这三个命令的组合就能搞定:

  • grep:根据关键词过滤行。

  • awk:按列截取数据。

  • sort/uniq:排序和去重统计。

# grep-文本搜索(日志分析中最常用的命令)grep "ERROR" app.log                       # 最基本的用法:搜索包含ERROR的行grep -i "error" app.log                    # 忽略大小写,匹配ERROR/error/Errorgrep -n "ERROR" app.log                    # 显示行号,方便定位代码grep -C 5 "ERROR" app.log                  # 显示匹配行前后各5行,看错误上下文grep "$(date +%Y-%m-%d)" app.log | grep "ERROR"   # 组合搜索:先筛当天的,再筛错误的grep -c "ERROR" app.log                    # 统计出现次数(不列出内容,只输出数字)grep -v "DEBUG" app.log                    # 反向匹配——排除DEBUG行,只看其他级别# awk-文本处理(按列提取数据)awk '{print $1, $4}' app.log               # 打印第1列和第4列,默认空格分隔awk -F',' '{print $2}' data.csv            # 以逗号分隔,取第2列(处理CSV)# 实际组合:统计日志中每个接口的调用次数grep "API调用" app.log | awk '{print $5}' | sort | uniq -c | sort -rn

实战场景

用户反馈下单失败,你登录测试服务器:

# 1.先看最新日志tail -f /home/logs/app.log# 2.搜索用户的订单号grep "ORDER20240520001" /home/logs/app.log# 3.查看这个订单相关的错误日志grep "ORDER20240520001" /home/logs/app.log | grep -i "error\|exception\|fail"# 4.看错误周围的上下文grep -C 10 "ORDER20240520001" /home/logs/app.log | grep -A 5 "ERROR"# 5.统计这个错误出现了多少次grep -c "NullPointerException" /home/logs/app.log

2.4 权限管理

Linux使用权限系统控制谁能读、写、执行文件。测试过程中,你常会遇到Permission denied错误,这时就需要检查文件权限。权限分为三组:文件所有者(user)、同组用户(group)、其他用户(others),每组可以是r(读)、w(写)、x(执行)的组合。

# 查看权限ls -l                     # 输出示例:-rw-r--r-- 1 root root 1024 May 20 10:00 file.txt                          # rw- (所有者可读写) r-- (同组只读) r-- (其他人只读)                          # 第一个字符:-普通文件,d目录# 修改权限chmod 755 script.sh       # 所有者rwx,同组r-x,其他人r-xchmod +x script.sh        # 加执行权限,Shell脚本部署后经常需要这步# 数字权限速查:# 7 = rwx (读+写+执行)# 5 = r-x (读+执行)# 4 = r-- (只读)# 常用:755 (可执行文件) /644 (普通文件)

2.5 进程管理

测试环境出问题时,第一步往往是看服务进程是否还活着。进程就是正在运行的程序,每个进程有一个唯一的PID(进程ID)。ps查看当前系统上有哪些进程,top像任务管理器一样实时监控资源占用。

# 查看进程ps -ef | grep java        # 列出所有Java进程(管道符+grep过滤)ps -ef | grep nginx       # 查看nginx进程是否在运行# 实时进程监控top                       # 类似任务管理器,按CPU或内存排序# top界面中:# PID,进程ID# %CPU,CPU占用率(过高说明有性能问题)# %MEM,内存占用率# 按q退出# 杀掉进程kill 12345                # 发送SIGTERM信号,让进程自行清理后退出kill -9 12345             # 发送SIGKILL信号,强制杀掉——注意这不会给进程善后的机会

2.6 网络相关

测试环境部署完成后,你需要验证服务端口是否已经启动,或者排查端口被占用的原因。以下命令覆盖了测试中最常见的网络排查场景。

# 查看端口占用(哪个进程在监听这个端口?)netstat -tlnp | grep 8080         # 查看8080端口被哪个进程占用(需sudo)netstat -anp | grep 3306          # 查看MySQL端口所有连接(需sudo)ss -tlnp | grep 8080              # 替代netstat,无root也可查看端口监听状态# 测试端口是否通(验证服务是否可访问)telnet 192.168.1.100 8080         # 测试能否连上(如无telnet可用nc)nc -zv 192.168.1.100 8080        # telnet的现代替代命令curl http://localhost:8080/health # 测试HTTP接口是否返回正常# 查看IPip addr                            # 查看本机IP(推荐)ifconfig                           # 旧命令,部分系统需安装net-tools

2.7 磁盘和内存

压测时要关注服务器资源情况。磁盘满了日志写不进去、内存不够导致OOM被杀,都是测试中常见的问题。

# 磁盘空间df -h                   # 查看磁盘使用情况(重点看Use%列,超过80%需要关注)du -sh /home/logs/      # 查看某个目录的大小,找出占用空间最大的目录# 内存free -h                 # 查看内存使用情况# 关注available列:实际可用内存(不是free列)# available=free+可回收的缓存,这才是真正能用的内存

2.8 服务管理(systemctl)

现代Linux用systemd管理系统的各种后台服务。相比手动kill PID+nohup ... &,systemctl提供了标准化的服务管理方式,启动、停止、查看状态都可以一键完成。

# 查看服务状态systemctl status nginx          # 查看nginx是否在运行、有无错误日志systemctl status docker         # 查看docker服务状态# 启动/停止/重启服务sudo systemctl start nginx      # 启动nginxsudo systemctl stop nginx       # 停止nginxsudo systemctl restart nginx    # 重启nginx(修改配置后常用)# 设置开机自启sudo systemctl enable nginx     # 启用开机自动启动sudo systemctl disable nginx    # 取消开机自启# 查看系统日志journalctl -u nginx              # 查看nginx的系统日志(包含启动失败的原因)journalctl -u nginx --since "1 hour ago"   # 只看最近1小时的日志journalctl -f                    # 实时监控系统日志(类似tail -f)

2.9 压缩与解压

拿到测试包后第一件事通常是解压,或者在部署前需要先压缩再传输。tar和zip是最常见的两种格式。

# tar.gz(Linux上最常见的压缩格式)tar -xzf app.tar.gz              # 解压(x=解压,z=gzip,f=文件)tar -czf app.tar.gz /home/deploy/  # 压缩(c=创建压缩包)# zip(Windows和Linux通用的格式)unzip app.zip                    # 解压zip -r app.zip /home/deploy/    # 压缩(-r递归,包含子目录)# 查看压缩包内容(不解压)tar -tzf app.tar.gz              # 列出tar.gz中的文件列表unzip -l app.zip                 # 列出zip中的文件列表

三、环境部署基础

测试工程师经常需要自己部署测试环境。新版本打好了包,你需要上传到服务器、停旧服务、备份、启动新版本。下面是最常用的几种部署场景。

3.1 部署Java应用

Java后端服务通常打包为.jar(Spring Boot微服务)或.war(传统Web应用)。部署步骤一般是:上传→停旧→备份→启动。其中nohup保证终端关闭后进程继续运行,2>&1将错误输出也重定向到日志文件方便排查。

# 1.上传jar包到服务器scp app.jar root@192.168.1.100:/home/deploy/# 2.停止旧服务ps -ef | grep app.jar           # 先找到旧进程的PIDkill <PID>                      # 发送终止信号# 3.备份旧版本(保留一个历史版本,方便回滚)mv app.jar app.jar.bak.$(date +%Y%m%d)# 注意:若同一天重复部署,备份文件会重名覆盖;需要保留多份时可加时分秒# mv app.jar app.jar.bak.$(date +%Y%m%d%H%M%S)# 4.启动新版本nohup java -jar app.jar --spring.profiles.active=test > app.log 2>&1 &# 参数说明:# nohup:即使关闭终端窗口,进程也不退出# > app.log:把原本输出到屏幕的信息写入app.log文件# 2>&1:把错误信息(stderr)也写入同一个日志文件# &:放到后台运行,不占用当前终端

3.2 使用systemctl管理服务

如果应用已经注册为系统服务(通过systemd管理),用systemctl来管理比手动kill+nohup更规范。它能一键启停、查看运行状态,而且系统重启后可以自动拉起服务。

# 启动/停止/重启sudo systemctl start myappsudo systemctl stop myappsudo systemctl restart myapp# 查看运行状态(含最近日志)systemctl status myapp# 设置开机自启sudo systemctl enable myapp

3.3 使用Docker部署

越来越多的项目使用容器化部署。Docker将应用和依赖打包在一起,部署时只需要拉取镜像、启动容器,不需要手动配置JDK版本、环境变量等。对测试人员来说,最基本的操作是查看容器状态、重启容器和查看容器日志。

# 查看容器状态docker ps                      # 查看当前运行中的容器docker ps -a                   # 查看所有容器(含已停止的)# 管理容器生命周期docker start <容器名>docker stop <容器名>docker restart <容器名># 查看容器日志docker logs -f <容器名>        # 类似tail -f,实时跟踪容器输出# 使用docker-compose部署整套环境docker-compose up -d           # 后台启动所有服务docker-compose down            # 停止并移除所有服务docker-compose logs -f         # 查看所有服务的合并日志

docker-compose(V1)是独立安装的旧命令。

新版Docker内置docker compose(V2)。

二者参数相同,V2无需单独安装compose插件。

3.4 环境变量管理

应用启动时通常需要读取环境变量来配置数据库地址、密钥、运行模式等。部署或调试时,你可能需要查看当前环境变量、临时修改或永久写入配置。

# 查看环境变量echo $JAVA_HOME                # 查看单个变量的值env | grep JAVA                # 搜索所有包含JAVA的环境变量# 临时设置(仅当前终端会话有效,关闭终端后失效)export JAVA_HOME=/usr/lib/jvm/java-11# 永久设置(写入用户配置文件,每次登录自动生效)echo 'export JAVA_HOME=/usr/lib/jvm/java-11' >> ~/.bashrcsource ~/.bashrc               # 使配置立即生效,不用重新登录

3.5 查看服务状态

部署完成后,需要通过以下步骤逐一确认服务是否正常启动:

# 1.确认进程在运行ps -ef | grep app.jar# 2.查看日志确认启动成功(Spring Boot启动完成会输出Started)tail -f app.log | grep "Started"# 3.检查端口是否在监听netstat -tlnp | grep 8080# 4.用curl测试接口是否正常响应curl http://localhost:8080/api/health

四、Shell脚本入门

当你需要重复执行一组Linux命令时(比如每天部署测试环境),把它们写成一个Shell脚本,就可以一次编写、反复使用。Shell脚本本质上就是把多条命令按顺序写到一个.sh文件里,加上变量、条件判断等控制逻辑。

4.1 第一个脚本

#!/bin/bash# 文件名:deploy.sh# 功能:一键部署测试环境echo "=== 开始部署 ==="# 停止旧服务echo "停止旧服务..."PID=$(ps -ef | grep app.jar | grep -v grep | awk '{print $2}')if [ -n "$PID" ]; then    kill $PID    echo "已停止旧服务"fi# 备份echo "备份旧版本..."mv /home/deploy/app.jar /home/deploy/backup/app.jar.$(date +%Y%m%d)# 启动新版本echo "启动新版本..."nohup java -jar /home/deploy/app.jar > /home/logs/app.log 2>&1 &echo "=== 部署完成,请检查日志 ==="

使用脚本:

chmod +x deploy.sh     # 给脚本添加执行权限(只需一次)./deploy.sh            # 执行脚本bash deploy.sh         # 也可用bash执行(无需执行权限)bash -x deploy.sh      # 调试模式,逐行打印执行过程
  1. 变量引用加双引号("$LOG_FILE"),避免文件名含空格时脚本出错。

  2. 调试脚本用bash -x script.sh,可以逐行打印执行过程,快速定位问题。

  3. 第一行#!/bin/bash告诉系统用哪个解释器来执行脚本。

4.2 常用脚本:日志分析

这个脚本自动统计当天的错误日志,输出ERROR总数、异常类型分布和最近10条错误。适合每天早上跑一遍,快速掌握测试环境的运行状态。

#!/bin/bash# 文件名:check_error.sh# 功能:统计当天错误日志LOG_FILE="/home/logs/app.log"TODAY=$(date +%Y-%m-%d)echo "=== ${TODAY} 错误日志统计 ==="# 统计各种错误类型echo "ERROR总数:"grep "$TODAY" "$LOG_FILE" | grep -c "ERROR"echo ""echo "异常统计:"grep "$TODAY" "$LOG_FILE" | grep "Exception" | awk -F':' '{print $NF}' | sort | uniq -c | sort -rnecho ""echo "最近10条ERROR:"grep "$TODAY" "$LOG_FILE" | grep "ERROR" | tail -10

4.3 定时任务(crontab)

测试环境中经常需要定时执行任务:每天凌晨清理过期日志、每小时检查服务健康状态、每周末备份数据。crontab是Linux内置的定时任务工具,格式为“分 时 日 月 周 命令”,用*表示“每”。

# 编辑当前用户的定时任务crontab -e# 五个时间字段的含义:# ┌─ 分钟 (0-59)# │ ┌─ 小时 (0-23)# │ │ ┌─ 日 (1-31)# │ │ │ ┌─ 月 (1-12)# │ │ │ │ ┌─ 星期 (0-7, 0和7都表示周日)# * * * * * 命令# 示例:每天凌晨3点清理一周前的日志0 3 * * * /home/scripts/clean_logs.sh# 示例:每小时执行一次健康检查0 * * * * /home/scripts/health_check.sh# 示例:每天早8点到晚8点,每30分钟检查一次*/30 8-20 * * * /home/scripts/check.sh# 查看当前已有的定时任务列表crontab -l

五、vim基础操作

服务器上没有图形界面,修改配置文件只能用vim。vim有两种常用模式:普通模式(默认,按键盘触发命令)和编辑模式(按i进入,此时可以输入文字)。不需要成为vim高手,会以下操作就能应付日常工作:

vim文件名                    # 用vim打开文件(如果文件不存在则新建)按i键                       # 进入编辑模式,此时可以输入文字编辑内容...                    # 随意修改文件内容Esc键                     # 退出编辑模式,回到普通模式:w                            # 保存文件(write):q                            # 退出vim(quit):wq                           # 保存并退出:q!                           # 不保存,强制退出(修改了但不想保存时用)/关键字                       # 在文件中搜索指定文字(按n跳到下一个,N跳到上一个):%s/旧文本/新文本/g            # 全局替换。把文件中所有旧文本替换为新文本dd                            # 删除光标所在的当前行yy                            # 复制当前行p                             # 粘贴到光标后面u                             # 撤销上一步操作gg                            # 跳到文件第一行Shift+G                       # 跳到文件最后一行:set number                   # 显示行号,方便定位# 如果按了Ctrl+S导致键盘无响应,按Ctrl+Q解除冻结# (不少新手误按Ctrl+S以为vim卡死了,其实只是终端暂停了输出)

六、测试工程师Linux能力CheckList

必须掌握:

  • SSH连接服务器

  • 文件传输(scp)

  • 目录和文件基本操作(cd/ls/mkdir/cp/mv/rm)

  • 查看文件(cat/less/head/tail)

  • 使用tail -f实时看日志

  • 使用grep搜索日志

  • 使用grep+tail+awk组合分析日志

  • 查看进程(ps/top)

  • 杀进程(kill)

  • 查看端口(netstat/ss)

  • 部署Java应用(nohup)

  • vim基本编辑

加分项:

  • 修改权限(chmod)

  • 压缩解压(tar/zip)

  • 服务管理(systemctl)

  • Docker容器管理

  • 环境变量配置(export/env)

  • 磁盘内存查看(df/free)

  • 写简单的Shell脚本

  • 定时任务(crontab)


写在最后

Linux对测试工程师来说,不是加分项,而是必备技能。你不需要成为运维专家,但要能做到独立登录服务器、找到日志、分析问题、重启服务。这能帮助你在工作中减少对他人的依赖,独立定位和解决问题。

下一篇,我们学习Git——代码版本管理的入门到测试日常使用。


本文为《软件测试从入门到精通》系列第26篇,本系列持续更新中。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 18:19:35 HTTP/2.0 GET : https://f.mffb.com.cn/a/509290.html
  2. 运行时间 : 0.330371s [ 吞吐率:3.03req/s ] 内存消耗:4,915.80kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=4430da786a93208499215531648e2b48
  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.001038s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001358s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.022546s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000788s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001481s ]
  6. SELECT * FROM `set` [ RunTime:0.005578s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001474s ]
  8. SELECT * FROM `article` WHERE `id` = 509290 LIMIT 1 [ RunTime:0.006994s ]
  9. UPDATE `article` SET `lasttime` = 1787307575 WHERE `id` = 509290 [ RunTime:0.007763s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.016499s ]
  11. SELECT * FROM `article` WHERE `id` < 509290 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.014386s ]
  12. SELECT * FROM `article` WHERE `id` > 509290 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003264s ]
  13. SELECT * FROM `article` WHERE `id` < 509290 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.034784s ]
  14. SELECT * FROM `article` WHERE `id` < 509290 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.024630s ]
  15. SELECT * FROM `article` WHERE `id` < 509290 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002086s ]
0.334015s