服务器命令速查手册:按场景整理Linux运维常用命令与踩坑经验
1. 从零搭建一套顺手的服务器命令知识库很多人第一次接触服务器脑子里蹦出来的第一个念头就是“命令太多记不住”。我刚开始那会儿也一样ls、cd、top、df这些还能应付一旦遇到日志排查、进程卡死、磁盘爆满整个人就懵了。后来我发现真正的问题不在于命令数量多而在于没有把它们按“场景”串起来。你不需要背下几百条命令你只需要在遇到具体问题时知道该敲哪一条、参数怎么给、输出怎么看。这篇内容就是围绕这个思路展开的。我会把服务器日常运维中最常打交道的命令按照实际使用场景重新组织一遍不是那种从 A 到 Z 的字典式罗列而是“遇到什么问题用什么命令怎么解读结果”。适合刚上手 Linux 服务器的朋友也适合已经用了几年但总觉得知识零散、想系统梳理一遍的同行。核心关键词就一个服务器命令但我会把它拆成文件操作、进程管理、网络排查、磁盘与性能、日志分析、权限与用户这几大块每一块都配上我实际踩过的坑和验证过的参数组合。先说一个我自己的教训。早年有一次线上服务响应变慢我第一反应是重启结果重启完十分钟又卡了。后来才学会先用top看负载再用iostat看磁盘 IO最后定位到是一个日志文件把磁盘写满了。如果当时手边有一套按场景整理的命令清单可能五分钟就解决了。所以下面这些内容你可以直接当成自己的“服务器命令速查手册”来用也可以在此基础上继续扩充。2. 文件与目录操作别只会 ls 和 cd2.1 查看文件内容时cat、less、tail 到底怎么选很多人一上来就用cat文件小的时候没问题一旦遇到几百兆的日志文件终端直接卡死只能强制关掉重开。我的习惯是小于 100 行的配置文件用cat大文件一律用less实时日志用tail -f。less的好处是可以上下翻页、搜索关键字按/输入关键词回车就能定位。退出按q。如果你只想看文件末尾的几十行tail -n 50 filename比cat高效得多。实时跟踪日志用tail -f filename但要注意如果日志滚动特别快终端会刷屏这时候可以配合grep过滤比如tail -f app.log | grep ERROR。还有一个容易被忽略的命令是head默认看前 10 行适合快速确认文件格式。比如拿到一个 CSV 文件先head -n 3 data.csv看看列名和分隔符再决定怎么处理。提示cat还有一个常见用法是合并文件cat file1 file2 file3但要注意会覆盖目标文件如果 file3 已存在且重要先用追加或者提前备份。2.2 查找文件find 和 locate 的取舍find是服务器上最强大的查找工具但参数多、速度慢。locate基于预建索引速度快但可能不是最新结果。我的经验是临时找文件用find日常高频查找用locate但记得定期updatedb。find最常用的几个场景按文件名查找find /var/log -name *.log按修改时间查找find /tmp -mtime 77 天前修改的按大小查找find / -size 100M大于 100M 的文件查找后执行操作find /tmp -name *.tmp -exec rm {} \;这里有个坑find /会遍历整个文件系统包括/proc、/sys这些虚拟目录速度极慢还可能报错。建议限定目录范围或者用-xdev参数避免跨文件系统。locate的用法很简单locate nginx.conf但它依赖/var/lib/mlocate/mlocate.db这个数据库新创建的文件可能搜不到。手动更新用updatedb但注意这会消耗一定 IO别在业务高峰期跑。2.3 文件权限与属主chmod 数字法的快速心算chmod有两种写法符号法和数字法。符号法适合微调比如chmod ux script.sh给属主加执行权限。数字法适合一次性设定比如chmod 755 script.sh。数字法的规则是读r4写w2执行x1三组权限分别对应属主、属组、其他用户。所以 755 就是属主 4217属组 415其他 415。常用的组合有数字含义典型场景644属主读写其他只读普通文件、配置文件755属主读写执行其他读执行脚本、目录600只有属主读写私钥、敏感配置700只有属主读写执行私有目录改属主用chown user:group filename递归改目录用-R。但-R要小心别把系统目录的属主改乱了。我一般会先ls -l确认当前权限改完再ls -l复核一遍。3. 进程与资源管理top 之外的进阶工具3.1 用 top 和 htop 快速定位高负载进程top是服务器上最常用的实时监控工具默认按 CPU 使用率排序。进入界面后按M按内存排序按P按 CPU 排序按1展开每个 CPU 核心的详情。退出按q。但top的交互体验一般如果服务器上装了htop我更推荐用它。htop有彩色界面、支持鼠标点击、可以直接杀进程还能横向滚动看完整命令。安装命令因系统而异Debian/Ubuntu 系用apt install htopRHEL/CentOS 系用yum install htop。看top输出时重点看三行第一行的load average第二行的Tasks第三行的%Cpu(s)。load average的三个数值分别是 1 分钟、5 分钟、15 分钟的平均负载。如果 1 分钟值远高于 15 分钟值说明负载在突增如果三个值都高说明系统持续繁忙。一般来说负载值不应超过 CPU 核心数超过就说明有进程在排队。3.2 ps 与 pgrep精准找到目标进程ps aux是最常用的进程查看命令输出所有用户的进程。但输出太长通常配合grep使用ps aux | grep nginx。这里有个小坑grep本身也会出现在结果里可以用grep -v grep过滤掉。更优雅的方式是用pgreppgrep -a nginx直接列出进程名匹配的进程和完整命令。pgrep -u root列出 root 用户的进程。如果要看进程树用pstree -p能直观看到父子进程关系。杀进程用kill默认发 TERM 信号15让进程自己清理退出。如果进程无响应用kill -9发 KILL 信号强制终止。但-9是最后手段因为进程来不及保存状态可能导致数据不一致。我一般先kill等几秒不行再kill -9。3.3 后台任务与 nohup让命令在断开后继续跑SSH 会话断开后前台运行的命令会被终止。如果想让一个耗时任务继续跑有两种方式nohup和screen/tmux。nohup的用法nohup long_running_command output.log 21 。这里 output.log把标准输出重定向到文件21把标准错误也重定向到同一文件最后的让命令在后台运行。执行后会返回一个进程号可以用jobs -l查看后台任务用fg %1调回前台。但nohup的缺点是任务管理不方便看不到实时输出。所以我更推荐tmuxtmux new -s mysession创建一个会话在里面跑命令按CtrlB然后D分离会话。下次 SSH 进来用tmux attach -t mysession重新连接输出还在。screen类似但tmux的分屏和复制模式更好用。4. 网络排查从 ping 到 tcpdump 的完整链路4.1 连通性检查ping、telnet、curl 的分工ping是最基础的连通性测试ping -c 4 example.com发 4 个包就停。但很多服务器禁 ping所以 ping 不通不代表服务不可用。telnet用来测端口telnet 192.168.1.1 80如果显示Connected说明端口开放。但telnet默认没装可以用nc -zv 192.168.1.1 80替代-z表示只扫描不发送数据-v显示详细信息。curl更强大能直接发 HTTP 请求curl -I http://example.com只看响应头curl -v显示完整请求过程。排查接口问题时我常用curl -X POST -H Content-Type: application/json -d {key:value} http://api.example.com/endpoint来模拟请求。4.2 端口与连接状态netstat 和 ss 的对比netstat -tulnp是经典命令显示所有监听端口和对应进程。但netstat在新版 Linux 上逐渐被ss取代因为ss更快、输出更清晰。ss -tulnp参数含义-tTCP-uUDP-l监听状态-n显示端口号而非服务名-p显示进程。输出里Local Address是监听地址Peer Address是连接过来的地址。如果要看某个端口的连接数ss -tn state established ( sport :80 ) | wc -l。这个命令统计 80 端口已建立的连接数对判断并发量很有用。4.3 抓包分析tcpdump 的常用过滤表达式tcpdump是网络排查的终极武器但输出量大必须配合过滤条件。基本用法tcpdump -i eth0 -nn port 80-i指定网卡-nn不解析域名和端口名port 80只抓 80 端口。更精细的过滤抓特定 IPtcpdump -i eth0 host 192.168.1.100抓特定网段tcpdump -i eth0 net 192.168.1.0/24抓 TCP 标志位tcpdump -i eth0 tcp[tcpflags] (tcp-syn|tcp-fin) ! 0保存到文件用 Wireshark 分析tcpdump -i eth0 -w capture.pcap抓包时要注意权限普通用户可能没权限需要sudo。另外抓包会消耗 CPU 和磁盘别长时间跑抓完及时CtrlC停止。5. 磁盘与性能df、du、iostat 的组合拳5.1 磁盘空间排查df 和 du 的配合df -h查看各分区使用率-h以人类可读格式显示GB、MB。如果某个分区使用率超过 90%就要警惕了。但df只显示分区级别具体哪个目录占空间要用du。du -sh /var/log查看 /var/log 总大小du -h --max-depth1 /var查看 /var 下每个子目录的大小。这里有个坑du统计的是文件占用的块数可能和df的结果有差异因为被删除但仍在被进程占用的文件不会出现在du里。遇到df显示满但du找不到大文件的情况用lsof | grep deleted查找被删除但未释放的文件。重启对应进程就能释放空间。5.2 磁盘 IO 性能iostat 的关键指标iostat -x 1每秒刷新一次显示每个磁盘的详细 IO 统计。重点看几个指标%util磁盘繁忙程度接近 100% 说明磁盘是瓶颈await平均等待时间毫秒包括排队时间svctm平均服务时间反映磁盘本身性能r/s和w/s每秒读写次数如果%util高但await不高说明 IO 量大但磁盘处理得快如果await远大于svctm说明排队严重可能需要升级磁盘或优化 IO 模式。5.3 内存与交换分区free 和 vmstatfree -h查看内存使用重点看available列这是真正可用的内存。buff/cache是系统缓存虽然算在 used 里但可被回收不用太担心。vmstat 1每秒输出一行关注si和so两列分别是交换分区换入和换出。如果这两个值持续大于 0说明物理内存不足系统在频繁使用交换分区性能会明显下降。6. 日志分析grep、awk、sed 的三剑客用法6.1 grep 的高频参数与正则技巧grep是日志分析的第一把刀。常用参数-i忽略大小写-r递归搜索目录-n显示行号-C 3显示匹配行前后各 3 行-v反向匹配排除某些行正则方面grep -E支持扩展正则比如grep -E error|fail app.log匹配 error 或 fail。如果要统计匹配行数用grep -c。我排查问题时经常用grep -n -C 5 Exception app.log这样能看到异常前后的上下文快速定位问题原因。6.2 awk 按列提取与统计awk适合处理结构化文本。比如日志格式是时间 IP 状态码 耗时用空格分隔那么提取第 2 列awk {print $2} access.log统计状态码分布awk {print $3} access.log | sort | uniq -c | sort -rn计算平均耗时awk {sum$4} END {print sum/NR} access.logawk的内置变量很实用NR是当前行号NF是当前行的字段数$0是整行内容。6.3 sed 批量替换与行操作sed主要用于替换和删除行。替换sed s/old/new/g file.txtg表示全局替换。直接修改文件用-ised -i s/old/new/g file.txt。删除空行sed /^$/d file.txt。删除包含某关键词的行sed /debug/d app.log。打印特定行sed -n 10,20p file.txt打印第 10 到 20 行。sed和awk经常配合使用比如先grep过滤再awk提取最后sed替换格式形成一条完整的处理链路。7. 权限与用户管理useradd、sudo、ssh 密钥7.1 用户与用户组的基本操作创建用户useradd -m -s /bin/bash username-m创建家目录-s指定 shell。设置密码passwd username。删除用户userdel -r username-r同时删除家目录。创建用户组groupadd devgroup。把用户加入组usermod -aG devgroup username-a表示追加不加-a会覆盖原有组。查看用户所属组groups username。7.2 sudo 权限的精细控制直接给用户 root 权限不安全更好的方式是用sudo。编辑/etc/sudoers用visudo命令它会检查语法错误。添加一行username ALL(ALL) NOPASSWD: /bin/systemctl restart nginx这样用户只能免密重启 nginx不能执行其他 root 命令。如果想让用户执行所有命令但需要输密码username ALL(ALL) ALL。但生产环境建议按需授权最小权限原则。7.3 SSH 密钥登录与安全加固密码登录容易被暴力破解推荐用密钥登录。本地生成密钥对ssh-keygen -t rsa -b 4096一路回车。然后把公钥传到服务器ssh-copy-id userserver。服务器端确认~/.ssh/authorized_keys文件权限是 600.ssh目录权限是 700。然后编辑/etc/ssh/sshd_config设置PasswordAuthentication no禁用密码登录PermitRootLogin no禁止 root 直接登录。改完重启 sshd 服务。注意改 SSH 配置前先确保密钥登录已经成功否则可能把自己锁在外面。我一般会开两个终端一个改配置一个保持连接测试。8. 我的常用命令组合与踩坑记录8.1 几条我每天都在用的组合命令查看当前目录下最大的 10 个文件du -ah . | sort -rh | head -n 10实时监控某进程的 CPU 和内存top -p $(pgrep -d, process_name)统计 Nginx 访问日志中 IP 的访问次数awk {print $1} access.log | sort | uniq -c | sort -rn | head -n 20查找并删除 7 天前的日志find /var/log -name *.log -mtime 7 -delete查看某端口被哪个进程占用ss -tulnp | grep :8080这些命令我用了好几年基本覆盖了日常 80% 的排查场景。你可以把它们记在便签上或者写进自己的 shell 别名里。8.2 那些年我踩过的坑第一个坑rm -rf后面跟变量。有一次脚本里写rm -rf $DIR/*结果$DIR为空变成了rm -rf /*幸好当时权限不够只删了当前目录。教训是删除前先echo确认路径或者用set -u让未定义变量报错。第二个坑chmod -R 777图省事。结果把私钥文件也设成了所有人可读安全审计直接报警。后来我学会了按需授权私钥一律 600目录 755脚本 755。第三个坑kill -9杀数据库进程。有一次 MySQL 卡住我直接kill -9结果数据文件损坏花了半天恢复。后来知道数据库要用mysqladmin shutdown或者systemctl stop优雅停止。第四个坑df和du结果不一致。排查了半天才发现是日志文件被删除但进程还在写lsof | grep deleted找到后重启进程才释放空间。8.3 如何持续积累自己的命令库我的做法是建一个 Markdown 文件按场景分类每遇到一个新问题就记一条。比如“磁盘满”下面记df -h、du -sh、lsof | grep deleted“端口占用”下面记ss -tulnp、lsof -i:端口。时间长了这个文件就是自己的知识库。另外善用man和--help。man command看完整手册command --help看快速帮助。遇到不熟悉的参数先查再试别凭感觉敲。最后分享一个小技巧用history查看历史命令history | grep keyword快速找到之前用过的命令。CtrlR反向搜索历史命令输入关键词就能调出最近一条匹配的命令效率极高。服务器命令这东西说到底就是“用进废退”。你不需要一次记住所有但要在遇到问题时知道去哪查、怎么试。上面这些内容是我自己从无数次踩坑中总结出来的希望能帮你少走点弯路。如果你也有自己的常用命令组合不妨也整理一份时间长了你会发现这比任何速查表都管用。

