当前位置:首页>Linux>运维必会的60个Linux命令,我整理了这份速查手册

运维必会的60个Linux命令,我整理了这份速查手册

  • 2026-01-20 18:21:56
运维必会的60个Linux命令,我整理了这份速查手册

运维必会的60个Linux命令,我整理了这份速查手册


一、概述

背景介绍

干了十年运维,从最早的物理机房值班到现在的云原生架构,Linux命令始终是我吃饭的家伙。这些年带过不少新人,发现很多人对命令的理解停留在"能用就行"的阶段,遇到复杂场景就抓瞎。

这篇文章不是简单的命令罗列,而是我多年踩坑后总结的实战经验。每个命令我都会讲清楚:什么场景用、怎么用更高效、容易踩什么坑。

技术特点

2025年的Linux运维和五年前已经大不一样了:

  1. 现代化工具崛起:ripgrep、fd、bat这些Rust写的工具已经成为主流,性能碾压传统工具
  2. 容器化环境普及:很多命令需要考虑在容器内执行的场景
  3. 自动化要求更高:命令不仅要会敲,还要会写进脚本、集成到CI/CD
  4. 安全合规更严格:很多操作需要审计,命令的安全用法越来越重要

适用场景

这份手册适合以下场景:

  • 日常服务器运维和故障排查
  • 生产环境问题定位和性能调优
  • 自动化脚本开发
  • 容器和K8s环境调试
  • 安全审计和合规检查

环境要求

本文示例基于以下环境测试:

# 操作系统Ubuntu 24.04 LTS / Rocky Linux 9.3 / Debian 12# 内核版本Linux 6.5+# ShellBash 5.2+ / Zsh 5.9+# 现代工具版本ripgrep 14.1+fd 9.0+bat 0.24+eza 0.18+ (exa的活跃维护分支)dust 1.0+

二、详细步骤

准备工作:现代工具安装

在开始之前,强烈建议安装这些现代替代工具。我现在的服务器都会预装这套工具链:

# Ubuntu/Debiansudo apt updatesudo apt install -y ripgrep fd-find bat eza# Rocky Linux/RHELsudo dnf install -y ripgrep fd-find bat eza# 通用方式 - 使用cargo安装最新版curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shsource ~/.cargo/envcargo install ripgrep fd-find bat eza dust# 创建别名(fd-find在Debian系安装后叫fdfind)echo'alias fd=fdfind' >> ~/.bashrcecho'alias cat=bat' >> ~/.bashrcecho'alias ls=eza' >> ~/.bashrc

核心配置:Shell环境优化

# ~/.bashrc 或 ~/.zshrc 添加以下内容# 历史命令优化export HISTSIZE=50000export HISTFILESIZE=100000export HISTCONTROL=ignoreboth:erasedupsexport HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "shopt -s histappend# 安全别名alias rm='rm -i'alias cp='cp -i'alias mv='mv -i'# 效率别名alias ll='eza -alh --git --icons'alias la='eza -a --icons'alias lt='eza --tree --level=2 --icons'alias grep='rg'alias find='fd'alias cat='bat --paging=never'alias du='dust'alias df='df -h'alias free='free -h'alias ps='ps auxf'alias top='htop'# 快速导航alias ..='cd ..'alias ...='cd ../..'alias ....='cd ../../..'# 网络相关alias ports='ss -tulanp'alias myip='curl -s ifconfig.me'alias ping='ping -c 5'

三、示例代码和配置

第一类:文件操作命令(10个)

1. ls / eza - 文件列表查看

传统的ls用了这么多年,但eza真的香。它默认带颜色、支持Git状态、有图标显示。

# 基础用法ls -la                    # 传统方式eza -la --icons --git     # 现代方式,显示Git状态# 高级参数eza -la --sort=modified   # 按修改时间排序eza -la --sort=size       # 按大小排序eza --tree --level=3      # 树形展示,3层深度eza -la --group           # 显示文件所属组# 实战案例:找出最近修改的10个文件eza -la --sort=modified | head -11# 实战案例:按大小排序找大文件eza -la --sort=size --reverse | head -20# 常见错误# 错误:ls -la | grep xxx  效率低# 正确:直接用eza的过滤功能或配合fd使用

我的踩坑经验:很多新人喜欢 ls -la | grep xxx,这个写法低效还容易出错。如果要找文件,直接用fd;如果要看特定类型的文件,用eza的--only-dirs或--only-files参数。

2. cd - 目录切换

cd看似简单,但有些技巧很多人不知道:

# 基础用法cd /var/logcd ~              # 回到家目录cd -              # 回到上一个目录(这个很多人不知道)# 高级技巧cd !$             # 进入上条命令的最后一个参数目录pushd /var/log# 进入目录并压栈popd# 弹出栈顶目录# 实战案例:在两个目录间频繁切换cd /var/logcd /etc/nginxcd -              # 快速切回/var/logcd -              # 再切回/etc/nginx# 使用目录栈管理多个目录pushd /var/logpushd /etc/nginxpushd /home/appdirs -v           # 查看目录栈cd ~2             # 直接跳转到栈中第2个目录

3. cp - 文件复制

# 基础用法cp file1 file2cp -r dir1 dir2          # 递归复制目录# 高级参数cp -a source dest         # 保留所有属性(归档模式)cp -p source dest         # 保留权限和时间戳cp -u source dest         # 只复制更新的文件cp -v source dest         # 显示复制过程cp --backup=numbered      # 自动备份已存在的文件# 实战案例:生产环境备份配置文件cp -av /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak.$(date +%Y%m%d_%H%M%S)# 实战案例:增量同步目录cp -ruv /source/dir/ /backup/dir/# 常见错误# 错误:cp -r dir1 dir2/  当dir2存在时会复制到dir2内部# 正确:先确认目标路径,或使用rsync

这里有个坑:cp -r dir1 dir2 和 cp -r dir1 dir2/ 的行为是不同的。如果dir2已存在,后者会把dir1复制到dir2里面。生产环境建议用rsync代替cp做目录复制。

4. mv - 文件移动和重命名

# 基础用法mv file1 file2           # 重命名mv file1 /path/to/dir/   # 移动# 高级参数mv -i source dest         # 覆盖前确认mv -n source dest         # 不覆盖已存在文件mv -v source dest         # 显示移动过程mv -b source dest         # 覆盖前备份# 实战案例:批量重命名(配合rename命令)# 将所有.log文件改为.log.bakrename 's/\.log$/.log.bak/' *.log# 实战案例:安全移动大量文件mv -v /source/files/* /dest/ 2>&1 | tee mv.log# 常见错误# 在跨文件系统移动时,mv实际上是cp+rm# 大文件移动要注意磁盘空间

5. rm - 文件删除

# 基础用法rm filerm -r dir                 # 递归删除目录rm -f file               # 强制删除# 安全实践(重要!)rm -i file               # 删除前确认rm -I *.log# 删除超过3个文件时确认一次# 实战案例:安全删除日志文件# 先预览要删除的文件find /var/log -name "*.log" -mtime +30 -print# 确认无误后删除find /var/log -name "*.log" -mtime +30 -delete# 更安全的做法:移动到回收站目录mkdir -p ~/.trashalias rm='mv -t ~/.trash'# 常见错误# 千万不要:rm -rf /path /to/dir  多了个空格就GG了# 正确写法:rm -rf /path/to/dir# 更安全:使用变量时加引号 rm -rf "${TARGET_DIR}"

关于rm的血泪教训:我见过太多因为rm -rf翻车的案例。现在我的服务器都会配置safe-rm或者trash-cli。宁可多敲几个命令,也不要删错了找领导哭。

