当前位置:首页>Linux>Linux 常用命令大全,整合全网|Linux 最全常用命令速查表,建议收藏备用

Linux 常用命令大全,整合全网|Linux 最全常用命令速查表,建议收藏备用

  • 2026-07-01 22:13:55
Linux 常用命令大全,整合全网|Linux 最全常用命令速查表,建议收藏备用

一、Linux 系统目录结构

Linux 采用树状目录结构,根目录为 /,所有文件和目录都从根目录出发:

/├── bin -> usr/bin       # 存放二进制命令(ls、cp、mv等常用命令)├── boot                 # 内核及引导系统程序所在目录├── dev                  # 所有设备文件的目录(磁盘、光驱等)├── etc                  # 配置文件默认路径、服务启动命令存放目录├── home                 # 用户家目录(root用户的家目录为/root)├── lib -> usr/lib       # 32位库文件存放目录├── lib64 -> usr/lib64   # 64位库文件存放目录├── media                # 媒体文件存放目录├── mnt                  # 临时挂载设备目录├── opt                  # 自定义软件安装存放目录├── proc                 # 进程及内核信息存放目录(虚拟文件系统)├── root                 # root用户家目录├── run                  # 系统运行时产生临时文件的存放目录├── sbin -> usr/sbin     # 系统管理命令存放目录(仅管理员使用)├── srv                  # 服务启动后需要访问的数据目录├── sys                  # 系统使用目录├── tmp                  # 临时文件目录├── usr                  # 系统命令和帮助文件目录└── var                  # 存放内容易变文件的目录(日志、邮件等)

重要目录说明:

目录
说明
/bin
二进制执行文件,主要用于具体应用
/sbin
系统管理员专用的二进制代码,主要用于系统管理
/usr/bin
用户命令,后期安装的软件
/usr/sbin
超级用户管理程序

二、终端命令格式

2.1 基本语法

command [-options][parameter]
组成部分
说明
command
命令名,对应功能的英文单词或缩写
[-options]
选项,用于控制命令行为,可省略
[parameter]
传给命令的参数,可以是零个、一个或多个

2.2 查阅命令帮助

command--help# 显示命令的帮助信息(简洁版)mancommand# 查阅命令的完整使用手册(manual)

man 手册操作键:

操作键
功能
空格键
向下翻页
b
向上翻页
q
退出
/关键词
搜索关键词

2.3 实用快捷键

快捷键
功能
Tab
自动补全文件/目录/命令(非常常用!)
↑ / ↓
 方向键
在历史命令间切换
Ctrl + C
强制中断当前程序/命令
Ctrl + Z
挂起当前任务(任务未结束,可用 fg/bg 恢复)
Ctrl + Shift + =
放大终端窗口字体
Ctrl + -
缩小终端窗口字体

三、目录操作命令

3.1 查看目录内容 —— ls

ls 是 list 的简写,列出目录内容

ls# 列出当前目录内容ls-a# 显示所有文件,包括隐藏文件(以.开头)ls-l# 以列表方式显示文件详细信息(可简写为 ll)ls-lh# 以列表方式显示,并以人性化方式显示文件大小ls-al# 组合:显示所有文件+详细信息ll                 # 等同于 ls -l(很多发行版支持)

Linux 文件和目录特点:

  • 文件或目录名最长可有 256 个字符
  • 以 . 开头的文件为隐藏文件,需用 -a 参数显示
  • .
     代表当前目录,.. 代表上一级目录
  • 所有目录和文件名大小写敏感

ls 通配符:

通配符
含义
*
代表任意个数个字符
?
代表任意一个字符(至少1个)
[abc]
匹配 a、b、c 中的任意一个
[a-f]
匹配 a 到 f 范围内的任意一个字符

3.2 切换目录 —— cd

cd 是 change directory 的简写

pwd# 查看当前工作目录(print work directory)cd# 切换到当前用户主目录(/home/用户名)cd ~               # 切换到当前用户主目录cd /               # 切换到根目录cd..# 切换到上一级目录cd -               # 切换到上一次访问的目录(在两个目录间来回切换)cd /usr/local      # 切换到指定绝对路径cd ./aaa           # 切换到当前目录下的 aaa 目录(相对路径)

路径说明:

  • 相对路径
    :最前面不是 / 或 ~,相对于当前目录
  • 绝对路径
    :最前面是 / 或 ~,从根目录/家目录开始

3.3 创建目录 —— mkdir

mkdir aaa                    # 在当前目录下创建 aaa 目录mkdir ./bbb                  # 同上(相对路径写法)mkdir /ccc                   # 在根目录下创建 ccc 目录(绝对路径)mkdir-p temp/nginx          # 递归创建多级目录(-p 选项)mkdir{dirA,dirB}# 批量创建多个目录

⚠️ 新建目录名称不能与当前目录中已有的目录或文件同名


3.4 查看目录树 —— tree

tree               # 以树状图显示当前目录结构tree -d# 只显示目录,不显示文件tree /usr/local    # 查看指定目录的树状结构tree test01/       # 查看 test01 目录的树状结构

3.5 搜索文件/目录 —— find

find / -name'b'# 从根目录搜索名为 b 的目录和文件find / -name'b*'# 从根目录搜索名以 b 开头的目录和文件find.-name'b'# 从当前目录搜索名为 b 的目录和文件find-name"*.py"# 搜索当前目录下所有 .py 文件(含子目录)find-name"*1*"# 搜索文件名包含 1 的文件find.-name'*.pyc'-execrm-rf{}\;# 递归删除所有 .pyc 文件find.-name"*"-size 145800c -print# 打印当前目录下指定大小的文件find.-type f -name"*.log"# 只搜索文件类型(不包括目录)

3.6 移动与重命名 —— mv

mv 原名称 新名称             # 重命名(当前目录内)mv tomcat001 tomcat          # 将 tomcat001 重命名为 tomcatmv /aaa /bbb                 # 将根目录下的 aaa 移动到 bbb 目录下mv bbbb usr/bbb              # 移动并修改名称为 bbbmv bbb usr/aaa               # 移动并修改名称为 aaa

-i 选项:覆盖文件前提示确认


3.7 复制目录 —— cp

cp-r /aaa /bbb              # 将 /aaa 目录复制到 /bbb 下(保持名称 aaa)cp-r /aa /bbb/aaa           # 将 /aa 复制到 /bbb 下,名称改为 aaacp-i 源文件 目标文件         # 覆盖前提示

⚠️ 复制目录必须加 -r 选项(递归复制)


3.8 删除目录 —— rm / rmdir

rm-r /bbb                   # 删除 /bbb 目录(会逐一询问)rm-rf /bbb                  # 强制删除 /bbb 目录(包含子目录,不提示)rmdir test01                 # 删除空目录

⚠️ rm -rf 操作不可恢复,使用时务必谨慎!


3.9 软链接 —— ln

ln-s /usr/local/app /data   # 创建软链接(类似 Windows 快捷方式)rm-rf /data                 # 删除软链接(路径末尾不加 /)

注意事项:

  • 没有 -s 建立的是硬链接,工作中几乎不用
  • 源文件路径建议使用绝对路径,避免移动链接后失效
  • Linux 中,只有文件硬链接数 == 0 时文件才会被删除

四、文件操作命令

4.1 创建文件 —— touch

touch testFile               # 创建新文件(文件不存在则创建)touch dirA/{A1,A2,A3}# 在 dirA 目录中批量创建 A1、A2、A3 三个文件

若文件已存在,则修改文件的末次修改时间(不改变内容)


4.2 删除文件 —— rm

rm-r a.java                 # 删除 a.java(每次询问)rm-rf a.java                # 强制删除 a.java(不询问)rm-rf ./a*                  # 强制删除当前目录下所有以 a 开头的文件rm-rf ./*                   # 强制删除当前目录下所有文件(极度危险!)

4.3 文件拆分 —— split

split-b 10k date.file                     # 按大小分割(每份10KB,字母后缀)split-b 10k date.file -d-a3# 使用数字后缀,长度为3位split-b 10k date.file -d-a3 split_file  # 指定输出文件名前缀split-l10 date.file                      # 按行数分割(每份10行)

split 参数说明:

参数
说明
-b
每个输出文件的大小(单位:byte,可用 k/m)
-l
每个输出文件的行数
-d
使用数字作为文件后缀
-a
指定后缀长度(默认为2)

4.4 跨服务器文件复制 —— scp

# 将本机文件复制到目标服务器scp /home/user/file.txt user@192.168.1.100:/home/user/# 将远程服务器文件复制到本机scp user@192.168.1.100:/home/user/file.txt /home/user/# 复制目录(-r 选项)scp-r demo user@192.168.1.100:Desktop# 指定端口(-P 大写)scp-P2222 01.py user@remote:Desktop/01.py