相关新闻

VS2017 编译 Assimp 实战:CMake 配置与踩坑指南

VS2017 编译 Assimp 实战:CMake 配置与踩坑指南

1. 为什么要在 VS2017 上折腾 Assimp 编译如果你正在做三维可视化、游戏引擎、CAD 工具或者任何跟模型加载沾边的项目,Assimp 这个名字大概率绕不开。它全称 Open Asset Import Library,是一个支持几十种三维模型格式的导入导出库,FBX、OBJ、…

2026/10/18 16:58:50 阅读更多 →
基于YOLOv8的行人车辆检测计数与跟踪系统实战解析

基于YOLOv8的行人车辆检测计数与跟踪系统实战解析

做智能交通或者视频监控方向的开发者,多半都接过类似的活:给一段路口监控视频,把行人和车辆分开数清楚,还要让每个目标从进画面到出画面始终保持同一个编号,不重复计数、不跟丢。我最近把一套基于YOLOv8模型的行人车辆…

2026/10/18 16:58:50 阅读更多 →
硬件动态分析逆向FSM:从黑盒行为重建有限状态机

硬件动态分析逆向FSM:从黑盒行为重建有限状态机

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 16:58:50 阅读更多 →

最新新闻

降AI万能公式是伪命题?从AI检测原理到可复用改写框架的完整指南

