当前位置:首页>Linux>Linux Part 1

Linux Part 1

  • 2026-03-08 01:09:17
Linux Part 1

Introduction to Linux

由于单细胞 RNA 测序(scRNA-seq)的上游数据处理(从 FastQ 原始序列到 Count Matrix 表达矩阵转换),以及全基因组测序(WGS)和全外显子组测序(WES)的数据分析,均需要在 Unix/Linux 系统环境下通过 Bash 命令行界面(Terminal)完成。因此,这个板块下的内容将重点介绍基础的 Bash 命令,帮助学习者掌握基础的 Bash 的编程语法与交互逻辑。

本 Linux 教程共分为 13 个章节

  • • 命令行 (The Command Line):介绍命令行的定义、工作原理以及如何进入命令行界面。
  • • 基础导航 (Basic Navigation):Linux 目录系统简介及如何在其中切换路径。
  • • 关于文件的更多信息 (More About Files):探索 Linux 环境下文件和目录的一些重要特性。
  • • 帮助手册 (Manual Pages):学习如何通过 man 手册充分利用所学的 Linux 命令。
  • • 文件操作 (File Manipulation):如何创建、删除、重命名、复制和移动文件及目录。
  • • Vi 文本编辑器 (Vi Text Editor):探索一款强大的 Linux 原生文本编辑器。
  • • 通配符 (Wildcards):也称为 Globbing,这是一种一次性引用多个文件的方法。
  • • 权限 (Permissions):学习识别与修改文件及目录的权限,并了解其产生的后果。
  • • 过滤器 (Filters):介绍各种允许我们以有趣且高效的方式处理数据的命令。
  • • Grep 与正则表达式 (Grep and Regular Expressions):掌握一种强大的模式匹配语言,对数据分析和处理至关重要。
  • • 管道与重定向 (Piping and Redirection):将多个命令组合成功能强大的逻辑链。
  • • 进程管理 (Process Management):查看系统当前运行状态,学习如何终止挂起的程序以及如何将任务放入后台运行。
  • • 脚本编写 (Scripting):让计算机为你完成繁琐且重复的任务。
  • • 备忘单 (Cheat Sheet):本教程核心知识点的快速查阅指南。
  • • 加餐内容 (Bonus Material):一系列极具实用价值的额外 Linux 工具。
  • • Grep 备忘单 (Grep Cheat Sheet):使用 GREP 的快速参考。
  • • Vi 备忘单 (Vi Cheat Sheet):使用 VI 的快速参考。

Chapter-1 The Commmand Line(命令行)

我们首先从命令行开始

1. 命令行是什么

命令行(Command Line)或终端(Terminal)是一个基于文本的系统界面。你可以通过键盘输入命令,系统则同样以文本形式向你提供反馈。

命令行通常会呈现一个提示符(Prompt)。当你输入时,内容会显示在提示符之后。大多数情况下,你都在发布指令。以下是一个示例:



1
2
3
4
5
6

user@bash: ls -l /home/ryan
total 3
drwxr-xr-x  2 ryan users 4096 Mar 23 13:34 bin
drwxr-xr-x 18 ryan users 4096 Feb 17 09:12 Documents
drwxr-xr-x  2 ryan users 4096 May 05 17:25 public_html
user@bash: 


让我们对其进行拆解分析:

  • • 第 1 行:显示了提示符(例如 user@bash)。在提示符之后,我们输入了一个命令(ls)。通常情况下,**命令(Command)**总是你输入的第一个内容。
  • • 参数与选项:命令之后跟随的是命令行参数(Command line arguments),即 -l /home/ryan
    • • 重要提示:这些组成部分之间必须用空格分隔(命令与第一个参数之间也必须有空格)。
    • • 第一个参数(-l)也被称为选项(Option)。选项通常用于修改命令的行为,一般位于其他参数之前,并以短横线(-)开头。
    • • 代码解释:ls (List):
      • • 功能: 列出目录内容。
      • • 修改对象: 读取指定路径下的文件系统元数据。
      • • 参数含义:

        -l (long listing format): 选项参数。使输出以“长格式”显示,包含权限、所有者、文件大小和修改时间等详细信息。

        /home/ryan: 位置参数。指定要列出的目标目录路径。

      • • 下游影响: 在生物信息学分析中,常用于检查 FastQ 文件是否存在、确认分析结果(如比对后的 BAM 文件)是否生成以及查看文件大小以评估分析进度。
  • • 第 2 - 5 行:是运行命令后的输出(Output)。大多数命令都会产生输出,并直接列在命令下方。有些命令在执行任务时如果没有错误,则不会显示任何信息。
  • • 第 6 行:命令执行完毕后,终端准备好接收下一个指令,此时会再次显示提示符。如果没有显示提示符,说明命令可能仍在运行。

