当前位置:首页>Linux>Linux08-vim&vi&nano编辑器

Linux08-vim&vi&nano编辑器

  • 2026-08-18 23:10:41
Linux08-vim&vi&nano编辑器

一、什么是纯文本文件?

在《Linux04-Linux文件权限与目录》Linux04-Linux文件权限与目录里,我们学过,Linux的7种文件类型如下:

标识类型英文典型位置解释
-普通文件regular file/etc/passwd普通文件,后缀是什么不重要
d目录directory/home一个特殊的文件,存储文件名 → inode 映射表
l软链接symbolic link/bin → /usr/bin类似快捷方式
c字符设备char device/dev/tty以字符流方式读写
b块设备block device/dev/sda以块为单位读写
p管道pipe (FIFO)进程通信进程间通信
s套接字socket/var/run本机进程通信

其中“普通文件”中又包含纯字符文件,也叫纯文本文件,文件内容全部由可读字符组成,可以直接用文本编辑器阅读。

1.1 纯文件文件定义

纯文本文件(Plain Text File) 是指文件中只保存字符数据,不包含任何格式信息、样式信息或二进制控制数据的文件。任何支持文本编码(如 ASCII、UTF-8、GBK)的编辑器都可以直接打开和阅读。

简单来说:

纯文本文件 = 字符 + 编码

富文本文件 = 字符 + 编码 + 格式信息(字体、颜色、图片等)

1.2 纯文本文件的特点

特点说明
只有字符保存的是字母、数字、汉字、符号等字符
无格式没有字体、字号、颜色、粗体等信息
可直接查看cat、less、vim、notepad 都能打开
文件体积小没有额外格式数据
易于解析程序最喜欢读取纯文本
跨平台Linux、Windows、macOS 都能识别

1.3 Linux几乎所有配置文件都是纯文本

shell脚本是纯文本,Linux并不知道它是脚本,直到执行时,Shell才会解释这些文本。

程序源代码也是纯文本。

文件是否纯文本
.txt
.conf
.cfg
.ini
.properties
.yaml
.yml
.json
.xml
.csv
.log
.sh
.py
.java
.c
.cpp
README

哪些不是纯文本?

文件类型
jpg图片(二进制)
png图片(二进制)
gif图片(二进制)
pdf二进制(内部包含文本和格式)
doc/docx二进制或 ZIP 容器格式
xls/xlsx二进制或 ZIP 容器格式
pptx二进制或 ZIP 容器格式
zip压缩文件
tar.gz压缩文件
rpm二进制包
deb二进制包
elf 程序机器码

1.4 Linux如何判断一个文件是不是纯文本?

使用file命令

输出:

ASCII text

或者:

UTF-8 Unicode text

说明是纯文本。

[root@localhost data]# cat test.txtword2/word2word2/word2word2/word2word2/word2word2/word2word2/word2word2/word2word2/word2[root@localhost data]# file test.txttest.txt: ASCII text[root@localhost data]# file betterdocs.zipbetterdocs.zip: Zip archive data, at least v1.0 to extract[root@localhost data]# file /bin/ls/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=0a2f3573580b1143e3efe56186d85849ca713ce7, for GNU/Linux 3.2.0, stripped[root@localhost data]# file /lib64/ld-linux-x86-64.so.2/lib64/ld-linux-x86-64.so.2: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), static-pie linked, BuildID[sha1]=a1d8ecdadb2e3b8353436d00c23178a1dfd19830, with debug_info, not stripped[root@localhost data]# cat test1.txt中国人[root@localhost data]# file test1.txttest1.txt: UTF-8 Unicode text

二、字符编码

2.1 字符编码的定义

字符编码(Character Encoding) 是一种规定字符与二进制数据(0 和 1)之间对应关系的规则

计算机本身只能存储和处理二进制数据(0 和 1),不能直接理解字符(如 A@)。因此,需要字符编码把字符转换成计算机可以存储的字节序列,也能把字节序列再转换回字符。

简单来说:

字符 → 编码规则 → 二进制数据(存储)二进制数据 → 编码规则 → 字符(显示)

2.2 为什么需要字符编码?

例如,你输入一个字符:

A

