一、基礎(chǔ)概念
指令:?ps
作用:查看系統(tǒng)進程,比如正在運行的進程有哪些,什么時候開始運行的,哪個用戶運行的,占用了多少資源。
參數(shù):
- -e ????顯示所有進程
- -f ????顯示所有字段(UID,PPIP,C,STIME字段)
- -h????不顯示標(biāo)題
- -l ????長格式
- -w????寬輸出
- -a ????顯示一個終端的所有進程
- -r????只顯示正在運行的進程。
- -u????顯示當(dāng)前用戶進程和內(nèi)存使用情況
- -x????顯示沒有控制終端的進程
- –sort ????按照列名排序
二、常用操作
ps命令常用的方式有三種:
- ps -ef:查看所有進程
- ps -aux:查看所有進程
- ps -ef | grep tomcat:查看指定進程(| 符號,是個管道符號,表示ps 和 grep 命令同時執(zhí)行)
1、查看所有進程(連帶命令行)
ps -ef
字段解釋:
- UID:用戶ID,即進程的擁有者
- PID:進程ID
- PPID:該進程的父級進程id,如果一個程序的父級進程找不到,該程序的進程被稱為僵尸進程
- C:cpu的占用率,形式是百分數(shù)(%)
- STIME:進程開始啟動時間
- TTY:終端設(shè)備,發(fā)起該進程的設(shè)備識別符號,如果顯示‘ ?’表示該進程并不是由終端發(fā)起
- TIME:進程的執(zhí)行時間
- CMD:該進程的名稱或?qū)?yīng)的路徑
2、顯示所有包含其他使用者的進程
ps -aux
字段解釋:
USER:創(chuàng)建進程的用戶
PID:進程ID
%CPU:進程占用CPU的百分比
%MEM:進程占用物理內(nèi)存的百分比
VSZ:進程占用虛擬內(nèi)存的大?。▎挝籏B)
RSS:進程占用實際物理內(nèi)存的大?。▎挝籏B)
TTY:進程在哪個終端運行。
STAT:進程狀態(tài)
START:進程開始啟動的時間
TIME:進程使用的CPU(運算)時間
COMMAND:調(diào)用進程的命令
3、查看指定進程(grep過濾,grep 命令是查找(Global Regular Expression Print),能使用正則表達式搜索文本,然后把匹配的行顯示出來)
ps -ef?通常會配合?grep?來過濾指定的進程,比如
搜索 mysql 的進程:ps -ef | grep mysql
搜索 tomcat 的進程:ps -ef | grep tomcat
4、查看CPU/內(nèi)存占用率最高的進程
1)查看進程的時候,讓進程按照CPU使用率排序,然后展示前10行,就能清晰地看到哪些進程占用的資源比較多。
PS1:head -11?是因為標(biāo)題也算一行
PS2:+、-號可以調(diào)整排序,-pcpu?表示降序,+pcpu?表示升序
ps -aux --sort=-pcpu | head -11
2)同理,把?-pcpu?換成?-pmem,就能查看內(nèi)存使用最多的10個進程。
ps -aux --sort=-pmem | head -11
3)如果不限制行數(shù),也可以使用?sort?按照指定的列排序
降序:
ps -aux | sort -nk 4 -r
升序:
ps -aux | sort -nk 4
5、查看指定用戶的進程
查看某個用戶開啟了哪些進程,可以使用?-u?參數(shù)指定用戶名,比如,查看root用戶的進程有哪些:
ps -u root -ef
6、分頁查看進程
除了 grep 外,還可以配合 more 分頁查看進程:ps -ef | more
翻頁的操作同 more 命令,q鍵退出,空格鍵翻頁
三、拓展
1、TTY字段(終端類型)
TTY字段表示運行進程的終端是哪個,這里的終端類型有兩種:tty和pts。
2、STAT字段(進程狀態(tài))
STAT字段表示進程的狀態(tài),常見的狀態(tài)有以下幾種:
- D:睡眠狀態(tài)(不可被喚醒),常用于I/O情況。
- R:進程正在運行
- S:睡眠狀態(tài)(可被喚醒)
- T:停止?fàn)顟B(tài)
- W:內(nèi)存交互狀態(tài)
- Z:僵尸進程(不存在但暫時無法消除)
- <:高優(yōu)先級
- N:低優(yōu)先級
- L:被鎖入內(nèi)存
- s:包含子進程
- l:多線程
- +:位于后臺
3、僵尸進程
進程由于非正常停止或程序編寫錯誤,導(dǎo)致子進程比父進程先結(jié)束,而父進程又沒有正?;厥兆舆M程,使子進程一直在內(nèi)存中,導(dǎo)致資源浪費。這種情況就是僵尸進程。文章來源:http://www.zghlxwxcb.cn/news/detail-784992.html
PS:正常情況下應(yīng)該是父進程先結(jié)束,然后子進程由init接管,init 結(jié)束子進程并回收對應(yīng)的資源。文章來源地址http://www.zghlxwxcb.cn/news/detail-784992.html
到了這里,關(guān)于Linux中 ps命令詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!