一、ps-ef|grep命令的基本使用
Linux系統中有很多進程在運行,如果需要查看哪些進程正在運行,可以使用ps命令來查看。但是ps命令的輸出結果很多,如果需要篩選出特定的進程,可以使用管道符加上grep命令來完成。具體使用方法如下:
ps -ef | grep 進程名
其中,-e選項表示列出所有的進程,-f選項表示列出完整的進程信息。上述命令中,管道符「|」將ps輸出的信息作為grep命令的輸入,grep命令則根據進程名來篩選出特定的進程。
ps-ef|grep命令的輸出結果包括進程的PID(進程ID)、運行用戶、進程所佔用的CPU和內存等信息。通過這些信息,可以快速地定位特定的進程。
實例:
列出所有的apache2進程:
ps -ef | grep apache2
輸出結果:
root 7323 1 0 2019 ? 00:00:02 /usr/sbin/apache2 -k start www-data 10872 7323 0 May07 ? 00:00:00 /usr/sbin/apache2 -k start www-data 10873 7323 0 May07 ? 00:00:00 /usr/sbin/apache2 -k start www-data 10874 7323 0 May07 ? 00:00:00 /usr/sbin/apache2 -k start
上述結果表示有四個apache2進程正在運行,其中7323是父進程的PID,其他三個進程的PPID(父進程ID)都是7323。
二、ps-ef|grep命令的高級使用
1. 使用正則表達式
ps-ef|grep命令不僅可以使用精確的進程名來查找進程,還可以使用正則表達式來模糊匹配進程名。例如,要查找所有以nginx開頭的進程,可以使用以下命令:
ps -ef | grep ^nginx
上述命令中,^表示匹配以nginx開頭的進程名。
2. 查找除自己以外的所有進程
如果需要查找除當前進程以外的所有進程,可以使用以下命令:
ps -ef | grep 進程名 | grep -v grep | grep -v $$
上述命令中,-v選項表示反選,將grep命令自身和當前進程過濾掉,只留下其他進程。
3. 查找指定用戶的進程
如果需要查找指定用戶的進程,可以使用以下命令:
ps -ef | grep 進程名 | grep -v grep | grep username
上述命令中,username表示要查找的用戶的用戶名。
4. 查找指定埠的進程
如果需要查找監聽指定埠的進程,可以使用以下命令:
netstat -tlnp | grep 埠號
上述命令中,-t選項表示顯示TCP協議的埠,-l選項表示顯示正在監聽的埠,-n選項表示顯示埠號,-p選項表示顯示進程信息。
5. 查找最消耗資源的進程
如果需要查找當前系統中最消耗CPU和內存資源的進程,可以使用以下命令:
ps -eo pid,ppid,user,cmd,%mem,%cpu --sort=-%mem | head
上述命令中,-eo選項指定輸出的信息,包括進程的PID、PPID、運行用戶、命令名、佔用的內存百分比和佔用的CPU百分比。–sort=-%mem表示按照內存佔用率倒序排序,head命令則只顯示前幾條結果。
三、小結
ps-ef|grep命令是Linux系統中常用的進程查詢命令,可以通過精確或模糊匹配進程名、指定埠號或用戶等方式來篩選特定的進程。此外,還可以使用管道符組合其他命令來實現更高級的進程查詢。
掌握ps-ef|grep命令的使用方法,可以提高Linux系統進程查詢的效率,更好地管理系統進程。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/220005.html