掌握这20个核心命令,能解决Linux运维中80%的日常监控、故障排查与自动化管理问题,是提升服务器稳定性的基础技能。
在服务器运维的实战场景中,面对成千上万行的日志和复杂的系统状态,新手往往感到无从下手,业内专家指出,高效的运维并非依赖复杂的脚本堆砌,而是对基础命令的精准调用,我们将这些高频使用的工具分为系统监控、文件管理、网络诊断、进程控制和日志分析五大类,帮助你构建清晰的运维知识体系。
系统资源监控:透视服务器健康状况
服务器是否卡顿,首先看资源负载,这部分命令用于快速判断CPU、内存和磁盘的使用情况,是故障排查的第一步。
CPU与内存实时状态查看
当系统响应变慢时,首先需要确认资源瓶颈。top 命令是动态查看进程和资源消耗的首选工具,按下 1 键可以展开查看每个CPU核心的使用情况,按 M 键可按内存使用率排序,按 P 键按CPU使用率排序,对于需要长期监控的场景,htop 提供了更友好的彩色界面和鼠标支持,但需提前安装。
查看内存具体分配时,free -h 命令比 free -m 更直观,它以人类可读的单位(GB/MB)显示总内存、已用内存和可用内存,若发现可用内存极低,需警惕内存泄漏或缓存占用过高。
磁盘空间与I/O性能
磁盘爆满是服务中断的常见原因。df -h 用于查看各挂载点的磁盘使用率,重点关注 根目录和 /var 日志目录的使用百分比,若发现某分区使用率接近 90%,应立即清理。
进一步排查磁盘读写瓶颈,使用 iostat -x 1,该命令每秒刷新一次,重点观察 %util 字段,若该值持续接近 100%,说明磁盘I/O已成为系统瓶颈,需检查是否有大量小文件读写或数据库慢查询。
文件与目录管理:高效处理数据
运维工作中,大量时间花在查找和整理文件上,掌握以下命令能显著减少重复劳动。
精准查找与内容检索
在海量文件中定位特定文件,find 是万能钥匙,查找最近7天内被修改过的 .log 文件,命令为:find /var/log -name “.log” -mtime -7,结合 -exec 参数,可以直接对查找结果执行操作,如删除旧日志:find /tmp -name “.tmp” -mtime +30 -exec rm -f {} ;。
在文件内部搜索关键错误信息,grep 必不可少,使用 grep -rn “Error” 可在当前目录及子目录中递归搜索包含 “Error” 的行,并显示行号,若需忽略大小写,添加 -i 参数;若需反向匹配(不显示包含该词的行),使用 -v 参数。
权限管理与批量操作
文件权限错误会导致服务无法启动。chmod 用于修改权限,chown 用于修改所有者,将 /var/www/html 目录的所有者改为 www-data 用户,命令为:chown -R www-data:www-data /var/www/html,递归参数 -R 确保子目录和文件同步生效。
批量重命名或移动文件时,mv 和 cp 结合通配符使用效率极高,但需注意,涉及重要数据时,建议先使用 ls 预览匹配结果,确认无误后再执行移动或复制操作,避免误删。
网络诊断:快速定位连通性问题
网络故障往往隐蔽且复杂,以下命令能帮你快速判断是本地配置问题还是远程服务问题。
连接测试与端口监听
测试网络连通性,ping 是最基础的命令,若 ping 不通,可能是防火墙拦截或路由问题,使用 telnet IP Port 或 nc -zv IP Port 可测试特定端口是否开放,若端口不通,但 ping 通,说明网络层正常,问题出在应用层或防火墙规则。
查看本机监听的端口及服务,netstat -tulnp 或 ss -tulnp,后者是前者的现代替代者,速度更快,输出结果中,
LISTEN 状态表示服务正在等待连接,ESTABLISHED 表示已建立连接,通过进程ID(PID)可关联到具体服务,便于排查异常连接。
路由追踪与DNS解析
当访问远程服务超时,使用 traceroute 或 mtr 追踪数据包路径。mtr 结合了 ping 和 traceroute 的功能,能实时显示每一跳的丢包率和延迟,是诊断网络抖动的神器。
检查域名解析是否正常,使用 dig 或 nslookup。dig example.com 返回详细的DNS记录,包括A记录、CNAME记录及TTL值,若解析结果与预期不符,可能是本地缓存问题,可尝试刷新DNS缓存或检查 /etc/resolv.conf 配置。
进程与系统管理:控制服务生命周期
服务的启停、重启及后台运行,是运维日常的核心操作。
进程控制与后台运行
查看特定服务的进程,使用 ps -ef | grep service_name,若需杀死卡死的进程,使用 kill -9 PID,但 kill -9 是强制终止,可能导致数据丢失,建议优先使用 kill -15(SIGTERM)优雅退出。
将任务放入后台运行,使用 nohup 或 screen。nohup command & 使命令在终端关闭后继续运行,并将输出重定向到 nohup.out,对于需要交互式操作的长期任务,screen 或 tmux 提供了会话保持功能,即使网络断开,任务仍在服务器后台运行,重新连接后可恢复界面。
系统启动与服务管理
在Systemd系统中,使用 systemctl 管理服务。systemctl status service 查看服务状态,systemctl restart service 重启服务,systemctl enable service 设置开机自启,若服务启动失败,使用 journalctl -u service -xe 查看详细日志,快速定位错误原因。
日志分析:从海量数据中挖掘线索
日志是故障排查的“黑匣子”,掌握高效的日志分析技巧至关重要。
实时追踪与关键字过滤
实时监控日志变化,使用 tail -f log_file,该命令会持续输出文件末尾的新增内容,适用于观察实时错误,若需同时监控多个日志文件,可使用 tail -f file1 file2。
结合 grep 和 awk 进行复杂过滤,统计Nginx访问日志中状态码为 502 的IP地址及其出现次数:awk ‘$9 == “502” {print $1}’ access.log | sort | uniq -c | sort -nr,这条命令能迅速定位引发后端错误的客户端IP,为封禁或优化提供依据。
日志轮转与清理
日志文件无限增长会耗尽磁盘空间。logrotate 是Linux标准的日志轮转工具,配置文件位于 /etc/logrotate.d/,通过配置 size 和 rotate 参数,可自动压缩旧日志并删除过期文件,手动触发轮转可使用 logrotate -f /etc/logrotate.conf。
常见运维场景Q&A
Linux运维常用的20个命令有哪些?
核心命令包括:top、htop、free、df、iostat、find、grep、chmod、chown、ps、kill、nohup、systemctl、netstat、ss、ping、telnet、nc、dig、tail,这些命令覆盖了监控、文件、网络、进程和日志五大领域。
如何排查Linux服务器CPU占用过高的问题?
首先使用 top 命令查看哪个进程占用CPU最高,记录其PID,然后使用 ps -p PID -o %cpu,%mem,cmd 获取更详细信息,若进程为Java应用,可使用 jstack PID 导出线程栈,分析是否存在死锁或无限循环,若进程为系统进程,检查是否有异常定时任务或挖矿病毒。
Linux运维中如何快速定位磁盘空间不足的原因?
先使用 df -h 确定哪个分区已满,然后进入该分区根目录,使用 du -sh | sort -rh 查看各目录大小,定位大文件所在目录,若发现大文件已被删除但空间未释放,可能是进程仍持有文件句柄,使用 lsof | grep deleted 查找并重启相关服务以释放空间。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/418136.html



