對於在linux系統開發的工程師來講,ps命令是常常使用的命令,這個命令能夠用來查看進程的進程id,父進程id,進程狀態等信息,可是對於ps的用法卻總感受不是很熟悉的感受,這裏特地花時間整理了ps命令的疑點和經常使用方式。php
首先ps是一個有歷史的命令,在unix時期就已經存在,後來linux系統也繼承了這個命令,同時其功能是同樣的,可是因爲系統建立者不一樣,其展現風格有差別,總共有三種風格:linux
UNIX 風格,選項能夠組合在一塊兒, 選項前必須有「-」連字符nginx
BSD 風格,選項能夠組合在一塊兒,可是選項前不能有「-」連字符。BSD是unix的一個分支php-fpm
GNU 風格的長選項,選項前有兩個「-」連字符。GUN計劃,後來發展出了Linuxunix
例如 ps -ef 是unix風格 而 ps aux就是BSD風格,orm
兩種風格顯示的選項仍是有一點的差異的,可是今天的重點是瞭解ps命令的選項及列的內涵,只有這樣才能在咱們須要查看進程的信息時能準確的獲取到而不是像之前同樣對其只知其一;不知其二。cdn
ps的-A 是顯示系統運行的全部進程,無論是後臺進程,仍是與終端無關的進程或者是會話進程。blog
ps -e 這個和上面的效果是同樣。繼承
ps -a 顯示除了會話的建立者(在linux這種多用戶系統中,每一個用戶登陸就是一個會話,而後其建立的進程就屬於這個會話進行管理)和與終端無關的進程----終端無關的進程就是 tty那列顯示問號的?。進程
ps a顯示全部和終端有關的進程,就是 tty那列不爲?的。(與終端有關仍是無關是決定這個進程在窗口關閉後是否還能繼續執行的關鍵,好比nginx和php-fpm這種進程就不能與終端有關,須要一直在後臺運行)。
ps T 顯示當前終端的進程,就是tty列爲當前終端值的進程。
ps x 顯示屬於當前用戶的進程 等於 ps -u 用戶名。
ps -ax 這個值不存在 只有 ps ax 結果就是 ps -A或ps -e。
ps -d 顯示除了會話建立者外的全部進程。
ps -f 表示full 表示詳細內容。
ps -H hierarchy表是層級關係,這個不太經常使用,能夠忽略。
ps C 表示cpu佔用。
ps -o 後邊跟 format 格式。
ps -eo pid,ppid,s(進程狀態 就是stat),cmd(運行進程的命令),tty,etime(進程運行的時長,e是elapse的縮寫),lstart(進程開始時間),uname(用戶名)。
鏈接了上面這些選項後 ps這個命令在平常的使用中基本算是掌握了。對於這個命令中的終端,會話等概念會在下篇文章進行講解。