日常工作常用的命令(Linux+JDK)
日常开发工作中不可避免的需要用到一些Linux命令本文着重梳理一些开发工作中的Linux命令。一、进程相关1.查看进程# 查找java进程 ps -ef | grep java ps aux | grep java # 更推荐jpsJDK自带必须配置JAVA_HOME jps -l # 显示主类全路径 jps -v # 显示JVM启动参数 jps -m # 显示main方法入参2.实时进程资源占用top # 全局资源视图 top -Hp pid # 【重中之重】查看Java进程内部线程排查CPU飙升 # shiftp 按CPU排序shiftm 按内存排序场景Java CPU 100%top -Hp pid 找到占用高的线程 tid转 16 进制配合 jstack 定位代码htop # 美化版top需要安装直观好用3.JDK线上诊断命令Java Linux 组合必杀技jstack pid # 打印线程栈排查死锁、阻塞、线程耗尽 jmap -heap pid # 查看堆内存配置、新生代老年代使用情况 jmap -dump:formatb,fileheap.hprof pid # dump堆快照生产慎用会STW jstat -gc pid 1000 # 每秒打印GC指标观察YGC/FGC、耗时4.进程操作kill -9 pid # 强制杀死尽量优先 kill pid 优雅关闭 pkill -f java # 匹配字符串杀进程谨慎使用二、日志分析命令日常定位异常、报错、接口日志Java 项目日志一般info.log、error.log、springboot 输出日志文件1.实时查看日志tail -f xxx.log # 实时跟踪日志 tail -n 500 -f xxx.log # 最后500行实时刷新 tail -F xxx.log # 文件切割logrotate也能持续监听线上首选2.搜索日志搜索日志grep 三剑客# 基础搜索 grep NullPointerException xxx.log grep -i timeout xxx.log # -i 忽略大小写 grep -A10 -B10 Exception log # 匹配行前后各10行 grep -C15 ERROR log # 前后各15行 # 多关键词、排除日志 grep ERROR xxx.log | grep -v heartbeat # 过滤掉心跳无关日志3.查看日志less xxx.log # less常用快捷键 # /关键词 向下搜索?关键词向上搜索n下一个匹配G跳到末尾4.awk/sed 统计日志高级开发必备统计接口耗时、报错数量# 统计一小时内报错行数 grep ERROR app.log | wc -l # awk示例统计接口平均耗时假设日志打印costxxx grep request cost app.log | awk -Fcost {sum$2;count} END{print sum/count}5.日志时间范围筛选线上查指定时间段报错sed -n /2026-08-16 10:00:00/,/2026-08-16 10:30:00/p app.log三、网络排查Java 接口超时、连接池爆满、Dubbo/HTTP 不通、端口占用1.端口占用排查# centos7 ss -tulnp | grep 8080 # 老版本 netstat -tulnp | grep 8080 # 查询哪个进程占用端口 lsof -i :80802.连通性测试ping shturl.cc/g5Qbh # 测试端口通不通curl通用无需额外安装 curl -v http://127.0.0.1:8080/health # 单纯探测端口 telnet ip port nc -zv ip port3.路由、延迟、丢包排查traceroute ip mtr ip # 结合ping路由排查网络抖动强烈推荐4.TCP 连接状态排查连接泄露、HttpClient/Dubbo 连接不释放# 统计各个tcp状态数量 ESTABLISHED/TIME_WAIT ss -an | awk /^TCP/ {print $5} | cut -d: -f2 | sort | uniq -c ss -s # 汇总TCP整体连接统计5.防火墙# centos systemctl status firewalld firewall-cmd --list-ports # 临时关闭测试环境 systemctl stop firewalld四、文件与目录操作上传 jar、解压、磁盘爆满排查1.磁盘空间经常遇到日志打满磁盘df -h # 查看磁盘整体使用率 du -sh * # 当前目录各个文件夹大小 du -sh /home/app/log # 指定目录总大小 du -h --max-depth1 # 只展示一级目录快速定位大文件夹坑rm 删除大日志后磁盘不释放进程还持有文件句柄需要重启进程或者清空文件 app.log2.文件传输# 服务器之间拷贝 scp app.jar root192.168.1.100:/home/app/ # 生产优先 rsync增量传输适合同步日志/配置 rsync -avz xxx rootip:/path3.压缩解压tar -zcvf package.tar.gz dir/ # 压缩 tar -zxvf package.tar.gz # 解压 unzip xxx.zip4.文件权限chmod 755 startup.sh chown -R app:app /home/app # 修改目录归属普通用户运行Java程序5.查找文件find /home/app -name *.jar find . -name *.log -mtime 7 # 查找7天前日志用于清理脚本五、系统基础信息命令快速了解服务器环境uname -a # 内核版本 cat /etc/os-release # 系统版本CentOS/Rocky/Ubuntu free -h # 内存使用buff/cache区分可用内存 uptime # 机器负载、运行时间 hostname # 主机名 date # 系统时间Java时区不一致经常踩坑六、服务、后台运行 Java 程序 Shell 脚本常用1.后台启动 jar传统方式生产一般搭配 systemd/supervisor# nohup后台启动输出日志 nohup java -jar app.jar app.log 21 # 后台运行21 错误流重定向标准输出2. systemd现代服务器主流管理 Java 应用systemctl start app systemctl stop app systemctl restart app systemctl status app journalctl -u app -f # 实时查看服务日志 journalctl -u app --since 2026-08-16 10:00:00七、高频经典排查场景命令组合场景 1Java 进程 CPU 飙高① top找到应用 PID② top -Hp ${pid}找到高负载线程 TID③ printf %x\n ${tid}转为 16 进制④ jstack ${pid} stack.txt⑤ grep 十六进制tid stack.txt定位代码场景 2磁盘占满df -h→cd 挂载点→du -sh *找到超大日志文件场景 3接口大量超时怀疑端口 / 连接耗尽ss -an | grep :8080查看连接数、TIME_WAIT 数量场景 4快速统计报错量grep ERROR app.log | wc -l八、系统LInux命令 vs JDK自带命令1.操作系统命令特点作用对象是操作系统层面的进程、线程、文件、网络看不懂 JVM 内部细节。# 进程查看类 top # 系统全局资源、进程CPU/内存 top -Hp PID # 查看进程内所有线程排查Java CPU高占用必备 ps -ef、ps aux # 列出系统所有进程 pstree # 进程树 # 网络类 netstat、ss、lsof ping、mtr、traceroute curl、nc # 文件/磁盘 df、du、find、less、tail、grep、awk、sed # 系统信息 free -h、uptime、uname、hostname kill、killall # 发送信号终止进程2.JDK自带命令位于$JAVA_HOME/binJDK 8jps # Java进程状态工具替代 ps -ef | grep java jstack # 打印JVM线程栈、死锁、阻塞线程 jmap # 堆内存查看、dump堆快照 jstat # GC实时统计、类加载、编译监控 jinfo # 查看/动态修改JVM启动参数 jhat # 离线分析hprof堆dump文件JDK9 OpenJDK11 很多发行版把这些工具放到 jcmd 统一入口jcmd pid VM.flags # 等价jinfo jcmd pid Thread.print # 等价jstack jcmd pid GC.heap_dump file.hprof # 等价jmap dump jcmd pid GC.stat # 等价jstat -gc3.小结命令归属核心用途top、ps、lsof、ss、df、duLinux 系统命令服务器资源、进程、网络、磁盘宏观jps、jstack、jmap、jstat、jinfoJDK 自带JVM 内部线程、堆、GC、JVM 参数微观jcmdJDK9 统一工具入口整合上面绝大多数 JDK 诊断功能

相关新闻

最新新闻

日新闻

周新闻

月新闻