Java后端必会Linux常用命令之一篇搞懂日志、进程、端口、部署

 更新时间:2026年05月18日 11:01:00   作者:T1yCcc_  
掌握Linux命令行是开发者的必备技能,本文用最简方式梳理高频基础命令,每个命令配常用示例,适合新手快速查阅,这篇文章主要介绍了Java后端必会Linux常用命令之一篇搞懂日志、进程、端口、部署的相关资料,需要的朋友可以参考下

前言

对于 Java 后端开发来说,Linux 是绕不开的。

平时我们写完 Spring Boot 项目之后,最终大概率还是要部署到 Linux 服务器上。项目上线之后,如果接口报错、服务启动失败、端口被占用、日志文件太大、磁盘空间不足,基本都需要通过 Linux 命令去排查。

所以 Linux 命令不是运维才需要会,Java 后端也必须掌握一些高频命令。

这篇文章主要总结后端开发中最常用的一些 Linux 命令,不追求大而全,重点放在实际开发和部署场景中怎么用。

一、目录和文件相关命令

1. 查看当前目录

pwd

pwd 用来查看当前所在目录。

比如登录服务器之后,不确定自己在哪个路径下,就可以先执行:

pwd 

2. 查看目录文件

ls
ls -l
ls -lh
ls -a

常用说明:

ls:查看当前目录下的文件

ls -l:以列表形式查看文件详情

ls -lh:以更友好的方式显示文件大小

ls -a:查看所有文件,包括隐藏文件

平时后端开发最常用的是:

ls -lh 

比如查看 jar 包、日志文件、配置文件大小时非常方便。

3. 切换目录

cd /opt
cd /opt/app
cd ..
cd ~

说明:

cd /opt:进入 /opt 目录

cd ..:返回上一级目录

cd ~:回到当前用户家目录

后端项目一般可能部署在这些目录:

/opt/app
/usr/local/app
/home/app

4. 创建目录

mkdir logs
mkdir -p /opt/app/logs

mkdir 用来创建目录。

如果要一次性创建多级目录,可以使用:

mkdir -p /opt/app/logs

5. 创建文件

touch app.log
touch application.yml

touch 可以用来创建一个空文件。

比如创建日志文件:

touch app.log

6. 复制文件

cp app.jar /opt/app/
cp application.yml /opt/app/config/

复制目录时需要加 -r:

cp -r logs /opt/backup/

7. 移动或重命名文件

mv app.jar /opt/app/
mv old.log new.log

mv 既可以移动文件,也可以重命名文件。

比如把日志文件重命名:

mv nohup.out nohup-2026-05-08.out

8. 删除文件或目录

rm app.log
rm -rf logs/

注意:

rm -rf

这个命令要谨慎使用,尤其不要在根目录或者不确定的目录下乱执行。

二、查看文件内容

1. 查看整个文件

cat app.log

cat 适合查看内容比较少的文件。

如果日志文件很大,不建议直接使用 cat,容易刷屏。

2. 分页查看文件

less app.log

less 适合查看大文件。

常用操作:

空格:向下翻页

b:向上翻页

/关键字:搜索关键字

q:退出

3. 查看文件前几行

head app.log
head -n 100 app.log

查看前 100 行:

head -n 100 app.log

4. 查看文件最后几行

tail app.log
tail -n 100 app.log

查看最后 100 行日志:

tail -n 100 app.log

5. 实时查看日志

tail -f app.log
tail -f nohup.out

这是后端开发最常用的命令之一。

比如 Spring Boot 项目启动后,可以通过下面命令实时查看日志:

tail -f nohup.out

如果线上接口报错,也可以实时观察日志输出:

tail -f app.log

三、搜索日志和关键字

1. grep 搜索关键字

grep "ERROR" app.log
grep "Exception" app.log
grep "NullPointerException" app.log

比如排查空指针异常:

grep "NullPointerException" app.log

2. 显示行号

grep -n "ERROR" app.log

-n 可以显示匹配内容所在的行号。

3. 忽略大小写

grep -i "error" app.log

4. 查看关键字前后几行

grep -C 5 "Exception" app.log
grep -A 5 "Exception" app.log
grep -B 5 "Exception" app.log

说明:

-C 5:显示匹配行前后 5 行

-A 5:显示匹配行后 5 行

-B 5:显示匹配行前 5 行

排查异常时很有用:

