展开菜单
首页 精品内容 本月促销 装机必备 Windows macOS软件 IOS软件 Android AI PDF教程 专题
全部分类

当前位置:

首页 > 编程开发 > Java后端必会Linux常用命令之一篇搞懂日志、进程、端口、部署

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

聚焦Java后端开发者高频使用的Linux命令,涵盖日志实时查看(tail-f)、进程管理(ps-ef、kill)、端口排查(netstat、lsof)、项目部署(nohupjava-jar)、文件操作(ls、cd、cp、mv、rm)、关键字搜索(grep)及系统资源监控(top、free、df)。针对接口报错、启动失败、磁盘满等常见场景给出排查步骤。

前言

对于 Ja va 后端开发者而言,Linux 是一个怎么都绕不开的话题。

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

大多数时候,你精心打磨的 Spring Boot 项目,最终还是要被部署到一台 Linux 服务器上。一旦项目上线,各种状况就来了:接口报错、服务启动失败、端口被莫名其妙地占用、日志文件撑爆磁盘……这些场景,只要你不打算用重启大法解决一切,那就免不了要用 Linux 命令去排查。

所以,别再觉得 Linux 只是运维同事的专属技能。对于后端开发者来说,掌握一些高频命令,就是保障项目稳定运行的硬通货。这篇文章就不做“面面俱到”的百科全书了,重点聚焦我们在实际开发和部署中最常用的那些场景。

一、目录和文件相关命令

1. 查看当前目录

pwd

当你登录到一台陌生的服务器,大脑一片空白时,第一件事就是搞清自己在哪。这时 pwd 就是你最忠实的向导。

pwd

它会直接告诉你当前所处的绝对路径。

2. 查看目录文件

ls
ls -l
ls -lh
ls -a

这几个命令看着简单,但用法却不少,我们来拆解一下:

  • ls:最基础的,列出当前目录下的文件名。
  • ls -l:以列表形式展示,能看到文件的权限、所有者、大小、修改时间。
  • ls -lh:这个最实用,因为它会用 KB、MB 这种好理解的单位显示文件大小。
  • ls -a:把隐藏文件(比如 .gitignore)也揪出来。

日常开发中,ls -lh 基本是高频使用的。不管是查看 jar 包的大小,还是检查日志文件是否过大,它都非常直观。

3. 切换目录

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

这一点不难理解,cd 命令帮你实现目录间的灵活跳跃。比如:

  • cd /opt:直接跳转到 /opt 目录。
  • cd ..:返回上一级目录。
  • cd ~:回到当前用户的家目录。

一般来说,Ja va 后端项目喜欢驻扎在 /opt/app/usr/local/app/home/app 这类目录下。

4. 创建目录

mkdir logs
mkdir -p /opt/app/logs

如果你想一次性创建一个多级目录树,比如 /opt/app/logs,直接使用 mkdir -p /opt/app/logs 就能一步到位,不必一层层手动创建,省心不少。

5. 创建文件

touch app.log
touch application.yml

这个命令非常“轻型”,就是个空文件生成器。比如你需要创建一个日志文件来记录信息,直接 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 命令既可以搬家,也可以改名。比如你想把 nohup.out 这个日志文件改名备份,直接执行 mv nohup.out nohup-2026-05-08.out 就行。

8. 删除文件或目录

rm app.log
rm -rf logs/

这里需要特别提醒一下:rm -rf 是核武器级别的命令,一定一定慎用。尤其是在根目录或者你不确定当前路径的情况下,随意执行这行命令,可能会带来灾难性的后果。

二、查看文件内容

1. 查看整个文件

cat app.log

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

head 对称,tail 看的是文件的尾部。比如:tail -n 100 app.log 可以查看最后 100 行的日志。

5. 实时查看日志

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

这个命令可以说是后端开发的“必备良药”。当你的 Spring Boot 项目启动后,或者线上接口发生报错需要实时追踪时,tail -f nohup.outtail -f app.log 就能让你像看直播一样看到日志的最新输出。

三、搜索日志和关键字

1. grep 搜索关键字

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

当线上接口返回 500,你第一反应肯定是:异常在哪里?这时 grep 就登场了。比如排查空指针异常,一行 grep "NullPointerException" app.log 就能帮你快速定位。

2. 显示行号

grep -n "ERROR" app.log

加上 -n 参数,它会同时告诉你匹配行在文件中的行号,方便你结合上下文排查。

3. 忽略大小写

grep -i "error" app.log

-i 参数可以忽略大小写,这意味着你输 “error”,它会同时匹配 “Error”“ERROR” 等所有变体。

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. 查看 Ja va 进程

ps -ef | grep ja va

这是个非常高频的组合。当你排查 Spring Boot 项目是否正在运行时,ps -ef | grep app.jar 能够迅速锁定目标进程。

3. 使用 jps 查看 Ja va 进程

ps -ef

如果你比较“Ja va 化”,JDK 自带了一个挺方便的小工具叫 jps -l,它能直接列出所有正在运行的 Ja va 进程,并显示完整类名或 jar 包路径。

4. 结束进程