计算机不会直接保存字符 A,而是保存它对应的数字。

以 ASCII 编码为例:

字符十进制十六进制二进制
A650x4101000001
B660x4201000010
a970x6101100001
0480x3000110000

所以,文件中真正保存的是:

01000001

而不是字符 A 本身。


2.3 编码和解码

假设输入:

Hello

保存文件时(编码):

Hello ↓H → 72e → 101l → 108l → 108o → 111 ↓48 65 6C 6C 6F

打开文件时(解码):

48 65 6C 6C 6F ↓H e l l o

整个过程如下:

字符  │  │ 编码(Encoding)  ▼字节(文件、网络)  │  │ 解码(Decoding)  ▼字符

如果编码和解码使用的是同一种规则,就能正确显示。

如果编码与解码使用的规则不一样,就会出现乱码。

2.4 ASCII字符编码

ASCII 是最早、最简单的字符编码。

特点:

  • 使用 1 个字节(8 位)

  • 实际只用了前 7 位,共 128 个字符

  • 只能表示英文、数字和常见符号

例如:

字符ASCII
A65
Z90
a97
048
空格32
换行10

ASCII 无法表示汉字。

ASCII字符编码表,全量表:

十进制十六进制字符
00NUL (空字符)
11SOH (标题开始)
22STX (正文开始)
33ETX (正文结束)
44EOT (传输结束)
55ENQ (询问)
66ACK (确认)
77BEL (响铃)
88BS (退格)
99HT (水平制表)
100ALF (换行)
110BVT (垂直制表)
120CFF (换页)
130DCR (回车)
140ESO (移出)
150FSI (移入)
1610DLE (数据链路转义)
1711DC1 (设备控制1)
1812DC2 (设备控制2)
1913DC3 (设备控制3)
2014DC4 (设备控制4)
2115NAK (否定确认)
2216SYN (同步空闲)
2317ETB (传输块结束)
2418CAN (取消)
2519EM (介质结束)
261ASUB (替换)
271BESC (转义)
281CFS (文件分隔符)
291DGS (组分隔符)
301ERS (记录分隔符)
311FUS (单元分隔符)
3220(空格)
3321!
3422"
3523#
3624$
3725%
3826&
3927'
4028(
4129)
422A*
432B+
442C,
452D-
462E.
472F/
48300
49311
50322
51333
52344
53355
54366
55377
56388
57399
583A:
593B;
603C<
613D=
623E>
633F?
6440@
6541A
6642B
6743C
6844D
6945E
7046F
7147G
7248H
7349I
744AJ
754BK
764CL
774DM
784EN
794FO
8050P
8151Q
8252R
8353S
8454T
8555U
8656V
8757W
8858X
8959Y
905AZ
915B[
925C\
935D]
945E^
955F_
9660|
9761a
9862b
9963c
10064d
10165e
10266f
10367g
10468h
10569i
1066Aj
1076Bk
1086Cl
1096Dm
1106En
1116Fo
11270p
11371q
11472r
11573s
11674t
11775u
11876v
11977w
12078x
12179y
1227Az
1237B{
1247C
1257D}
1267E~
1277FDEL (删除)

2.5 GB2312 / GBK / GB18030/big5字符编码

中文编码体系从 GB2312 到 GB18030 的演变,核心是为了解决汉字数量不断增加以及与国际化标准接轨的问题。这三个标准是向下兼容的,即 GB18030 兼容 GBK,GBK 兼容 GB2312,GB2312 兼容 ASCII

下面是它们的关键特性对比:

Big5(大五码) 是一种繁体中文字符编码,主要用于中国台湾、香港、澳门等使用繁体中文的地区。

2.6 Unicode字符编码

Unicode 的目标是:

为世界上几乎所有字符分配一个唯一的编号(码点)。

Unicode 标准定义了一个巨大的“代码空间”(codespace),范围从 0 到 0x10FFFF,总共有 1,114,112 个码位(code point),足以容纳超过百万个字符。

  • 码位 (Code Point):每个字符被分配的唯一数字编号,通常用 U+ 开头表示,例如 U+0041 代表大写字母 'A',U+6C49 代表汉字“汉”。

  • 字符 (Character):一个抽象的文本单元,是编码的对象。Unicode 编码的是字符,而不是它的具体视觉呈现(字形)

