当前位置:首页>Linux>如何学习 Linux 命令行,有哪些经验思路和方法?

如何学习 Linux 命令行,有哪些经验思路和方法?

  • 2026-08-19 04:07:40
如何学习 Linux 命令行,有哪些经验思路和方法?

研一开学第二周,师兄扔给我一个服务器账号,说数据在 /data 下面,你先跑个 baseline。

我当时点头点得特别果断。

然后我在那台机器前坐了三个小时,什么都没跑起来。

不是代码写不出来,是我压根不知道自己在哪。屏幕上就一行光标闪着,我连怎么确认当前目录都要现搜。中间我误删了一个文件,也不知道找谁认领;我改完 .bashrc 保存退出,环境还是老样子;最后我实在扛不住,去问师兄。

他没笑我,就走过来敲了四个命令,问题解决了。

pwdls -lawhich pythonecho $PATH

四个。加起来不到三十个字符。

那天我意识到一件事:我不是不会用 Linux,我是脑子里没有一张关于这台机器的地图。

后面两年多我在服务器上熬了无数个夜,回头看,学命令行这件事我走过的弯路挺典型的,也总结出了一些确实有用的东西。这篇就把它讲清楚,尽量不讲空话。


一、先把最大的误区拆掉:命令行不是知识,不该拿来背

我刚开始学的时候干了一件特别愚蠢的事。

我找了一份 Linux 常用命令一百条的清单,打印出来,贴在显示器旁边。

三个月后我撕了它。

因为那张纸上的命令,一半我从来没用过一次,另一半我天天用,用得根本不需要看纸。

这就是问题所在。命令行的能力不是靠记忆量堆出来的,它更接近骑车和打字。你不是靠背下来的,你是靠在具体麻烦里用出来的。

我的判断是,很多人学不下去,就是因为一开始就选错了模式。

背清单的模式有三个致命伤。

第一,没有场景,记不住。你今天背了 du,如果一个月内没遇到磁盘满,你一定会忘。

第二,没有痛感,理解不深。我第一次真正搞懂 du 和 df 的区别,不是看教程,是磁盘满了、我找了一下午没找到大文件在哪。

第三,最要命的,背命令给不了你排查能力。真实场景里没人告诉你该用哪个命令,你面对的只是一句「它跑不了」。

所以正确的入门姿势不是背命令,是先在脑子里装几个心智模型,让你看到陌生命令不慌,看到报错知道往哪看。

下面这一节是我觉得整篇最值钱的部分。


二、四个心智模型,比一百条命令有用

模型一:所有命令的结构都是同一套

绝大多数命令长这样:

命令名 选项 参数

ls -lh /data

ls 是命令,-lh 是选项,/data 是参数。

这里有几个规律,理解了以后你看任何陌生命令都不会懵。

单横线加单字母是短选项,可以合并。-l -h 等于 -lh

双横线加单词是长选项,一般不能合并。--help--recursive

同一个字母在不同命令里可能完全不同。-r 在 cp 里是递归,在 sort 里是反向。所以不要试图记「-r 是什么意思」,要记「这个命令的 -r 是什么意思」。

有些选项后面要跟值。-n 1--name test

这个规律很朴素,但它带来的效果是:你看到 rsync -avzP src/ dst/ 的时候,不会觉得它是一串咒语,你知道那是四个开关和两个路径。

模型二:一切都是文本流,而且有三条通道

这个是理解命令行的分水岭。

每个命令都有三条通道:

标准输入,编号 0,数据从哪进来。 标准输出,编号 1,正常结果往哪出。 标准错误,编号 2,报错往哪出。

默认情况下,1 和 2 都打到你的屏幕上,所以看起来是一回事。它们不是一回事。

这就解释了一个新手极其常见的困惑。

你跑了这么一条:

python train.py > log.txt

然后你发现报错还在屏幕上刷,log.txt 里干干净净。

因为 > 只重定向了 1 号通道,报错走的是 2 号。

正确写法是把两条通道合起来:

python train.py > log.txt 2>&1

2>&1 的意思是把 2 号通道指向 1 号通道现在的地方。

顺手把重定向符号一次说清楚:

> 覆盖写入,原文件内容直接没了。 >> 追加写入,接在后面。 2> 只存报错。 &> 全部存进去,是上面那种写法的简写。 /dev/null 是黑洞,2> /dev/null 表示报错我不看了。

