最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java后端必會(huì)Linux常用命令之一篇搞懂日志、進(jìn)程、端口、部署

 更新時(shí)間:2026年05月18日 11:01:00   作者:T1yCcc_  
掌握Linux命令行是開(kāi)發(fā)者的必備技能,本文用最簡(jiǎn)方式梳理高頻基礎(chǔ)命令,每個(gè)命令配常用示例,適合新手快速查閱,這篇文章主要介紹了Java后端必會(huì)Linux常用命令之一篇搞懂日志、進(jìn)程、端口、部署的相關(guān)資料,需要的朋友可以參考下

前言

對(duì)于 Java 后端開(kāi)發(fā)來(lái)說(shuō),Linux 是繞不開(kāi)的。

平時(shí)我們寫(xiě)完 Spring Boot 項(xiàng)目之后,最終大概率還是要部署到 Linux 服務(wù)器上。項(xiàng)目上線之后,如果接口報(bào)錯(cuò)、服務(wù)啟動(dòng)失敗、端口被占用、日志文件太大、磁盤(pán)空間不足,基本都需要通過(guò) Linux 命令去排查。

所以 Linux 命令不是運(yùn)維才需要會(huì),Java 后端也必須掌握一些高頻命令。

這篇文章主要總結(jié)后端開(kāi)發(fā)中最常用的一些 Linux 命令,不追求大而全,重點(diǎn)放在實(shí)際開(kāi)發(fā)和部署場(chǎng)景中怎么用。

一、目錄和文件相關(guān)命令

1. 查看當(dāng)前目錄

pwd

pwd 用來(lái)查看當(dāng)前所在目錄。

比如登錄服務(wù)器之后,不確定自己在哪個(gè)路徑下,就可以先執(zhí)行:

pwd 

2. 查看目錄文件

ls
ls -l
ls -lh
ls -a

常用說(shuō)明:

ls:查看當(dāng)前目錄下的文件

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

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

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

平時(shí)后端開(kāi)發(fā)最常用的是:

ls -lh 

比如查看 jar 包、日志文件、配置文件大小時(shí)非常方便。

3. 切換目錄

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

說(shuō)明:

cd /opt:進(jìn)入 /opt 目錄

cd ..:返回上一級(jí)目錄

cd ~:回到當(dāng)前用戶家目錄

后端項(xiàng)目一般可能部署在這些目錄:

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

4. 創(chuàng)建目錄

mkdir logs
mkdir -p /opt/app/logs

mkdir 用來(lái)創(chuàng)建目錄。

如果要一次性創(chuàng)建多級(jí)目錄,可以使用:

mkdir -p /opt/app/logs

5. 創(chuàng)建文件

touch app.log
touch application.yml

touch 可以用來(lái)創(chuàng)建一個(gè)空文件。

比如創(chuàng)建日志文件:

touch app.log

6. 復(fù)制文件

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

復(fù)制目錄時(shí)需要加 -r:

cp -r logs /opt/backup/

7. 移動(dòng)或重命名文件

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

mv 既可以移動(dòng)文件,也可以重命名文件。

比如把日志文件重命名:

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

8. 刪除文件或目錄

rm app.log
rm -rf logs/

注意:

rm -rf

這個(gè)命令要謹(jǐn)慎使用,尤其不要在根目錄或者不確定的目錄下亂執(zhí)行。

二、查看文件內(nèi)容

1. 查看整個(gè)文件

cat app.log

cat 適合查看內(nèi)容比較少的文件。

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

2. 分頁(yè)查看文件

less app.log

less 適合查看大文件。

常用操作:

空格:向下翻頁(yè)

b:向上翻頁(yè)

/關(guān)鍵字:搜索關(guān)鍵字

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. 實(shí)時(shí)查看日志

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

這是后端開(kāi)發(fā)最常用的命令之一。

比如 Spring Boot 項(xiàng)目啟動(dòng)后,可以通過(guò)下面命令實(shí)時(shí)查看日志:

tail -f nohup.out

如果線上接口報(bào)錯(cuò),也可以實(shí)時(shí)觀察日志輸出:

tail -f app.log

三、搜索日志和關(guān)鍵字

1. grep 搜索關(guān)鍵字

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

比如排查空指針異常:

grep "NullPointerException" app.log

2. 顯示行號(hào)

grep -n "ERROR" app.log

-n 可以顯示匹配內(nèi)容所在的行號(hào)。

3. 忽略大小寫(xiě)

grep -i "error" app.log

4. 查看關(guān)鍵字前后幾行

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

說(shuō)明:

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

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

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

排查異常時(shí)很有用:

grep -C 10 "Exception" app.log

四、進(jìn)程相關(guān)命令

1. 查看所有進(jìn)程

ps -ef

2. 查看 Java 進(jìn)程

ps -ef | grep java

這是部署 Java 項(xiàng)目時(shí)非常常用的命令。

比如查看 Spring Boot 項(xiàng)目是否正在運(yùn)行:

ps -ef | grep app.jar

3. 使用 jps 查看 Java 進(jìn)程

ps -ef

jps 是 JDK 自帶的工具,可以查看 Java 進(jìn)程。

jps -l

可以顯示完整類(lèi)名或 jar 包路徑。

4. 結(jié)束進(jìn)程

kill 進(jìn)程ID kill -9 進(jìn)程ID

一般可以先使用:

kill 進(jìn)程ID

如果進(jìn)程無(wú)法正常結(jié)束,再使用:

kill -9 進(jìn)程ID

比如:

kill -9 12345

五、端口相關(guān)命令

1. 查看端口占用

netstat -tunlp

查看某個(gè)端口是否被占用:

netstat -tunlp | grep 8080

2. 使用 lsof 查看端口

lsof -i:8080

比如 Spring Boot 啟動(dòng)失敗,提示 8080 端口被占用,可以執(zhí)行:

lsof -i:8080

然后根據(jù)查到的 PID 結(jié)束進(jìn)程:

kill -9 進(jìn)程ID

3. 使用 ss 查看端口

ss -tunlp ss -tunlp | grep 8080

有些 Linux 系統(tǒng)中,ss 比 netstat 更推薦使用。

六、Spring Boot 項(xiàng)目部署常用命令

1. 前臺(tái)啟動(dòng)

java -jar app.jar

這種方式啟動(dòng)后,終端關(guān)閉,程序也會(huì)停止。

所以實(shí)際部署時(shí)一般不這么用。

2. 后臺(tái)啟動(dòng)

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

這是非常常見(jiàn)的 Spring Boot 后臺(tái)啟動(dòng)命令。

解釋一下:

nohup:表示不掛斷運(yùn)行

java -jar app.jar:?jiǎn)?dòng) jar 包

> nohup.out:標(biāo)準(zhǔn)輸出寫(xiě)入 nohup.out

2>&1:錯(cuò)誤輸出也寫(xiě)入 nohup.out

&:后臺(tái)運(yùn)行

啟動(dòng)后可以查看日志:

tail -f nohup.out

3. 指定配置文件啟動(dòng)

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

表示使用 prod 環(huán)境配置啟動(dòng)。

4. 指定端口啟動(dòng)

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

5. 指定 JVM 參數(shù)啟動(dòng)

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

說(shuō)明:

-Xms512m:初始堆內(nèi)存 512MB

-Xmx1024m:最大堆內(nèi)存 1024MB

七、系統(tǒng)資源查看命令

1. 查看 CPU 和內(nèi)存占用

top

top 可以實(shí)時(shí)查看系統(tǒng)資源占用情況。

常見(jiàn)關(guān)注:

CPU 使用率

內(nèi)存使用率

系統(tǒng)負(fù)載

哪個(gè)進(jìn)程占用資源高

2. 查看內(nèi)存

free -h

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

3. 查看磁盤(pán)空間

df -h

如果項(xiàng)目日志寫(xiě)不進(jìn)去,或者服務(wù)器異常,磁盤(pán)空間是必須排查的一項(xiàng)。

4. 查看目錄大小

du -sh *
du -sh logs/