6. mkdir - 创建目录

# 基础用法mkdir dirnamemkdir -p path/to/deep/dir   # 递归创建# 高级参数mkdir -m 755 dirname        # 创建时指定权限mkdir -v dirname            # 显示创建过程# 实战案例:创建标准项目目录结构mkdir -pv /app/{bin,conf,data,logs,tmp}# 实战案例:按日期创建日志目录mkdir -p /var/log/app/$(date +%Y)/$(date +%m)/$(date +%d)

7. find / fd - 文件查找

传统find功能强大但语法复杂,fd简洁很多:

# find基础用法find /path -name "*.log"find /path -type f -size +100Mfind /path -mtime -7          # 7天内修改的文件# fd基础用法(推荐)fd "\.log$" /path             # 正则匹配fd -e log /path               # 按扩展名fd -t f -S +100M /path        # 大于100M的文件fd --changed-within 7d /path  # 7天内修改的# 高级参数fd -H -I pattern              # 包括隐藏文件和忽略的文件fd -x command {}              # 对结果执行命令fd -0 | xargs -0 command# 安全处理特殊文件名# 实战案例:找出大于1G的文件fd -t f -S +1G / 2>/dev/null# 实战案例:找出7天内修改的配置文件fd -e conf -e cfg --changed-within 7d /etc# 实战案例:批量处理找到的文件fd -e log --changed-before 30d -x gzip {}# 实战案例:find的exec用法(fd不支持时的替代)find /var/log -name "*.log" -mtime +30 -exec rm -f {} \;# 更高效的写法find /var/log -name "*.log" -mtime +30 -print0 | xargs -0 rm -f

8. ln - 创建链接

# 软链接(最常用)ln -s /path/to/target /path/to/link# 硬链接ln /path/to/target /path/to/link# 高级参数ln -sf target link            # 强制覆盖已存在的链接ln -v target link             # 显示创建过程ln -r target link             # 创建相对路径链接# 实战案例:管理多版本软件ln -sf /opt/java/jdk-21 /opt/java/currentexport JAVA_HOME=/opt/java/current# 实战案例:日志文件软链接ln -s /var/log/nginx/access.log /home/admin/logs/nginx-access.log# 常见错误# 软链接的目标路径要写绝对路径,否则移动后会失效# 检查链接是否有效:ls -la link 或 test -e link

9. tar - 归档压缩

# 基础用法tar -cvf archive.tar files/           # 打包tar -xvf archive.tar                  # 解包tar -czvf archive.tar.gz files/       # 打包+gzip压缩tar -xzvf archive.tar.gz              # 解压gzip# 高级参数tar -cjvf archive.tar.bz2 files/      # bzip2压缩tar --zstd -cvf archive.tar.zst files/ # zstd压缩(2025推荐)tar -tvf archive.tar                   # 查看归档内容tar -xvf archive.tar -C /dest/        # 指定解压目录tar --exclude='*.log' -cvf a.tar dir/ # 排除特定文件# 实战案例:备份时排除不需要的目录tar --exclude='node_modules' --exclude='.git' \    -czvf backup.tar.gz /app/project/# 实战案例:增量备份tar -g snapshot.snar -czvf backup-$(date +%Y%m%d).tar.gz /data/# 实战案例:通过SSH传输tar -czvf - /source/dir | ssh user@remote 'tar -xzvf - -C /dest/'# 常见错误# 解压时不指定-C会解压到当前目录,可能覆盖同名文件# 大文件建议用pv查看进度:tar -cf - dir | pv | gzip > file.tar.gz

关于压缩算法的选择:2025年了,如果没有兼容性要求,强烈推荐zstd。压缩率接近bzip2,但速度快很多。我们生产环境的备份已经全面切换到zstd了。

10. rsync - 高效文件同步

这是我用得最多的文件操作命令,没有之一:

# 基础用法rsync -av source/ dest/               # 归档模式同步# 高级参数rsync -avz source/ dest/              # 压缩传输rsync -avz --delete source/ dest/     # 删除目标多余文件rsync -avz --progress source/ dest/   # 显示进度rsync -avz -e ssh source/ user@host:dest/  # SSH传输rsync -avz --bwlimit=10000 src/ dst/  # 限速10MB/s# 实战案例:增量备份rsync -avz --delete --backup --backup-dir=/backup/$(date +%Y%m%d) \    /data/ /backup/current/# 实战案例:排除特定目录rsync -avz --exclude='*.log' --exclude='tmp/' \    --exclude-from='exclude.txt'source/ dest/# 实战案例:断点续传大文件rsync -avz --partial --progress large_file.tar.gz user@host:/dest/# 实战案例:限制并发和带宽(生产环境必备)rsync -avz --bwlimit=50000 --rsh="ssh -o Compression=no"source/ dest/# 常见错误# source/ 和 source 是不同的!# source/  -> 复制source目录下的内容# source   -> 复制source目录本身

rsync的斜杠问题是最常见的坑。我见过很多人因为漏写或多写斜杠,导致同步结果和预期不一致。记住:带斜杠是"复制内容",不带是"复制目录本身"。


第二类:文本处理命令(10个)

11. cat / bat - 查看文件内容

# cat基础用法cat filecat -n file               # 显示行号cat file1 file2 > merged  # 合并文件# bat用法(推荐)bat file                  # 带语法高亮和行号bat -l python script      # 指定语言bat -A file               # 显示不可见字符bat --paging=never file   # 不分页bat -r 10:20 file         # 只显示10-20行# 实战案例:快速查看日志最后部分bat --paging=never -r -100: /var/log/syslog# 实战案例:对比两个文件bat -d file1 file2        # diff模式# 常见错误# 不要用cat查看大文件,会卡死终端# 大文件用less或tail

12. less / more - 分页查看

# 基础用法less filemore file                 # 只能向下翻页# less常用快捷键# Space/PageDown - 下一页# b/PageUp - 上一页# g - 跳到开头# G - 跳到结尾# /pattern - 向下搜索# ?pattern - 向上搜索# n - 下一个匹配# N - 上一个匹配# q - 退出# 高级用法less +F file              # 类似tail -f,Ctrl+C停止,F继续less -N file              # 显示行号less -S file              # 不换行,左右滚动查看# 实战案例:实时查看日志less +F /var/log/nginx/access.log

less +F是我最喜欢的用法,比tail -f更灵活。可以随时Ctrl+C暂停,然后用/搜索,再按F继续实时查看。

13. head / tail - 查看文件头尾

# 基础用法head file                 # 默认前10行tail file                 # 默认后10行# 高级参数head -n 50 file           # 前50行tail -n 100 file          # 后100行tail -f file              # 实时跟踪tail -F file              # 实时跟踪,文件轮转后自动重新打开head -c 1000 file         # 前1000字节# 实战案例:实时监控多个日志tail -f /var/log/nginx/access.log /var/log/nginx/error.log# 实战案例:查看日志中间部分(100-200行)sed -n '100,200p' file# 或者head -n 200 file | tail -n 100# 实战案例:带时间戳的tailtail -f file | whileread line; doecho"$(date '+%H:%M:%S')$line"done

生产环境用tail -F而不是tail -f。区别是-F在文件被轮转后会自动重新打开新文件,这在日志轮转场景很重要。

14. grep / ripgrep - 文本搜索

这是运维最高频使用的命令之一:

# grep基础用法grep "pattern" filegrep -r "pattern" dir/    # 递归搜索grep -i "pattern" file    # 忽略大小写grep -v "pattern" file    # 反向匹配# ripgrep用法(强烈推荐)rg "pattern" filerg "pattern" dir/         # 默认递归,自动忽略.gitignorerg -i "pattern"# 忽略大小写rg -v "pattern"# 反向匹配rg -l "pattern"# 只显示文件名rg -c "pattern"# 统计匹配次数# 高级参数rg -A 3 -B 3 "error"# 显示前后3行上下文rg -C 5 "exception"# 显示前后5行rg -w "word"# 全词匹配rg -e "pat1" -e "pat2"# 多模式匹配rg --type py "import"# 只搜索Python文件rg -g "*.log""error"# 只搜索.log文件rg -g "!*.min.js""func"# 排除.min.js文件# 实战案例:搜索日志中的错误rg -i "error|exception|failed" /var/log/app/# 实战案例:搜索并统计rg -c "500" /var/log/nginx/access.log# 实战案例:搜索特定时间段的日志rg "2025-01-06 1[0-2]:" /var/log/app.log# 实战案例:搜索并替换(需要sed配合)rg -l "old_string" | xargs sed -i 's/old_string/new_string/g'# 常见错误# grep -r 在大目录很慢,rg快几十倍# 记得用引号包裹特殊字符的pattern

ripgrep是我目前用过最快的文本搜索工具,在大型代码仓库里比grep快几十倍。而且它默认尊重.gitignore,不会搜索node_modules这种垃圾目录。

15. sed - 流编辑器

# 基础用法sed 's/old/new/' file           # 替换第一个匹配sed 's/old/new/g' file          # 替换所有匹配sed -i 's/old/new/g' file       # 直接修改文件# 高级参数sed -i.bak 's/old/new/g' file   # 修改前备份sed -n '10,20p' file            # 打印10-20行sed '/pattern/d' file           # 删除匹配行sed '/^#/d' file                # 删除注释行sed '/^$/d' file                # 删除空行# 实战案例:批量替换配置sed -i 's/localhost/192.168.1.100/g' /etc/app/*.conf# 实战案例:在特定行后插入内容sed -i '/\[server\]/a server_name = production' config.ini# 实战案例:提取日志中的IP地址sed -n 's/.*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/p' access.log# 实战案例:删除配置文件中的注释和空行sed '/^#/d;/^$/d' config.conf# 常见错误# Mac的sed需要 sed -i '' 's/old/new/g' file# 生产环境修改前先备份!用 sed -i.bak

16. awk - 文本处理

awk是运维的瑞士军刀,必须熟练掌握:

# 基础用法awk '{print $1}' file           # 打印第一列awk -F: '{print $1}' /etc/passwd  # 指定分隔符awk 'NR==10' file               # 打印第10行# 高级用法awk '{sum+=$1} END {print sum}' file    # 求和awk '{sum+=$1} END {print sum/NR}'# 求平均awk 'length($0)>80' file                # 找超长行awk '!seen[$0]++' file                  # 去重# 实战案例:统计Nginx日志中各状态码数量awk '{print $9}' access.log | sort | uniq -c | sort -rn# 实战案例:计算日志中请求总量和平均响应时间awk '{count++; sum+=$NF} END {print "Total:", count, "Avg:", sum/count}' access.log# 实战案例:找出响应时间超过1秒的请求awk '$NF > 1 {print $0}' access.log# 实战案例:按IP统计请求数awk '{ip[$1]++} END {for(i in ip) print i, ip[i]}' access.log | sort -k2 -rn | head -10# 实战案例:提取特定时间段的日志awk '/2025-01-06 10:/,/2025-01-06 11:/' app.log# 常见错误# 记住awk的列从$1开始,$0是整行# 注意引号嵌套问题

17. sort - 排序

# 基础用法sort filesort -r file              # 逆序sort -n file              # 数值排序# 高级参数sort -k2 file             # 按第2列排序sort -k2 -n file          # 第2列数值排序sort -t: -k3 -n file      # 指定分隔符sort -u file              # 去重sort -h file              # 人类可读的大小排序(K, M, G)# 实战案例:按大小排序du输出du -sh /* 2>/dev/null | sort -h# 实战案例:按第3列数值倒序sort -t',' -k3 -rn data.csv# 实战案例:多列排序sort -k1,1 -k2,2n file    # 先按第1列字符串,再按第2列数值

18. uniq - 去重统计

# 基础用法(必须先sort)sort file | uniqsort file | uniq -c       # 统计出现次数sort file | uniq -d       # 只显示重复行sort file | uniq -u       # 只显示不重复行# 实战案例:统计日志中各IP访问次数awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20# 实战案例:找出重复的行sort file | uniq -d# 实战案例:统计错误类型grep -i error app.log | awk '{print $5}' | sort | uniq -c | sort -rn

19. wc - 统计

# 基础用法wc file                   # 行数、单词数、字节数wc -l file                # 只统计行数wc -w file                # 只统计单词数wc -c file                # 只统计字节数# 实战案例:统计代码行数fd -e py | xargs wc -l | tail -1# 实战案例:统计目录下文件数ls -1 | wc -l# 实战案例:统计日志条目数wc -l /var/log/nginx/access.log

20. cut - 列切割

# 基础用法cut -d: -f1 /etc/passwd   # 以:分隔取第1列cut -d, -f1,3 file.csv    # 取第1和第3列cut -c1-10 file           # 取每行前10个字符# 实战案例:提取CSV特定列cut -d, -f2,5,7 data.csv# 实战案例:提取日志中的时间cut -d' ' -f1,2 access.log# 常见错误# cut不支持正则作为分隔符,复杂场景用awk

第三类:系统监控命令(10个)

21. top / htop / btop - 进程监控

# top基础用法toptop -u username           # 只看特定用户进程top -p PID1,PID2          # 只看特定进程# top常用快捷键# P - 按CPU排序# M - 按内存排序# k - 杀进程# q - 退出# htop(推荐)htop                      # 交互式,更直观htop -u username          # 特定用户# btop(2025年新宠)btop                      # 最美观,功能最全# 实战案例:监控特定进程top -p $(pgrep -d',' nginx)# 实战案例:批处理模式(用于脚本)top -b -n 1 | head -20

btop是2025年我最推荐的系统监控工具,颜值高、信息全,一个工具顶替top+htop+iotop+nethogs。

22. free - 内存查看

# 基础用法free -h                   # 人类可读格式free -m                   # 以MB显示free -g                   # 以GB显示# 高级参数free -hs 2                # 每2秒刷新一次free -w                   # 宽输出,分离buffers和cache# 实战案例:监控内存变化watch -n 1 free -h# 常见错误# 看available而不是free,Linux会用内存做cache# available才是真正可用的内存

关于Linux内存,很多新人看到free很低就慌了,其实要看available。Linux会积极使用空闲内存做文件缓存,这是好事不是问题。

23. vmstat - 虚拟内存统计

# 基础用法vmstat                    # 单次vmstat 2 10               # 每2秒一次,共10次# 输出解读# r - 运行队列进程数# b - 阻塞进程数# swpd - 虚拟内存使用量# free - 空闲内存# si/so - swap换入换出# bi/bo - 块设备读写# us/sy/id/wa - CPU使用率# 实战案例:持续监控vmstat 5 | tee vmstat.log# 重点关注# si/so > 0 说明在使用swap,可能内存不足# wa > 20 说明IO等待严重# r > CPU核心数 说明CPU过载

24. iostat - IO统计

# 基础用法iostatiostat -x                 # 扩展信息iostat -xz 2 10           # 每2秒刷新,忽略无活动设备# 输出解读# %util - 设备繁忙程度,接近100%说明IO瓶颈# await - IO平均等待时间,毫秒# r/s, w/s - 每秒读写次数# rkB/s, wkB/s - 每秒读写量# 实战案例:监控磁盘IOiostat -xm 2 | awk '/sda/{print strftime("%H:%M:%S"), $0}'# 重点关注# %util > 80% 说明磁盘繁忙# await > 10ms 需要关注# svctm 接近 await 说明没有排队