还有一个我用得非常频繁的:

python train.py 2>&1 | tee log.txt

tee 的作用是既打到屏幕,又存进文件。跑长任务的时候特别舒服,你能实时看,也能事后翻。

这一小节我建议真正动手试一遍,试完你对命令行的理解会上一个台阶。

模型三:管道,也就是 Unix 的核心哲学

Unix 的设计思路是:每个工具只做一件小事,做好,然后靠管道拼起来。

| 的意思就是把左边命令的输出,塞给右边命令当输入。

我举一个能把这个思想讲透的例子。假设你有一份访问日志,你想知道哪些 IP 触发 404 最多。

grep " 404 " access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -10

一步一步看:

grep " 404 " 挑出含 404 的行。 awk '{print $1}' 只取每行第一列,也就是 IP。 sort 排序。 uniq -c 统计相邻重复行的数量。 sort -rn 按数字倒序排。 head -10 取前十条。

有意思的是,这里为什么必须先 sort 再 uniq

因为 uniq 只能识别相邻的重复行,它不会全局去重。这是新手最容易踩的一个坑,写成 uniq -c | sort 结果就完全不对。

这一串六个命令,没有一个是复杂的,但组合起来,它替代了一个你可能要写二十行 Python 的脚本。

这就是命令行真正强的地方。它不是给你一堆功能,它给你一套可以任意拼接的积木。

所以学命令行,sortuniqwccutawkxargsheadtail 这几个拼接件的价值,远远高于那些看起来很酷的单一命令。

模型四:文件树、路径和权限

文件系统是一棵树,/ 是根。

~ 是你的家目录。 . 是当前目录。 .. 是上一层。 - 在 cd - 里表示上一个待过的目录,这个小技巧在两个目录之间来回跳的时候很省事。

绝对路径从 / 开头,跟你现在在哪无关。相对路径不带头,跟你现在在哪相关。

这个区别在写脚本的时候会咬人。你在脚本里写相对路径,别人从另一个目录调用你的脚本,就崩了。

然后是权限。ls -l 出来那一串 drwxr-xr-x,很多人看了两年也没搞懂。

其实很简单。

第一位是类型,d 是目录,- 是普通文件,l 是链接。

后面九位分三组,分别是所有者、同组用户、其他人。每组三位是读、写、执行。

数字表示法就是 读 4、写 2、执行 1,加起来。

755 就是所有者 4+2+1 全给,其他人 4+1,能读能进不能改。 644 是常见的文件权限,自己可读写,别人只读。

这里有个概念要单独强调,因为它绕过很多人:目录上的 x 权限,不是「能执行这个目录」,是「能进入这个目录」。

所以一个目录如果有 r 没有 x,你能看到里面有什么名字,但进不去。这种诡异状态在共享服务器上真的会遇到。


三、环境变量:新手八成的玄学问题都在这里

我敢说,实验室里新同学问我的问题,有一半最后都指向环境变量。

典型症状是这些:

我明明装了这个包,为什么找不到。 我明明创建了 conda 环境,为什么用的还是系统 Python。 这个命令我昨天还能用,今天怎么没了。 我改了配置文件,为什么没生效。

这几个问题背后是同一件事:你以为你在用 A,其实系统给你的是 B。

排查它只需要两个命令。

which python echo $PATH

which 告诉你,你现在敲的这个命令,实际执行的是哪个文件。

$PATH 是一串用冒号分隔的目录。你敲任何命令,系统就按这个顺序在这些目录里找,找到第一个就用,后面的不管了。

所以「找不到命令」的意思其实是:这个程序不在 $PATH 列的那些目录里。而「用错了版本」的意思是:有个你不想要的版本,排在你想要的那个前面。

理解了这一点,环境问题就从玄学变成了可以查的东西。

再说配置文件为什么不生效。

export PATH=xxx 这种写法只在当前这个终端窗口有效。你关掉窗口,一切归零。

想让它长期生效,得写进配置文件。但配置文件也有讲究:

.bashrc 在每次开一个交互式 bash 的时候执行。 .bash_profile 或 .profile 在登录的时候执行。 用 zsh 的话对应的是 .zshrc

坑在于,你 ssh 登录服务器和你在服务器上新开一个 shell,走的路径可能不一样。所以有时候你会遇到「本地能跑,提交到集群就说找不到命令」。

改完配置文件记得让它立即生效:

