服务器运维常用命令是运维工程师的日常工具,掌握系统状态查看、进程管理、网络诊断和日志分析等核心命令,能让你在绝大多数故障场景中快速定位问题并恢复服务。
这些命令看似零散,但每个都有其擅长领域,下面先列出常用命令清单,再通过具体场景演示如何组合使用。
服务器运维常用命令有哪些?
系统信息查看命令
uname -a:查看内核版本、系统架构。cat /etc/os-release:查看发行版信息。hostname:查看或设置主机名。uptime:查看系统运行时间、登录用户数和平均负载。dmesg:查看内核日志,用于排查硬件故障。
进程管理命令
ps -ef:列出所有进程,配合grep快速定位目标进程。top:实时动态显示进程,按P按CPU排序,按M按内存排序。htop:top的增强版,支持颜色和鼠标操作,更直观。kill:默认发送SIGTERM,kill -9强制终止。pkill:按进程名批量终止。
网络诊断命令
ping:测试连通性和延迟。netstat -tuln:查看TCP/UDP端口监听状态。ss -tuln:netstat的替代,输出更快,推荐使用。traceroute:追踪数据包经过的路由器,定位网络延迟点。curl:发送HTTP请求,检查Web服务响应。telnet IP PORT:测试端口是否开放。
磁盘与内存管理命令
df -h:查看磁盘分区使用情况。du -sh /:查看当前目录下各子目录大小。free -h:查看内存使用量,包括缓存。iostat -x 1:每1秒显示一次磁盘I/O详情。vmstat 1:每1秒显示系统进程、内存、CPU等状态。
文件与目录操作命令
ls -l:列出文件详细信息。cd:切换目录。pwd:显示当前路径。cp -r:复制目录。mv:移动或重命名。rm -rf:强制删除目录(谨慎使用)。find / -name ".log" -type f:查找文件。:快速查找文件(需先更新数据库)。locate
文本处理命令
grep:文本搜索,最常用。awk:强大的文本处理工具,可用于切割、统计。sed:流编辑器,可用于替换、删除行。cut:按列切割文本。sort:排序。uniq:去重并统计。wc:统计行数、字数。
系统服务管理命令
systemctl list-units --type=service:列出所有服务。systemctl status nginx:查看服务状态。systemctl start/stop/restart nginx:管理服务启停。systemctl enable/disable nginx:设置开机启动。journalctl -u nginx:查看服务日志。
硬件信息查看命令
lscpu:查看CPU架构、核心数、频率。lsblk:列出块设备(磁盘分区)信息。lspci:查看PCI设备列表。dmidecode:查看硬件DMI信息,如内存型号。ethtool eth0:查看网卡速率和双工模式。
这些命令构成了日常运维的武器库,但实际工作中,往往需要组合命令来解决具体问题,下面通过几个典型场景来演示常见故障的排查思路。
Linux服务器运维常用命令大全:场景化应用
CPU占用过高,如何快速定位?
- 使用
top -c查看具体进程,按P按CPU降序,观察异常进程。 - 使用
ps aux --sort=-%cpu | head -10快速列出CPU占用前十。 - 如果进程是Java应用,使用
jstack输出线程栈,或jstat -gcutil PID查看GC情况。 - 对于系统级热点,使用
perf top查看内核和用户空间的热点函数。 - 业内专家指出,CPU问题多数与业务代码逻辑或GC频繁有关,结合日志和代码分析是根本解决方法。
内存不足,怎么排查谁在占用?
- 先用
free -m确认内存总量、使用量、缓存和可用量,注意-/+ buffers/cache列反映真实可用内存。 - 使用
ps aux --sort=-%mem | head列出内存占用较大的进程。 - 使用
pmap -x PID查看进程详细内存映射,找出具体分配。 - 怀疑内存泄漏时,可以多次执行
cat /proc/meminfo | grep MemAvailable看趋势,或使用
valgrind工具检测。 - 如果内存被cache占用,可以用
sync && echo 3 > /proc/sys/vm/drop_caches释放,但这不是长久之计。
磁盘空间满了,但找不到大文件?
- 先用
df -h明确哪个分区满了。 - 使用
du -sh /path/ | sort -rh | head逐级查看目录占用。 - 使用
find / -type f -size +500M -exec ls -lh {} ;查找大于500M的文件。 - 如果删除后空间未释放,使用
lsof | grep deleted找到已删除但仍有进程打开的文件,重启对应进程即可释放空间。 - 定期使用
logrotate管理日志文件,避免日志占满磁盘。
磁盘I/O高,如何定位?
- 使用
top查看wa(iowait)百分比,如果很高说明磁盘I/O是瓶颈。 - 使用
iostat -x 1查看每个设备的%util、await、svctm等指标,判断磁盘性能。 - 使用
iotop查看哪个进程在频繁读写磁盘。 - 使用
lsof查看哪些文件被频繁读写。 - 使用
vmstat的bi/bo列查看块I/O总数。
网络连接异常,如何诊断?
- 使用
ping测试到目标IP的连通性和延迟,如果ping不通,检查网络接口或防火墙。 - 使用
traceroute查看路由路径,判断问题出在哪个节点。 - 使用
netstat -an | grep ESTABLISHED统计已建连接数,ss -s查看socket统计,判断是否有异常数量的TIME_WAIT或CLOSE_WAIT。 - 使用
tcpdump -i eth0 -nn -s0 port 80抓包,分析HTTP请求和响应。 - 对于DNS问题,使用
nslookup或dig查看解析结果,必要时修改/etc/resolv.conf。
服务启动失败,如何排查?
- 首先使用
systemctl status service查看状态和错误信息。 - 使用
journalctl -u service -xe查看详细日志。 - 检查配置文件:
nginx -t、sshd -t等测试语法。 - 查看端口是否被占用:
netstat -tuln | grep 端口。 - 查看服务依赖:
systemctl list-dependencies service。
日志分析常用命令组合
tail -f /var/log/syslog实时追踪日志,发现新错误。grep -i error /var/log/nginx/error.log | tail -50过滤错误日志。
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn统计访问次数最多的IP。sed -n '/2026-01-01 10:00/,/2026-01-01 11:00/p' app.log提取特定时间段的日志。- 使用
journalctl -u nginx.service --since "1 hour ago"查看服务日志,支持按时间、优先级过滤。
通过场景化学习,可以更快地将命令应用到实际工作中,但命令只是工具,理解系统原理才是根本。
掌握服务器运维常用命令,等于拥有了与系统直接对话的能力。 在日常工作中,多动手实践,将命令组合成解决特定问题的脚本,可以大幅提升效率,命令行不是冰冷的工具,而是你理解服务器运行状态的桥梁。
服务器运维常用命令问答
问题1:服务器运维最常用的命令是哪些?
对于大多数运维场景,以下命令是最高频使用的:top(系统监控)、ps(进程查看)、netstat/ss(网络状态)、df/du(磁盘空间)、free(内存)、find(文件查找)、grep(文本搜索)、awk(文本处理)、tail(日志查看)和curl(网络测试),掌握这些命令可以覆盖日常运维的大部分需求。
问题2:如何快速查看服务器日志并定位错误?
首先确定日志文件路径,通常位于/var/log/下,使用tail -200 /var/log/syslog查看最近日志,或grep -i error /var/log/syslog过滤错误,如果日志量巨大,使用less配合/error搜索关键字,对于systemd系统,推荐使用journalctl -u 服务名 --since "1 hour ago",输出格式更清晰,还可以组合使用awk、sort、uniq等命令进行统计。
问题3:服务器CPU飙高但找不到进程怎么办?
如果进程在top中看不到,可能是进程频繁起停,或者瞬间执行完毕,可以尝试使用ps -eo pid,pcpu,comm --sort=-pcpu | head -20持续观察,使用htop更直观,可以按F5显示树形结构,查看子进程,如果怀疑是内核线程或硬中断,使用top方式按1查看每个CPU负载,cat /proc/interrupts查看中断分布,对于更隐蔽的CPU问题,可以使用perf top或perf record采样分析热点函数。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/512061.html