25. sar - 系统活动报告

# 基础用法(需要安装sysstat)sar                       # 当天CPU使用情况sar -r                    # 内存使用sar -b                    # IO情况sar -n DEV                # 网络情况# 高级参数sar -u 2 10               # CPU,每2秒刷新10次sar -r 2 10               # 内存sar -q 2 10               # 负载sar -f /var/log/sa/sa06   # 查看历史数据(6号)# 实战案例:查看历史CPU使用情况sar -u -f /var/log/sa/sa$(date -d "yesterday" +%d)# 实战案例:导出报告sar -A > sar_report.txt

sar是事后分析的神器。系统默认每10分钟采集一次数据,当出问题时可以回溯历史数据,这在故障分析时非常有用。

26. uptime / w - 系统运行时间和负载

# 基础用法uptimew                         # 同时显示登录用户# 输出解读# load average: 1分钟, 5分钟, 15分钟 平均负载# 负载 < CPU核心数 是健康的# 负载 > CPU核心数 * 2 需要关注# 实战案例:快速脚本获取负载uptime | awk -F'average:''{print $2}'# 判断负载是否过高CORES=$(nproc)LOAD=$(uptime | awk -F'average:''{print $2}' | cut -d, -f1)# 比较 LOAD 和 CORES

27. dmesg - 内核日志

# 基础用法dmesgdmesg -T                  # 显示人类可读的时间戳dmesg -w                  # 实时跟踪# 高级参数dmesg -l err,warn         # 只看错误和警告dmesg -H                  # 分页显示dmesg --since "1 hour ago"# 实战案例:查看最近的错误dmesg -T -l err | tail -20# 实战案例:查看OOM killer记录dmesg -T | grep -i "out of memory"# 实战案例:查看磁盘错误dmesg -T | grep -i "error\|fail" | grep -i "sd\|nvme"

dmesg是定位硬件问题的第一站。内存故障、磁盘坏道、网卡问题,都会在这里留下痕迹。

28. journalctl - systemd日志

# 基础用法journalctl                # 所有日志journalctl -u nginx       # 特定服务journalctl -f             # 实时跟踪# 高级参数journalctl --since "1 hour ago"journalctl --since "2025-01-06 10:00:00"journalctl -p err         # 只看错误级别journalctl -b             # 本次启动的日志journalctl -b -1          # 上次启动的日志journalctl --disk-usage   # 日志占用空间journalctl --vacuum-size=500M  # 清理日志到500M# 实战案例:查看服务启动失败原因journalctl -u nginx --since "today" -p err# 实战案例:导出日志journalctl -u nginx --since "1 day ago" > nginx.log# 实战案例:JSON格式输出journalctl -u nginx -o json-pretty | head -100

29. lsof - 列出打开的文件

# 基础用法lsof                      # 所有打开的文件lsof -u username          # 特定用户打开的文件lsof -p PID               # 特定进程打开的文件lsof -i :80               # 监听80端口的进程# 高级参数lsof -i tcp               # 所有TCP连接lsof -i tcp:80            # TCP 80端口lsof +D /path/dir         # 目录下被打开的文件lsof -c nginx             # nginx进程打开的文件# 实战案例:查看删除后仍被占用的文件lsof | grep deleted# 实战案例:查看进程打开的网络连接lsof -i -a -p $(pgrep nginx) | head -20# 实战案例:查找占用端口的进程lsof -i :8080# 常见问题# 磁盘满了但找不到大文件?可能是deleted文件lsof | grep deleted | awk '{print $2,$7,$9}' | sort -k2 -rn | head

有个经典问题:明明删了日志文件,但磁盘空间没释放。这是因为有进程还在写这个文件。用 lsof | grep deleted 就能找出来。

30. strace - 系统调用跟踪

# 基础用法strace command# 跟踪命令的系统调用strace -p PID             # 跟踪运行中的进程# 高级参数strace -f command# 跟踪子进程strace -e trace=file      # 只跟踪文件操作strace -e trace=network   # 只跟踪网络操作strace -c command# 统计系统调用strace -t command# 显示时间戳strace -T command# 显示每个调用耗时strace -o output.txt      # 输出到文件# 实战案例:找出程序在读什么文件strace -e open,openat -f command 2>&1 | grep -v ENOENT# 实战案例:分析程序卡住的原因strace -p $(pgrep -f "stuck_process")# 实战案例:统计系统调用分布strace -c -f ./myapp# 常见错误# strace会显著影响性能,生产环境谨慎使用# 建议用-p跟踪特定进程而不是所有进程

strace是调试黑盒程序的利器。程序卡住不知道在干什么?strace一下就知道它在等什么系统调用。


第四类:网络诊断命令(10个)

31. ip - 网络配置

# 查看IP地址ip addrip a                      # 简写# 查看路由表ip routeip r# 查看网络接口ip link# 高级参数ip addr show eth0         # 特定接口ip -s link                # 显示统计信息ip neigh                  # ARP表ip -c a                   # 彩色输出# 配置操作(临时)ip addr add 192.168.1.100/24 dev eth0ip addr del 192.168.1.100/24 dev eth0ip link set eth0 up/downip route add default via 192.168.1.1# 实战案例:查看网络流量统计ip -s link show eth0# 实战案例:检查接口状态ip link show | grep -E "state UP|state DOWN"

别再用ifconfig了,2025年应该全面使用ip命令。ifconfig在很多精简系统里已经不预装了。

32. ss - 网络连接查看

# 基础用法ss -tuln                  # TCP/UDP监听端口ss -tunap                 # 包含进程信息# 高级参数ss -s                     # 统计摘要ss -o                     # 显示计时器ss state established      # 只看建立的连接ss dst 192.168.1.100      # 目标地址过滤ss sport = :80            # 源端口过滤# 实战案例:查看谁连接了我的80端口ss -tn state established '( dport = :80 )'# 实战案例:统计各状态连接数ss -ant | awk '{print $1}' | sort | uniq -c# 实战案例:查看TIME_WAIT连接数ss -ant | grep TIME-WAIT | wc -l# 实战案例:找出连接数最多的IPss -tn state established | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head

ss比netstat快太多了,尤其是连接数很多的时候。netstat在几万连接的服务器上要跑好几秒,ss瞬间出结果。

33. netstat - 网络统计(传统)

# 基础用法netstat -tuln             # TCP/UDP监听netstat -tunap            # 包含进程# 统计信息netstat -s                # 协议统计netstat -i                # 接口统计netstat -r                # 路由表# 实战案例:统计TCP连接状态netstat -ant | awk '/^tcp/{print $6}' | sort | uniq -c# 注意:优先使用ss,netstat已过时

34. ping - 连通性测试

# 基础用法ping hostping -c 5 host            # 发送5个包# 高级参数ping -i 0.2 host          # 间隔0.2秒ping -s 1000 host         # 包大小1000字节ping -t 10 host           # TTL设为10ping -W 2 host            # 超时2秒# 实战案例:测试MTUping -M do -s 1472 host   # 1472 + 28 = 1500 (标准MTU)# 实战案例:快速检测主机存活for ip in 192.168.1.{1..254}; do    ping -c 1 -W 1 $ip &>/dev/null && echo"$ip is up"done# 或者用fping(更快)fping -a -g 192.168.1.0/24 2>/dev/null

35. traceroute / mtr - 路由追踪

