linux常用命令之ps(詳細參數講解)
不論是windows係統還是linux係統,在係統運行時,都會有程序隨之運行,我們將這個程序稱之為進程(process)。
windows可以直接用任務管理器查看,那麼linux是如何查看係統進程的呢?
想要在linux中查看這些進程,就需要熟悉ps命令的用法,它能輸出運行在係統上的所有程序的信息,但是ps的參數很多,而且大多數參數是不常用的,一般我們用到的就是那麼幾種而已。
ps選項三種風格
1 、UNIX options, which may be grouped and must be preceded by a dash.UNIX風格,必須帶一個“-”使用
2、 BSD options, which may be grouped and must not be used with a dash.BSD風格,不帶“-”使用
3、 GNU long options, which are preceded by two dashes.GNU風格,必須帶“--”
Unix風格的參數
最早由KenThompson、Dennis Ritchie和Douglas McIlroy於1969年在美國電話電報公司(AT&T)的貝爾實驗室開發,從Unix係統上原有的ps命令繼承下來的(想了解更多就去百科看看)
Unix風格的ps命令參數及描述
-A all processes 顯示所有的進程
-N negate selection 顯示與指定參數不符的進程
-a all w/ tty except session leaders 顯示除控製進程和無終端進程外的所有進程
-d all except session leaders 顯示除控製進程外的所有進程
-e all processes 顯示所有的進程
-C cmdlist by command name 顯示包含在cmdlist列表中的進程
-G grouplist by real group ID (supports names) 顯示組ID在grouplist列表中的進程
-U userlist by real user ID (supports names) 顯示屬主的用戶ID在userlist列表中的進程
-g grouplist by session OR by effective group name 顯示組ID在grouplist列表中的進程
-p pid by process ID 顯示PID在pid列表中的進程
-q by process ID (unsorted & quick)
-s sessionlist processes in the sessions given 顯示會話ID在sessionlist列表中的進程
-t ttylist by tty 顯示終端ID在ttylist列表中的進程
-u userlist by effective user ID (supports names) 顯示有效用戶ID在userlist列表中的進程
-o,o fotmat user-defined 僅顯示由format指定的列
-j,j job control 顯示任務信息
-O,O preloaded -o 顯示默認的輸出列
-l,l long 顯示長列表
-F extra full 顯示更多額外輸出(相對於-f參數而言)
-f full 顯示完整格式的信息
-V,V show version 顯示ps的版本信息
-m,m,-L,-T,H threads 顯示所有的執行緒
-M,Z security data 顯示進程的安全信息
-w,w wide output 帶寬輸出模式,不限寬度顯示
-y change -l format 配合-l使用
-c scheduling class 顯示進程的額外調度信息
-H process hierarchy 用層級格式來顯示進程
其實說了這麼多的參數,一般情況下都用不到的,常用ps -ef
字段解釋:
UID 啟用這個進程的用戶
PID 進程ID
PPID 父進程ID
C CPU占用率
STIME 進程啟動時的係統時間
TTY 開始此進程的終端
TIME 此進程運行的總時間
CMD 啟動的程序名稱
F:內核分配給進程的係統標記
S:進程的狀態(O表示正在運行;S代表正在休眠;R代表運行態;Z代表僵死態;T代表停止)
PRI:進程的優先級
NI:用來參與決定優先級
ADDR:進程的內存地址
SZ:所需交換空間的大致大小
WCHAN:進程休眠的內核函數地址
BSD風格的參數
伯克利軟件發行版(Berkeley software distribution,BSD)是加州大學伯克利分校開發的一個Unix版本。它和Unix係統有許多細小的不同。
BSD風格的ps命令參數及描述
T all processes on this terminal 顯示跟當前終端關聯的所有進程
a all w/ tty, including other users 所有與終端相關的進程
g OBSOLETE -- DO NOT USE 顯示所有的進程,包括控製進程
r only running processes 僅顯示運行中的進程
x processes w/o controlling ttys 所有與終端無關的進程
U userlist processes for specified users 顯示歸userlist列表中某用戶ID所有的進程
t by tty 跟-t選項相同
s signal 采用信號格式顯示
v virtual memory 采用虛擬內存格式顯示
u user-oriented 以用戶為中心組織進程狀態信息顯示(顯示進程所有者的信息)
X registers 按i386寄存器格式顯示
L list format codes 列出所有格式指定符
S children in sum 列出程序時,包括已中斷的子程序
c true command name 顯示真實用以啟動進程的程序名稱
n numeric WCHAN,UID 和WCHAN信息一起顯示出來,用數值表示用戶ID和組ID
f ASCII art forest 用ASCII字符顯示樹狀結構,表達程序間的相互關係
Unix和BSD的參數有很多重複的地方,用不到的參數很多,常用ps aux
字段解釋:
USER:啟動進程的用戶
PID:進程號
%CPU:占用的CPU使用率
%MEM:內存空間占整個內存的比率
VSZ:占用的虛擬內存集,就是占用的虛擬內存大小
RSS:常駐內存集Resident Size,就是占用的固定的內存大小
TTY:終端
STAT:該進程目前的狀態
R:running運行態
S:interruptable sleeping可中斷睡眠
D:uninterruptable sleeping不可中斷睡眠
T:Stopped停止態
Z:zombie僵死態
+:前台進程
l:多線程進程
N:低優先級進程
<:高優先級進程
s:session leader會話引領者(在終端上啟動個shell,在shell程序上啟動好幾個進程,shell就是領導者)
START:被觸發啟動的時間
TIME:實際使用CPU運行的時間
COMMAND:該程序的實際指令
VSZ:進程在內存中的大小,以千字節(KB)為單位
RSS:進程在未換出時占用的物理內存
STAT:代表當前進程狀態的雙字符狀態碼(雙字符狀態碼能比Unix風格輸出的單字符狀態碼更清楚地表示進程的當前狀態)
GNU風格的參數
GNU開發人員在ps命令中加入了另外一些參數,其中一些GNU長參數複製了現有的Unix或BSD類型的參數,另一些則提供了新功能。
GNU風格的ps命令參數及描述
--Group grouplist 顯示組ID在grouplist列表中的進程,和“-G”選項相同
--User userlist 顯示用戶ID在userlist列表中的進程,和“-U”選項相同
--pid pidlist 顯示PID在pidlist列表中的進程,和“-p”選項相同
--cols n 將屏幕寬度設置n列
--ppid pidlist 顯示父PID在pidlist列表中的進程
--group grouplist 顯示有效組ID在grouplist列表中的進程,和“-G”選項相同
--user userlist 顯示有效用戶ID在userlist列表中的進程,和“-U”選項相同
--sid sidlist 顯示會話ID在sidlist列表中的進程
--rows n 將屏幕高度設置n排
--info 顯示調試信息
--cumulative 包含已停止的子進程信息
--format formatlist 僅顯示由formatlist指定的列
--deselect 顯示所有進程
--sort 指定輸出按哪列排序
--tty ttylist 顯示終端ID在ttylist列表中的進程,和“-t”選項相同
--forest 用層級結構顯示出進程和父進程之間的關係
--version 顯示ps的版本號,和“-V”選項相同
--heading 列的頭
--no-heading 不顯示列的頭
--context 顯示額外的安全信息
--help 顯示幫助
總結:其實好多參數是用不到的,最常用的兩種組合就是ps aux和ps -ef了。
最後更新:2017-06-28 09:32:13
上一篇:
Nginx報錯403 forbidden幾個解決方法
下一篇:
centos6關閉sendmail服務
JAVA學習筆記——集合
[ASP.NET MVC]為HtmlHelper添加一個RadioButtonList擴展方法
php新手入門必讀!
企業網站建設|優秀的網站都是靠這些細節做成功的
OpenSSL 在 Apache 和 Dovecot 下的使用(二)
Nutanix企業雲助力廣播傳媒的融合媒體發展之路
IBM WebSphere Application Server V6.1 Fix Pack 29於2010.01.18發布
再過3年 這項傳輸技術就比5G還快10倍
C寫個吃內存的測試LINUX 係統可用內存持續減少的原因
ASP.NET Web API中的Controller