Linux调试命令速查之Java/微服务必备分享

 更新时间:2025年09月15日 09:29:47   作者:刘一说  
列举了Linux下常用调试命令,涵盖Java应用、SpringBoot、Nacos等微服务场景的排查与监控,包括日志查看、进程管理、网络测试、系统资源监控等功能,是运维与开发必备的调试工具

Linux 上常用的调试命令清单Java 应用、Spring Boot、Nacos、微服务等场景的排查与监控作用说明实用示例

Linux 常用调试命令速查表

命令作用示例
tail -f实时查看文件末尾(常用于日志监控)tail -f /var/log/app.log
grep搜索文本内容grep "ERROR" app.log
ps查看进程状态ps aux | grep java
top / htop实时查看系统资源使用(CPU、内存)top
netstat / ss查看网络连接和端口监听ss -tulnp | grep :8080
lsof查看文件或端口被哪个进程占用lsof -i :8848
curl发送 HTTP 请求(测试接口)curl http://localhost:8080/health
telnet / nc测试端口连通性telnet 10.135.10.33 8848
find查找文件find / -name "*.log" 2>/dev/null
du / df查看磁盘使用情况df -h, du -sh /home
journalctl查看 systemd 服务日志journalctl -u myapp.service -f
ping测试网络连通性ping baidu.com
vmstat / iostat查看系统性能(CPU、IO)vmstat 1
strace跟踪系统调用(高级调试)strace -p 1234
tcpdump抓包分析网络流量(高级)tcpdump -i any port 8848

详细说明与实战示例

1.tail -f filename

作用:实时查看文件新增内容,常用于日志监控。

# 实时查看最后 10 行日志
tail -f app.log

# 查看最后 50 行并实时跟踪
tail -n 50 -f app.log

# 跟踪多个日志文件
tail -f *.log

适用场景:观察 Spring Boot、Nacos 启动日志。

2.grep "关键字" 文件

作用:搜索日志中的特定内容(如 ERROR、Timeout)。

# 查找所有 ERROR 日志
grep "ERROR" app.log

# 忽略大小写 + 显示行号
grep -in "error" app.log

# 结合 tail 实时过滤
tail -f app.log | grep "DataSource"

适用场景:快速定位启动失败原因。

3.ps aux | grep 进程名

作用:查看正在运行的进程。

# 查看所有 Java 进程
ps aux | grep java

# 查看 Nacos 进程
ps aux | grep nacos

# 只显示 PID 和命令
ps -ef | grep java | grep -v grep

适用场景:确认服务是否在运行。

4.top/htop

作用:实时查看 CPU、内存占用。

top
  • P:按 CPU 排序
  • M:按内存排序
  • q:退出

安装 htop(更友好):

sudo apt install htop  # Ubuntu/Debian
sudo yum install htop  # CentOS
htop

5.ss -tulnp | grep :端口

作用:查看端口监听和占用情况(替代 netstat)。

# 查看 8848 端口是否被监听
ss -tulnp | grep :8848

# 查看所有监听端口
ss -tuln

# 参数说明:
# -t: TCP
# -u: UDP
# -l: 监听中
# -n: 数字显示(不解析服务名)
# -p: 显示进程

6.lsof -i :端口

作用:查看哪个进程占用了某个端口。

# 查看 8080 端口被谁占用
lsof -i :8080

# 输出示例:
# COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
# java    1234   root   99u  IPv6 123456      0t0  TCP *:8080 (LISTEN)

7.curl URL

作用:发送 HTTP 请求,测试接口是否正常。

# 测试 Nacos 是否健康
curl http://10.135.10.33:8848/nacos/v1/console/health

# 带 header 请求
curl -H "Content-Type: application/json" -X POST -d '{"name":"test"}' http://localhost:8080/api/test

# 静默输出(-s)+ 返回状态码(-w)
curl -s -w "%{http_code}\n" -o /dev/null http://localhost:8080/health

8.telnet IP 端口/nc -zv IP 端口

作用:测试网络和端口是否可达。

# 测试 Nacos HTTP 端口
telnet 10.135.10.33 8848

# 测试 gRPC 端口
nc -zv 10.135.10.33 9848

# 输出:
# Connection to 10.135.10.33 8848 port [tcp/*] succeeded!

如果提示 command not found,安装:

sudo apt install telnet netcat  # Ubuntu
sudo yum install telnet nc      # CentOS

9.find / 路径 -name "文件名"

作用:查找文件位置。

# 查找所有 .log 文件
find / -name "*.log" 2>/dev/null

# 查找 nacos 的 startup.sh
find / -name "startup.sh" -path "*/nacos/bin/startup.sh" 2>/dev/null