# traceroute基础用法traceroute hosttraceroute -n host        # 不解析主机名(更快)traceroute -T host        # 使用TCP(绕过ICMP阻断)# mtr(推荐,交互式)mtr hostmtr -n host               # 不解析mtr -r -c 100 host        # 报告模式,发100个包mtr --tcp host            # TCP模式# 实战案例:排查网络延迟mtr -r -c 50 -n target_host > mtr_report.txt# 实战案例:检测丢包节点mtr -r -c 100 target_host | awk '$3 > 0'

mtr是traceroute的增强版,持续发包并显示每跳的丢包率和延迟,排查网络问题必备。

36. curl - HTTP请求

# 基础用法curl http://example.comcurl -o file.html http://example.comcurl -O http://example.com/file.zip# 高级参数curl -v url               # 详细输出curl -I url               # 只看响应头curl -X POST -d "data" url  # POST请求curl -H "Content-Type: application/json" urlcurl -u user:pass url     # 认证curl -k url               # 忽略SSL证书curl -L url               # 跟随重定向curl -w "%{time_total}\n" -o /dev/null -s url  # 测量响应时间# 实战案例:测试API接口curl -X POST \  -H "Content-Type: application/json" \  -d '{"name":"test"}' \  http://api.example.com/users# 实战案例:测量各阶段耗时curl -w "DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" \  -o /dev/null -s http://example.com# 实战案例:下载带进度条curl -# -O http://example.com/large_file.zip# 实战案例:测试WebSocketcurl --include \  --no-buffer \  --header "Connection: Upgrade" \  --header "Upgrade: websocket" \  http://example.com/socket

37. wget - 文件下载

# 基础用法wget urlwget -O filename url      # 指定文件名wget -c url               # 断点续传# 高级参数wget -q url               # 安静模式wget -b url               # 后台下载wget --limit-rate=1m url  # 限速1MB/swget -r -np -l 2 url      # 递归下载2层wget --mirror url         # 镜像站点# 实战案例:下载整个目录wget -r -np -nH --cut-dirs=2 http://example.com/files/# 实战案例:带认证下载wget --user=admin --password=secret url# 实战案例:后台下载大文件nohup wget -c http://example.com/large.iso > /dev/null 2>&1 &

38. dig / nslookup - DNS查询

# dig基础用法(推荐)dig example.comdig example.com A         # A记录dig example.com MX        # 邮件记录dig example.com NS        # NS记录# 高级参数dig +short example.com    # 简洁输出dig @8.8.8.8 example.com  # 指定DNS服务器dig +trace example.com    # 跟踪查询过程dig -x 8.8.8.8            # 反向解析# nslookup(简单场景)nslookup example.comnslookup example.com 8.8.8.8# 实战案例:检查DNS解析dig +short example.com @8.8.8.8dig +short example.com @223.5.5.5# 实战案例:检查DNS传播for dns in 8.8.8.8 8.8.4.4 223.5.5.5 114.114.114.114; doecho"=== $dns ==="    dig +short example.com @$dnsdone# 实战案例:测量DNS解析时间dig example.com | grep "Query time"

39. tcpdump - 网络抓包

# 基础用法tcpdump -i eth0tcpdump -i any            # 所有接口# 高级参数tcpdump -n                # 不解析主机名tcpdump -nn               # 不解析主机名和端口tcpdump -w file.pcap      # 保存到文件tcpdump -r file.pcap      # 读取文件tcpdump -c 100            # 只抓100个包tcpdump -s 0              # 抓完整包内容# 过滤表达式tcpdump host 192.168.1.100tcpdump port 80tcpdump src host 192.168.1.100tcpdump dst port 443tcpdump 'tcp[tcpflags] & tcp-syn != 0'# SYN包# 实战案例:抓取HTTP流量tcpdump -i eth0 -nn -A -s0 'tcp port 80'# 实战案例:抓取特定主机间流量tcpdump -i eth0 -nn host 192.168.1.100 and port 3306 -w mysql.pcap# 实战案例:分析慢查询tcpdump -i eth0 -nn port 3306 -c 1000 -w slow.pcap# 然后用Wireshark分析# 常见错误# 生产环境抓包要限制数量(-c)和大小,否则磁盘会爆

tcpdump是网络问题终极排查工具。怀疑丢包、怀疑数据不对、怀疑防火墙拦截,抓个包一目了然。

40. iptables / nftables - 防火墙

# iptables查看规则iptables -L -n -viptables -L -n -v -t nat  # NAT表# 常用操作iptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -s 192.168.1.0/24 -j ACCEPTiptables -A INPUT -p tcp --dport 22 -j DROPiptables -D INPUT 3       # 删除第3条规则iptables -F               # 清空规则# 保存规则iptables-save > /etc/iptables.rulesiptables-restore < /etc/iptables.rules# nftables(2025年推荐)nft list rulesetnft add rule inet filter input tcp dport 80 accept# 实战案例:限制SSH暴力破解iptables -A INPUT -p tcp --dport 22 -m state --state NEW \  -m recent --set --name SSHiptables -A INPUT -p tcp --dport 22 -m state --state NEW \  -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP# 实战案例:查看连接跟踪cat /proc/net/nf_conntrack | wc -l

iptables虽然在向nftables过渡,但大多数生产系统还是iptables。两个都要会。


第五类:进程管理命令(10个)

41. ps - 进程查看

# 基础用法ps aux                    # BSD风格,最常用ps -ef                    # UNIX风格# 高级参数ps auxf                   # 树形显示ps -o pid,ppid,user,%cpu,%mem,comm  # 自定义列ps -C nginx               # 按命令名过滤ps -u www-data            # 按用户过滤ps -p 1234                # 按PID# 实战案例:查看内存占用最高的进程ps aux --sort=-%mem | head -10# 实战案例:查看CPU占用最高的进程ps aux --sort=-%cpu | head -10# 实战案例:查看特定进程详情ps -fp $(pgrep nginx)# 实战案例:统计进程数ps -e --no-headers | wc -l

42. kill / pkill / killall - 进程终止

# kill基础用法kill PID                  # 发送SIGTERMkill -9 PID               # 强制终止kill -l                   # 列出信号# 常用信号# SIGTERM (15) - 优雅终止# SIGKILL (9)  - 强制终止# SIGHUP (1)   - 重新加载配置# SIGUSR1/2    - 用户自定义# pkill(按名称杀进程)pkill nginx               # 杀所有nginx进程pkill -u www-data         # 杀用户所有进程pkill -9 -f "python.*script"# 按完整命令行匹配# killallkillall nginx             # 杀所有nginx进程killall -u www-data       # 杀用户所有进程# 实战案例:优雅重启nginxkill -HUP $(cat /var/run/nginx.pid)# 实战案例:杀掉僵尸进程的父进程ps aux | grep Z | awk '{print $2}' | xargs -I{} ps -p {} -o ppid= | xargs kill# 常见错误# 不要动不动就kill -9,先发SIGTERM让进程优雅退出# kill -9无法清理临时文件和释放资源

强调一下:kill -9是最后手段。正常应该先发SIGTERM,等几秒不退出再-9。很多进程需要时间做清理工作。

43. pgrep - 进程查找

# 基础用法pgrep nginx               # 返回PIDpgrep -l nginx            # 带进程名pgrep -a nginx            # 带完整命令# 高级参数pgrep -u root nginx       # 限定用户pgrep -f "python script"# 匹配完整命令行pgrep -c nginx            # 统计数量pgrep -P 1                # 父进程为1的所有进程pgrep -n nginx            # 最新的nginx进程pgrep -o nginx            # 最老的nginx进程# 实战案例:监控进程是否存在if pgrep nginx > /dev/null; thenecho"nginx is running"elseecho"nginx is not running"fi# 实战案例:配合其他命令使用top -p $(pgrep -d, nginx)strace -p $(pgrep -n java)