grep -C 10 "Exception" app.log

四、进程相关命令

1. 查看所有进程

ps -ef

2. 查看 Java 进程

ps -ef | grep java

这是部署 Java 项目时非常常用的命令。

比如查看 Spring Boot 项目是否正在运行:

ps -ef | grep app.jar

3. 使用 jps 查看 Java 进程

ps -ef

jps 是 JDK 自带的工具,可以查看 Java 进程。

jps -l

可以显示完整类名或 jar 包路径。

4. 结束进程

kill 进程ID kill -9 进程ID

一般可以先使用:

kill 进程ID

如果进程无法正常结束,再使用:

kill -9 进程ID

比如:

kill -9 12345

五、端口相关命令

1. 查看端口占用

netstat -tunlp

查看某个端口是否被占用:

netstat -tunlp | grep 8080

2. 使用 lsof 查看端口

lsof -i:8080

比如 Spring Boot 启动失败,提示 8080 端口被占用,可以执行:

lsof -i:8080

然后根据查到的 PID 结束进程:

kill -9 进程ID

3. 使用 ss 查看端口

ss -tunlp ss -tunlp | grep 8080

有些 Linux 系统中,ss 比 netstat 更推荐使用。

六、Spring Boot 项目部署常用命令

1. 前台启动

java -jar app.jar

这种方式启动后,终端关闭,程序也会停止。

所以实际部署时一般不这么用。

2. 后台启动

nohup java -jar app.jar > nohup.out 2>&1 &

这是非常常见的 Spring Boot 后台启动命令。

解释一下:

nohup:表示不挂断运行

java -jar app.jar:启动 jar 包

> nohup.out:标准输出写入 nohup.out

2>&1:错误输出也写入 nohup.out

&:后台运行

启动后可以查看日志:

tail -f nohup.out

3. 指定配置文件启动

nohup java -jar app.jar --spring.profiles.active=prod > nohup.out 2>&1 &

表示使用 prod 环境配置启动。

4. 指定端口启动

nohup java -jar app.jar --server.port=8081 > nohup.out 2>&1 &

5. 指定 JVM 参数启动

nohup java -Xms512m -Xmx1024m -jar app.jar > nohup.out 2>&1 &

说明:

-Xms512m:初始堆内存 512MB

-Xmx1024m:最大堆内存 1024MB

七、系统资源查看命令

1. 查看 CPU 和内存占用

top

top 可以实时查看系统资源占用情况。

常见关注:

CPU 使用率

内存使用率

系统负载

哪个进程占用资源高

2. 查看内存

free -h

-h 表示用更友好的单位显示,比如 GB、MB。

3. 查看磁盘空间

df -h

如果项目日志写不进去,或者服务器异常,磁盘空间是必须排查的一项。

4. 查看目录大小

du -sh *
du -sh logs/

查看当前目录下各文件和目录大小:

du -sh *

查看 logs 目录大小:

du -sh logs/

5. 查看系统负载

uptime

可以查看系统运行时间和平均负载。

八、压缩和解压命令

1. tar.gz 解压

tar -zxvf app.tar.gz

2. tar.gz 压缩

tar -zcvf logs.tar.gz logs/

比如把日志目录压缩:

tar -zcvf logs-2026-05-08.tar.gz logs/

3. zip 解压

unzip dist.zip

4. zip 压缩

zip -r logs.zip logs/

九、文件上传和下载

1. scp 上传文件

scp app.jar root@服务器IP:/opt/app/

比如:

scp app.jar root@192.168.1.100:/opt/app/

2. scp 下载文件

scp root@服务器IP:/opt/app/app.log ./

比如下载服务器日志:

scp root@192.168.1.100:/opt/app/app.log ./

3. 上传目录

scp -r dist/ root@服务器IP:/opt/app/

十、权限相关命令

1. 修改文件权限

chmod 755 start.sh chmod +x start.sh

如果 shell 脚本无法执行,可以加执行权限:

chmod +x start.sh

然后执行:

./start.sh

2. 修改文件所属用户

chown appuser:appuser app.jar

表示把 app.jar 的所属用户和用户组改为 appuser。

十一、常见后端排查场景

场景一:接口报 500,怎么查?

先看日志:

tail -f app.log

搜索异常:

grep -C 10 "Exception" app.log

如果是空指针:

grep -C 10 "NullPointerException" app.log

场景二:Spring Boot 项目启动失败