2. 打开终端 (Opening a Terminal)

打开终端的操作非常简单。虽然不同系统的具体操作路径有所差异,但你可以参考以下几种常见方式:

  • • macOS 用户
    • • 在 应用程序 (Applications) -> 实用工具 (Utilities) 目录下可以找到 终端 (Terminal) 程序。
    • • 更便捷的方法:按下组合键 Command (⌘) + Space 唤起 Spotlight 搜索,输入 "Terminal" 即可快速找到并打开。
  • • Linux 用户
    • • 通常位于 应用程序 (Applications) -> 系统 (System) 或 应用程序 (Applications) -> 实用工具 (Utilities)
    • • 或者,你可以在桌面空白处点击右键,菜单中通常会提供“在终端中打开 (Open in terminal)”的选项。
  • • Windows 用户
    • • 如果你计划远程登录到另一台(Linux)服务器,你需要一个 SSH 客户端PuTTY 是一款非常优秀且免费的选择。
    • • 注:在现代 Windows 系统中,你也可以使用内置的 PowerShell 或 Windows Terminal 直接输入 ssh 命令进行远程连接。

3. Shell 与 Bash

在终端内部,运行着一个被称为 Shell(壳层) 的程序。它是操作系统的一部分,负责定义终端的行为,并处理指令的运行(或执行)。

目前有多种不同的 Shell 可供选择,但最常用的一种名为 BASH,其全称为 Bourne Again SHell。本教程将假定你使用 BASH 作为默认 Shell。

如果你想确认当前正在使用哪种 Shell,可以使用 echo 命令来显示存储当前 Shell 信息的系统变量。echo 是一个用于显示文本消息或变量值的命令。



1
2
3

MichaelYMXs-Laptop:~ michaelyangmingxu$ echo $SHELL
/bin/bash
MichaelYMXs-Laptop:~ michaelyangmingxu$ 


Image showing the layered structure of Hardware -> Kernel -> Shell -> User

代码解释

  • • echo:
    • • 功能: 在终端打印(输出)文本或变量的内容。
    • • 修改对象: 不修改任何文件或系统设置,仅将信息发送至标准输出。
    • • 参数含义:
      • • $SHELL: 这是一个环境变量,存储了当前登录用户所使用的 Shell 的路径(例如 /bin/bash 或 /bin/zsh)。在 Linux 中,引用变量时通常需要在变量名前加上 $ 符号。
    • • 下游影响: 在配置生物信息学分析环境(如安装 Conda 或设置软件路径)时,确认 Shell 类型至关重要,因为不同的 Shell(如 Bash 与 Zsh)对应的配置文件(如 .bashrc 与 .zshrc)及其语法可能略有差异。

3. 快捷方式 (Shortcuts)

终端起初可能令人望而生畏,但不必担心。Linux 充满了各种旨在简化操作的快捷方式。在本教程中,你将陆续接触到其中的许多技巧。请务必留意它们,因为这些快捷方式不仅能提高效率,还能有效避免因拼写错误(Typos)导致的低级失误。

这是你的第一个快捷方式:当你输入命令时,它们实际上被存储在一个历史记录 (History) 中。

  • • 向上/向下方向键:你可以使用键盘上的  和  键来遍历历史记录。因此,无需重复输入之前运行过的命令,只需按几次上箭头即可。
  • • 向左/向右方向键:你可以使用  和  键移动光标,对调出的历史命令进行编辑。

历史记录在不同的会话(Sessions)之间也是被保留的,这意味着你可以回溯很久以前输入的命令。通常情况下,系统会默认记住你最近输入的 1000 条命令。