44. nohup / & - 后台运行

# 基础用法nohup command &nohup command > output.log 2>&1 &# 查看后台任务jobs -l# 前后台切换command &                 # 后台运行Ctrl+Z                    # 暂停当前任务bg# 放到后台继续fg# 调回前台# 实战案例:后台运行并记录日志nohup python /opt/app/worker.py > /var/log/worker.log 2>&1 &echo $! > /var/run/worker.pid# 实战案例:使用disown./long_running_command &disown# 从shell脱离# 更好的选择:使用systemd或supervisor

生产环境不建议用nohup,应该用systemd或supervisor管理进程。nohup容易失控,出了问题不好排查。

45. systemctl - 服务管理

# 基础用法systemctl start nginxsystemctl stop nginxsystemctl restart nginxsystemctl reload nginx    # 重新加载配置systemctl status nginx# 开机自启systemctl enable nginxsystemctl disable nginxsystemctl is-enabled nginx# 查看服务systemctl list-units --type=servicesystemctl list-units --type=service --state=runningsystemctl list-unit-files --type=service# 高级用法systemctl daemon-reload   # 重新加载unit文件systemctl mask nginx      # 彻底禁用systemctl unmask nginxsystemctl edit nginx      # 编辑服务配置# 实战案例:查看失败的服务systemctl --failed# 实战案例:查看服务依赖systemctl list-dependencies nginx# 实战案例:创建自定义服务cat > /etc/systemd/system/myapp.service << 'EOF'[Unit]Description=My ApplicationAfter=network.target[Service]Type=simpleUser=appWorkingDirectory=/opt/myappExecStart=/opt/myapp/bin/start.shRestart=alwaysRestartSec=5[Install]WantedBy=multi-user.targetEOFsystemctl daemon-reloadsystemctl enable --now myapp

46. nice / renice - 进程优先级

# 基础用法nice -n 10 command# 降低优先级运行nice -n -5 command# 提高优先级(需root)# 修改运行中的进程renice 10 -p PID          # 调整特定进程renice 10 -u username     # 调整用户所有进程# 实战案例:低优先级运行备份nice -n 19 tar -czvf backup.tar.gz /data/# 实战案例:提高关键进程优先级renice -10 -p $(pgrep -f "critical_app")# 优先级范围:-20 (最高) 到 19 (最低)# 默认值:0

47. timeout - 超时控制

# 基础用法timeout 5s command# 5秒超时timeout 1m command# 1分钟超时timeout 1h command# 1小时超时# 高级参数timeout -k 10s 60s command# 60秒后发TERM,再10秒后发KILLtimeout --signal=KILL 30s command# 直接发KILL信号# 实战案例:防止脚本卡住timeout 300 ./build.sh || echo"Build timed out"# 实战案例:批量操作超时控制for host in $(cat hosts.txt); do    timeout 5 ssh $host"hostname" || echo"$host: timeout"done

48. watch - 定期执行

# 基础用法watch command# 每2秒执行一次watch -n 1 command# 每1秒执行一次# 高级参数watch -d command# 高亮变化部分watch -g command# 输出变化时退出watch -t command# 不显示标题# 实战案例:监控进程状态watch -n 1 'ps aux | grep nginx'# 实战案例:监控磁盘IOwatch -n 1 'iostat -x 1 2 | tail -10'# 实战案例:监控网络连接数watch -n 1 'ss -s'# 实战案例:监控日志增长watch -n 1 'tail -5 /var/log/app.log'

49. screen / tmux - 终端复用

# screen基础用法screen                    # 新建会话screen -S name            # 命名会话screen -ls                # 列出会话screen -r name            # 恢复会话screen -d -r name         # 强制恢复Ctrl+A, D                 # 分离会话# tmux基础用法(推荐)tmux                      # 新建会话tmux new -s name          # 命名会话tmux ls                   # 列出会话tmux attach -t name       # 恢复会话tmux kill-session -t name # 终止会话# tmux快捷键(默认Ctrl+B前缀)Ctrl+B, D                 # 分离Ctrl+B, C                 # 新建窗口Ctrl+B, N/P               # 切换窗口Ctrl+B, "                 # 水平分割Ctrl+B, %                 # 垂直分割Ctrl+B, 方向键            # 切换面板# 实战案例:持久化运行任务tmux new -s deploy./deploy.shCtrl+B, D                 # 分离,放心关终端# 实战案例:同步执行命令tmux set synchronize-panes on  # 在多个面板同时输入

tmux是远程运维必备工具。SSH断了任务还在跑,多窗口操作效率翻倍。

50. crontab - 定时任务

# 基础用法crontab -l                # 查看任务crontab -e                # 编辑任务crontab -r                # 删除所有任务# crontab格式# 分 时 日 月 周 命令# *  *  *  *  *  command# 0  2  *  *  *  每天凌晨2点# */5 *  *  *  *  每5分钟# 0  0  1  *  *  每月1号# 实战案例:完整的crontab配置# 设置环境变量SHELL=/bin/bashPATH=/usr/local/bin:/usr/bin:/binMAILTO=admin@example.com# 每天凌晨备份0 2 * * * /opt/scripts/backup.sh >> /var/log/backup.log 2>&1# 每5分钟检查服务*/5 * * * * /opt/scripts/check_service.sh# 每周日清理日志0 3 * * 0 find /var/log -name "*.log" -mtime +30 -delete# 实战案例:防止任务重复运行*/5 * * * * flock -n /tmp/myjob.lock /opt/scripts/myjob.sh# 实战案例:查看cron日志grep CRON /var/log/syslog

cron的坑很多:路径问题、环境变量问题、日志问题。建议在crontab里明确设置PATH和SHELL,命令输出重定向到日志文件。


第六类:用户权限命令(5个)

51. useradd / usermod / userdel - 用户管理

# 添加用户useradd usernameuseradd -m username       # 创建家目录useradd -m -s /bin/bash -G sudo,docker username# 修改用户usermod -aG docker username  # 添加到docker组usermod -s /bin/bash username  # 修改shellusermod -L username       # 锁定用户usermod -U username       # 解锁用户# 删除用户userdel usernameuserdel -r username       # 同时删除家目录# 设置密码passwd username# 实战案例:创建应用账户useradd -r -m -d /opt/app -s /sbin/nologin appuser# 实战案例:批量创建用户for user in user1 user2 user3; do    useradd -m -s /bin/bash $userecho"$user:RandomPassword123!" | chpasswddone

52. chmod - 权限修改

# 数字模式chmod 755 file            # rwxr-xr-xchmod 644 file            # rw-r--r--chmod 600 file            # rw------- (私钥文件)chmod 777 file            # 永远不要在生产环境用# 符号模式chmod u+x file            # 用户加执行权限chmod g-w file            # 组去掉写权限chmod o=r file            # 其他人只读chmod a+x file            # 所有人加执行权限# 高级用法chmod -R 755 dir/         # 递归修改chmod --reference=file1 file2  # 复制权限# 特殊权限chmod u+s file            # SUIDchmod g+s dir             # SGIDchmod +t dir              # Sticky bit# 实战案例:设置正确的Web目录权限find /var/www -type d -exec chmod 755 {} \;find /var/www -type f -exec chmod 644 {} \;# 实战案例:脚本文件权限chmod 750 /opt/scripts/*.sh

53. chown - 属主修改

