Linux系統下,利用ps命令結合管道符|和grep命令,可以高效過濾進程。本文將介紹多種過濾規則,助您快速定位目標進程。
基礎過濾方法:
-
按進程名稱過濾:
ps aux | grep process_name
此命令顯示所有名稱包含”process_name”的進程。
-
按進程狀態過濾:
ps aux | grep S
此命令顯示所有狀態為”S”(睡眠)的進程。(注意:進程狀態不止S一種,具體狀態可參考man ps)
-
按進程所屬用戶過濾:
ps aux | grep username
此命令顯示所有屬于”username”用戶的進程。
高級過濾方法:
-
按CPU使用率過濾: (需要–sort選項排序,方便查看)
ps aux --sort=-%cpu | grep 10%
此命令顯示CPU使用率超過10%的進程。 -號表示降序排列。
-
按內存使用率過濾: (需要–sort選項排序,方便查看)
ps aux --sort=-%mem | grep 200M
此命令顯示內存使用率超過200MB的進程。
-
組合過濾條件:
ps aux | grep 'process_name' | grep username | grep S
此命令顯示名稱包含”process_name”,屬于”username”用戶,且狀態為”S”的進程。
避免grep自身進程干擾:
grep命令本身也會作為進程顯示在結果中。為了避免這種情況,請使用以下技巧:
ps aux | grep '[p]rocess_name'
通過在process_name前添加[p],可以有效排除grep自身進程。
掌握以上方法,您可以靈活運用ps和grep命令,精準過濾Linux系統中的進程,方便系統管理和故障排查。