查看當(dāng)前目錄下各文件和目錄大?。?/p>

du -sh *

查看 logs 目錄大?。?/p>

du -sh logs/

5. 查看系統(tǒng)負(fù)載

uptime

可以查看系統(tǒng)運(yùn)行時(shí)間和平均負(fù)載。

八、壓縮和解壓命令

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@服務(wù)器IP:/opt/app/

比如:

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

2. scp 下載文件

scp root@服務(wù)器IP:/opt/app/app.log ./

比如下載服務(wù)器日志:

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

3. 上傳目錄

scp -r dist/ root@服務(wù)器IP:/opt/app/

十、權(quán)限相關(guān)命令

1. 修改文件權(quán)限

chmod 755 start.sh chmod +x start.sh

如果 shell 腳本無(wú)法執(zhí)行,可以加執(zhí)行權(quán)限:

chmod +x start.sh

然后執(zhí)行:

./start.sh

2. 修改文件所屬用戶

chown appuser:appuser app.jar

表示把 app.jar 的所屬用戶和用戶組改為 appuser。

十一、常見(jiàn)后端排查場(chǎng)景

場(chǎng)景一:接口報(bào) 500,怎么查?

先看日志:

tail -f app.log

搜索異常:

grep -C 10 "Exception" app.log

如果是空指針:

grep -C 10 "NullPointerException" app.log

場(chǎng)景二:Spring Boot 項(xiàng)目啟動(dòng)失敗

先看啟動(dòng)日志:

tail -f nohup.out

查看 Java 進(jìn)程:

ps -ef | grep java

查看端口是否被占用:

lsof -i:8080

如果端口被占用,可以結(jié)束對(duì)應(yīng)進(jìn)程:

kill -9 進(jìn)程ID

場(chǎng)景三:服務(wù)器磁盤(pán)滿了

查看磁盤(pán)空間:

df -h

查看當(dāng)前目錄下文件大?。?/p>

du -sh *

一般日志目錄可能比較大:

du -sh logs/

可以壓縮歷史日志:

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

場(chǎng)景四:項(xiàng)目突然變慢

查看系統(tǒng)資源:

top

查看內(nèi)存:

free -h

查看磁盤(pán):

df -h

查看 Java 進(jìn)程:

ps -ef | grep java

十二、常用命令速查表