# 基础用法chown user filechown user:group filechown :group file         # 只改组# 高级用法chown -R user:group dir/  # 递归修改chown --reference=file1 file2# 实战案例:修改Web目录属主chown -R www-data:www-data /var/www/html/# 实战案例:修复权限问题chown -R app:app /opt/app/chmod -R u=rwX,g=rX,o= /opt/app/

54. sudo - 权限提升

# 基础用法sudo commandsudo -u username command# 以指定用户执行sudo -i                   # 切换到root shellsudo -s                   # 保持当前目录的root shell# 编辑sudoersvisudo                    # 安全编辑# 实战案例:sudoers配置# 允许用户无密码执行特定命令username ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx# 允许用户组执行所有命令%admin ALL=(ALL) ALL# 实战案例:查看sudo权限sudo -l

55. su - 切换用户

# 基础用法su - username             # 完整登录shellsu username               # 不加载用户环境# 高级用法su - username -c "command"# 执行单条命令su -                      # 切换到root# 实战案例:以应用用户执行su - app -c "/opt/app/bin/start.sh"# 区别# su username   - 保持当前目录和部分环境变量# su - username - 完全模拟登录,切换到用户家目录

第七类:磁盘存储命令(5个)

56. df - 磁盘空间

# 基础用法df -h                     # 人类可读df -i                     # inode使用情况df -T                     # 显示文件系统类型# 高级用法df -h /path               # 特定路径df --total                # 显示总计# 实战案例:快速查看磁盘使用df -h | grep -E '^/dev' | awk '$5 > "80%"'# 实战案例:监控脚本df -h | awk 'NR>1 && int($5) > 80 {print $6, $5}'

57. du / dust - 目录大小

# du基础用法du -sh /path              # 目录总大小du -sh *                  # 当前目录下各项大小du -h --max-depth=1       # 只看一层# dust用法(推荐)dust /path                # 可视化显示dust -n 20 /path          # 显示前20个dust -d 2 /path           # 深度2层# 实战案例:找出大目录du -h --max-depth=1 / 2>/dev/null | sort -h | tail -20# 实战案例:找出大文件find / -type f -size +1G -exec ls -lh {} \; 2>/dev/null# ncdu(交互式)ncdu /                    # 交互式浏览

dust的可视化效果很好,一眼就能看出磁盘空间被什么占了。

58. mount / umount - 挂载管理

# 查看挂载mountmount | grep /dev/sdafindmnt                   # 更清晰的树形显示# 挂载mount /dev/sdb1 /mnt/datamount -t nfs server:/share /mnt/nfsmount -o loop image.iso /mnt/iso# 卸载umount /mnt/dataumount -l /mnt/data       # 延迟卸载umount -f /mnt/nfs        # 强制卸载# 实战案例:挂载配置 /etc/fstab/dev/sdb1  /data  ext4  defaults,noatime  0  2UUID=xxx   /data  xfs   defaults          0  2# 实战案例:自动挂载mount -a                  # 挂载fstab中所有条目

59. lsblk / fdisk - 磁盘信息

# lsblk(推荐)lsblklsblk -f                  # 显示文件系统lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,FSTYPE# fdiskfdisk -l                  # 列出所有磁盘fdisk /dev/sdb            # 交互式分区# 查看磁盘详情hdparm -I /dev/sda        # ATA/SATA磁盘信息smartctl -a /dev/sda      # SMART信息# 实战案例:新磁盘初始化fdisk /dev/sdb            # 分区mkfs.ext4 /dev/sdb1       # 格式化mount /dev/sdb1 /data     # 挂载echo'/dev/sdb1 /data ext4 defaults 0 2' >> /etc/fstab

60. dd - 磁盘复制

# 基础用法dd if=/dev/sda of=/dev/sdb  # 克隆磁盘dd if=/dev/zero of=file bs=1M count=100  # 创建100M文件# 高级参数dd if=/dev/sda of=disk.img bs=4M status=progressdd if=/dev/sda | gzip > disk.img.gzdd if=/dev/urandom of=/dev/sda bs=4M   # 安全擦除# 实战案例:测试磁盘写入速度dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 conv=fdatasync# 实战案例:测试磁盘读取速度dd if=/tmp/testfile of=/dev/null bs=1M# 实战案例:创建swap文件dd if=/dev/zero of=/swapfile bs=1M count=4096chmod 600 /swapfilemkswap /swapfileswapon /swapfile# 常见错误# if和of写反了会丢数据!操作前务必确认# 建议用pv显示进度:dd if=xxx | pv | dd of=xxx

dd是个双刃剑,用对了能救命,用错了能毁灭。操作前一定要确认if和of没写反。


四、最佳实践和注意事项

性能优化

  1. 命令选择优化
# 搜索用rg代替grep,快几十倍# 文件查找用fd代替find,快且语法简洁# 查看文件用bat代替cat,可读性好# 监控用btop代替top,信息更全
  1. 管道优化
# 低效cat file | grep pattern | awk '{print $1}'# 高效awk '/pattern/ {print $1}' file
  1. 并行处理
# 串行处理慢for host in $(cat hosts); do    ssh $host"command"done# 并行处理快cat hosts | xargs -P 10 -I {} ssh {} "command"# 或使用parallelparallel -j 10 ssh {} "command" :::: hosts

安全加固

  1. 危险命令防护
# 使用别名添加确认alias rm='rm -i'alias mv='mv -i'alias cp='cp -i'# 使用safe-rmapt install safe-rm
  1. 权限最小化
# 脚本不要777chmod 750 script.sh# 配置文件不要world-readablechmod 640 config.conf# 私钥文件严格限制chmod 600 ~/.ssh/id_rsa
  1. 审计日志
# 记录所有命令export PROMPT_COMMAND='echo "$(date "+%Y-%m-%d %H:%M:%S") $(whoami) $(pwd) $(history 1)" >> /var/log/commands.log'

常见错误

  1. 路径陷阱
# 错误:空变量导致删除根目录rm -rf $UNDEFINED_VAR/*# 正确:使用引号和默认值rm -rf "${TARGET_DIR:-/tmp/safe}/"
  1. 编码问题
# 遇到乱码时检查编码file filenameiconv -f GBK -t UTF-8 file.txt > file_utf8.txt
  1. 权限问题
# 问题:Permission denied# 检查:ls -la filenamei -l /path/to/file   # 检查路径每一级权限

五、故障排查和监控

日志查看

# 系统日志journalctl -xe                    # 最近错误journalctl -u nginx --since "1 hour ago"tail -f /var/log/syslog# 应用日志tail -f /var/log/nginx/error.logless +F /var/log/app/app.log# 审计日志ausearch -ts today -k unauthorized# 登录日志last -20                          # 最近20次登录lastb                             # 失败的登录who                               # 当前登录用户

问题排查流程

# 1. 系统概览uptime                            # 负载free -h                           # 内存df -h                             # 磁盘# 2. 进程检查top -c                            # 高CPU/内存进程ps auxf                           # 进程树# 3. 网络检查ss -tuln                          # 监听端口ss -ant | awk '{print $1}' | sort | uniq -c  # 连接状态# 4. IO检查iostat -x 1 5                     # 磁盘IOiotop                             # IO进程排行# 5. 日志检查journalctl -xedmesg -T | tail -50

监控告警脚本示例