降AI万能公式是伪命题?从AI检测原理到可复用改写框架的完整指南

“降AI万能公式”最近在内容创作圈子里热度很高,很多朋友私信问我:网上流传的那些“降AI提示词”“一键去AI味模板”到底有没有用?是不是真有那么一套万能公式,套进去就能让AI写的字变成“人写的”?我认真拆解过这些方…

2026/10/18 17:44:45 阅读更多 →
LangGraph实战:构建有状态的AI Agent工作流

LangGraph实战:构建有状态的AI Agent工作流

LangGraph 是近两年 LLM 应用开发里绕不开的一个名字。我最初是被它的“有状态”这三个字吸引过去的,因为之前用常见的 Agent 框架做多步骤任务时,最头疼的就是状态管理——每个节点各自为政,对话历史要手动拼接,分支逻辑要写在业…

2026/10/18 17:44:45 阅读更多 →
openLava 4.0集群调度器实战指南:安装配置、作业提交与故障排查

openLava 4.0集群调度器实战指南:安装配置、作业提交与故障排查

简介:openlava 4.0 是经典的开源集群调度管理工具,这份源码安装包面向集群运维人员、HPC学习者和希望理解作业调度机制的技术人员。尽管官方已停止维护,但其核心设计与命令体系深刻影响了IBM LSF,至今仍有借鉴价值。压缩包内含501…