编码格式特点与优势典型应用场景
UTF-8变长编码,使用 1-4 个字节。完全兼容 ASCII(0-127 用一个字节),对英文和互联网传输极其高效。是目前 Web 世界的事实标准网页、HTML、XML、电子邮件、绝大多数 Linux/Unix 系统、Python 默认编码。
UTF-16变长编码,使用 2 或 4 个字节(通过代理对)。BMP 内的字符用2字节,节约存储。在 BMP 内可视为定长,处理效率较高,是Unicode早期版本的继承者。Java、.NET、Windows 系统内部,以及许多需要平衡存储和访问效率的API。
UTF-32定长编码,固定使用 4 个字节。每个码位直接对应一个32位值,处理起来最简单、最直接。但空间占用较大。一些 Unix/Linux 平台作为内部处理码,或在需要直接、快速访问单个码位的场景。

2.7 为什么会出现乱码

乱码通常是因为编码和解码使用了不同的规则

2.8 Linux如何查看纯文本文件编码?

[root@localhost data]# cat test.txtword2/word2word2/word2word2/word2word2/word2word2/word2word2/word2word2/word2word2/word2[root@localhost data]# cat test1.txt中国人[root@localhost data]# file test.txttest.txt: ASCII text[root@localhost data]# file test1.txttest1.txt: UTF-8 Unicode text

2.9 windows如何查看纯文本文件编码?

txt另存时,可以选择对应字符编码,右下角显示现在使用的是什么编码。

notepad++ 打开文件时,右下角有字符编码。

notepad++修改编码

2.10 Linux转换编码iconv

命令:

iconv -f GBK -t UTF-8 old.txt -o new.txt

表示:

  • -f GBK:源文件编码

  • -t UTF-8:目标编码

[root@localhost data]# which iconv/usr/bin/iconv[root@localhost data]# file test1.txttest1.txt: UTF-8 Unicode text[root@localhost data]# iconv -f UTF-8 -t GB18030 test1.txt -o test2.txt[root@localhost data]# file test2.txttest2.txt: ISO-8859 text

2.11 字符集与字符编码的区别

字符集(Character Set,简称 charset) 就是 字符的集合

概念类比说明
字符集“字典”规定了有哪些字符,每个字符给一个编号(码位)。例如:A → 65, → U+6C49。
编码“电话号码簿的压缩打包方式”规定了这个编号在计算机里怎么用字节存储。例如:U+6C49 在 UTF-8 里是 E6 B1 89(3 字节),在 GB2312 里是 BA BA(2 字节)。

同一个字符集可以用不同编码方式。最典型的例子就是 Unicode 字符集(收录了所有字符),但它在计算机里有三种主流编码格式:UTF-8、UTF-16、UTF-32——它们存的字节完全不同,但最终都能还原回同一个 Unicode 字符。

三、vi命令

vi(Visual Editor)是 Linux/Unix 中最经典的文本编辑器之一,几乎所有 Linux 系统都自带。在Linux的世界中,绝大部分的配置文件都是以ASCII的纯文本形态存在,因此要修改这些配置文件,必须使用一个文本编辑器,而vi是最常用的文本编辑器。

3.1 vi 命令基本语法

vi [选项] 文件名

例如:

vi test.txt

如果文件不存在,会新建一个文件;如果存在,则打开进行编辑。

3.2 vi 的三种工作模式

三种模式的作用如下表:

命令模式的全量命令

命令模式的常用命令

底行模式命令

编辑模式命令

四、vim命令

vim是vi的进阶版,vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便编程。vim 是个'程序编辑器'啦! 甚至一些 Linux 基础配置文件内的语法,都能够用 vim 来检查呢! 例如vim可以检查 /etc/fstab这个档案的内容。

4.1  vim 的暂存档、救援恢复与开启时的警告讯息

当我们在使用 vim 编辑时, vim 会在与被编辑的文件的目录下,再建立一个名为 .filename.swp (以点开头的是隐藏文件,需要使用ls -a查看)的文件。