場(chǎng)景命令
查看當(dāng)前目錄pwd
查看文件列表ls -lh
切換目錄cd /opt/app
創(chuàng)建目錄mkdir -p logs
創(chuàng)建文件touch app.log
復(fù)制文件cp app.jar /opt/app/
移動(dòng)文件mv app.jar /opt/app/
刪除文件rm app.log
實(shí)時(shí)看日志tail -f app.log
搜索異常grep -C 10 "Exception" app.log
查看 Java 進(jìn)程`ps -ef
查看端口lsof -i:8080
殺掉進(jìn)程kill -9 進(jìn)程ID
查看內(nèi)存free -h
查看磁盤(pán)df -h
查看目錄大小du -sh *
后臺(tái)啟動(dòng) 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@服務(wù)器IP:/opt/app/

總結(jié)

Linux 命令對(duì)于 Java 后端開(kāi)發(fā)來(lái)說(shuō)非常重要。

實(shí)際工作中,我們不一定要記住所有 Linux 命令,但是一些高頻命令必須熟悉,比如文件操作、日志查看、進(jìn)程管理、端口排查、項(xiàng)目部署、磁盤(pán)和內(nèi)存查看、權(quán)限修改。

尤其是部署 Spring Boot 項(xiàng)目、查看線上日志、排查端口占用、分析服務(wù)器資源這些場(chǎng)景,基本每天都會(huì)遇到。

所以學(xué)習(xí) Linux 命令,不是為了背命令,而是為了在項(xiàng)目出問(wèn)題時(shí),能夠快速定位問(wèn)題、解決問(wèn)題。

到此這篇關(guān)于Java后端必會(huì)Linux常用命令之一篇搞懂日志、進(jìn)程、端口、部署的文章就介紹到這了,更多相關(guān)Java后端Linux常用命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實(shí)現(xiàn)n位數(shù)字的全排列

    Java實(shí)現(xiàn)n位數(shù)字的全排列

    今天小編就為大家分享一篇關(guān)于Java實(shí)現(xiàn)n位數(shù)字的全排列,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • java9遷移注意問(wèn)題總結(jié)

    java9遷移注意問(wèn)題總結(jié)

    本篇文章給大家詳細(xì)整理了java9遷移注意的問(wèn)題,希望我們整理的內(nèi)容能夠幫助到大家。
    2018-02-02
  • java向上轉(zhuǎn)型發(fā)生的時(shí)機(jī)知識(shí)點(diǎn)詳解

    java向上轉(zhuǎn)型發(fā)生的時(shí)機(jī)知識(shí)點(diǎn)詳解

    在本篇文章里小編給大家整理分享的是關(guān)于java向上轉(zhuǎn)型發(fā)生的時(shí)機(jī)知識(shí)點(diǎn)內(nèi)容,有興趣的讀者們可以參考下。
    2021-05-05
  • 淺談Java并發(fā) J.U.C之AQS:CLH同步隊(duì)列

    淺談Java并發(fā) J.U.C之AQS:CLH同步隊(duì)列

    AQS內(nèi)部維護(hù)著一個(gè)FIFO隊(duì)列,該隊(duì)列就是CLH同步隊(duì)列。下面小編來(lái)簡(jiǎn)單介紹下這個(gè)隊(duì)列
    2019-05-05
  • net.sf.json.JSONObject 為null 的判斷方法

    net.sf.json.JSONObject 為null 的判斷方法

    下面小編就為大家?guī)?lái)一篇net.sf.json.JSONObject 為null 的判斷方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • java json不生成null或者空字符串屬性(詳解)

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

    下面小編就為大家?guī)?lái)一篇java json不生成null或者空字符串屬性(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Java Web Listener實(shí)現(xiàn)事件監(jiān)聽(tīng)與處理

    Java Web Listener實(shí)現(xiàn)事件監(jiān)聽(tīng)與處理

    Java Web開(kāi)發(fā)中的Listener是一種事件機(jī)制,通過(guò)監(jiān)聽(tīng)Web應(yīng)用程序的事件,實(shí)現(xiàn)對(duì)事件的處理,從而實(shí)現(xiàn)更加靈活和高效的應(yīng)用程序開(kāi)發(fā)。Listener能夠監(jiān)聽(tīng)的事件包括應(yīng)用程序啟動(dòng)和關(guān)閉、Session創(chuàng)建和銷(xiāo)毀、請(qǐng)求和響應(yīng)對(duì)象的創(chuàng)建和銷(xiāo)毀等
    2023-04-04
  • java實(shí)現(xiàn)航空用戶管理系統(tǒng)

    java實(shí)現(xiàn)航空用戶管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)航空用戶管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java提取兩個(gè)字符串中的相同元素方法

    Java提取兩個(gè)字符串中的相同元素方法

    今天小編就為大家分享一篇Java提取兩個(gè)字符串中的相同元素方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Netty分布式高性能工具類(lèi)FastThreadLocal和Recycler分析

    Netty分布式高性能工具類(lèi)FastThreadLocal和Recycler分析

    這篇文章主要為大家介紹了Netty分布式高性能工具類(lèi)FastThreadLocal和Recycler分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03

最新評(píng)論

邵武市| 辽阳县| 天台县| 肃北| 桐柏县| 宣汉县| 大连市| 台前县| 郸城县| 屏山县| 梁河县| 刚察县| 昌江| 民乐县| 安图县| 迁西县| 隆尧县| 盐池县| 商洛市| 邻水| 孟州市| 巍山| 宾川县| 肇庆市| 高邮市| 当雄县| 新乡市| 澳门| 美姑县| 桂林市| 阿拉善左旗| 游戏| 九江县| 灵台县| 娄烦县| 岳阳县| 曲沃县| 宁津县| 宜君县| 澎湖县| 调兵山市|