2026/10/18 17:44:45 阅读更多 →
终端跑酷游戏moon-buggy在KeyarchOS上的安装与玩法实战

终端跑酷游戏moon-buggy在KeyarchOS上的安装与玩法实战

之前在终端里跑htop、vim、tmux大家都见多了,但你见过在终端里玩跑酷吗?moon-buggy就是这样一款能在纯文本终端里运行的经典跑酷游戏——你驾驶一台月球车,在布满陨石坑的月面上一路狂奔,空格键跳跃躲坑,跑得越远分数越…

2026/10/18 17:44:45 阅读更多 →
随机森林预测电池RUL:不依赖物理模型的工业级鲁棒方案

随机森林预测电池RUL:不依赖物理模型的工业级鲁棒方案

简介:本资源是一套基于Python随机森林算法的锂离子电池剩余寿命(RUL)预测完整实践方案,面向机器学习入门者与电池健康状态研究初学者,适用于课程设计、毕设项目及工程实训场景。资源包共117个文件,含106个原…

2026/10/18 17:44:45 阅读更多 →
TensorFlow Lite端侧推理集成指南:模型转换、性能优化与避坑实践

TensorFlow Lite端侧推理集成指南:模型转换、性能优化与避坑实践

做端侧AI这么久,TensorFlow Lite集成这个坑,我前后踩了大半年才彻底理顺。去年接手一个离线质检项目,现场环境没有稳定网络,只能在某个嵌入式设备上跑一个图像分类模型。模型在训练环境里精度很正常,一到端侧不是转不动…

2026/10/18 17:43:44 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →