朔州市网站建设_网站建设公司_跨域_seo优化
2026/1/1 4:10:33 网站建设 项目流程

在 Linux 运维中,有些指令使用频率是很高的,而我们这里指的“万能指令”不是说能解决所有的问题,而是这些指令是运维的基石,能覆盖 80% 日常场景,通用性强、衍生用法丰富,而非单一功能全覆盖。

一、系统监控与进程管理:top(实时全能监控)


核心定位:

运维排查问题的 “第一视角”,实时查看CPU、内存、负载、进程状态,快速定位资源占用异常(如高 CPU 进程、内存泄漏)。

万能用法(高频参数 + 场景):
  1. 基础监控:直接输入top,终端会实时刷新(默认 3 秒),关键信息解读:

  • 第一行:系统时间、运行时长、登录用户数、负载平均值(load average: 0.05, 0.10, 0.08→ 1/5/15 分钟负载,一般不超过 CPU 核心数)。

  • 第二行:进程总数(total)、运行中(running)、睡眠(sleeping)、僵尸进程(zombie)。

  • 第三行:CPU 使用率(us用户态、sy内核态、id空闲,us+sy过高说明 CPU 压力大)。

  • 第四行:内存使用率(total总内存、used已用、free空闲、buff/cache缓存,重点看available(可用内存))。

  • 精准过滤

    • top -p 1234

      :只监控 PID 为 1234 的进程(排查特定服务,如 Java、Nginx)。

    • top -u root

      :只显示 root 用户的进程(排查特权用户异常进程)。

    • top -d 1

      :每秒刷新一次(默认 3 秒,快速监控瞬时变化)。

  • 排序操作(交互快捷键)

    • P:按 CPU 使用率排序(找高 CPU 进程)。

    • M:按内存使用率排序(找高内存进程)。

    • T:按进程运行时间排序(找长期占用资源的进程)。

    • k:输入 PID 后杀进程(无需单独敲kill,应急排查效率高)。

    延伸技巧:
    • 增强版工具:htoptop的可视化升级版,支持鼠标操作、颜色区分,需手动安装yum install htop -y)。

    • 批量杀进程:top中按Shift+F筛选进程(如按用户、CPU),再按k批量终止。

    二、日志 / 文本搜索:grep(文本过滤神器)


    核心定位:

    运维排查问题的 “眼睛”,用于搜索日志、配置文件中的关键信息(如错误日志、关键字匹配),配合管道(|)可实现复杂过滤。

    万能用法(高频参数 + 场景):
    1. 基础搜索

    • grep "error" app.log

      :从app.log中搜索包含 “error” 的行(区分大小写)。

    • grep -i "error" app.log

      :忽略大小写(匹配 Error、ERROR、error)。

    • grep -n "error" app.log

      :显示匹配行的行号(方便定位日志上下文)。

  • 高级过滤

    • grep -E "error|warn" app.log

      :匹配 “error” 或 “warn”(-E启用正则表达式,等价于egrep)。

    • grep -v "info" app.log

      :反向匹配(排除包含 “info” 的行,只看错误 / 警告)。

    • grep -r "listen 80" /etc/

      :递归搜索/etc目录下所有文件,查找包含 “listen 80” 的配置(排查端口配置)。

  • 管道组合(运维高频)

    • tail -f app.log | grep "error"

      :实时监控日志(tail -f)并过滤错误信息(排查线上实时报错)。

    • ps aux | grep java

      :筛选所有 Java 进程(配合ps排查服务是否启动)。

    • cat /var/log/messages | grep "eth0" | head -10

      :从系统日志中取前 10 条网卡 eth0 相关记录。

    延伸技巧:
    • 匹配上下文:grep -C 5 "error" app.log(显示匹配行前后 5 行,-A 5后 5 行,-B 5前 5 行)。

    • 正则精准匹配:grep -E "^[0-9]{1,3}\.[0-9]{1,3}" access.log(匹配日志中的 IP 地址)。

    三、端口 / 进程 / 文件占用:lsof(列出打开的文件)


    核心定位:

    “万能排查工具”,Linux 中 “一切皆文件”,lsof可查询端口占用、进程打开的文件、文件被哪个进程锁定,解决运维中 “端口冲突”“文件删不掉” 等高频问题。

    万能用法(高频参数 + 场景):
    1. 端口占用排查(运维 Top1 场景)

    • lsof -i :8080

      :查询 8080 端口被哪个进程占用(解决 “启动服务提示端口被占用”)。

    • lsof -i tcp:80

      :只查询 TCP 协议的 80 端口(区分 TCP/UDP)。

    • lsof -i @192.168.1.100:3306

      :查询连接到指定 IP: 端口的进程(排查数据库连接)。

  • 进程关联文件

    • lsof -p 1234

      :查看 PID 为 1234 的进程打开的所有文件(如日志、配置、网络连接,排查进程依赖)。

    • lsof -u nginx

      :查看 nginx 用户打开的所有文件(排查权限问题)。

  • 文件占用排查

    • lsof /var/log/messages

      :查询哪个进程正在读写/var/log/messages(解决 “文件删不掉提示被占用”)。

    • lsof +D /data

      :递归查询/data目录下被打开的文件(排查目录占用)。

    延伸技巧:
    • 快速杀占用端口的进程:lsof -t -i :8080 | xargs kill -9-t只输出 PID,批量终止)。

    • 替代netstatlsof -i等价于netstat -tulnp(查询所有监听端口,netstat已逐步被ss替代,但lsof更全能)。

    四、为什么这三条是 “万能”?


    覆盖核心场景

    top(监控)→grep(排查)→lsof(定位),形成运维问题排查的 “闭环链路”。

    1. 通用性极强

      :跨 Linux 发行版(CentOS、Ubuntu、Debian),无需额外安装(默认自带)。

    2. 衍生用法无限

      :配合管道(|)、其他指令(pstailkill)可实现复杂需求,比如:

    • 排查高 CPU + 日志报错:top -b -n 1 | grep high | awk '{print $1}' | xargs lsof -p | grep log

    • 实时监控端口连接:watch -n 1 lsof -i :80(每秒刷新 80 端口连接状态)。

    补充:运维 “第四万能指令”ss(网络状态查询)

    若需侧重网络排查,ss可替代netstat,比lsof更轻量、速度更快:

    • ss -tuln

      :查看所有监听的 TCP/UDP 端口(tTCP、uUDP、l监听、n数字显示端口)。

    • ss -an | grep :80

      :查询 80 端口的所有连接状态。

    不想错过文章内容?读完请点一下“在看,加个关注”,您的支持是我创作的动力

    期待您的一键三连支持(点赞、在看、分享~)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询