kill 进程ID
kill -9 进程ID

关于结束进程,通常我们会先尝试温和的 kill 进程ID,如果进程不听话,再用强制性的 kill -9 进程ID

五、端口相关命令

1. 查看端口占用

netstat -tunlp

当你启动 Spring Boot 时,如果看到“Port 8080 is already in use”的提示,那第一件事就是用 netstat -tunlp | grep 8080 来查看究竟是哪个进程占用了 8080 端口。

2. 使用 lsof 查看端口

lsof -i:8080

另一个常用的命令是 lsof。比如 Spring Boot 启动失败,提示 8080 端口被占,你可以执行 lsof -i:8080,然后根据查到的 PID,执行 kill -9 进程ID 来释放端口。

3. 使用 ss 查看端口

ss -tunlp
ss -tunlp | grep 8080

在一些较新的 Linux 系统中,ss 命令比 netstat 更受推荐,性能更优。

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

1. 前台启动

ja va -jar app.jar

这种方式一运行,你的终端就变成了项目的“控制台”。一旦关闭终端,程序也会随之终止,所以一般不用在生产环境里。

2. 后台启动

nohup ja va -jar app.jar > nohup.out 2>&1 &

这是最常见的 Spring Boot 后台启动方式。我们来拆解一下:

  • nohup:跟终端断开后也不会停止运行。
  • ja va -jar app.jar:启动 jar 包。
  • > nohup.out:标准输出写入 nohup.out 文件。
  • 2>&1:错误输出也一并写入 nohup.out
  • &:让它在后台运行。

启动之后,通过 tail -f nohup.out 就可以实时查看日志。

3. 指定配置文件启动

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

意思是使用 prod 环境的配置启动项目。

4. 指定端口启动

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

5. 指定 JVM 参数启动

nohup ja va -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 * 可以查看当前目录下所有文件和目录的大小,而 du -sh logs/ 则专注查看 logs 目录的大小。

5. 查看系统负载

uptime

它可以告诉你系统已经运行了多久,以及最近 1 分钟、5 分钟、15 分钟的平均负载情况。

八、压缩和解压命令

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/

比如你想把本地的 app.jar 上传到远程服务器,执行 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,接着查 Ja va 进程:ps -ef | grep ja va,再看看端口是否被占: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 看磁盘,再用 ps -ef | grep ja va 看看是不是 Ja va 进程占用了太多资源。

十二、常用命令速查表

场景命令
查看当前目录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
查看 Ja va 进程ps -ef|grep ja va
查看端口lsof -i:8080
杀掉进程kill -9 进程ID
查看内存free -h
查看磁盘df -h
查看目录大小du -sh *
后台启动 jarnohup ja va -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 命令对于 Ja va 后端开发来讲,不是锦上添花,而是必备技能。

不一定要把所有命令都背得滚瓜烂熟,但那些高频的、跟日常工作息息相关的命令——文件操作、日志查看、进程管理、端口排查、项目部署、磁盘和内存分析、权限修改,一定要做到心中有数。

尤其是当我们部署 Spring Boot 项目、排查线上日志、分析端口冲突、或者检查服务器资源时,这些命令就像是解决疑难杂症的“趁手工具”。学习 Linux 命令,最终目的不是死记硬背,而是为了在项目出问题时,能快速找到症结、解决问题。

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
编程开发 Java
相关文章 更多
精品专题 更多
本月促销

正软商城本月促销专区,汇集办公、设计、安全、影音、系统工具及AI软件等正版软件优惠活动,提供限时折扣、特价授权和优惠购买信息,活动库存及价格以页面实时展示为准。

装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

IOS软件

正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

AI

正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
灵活计算器
灵活计算器

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

图几
图几

图几是一款适用于 macOS 的截图、标注与美化工具,支持离线操作保障隐私。界面整理和高频系统操作被放到一起考虑,桌面或窗口内容一多时,管理起来会更省心。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Menuist
Menuist

Menuist 是一款面向 macOS 的 Finder 右键菜单增强工具,主要用来补充新建文件、快捷导航等常用操作,让日常文件管理和访问路径时更高效、更顺手。

Mole
Mole

Mole 是一款专为 Mac 设计的深度清理优化工具,涵盖缓存清理、应用管理及实时状态监控等功能。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

WINDOWS 更多
Windows 10
Windows 10

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

傲梅轻松备份
傲梅轻松备份

傲梅轻松备份是一款专业易用的数据备份软件,为重要数据提供安全保障。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Wise Folder Hider Pro
Wise Folder Hider Pro

Wise Folder Hider Pro 是一款专业级文件和文件夹隐藏加密软件,为私密数据添加多重保护。高频操作更强调就近处理,浏览、整理和跨目录移动文件时,来回切换和重复点击都会少很多。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

PinStack
PinStack

PinStack是一款轻量级的Windows平台剪贴板管理工具,优化您的剪贴板使用体验。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Seer
Seer

Seer是一款在Win平台下的空格键功能增强效率工具,只需轻敲空格键,就能预览几乎任何格式的文件。它更适合把零散的小功能集中起来使用,处理高频琐碎任务时会更省事。