零散的Linux小技巧

ln的用法, lsof, kill, pkill的用法

Share
零散的Linux小技巧

資料夾怎麼做LINK

ln -s 

原本的資料夾 連結要放的位置
比方說ComfyUI有一個Model資料夾裡面各式各樣的模型,VAE,Lora等等的,維護起來蠻麻煩的,像我就會將模型資料夾獨立出來, 然後用Link的方式挪過去, 這樣萬一把ComfyUI刪除或重裝也不會把辛苦存下來的模型一起刪掉了

要注意的是 目標資料夾不可存在

例

ln -s /home/nicko/comfyui-set/models /home/nicko/ComfyUI/models

這個例子中就是 /home/nicko/ComfyUI/models 不可存在

  • 情境:將模型等大檔案放在獨立目錄,重裝軟體不丟失。
  • 指令:ln -s [來源絕對路徑] [目標位置]
  • 重點:目標路徑不可預先存在。若已存在同名資料夾,需先刪除。
  • 範例:ln -s /home/nicko/comfyui-set/models /home/nicko/ComfyUI/models
  • 檢查:使用 ls -l 看到 -> 即代表連結成功。

如何找出哪一個程式(進程)在佔用某一個Port

lsof 這個工具的全名是List Open Files, 所以幾乎什麼都能查
從誰佔用了Port到某個user開了多少檔案都可以

這裡先解釋如何查特定 Port: lsof -i :Port

範例,我開了ComfyUI發現被占用

sudo lsof -i :8188

#他會顯示

COMMAND    PID      USER   FD   TYPE  DEVICE  SIZE/OFF  NODE  NAME
python    650142   nicko   58u  IPv4  2884223   0t0     TCP   localhost:8188 (LISTEN)

這時就可以知道到底誰在佔用 8188
此例中有兩種選擇

  1. 看名字是誰直接殺掉 pkill python 壞處是可能不只一個python在執行也會被一起殺掉
  2. 用PID殺掉(這比較保險,只會殺掉當前這一個) 我們可以這樣 kill 650142 這樣會送一個關閉訊號,如果進程接收到就會自己關閉, 若沒有反應我們可以送kill -9 650142 -9 就是不理會進程直接關閉.

總結 Port 佔用排除 (lsof)

  • 全名:List Open Files (可查 Port、檔案、使用者)。
  • 查詢:sudo lsof -i :[Port]
  • 分析:查看輸出中的 PID (進程編號) 與 COMMAND (執行程式)。
  • 處理:
    • 溫和:kill [PID] (讓程式有機會存檔收尾)。
    • 強制:kill -9 [PID] (直接拔插頭,不理會進程反應)。
    • 批次(慎用):pkill [名字] (會殺掉所有同名的程式)。

chown的用法

格式是
sudo chown -R 帳號:群組 目標資料夾
-R是遞歸的意思,意思是包含資料夾以及所以以下的資料夾

應用:
將/mmt/data的擁有權送給用戶名nicko
sudo chown -R nicko:nicko /mnt/data

警告:
不要再 / 下使用 -R遞歸把權限拿走,會造成系統崩潰。