# 查找 application.yml
find / -name "application.yml" 2>/dev/null

2>/dev/null 表示忽略权限错误。

10.df -h/du -sh 目录

作用:查看磁盘使用情况。

# 查看磁盘整体使用
df -h

# 查看某个目录大小
du -sh /home
du -sh /var/log

11.journalctl -u 服务名 -f

作用:查看 systemd 服务日志(如果服务是用 systemctl 管理的)。

# 查看 myapp 服务日志
journalctl -u myapp.service -f

# 查看最近 100 行
journalctl -u myapp.service -n 100

# 查看今天日志
journalctl -u myapp.service --since today

12.ping 目标

作用:测试网络连通性。

ping baidu.com
ping 10.135.10.33

13.vmstat 1/iostat

作用:查看系统性能(CPU、内存、IO)。

# 每秒刷新一次
vmstat 1

# 安装 sysstat 后使用 iostat
iostat -x 1

14.strace -p PID

作用:跟踪进程的系统调用(高级调试,定位卡顿、死锁)。

# 跟踪 Java 进程系统调用
strace -p 1234

# 记录到文件
strace -o trace.log -p 1234

15.tcpdump -i any port 端口

作用:抓包分析网络通信(高级)。

# 抓取 8848 端口的流量
tcpdump -i any port 8848 -n

# 保存到文件
tcpdump -i any port 8848 -w nacos.pcap

用 Wireshark 打开 .pcap 文件分析。

推荐组合拳(实战排查流程)

当你遇到“服务启动失败”时,可以按顺序执行:

# 1. 看日志
tail -f logs/app.log | grep -i error

# 2. 查进程
ps aux | grep java

# 3. 查端口
ss -tulnp | grep :8080

# 4. 测试连通性
telnet 10.135.10.33 8848

# 5. 查配置文件
find / -name "application.yml" 2>/dev/null

# 6. 查磁盘空间
df -h

总结

这些命令是 运维、开发、调试的必备技能

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux挂载硬盘并设置开机自动挂载的实现步骤

    Linux挂载硬盘并设置开机自动挂载的实现步骤

    本文介绍了在Linux系统下挂载硬盘的概念和步骤,并讲解了开机自动挂载的方法,文中通过代码介绍的非常详细,对大家的学习或工作有一定帮助,需要的朋友可以参考下
    2024-08-08
  • Apache实现本地建立泛域名虚拟主机的方法

    Apache实现本地建立泛域名虚拟主机的方法

    这篇文章主要介绍了Apache实现本地建立泛域名虚拟主机的方法,简单介绍了Apache泛域名虚拟主机的具体创建步骤与相关技巧,需要的朋友可以参考下
    2016-05-05
  • 关于linux权限s权限和t权限详解

    关于linux权限s权限和t权限详解

    本文介绍了linux系统内的2个特殊权限s权限和t权限,简单易懂,大家可以详细看看
    2018-03-03
  • 如何实现在Linux上执行exe文件

    如何实现在Linux上执行exe文件

    这篇文章主要介绍了在Linux上执行exe文件实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • linux下mysql数据库的操作的方法

    linux下mysql数据库的操作的方法

    下面小编就为大家带来一篇linux下mysql数据库的操作的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Linux指定端口连接Redis服务器的步骤详解

    Linux指定端口连接Redis服务器的步骤详解

    Redis是一种流行的开源内存数据库,常用于缓存、消息队列等场景,在Linux系统上,连接Redis服务器需要使用客户端工具,在本篇博文中,我们将介绍如何使用Linux指定端口连接Redis,需要的朋友可以参考下
    2024-09-09
  • Linux中Centos7搭建Hadoop服务步骤

    Linux中Centos7搭建Hadoop服务步骤

    本篇文章给大家详细讲述了Linux中Centos7搭建Hadoop服务步骤,对此有需要的读者朋友们可以参考下。
    2018-02-02
  • Linux之sed命令(包含MacOS的用法)

    Linux之sed命令(包含MacOS的用法)

    文章介绍了Linux下的sed流编辑器功能及在MacOS中的兼容性问题,指出直接使用会导致报错,推荐安装GNU sed解决,同时概述了sed的基本用法,包括追加、修改、删除等文本处理操作,适用于多种场景
    2025-09-09
  • 利用lynis如何进行linux漏洞扫描详解

    利用lynis如何进行linux漏洞扫描详解

    这篇文章主要给大家介绍了关于利用lynis如何进行linux漏洞扫描的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • linux下判断文件和目录是否存在的方法(总结)

    linux下判断文件和目录是否存在的方法(总结)

    下面小编就为大家带来一篇linux下判断文件和目录是否存在的方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论