source ~/.bashrc

source 的意思是在当前 shell 里执行这个文件,而不是开一个新进程去执行。这个区别也很重要,你直接 bash ~/.bashrc 是没用的,因为改动发生在子进程里,子进程一退出就没了。

这一段有点抽象,但它是真正能让你少熬几个夜的东西。


四、退出码和短路:命令行开始有逻辑了

每个命令跑完都会留一个退出码。0 表示成功,非 0 表示失败。

echo $?

这个命令看的就是上一条命令的退出码。

基于这个,有两个连接符:

&& 前面成功了才跑后面。 || 前面失败了才跑后面。

实际用起来是这样:

mkdir -p output && python train.py --out output

目录建好了才开始训练。如果建目录都失败了,就别浪费时间了。

python train.py || echo "训练挂了" >> fail.log

失败才记一笔。

还有个 ;,不管成功失败都往下走。

区别很关键。我见过有人写 cd /some/dir; rm -rf *,如果 cd 失败了,rm 就在原地执行了。这种写法真的会出人命,必须用 &&

顺便说 mkdir -p 的 -p:目录已存在也不报错,父目录不存在会一路建上去。写脚本的时候基本是标配。


五、学习顺序:按你的麻烦学,不要按字母表学

我不建议任何人从 A 到 Z 地学命令。我建议按你实际会遇到的麻烦,分层推进。

第一层,我在哪,这有什么

pwdcdlscatlessheadtail

只说两个细节。

大文件别 cat,会把终端刷爆,用 less,上下箭头翻,/ 搜索,q 退出。

tail -f 是跟踪日志实时输出,做实验的人一天要用几十次。

第二层,我要找东西

grepfindwhich

grep -rni "关键词" . 是我用得最顺的一串:递归、显示行号、忽略大小写。接手一份不是自己写的代码时,这个比在编辑器里点来点去快得多。

如果服务器上能装 ripgrep,用 rg,快很多,而且默认跳过 .git 之类的目录。

第三层,机器现在什么状态

top 或 htopdf -hdu -sh * | sort -hfree -hnvidia-smi

这一层是排查能力的核心。程序不动了的时候,我的固定顺序是:先看卡,再看进程,再看 CPU 和内存,再看磁盘,最后才怀疑代码。

从外往里查,这个顺序能省掉大量白干的时间。我吃过教训,改了两小时代码,最后发现是磁盘写满了。

第四层,管住长时间任务

pskilltmux

这一层对做实验的人是分水岭。

tmux 我要单独推一下,它是新手学 Linux 投入产出比最高的一个东西。

场景是:你 ssh 上服务器跑训练,然后合上笔记本回宿舍。连接断了,任务也死了。

tmux 在服务器上开一个不依赖你连接的会话,你断线它照跑。三个操作就够用:

tmux new -s train

Ctrl+B 然后按 D 脱离。

tmux attach -t train

学十分钟,能救你几十次。

第五层,传输和权限

scprsyncchmodchowntar

传大批文件不要用 scp,用 rsync。因为 rsync 能续传,只传有变化的部分。传一次两百 G 的数据集,中间断了,scp 从头来,rsync 接着走。

这个差别在实验室是天大的差别。

第六层,会自己查

命令 --helpman 命令tldr 命令

这一层其实应该最早学,我放最后是因为它是一个习惯而不是一个命令。下面单独讲。


六、四个提速习惯,比多学十个命令管用

Tab 补全,而且要当成校验工具用

Tab 补全所有人都知道能省字。但它更重要的作用是校验。

你敲一半按 Tab,补不出来,说明这个路径不存在或者你拼错了。这比你敲完回车再看报错快得多。

我现在敲长路径几乎全靠 Tab 一节一节点过去,很少手打完整路径。这不只是快,是不容易错。

Ctrl+R 反向搜历史

按下 Ctrl+R,输入几个字符,它会把你以前敲过的、含这几个字符的命令翻出来。

我的训练启动命令有七八十个字符,我从来不重新敲,我按 Ctrl+R 然后打 train

配套的还有 !!,代表上一条命令。最经典的用法是命令报权限不足,然后敲:

sudo !!

等于用 sudo 重跑刚才那条。我第一次看到这个设计的时候真的觉得优雅。

行内编辑快捷键

光标在长命令里靠方向键一格一格挪,太慢了。