如果你想知道你的系统当前设置记忆多少条命令,可以使用 echo 命令来显示相关的系统变量。



1
2
3

MichaelYMXs-Laptop:~ michaelyangmingxu$ echo $HISTSIZE
500
MichaelYMXs-Laptop:~ michaelyangmingxu$ 


代码解释

  • • echo:
    • • 功能: 在终端输出指定的字符串或变量值。
    • • 修改对象: 仅向标准输出(屏幕)发送数据。
  • • $HISTSIZE:
    • • 参数含义: 这是一个系统环境变量,定义了当前 Shell 会话在内存中能够存储的历史命令条数。
    • • 下游影响: 在处理需要数小时甚至数天运行的生信任务(如 bwa mem 比对或 freebayes 变异检测)时,通过历史记录找回复杂的命令参数可以极大减少手动输入的错误率。如果你发现历史记录不够用,可以在 .bashrc 文件中修改此变量。

Chapter-2 Basic Navigation(基础导航)

在本章节中,我们将学习在系统中移动的基础知识。许多任务都依赖于能够准确到达或引用系统中的正确位置。因此,这些内容构成了在 Linux 中高效工作的基石。

1. 打印当前工作目录

我们要学习的第一个命令是 pwd,全称为 Print Working Directory(打印当前工作目录)。你会发现 Linux 中的许多命令都是其功能描述单词的缩写,这使得它们更容易被记住。

该命令的功能正如其名:它会告诉你当前正处于哪个工作目录。终端上的许多命令都依赖于你处于正确的位置。当你移动时,很容易忘记自己当前的位置。请经常使用此命令,以提醒自己当前所处的位置。



1
2
3

MichaelYMXs-Laptop:~ michaelyangmingxu$ pwd
/Users/michaelyangmingxu
MichaelYMXs-Laptop:~ michaelyangmingxu$ 


2. 当前目录位置有什么

了解我们所处的位置只是第一步。接下来,我们需要知道该位置包含什么内容。用于此任务的命令是 ls,它是 list(列出)的缩写。



1
2
3
4
5
6
7
8

MichaelYMXs-Laptop:~ michaelyangmingxu$ ls
Applications                Movies
Charité - Universitätsmedizin Berlin    Music
Desktop                    Pictures
Documents                Public
Downloads                Zotero
Library
MichaelYMXs-Laptop:~ michaelyangmingxu$ 


与通常单独运行且不带参数的 pwd 不同,ls 功能更强大。在上面的示例中,我们在不带参数的情况下运行它,此时它仅列出当前位置的内容。此外,我们还可以对 ls 进行更多操作。以下是其用法大纲:



1

ls [options] [location]


在上述示例中,方括号([])表示这些项是可选的,我们可以在运行命令时包含或不包含它们。在下面的终端示例中,我以几种不同的方式运行了 ls 以进行演示:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

user@bash: ls
bin Documents public_html

user@bash: ls -l
total 3
drwxr-xr-x  2 ryan users 4096 Mar 23 13:34 bin
drwxr-xr-x 18 ryan users 4096 Feb 17 09:12 Documents
drwxr-xr-x  2 ryan users 4096 May 05 17:25 public_html

user@bash: ls /etc
a2ps.cfg aliases alsa.d cups fonts my.conf systemd
...
user@bash: ls -l /etc
total 3
-rwxr-xr-x  2 root root 123 Mar 23 13:34 a2ps.cfg
-rwxr-xr-x 18 root root 78 Feb 17 09:12 aliases
drwxr-xr-x  2 ryan users 4096 May 05 17:25 alsa.d
...


让我们分步解析:

  • • 第 1 行:我们运行了最基础形式的 ls。它列出了当前目录的内容。
  • • 第 4 行:我们运行了带有单个命令行选项(-l)的 ls,这表示我们将进行长格式列表(long listing)。长格式列表包含以下内容:
    • • 第一个字符指示它是普通文件(-)还是目录(d)。
    • • 接下来的 9 个字符是文件或目录的权限
    • • 下一字段是块数(目前无需过多关注)。
    • • 下一字段是文件或目录的所有者(本例中为 ryan)。
    • • 下一字段是文件或目录所属的(本例中为 users)。
    • • 随后是文件大小
    • • 接着是文件修改时间
    • • 最后是文件或目录的实际名称
  • • 第 10 行:我们运行了带有命令行参数(/etc)的 ls。这样做是告诉 ls 不要列出当前目录,而是列出指定目录的内容。
  • • 第 13 行:我们同时使用了命令行选项和参数。因此,它对 /etc 目录进行了长格式列表显示。
  • • 第 12 行和第 18 行仅表示为了简洁起见,我删减了部分常规输出。当你实际运行这些命令时,会看到更完整的文件和目录列表。

