Liunx常用運維命令整理記錄

qch發表於2020-06-04

  前言

  作為後端開發者,掌握一些常用的運維命令也是很有必要的,本文記錄常用Liunx運維命令

   

  基本命令

  目錄切換

cd base-admin/  切換到當前目錄下的base-admin目錄
cd ..  切換到上一層目錄
cd
/   切換到系統根目錄
cd
~   切換到使用者主目錄
cd
-   切換到上一個操作所在目錄

 

  目錄操作

mkdir 目錄名稱    建立目錄

ls或者ll(ll是ls -l的別名,ll命令可以看到該目錄下的所有目錄和檔案的詳細資訊)    檢視目錄資訊

find 目錄 引數    尋找目錄(查)
    示例:
    列出當前目錄及子目錄下所有檔案和資料夾: find .
    在/home目錄下查詢以.txt結尾的檔名:find /home -name "*.txt"
    同上,但忽略大小寫: find /home -iname "*.txt"
    當前目錄及子目錄下查詢所有以.txt和.pdf結尾的檔案:find . \( -name "*.txt" -o -name "*.pdf" \)或find . -name "*.txt" -o -name "*.pdf"

mv 目錄名稱 新目錄名稱    修改目錄的名稱(改)
注意:mv的語法不僅可以對目錄進行重新命名而且也可以對各種檔案,壓縮包等進行 重新命名的操作。mv命令用來對檔案或目錄重新命名,或者將檔案從一個目錄移到另一個目錄中。後面會介紹到mv命令的另一個用法。

mv 目錄名稱 目錄的新位置    移動目錄的位置---剪下(改)
注意:mv語法不僅可以對目錄進行剪下操作,對檔案和壓縮包等都可執行剪下操作。另外mv與cp的結果不同,mv好像檔案“搬家”,檔案個數並未增加。而cp對檔案進行復制,檔案個數增加了。

cp -r 目錄名稱 目錄拷貝的目標位置    拷貝目錄(改),-r代表遞迴拷貝
注意:cp命令不僅可以拷貝目錄還可以拷貝檔案,壓縮包等,拷貝檔案和壓縮包時不 用寫-r遞迴

rm [-rf] 目錄    刪除目錄(刪)
注意:rm不僅可以刪除目錄,也可以刪除其他檔案或壓縮包,為了增強大家的記憶, 無論刪除任何目錄或檔案,都直接使用rm -rf 目錄/檔案/壓縮包

 

  檔案操作

touch 檔名稱    檔案的建立(增)

cat|more|less|tail 檔名稱    檔案的檢視(查)
    cat    檢視顯示檔案內容
    more    可以顯示百分比,回車可以向下一行, 空格可以向下一頁,q可以退出檢視
    less    可以使用鍵盤上的PgUp和PgDn向上 和向下翻頁,q結束檢視
    tail-10     檢視檔案的後10行,Ctrl+C結束
注:命令 tail -f 檔案 可以對某個檔案進行動態監控,例如tomcat的日誌檔案, 會隨著程式的執行,日誌會變化,可以使用tail -f catalina-2016-11-11.log 監控 文 件的變化

vim 檔名稱    修改檔案的內容(改)
注:vim編輯器是Linux中的強大元件,是vi編輯器的加強版,vim編輯器的命令和快捷方式有很多,但此處不一一闡述,大家也無需研究的很透徹,使用vim編輯修改檔案的方式基本會使用就可以了。
   在實際開發中,使用vim編輯器主要作用就是修改配置檔案,下面是一般步驟:
   vim 檔案------>進入檔案----->命令模式------>按i進入編輯模式----->編輯檔案 ------->按Esc進入底行模式----->輸入:wq/q! (輸入wq代表寫入內容並退出,即儲存;輸入q!代表強制退出不儲存。)

rm -rf 檔案    刪除檔案(刪)
注:同目錄刪除:熟記 rm -rf 檔案 即可

 

  檢視Liunx引數

  檢視CPU資訊

顯示當前正在執行的程式的CPU使用率,記憶體使用率
top

檢視執行緒的CPU使用率,記憶體使用率
top -Hp pid

 

  檢視記憶體資訊

free -h

 

  檢視磁碟資訊

df -h

 

  埠與防火牆

1、檢視當前所有tcp埠及程式服務
    netstat -ntlp    

2、防火牆
iptables
    service iptables status    檢視防火牆狀態
    service iptables stop    停止防火牆
    service iptables start    啟動防火牆
    service iptables restart 重啟防火牆
    
    開放、移除8080埠
    vim /etc/sysconfig/iptables
    
    加入、刪除配置檔案,如:
            -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEP
    修改完成後使用 :wq 儲存退出檔案,重啟生效:service iptables restart