[root@localhost testdir]# lsmessages1[root@localhost testdir]# ls -la总用量 284drwxr-xr-x 2 root root   4096  7月 17 15:48 .drwxr-xr-x 6 root root   4096  7月 17 15:47 ..-rw------- 1 root root 262169  7月  1 15:37 messages1-rw------- 1 root root  16384  7月 17 15:48 .messages1.swp[root@localhost testdir]# ps -ef |grep vimroot       15037    2557  0 15:48 pts/0    00:00:00 vim messages1root       15272   14842  0 15:49 pts/1    00:00:00 grep --color=auto vim

如果你的系统因为某些原因而宕机了,导致你的编辑的文件还没有保存,这个时候xxx.swp就能发挥救援恢复的功能。

由于暂存文件存在的关系,因此 vim 会主动的判断你的这个档案可能有些问题,在上面的图标中 vim 提示两点主要的问题与解决方案,分别是这样的:

  • 问题一:可能有其他人或程序同时在编辑这个文件:

    由于 Linux 是多人多工的环境,因此很可能有很多人同时在编辑同一个档案。 如果在多人共同编辑的情况下, 万一大家同时储存,那么这个档案的内容将会变的乱七八糟! 为了避免这个问题,因此 vim 会出现这个警告窗口! 解决的方法则是:

    • 找到另外那个程序或人员,请他将该 vim 的工作结束,然后你再继续处理。

    • 如果你只是要看该档案的内容并不会有任何修改编辑的行为,那么可以选择开启成为只读(O)档案, 亦即上述画面反白部分输入英文『o』即可,其实就是 [O]pen Read-Only 的选项。

  • 问题二:在前一个 vim 的环境中,可能因为某些不知名原因导致 vim 中断 (crashed):

    这就是常见的不正常结束 vim 产生的后果。 解决方案依据不同的情况而不同喔! 常见的处理方法为:

    • 如果你之前的 vim 处理动作尚未储存,此时你应该要按下'R',亦即使用 (R)ecover 的项目, 此时 vim 会加载 .xxx.swp 的内容,让你自己来决定要不要储存! 这样就能够救回来你之前未储存的工作。 不过那个.xxx.swp 并不会在你结束 vim 后自动删除,所以你离开 vim 后还得要自行删除 .xxx.swp 才能避免每次打开这个档案都会出现这样的警告!

    • 如果你确定这个暂存档是没有用的,那么你可以直接按下'D'删除掉这个暂存档,亦即 (D)elete it 这个项目即可。 此时 vim 会加载文件,并且将旧的 .xxx.swp 删除后,建立这次会使用的新的 .xxx.swp 。

临时文件警告信息

至于这个发现临时文件警告信息的画面中,有出现六个可用按钮,各按钮的说明如下:

  • [O]pen Read-Only:打开此文件成为只读文件, 可以用在你只是想要查阅该档案内容并不想要进行编辑行为时。 一般来说,在上课时,如果你是登入到同学的电脑去看他的配置文件, 结果发现其实同学他自己也在编辑时,可以使用这个模式;

  • (E)dit anyway:还是用正常的方式打开你要编辑的那个档案, 并不会载入临时文件的内容。 不过很容易出现两个用户互相改变对方的档案等问题! 不好不好!

  • (R)ecover:就是加载暂存档的内容,用在你要救回之前未储存的工作。 不过当你救回来并且储存离开 vim 后,还是要手动自行删除那个临时文件喔!

  • (D)elete it:你确定那个暂存档是无用的! 那么开启文件前会先将这个临时文件删除! 这个动作其实是比较常做的! 因为你可能不确定这个暂存档是怎么来的,所以就删除掉他吧! 哈哈!

  • (Q)uit:按下 q 就离开 vim ,不会进行任何动作回到命令提示字符。

  • (A)bort:忽略这个编辑行为,感觉上与 quit 非常类似! 也会送你回到命令提示字符就是啰!

4.2 vim的环境设定参数

五、dos与Linux的断行字符

Windows系统(DOS)与Linux断行字符不同,而我们也可以利用 cat -A 来观察以 DOS (Windows 系统) 创建的文件的特殊格式, 也可以发现在 DOS 使用的断行字符为 ^M$ ,我们称为 CR 与 LF 两个符号。 而在 Linux 底下,则是仅有 LF ($) 这个断行符号。 