先看启动日志:

tail -f nohup.out

查看 Java 进程:

ps -ef | grep java

查看端口是否被占用:

lsof -i:8080

如果端口被占用,可以结束对应进程:

kill -9 进程ID

场景三:服务器磁盘满了

查看磁盘空间:

df -h

查看当前目录下文件大小:

du -sh *

一般日志目录可能比较大:

du -sh logs/

可以压缩历史日志:

tar -zcvf logs-backup.tar.gz logs/

场景四:项目突然变慢

查看系统资源:

top

查看内存:

free -h

查看磁盘:

df -h

查看 Java 进程:

ps -ef | grep java

十二、常用命令速查表

场景命令
查看当前目录pwd
查看文件列表ls -lh
切换目录cd /opt/app
创建目录mkdir -p logs
创建文件touch app.log
复制文件cp app.jar /opt/app/
移动文件mv app.jar /opt/app/
删除文件rm app.log
实时看日志tail -f app.log
搜索异常grep -C 10 "Exception" app.log
查看 Java 进程`ps -ef
查看端口lsof -i:8080
杀掉进程kill -9 进程ID
查看内存free -h
查看磁盘df -h
查看目录大小du -sh *
后台启动 jarnohup java -jar app.jar > nohup.out 2>&1 &
解压 tar.gztar -zxvf app.tar.gz
压缩目录tar -zcvf logs.tar.gz logs/
上传文件scp app.jar root@服务器IP:/opt/app/

总结

Linux 命令对于 Java 后端开发来说非常重要。

实际工作中,我们不一定要记住所有 Linux 命令,但是一些高频命令必须熟悉,比如文件操作、日志查看、进程管理、端口排查、项目部署、磁盘和内存查看、权限修改。

尤其是部署 Spring Boot 项目、查看线上日志、排查端口占用、分析服务器资源这些场景,基本每天都会遇到。

所以学习 Linux 命令,不是为了背命令,而是为了在项目出问题时,能够快速定位问题、解决问题。

到此这篇关于Java后端必会Linux常用命令之一篇搞懂日志、进程、端口、部署的文章就介绍到这了,更多相关Java后端Linux常用命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现n位数字的全排列

    Java实现n位数字的全排列

    今天小编就为大家分享一篇关于Java实现n位数字的全排列,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • java9迁移注意问题总结

    java9迁移注意问题总结

    本篇文章给大家详细整理了java9迁移注意的问题,希望我们整理的内容能够帮助到大家。
    2018-02-02
  • java向上转型发生的时机知识点详解

    java向上转型发生的时机知识点详解

    在本篇文章里小编给大家整理分享的是关于java向上转型发生的时机知识点内容,有兴趣的读者们可以参考下。
    2021-05-05
  • 浅谈Java并发 J.U.C之AQS:CLH同步队列

    浅谈Java并发 J.U.C之AQS:CLH同步队列

    AQS内部维护着一个FIFO队列,该队列就是CLH同步队列。下面小编来简单介绍下这个队列
    2019-05-05
  • net.sf.json.JSONObject 为null 的判断方法

    net.sf.json.JSONObject 为null 的判断方法

    下面小编就为大家带来一篇net.sf.json.JSONObject 为null 的判断方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • java json不生成null或者空字符串属性(详解)

    java json不生成null或者空字符串属性(详解)

    下面小编就为大家带来一篇java json不生成null或者空字符串属性(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Java Web Listener实现事件监听与处理

    Java Web Listener实现事件监听与处理

    Java Web开发中的Listener是一种事件机制,通过监听Web应用程序的事件,实现对事件的处理,从而实现更加灵活和高效的应用程序开发。Listener能够监听的事件包括应用程序启动和关闭、Session创建和销毁、请求和响应对象的创建和销毁等
    2023-04-04
  • java实现航空用户管理系统

    java实现航空用户管理系统

    这篇文章主要为大家详细介绍了java实现航空用户管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Java提取两个字符串中的相同元素方法

    Java提取两个字符串中的相同元素方法

    今天小编就为大家分享一篇Java提取两个字符串中的相同元素方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Netty分布式高性能工具类FastThreadLocal和Recycler分析

    Netty分布式高性能工具类FastThreadLocal和Recycler分析

    这篇文章主要为大家介绍了Netty分布式高性能工具类FastThreadLocal和Recycler分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03

最新评论