3. 路径 (Paths)

在之前的命令中,我们开始接触到所谓的“路径”。现在我想更详细地探讨它们,因为掌握路径是熟练使用 Linux 的关键。每当我们在命令行中引用文件或目录时,实际上就是在引用一个路径。也就是说,路径是在系统中到达特定文件或目录的途径。

绝对路径与相对路径 (Absolute and Relative Paths)

我们可以使用两种类型的路径:绝对路径相对路径。无论引用文件还是目录,我们都在使用其中之一。事实上,对于任何目标,这两种路径都可以使用(无论哪种方式,系统最终都会指向相同的位置)。

首先,我们需要理解 Linux 下的文件系统是一个层级结构。该结构的顶层被称为根目录(root directory),用单个正斜杠(/)表示。它拥有子目录,子目录又有自己的子目录,依此类推。文件可以存在于这些目录中的任何一个。

  • • 绝对路径:相对于根目录指定位置(文件或目录)。它们很容易辨认,因为始终以正斜杠(/)开头。
  • • 相对路径:相对于我们当前所处的位置指定位置(文件或目录)。它们不会以斜杠开头。

以下是一个演示示例:

Bash



1
2
3
4
5
6
7
8
9
10

user@bash: pwd
/home/ryan

user@bash: ls Documents
file1.txt file2.txt file3.txt
...

user@bash: ls /home/ryan/Documents
file1.txt file2.txt file3.txt
...


  • • 第 1 行:我们运行 pwd 以确认当前所在位置。
  • • 第 4 行:我们运行 ls 并提供了一个相对路径Documents 是当前位置下的一个目录。该命令的结果取决于我们当前在哪里。如果系统中还有另一个用户 bob,且我们在他的家目录下运行此命令,那么我们将列出他的 Documents 目录内容。
  • • 第 7 行:我们运行 ls 并提供了一个绝对路径。无论运行命令时我们身处何处,该命令都会提供相同的输出。

示例:



1
2
3
4
5
6
7

MichaelYMXs-Laptop:~ michaelyangmingxu$ pwd
/Users/michaelyangmingxu
MichaelYMXs-Laptop:~ michaelyangmingxu$ ls /Users/michaelyangmingxu/Documents
c8411ee5d976e37c    R tutorial        德国其他文件
EndNote            scRNA            硕士期间文件
python            博士相关材料        
MichaelYMXs-Laptop:~ michaelyangmingxu$ 


4. 关于路径的补充知识

你会发现,Linux 中的许多任务都可以通过多种不同的方式完成。路径也不例外。以下是一些可以帮助你构建路径的更多“构建块”:

  • • ~ (波浪号):这是你的家目录 (home directory) 的快捷方式。例如,如果你的家目录是 /home/ryan,那么你可以使用 /home/ryan/Documents 或 ~/Documents 来引用 Documents 目录。
  • • . (点):这是对当前目录的引用。例如,在之前的示例中,我们通过相对路径引用了 Documents。它也可以写作 ./Documents(通常这部分额外的符号不是必须的,但在后续章节中我们会看到它的用处)。
  • • .. (点点):这是对上级目录(父目录)的引用。你可以在路径中多次使用它以不断向上追溯层级。例如,如果你处于 /home/ryan 路径下,运行 ls ../../ 将会列出根目录的内容。

现在你可能已经发现,我们可以用多种不同的方式引用同一个位置。你可能会问:我应该使用哪一个?答案是:你可以使用任何你喜欢的方法。每当你在命令行引用文件或目录时,你实际上是在引用一个路径,而你的路径可以用这些元素中的任何一个来构建。最好的方法就是对你来说最方便的那种。

