Linux?ps命令詳解及Linux查看進(jìn)程的操作方法
作用:查看系統(tǒng)進(jìn)程,比如正在運(yùn)行的進(jìn)程有哪些,什么時候開始運(yùn)行的,哪個用戶運(yùn)行的,占用了多少資源。
參數(shù):
- -e 顯示所有進(jìn)程
- -f 顯示所有字段(UID,PPIP,C,STIME字段)
- -a 顯示一個終端的所有進(jìn)程
- -u 顯示當(dāng)前用戶進(jìn)程和內(nèi)存使用情況
- -x 顯示沒有控制終端的進(jìn)程
- –sort 按照列名排序
一、常用操作
ps命令常用的方式有三種:
ps -ef
:查看所有進(jìn)程ps -aux
:查看所有進(jìn)程ps -ef | grep tomcat
:查看指定進(jìn)程
1、查看所有進(jìn)程(連帶命令行)
ps -ef
字段解釋:
- UID:用戶ID,即進(jìn)程的擁有者
- PID:進(jìn)程ID
- PPID:父進(jìn)程ID
- C:進(jìn)程占用的CPU百分比
- STIME:進(jìn)程開始啟動時間
- TTY:登入者的終端機(jī)位置
- TIME:進(jìn)程使用的CPU(運(yùn)算)時間
- CMD:調(diào)用進(jìn)程的命令
2、顯示所有包含其他使用者的進(jìn)程
ps -aux
字段解釋:
- USER:創(chuàng)建進(jìn)程的用戶
- PID:進(jìn)程ID
- %CPU:進(jìn)程占用CPU的百分比
- %MEM:進(jìn)程占用物理內(nèi)存的百分比
- VSZ:進(jìn)程占用虛擬內(nèi)存的大?。▎挝籏B)
- RSS:進(jìn)程占用實(shí)際物理內(nèi)存的大?。▎挝籏B)
- TTY:進(jìn)程在哪個終端運(yùn)行。
- STAT:進(jìn)程狀態(tài)
- START:進(jìn)程開始啟動的時間
- TIME:進(jìn)程使用的CPU(運(yùn)算)時間
- COMMAND:調(diào)用進(jìn)程的命令
3、查看指定進(jìn)程(grep過濾)
ps -ef
通常會配合 grep
來過濾指定的進(jìn)程,比如
搜索 mysql 的進(jìn)程:ps -ef | grep mysql
搜索 tomcat 的進(jìn)程:ps -ef | grep tomcat
4、查看CPU/內(nèi)存占用率最高的進(jìn)程
1)查看進(jìn)程的時候,讓進(jìn)程按照CPU使用率排序,然后展示前10行,就能清晰地看到哪些進(jìn)程占用的資源比較多。
PS1:head -11
是因?yàn)闃?biāo)題也算一行
PS2:+
、-
號可以調(diào)整排序,-pcpu
表示降序,+pcpu
表示升序
ps -aux --sort=-pcpu | head -11
2)同理,把 -pcpu
換成 -pmem
,就能查看內(nèi)存使用最多的10個進(jìn)程。
ps -aux --sort=-pmem | head -11
3)如果不限制行數(shù),也可以使用 sort
按照指定的列排序
降序:
ps -aux | sort -nk 4 -r
升序:
ps -aux | sort -nk 4
5、查看指定用戶的進(jìn)程
查看某個用戶開啟了哪些進(jìn)程,可以使用 -u
參數(shù)指定用戶名,比如,查看root用戶的進(jìn)程有哪些:
ps -u root -ef
6、分頁查看進(jìn)程
除了 grep 外,還可以配合 more 分頁查看進(jìn)程:ps -ef | more
翻頁的操作同 more 命令,q鍵退出,空格鍵翻頁
二、拓展
1、TTY字段(終端類型)
TTY字段表示運(yùn)行進(jìn)程的終端是哪個,這里的終端類型有兩種:tty和pts。
- tty:表示物理終端,其中
tty1~6
是本地字符界面終端,tty7
是本地圖形終端 - pts:表示虛擬終端,通常指遠(yuǎn)程連接的終端,范圍是
pts/0~255
,比如第一個遠(yuǎn)程連接的終端是pts/0
,第二個遠(yuǎn)程連接的終端是pts/1
,依次類推。
2、STAT字段(進(jìn)程狀態(tài))
STAT字段表示進(jìn)程的狀態(tài),常見的狀態(tài)有以下幾種:
- D:睡眠狀態(tài)(不可被喚醒),常用于I/O情況。
- R:進(jìn)程正在運(yùn)行
- S:睡眠狀態(tài)(可被喚醒)
- T:停止?fàn)顟B(tài)
- W:內(nèi)存交互狀態(tài)
- Z:僵尸進(jìn)程(不存在但暫時無法消除)
- <:高優(yōu)先級
- N:低優(yōu)先級
- L:被鎖入內(nèi)存
- s:包含子進(jìn)程
- l:多線程
- +:位于后臺
3、僵尸進(jìn)程
進(jìn)程由于非正常停止或程序編寫錯誤,導(dǎo)致子進(jìn)程比父進(jìn)程先結(jié)束,而父進(jìn)程又沒有正?;厥兆舆M(jìn)程,使子進(jìn)程一直在內(nèi)存中,導(dǎo)致資源浪費(fèi)。這種情況就是僵尸進(jìn)程。
PS:正常情況下應(yīng)該是父進(jìn)程先結(jié)束,然后子進(jìn)程由init接管,init 結(jié)束子進(jìn)程并回收對應(yīng)的資源。
到此這篇關(guān)于Linux ps命令詳解,Linux查看進(jìn)程的文章就介紹到這了,更多相關(guān)Linux ps命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux shell 自定義函數(shù)方法(定義、返回值、變量作用域)
linux shell 可以用戶定義函數(shù),然后在shell腳本中可以隨便調(diào)用。下面說說它的定義方法,以及調(diào)用需要注意那些事項(xiàng)2014-09-09Linux Shell腳本系列教程(三):變量和環(huán)境變量
這篇文章主要介紹了Linux Shell腳本系列教程(三):變量和環(huán)境變量,本文講解了普通變量、獲取字符串的長度、環(huán)境變量等內(nèi)容,需要的朋友可以參考下2015-06-06Shell腳本判斷Linux系統(tǒng)是32位還是64位的幾種方法分享
這篇文章主要介紹了Shell腳本判斷Linux系統(tǒng)是32位還是64位的幾種方法分享,本文共給出了4種方法實(shí)現(xiàn)系統(tǒng)位數(shù)在判斷,需要的朋友可以參考下2014-12-12linux軟件版本管理命令update-alternatives使用詳解
這篇文章主要介紹了linux軟件版本管理命令update-alternatives使用詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04shell腳本定時備份MySQL數(shù)據(jù)庫數(shù)據(jù)并保留指定時間
這篇文章主要介紹了shell腳本定時備份MySQL數(shù)據(jù)庫數(shù)據(jù)并保留指定時間,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09