十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
使用ps命令時,發(fā)現(xiàn)部分用戶顯示的是用戶名,有些用戶顯示的是UID,例如nmon程序的運(yùn)行時webmaster,但是ps顯示的不是直接顯示uid 500。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了湘鄉(xiāng)免費(fèi)建站歡迎大家使用!
通過man發(fā)現(xiàn):8位用戶名的賬戶能夠顯示完整的用戶名,9位用戶名的賬戶就顯示了UID使用下面的命令來解決;
ps -o ruser=userForLongName -e -o pid,ppid,c,stime,tty,time,cmd
注意:“userForLongName”是隨便填寫的,Linux會自動檢查此字符串的長度,為15,則15位以下的用戶名都可以正常顯示。
Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統(tǒng)中當(dāng)前運(yùn)行的那些進(jìn)程。
ps命令列出的是當(dāng)前那些進(jìn)程的快照,就是執(zhí)行ps命令的那個時刻的那些進(jìn)程,如果想要動態(tài)的顯示進(jìn)程信息,就可以使用top命令。
要對進(jìn)程進(jìn)行監(jiān)測和控制,首先必須要了解當(dāng)前進(jìn)程的情況,也就是需要查看當(dāng)前進(jìn)程,而 ps 命令就是最基本同時也是非常強(qiáng)大的進(jìn)程查看命令。
使用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒有僵死、哪些進(jìn)程占用了過多的資源等等??傊蟛糠中畔⒍际强梢酝ㄟ^執(zhí)行該命令得到的。
1、ps -ef表示bai查看全格式的全部進(jìn)程。
ps是linux下最常用的也是非常強(qiáng)大的進(jìn)程查看命令,常配合管道命令 | 和查找命令 grep 同時執(zhí)行來查看特定進(jìn)程。
參數(shù)含義:
-e 顯示所有進(jìn)程。-f 全格式。-h 不顯示標(biāo)題。-l 長格式。-w 寬輸出。a 顯示終端上的所有進(jìn)程,包括其他用戶的進(jìn)程。r 只顯示正在運(yùn)行的進(jìn)程。x 顯示沒有控制終端的進(jìn)程。
2、擴(kuò)展資料:
進(jìn)程狀態(tài):
R 運(yùn)行,正在運(yùn)行或在運(yùn)行隊(duì)列中等待。
S 中斷,休眠中, 受阻, 在等待某個條件的形成或接受到信號。
D 不可中斷,收到信號不喚醒和不可運(yùn)行, 進(jìn)程必須等待直到有中斷發(fā)生。
Z 僵死 ,進(jìn)程已終止, 但進(jìn)程描述符存在, 直到父進(jìn)程調(diào)用wait4()系統(tǒng)調(diào)用后釋放。
T 停止,進(jìn)程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號后停止運(yùn)行運(yùn)行。
3、grep命令是查找
中間的|是管道命令 是指ps命令與grep同時執(zhí)行
PS是LINUX下最常用的也是非常強(qiáng)大的進(jìn)程查看命令
grep命令是查找,是一種強(qiáng)大的文本搜索工具,它能 使用正則表達(dá)式 搜索文本,并把匹配的行打印出來。
grep全稱是Global Regular Expression Print,表示全局正則表達(dá)式版本,它的使用權(quán)限是所有用戶。
以下這條命令是檢查java 進(jìn)程是否存在:ps -ef |grep java
字段含義如下:
UID ? ? ? PID ? ??? PPID ? ?? C???? STIME ?? TTY ? ??? TIME?????????CMD
zzw??????14124?? 13991????? 0???? 00:38????? pts/0????? 00:00:00??? grep --color=auto dae
UID????? :程序被該 UID 所擁有
PID????? :就是這個程序的 ID?
PPID??? :則是其上級父程序的ID
C????????? :CPU使用的資源百分比
STIME :系統(tǒng)啟動時間
TTY???? :登入者的終端機(jī)位置
TIME???:使用掉的CPU時間。
CMD?? :所下達(dá)的是什么指令
ps -e|grep dae
Linux ps命令,英文全拼process
status。用于顯示當(dāng)前進(jìn)程的狀態(tài),類似于Windows的任務(wù)管理器。運(yùn)用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行地狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒有僵死、哪些進(jìn)程占用了過多地資源等等。
Linux系統(tǒng)中ps命令如何使用?
語法
ps [options] [--help]
參數(shù)(ps的參數(shù)比較多,在這里為大家簡單列舉幾個常用的)
-A 列出所有的進(jìn)程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細(xì)的資訊
-aux 顯示所有包含其他使用者的行程
au(x) 輸出格式:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER:行程擁有者
PID:pid
%CPU:占用的CPU使用率
%MEM:占用的記憶體使用率
VSZ:占用的虛擬記憶體大小
RSS:占用的記憶體大小
TTY:終端的次要裝置號碼
STAT:該行程的狀態(tài)
①D 無法中斷的休眠狀態(tài)
②R 正在執(zhí)行中
③S 靜止?fàn)顟B(tài)
④T 暫停執(zhí)行
⑤Z 不存在但暫時無法消除
⑥W 沒有足夠的記憶體分頁可分配
⑦ 高優(yōu)先序的行程
⑧N 低優(yōu)先序的行程
⑨L 有記憶體分頁分配并鎖在記憶體內(nèi)
START:行程開始時間
TIME:執(zhí)行的時間
COMMAND:所執(zhí)行的指令
Linux下顯示系統(tǒng)進(jìn)程的命令ps,最常用的有ps -ef 和ps aux。這兩個到底有什么區(qū)別呢?兩者沒太大差別,討論這個問題,要追溯到Unix系統(tǒng)中的兩種風(fēng)格,System V風(fēng)格和BSD 風(fēng)格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,兩者輸出略有不同。現(xiàn)在的大部分Linux系統(tǒng)都是可以同時使用這兩種方式的。
ps -ef 是用標(biāo)準(zhǔn)的格式顯示進(jìn)程的、其格式如下:?
其中各列的內(nèi)容意思如下?
UID //用戶ID、但輸出的是用戶名?
PID //進(jìn)程的ID?
PPID //父進(jìn)程ID?
C //進(jìn)程占用CPU的百分比?
STIME //進(jìn)程啟動到現(xiàn)在的時間?
TTY //該進(jìn)程在那個終端上運(yùn)行,若與終端無關(guān),則顯示? 若為pts/0等,則表示由網(wǎng)絡(luò)連接主機(jī)進(jìn)程。?
CMD //命令的名稱和參數(shù)
ps aux 是用BSD的格式來顯示、其格式如下:?
同ps -ef 不同的有列有?
USER //用戶名?
%CPU //進(jìn)程占用的CPU百分比?
%MEM //占用內(nèi)存的百分比?
VSZ //該進(jìn)程使用的虛擬內(nèi)存量(KB)?
RSS //該進(jìn)程占用的固定內(nèi)存量(KB)(駐留中頁的數(shù)量)?
STAT //進(jìn)程的狀態(tài)?
START //該進(jìn)程被觸發(fā)啟動時間?
TIME //該進(jìn)程實(shí)際使用CPU運(yùn)行的時間
其中STAT狀態(tài)位常見的狀態(tài)字符有?
D //無法中斷的休眠狀態(tài)(通常 IO 的進(jìn)程);?uninterruptible sleep (usually IO)不可中斷?
R //正在運(yùn)行可中在隊(duì)列中可過行的;?
S //處于休眠狀態(tài);?
T //停止或被追蹤;?traced or stopped?
W //進(jìn)入內(nèi)存交換 (從內(nèi)核2.6開始無效);?
X //死掉的進(jìn)程 (基本很少見);?
Z //僵尸進(jìn)程;??a defunct (”zombie”) process
//優(yōu)先級高的進(jìn)程?
N //優(yōu)先級較低的進(jìn)程?
L //有些頁被鎖進(jìn)內(nèi)存;?
s //進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程);?
l //多線程,克隆線程(使用 CLONE_THREAD, 類似 NPTL pthreads);?
+ //位于后臺的進(jìn)程組;
How to get all process ids without ps command on Linux?
On Linux, all running process have "metadata" stored in the? /proc filesystem .
# man? ps??
# ps -C sshd --no-header
# ps -C dockerd --no-header
-C cmdlist
Select by command name.? This selects the processes whose executable name is given in cmdlist.
you can use the long options --headers and --no-headers to enable printing headers each page or disable headers entirely, respectively.
#??ps -eo nlwp,pcpu,user,pid,ppid,args? --sort nlwp??
注:以?nlwp排序,默認(rèn)正序
LWP -- 輕量級進(jìn)程,即線程
NLWP --線程數(shù),即 number of threads in process
#? ps -eo pid,cmd,%mem,%cpu --sort=-%mem
Thecommand is highly valuable for system admins during troubleshooting the system.?
You can display the processes list in a sorted manner to find out the highest memory usage processes.
#? ps -mp? ?${pid}? ? -o? ?THREAD,tid,time
參數(shù)解釋:
-m:顯示所有的線程
-p:pid進(jìn)程使用CPU的時間
-o:該參數(shù)后是用戶自定義格式。
如:THREAD,tid,time表示線程、線程ID號、線程占用的時間。
$ ps -Hp? ?${pid}??
ps(1) — Linux manual page
Linux PS command with examples
How to get all process ids without ps command on Linux?
What is the difference between ps and top command?
ps [options] [—help]
ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C 指令名稱][-g 群組名稱]
[-G 群組識別碼][-p 進(jìn)程識別碼][p 進(jìn)程識別碼][-s 階段作業(yè)]
[-t 終端機(jī)編號][t 終端機(jī)編號][-u 用戶識別碼][-U 用戶識別碼]
[U 用戶名稱][-進(jìn)程識別碼][--cols 每列字符數(shù)]
[--columns 每列字符數(shù)][--cumulative][--deselect][--forest]
[--headers][--help][-- info][--lines 顯示列數(shù)][--no-headers]
[--group 群組名稱][-Group 群組識別碼][--pid 進(jìn)程識別碼]
[--rows 顯示列數(shù)][--sid 階段作業(yè)][--tty 終端機(jī)編號]
[--user 用戶名稱][--User 用戶識別碼][--version]
[--width 每列字符數(shù)]
? ?-a? 顯示所有終端機(jī)下執(zhí)行的進(jìn)程,除了階段作業(yè)領(lǐng)導(dǎo)者之外
a? 顯示現(xiàn)行終端機(jī)下的所有進(jìn)程,包括其他用戶的進(jìn)程
-A? 顯示所有進(jìn)程
-c? 顯示CLS和PRI欄位
c? 列出進(jìn)程時,顯示每個進(jìn)程真正的指令名稱,而不包含路徑,參數(shù)或常駐服務(wù)的標(biāo)示
-C指令名稱 指定執(zhí)行指令的名稱,并列出該指令的進(jìn)程的狀況
-d 顯示所有進(jìn)程,但不包括階段作業(yè)領(lǐng)導(dǎo)者的進(jìn)程
-e 此參數(shù)的效果和指定"A"參數(shù)相同
e 列出進(jìn)程時,顯示每個進(jìn)程所使用的環(huán)境變量
-f 顯示UID,PPIP,C與STIME欄位
f 用ASCII字符顯示樹狀結(jié)構(gòu),表達(dá)進(jìn)程間的相互關(guān)系
-g群組名稱 此參數(shù)的效果和指定"-G"參數(shù)相同,當(dāng)亦能使用階段作業(yè)領(lǐng)導(dǎo)者的名稱來指定
g 顯示現(xiàn)行終端機(jī)下的所有進(jìn)程,包括群組領(lǐng)導(dǎo)者的進(jìn)程
-G群組識別碼 列出屬于該群組的進(jìn)程的狀況,也可使用群組名稱來指定
h 不顯示標(biāo)題列
-H 顯示樹狀結(jié)構(gòu),表示進(jìn)程間的相互關(guān)系
-j或j 采用工作控制的格式顯示進(jìn)程狀況
-l或l 采用詳細(xì)的格式來顯示進(jìn)程狀況
L 列出欄位的相關(guān)信息
-m或m 顯示所有的執(zhí)行緒
n 以數(shù)字來表示USER和WCHAN欄位
-N 顯示所有的進(jìn)程,除了執(zhí)行ps指令終端機(jī)下的進(jìn)程之外
-p進(jìn)程識別碼 指定進(jìn)程識別碼,并列出該進(jìn)程的狀況
? ?p進(jìn)程識別碼 此參數(shù)的效果和指定"-p"參數(shù)相同,只在列表格式方面稍有差異
r 只列出現(xiàn)行終端機(jī)正在執(zhí)行中的進(jìn)程
-s階段作業(yè) 指定階段作業(yè)的進(jìn)程識別碼,并列出隸屬該階段作業(yè)的進(jìn)程的狀況
? ? s 采用進(jìn)程信號的格式顯示進(jìn)程狀況
S 列出進(jìn)程時,包括已中斷的子進(jìn)程資料
-t終端機(jī)編號 指定終端機(jī)編號,并列出屬于該終端機(jī)的進(jìn)程的狀況
t終端機(jī)編號 此參數(shù)的效果和指定"-t"參數(shù)相同,只在列表格式方面稍有差異
-T 顯示現(xiàn)行終端機(jī)下的所有進(jìn)程
-u用戶識別碼 此參數(shù)的效果和指定"-U"參數(shù)相同
u 以用戶為主的格式來顯示進(jìn)程狀況
-U用戶識別碼 列出屬于該用戶的進(jìn)程的狀況,也可使用用戶名稱來指定
U用戶名稱 列出屬于該用戶的進(jìn)程的狀況
v 采用虛擬內(nèi)存的格式顯示進(jìn)程狀況
-V或V 顯示版本信息
-w或w 采用寬闊的格式來顯示進(jìn)程狀況。
? ?x 顯示所有進(jìn)程,不以終端機(jī)來區(qū)分
? ?X 采用舊式的Linux i386登陸格式顯示進(jìn)程狀況
? ?-y 配合參數(shù)"-l"使用時,不顯示F(flag)欄位,并以RSS欄位取代ADDR欄位
-進(jìn)程識別碼 此參數(shù)的效果和指定"p"參數(shù)相同
--cols每列字符數(shù) 設(shè)置每列的最大字符數(shù)
--columns每列字符數(shù) 此參數(shù)的效果和指定"--cols"參數(shù)相同
--cumulative 此參數(shù)的效果和指定"S"參數(shù)相同
--deselect 此參數(shù)的效果和指定"-N"參數(shù)相同
--forest 此參數(shù)的效果和指定"f"參數(shù)相同
--headers 重復(fù)顯示標(biāo)題列
--help 在線幫助
--info 顯示排錯信息
--lines顯示列數(shù) 設(shè)置顯示畫面的列數(shù)
--no-headers? 此參數(shù)的效果和指定"h"參數(shù)相同,只在列表格式方面稍有差異
--group群組名稱 此參數(shù)的效果和指定"-G"參數(shù)相同
--Group群組識別碼 此參數(shù)的效果和指定"-G"參數(shù)相同
--pid進(jìn)程識別碼 此參數(shù)的效果和指定"-p"參數(shù)相同
--rows顯示列數(shù) 此參數(shù)的效果和指定"--lines"參數(shù)相同
--sid階段作業(yè) 此參數(shù)的效果和指定"-s"參數(shù)相同
--tty終端機(jī)編號 此參數(shù)的效果和指定"-t"參數(shù)相同
--user用戶名稱 此參數(shù)的效果和指定"-U"參數(shù)相同
--User用戶識別碼 此參數(shù)的效果和指定"-U"參數(shù)相同
--version 此參數(shù)的效果和指定"-V"參數(shù)相同
? ?--widty每列字符數(shù) 此參數(shù)的效果和指定"-cols"參數(shù)相同
? ?-A 列出所有的行程
? ?-w 顯示加寬可以顯示較多的資訊
? -au 顯示較詳細(xì)的資訊
? -aux 顯示所有包含其他使用者的行程
linux上進(jìn)程有5種狀態(tài):?
1.?運(yùn)行(正在運(yùn)行或在運(yùn)行隊(duì)列中等待)?
2.?中斷(休眠中,?受阻,?在等待某個條件的形成或接受到信號)?
3.?不可中斷(收到信號不喚醒和不可運(yùn)行,?進(jìn)程必須等待直到有中斷發(fā)生)?
4.?僵死(進(jìn)程已終止,?但進(jìn)程描述符存在,?直到父進(jìn)程調(diào)用wait4()系統(tǒng)調(diào)用后釋放)?
5.?停止(進(jìn)程收到SIGSTOP,?SIGSTP,?SIGTIN,?SIGTOU信號后停止運(yùn)行運(yùn)行)?
ps工具標(biāo)識進(jìn)程的5種狀態(tài)碼:?
D?不可中斷?uninterruptible?sleep?(usually?IO)?
R?運(yùn)行?runnable?(on?run?queue)?
S?中斷?sleeping?
T?停止?traced?or?stopped?
Z?僵死?a?defunct?(”zombie”)?process?
1、# ps aux //顯示所有正在內(nèi)存中的程序
USER:該?process?屬于那個使用者賬號的
PID?:該?process?的號碼
%CPU:該?process?使用掉的?CPU?資源百分比
%MEM:該?process?所占用的物理內(nèi)存百分比
VSZ?:該?process?使用掉的虛擬內(nèi)存量?(Kbytes)
RSS?:該?process?占用的固定的內(nèi)存量?(Kbytes)
TTY?:該?process?是在那個終端機(jī)上面運(yùn)作,若與終端機(jī)無關(guān),則顯示??,另外,?tty1-tty6?是本機(jī)上面的登入者程序,若為?pts/0?等等的,則表示為由網(wǎng)絡(luò)連接進(jìn)主機(jī)的程序。
STAT:該程序目前的狀態(tài),主要的狀態(tài)有
R?:該程序目前正在運(yùn)作,或者是可被運(yùn)作
S?:該程序目前正在睡眠當(dāng)中?(可說是?idle?狀態(tài)),但可被某些訊號?(signal)?喚醒。
D: 無法中斷的休眠狀態(tài) (通常 IO 的進(jìn)程)
T?:該程序目前正在偵測或者是停止了
Z?:該程序應(yīng)該已經(jīng)終止,但是其父程序卻無法正常的終止他,造成?zombie?(疆尸)?程序的狀態(tài)
: 高優(yōu)先序的行程
N: 低優(yōu)先序的行程
L: 有記憶體分頁分配并鎖在記憶體內(nèi) (實(shí)時系統(tǒng)或捱A I/O)
START:該?process?被觸發(fā)啟動的時間
TIME?:該?process?實(shí)際使用?CPU?運(yùn)作的時間
COMMAND:該程序的實(shí)際指令
2、# ps -A 顯示進(jìn)程信息
3、# ps -u work //顯示work進(jìn)程用戶信息
4、# ps -ef //顯示所有命令,連帶命令行
5、# ps -l //將屬于自己這次登入的pid與相關(guān)信息顯示出來
F:代表這個程序的旗標(biāo)?(flag),?4?代表使用者為?super?user
S:代表這個程序的狀態(tài)?(STAT)
UID:程序被該?UID?所擁有
PID:就這個程序的?ID?
PPID:其上級父程序的ID
C:CPU使用的資源百分比
PRI:?Priority?(優(yōu)先執(zhí)行序)?的縮寫
NI:?Nice?值
ADDR:kernel?function,指出該程序在內(nèi)存的那個部分。如果是個?running的程序,一般就是?"-"
SZ:使用掉的內(nèi)存大小
WCHAN:目前這個程序是否正在運(yùn)作當(dāng)中,若為?-?表示正在運(yùn)作
TTY:登入者的終端機(jī)位置
TIME:使用掉的?CPU?時間。
CMD:所下達(dá)的指令為何
在預(yù)設(shè)的情況下,?ps?僅會列出與目前所在的?bash?shell?有關(guān)的?PID,所以,?當(dāng)使用?ps?-l?的時候,只有三個?PID。
6、其他
1)可以用?|?管道和?more?連接起來分頁查看
命令:ps?-aux?|more
2)把所有進(jìn)程顯示出來,并輸出到ps001.txt文件
命令:ps?-aux??ps001.txt
3)輸出指定的字段
命令:ps -o pid,ppid,pgrp,session,tpgid,comm