#!/bin/bash# 系统监控脚本# 阈值配置CPU_THRESHOLD=80MEM_THRESHOLD=85DISK_THRESHOLD=90# CPU使用率CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print 100-$8}' | cut -d. -f1)# 内存使用率MEM_USAGE=$(free | grep Mem | awk '{printf "%.0f", $3/$2*100}')# 磁盘使用率DISK_USAGE=$(df -h / | awk 'NR==2 {print $5}' | tr -d '%')# 告警函数alert() {echo"[ALERT] $(date '+%Y-%m-%d %H:%M:%S')$1" >> /var/log/monitor.log# 发送到告警系统# curl -X POST "http://alert-server/api/alert" -d "message=$1"}# 检查并告警[[ $CPU_USAGE -gt $CPU_THRESHOLD ]] && alert "CPU usage is ${CPU_USAGE}%"[[ $MEM_USAGE -gt $MEM_THRESHOLD ]] && alert "Memory usage is ${MEM_USAGE}%"[[ $DISK_USAGE -gt $DISK_THRESHOLD ]] && alert "Disk usage is ${DISK_USAGE}%"

六、总结

要点回顾

  1. 文件操作:熟练使用rsync、tar进行数据同步和备份
  2. 文本处理:grep/awk/sed是日志分析三剑客
  3. 系统监控:top/htop/btop实时监控,sar历史分析
  4. 网络诊断:ss/tcpdump/mtr定位网络问题
  5. 进程管理:systemctl是服务管理核心,tmux是远程运维必备
  6. 安全意识:最小权限原则,危险操作前备份

进阶方向

  1. 自动化运维:Ansible、Terraform、Pulumi
  2. 容器技术:Docker、Kubernetes、containerd
  3. 可观测性:Prometheus、Grafana、OpenTelemetry
  4. 云原生:AWS/GCP/Azure CLI工具
  5. 编程技能:Python/Go脚本开发

参考资料

  • Linux man pages: man command
  • TLDR pages: tldr command(简洁版man)
  • explainshell.com - 命令解释网站
  • Linux Performance by Brendan Gregg
  • The Linux Command Line by William Shotts

附录

命令速查表

类别
命令
用途
现代替代
文件
ls
列出文件
eza
文件
find
查找文件
fd
文件
cat
查看文件
bat
文件
cp
复制文件
rsync
文本
grep
搜索文本
ripgrep
文本
awk
文本处理
-
文本
sed
流编辑
-
系统
top
进程监控
btop
系统
du
目录大小
dust
网络
netstat
网络状态
ss
网络
ifconfig
网络配置
ip

效率提升配置

# ~/.bashrc 或 ~/.zshrc 完整配置# 现代命令别名ifcommand -v eza &> /dev/null; thenalias ls='eza --icons'alias ll='eza -alh --git --icons'alias la='eza -a --icons'alias lt='eza --tree --level=2 --icons'fiifcommand -v bat &> /dev/null; thenalias cat='bat --paging=never'alias less='bat'fiifcommand -v rg &> /dev/null; thenalias grep='rg'fiifcommand -v fd &> /dev/null; thenalias find='fd'fiifcommand -v dust &> /dev/null; thenalias du='dust'fi# 常用快捷命令alias ports='ss -tulanp'alias myip='curl -s ifconfig.me'alias h='history | tail -20'alias j='jobs -l'alias path='echo $PATH | tr ":" "\n"'# 安全别名alias rm='rm -I --preserve-root'alias mv='mv -i'alias cp='cp -i'alias ln='ln -i'alias chown='chown --preserve-root'alias chmod='chmod --preserve-root'alias chgrp='chgrp --preserve-root'# Git快捷键alias g='git'alias gs='git status'alias ga='git add'alias gc='git commit'alias gp='git push'alias gl='git log --oneline -10'alias gd='git diff'# Docker快捷键alias d='docker'alias dc='docker-compose'alias dps='docker ps'alias dex='docker exec -it'alias dlogs='docker logs -f'# Kubernetes快捷键alias k='kubectl'alias kgp='kubectl get pods'alias kgs='kubectl get svc'alias kgd='kubectl get deployments'alias klogs='kubectl logs -f'alias kexec='kubectl exec -it'# 函数mkcd() { mkdir -p "$1" && cd"$1"; }extract() {case"$1"in        *.tar.bz2) tar xjf "$1" ;;        *.tar.gz)  tar xzf "$1" ;;        *.tar.xz)  tar xJf "$1" ;;        *.tar.zst) tar --zstd -xf "$1" ;;        *.bz2)     bunzip2 "$1" ;;        *.gz)      gunzip "$1" ;;        *.tar)     tar xf "$1" ;;        *.tbz2)    tar xjf "$1" ;;        *.tgz)     tar xzf "$1" ;;        *.zip)     unzip "$1" ;;        *.7z)      7z x "$1" ;;        *)         echo"'$1' cannot be extracted" ;;esac}

Oh-My-Zsh推荐插件

# ~/.zshrcplugins=(    git                  # Git别名和补全    docker               # Docker补全    kubectl              # K8s补全    aws                  # AWS CLI补全    sudo                 # 双击ESC添加sudohistory# 历史命令搜索    colored-man-pages    # 彩色man页面command-not-found    # 命令建议    zsh-autosuggestions  # 自动建议    zsh-syntax-highlighting  # 语法高亮    fzf                  # 模糊搜索)

术语表

术语
解释
PID
进程ID
PPID
父进程ID
TTY
终端设备
UID
用户ID
GID
组ID
FD
文件描述符
inode
索引节点,文件元数据
SIGTERM
终止信号(15)
SIGKILL
强制终止信号(9)
SIGHUP
挂起信号(1),常用于重载配置
TTL
生存时间
MTU
最大传输单元
RTT
往返时间
OOM
内存溢出
swap
交换空间
buffer
缓冲区(写入缓存)
cache
缓存(读取缓存)
load average
系统负载平均值
zombie
僵尸进程

这份手册是我十年运维经验的浓缩,希望对你有帮助。命令只是工具,重要的是理解背后的原理和在什么场景使用。实践出真知,多动手,少死记。

文末福利

网络监控是保障网络系统和数据安全的重要手段,能够帮助运维人员及时发现并应对各种问题,及时发现并解决,从而确保网络的顺畅运行。

谢谢一路支持,给大家分享6款开源免费的网络监控工具,并准备了对应的资料文档,建议运维工程师收藏(文末一键领取)。

备注:【监控合集】

100%免费领取

一、zabbix

二、Prometheus

内容较多,6款常用网络监控工具(zabbix、Prometheus、Cacti、Grafana、OpenNMS、Nagios不再一一介绍, 需要的朋友扫码备注【监控合集】,即可100%免费领取。

 以上所有资料获取请扫码

备注:【监控合集】

100%免费领取

(后台不再回复,扫码一键领取)

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-09 01:03:54 HTTP/2.0 GET : https://f.mffb.com.cn/a/460486.html
  2. 运行时间 : 0.122357s [ 吞吐率:8.17req/s ] 内存消耗:4,914.18kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=8aa5bd262bbac242bedabf46d9bb708a
  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.000912s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001425s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000672s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000645s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001217s ]
  6. SELECT * FROM `set` [ RunTime:0.000555s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001449s ]
  8. SELECT * FROM `article` WHERE `id` = 460486 LIMIT 1 [ RunTime:0.001228s ]
  9. UPDATE `article` SET `lasttime` = 1770570234 WHERE `id` = 460486 [ RunTime:0.006441s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000583s ]
  11. SELECT * FROM `article` WHERE `id` < 460486 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001793s ]
  12. SELECT * FROM `article` WHERE `id` > 460486 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001200s ]
  13. SELECT * FROM `article` WHERE `id` < 460486 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002845s ]
  14. SELECT * FROM `article` WHERE `id` < 460486 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.011447s ]
  15. SELECT * FROM `article` WHERE `id` < 460486 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002316s ]
0.126062s