Ctrl+A 跳到行首。 Ctrl+E 跳到行尾。 Ctrl+U 清空整行。 Ctrl+W 删掉光标前一个词。 Ctrl+L 清屏。

就这五个,一周就能变成肌肉记忆。

alias

把你天天敲的长命令起个短名字,写进 .bashrc

我自己常用的几个:

alias ll='ls -ltrh' alias gpu='watch -n 1 nvidia-smi'

不过 alias 有个反作用要提醒:不要把危险命令 alias 成安全的样子,也不要 alias 太多,否则你去别人机器上会完全不会干活。我见过有人把 rm alias 成带确认的,结果在没配置的机器上手一滑就出事了。

习惯要长在你身上,不要长在你的配置文件上。


七、怎么查资料,包括怎么用 AI 而不被它坑

先说传统三件套。

命令 --help 最快,看常用选项,八成情况够了。

man 命令 最权威。它就是你这台机器上这个版本的说明书,不像网上的答案可能是三年前另一个版本的。man 里面按 / 搜索,n 跳下一个,q 退出。

tldr 命令 最实用。它不解释原理,直接给五六个最常用的例子。适合「我不想懂,我就想知道怎么写」的场景。需要自己装一下,但值得。

然后说 AI。

我是做这个方向的,我反而想认真提醒一下。

用 AI 学命令行效率确实高,但有几个坑很实在。

第一,它会给你看起来很对但参数错的命令。尤其是不常用的选项,不同版本行为不一样,它有时候会混。所以拿到命令别直接回车,先 --help 扫一眼那个参数是否存在。

第二,绝对不要直接执行 AI 给你的、带 rmsudochmod -Rmv 到系统目录的命令。这几类命令错了是不可逆的。

第三,正确的用法不是让它给答案,是让它解释。你把一串你看不懂的命令粘给它,让它逐段拆开告诉你每一部分在干什么。这样你学到的是可迁移的理解,而不是一次性的答案。

第四,先在安全的地方试。新建一个空目录,造几个假文件,在里面试完再去动真数据。

说白了,AI 是很好的解释器,但你得保留那个「我知道这条命令会做什么」的判断权。这个判断权一旦交出去,出事就是真出事。


八、怎么练:三个真能积累起来的办法

一,强迫自己用命令行做日常事

有图形界面的时候人是很难忍住不用鼠标的。所以要有意识地逼一下自己。

改远程配置文件,别用编辑器插件同步,用 vim 直接改。 看日志,别下载到本地,用 tail -f。 传文件,别用图形工具,用 scp 或 rsync。 统计东西,别导出到 Excel,用 grep 加 wc -l

前两周会很痛苦,慢得想砸键盘。第三周开始你会发现你比用鼠标快了。

二,维护一个只记坑的笔记

这条我强烈推荐。

不要抄教程,教程网上有。你要记的是你自己踩过的坑。

我的笔记里长这样:

磁盘明明有空间却写不进去,敲 df -i 看 inode,小文件太多会把 inode 占满。这个坑我找了一下午。

scp 传目录忘了加 -r,会提示不是普通文件。

tar 解压到当前目录会炸出一堆文件,先 tar -tf 看一眼里面结构。

这种笔记的价值在于,它是你自己的痛点索引。一年后你翻它,每一条都能立刻想起当时的场景。教程你翻十遍也记不住,自己的坑看一遍就够。

三,给自己造一个可以随便搞坏的地方

这条能极大降低你的心理负担。

在本地起一个容器,或者装个虚拟机,把它当沙盒。

docker run -it --rm ubuntu bash

在里面你可以随便 rm -rf,随便改权限,随便把环境搞烂。搞烂了退出,重新起一个,干干净净。

新手最大的心理障碍是怕搞坏东西,所以不敢试,不敢试就学不会。给自己一个允许搞坏的地方,这个障碍就没了。

顺便,--rm 的意思是容器退出就删掉,不留垃圾。

四,拿真实的小需求练手

练习题式的学习没有痛感。找几件你真的需要做的小事:

把一个目录里三百个文件按规则批量重命名。 从日志里统计每小时的请求量。 找出整个项目里所有超过 100 M 的文件。 把三十个 CSV 合并成一个,但只保留第一个的表头。

这四件事我都干过,每一件都能逼你学会两三个新东西。而且做完你是真的解决了一个问题,那种正反馈跟做练习题完全不一样。


九、几条我希望有人早点告诉我的警告