以下是一些示例:

Bash



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

user@bash: pwd
/home/ryan

user@bash: ls ~/Documents
file1.txt file2.txt file3.txt
...

user@bash: ls ./Documents
file1.txt file2.txt file3.txt
...

user@bash: ls /home/ryan/Documents
file1.txt file2.txt file3.txt
...

user@bash: ls ../../ 
#向上返回两个上级目录,这里等于根目录
bin boot dev etc home lib var
...

user@bash: ls / #列出根目录
bin boot dev etc home lib var
...


在命令行中亲自尝试这些操作后,它们会变得更容易理解。请确保你理解了构建路径的所有这些元素,因为你在未来的章节中都会用到它们。

示例:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

MichaelYMXs-Laptransform: translateY(~ michaelyangmingxu$ pwd
/Users/michaelyangmingxu
MichaelYMXs-Laptop:~ michaelyangmingxu$ ls ~/Documents
c8411ee5d976e37c    R tutorial        德国其他文件
EndNote            scRNA            硕士期间文件
python            博士相关材料    
MichaelYMXs-Laptop:~ michaelyangmingxu$ ls ./Documents
c8411ee5d976e37c    R tutorial        德国其他文件
EndNote            scRNA            硕士期间文件
python            博士相关材料    
MichaelYMXs-Laptop:~ michaelyangmingxu$ ls ../../
Applications    etc        private        Users
bin        home        sbin        usr
cores        Library        System)        var
dev        opt        tmp        Volumes
MichaelYMXs-Laptransform: translateY(~ michaelyangmingxu$ ls /
Applications    etc        private        Users
bin        home        sbin        usr
cores        Library        System)        var
dev        opt        tmp        Volumes
MichaelYMXs-Laptop:~ michaelyangmingxu$ 


5. 移动

为了在系统中移动,我们使用一个名为 cd 的命令,它代表 change directory(切换目录)。其工作原理如下:



1

cd [location]


如果你在不带任何参数的情况下运行 cd 命令,它始终会带你回到你的家目录

正如我们在上面的快捷方式中所看到的,cd 命令可以在不指定位置的情况下运行,但通常运行时会带有一个命令行参数,即我们想要切换到的位置。该位置以路径的形式指定,因此可以使用绝对路径或相对路径,并配合前面提到的任何路径构建块。以下是一些示例:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

MichaelYMXs-Laptransform: translateY(~ michaelyangmingxu$ pwd
/Users/michaelyangmingxu
MichaelYMXs-Laptop:~ michaelyangmingxu$ cd Documents
MichaelYMXs-Laptop:Documents michaelyangmingxu$ ls
c8411ee5d976e37c    R tutorial        德国其他文件
EndNote            scRNA            硕士期间文件
python            博士相关材料        运动
MichaelYMXs-Laptop:Documents michaelyangmingxu$
MichaelYMXs-Laptop:Documents michaelyangmingxu$ cd /
MichaelYMXs-Laptop:/ michaelyangmingxu$ pwd
/
MichaelYMXs-Laptop:/ michaelyangmingxu$ ls
Applications    etc        private        Users
bin        home        sbin        usr
cores        Library        System)        var
dev        opt        tmp        Volumes
MichaelYMXs-Laptop:/ michaelyangmingxu$ 
MichaelYMXs-Laptop:/ michaelyangmingxu$ cd ~/Documents
MichaelYMXs-Laptop:Documents michaelyangmingxu$ pwd
/Users/michaelyangmingxu/Documents
MichaelYMXs-Laptop:Documents michaelyangmingxu$ cd ../../
MichaelYMXs-Laptop:Users michaelyangmingxu$ pwd
/Users
MichaelYMXs-Laptop:Users michaelyangmingxu$ cd
MichaelYMXs-Laptop:~ michaelyangmingxu$ pwd
/Users/michaelyangmingxu
MichaelYMXs-Laptop:~ michaelyangmingxu$ 


Tab 键补全 (Tab Completion)

输入这些路径可能会变得很乏味。如果你和我一样,还容易输入错误。命令行有一个非常棒的机制可以帮到我们,它叫作 Tab 键补全