scp 选项说明:

选项
含义
-r
递归复制目录
-P
指定端口号(注意是大写 P)

五、文件内容查看与编辑

5.1 查看文件内容

cat a.java           # 查看文件全部内容(适合内容较少的文件)cat-n a.java        # 查看文件内容,并对所有行编号cat-b a.java        # 查看文件内容,只对非空行编号more a.java          # 分屏显示(空格翻页,Enter翻行,q退出)less a.java          # 分屏显示,支持上下翻页(PageUp/PageDown),q退出head a.java          # 查看文件前10行head-n7 a.java     # 查看文件前7行tail a.java          # 查看文件后10行tail-n7 a.java     # 查看文件后7行tail-f a.java       # 实时查看文件末尾新增内容(常用于查看日志)

more 操作键详解:

操作键
功能
空格键
显示下一屏
Enter
一次滚动一行
b
回滚一屏
f
前滚一屏
q
退出
/word
搜索 word 字符串

more 和 less 的区别:

对比项
more
less
翻页方向
只能向后
可前后翻页
加载速度
需读整个文件
按需加载,更快
退出后显示
内容残留在终端
退出后清屏
上下键
不支持
支持

5.2 文件内搜索 —— grep

grep 是 Global Regular Expression Print 的缩写,强大的文本搜索工具

grep"start" test*               # 在 test 开头的文件中查找含 start 的行grep under 123.txt               # 搜索 under 字符串(大小写敏感)grep-n under 123.txt            # 搜索并显示行号grep-v under 123.txt            # 显示不包含 under 的行(取反)grep-i under 123.txt            # 搜索(忽略大小写)grep-ni under 123.txt           # 忽略大小写,并显示行号grep-A1-B1"https" wget-log  # 显示匹配行及其前1行(-B)、后1行(-A)grep"^root" /etc/passwd         # 搜索以 root 开头的行grep"bash$" /etc/passwd         # 搜索以 bash 结尾的行

grep 常用选项:

选项
含义
-n
显示匹配行及行号
-v
显示不包含匹配文本的所有行(取反)
-i
忽略大小写
-A N
显示匹配行及其后 N 行
-B N
显示匹配行及其前 N 行

5.3 重定向

echo'Hello World'> /root/test.txt    # 覆盖写入(文件不存在则创建)echo'Hello World'>> /root/test.txt   # 追加写入
符号
含义
>
输出重定向,覆盖文件原有内容
>>
输出重定向,追加到文件末尾

六、文本处理三剑客

6.1 awk —— 数据统计与处理

awk 功能强大,一次读取一行文本,按分隔符切片后处理

语法:awk [options] 'cmd' file

  • 切片保存在内建变量中:$1, $2, …$0 表示整行)
  • 默认分隔符为空格,-F 选项可指定分隔符
# 打印第1列和第3列awk'{print $1,$3}' email.out# 当第1列为tcp且第2列为1时,打印整行awk'$1"tcp" && $21 {print $0}' email.out# 打印表头(NR1表示第一行)awk'($1"tcp" && $21) || NR1 {print $0}' email.out# 以逗号为分隔符,打印第2列awk-F","'{print $2}' test.txt# 统计各IP出现次数awk'{count[$1]++} END {for(i in count) print i "\t" count[i]}' access.log# 按逗号切分,将第一列追加到文件awk-F","'{print $1 >> "test01.txt"}' data.txt

6.2 sed —— 流编辑器(替换文件内容)

sed 全名 Stream Editor,适合对文本行内容进行批量处理,支持正则表达式

语法:sed [option] 'sed command' filename

sed 常用操作标记:

标记
说明
g
行内全部替换(不加则只替换首个)
p
打印匹配行
d
删除匹配行
w
将匹配行写入文件
s
替换操作
# 将以 Str 开头的替换为 String( 表示行首)sed-i's/Str/String/' replace.java# 将行末的 . 替换为 ;(需转义 .)sed-i's/\.$/\;/' replace.java# 全文将 Jack 替换为 me(g 表示全部替换)sed-i's/Jack/me/g' replace.java# 删除空行( *$ 匹配只有空格的行)sed-i'/ *$/d' replace.java# 删除包含 Integer 的行sed-i'/Integer/d' replace.java# 多命令同时执行(用 ; 分隔)grep'input'123.txt |sed's/\"//g; s/,/\n/g'# 替换后保存到新文件sed-n's/\"//gw test01.txt'123.txt

6.3 cut —— 数据裁剪

从文件每一行中剪切字段并输出

语法:cut [选项] 文件名

