零散的Linux小技巧
ln的用法, lsof, kill, pkill的用法
資料夾怎麼做LINK
ln -s
原本的資料夾 連結要放的位置
比方說ComfyUI有一個Model資料夾裡面各式各樣的模型,VAE,Lora等等的,維護起來蠻麻煩的,像我就會將模型資料夾獨立出來, 然後用Link的方式挪過去, 這樣萬一把ComfyUI刪除或重裝也不會把辛苦存下來的模型一起刪掉了
要注意的是 目標資料夾不可存在
例
ln -s /home/nicko/comfyui-set/models /home/nicko/ComfyUI/models
這個例子中就是 /home/nicko/ComfyUI/models 不可存在
總結 資料夾軟連結 (Symbolic Link)
- 情境:將模型等大檔案放在獨立目錄,重裝軟體不丟失。
- 指令:
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
此例中有兩種選擇
- 看名字是誰直接殺掉
pkill python壞處是可能不只一個python在執行也會被一起殺掉 - 用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遞歸把權限拿走,會造成系統崩潰。