firewalld
    systemctl status firewalld 檢視狀態
    systemctl enable firewalld 啟用防火牆 永久
    systemctl stop firewalld 停止防火牆 重啟後失效
    systemctl disable firewalld 禁用防火牆 永久
    systemctl start firewalld 啟動
    systemctl restart firewalld 重啟
    
    開放、移除8080埠
    開放    firewall-cmd --add-port=8080/tcp --permanent
    移除    firewall-cmd --permanent --remove-port=8080/tcp
    修改完成重啟生效    systemctl restart firewalld

 

 

  部署JAR包

  從關閉到啟動

0、檢視執行的java專案
    pgrep java | xargs ps

1、先kill掉舊服務
    pkill -f myspringboot-0.0.1
    
2、後臺啟動新服務
(nohup後臺執行,&後臺執行的區別:
    使用nohup執行程式:
        結果預設會輸出到nohup.out
        使用Ctrl + C傳送SIGINT訊號,程式關閉
        關閉session傳送SIGHUP訊號,程式免疫
    使用&後臺執行程式:
        結果會輸出到終端
        使用Ctrl + C傳送SIGINT訊號,程式免疫
        關閉session傳送SIGHUP訊號,程式關閉
)
    注:先cd進到jar位置
    
    nohup java -jar myspringboot-0.0.1.jar &
    
    如需額外輸出日誌(如果專案已經配置了日誌,就不需要再重複輸入日誌了)
    nohup java -jar myspringboot-0.0.1.jar > myspringboot-0.0.1.log &
    
3、控制檯檢視日誌
    tail -f myspringboot-0.0.1.log

4、如需修改jar包(前端程式碼、配置檔案等)
    1、先cd進到jar位置,然後使用 vim 命令進入jar包
    2、使用 / 命令模糊搜尋定位檔案,例如main.js
    3、按回車進入檔案,修改完成後使用 :wq 儲存退出檔案,回到jar包目錄,使用 :q 退出jar包,即可成功修改檔案內容
    
    PS:修改jar,重啟生效

 

  常用啟動引數

  例如

nohup java -Xmn200m -Xms800m -Xmx800m -XX:+UseG1GC -jar myspringboot-0.0.1.jar &

 

  JVM效能排查

  簡單命令

檢視目標JVM的所有配置項引數
jinfo -flags pid

檢視堆記憶體資訊和垃圾回收資訊 jstat
-gc pid S0C:年輕代中 To Survivor 的容量(單位 KB); S1C:年輕代中 From Survivor 的容量(單位 KB); S0U:年輕代中 To Survivor 目前已使用空間(單位 KB); S1U:年輕代中 From Survivor 目前已使用空間(單位 KB); EC:年輕代中 Eden 的容量(單位 KB); EU:年輕代中 Eden 目前已使用空間(單位 KB); OC:老年代的容量(單位 KB); OU:老年代目前已使用空間(單位 KB); MC:元空間的容量(單位 KB); MU:元空間目前已使用空間(單位 KB); YGC:從應用程式啟動到取樣時年輕代中 gc 次數; YGCT:從應用程式啟動到取樣時年輕代中 gc 所用時間 (s); FGC:從應用程式啟動到取樣時 老年代(Full Gc)gc 次數; FGCT:從應用程式啟動到取樣時 老年代代(Full Gc)gc 所用時間 (s); GCT:從應用程式啟動到取樣時 gc 用的總時間 (s)。 檢視堆記憶體的初始化資訊以及堆記憶體的使用情況 jmap -heap pid 同時還可以生成dump檔案來進行詳細分析 jmap -dump:live,format=b,file=heap-dump.bin pid 檢視執行緒的堆疊資訊 jstack pid

  dump檔案可以下載下來進行分析,也可以直接使用liunx上的jdk的  

  1、線上分析,啟用服務,訪問http://ip:7000檢視分析結果

jhat -J-Xmx512m heap-dump.bin

  2、下載到本地,使用JVisualvm,是 JDK 內建的視覺化效能診斷工具(雙擊執行,檔案,裝入堆dump檔案)

 

 

 

  圖形工具

  JVisualvm(看上面)

  JProfiler (效能診斷利器 JProfiler 快速入門和最佳實踐

 

  後記

  Liunx常用運維命令整理暫時記錄到這,後續再進行補充;

 

  參考如下:

       Linux命令大全(手冊)

  https://github.com/Snailclimb/JavaGuide/blob/master/docs/operating-system/linux.md

  https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/手把手教你定位常見Java效能問題.md

  

相關文章