在 Linux 底下的指令在开始执行时,他的判断依据是 'Enter',而 Linux 的 Enter 为 LF 符号, 不过,由于DOS的断行符号是CRLF,也就是多了一个^M的符号出来, 在这样的情况下,如果是一个 shell script 的脚本文件,将可能达不到脚本想要的结果,因为他会误判程序所下达的指令内容啊!

我们可用用cat -A 来面容以DOS创建的文件的特殊格式。

123.txt是我们在windows上创建的文件,截图如下:

上传123.txt文件至Linux服务器,使用cat -A 查看,可以看到结尾为 ^M$

[root@localhost testdir]# cat -A 123.txtabcd124af^M$fewqgqg123f^M$13rfefqr2f^M$wefqgfwqg12fg[root@localhost testdir]# dos2unix 123.txt   #将格式转换为Linux的格式后,换行为`$`dos2unix: 正在转换文件 123.txt 为Unix格式...[root@localhost testdir]# cat -A 123.txtabcd124af$fewqgqg123f$13rfefqr2f$wefqgfwqg12fg[root@localhost testdir]#

将格式转换成为 Linux 格式的命令:dos2unix

六、nano编辑器

nano 的快捷键用 ^ 和 M- 来表示,你可以这样理解:

  • ^ 代表 Ctrl 键,比如 ^X 就是同时按下 Ctrl 和 X

  • M- 代表 Alt 键,比如 M-A 就是同时按下 Alt 和 A

启动与打开文件在终端输入 nano 文件名。如果文件存在,会直接打开它;如果文件不存在,会为你创建一个新的空白文件。例如,编辑一个叫 my_note.txt 的文件:

bash

nano my_note.txt

编辑文本nano 是“无模式”编辑器,打开文件后直接用键盘输入文字即可,光标可以用方向键移动。