当你开始输入路径时(在命令行的任何地方都可以,不限于特定命令),你可以随时按键盘上的 Tab 键,这将触发自动补全动作。如果按了没反应,说明存在多种可能性。此时如果你再按一次 Tab 键,它会列出所有可能的选项。然后你可以继续输入并再次按 Tab 键,它会再次尝试为你自动补全。

这在书面上很难演示,所以你最好亲自尝试一下。如果你开始输入 cd /h 然后按 Tab 键,接着输入你用户名的开头并再按 Tab 键,你就会感觉到它是如何工作的了。

6. 总结 (Summary)

命令/概念完整名称功能描述
pwd
Print Working Directory
打印当前工作目录
:显示用户当前所处的完整路径。
ls
List
列出目录内容
:查看指定或当前目录下的文件及子目录。
cd
Change Directory
切换目录
:在不同的目录间进行跳转移动。
相对路径
Relative Path
相对位置
:基于当前工作目录引用的文件或目录位置。
绝对路径
Absolute Path
绝对位置
:从文件系统根目录 (/) 开始引用的完整位置。

7. 一些值得关注的点

  • • /etc - 存储系统的配置文件。
  • • /var/log - 存储各种系统程序的日志文件。(你可能没有权限查看该目录下的所有内容,但这不应阻止你的探索。看到一些错误提示并无大碍。)
  • • /bin - 存放若干常用程序的路径(其中一些程序我们将在本教程后续部分学到)。
  • • /usr/bin - 系统中另一个存放程序的路径。


1
2
3
4
5
6
7

MichaelYMXs-Laptransform: translateY(~ michaelyangmingxu$ cd ../../
MichaelYMXs-Laptop:/ michaelyangmingxu$ ls
Applications    etc        private        Users
bin        home        sbin        usr
cores        Library        System)        var
dev        opt        tmp        Volumes
MichaelYMXs-Laptop:/ michaelyangmingxu$ 


回到家目录的 4 种方法

  1. 1. cd
    • • 原理cd 命令在不加任何参数时,默认目标是用户环境变量中的 $HOME
  2. 2. cd ~
    • • 原理:使用波浪号快捷符,它在 Shell 中被硬编码为当前用户的家目录。
  3. 3. cd $HOME
    • • 原理:使用系统环境变量。这是编写 Shell 脚本时引用家目录最稳健的方法。
  4. 4. cd /home/username(需替换为你的实际用户名)
    • • 原理:使用绝对路径。这是最原始、最明确的定位方式。

Tab 键

  • • 功能描述:路径与命令的自动补全。
  • • 下游分析影响:在处理如 GCA_000001405.15_GRCh38_no_alt_analysis_set.fna 这样冗长的参考基因组文件名时,Tab 键能确保文件名输入百分之百准确,避免因肉眼难以察觉的拼写错误导致数小时的比对任务失败。

This document is based on the original tutorial written by Ryan at https://ryanstutorials.net/linuxtutorial/.

All credit for the original content belongs to the original author.

This translated and summarized version is shared for educational purposes only.
It may not be used for any commercial purpose, including but not limited to paid courses, subscription-based content, monetized platforms, or any other commercial distribution.

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 16:36:42 HTTP/2.0 GET : https://f.mffb.com.cn/a/478247.html
  2. 运行时间 : 0.169197s [ 吞吐率:5.91req/s ] 内存消耗:4,582.15kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=4344af24072bac817e2502acd2e4963d
  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.000762s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000938s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000497s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000248s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000595s ]
  6. SELECT * FROM `set` [ RunTime:0.000223s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000642s ]
  8. SELECT * FROM `article` WHERE `id` = 478247 LIMIT 1 [ RunTime:0.001922s ]
  9. UPDATE `article` SET `lasttime` = 1774600602 WHERE `id` = 478247 [ RunTime:0.004387s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000300s ]
  11. SELECT * FROM `article` WHERE `id` < 478247 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000527s ]
  12. SELECT * FROM `article` WHERE `id` > 478247 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000423s ]
  13. SELECT * FROM `article` WHERE `id` < 478247 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003040s ]
  14. SELECT * FROM `article` WHERE `id` < 478247 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002911s ]
  15. SELECT * FROM `article` WHERE `id` < 478247 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004976s ]
0.170872s