选项
功能
-f
列号,提取第几列
-d
分隔符(默认是制表符 \t
# 以中文冒号分隔,提取第1列cut-d":"-f1 cut.txt# 以 : 分隔,提取 $PATH 的第3列echo$PATH|cut-d":"-f3# 以 : 分隔,提取第3列及之后所有列echo$PATH|cut-d":"-f3-

七、管道与重定向

7.1 管道操作符 |

将前一个命令的标准输出作为后一个命令的输入

注意事项:

  • 只处理前一个命令的正确输出,不处理错误输出
  • 右边命令必须能够接收标准输入流
ls-l|more# 分屏显示 ls 结果ls-l|grep".py"# 在 ls 结果中查找 .py 文件# 从日志中查询包含 error 的行grep'error' email.log# 过滤 error 行中包含数字的部分grep'error' email.log |grep-o'\[0-9\]'# 过滤包含 tomcat 的进程,排除当前 grep 进程ps-ef|grep tomcat |grep-vgrep# 综合管道:提取、切分、替换、保存grep'input'123.txt |awk-F',''{print $2}'|sed's/\"//g'|awk-F":"'{print $1 >> "test01.txt"}'

7.2 xargs —— 参数传递过滤器

将标准输入数据转换成命令行参数

# -n:每行输出指定数量cat test.txt |xargs-n3# -d:按指定字符分隔文本echo"nameXnameXnameXname"|xargs-dX# -I:命令替换(每个参数执行一次命令)ls *.jpg |xargs-n1-I{}cp{} /data/images/# -t:将执行的命令也打印出来ls * |xargs-t-n1-I{}cp-r{} /root/backup/# 组合使用:X分隔,每行2个echo"nameXnameXnameXname"|xargs-dX-n2

八、压缩与解压缩

8.1 tar 打包命令

压缩打包(-c):

tar-cvf start.tar a.java b.java       # 将 a.java、b.java 打包tar-cvf start.tar ./*                 # 将当前目录下所有文件打包tar-zcvf start.tar.gz a.java b.java   # 打包并使用 gzip 压缩tar-zcvf start.tar.gz ./*             # 将当前目录打包压缩为 .tar.gztar-jcvf start.tar.bz2 ./*           # 打包并使用 bzip2 压缩(.tar.bz2)

解压缩(-x):

tar-xvf start.tar                     # 解包到当前目录tar-xvf start.tar -C /usr/local       # 解包到 /usr/local 目录tar-zxvf start.tar.gz                 # 解压 .tar.gz 到当前目录tar-zxvf start.tar.gz -C /usr/local   # 解压 .tar.gz 到指定目录tar-jxvf start.tar.bz2               # 解压 .tar.bz2 到当前目录tar xf node-v12.18.1-linux-x64.tar.xz # 解压 .tar.xz 文件

tar 选项说明:

选项
含义
c
创建打包文件
x
解开打包文件
v
显示详细进度
f
指定档案文件名(必须放在选项最后
-z
调用 gzip 进行压缩/解压缩
-j
调用 bzip2 进行压缩/解压缩
-C
解压到指定目录(目录必须事先存在)

⚠️ f 选项必须放在选项列表的最后!


8.2 zip/unzip 命令

压缩(zip):

zip lib.zip tomcat.jar                         # 压缩单个文件zip-r lib.zip lib/                            # 压缩整个目录zip-r lib.zip file1.jar file2.jar             # 压缩多个文件

解压缩(unzip):

unzip file1.zip                                # 解压到当前目录unzip-d /usr/app/ com.example.zip             # 解压到指定目录

九、系统信息与进程管理

9.1 时间与日期

date# 查看系统当前时间cal# 查看本月日历cal-y# 查看本年日历

9.2 磁盘信息

df-h# 查看系统各分区磁盘使用情况(human-readable)du-lh# 查看当前目录下各文件夹占用空间du-sh# 查看当前文件夹总占用空间du-h /usr/local            # 查看指定目录大小du --max-depth=1# 只查看当前目录下一级的占用情况

9.3 进程管理

ps aux                      # 查看所有进程详细状态ps-ef|grepjava# 查看名称含 java 的进程ps-ef|grep mysql         # 查看 MySQL 相关进程ps-aux|grep28990# 根据 PID 查看进程信息top# 动态实时查看进程资源占用(q 退出)kill-92630# 强制终止 PID 为 2630 的进程

ps 选项说明:

选项
含义
a
显示终端上的所有进程(包含其他用户)
u
显示进程的详细状态
x
显示没有控制终端的进程

9.4 top 命令详解

top# 实时查看系统资源占用(按 q 退出)

统计信息区说明:

top -15:33:39 up 5:40,2 users, load average:1.09,1.04,0.98Tasks:123 total,3 running,120 sleeping,0 stopped,0 zombie%Cpu(s):42.1 us,2.0 sy,0.0 ni,49.2 id,0.0 wa,6.0 hi,0.7 siKiBMem:3780.9 total,727.4 free,668.8 used,2384.7 buff/cacheKiBSwap:2048.0 total,2046.0 free,2.0 used,859.6 avail
字段
说明
us
用户空间占用 CPU 百分比
sy
内核空间占用 CPU 百分比
id
空闲 CPU 百分比
wa
等待 I/O 的 CPU 时间百分比

进程信息区字段说明:

字段
说明
PID
进程 ID
USER
进程所有者
PR
优先级
NI
nice 值(负值=高优先级)
%CPU
CPU 占用百分比
%MEM
内存占用百分比
S
进程状态(R=运行,S=睡眠,Z=僵尸)
COMMAND
命令名

9.5 后台运行程序

nohupsh test.sh &# 后台运行,日志输出到 nohup.outnohupsh test.sh >> test.out &# 后台运行,日志输出到 test.out

9.6 关机与重启

shutdown-h now                        # 立即关机shutdown-h10:53                      # 在 10:53 关机shutdown-h +10                        # 10分钟后自动关机shutdown-r now                        # 立即重启shutdown-r +30 '30 minutes to reboot'# 30分钟后重启并通知用户shutdown-c# 取消之前的关机/重启计划reboot# 强制重启

十、用户与权限管理

10.1 文件权限说明

-rw-r--r--1 root root 34942Jan192018 bootstrap.jar
权限位说明:- r: read(读取)  w: write(写入)  x: execute(执行)-: 文件类型(-=普通文件,d=目录,l=软链接)3位:文件所有者的权限(user)3位:所属组其他用户的权限(group)3位:其他用户的权限(others)示例:rw-r--r-- 表示  所有者:可读、可写、不可执行  同组用户:可读、不可写、不可执行  其他用户:可读、不可写、不可执行

10.2 修改文件权限 —— chmod

# 符号方式chmod u+x web.xml     # 给所有者(user)添加执行权限chmod g+x web.xml     # 给所属组(group)添加执行权限chmod o+x web.xml     # 给其他用户(others)添加执行权限chmod a+x web.xml     # 给所有人添加执行权限# 数字方式(r=4, w=2, x=1)chmod755 web.xml     # rwxr-xr-x(所有者全权限,其他只读执行)chmod644 web.xml     # rw-r--r--(所有者读写,其他只读)chmod777 web.xml     # rwxrwxrwx(所有人全权限,生产中慎用)chmod111 web.xml     # --x--x--x(所有人只有执行权限)chmod-R755 dir/     # 递归修改目录下所有文件权限

10.3 修改文件所有者 —— chown

chownsum file.txt                    # 将文件所有者改为 sumchown sum:sum file.txt                # 同时改所有者和所属组为 sumchown-Rsum /usr/sum/               # 递归修改目录下所有文件的所有者chown-R sum:sum /usr/sum/           # 递归修改所有者和所属组

10.4 用户管理

# 添加用户useradd-d /usr/sum -msum# 创建用户 sum,家目录为 /usr/sum# 设置用户密码passwdsum# 切换用户su - sum# 切换到 sum 用户(并切换到其家目录)susum# 切换到 sum 用户(保持当前目录)exit# 退出当前登录,回到上一个用户# 查看用户信息idsum# 查看用户 UID 和 GIDwho# 查看当前所有登录用户whoami# 查看当前登录用户账户名cat /etc/passwd                      # 查看所有用户列表# 修改用户信息usermod 选项 用户名# 删除用户userdelsum# 删除用户rm-rf /usr/sum                      # 删除用户家目录(需分开执行)# 赋予 root 权限(sudo 权限)visudo                               # 编辑 sudoers 文件# 在文件中添加:sum ALL=(ALL) ALLsudo-s# 使用 root 权限执行命令

10.5 组管理

groupadd groupname                   # 创建用户组groupdel groupname                   # 删除用户组groupmod-n newname oldname          # 将用户组改名chgrp-R groupname dir/              # 递归修改目录所属组cat /etc/group                       # 查看所有组的信息

十一、网络与远程管理

11.1 查看/配置网卡 —— ifconfig

ifconfig# 查看所有网卡配置信息ifconfig|grep inet                 # 只显示 IP 地址
  • Linux 物理网卡名通常以 ensXX 表示
  • 127.0.0.1
     是本地回环地址,用于测试本机网卡

11.2 网络连通性检测 —— ping

ping192.168.1.100                   # 持续 ping 目标 IPping-c4 www.example.com            # 发送4个 ping 包后停止ping127.0.0.1                       # 检测本机网卡是否正常

11.3 端口与连接检测

telnet 49.32.587.164 8093# 检查目标服务器指定端口是否可用lsof-i:8080# 查看占用 8080 端口的进程netstat-tunlp|grep8080# 查看指定端口的进程信息netstat-tunlp# 显示所有 tcp/udp 端口和进程情况netstat-lt# 列出所有处于监听状态的 tcp 端口netstat-an# 查看当前系统的 IP 连接(全平台通用)

查看连接状态数量:

netstat-n|awk'/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

11.4 远程登录 —— ssh

ssh user@192.168.1.100               # 使用默认 22 端口登录ssh-p2222 user@192.168.1.100       # 指定端口号登录exit# 退出 SSH 会话
参数
说明
user
远程机器上的用户名
remote
远程机器的 IP 或域名
-p port
指定端口号(默认22)

11.5 curl 命令

# GET 请求curl"http://www.example.com"# POST 请求(表单格式)curl-d'login=admin&password=123'-X POST https://example.com/login# POST 请求(JSON 格式)curl-l-H"Content-type: application/json"\-X POST \-d'{"phone":"13800138000","password":"test"}'\     http://example.com/api/users

11.6 添加 Hosts

vim /etc/hosts                       # 编辑 hosts 文件# 添加一行:49.235.32.164 www.example.com/etc/init.d/network restart          # 保存后重启网络生效

11.7 防火墙管理

service iptables status              # 查看防火墙状态service iptables stop                # 临时关闭防火墙chkconfig iptables off               # 设置防火墙开机不启动

十二、软件包管理

12.1 yum(CentOS/RedHat)

yum install iptables-services        # 安装软件包yum list                             # 列出当前已安装的所有包yum search package_name              # 在仓库中搜索软件包yum update package_name              # 更新指定软件包yum remove package_name              # 删除软件包yum clean all                        # 清除所有缓存# 安装文件传输工具(上传下载)yum install-y lrzszrz                                   # 上传文件到服务器sz filename                          # 从服务器下载文件

12.2 apt(Ubuntu/Debian)

sudoaptinstall 软件包名             # 安装软件sudoapt remove 软件名               # 卸载软件sudoapt upgrade                     # 更新所有已安装的包sudoapt update                      # 更新软件包列表

十三、其他实用命令

13.1 历史命令

history# 查看历史使用过的命令history|grep es                    # 过滤与 es 相关的历史命令

13.2 查看系统信息

cat /etc/redhat-release              # 查看操作系统版本(RedHat/CentOS)cat /etc/shells                      # 查看系统支持的 shell 列表echo$USER# 输出当前用户名echo$PATH# 输出系统路径变量set# 输出所有环境变量whichls# 查看命令所在的位置(如 /bin/ls)whichuseradd# 查看命令路径(如 /usr/sbin/useradd)

13.3 定时任务

crontab-e# 打开/编辑定时任务文件# 示例:每天 0 点执行脚本00 * * * /data/shell/bin/del-30-days-ago-log.sh

crontab 时间格式:

分 时 日 月 周   命令*****/path/to/script.sh

13.4 Linux 内核参数优化

vim /etc/sysctl.conf                 # 编辑内核参数配置文件sysctl-p# 重新加载配置(不重启生效)

十四、系统日志

常用系统日志文件位置(以 RedHat/CentOS 为例):

/var/log/messages      # 系统启动后的信息和错误日志(最常用)/var/log/secure        # 安全相关的日志信息/var/log/maillog       # 邮件相关的日志信息/var/log/cron          # 定时任务相关的日志/var/log/spooler       # UUCP 和 news 设备相关的日志/var/log/boot.log      # 守护进程启动和停止的日志# 查看操作历史cat .bash_history      # 查看当前用户的命令历史记录

十五、Docker 容器常用命令

# 搜索镜像docker search mysql# 查看已下载的镜像docker images# 下载并运行容器docker run -di--name=mycontainer -p3306:3306 \-eMYSQL_ROOT_PASSWORD=root <镜像ID># 查看运行中的容器dockerps# 查看所有容器(包括未运行的)dockerps-a# 停止/启动/重启容器docker stop mycontainerdocker start mycontainerdocker restart mycontainer# 删除容器dockerrm mycontainer

十六、Vim 编辑器详细使用指南

16.1 Vim 简介

vim 是 Linux 系统上最常用的文本编辑器,功能强大。它有三种主要工作模式:

┌─────────────────────────────────────────────────┐│                  Vim 三种模式                    ││                                                 ││   普通模式 ──i/a/o──→ 插入模式                  ││      ↑                    │                     ││      └─────── ESC ────────┘                     ││      │                                          ││      └──── : ────→ 命令行模式 ──→ 执行后回普通   │└─────────────────────────────────────────────────┘

16.2 打开文件

vim filename.txt         # 打开文件(不存在则创建新文件)vim +3 filename.txt      # 打开文件并跳转到第3行vim +/keyword file.txt   # 打开文件并定位到第一个关键词处vi filename.txt          # vi 是 vim 的精简版

16.3 三种模式详解

模式一:普通模式(Normal Mode)

打开文件后默认进入普通模式,不能直接输入文字,主要用于移动光标、复制、删除、搜索等操作。

光标移动:

按键
功能
h
向左移动一个字符
l
向右移动一个字符
j
向下移动一行
k
向上移动一行
w
跳到下一个单词开头
b
跳到上一个单词开头
0
跳到行首
$
跳到行尾
gg
跳到文件开头(第一行)
G
跳到文件末尾(最后一行)
nG
 或 :n
跳到第 n 行
Ctrl+f
向下翻页
Ctrl+b
向上翻页

复制、粘贴、删除:

按键
功能
yy
复制当前行
nyy
复制当前行起的 n 行(如 3yy
p
在当前行下方粘贴
P
在当前行上方粘贴
dd
删除(剪切)当前行
ndd
删除(剪切)当前行起的 n 行
x
删除光标所在字符
dw
删除一个单词
D
删除从光标到行尾
u
撤销上一步操作(undo)
Ctrl+r
重做(redo)

搜索:

按键
功能
/keyword
向下搜索 keyword
?keyword
向上搜索 keyword
n
跳到下一个匹配项
N
跳到上一个匹配项

模式二:插入模式(Insert Mode)

在普通模式下按以下键进入插入模式(开始输入文字):

按键
进入位置
i
在光标插入
a
在光标插入
I
行首插入
A
行尾插入
o
在当前行下方新建一行并插入
O
在当前行上方新建一行并插入

按 ESC 键退出插入模式,返回普通模式


模式三:命令行模式(Command-Line Mode)

在普通模式下按 : 进入命令行模式(屏幕底部出现 : 提示符):

文件保存与退出:

命令
功能
:w
保存文件(不退出)
:q
退出(文件无修改时有效)
:wq
保存并退出
:wq!
强制保存并退出
:q!
强制退出(放弃所有修改)
:x
保存并退出(等同于 :wq
:w filename
另存为指定文件名

文本替换:

命令
功能
:s/old/new
替换当前行第一个匹配
:s/old/new/g
替换当前行所有匹配
:%s/old/new/g
替换整个文件所有匹配
:1,5s/old/new/g
替换第1到第5行所有匹配

行号与跳转:

命令
功能
:set nu
显示行号
:set nonu
隐藏行号
:n
跳转到第 n 行(如 :10 跳到第10行)

其他命令:

命令
功能
:!command
在不退出 vim 的情况下执行 shell 命令
:r filename
将指定文件内容插入当前光标位置
:e filename
在 vim 中打开另一个文件

16.4 Vim 快速参考总结

打开文件:vim file.txt         ↓    普通模式(默认)         ↓ i / a / o    插入模式(输入文字)         ↓ ESC    返回普通模式:    命令行模式(保存/退出):wq 保存退出 |:q! 不保存退出

16.5 Vim 常用操作速记

# 快速编辑文件并保存退出vim file.txt    # 打开i               # 进入插入模式# ... 输入内容 ...ESC             # 退出插入模式:wq             # 保存退出# 只读查看文件vim-R file.txt # 只读模式打开:q              # 查看后退出# 快速替换文本vim file.txt:%s/Jack/Tom/g  # 全文替换 Jack 为 Tom:wq             # 保存退出

十七、C 语言代码编译

17.1 GCC 编译器基础

GCC(GNU Compiler Collection)是 Linux 下最常用的 C/C++ 编译器。

# 安装 GCC(CentOS/RedHat)yum install-y gcc# 安装 GCC(Ubuntu/Debian)sudoaptinstall gcc# 查看 GCC 版本gcc --version

17.2 C 语言编译基本流程

源代码(.c)→ 预处理(.i)→ 编译(.s)→ 汇编(.o)→ 链接 → 可执行文件

17.3 GCC 常用编译命令

最简单的编译(一步到位)

gcc hello.c -o hello       # 编译 hello.c,生成可执行文件 hello./hello                    # 运行程序

分步编译(了解各阶段)

# 第一步:预处理(展开宏定义和头文件,生成 .i 文件)gcc -E hello.c -o hello.i# 第二步:编译(生成汇编代码 .s 文件)gcc -S hello.i -o hello.s# 第三步:汇编(生成目标文件 .o 文件)gcc -c hello.s -o hello.o# 第四步:链接(生成最终可执行文件)gcc hello.o -o hello

常用编译选项

# 开启所有警告(推荐初学者使用,帮助发现潜在问题)gcc -Wall hello.c -o hello# 开启调试信息(用于 GDB 调试)gcc -g hello.c -o hello# 指定 C 语言标准gcc -std=c99 hello.c -o hello      # 使用 C99 标准gcc -std=c11 hello.c -o hello      # 使用 C11 标准# 开启优化gcc -O1 hello.c -o hello           # 1级优化gcc -O2 hello.c -o hello           # 2级优化(常用)gcc -O3 hello.c -o hello           # 3级优化# 链接数学库(使用 math.h 时需要)gcc hello.c -o hello -lm# 同时指定多个源文件gcc main.c utils.c -o program# 指定头文件搜索路径gcc -I /usr/local/include hello.c -o hello# 指定库文件搜索路径gcc hello.c -L /usr/local/lib -lmylib-o hello

17.4 完整示例

1. 编写第一个 C 程序:

vim hello.c     # 创建并编辑源文件

在 vim 中输入以下内容:

#include<stdio.h>intmain(){printf("Hello, Linux!\n");return0;}

2. 编译并运行:

gcc hello.c -o hello      # 编译./hello                   # 运行# 输出:Hello, Linux!

17.5 多文件项目编译

目录结构示例:

project/├── main.c├── add.c├── add.h└── Makefile

手动编译多文件:

# 分别编译各源文件为目标文件gcc -c main.c -o main.ogcc -c add.c -o add.o# 链接所有目标文件gcc main.o add.o -o project# 运行./project

一步编译多文件:

gcc main.c add.c -o project

17.6 使用 Makefile 管理编译

Makefile 可以自动化编译过程,避免每次手动输入编译命令

基本 Makefile 示例(Makefile 文件):

# 目标文件名TARGET = project# C 编译器CC = gcc# 编译选项CFLAGS = -Wall -g# 源文件列表SRCS = main.c add.c# 目标文件列表(.c 替换为 .o)OBJS =$(SRCS:.c=.o)# 默认目标:生成可执行文件$(TARGET):$(OBJS)$(CC)$(OBJS) -o $(TARGET)# 编译每个 .c 文件为 .o 文件%.o: %.c$(CC)$(CFLAGS) -c $< -o $@# 清理编译产生的文件clean:	rm -f $(OBJS)$(TARGET)

Makefile 使用命令:

make# 编译项目make clean        # 清理编译产生的中间文件和可执行文件make-j4# 使用4个并行任务加速编译

17.7 GDB 调试基础

GDB(GNU Debugger)是 Linux 下的 C/C++ 调试工具

# 编译时必须加 -g 选项才能调试gcc -g hello.c -o hello# 启动 GDB 调试gdb ./hello

GDB 常用命令:

命令
简写
说明
runr
运行程序
break 行号b
在指定行设置断点
break 函数名b
在函数入口设置断点
nextn
执行下一行(不进入函数)
steps
执行下一行(进入函数内部)
print 变量名p
打印变量的值
continuec
继续运行到下一个断点
listl
显示源代码
quitq
退出 GDB
backtracebt
显示调用栈
info locals
显示局部变量

GDB 调试示例:

gdb ./hello(gdb)break main          # 在 main 函数设置断点(gdb) run                 # 开始运行(gdb) next                # 执行下一行(gdb) print i             # 打印变量 i 的值(gdb)continue# 继续运行(gdb) quit                # 退出

17.8 常见编译错误解决

错误信息
可能原因
解决方法
No such file or directory
头文件路径不对
检查 #include 路径或加 -I 参数
undefined reference to 'xxx'
链接时找不到函数
检查是否缺少库,加 -l 参数
implicit declaration of function
未声明函数就使用
添加对应头文件或前向声明
expected ';' before '}'
语法错误(缺分号)
检查报错行及其上一行
segmentation fault
访问非法内存(段错误)
使用 GDB 调试,检查指针
warning: unused variable
声明了变量但未使用
删除未使用的变量

十八、快速参考速查表

目录与文件操作

分类
命令
说明
目录导航
pwd
查看当前目录
cd ~
 / cd .. / cd -
切换到家目录/上级/上次目录
ll
 / ls -alh
查看目录内容(含隐藏文件/详细信息)
tree
以树状图显示目录结构
目录操作
mkdir -p dir/sub
递归创建目录
rmdir dir
删除空目录
rm -rf dir
强制删除目录(含所有内容)
文件操作
touch file
创建文件
cp -r src dst
递归复制
mv src dst
移动或重命名
find -name "*.c"
按名称查找文件
ln -s src link
创建软链接

文件内容处理

分类
命令
说明
查看内容
cat -n file
带行号查看
more
 / less
分屏查看
head -n 10
 / tail -n 10
查看前/后N行
tail -f logfile
实时查看日志
文本搜索
grep -n pattern file
显示匹配行及行号
grep -v pattern file
显示不匹配的行
grep -i pattern file
忽略大小写搜索
文本处理
awk '{print $1}' file
打印第1列
sed 's/old/new/g' file
全文替换
cut -d "," -f 1 file
按分隔符提取列
重定向
cmd > file
覆盖输出到文件
cmd >> file
追加输出到文件
管道
cmd1 | cmd2
将cmd1输出作为cmd2输入

压缩解压

命令
说明
tar -zcvf out.tar.gz dir/
gzip 压缩目录
tar -zxvf file.tar.gz
解压 .tar.gz
tar -zxvf file.tar.gz -C /dest
解压到指定目录
zip -r out.zip dir/
zip 压缩目录
unzip file.zip -d /dest
解压 zip 到指定目录

系统与进程

命令
说明
ps aux
查看所有进程
top
动态查看进程(q退出)
kill -9 PID
强制终止进程
df -h
查看磁盘空间
du -sh dir/
查看目录大小
shutdown -r now
立即重启
shutdown now
立即关机
date
查看系统时间

用户与权限

命令
说明
chmod 755 file
修改文件权限
chown user:group file
修改文件所有者和组
su - username
切换用户
sudo command
以管理员权限执行
useradd username
创建用户
passwd username
设置密码
groupadd groupname
创建用户组

网络与远程

命令
说明
ifconfig
查看网卡信息
ping ip
检测网络连通性
ssh user@host
远程登录
scp file user@host:path
远程复制文件
netstat -tunlp
查看端口占用
lsof -i:8080
查看指定端口
curl url
发送 HTTP 请求

Vim 常用操作

操作
命令
打开文件
vim file.txt
进入插入模式
i
(光标前)/ a(光标后)/ o(下行新增)
退出插入模式
ESC
保存退出
:wq
不保存退出
:q!
全文替换
:%s/old/new/g
搜索
/keyword
(向下)/ ?keyword(向上)
复制行
yy
 / nyy(复制n行)
删除行
dd
 / ndd(删除n行)
撤销
u

C 语言编译常用命令

命令
说明
gcc hello.c -o hello
编译C程序
gcc -Wall hello.c -o hello
编译并显示所有警告
gcc -g hello.c -o hello
编译并加入调试信息
gcc -std=c99 hello.c -o hello
使用C99标准编译
./hello
运行可执行文件
make
使用Makefile编译项目
make clean
清理编译产物
gdb ./hello
启动GDB调试

📝 学习建议:

  1. 多练习常用命令,熟能生巧
  2. 遇到不熟悉的命令,先用 man 命令名 或 命令 --help 查阅文档
  3. Vim 的使用需要刻意练习,建议每天使用 vim 编辑文件
  4. C 语言编译建议从单文件开始,逐步过渡到 Makefile 管理多文件项目
  5. 在实验环境中大胆尝试各种命令,积累经验

Linux 常用命令大全

整合自多篇优质博文,涵盖 Linux 日常操作、C 语言编译与 Vim 编辑器使用。


目录

  • 一、Linux 系统目录结构
  • 二、终端命令格式与帮助
  • 三、目录操作
  • 四、文件操作
  • 五、文件内容查看与处理
  • 六、文本处理三剑客(grep / awk / sed)
  • 七、压缩与解压缩
  • 八、文件权限管理
  • 九、用户与组管理
  • 十、系统信息与进程管理
  • 十一、网络相关命令
  • 十二、关机重启与计划任务
  • 十三、软件安装(yum / apt)
  • 十四、Shell 脚本基础
  • 十五、Docker 常用命令
  • 十六、C 语言编译(gcc / make / gdb)
  • 十七、Vim 编辑器完全指南

一、Linux 系统目录结构

├── bin -> usr/bin       # 二进制可执行文件├── boot                 # 启动相关文件├── dev                  # 设备文件├── etc                  # 系统配置文件├── home                 # 普通用户家目录├── lib -> usr/lib       # 库文件├── lib64 -> usr/lib64   # 64位库文件├── media                # 挂载媒体设备├── mnt                  # 临时挂载点├── opt                  # 第三方软件安装目录├── proc                 # 进程及内核信息(虚拟文件系统)├── root                 # root 用户家目录├── run                  # 运行时数据├── sbin -> usr/sbin     # 系统管理命令├── srv                  # 服务数据├── sys                  # 内核设备信息├── tmp                  # 临时文件├── usr                  # 用户程序和数据└── var                  # 可变数据(日志、缓存等)

二、终端命令格式与帮助

命令格式

command [-options][parameter]
  • command
    :命令名
  • [-options]
    :选项,可选
  • parameter
    :参数,可选

查阅帮助

# --help 查看简要帮助ls--help# man 查看详细手册manls# man 中的操作键# 空格:下一页    Enter:下一行    b:回滚一屏# f:前滚一屏     q:退出         /word:搜索

三、目录操作

基本操作

pwd# 查看当前工作目录clear# 清除屏幕cd ~                # 切换到当前用户目录cd /                # 切换到根目录cd -                # 切换到上一次访问的目录cd..# 切换到上一级目录

查看目录内容

ls# 查看当前目录内容(list)ll                  # 以列表方式查看(ls -l 的别名)ls-a# 显示所有文件,包括隐藏文件ls-l# 以列表方式显示文件详细信息ls-lh# 人性化显示文件大小ls-R# 递归显示子目录# 通配符使用ls *.txt            # 所有 .txt 文件ls test?            # test 后跟任意一个字符ls[abc]*           # 以 a/b/c 开头的文件

创建与删除目录

mkdir aaa                     # 创建 aaa 目录mkdir ./bbb                   # 在当前目录下创建 bbbmkdir /ccc                    # 在根目录下创建 cccmkdir-p temp/nginx           # 递归创建目录# 批量创建mkdir{dirA,dirB}# 同时创建 dirA 和 dirBmkdir dir{1..5}# 创建 dir1 到 dir5# 删除目录rmdir test01                  # 删除空目录rm-r test01                  # 删除目录(会询问)rm-rf test01                 # 强制删除目录(不询问,慎用)

查找目录与文件

find / -name'b'# 在根目录下查找名为 b 的文件/目录find / -name'b*'# 查找以 b 开头的文件/目录find.-name'*.txt'# 在当前目录查找 .txt 文件find.-name'*.pyc'-execrm-rf{}\;# 查找并递归删除 .pyc 文件find.-name"*"-size 145800c -print# 查找指定大小的文件

复制与移动

# 复制cp-r /aaa /bbb               # 复制目录 aaa 到 bbbcp-r /aa /bbb/aaa            # 复制并重命名cp-i 源文件 目标文件           # 覆盖前提示# 移动(也用于重命名)mv 源文件 目标文件              # 移动文件/目录mv oldname newname            # 重命名mv /aaa /bbb                  # 将 aaa 移动到 bbb 目录下

查看目录树

tree                           # 树状图显示目录结构tree -L2# 限制显示层级为 2

四、文件操作

创建与删除

touch testFile                  # 创建空文件(或更新文件时间)touch dirA/{A1,A2,A3}# 批量创建文件rm a.java                       # 删除文件(会询问)rm-f a.java                    # 强制删除文件rm-rf ./a*                     # 强制删除以 a 开头的所有文件rm-rf ./*                      # 强制删除当前目录所有文件(慎用!)

软链接与硬链接

# 创建软链接(类似 Windows 快捷方式)ln-s /usr/local/app /data# 删除软链接(注意:最后不要加 /)rm-rf /data# 创建硬链接(不常用)ln 源文件 链接文件# 区别:软链接是快捷方式,硬链接是文件的另一个入口# 硬链接数 = 0 时文件才被真正删除

拆分文件

# 按大小拆分(10KB)split-b 10k date.file# 使用数字后缀split-b 10k -d date.file# 指定前缀split-b 10k date.file split_file# 按行数拆分(每10行)split-l10 date.file

五、文件内容查看与处理

查看文件内容

cat a.java              # 查看文件全部内容(适合小文件)cat-n a.java           # 显示行号cat-b a.java           # 对非空行编号more a.java             # 分页查看(只能向下翻)less a.java             # 分页查看(可上下翻页,推荐)# more 与 less 的区别:# 1. less 支持上下方向键翻页,more 不支持# 2. less 加载速度更快# 3. less 退出后不残留内容,more 会残留# 4. more 不能后退head a.java             # 查看前10行head-n7 a.java        # 查看前7行tail a.java             # 查看后10行tail-n7 a.java        # 查看后7行tail-f a.java          # 实时查看文件末尾(常用于查看日志)

重定向与管道

# 重定向(覆盖写入)echo'Hello World'> /root/test.txtls-l> file_list.txt# 重定向(追加写入)echo'Another line'>> /root/test.txt# 管道(前一个命令的输出作为后一个命令的输入)ps-ef|grepjavacat /etc/passwd |grep'root'find ~ |grep"test"

六、文本处理三剑客(grep / awk / sed)

grep(文本搜索)

grep[options] pattern filegrep under 123.txt            # 搜索包含 under 的行grep-n under 123.txt         # 显示行号grep-v under 123.txt         # 反向搜索(不包含 under 的行)grep-i under 123.txt         # 忽略大小写grep-ni under 123.txt        # 组合:行号 + 忽略大小写grep"start" test*            # 在 test 开头的文件中搜索grep-A1-B1"https"file# 显示匹配行的前1行和后1行# 正则模式grep'^a'file# 以 a 开头的行grep'ke$'file# 以 ke 结尾的行

awk(数据统计与处理)

awk[options]'cmd'file# 基本用法:$0 整行,$1 第一列,$2 第二列...awk'{print $1,$3}'file# 打印第1列和第3列awk-F","'{print $2}' test.txt   # 以逗号分隔,打印第2列# 条件筛选awk'$1"tcp" && $21{print $0}'file# 条件匹配awk'($1"tcp")|| NR1 {print $0}'file# 包含表头# 统计awk'{count[$1]++} END {for(i in count) print i "\t" count[i]}'file# 输出到文件awk-F","'{print $1 >> "test01.txt"}'file

sed(流编辑器,替换/删除文本)

sed[option]'sed command' filename# 替换(s/原内容/新内容/)sed-i's/Str/String/' replace.java       # 替换行首 Str 为 Stringsed-i's/\.$/;/'file# 将末尾 . 替换为 ;sed-i's/Jack/me/g' replace.java          # 全局替换 Jack 为 me# 删除sed-i'/ *$/d' replace.java              # 删除空行sed-i'/Integer/d' replace.java           # 删除包含 Integer 的行# 多命令grep'input'123.txt |sed's/"//g; s/,/\n/g'# 替换后存入文件sed-n's/"//gw test01.txt'file

cut(数据裁剪)

cut-f 列号 -d 分隔符 filecut-f1-d':' /etc/passwd          # 以 : 分隔,取第1列cat /etc/passwd |cut-d':'-f1,3# 取第1列和第3列

xargs(参数传递)

cat test.txt |xargs-n3# 每行输出3个字段echo"nameXnameXnameXname"|xargs-dX# 按 X 分隔ls *.jpg |xargs-n1-I{}cp{} /data/images  # 批量复制

七、压缩与解压缩

tar(打包/压缩)

# 打包tar-cvf start.tar a.java b.java          # 打包指定文件tar-cvf start.tar ./*                    # 打包当前目录所有文件# 解包tar-xvf start.tar                        # 解包到当前目录tar-xvf start.tar -C /usr/local          # 解包到指定目录# 压缩(gzip,.tar.gz)tar-zcvf start.tar.gz a.java b.java      # 打包并压缩tar-zxvf start.tar.gz                    # 解压到当前目录tar-zxvf start.tar.gz -C /usr/local      # 解压到指定目录# 压缩(bzip2,.tar.bz2)tar-jcvf start.tar.bz2 a.java            # 打包并压缩tar-jxvf start.tar.bz2                   # 解压# 解压 .tar.xztar-xf node-v12.18.1-linux-x64.tar.xz

tar 选项说明

选项
含义
c
创建打包文件
x
解开打包文件
v
显示详细过程
f
指定档案文件名(必须放最后)
z
调用 gzip 压缩/解压
j
调用 bzip2 压缩/解压
C
解压到指定目录

zip / unzip

# 压缩zip lib.zip tomcat.jar                    # 压缩单个文件zip-r lib.zip lib/                       # 压缩目录zip-r lib.zip a.jar b.jar                # 压缩多个文件# 解压unzip file1.zip                           # 解压unzip-d /usr/app/ file.zip               # 解压到指定目录

八、文件权限管理

权限说明

-rw-r--r--1 root root  34942Jan192018 bootstrap.jar|||||||  └── 其他用户权限:r--(只读)||  └──── 组用户权限:r--(只读)| └─────── 文件所有者权限:rw-(读写)└────────── 文件类型:- 文件 / d 目录 / l 链接=Read(4), w =Write(2), x = eXecute(1

修改权限

# 字母方式chmod u+x web.xml           # 所有者添加执行权限chmod g+x web.xml           # 所属组添加执行权限chmod o+x web.xml           # 其他用户添加执行权限chmod u-w web.xml           # 所有者移除写入权限# 数字方式chmod755file# rwxr-xr-x(所有者全权限,其他只读执行)chmod644file# rw-r--r--(所有者读写,其他只读)chmod777file# rwxrwxrwx(所有人全权限,不安全)# 递归修改chmod-R755 dir/

修改所有者

chown 用户名 文件名                    # 修改文件所有者chown 用户名:组名 文件名               # 同时修改所有者和组chown-R 用户名:组名 目录/             # 递归修改

九、用户与组管理

用户操作

# 添加用户useradd-d /home/sum -msum# 创建用户并指定家目录useradd-u1001-g group1 sum# 指定 UID 和默认组# 设置密码passwdsum# 切换用户susum# 切换到 sum 用户su - sum# 切换用户并切换到家目录exit# 退出当前用户# 查看用户信息idsum# 查看 UID 和 GIDwho# 查看当前登录用户whoami# 查看当前用户名cat /etc/passwd                        # 查看所有用户信息# 修改用户usermod-g 组名 用户名                  # 修改用户默认组usermod-d /new/home 用户名             # 修改用户家目录# 删除用户userdelsum# 删除用户(保留家目录)userdel-rsum# 删除用户及家目录

组操作

cat /etc/group                         # 查看所有组信息groupadd groupname                     # 添加组groupmod-n newname oldname            # 修改组名groupdel groupname                     # 删除组

sudo 权限

# 编辑 sudoers 文件visudo# 添加如下行(给用户 root 权限)# sum    ALL=(ALL)    ALL# 使用 sudo 执行命令sudo 命令sudo-s# 切换到 root 用户

十、系统信息与进程管理

系统信息

date# 查看系统日期时间date"+%Y-%m-%d %H:%M:%S"# 格式化输出cal# 查看当月日历cal-y# 查看全年日历cat /etc/redhat-release             # 查看系统版本uname-a# 查看内核版本# 磁盘信息df-h# 查看磁盘剩余空间du-sh# 查看当前目录占用空间du-lh# 查看各文件夹占用空间du --max-depth=1# 只查看当前目录下文件占用空间# 环境变量echo$PATH# 查看 PATH 变量echo$USER# 输出某个变量set# 输出所有变量

进程管理

ps aux                              # 查看所有进程详情ps-ef|grepjava# 查看 java 相关进程top# 实时动态显示进程(按 q 退出)# 结束进程kill PID                            # 终止指定进程kill-9 PID                         # 强制终止进程# 后台运行nohupsh test.sh &# 后台运行,日志输出到 nohup.outnohupsh test.sh >> test.out &# 后台运行,指定日志文件# Ctrl+Z vs Ctrl+C# Ctrl+Z:挂起进程(可用 fg 恢复前台,bg 转到后台)# Ctrl+C:强制中断进程

十一、网络相关命令

基本网络命令

# 网卡信息ifconfig# 查看网卡配置(新版可用 ip addr)ifconfig|grep inet                # 查看 IP 地址ip addr                             # 新版命令# 网络连通性ping127.0.0.1                      # 测试本机网卡ping-c4 www.example.com           # 发送 4 个包后停止# 端口与连接netstat-an# 查看所有连接netstat-tunlp# 查看 TCP/UDP 端口及进程netstat-tunlp|grep8080# 查看指定端口占用lsof-i:8080# 查看端口被哪个进程占用# 查看连接状态统计netstat-n|awk'/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'# telnet 测试端口telnet IP 端口                       # 测试远程端口是否可达

SSH 远程登录

# 远程登录ssh user@remote                      # 默认端口22ssh-p2222 user@remote              # 指定端口# 远程复制(scp)scp local.file user@remote:/path/    # 本地上传到远程scp user@remote:/path/file ./        # 远程下载到本地scp-r dir/ user@remote:/path/       # 复制目录scp-P2222file user@remote:/path/  # 指定端口(大写 P)# 退出exit

十二、关机重启与计划任务

关机重启

shutdown-h now                # 立即关机shutdown-h20:25              # 定时关机shutdown-h +10                # 10分钟后关机shutdown-r now                # 立即重启shutdown-r +30 '提示信息'# 30分钟后重启并通知用户shutdown-c# 取消关机计划reboot# 强制重启

计划任务(crontab)

crontab-e# 编辑计划任务crontab-l# 查看计划任务# 格式:分 时 日 月 周 命令# 示例:00 * * * /data/shell/del-log.sh          # 每天0点执行08 * * 1 /data/shell/backup.sh           # 每周一8点执行*/30 * * * * /data/shell/check.sh          # 每30分钟执行

服务管理

# systemd(新版本)systemctl start 服务名         # 启动服务systemctl stop 服务名          # 停止服务systemctl restart 服务名       # 重启服务systemctl status 服务名        # 查看服务状态systemctl enable 服务名        # 设置开机启动systemctl disable 服务名       # 取消开机启动# service(旧版本)service 服务名 startservice 服务名 stopservice 服务名 status

十三、软件安装(yum / apt)

yum(CentOS / RHEL)

yum install package_name           # 安装软件包yum remove package_name            # 卸载软件包yum update package_name            # 更新软件包yum list                           # 列出已安装的包yum search package_name            # 搜索软件包yum clean all                      # 清理缓存

apt(Ubuntu / Debian)

sudoaptinstall package_name      # 安装软件包sudoapt remove package_name       # 卸载软件包sudoapt upgrade                   # 更新已安装的包sudoapt update                    # 更新软件源apt search package_name            # 搜索软件包

源码下载

wget https://example.com/file.zip   # 下载文件

十四、Shell 脚本基础

脚本结构

#!/bin/bash                        # 指定解析器# 这是注释echo"Hello World"

变量与输出

name="John"echo$nameecho"My name is ${name}"# 命令执行结果赋值current_date=$(date)file_count=$(ls|wc-l)

条件判断

if[ condition ];then# 条件成立时执行elif[ condition ];then# 另一个条件else# 条件不成立时执行fi# 常用条件[-ffile]# 文件是否存在[-ddir]# 目录是否存在["$a"="$b"]# 字符串相等[$a-eq$b]# 数字相等

循环

foriin{1..10};doecho$idoneforfilein *.txt;doecho$filedonewhile[ condition ];do# 循环体done

查看可用的解析器

cat /etc/shells

十五、Docker 常用命令

# 镜像管理docker images                           # 查看本地镜像docker search mysql                     # 搜索镜像docker pull mysql:8.0                   # 拉取镜像# 容器管理docker run -di--name=容器名 -p 宿主机端口:容器端口 -e 环境变量 镜像名dockerps# 查看运行中的容器dockerps-a# 查看所有容器# 启停容器docker start 容器名docker stop 容器名docker restart 容器名# 删除容器dockerrm 容器名dockerrm-f 容器名                      # 强制删除运行中的容器

十六、C 语言编译(gcc / make / gdb)

gcc 编译器

基本编译流程

# 一步编译gcc hello.c -o hello                    # 编译并生成可执行文件 hello# 分步编译gcc -E hello.c -o hello.i              # 1. 预处理(展开宏和头文件)gcc -S hello.i -o hello.s              # 2. 编译(生成汇编代码)gcc -c hello.s -o hello.o              # 3. 汇编(生成目标文件)gcc hello.o -o hello                   # 4. 链接(生成可执行文件)

常用选项

选项
说明
-o file
指定输出文件名
-c
只编译不链接,生成 .o 目标文件
-g
生成调试信息(配合 gdb 使用)
-O0 / -O1 / -O2 / -O3
优化级别(0 无优化,3 最高优化)
-Wall
开启所有警告信息
-Werror
将警告视为错误
-std=c11 / -std=c99
指定 C 语言标准
-l
链接指定库,如 -lm(数学库)、-lpthread(线程库)
-L
指定库文件搜索路径
-I
指定头文件搜索路径
-D
定义宏,如 -DDEBUG
-static
静态链接
-shared
生成共享库(动态库)

实用示例

# 基本编译gcc hello.c -o hello# 多文件编译gcc main.c utils.c -o program# 开启所有警告gcc -Wall-Wextra hello.c -o hello# 调试版本编译gcc -g-O0 hello.c -o hello_debug# 链接数学库gcc math_demo.c -o math_demo -lm# 链接线程库gcc thread_demo.c -o thread_demo -lpthread# 指定头文件路径gcc -I /usr/local/include hello.c -o hello# 指定库文件路径gcc -L /usr/local/lib hello.c -o hello -lmylib# 生成动态库(.so)gcc -shared-fPIC utils.c -o libutils.so# 使用动态库gcc main.c -L. -lutils-o main

make 与 Makefile

基本 Makefile 示例

# 注释CC = gccCFLAGS = -Wall -gTARGET = programOBJS = main.o utils.o math.o# 目标:依赖$(TARGET):$(OBJS)$(CC)$(OBJS) -o $(TARGET)# 编译规则main.o: main.c utils.h$(CC)$(CFLAGS) -c main.cutils.o: utils.c utils.h$(CC)$(CFLAGS) -c utils.cmath.o: math.c math.h$(CC)$(CFLAGS) -c math.c# 伪目标.PHONY: cleanclean:	rm -f $(OBJS)$(TARGET)

通用 Makefile 模式

CC = gccCFLAGS = -Wall -g -O2SRCS =$(wildcard *.c)OBJS =$(SRCS:.c=.o)TARGET = program$(TARGET):$(OBJS)$(CC)$^ -o $@%.o: %.c$(CC)$(CFLAGS) -c $< -o $@.PHONY: cleanclean:	rm -f $(OBJS)$(TARGET)

Makefile 自动变量

变量
含义
$@
目标文件名
$^
所有依赖文件
$<
第一个依赖文件
$?
比目标新的依赖文件列表
$*
不包含扩展名的目标文件名

make 命令使用

make# 执行默认目标make target           # 执行指定目标make-j4# 并行编译(4个并发任务)make-f other.mk      # 使用指定的 Makefile 文件make clean            # 执行 clean 目标make-n# 只显示命令,不实际执行(调试用)

gdb 调试器

编译准备

# 必须使用 -g 选项编译以获得调试符号gcc -g hello.c -o hello

启动与退出

gdb hello             # 启动 gdb 调试 hello(gdb) quit            # 退出 gdb(可简写为 q)

常用命令一览

命令
缩写
说明
runr
运行程序(可带参数)
start
-
运行并停在 main 函数
break 行号b 行号
在指定行设置断点
break 函数名b 函数名
在函数入口设置断点
break 文件:行号b file:line
在指定文件行设置断点
info breakpointsi b
查看所有断点
delete 编号d 编号
删除指定断点
continuec
继续运行到下一个断点
nextn
执行下一行(不进入函数)
steps
执行下一行(进入函数)
finishfin
执行到当前函数返回
print 变量p 变量
打印变量值
print /x 变量
-
以十六进制打印
display 变量disp 变量
每次停止时自动显示变量
listl
显示源代码
backtracebt
显示函数调用栈
framef
切换栈帧
watch 变量
-
设置观察点(变量值改变时中断)
set var 变量=值
-
修改变量值
help 命令h 命令
查看命令帮助

调试示例

gcc -g-O0 debug_demo.c -o debug_demogdb debug_demo(gdb)break main                 # 在 main 函数设置断点(gdb) run                        # 运行(gdb) next                       # 执行下一行(gdb) print i                    # 查看变量 i 的值(gdb) backtrace                  # 查看调用栈(gdb)continue# 继续运行(gdb) quit                       # 退出

调试 core dump

# 开启 core dumpulimit-c unlimited# 运行程序(崩溃后生成 core 文件)./buggy_program# 使用 gdb 分析gdb ./buggy_program core(gdb) bt                         # 查看崩溃时的调用栈

十七、Vim 编辑器完全指南

Vim 的四种模式

模式
进入方式
用途
普通模式
按 Esc
浏览、删除、复制、粘贴
插入模式
i / a / o / I / A / O
输入文本
命令模式
:
保存、退出、查找替换
可视模式
v / V / Ctrl+v
选中文本块

进入插入模式的方式

命令
说明
i
在光标前插入
I
在行首插入
a
在光标后追加
A
在行末追加
o
在下一行插入新行
O
在上一行插入新行
s
删除光标处字符并进入插入模式
S
删除整行并进入插入模式

光标移动(普通模式)

                    上(k)^       左(h)  <-- 光标  -->  右(l)                      v                    下(j)
h / j / k / l               # 左、下、上、右移动w                           # 移动到下一个单词开头b                           # 移动到上一个单词开头e                           # 移动到单词末尾0# 移动到行首$                           # 移动到行尾^                           # 移动到行首第一个非空字符gg                          # 移动到文件开头G                           # 移动到文件末尾nG / :n                     # 移动到第 n 行Ctrl+f                      # 向下翻一页(Forward)Ctrl+b                      # 向上翻一页(Backward)Ctrl+d                      # 向下翻半页(Down)Ctrl+u                      # 向上翻半页(Up)H / M / L                   # 移动到屏幕顶部 / 中间 / 底部{ / }# 按段落上下移动%                           # 跳转到匹配的括号

编辑操作

# 删除(delete)x                           # 删除光标处字符dw                          # 删除到单词末尾dd# 删除整行(并复制到剪贴板)d$ / D                      # 删除到行尾d0                          # 删除到行首ndd                         # 删除 n 行dG                          # 删除到文件末尾dgg                         # 删除到文件开头# 复制(yank)yw                          # 复制一个单词yy                          # 复制整行nyy                         # 复制 n 行y$                          # 复制到行尾yG                          # 复制到文件末尾# 粘贴(put)p                           # 在光标后粘贴P                           # 在光标前粘贴# 撤销与重做u                           # 撤销Ctrl+r                      # 重做# 修改(change)cw                          # 修改到单词末尾cc                          # 修改整行C                           # 修改到行尾r 字符                       # 替换光标处字符R                           # 进入替换模式(持续替换)# 缩进>># 当前行增加缩进<<# 当前行减少缩进>G                          # 当前行到末尾增加缩进ngg=G                       # 自动格式化从第 n 行到末尾# 其他.# 重复上一次操作J                           # 将下一行合并到当前行~                           # 切换大小写

查找与替换

# 查找(普通模式)/pattern                    # 向下搜索?pattern                    # 向上搜索n                           # 跳转到下一个匹配N                           # 跳转到上一个匹配*                           # 搜索光标所在单词(向前)#                           # 搜索光标所在单词(向后)# 查找替换(命令模式):s/old/new                  # 替换当前行第一个匹配:s/old/new/g                # 替换当前行所有匹配:%s/old/new/g               # 替换整个文件所有匹配:%s/old/new/gc              # 替换整个文件,每次确认:n,ms/old/new/g             # 替换第 n 行到第 m 行的所有匹配:%s/old/new/g               # 全文替换# 忽略大小写:%s/old/new/gi

可视模式

v# 字符可视模式(按字符选择)V                           # 行可视模式(按行选择)Ctrl+v                      # 块可视模式(矩形选择)# 选中后可执行的操作d / x                       # 删除选中内容y                           # 复制选中内容> / <# 缩进/反缩进r 字符                       # 替换选中内容为指定字符

文件操作

# 命令模式:w                          # 保存:w filename                 # 另存为:q                          # 退出:q!# 不保存强制退出:wq / :x / ZZ               # 保存并退出:wq!# 强制保存退出(root 权限):r filename                 # 在光标处插入另一个文件内容:e filename                 # 打开另一个文件:e!# 重新加载当前文件(放弃修改):bn / :bp                   # 切换到下一个/上一个缓冲区# 多窗口:sp filename                # 水平分屏打开文件:vsp filename               # 垂直分屏打开文件Ctrl+w w                    # 切换窗口Ctrl+w q                    # 关闭窗口Ctrl+w =# 等分窗口大小Ctrl+w + / Ctrl+w -         # 增加/减少窗口高度

Vim 配置

# 显示行号:set nu                     # 显示行号:set nonu                   # 隐藏行号# 语法高亮:syntax on:syntax off# 搜索高亮:set hlsearch               # 高亮搜索结果:set nohlsearch             # 取消高亮:nohl                       # 临时取消本次搜索的高亮# 缩进设置:set tabstop=4# Tab 宽度:set shiftwidth=4# 自动缩进宽度:set expandtab              # Tab 转为空格:set autoindent             # 自动缩进# 在当前会话查看设置:set                        # 查看已修改的设置:set all                    # 查看所有设置# 永久配置(写入 ~/.vimrc)echo"set nu">> ~/.vimrcecho"set tabstop=4">> ~/.vimrcecho"syntax on">> ~/.vimrc

Vim 常用技巧

# 批量注释(块模式)Ctrl+v → 选择多行 → I → 输入 # 或 // → Esc# 批量取消注释Ctrl+v → 选择注释符号 → d# 大小写转换gUw                         # 光标处单词转大写guw                         # 光标处单词转小写gUU                         # 当前行全转大写guu                         # 当前行全转小写# 数字递增 / 递减Ctrl+a                      # 光标处数字 +1Ctrl+x                      # 光标处数字 -1# 执行 Shell 命令:!command                   # 执行外部命令:r !command                 # 将命令输出插入当前文件

附录:常用快捷键总结

快捷键
说明
Tab
命令/路径自动补全
Ctrl+C
终止当前运行的程序
Ctrl+Z
挂起当前程序
Ctrl+D
退出当前终端 / EOF
Ctrl+L
清屏(相当于 clear)
Ctrl+A
光标移到行首
Ctrl+E
光标移到行尾
Ctrl+U
删除光标前所有内容
Ctrl+K
删除光标后所有内容
Ctrl+R
搜索历史命令
上/下方向键
浏览历史命令

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 03:49:06 HTTP/2.0 GET : https://f.mffb.com.cn/a/497045.html
  2. 运行时间 : 0.219492s [ 吞吐率:4.56req/s ] 内存消耗:5,070.61kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=d92f397e9011499fda8adc517df20be9
  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.000595s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000850s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000291s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000302s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000572s ]
  6. SELECT * FROM `set` [ RunTime:0.006600s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000702s ]
  8. SELECT * FROM `article` WHERE `id` = 497045 LIMIT 1 [ RunTime:0.008626s ]
  9. UPDATE `article` SET `lasttime` = 1783021746 WHERE `id` = 497045 [ RunTime:0.001324s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000337s ]
  11. SELECT * FROM `article` WHERE `id` < 497045 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.018262s ]
  12. SELECT * FROM `article` WHERE `id` > 497045 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.021570s ]
  13. SELECT * FROM `article` WHERE `id` < 497045 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.041575s ]
  14. SELECT * FROM `article` WHERE `id` < 497045 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.041915s ]
  15. SELECT * FROM `article` WHERE `id` < 497045 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006369s ]
0.221124s