rm -rf 之前先用 ls 看一遍。

我们组有个师兄,博士第四年,跑了两周的实验结果,一条命令清空。路径里多打了一个空格。他那天没发脾气,就是坐在那很久没动,然后站起来去打了杯水,回来重写脚本。

我当时在旁边一句话不敢说。从那以后我给自己定了死规矩:删之前必须先用 ls 把要删的东西列一遍,确认列出来的确实是我想删的。

多花三秒,省两周。

另外,绝对不要写 rm -rf $DIR/ 这种形式。如果 $DIR 因为任何原因是空的,这条命令就变成了删根目录。这不是理论风险,这是真实发生过的事故类型。

在共享服务器上动手之前先 pwd

这个命令毫无技术含量,但它是防灾用的。你以为自己在自己的目录,其实在别人的。

批量 kill 进程要极其小心。范围写大了,可能把同门跑了三天的任务一起送走。那已经不是技术问题了。

不要往系统目录随便装东西。用 conda 环境或者虚拟环境,别 sudo pip install。你污染了共享服务器的全局环境,全组都会受影响,而且很难查。

Ctrl+C 和 Ctrl+Z 不一样。前者是终止,后者是挂起到后台,进程还在。很多人以为按了 Ctrl+Z 就停了,结果显存还被占着,回头发现卡上挂着一堆幽灵进程。想恢复用 fg,想真杀掉先 jobs 看编号再 kill


十、最后说点心态上的东西

命令行的学习曲线不是斜坡,是台阶。

你会有很长一段时间感觉自己在原地踏步,天天敲那五六个命令,什么都没进步。然后某一天你遇到一个问题,突然发现你能一路查下去,从磁盘查到进程,从进程查到日志,最后定位到根因。

那一刻你会知道自己上了一层台阶。

这个过程没法加速,它需要你真的在机器上待够时间,真的被坑够次数。

还有一件事我想说。

命令行的报错,是我遇到过最诚实的老师。

它从不安慰你,也从不含糊。No such file or directoryPermission deniedcommand not found,每一句都精确地告诉你哪里不对。

刚开始你会觉得它冷冰冰的,甚至有点凶。但用久了你会发现这是一种很好的关系。它不猜你的意图,不替你做决定,你说什么它就做什么。

图形界面是别人替你想好了你要什么,然后做了个按钮。命令行是你自己知道你要什么,然后直接说出来。

这两种关系是不一样的。

我研一那会儿特别怕那个黑窗口,看师兄哗哗敲一串东西,觉得是某种法术。

后来我发现根本不是法术,那就是熟练。他敲得快不是因为记性好,是因为他在那个环境里待得够久,机器出问题的样子他见过太多次,所以他知道该往哪看。

命令是工具,直觉才是能力。

所以如果你现在正卡在那个「什么都不会、连自己在哪都不知道」的阶段,我的建议特别朴素:别急着学一百个命令,先把 pwdls -lawhichecho $PATH 这四个用熟。

就这四个。当年师兄给我的就是这四个。

它们不炫技,但它们回答的是最根本的四个问题:我在哪,这里有什么,我用的到底是哪个程序,系统是按什么顺序找它的。

搞清楚这四件事,你就不是在黑屋子里瞎摸了。

剩下的,交给时间和坑。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 15:32:44 HTTP/2.0 GET : https://f.mffb.com.cn/a/508375.html
  2. 运行时间 : 0.246434s [ 吞吐率:4.06req/s ] 内存消耗:4,862.75kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=e3ad0168435e606de42b5c35a54af499
  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.001236s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.002169s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000833s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000722s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001439s ]
  6. SELECT * FROM `set` [ RunTime:0.000636s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001473s ]
  8. SELECT * FROM `article` WHERE `id` = 508375 LIMIT 1 [ RunTime:0.012888s ]
  9. UPDATE `article` SET `lasttime` = 1787297565 WHERE `id` = 508375 [ RunTime:0.027390s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000763s ]
  11. SELECT * FROM `article` WHERE `id` < 508375 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001233s ]
  12. SELECT * FROM `article` WHERE `id` > 508375 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001231s ]
  13. SELECT * FROM `article` WHERE `id` < 508375 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001908s ]
  14. SELECT * FROM `article` WHERE `id` < 508375 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002127s ]
  15. SELECT * FROM `article` WHERE `id` < 508375 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.010899s ]
0.250137s