保存与退出这是最核心的两个操作,通常在屏幕底部有提示:

  • 保存文件:按下 ^O (Ctrl+O)。如果是新文件,nano会询问你要保存的文件名,确认后按 Enter 即可。

  • 退出编辑器:按下 ^X (Ctrl+X)。如果文件有未保存的修改,nano会询问是否保存,按 Y 保存,按 N 不保存直接退出。

 nano 编辑器被设计用来模仿华盛顿大学 Pico 文本编辑器, 且具有类似的功能性与易用性。它包括四个主要部分: 顶行显示程序版本、当前被编辑的文件名以及该文件是否已被修改。 接着是主要编辑区,显示正在编辑的文件。 状态行位于倒数第三行,用来显示重要的信息。 底部的两行显示了编辑器中最常用的快捷键。 快捷键用如下方式进行表示:控制键序列使用一个“^”符号标记,它可以用 Ctrl 键或按 Esc 键两次的方式进行输入。Meta 键序列使用“M-”符号标记,它可以用 Alt、Cmd 或 Esc 键输入,具体取决于您的键盘设置。  另外,按 Esc 两次之后再键入从 000 到 255 之间的三位数字,则会输入该 ASCII 码对应的字符。下列按键组合可用于主要编辑区,替代按键则显示于括号内:^G     (F1)      显示帮助^X     (F2)      关闭当前缓冲区 / 离开 nano^O     (F3)      将当前缓冲区(或标记的区域)写入磁盘^R     (Ins)     将另一个文件插入当前缓冲区(或者插入新缓冲区)^W     (F6)      正向查找字符串或正则表达式^\     (M-R)     替换字符串或正则表达式^K     (F9)      剪切当前行(或者标记的区域)并存至剪贴缓冲区^U     (F10)     在当前游标位置粘贴剪贴缓冲区内容^T               执行函数或外部命令^J     (F4)      对齐当前段落^C     (F11)     显示光标位置^_     (M-G)     跳至指定行与列位置M-U              撤销上次操作M-E              重做撤销的操作M-A    (^6)      标记游标所在位置开始的文本M-6    (M-^)     复制当前行(或者标记的区域)并存至剪贴缓冲区M-]              移动至对应括号^Q               反向查找字符串或正则表达式M-Q              向后搜索下一个出现位置M-W              向前搜索下一个出现位置^B     (◀)       向后跳一字符^F     (▶)       向前跳一字符^◀     (M-Space) 向后跳一个词^▶     (^Space)  向前跳一个词^A     (Home)    跳至当前行首^E     (End)     跳至当前行尾^P     (▲)       跳至前一行^N     (▼)       跳至后一行M-▲    (M--)     向上滚动一行但不移动文本中的游标M-▼    (M-+)     向下滚动一行但不移动文本中的游标^▲     (M-7)     跳至前一段文本^▼     (M-8)     跳至后一段文本M-(    (M-9)     跳至当前段落开头,如已在段落开头,则调至上一段落起始处M-)    (M-0)     跳至当前段落结尾,如已在段落结尾,则调至下一段落结尾^Y     (PgUp)    向上跳转一屏^V     (PgDn)    向下跳转一屏M-\    (^Home)   跳至文件第一行M-/    (^End)    跳至文件最后一行M-◀    (M-<)     切换至上个文件缓冲区M-▶    (M->)     切换至下个文件缓冲区^I     (Tab)     插入制表符于游标位置^M     (Enter)   插入新行于游标位置^H     (Bsp)     删除游标左侧的字符^D     (Del)     删除游标之下的字符M-Bsp  (Sh-^Del) 从游标向单词起始位置向后删除^Del             从游标向下一个单词起始位置向前删除M-T              从游标位置剪切至文件结尾M-J              对齐整个文件M-D              计算字数、行数与字符数M-V              插入下一按键原型^L               重新显示当前画面^Z               挂起编辑器(如果启用了挂起功能)M-}    (Tab)     缩进当前行(或者标记的行)M-{    (Sh-Tab)  取消缩进当前行(或者标记的行)M-3              注释/反注释当前行(或者标记的行)^]               尝试补全当前单词M-:              开始/停止录制宏M-;              运行最近录制的宏M-Ins            在当前行放置或移除锚点M-PgUp           向上跳转至最近的锚点M-PgDn           向下跳转至最近的锚点M-Del            去除当前行(或者标记的行)F12              尝试运行拼写检查M-B              尝试运行代码语法检查M-F              调用其它程序来格式化/修改/操作缓冲区^L               将游标所在的行居中^S               不提示而保存文件M-X              辅助模式 启用/关闭M-C              持续显示游标位置 启用/关闭M-S              为过长行进行软折行 启用/关闭M-N              行编号 启用/关闭M-P              显示空格 启用/关闭M-Y              语法色彩高亮 启用/关闭M-H              智能HOME键 启用/关闭M-I              自动缩进 启用/关闭M-K              剪切至行尾 启用/关闭M-L              为过长行强制换行 启用/关闭M-O              已输入制表符至空白的转换 启用/关闭M-M              鼠标支持 启用/关闭M-Z              挂起 启用/关闭
本文的pdf版本下载地址:Linux08-vimvinano编辑器.pdf

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 16:47:24 HTTP/2.0 GET : https://f.mffb.com.cn/a/505458.html
  2. 运行时间 : 0.217284s [ 吞吐率:4.60req/s ] 内存消耗:4,868.15kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=1b4979d87d309c54c4fd50a16715caf0
  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.000833s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000796s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.006029s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002433s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000624s ]
  6. SELECT * FROM `set` [ RunTime:0.001400s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000620s ]
  8. SELECT * FROM `article` WHERE `id` = 505458 LIMIT 1 [ RunTime:0.000540s ]
  9. UPDATE `article` SET `lasttime` = 1787302044 WHERE `id` = 505458 [ RunTime:0.017495s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000277s ]
  11. SELECT * FROM `article` WHERE `id` < 505458 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000504s ]
  12. SELECT * FROM `article` WHERE `id` > 505458 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000383s ]
  13. SELECT * FROM `article` WHERE `id` < 505458 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.008346s ]
  14. SELECT * FROM `article` WHERE `id` < 505458 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.008509s ]
  15. SELECT * FROM `article` WHERE `id` < 505458 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.018850s ]
0.218952s