linux select 进程id,Linux基础命令---显示进程ps
ps
ps指令可以顯示系統中當前進程的信息,它的輸出結果是高度可定制的。如果您希望重復更新所選內容和顯示的信息,請使用top(1)代替。
請注意,“ps-aux”與“ps aux”不同。POSIX和UNIX標準要求“ps-aux”打印名為“x”的用戶擁有的所有進程,以及打印由-a選項選擇的所有進程。如果名為“x”的用戶不存在,此ps可以將命令解釋為“ps aux”,并打印警告。此行為旨在幫助轉換舊腳本和習慣。它是脆弱的,隨時可能發生變化,因此不應依賴它。
默認情況下,ps選擇所有具有相同有效用戶ID(EUID=EUID)的進程作為當前用戶,并與調用方相關聯的終端。它顯示進程ID(PID=PID)、與進程關聯的終端(tname=TTY)、[dd-]hh:mm:SS格式的累計CPU時間(time=TIME)和可執行名稱(ucmd=CMD)。默認情況下輸出未排序。
使用BSD樣式的選項將向默認顯示中添加進程狀態(stat=STAT),并顯示命令args(args=命令)而不是可執行名稱。您可以使用PS_FORMAT環境變量重寫此操作。使用BSD樣式的選項還將更改流程選擇,以包括您擁有的其他終端(TTY)上的進程;或者,這可以描述為將選擇設置為篩選的所有進程的集合,以排除其他用戶擁有的進程或終端上的進程。當選項被描述為“相同”時,不考慮這些影響,所以-M將被認為與Z相同等等。
此命令的適用范圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、語法
ps?[選項]
2、選項列表選項說明
--help顯示幫助文檔
-V | V | --version顯示命令版本
--info顯示調試信息
L列出所有的格式
簡單選項
-A | -e選擇所有進程
-N | --deselect反向選擇不符合條件的
T選擇符合的終端
-a選擇除會話進程和與終端無關的進程以外的所有進程。
a此選項導致ps列出帶有終端(TTY)的所有進程,或在與x選項一起使用時列出所有進程。
-d選擇所有進程,忽略進程所有者
g全部的進程,包含會話領導
r將選擇限制為僅運行進程。
x此選項導致ps列出您擁有的所有進程(與ps相同的EUID),或者在與a選項一起使用時列出所有進程。
多個選項這些選項以空白分隔或逗號分隔列表的形式接受單個參數。它們可以多次使用。
-Ccmdlist按命令名選擇。這將選擇在cmdlist中給出可執行名稱的進程。
-Ggrplist選擇進程所屬的組id與給定list匹配的進程
Uuserlist按有效用戶ID(EUID)或名稱選擇。有效用戶ID描述進程使用其文件訪問權限的用戶
-Uuserlist按實際用戶ID(RUID)或名稱進行選擇。真正的用戶ID標識創建進程的用戶,
-ggrplist按會話或有效組名選擇。
ppidlist按進程ID選擇。
-ppidlist按進程ID選擇。
-ssesslist按照會話ID選擇
tttylist通過tty選擇。與-t和--tty幾乎相同,但也可以與空ttylist一起使用,以指示與ps關聯的終端。
-tttylist選擇指定的tty
-uuserlist按有效用戶ID(EUID)或名稱選擇,等價于“U”和“--user”
--Groupgrplist等價于“-G”
--Useruserlist等價于“-U”
--groupgrplist按有效組ID(EGID)或名稱選擇。有效組ID描述進程使用其文件訪問權限的組。
--pidpidlist等價于“-p”和“p”
-ppidppidlist選擇父進程id匹配的進程
--sidsesslist等價于“-s”
--ttyttylist等價于“-t”和“t”
--useruserlist等價于“-u”和“U”
-123等價于“--sid 123”
123等價于“—pid 123”
3、輸出格式控制格式說明
-f | -F輸出完整的格式。它還會導致輸出命令參數。當與-L一起使用時,將添加NLWP(線程數)和LWP(線程ID)列。
-Oformat類似-o,但預加載了一些默認列。等價于“-o pid,format,state,tname,time,command”或者“-o pid,format,tname,time,cmd”
Oformat預加載的o。當用作格式設置選項時,它與-O完全相同,具有BSD個性。
-M添加一列安全數據。
X寄存器格式
Z等價于“-M”
-c顯示-l選項的不同調度程序信息。
jBSD作業控制格式
-j作業格式
lBSD長格式
-l長格式,經常和“-y”一起使用
oformat等價于“-o”和“--format”
-oformat用戶定義格式。format是以空格分隔或逗號分隔的列表形式的單個參數,它提供了一種指定單個輸出列的方法。標頭可以按需要重命名(ps -o pid,ruser=RealUser -o comm=Command)。如果所有列標題都是空的(ps -o pid= -o comm=),那么標題行將不會被輸出。寬標頭所需的列寬度將增加;這可用于擴展諸如WCHAN之類的列(ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm)。顯式寬度控制(ps opid,wchan:42,cmd)也被提供。ps -o pid=X,comm=Y的行為隨個性而變化,輸出可能是一個名為“X,comm=Y”的列,也可以是兩個名為“X”和“Y”的列。使用PS_FORMAT環境變量按需要指定默認值;DefSysV和DefBSD是可用于選擇默認UNIX或BSD列的宏。
s顯示信號格式
u以用戶為主的模式
v以虛擬內存為主的模式
-y不顯示標志位
-Z顯示安全上下文格式
--formatformat和“-o”一樣
--context顯示安全上下文格式
4、輸出修飾符修飾符說明
-H顯示進程層次結構
Oorder排序,過時的操作
S總結一些信息,如CPU使用情況,從死子進程到父進程。
c顯示真正的命令名。這是從可執行文件的名稱派生出來的,而不是從argv值派生的。因此,沒有顯示命令參數和對它們的任何修改
e在命令之后顯示環境
f | --forestASCII格式的進程層次結構
h沒有頭
kspec指定排序順序,等價于“--sort”
-nnamelist??|N?namelist正確的WCHAN顯示需要名稱列表文件,并且必須與當前Linux內核完全匹配才能得到正確的輸出。如果沒有此選項,則名稱列表的默認搜索路徑是:
$PS_SYSMAP
$PS_SYSTEM_MAP
/proc/*/wchan
/boot/System.map-`uname -r`
/boot/System.map
/lib/modules/`uname -r`/System.map
/usr/src/linux/System.map
/System.map
nWCHAN和User的數字輸出。(包括所有類型的UID和GID)
-w | w寬輸出,對無限寬度使用此選項兩次
--colsn??|--columns?n |--width?n設置屏幕寬度
--cumulative包括一些死子進程數據(作為父進程的和)
--headers重復頭行,每頁輸出一行
--no-headers根本不打印標題行
--linesn??|--rows?n設置屏幕高度
--sortspec排序。語法是“[+|-]key[,[+|-]key[,...]]”,例如,ps jax --sort=uid,-ppid,+pid
5、線程模式線程模式說明
H把線程當做進程顯示
-L顯示線程的LWP NLWP
-T顯示線程的SPID
m | -m在進程之后顯示線程
6、說明
這個ps通過讀取“/proc”中的虛擬文件來工作。這個ps不需要是setuid kmem,也不需要有任何特權來運行。不要給這個ps任何特殊的權限。此ps需要訪問名稱列表數據以獲得正確的WCHAN顯示。對于2.6之前的內核,必須安裝System.map文件。
CPU使用率當前表示為進程在整個生命周期中運行的時間百分比。CPU使用率不太可能達到100%。
SIZE和RSS字段不計算進程的某些部分,包括頁表、內核堆棧、結構體thread_info和task_struct。這通常是至少20kb的內存大小。SIZE是進程的虛擬大小(代碼數據堆棧)。
標記為“defunct”的進程是死進程(所謂的“僵尸”),因為它們的父進程沒有正確地銷毀它們。如果父進程退出,則init(8)將銷毀這些進程。
如果用戶名的長度大于顯示列的長度,則將顯示數字用戶ID。
7、進程標志
這些值的和顯示在“F”列中,該列由標志輸出說明符提供。
1,已經fork,但是沒有執行。
4,使用超級用戶權限。
8、進程狀態碼
下面是s、stat和state輸出說明符(標頭“stat”或“S”)將顯示的用于描述進程狀態的不同值:
D,不間斷睡眠(通常為IO)。
R,正在運行或可運行(在運行隊列上)。
S,可中斷睡眠(等待事件完成)。
T,停止,要么是被作業控制信號阻止,要么是因為它正在被跟蹤。
W,分頁(自2.6.xx內核以來無效)。
X,死了(不應該被看見)。
Z,已停止(“僵尸”)進程,終止但未由其父進程收獲。
對于bsd格式和當使用stat關鍵字時,可能會顯示其他字符:
N,低優先級(對其他用戶很好)。
L,將頁面鎖定在內存中(用于實時和自定義IO)。
s,是會話。
l,是多線程的。
+,在前臺進程組中。
9、AIX格式描述符
這個ps支持AIX格式描述符,它們的工作方式有點像printf(1)和printf(3)的格式代碼。例如,正常的默認輸出可以這樣產生:ps -eo "%p %y %x %c
CODE?????NORMAL????HEADER
%C???????pcpu?????????%CPU
%G???????group????????GROUP
%P???????ppid?????????PPID
%U???????user??????????USER
%a???????args??????????COMMAND
%c???????comm????????COMMAND
%g???????rgroup??????RGROUP
%n???????nice?????????NI
%p???????pid??????????PID
%r???????pgid?????????PGID
%t???????etime????????ELAPSED
%u???????ruser???????RUSER
%x???????time????????TIME
%y???????tty??????????TTY
%z???????vsz?????????VSZ
10、標準格式說明符
以下是用于控制輸出格式(例如,使用選項-o)或使用GNU樣式的“--sort”序選項對所選進程進行排序的不同關鍵字。例如,“ps -eo pid,user,args --sort user”。這個版本的ps試圖識別大多數在ps的其他實現中使用的關鍵字。以下用戶定義的格式說明符可能包含空格:args, cmd, comm,command, fname, ucmd, ucomm, lstart, bsdstart, start。某些關鍵字可能無法用于排序。CODEHEADER說明
%cpu%CPU進程的CPU利用率為“#.#”格式。當前,它是CPU時間除以進程運行的時間(cputime/realtime比率),表示為百分比。除非你是幸運的,否則它不會達到100%。(別名pcpu)
%mem%MEM進程的駐留集大小與機器上物理內存的比率,以百分比表示。(別名PMEM)
argsCOMMAND命令,它的所有參數都是字符串。可以顯示對參數的修改。該列中的輸出可能包含空格。標記為“已失效”的進程部分死亡,等待其父進程完全銷毀。有時進程args將不可用;當發生這種情況時,ps將可執行文件的名稱打印在括號中。(別名cmd,命令)。
當最后指定該列時,該列將擴展到顯示的邊緣。如果ps不能確定顯示寬度,例如當輸出被重定向(管道)到一個文件或另一個命令時,輸出寬度是未定義的。(它可以是80,無限,TERM等決定)環境變量COLUMNS或-cols選項可以用于精確地確定這種情況下的寬度。w或-w選項也可用于調整寬度。
blockedBLOCKEDblocked信號掩碼。根據字段的寬度,以十六進制格式顯示32位或64位掩碼。(別名sig_block, sigmask)。
bsdstartSTART命令開始的時間。如果進程在24小時前啟動,則輸出格式為“hh:mm”,否則為“mmm dd”(其中mmm是月份的三個字母)。
bsdtimeTIME用戶和系統的累積CPU時間,。顯示格式通常為“mmm:ss”,但如果進程占用的cpu時間超過999分鐘,則可以移到右邊。
cC處理器利用率當前,這是進程生存期內使用百分比的整數值。(見%cpu)。
caughtCAUGHT捕獲信號的掩碼,見信號(7)。根據字段的寬度,以十六進制格式顯示32或64位掩碼。(別名sig_catch,?sigcatch)
cgroupCGROUP顯示進程所屬的控制組。
classCLS進程的調度類。(別名policy,?cls)。字段的可能值是:
-not reported
TS??SCHED_OTHER
FF??SCHED_FIFO
RR??SCHED_RR
B???SCHED_BATCH
ISO SCHED_ISO
IDL SCHED_IDLE
????unknown value
clsCLS同class
cmdCMD同args
commCOMMAND命令名(只有可執行的名稱)。將不會顯示對命令名的修改。標記為“已失效”的進程部分死亡,等待其父進程完全銷毀。該列中的輸出可能包含空格。(別名ucmd,ucomm)。
當最后指定該列時,該列將擴展到顯示的邊緣。如果ps不能確定顯示寬度,例如當輸出被重定向(管道)到一個文件或另一個命令時,輸出寬度是未定義的(它可以是80,無限,TERM)。COLUMNS環境變量或--cols選項可以用于精確地確定這種情況下的寬度。w或-w選項也可用于調整寬度。
commandCOMMAND同args
cpCPCPU使用率/ms
cputimeTIME累計CPU時間,"[DD-]HH:MM:SS"格式。(別名time)。
egidEGID進程的有效組ID數為十進制整數。(別名gid)。
egroupEFROUP進程的有效組ID。如果可以獲得并且字段寬度允許,這將是文本組ID,否則將是十進制表示。(別名group)。
eipEIP指令指針
espESP棧指針
etimeELAPSED自進程啟動以來,以[dd-]hh:]mm:SS形式運行的時間。
euidEUID有效用戶ID,別名uid
euserEUSER有效用戶名。如果可以獲得并且字段寬度允許,這將是文本用戶ID,否則將是十進制表示。n選項可用于強制十進制表示。(別名uname,user)。
fF與進程關聯的標志,請參閱流程標志部分。(別名flag,?flags)。
fgidFGID文件系統訪問組ID。(別名fsgid)。
fgroupFGROUP文件系統訪問組ID。如果可以獲得并且字段寬度允許,這將是文本用戶ID,否則將是十進制表示。(別名fsgroup)
flagF同f
flagsF同f
fnameCOMMAND進程可執行文件的基名的前8個字節。該列中的輸出可能包含空格。
fuidFUID文件系統訪問用戶ID。(別名fsuid)。
fuserFUSER文件系統訪問用戶ID。如果可以獲得并且字段寬度允許,這將是文本用戶ID,否則將是十進制表示。
gidGID同egid
groupGROUP同egroup
ignoredIGNORED被忽略的信號的掩碼,根據字段的寬度,以十六進制格式顯示32位或64位掩碼。(別名sig_ignore,?sigignore)
labelLABEL安全標簽,最常用于SELinux上下文數據。這是針對在高安全系統上發現的強制訪問控制(“MAC”)。
lstartSTARTED命令開始的時間。
lwpLWP正在報告的LWP(輕量過程或線程)ID。(別名spid,tid)
niNInice值,范圍從19(最好)到-20(對他人不友好)。?(別名nice)。
niceNI同ni
nlwpNLWP進程中的lwps(線程)數。(別名thcount)。
nwchanWCHAN進程處于休眠狀態的內核函數的地址(如果需要內核函數名稱,請使用wchan)。正在運行的任務將在本列中顯示一個破折號(‘-’)。
pcpu%CPU同%cpu
pendingPENDING掛起信號的掩碼。進程上掛起的信號不同于單個線程上的待決信號。使用m選項或-m選項查看兩者。根據字段的寬度,以十六進制格式顯示32位或64位掩碼。(別名sig)。
pgidPGID進程組ID或相應的流程組領導的進程ID。(別名pgrp)。
pgrpPGRP同pgid
pidPID進程的進程ID號
pmem%MEM同%mem
policyPOL同cls
ppidPPID父進程id
psrPSR進程當前分配給的處理器。
rgidRGID真實的組id
rgroupRGROUP真正的組名。如果可以獲得并且字段寬度允許,這將是文本組ID,否則將是十進制表示。
ripRIP64位指令指針。
rspRSP64位棧指針。
rssRSS駐留集大小,任務使用的非交換物理內存(以千字節為單位)。(別名rssize,rsz)。
rssizeRSS同rss
rszRSZ同rss
rtprioRTPRIO實時優先級
ruidRUID實際用戶ID
ruserRUSER真實的用戶ID。如果可以獲得并且字段寬度允許,這將是文本用戶ID,否則將是十進制表示。
sS最小狀態顯示(一個字符)。
schedSCH進程的調度策略。策略SCHED_OTHER(SCHED_Normal)、SCHED_FIFO、SCHED_RR、SCHED_BATCH、SCHED_ISO和SCHED_IDELL分別顯示為0、1、2、3、4和5。
sessSESS會話ID或等效的會話領導的進程ID。(別名session,sid)。
sgi_pP進程當前正在執行的處理器。如果進程當前未運行或無法運行,則顯示“*”。
sgidSGID保存的組ID。(別名svgid)
sgroupSGROUP保存的組名。如果可以獲得并且字段寬度允許,這將是文本組ID,否則將是十進制表示。
sidSID同sess
sigPENDING同pending
sigcatchCAUGHT同caught
sigignoreIGNORED同ignored
sigmaskBLOCKED同blocked
sizeSZ如果進程要臟所有可寫頁,然后交換掉,則需要交換大約的交換空間。這個數字很粗糙!
spidSPID同lwp
stackpSTACKP進程堆棧的底部(開始)地址
startSTARTED命令開始的時候。如果進程在24小時前啟動,則輸出格式為“hh:mm:ss”,否則為“mmm dd”(其中mmm是三個字母的月份名稱)。
start_timeSTART進程的開始時間或日期。只有進程未啟動的年份(即調用ps的年份)或“mmmdd”(如果進程未在同一天啟動)或“hh:mm”將顯示。
statSTAT多字符進程狀態。有關不同值的含義,請參見處理狀態代碼一節。如果只希望顯示第一個字符,請參見s和state。
stateS同s
suidSUID保存的用戶ID。(別名svuid)。
suserSUSER保存的用戶名。如果可以獲得并且字段寬度允許,這將是文本用戶ID,否則將是十進制表示。(別名svuser)
svgidSVGID同sgid
svuidSVUID同suid
szSZ進程核心圖像的物理頁面大小。這包括文本、數據和堆棧空間。當前排除了設備映射;這可能會發生更改。參見vsz和rss。
thcountTHCNT同nlwp
tidTID同lwp
timeTIME統計CPU時間,"[DD-]HH:MM:SS"格式。(別名cputime)。
tnameTTY控制TY(終端)(別名tt,tty)。
tpgidTPGID進程連接到的TTY(終端)上的前臺進程組的ID,如果進程沒有連接到TTY,則為-1。
ttTT同tname。
ttyTT同tname。
ucmdCMD同comm。
ucommCOMMAND同comm。
uidUID同euid。
unameUSER同euser。
userUSER同euser。
vsizeVSZ同vsz。
vszVSZ進程的虛擬內存大小(1024字節單位)。當前排除了設備映射;這可能會發生更改。(別名vsize)。
wchanWHAN進程處于休眠狀態的內核函數的名稱,如果進程正在運行,則為“-”,如果進程是多線程且ps不顯示線程,則為“*”。
11、環境變量
下面的環境變量會影響ps的行為:
COLUMNS,覆蓋默認的寬度。
LINES,覆蓋默認的高度。
PS_PERSONALITY,設置為POSIX中的一個,old,linux,bsd,sun,digital。
CMD_ENV,設置為POSIX中的一個,old,linux,bsd,sun,digital。
I_WANT_A_BROKEN_PS,解釋過時命令。
LC_TIME,日期格式。
PS_COLORS,現在還不支持。
PS_FORMAT,默認輸出格式覆蓋。
PS_SYSMAP,默認名稱列表(System.map)位置。
PS_SYSTEM_MAP,默認名稱列表(System.map)位置。
POSIXLY_CORRECT,不要找借口忽視不好的“特性”。
POSIX2,當設置為“on”時,充當POSIXLY_TRIDER。
UNIX95,不要找借口忽視不好的“特性”。
_XPG,取消CMD_ENV=irix非標準行為。
一般來說,設置這些變量是個壞主意。一個例外是CMD_ENV或PS_PERSONALITY,對于正常系統,可以將它們設置為Linux。如果沒有這種設置,PS就會遵循Unix 98標準中無用的和壞的部分。
12、例子代碼若要使用標準語法查看系統上的每個進程,請執行以下操作:
ps -e
ps -ef
ps -eF
ps –ely
若要使用BSD語法查看系統上的每個進程,請執行以下操作:
ps ax
ps ax
打印進程樹
ps -ejH
ps axjf
獲取線程信息
ps -eLf
ps axm
獲取安全信息
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps –eM
若要以用戶格式將每個進程作為根進程運行(實際有效ID),請執行以下操作:
ps -U root -u root
要使用用戶定義的格式查看每個進程:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -eopid,tt,user,fname,tmout,f,wchan
只打印進程sislogd的PID
ps -C syslogd -o pid=
只打印PID為42的進程名字
ps -p 42 -o comm=
13、實例
1)顯示所有用戶的所有進程信息[root@localhost ~]#?ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER???????PID %CPU %MEM????VSZ???RSS TTY??????STAT START???TIME COMMAND
root?????????1??0.0??0.0???2900??1504 ?????????Ss???Sep19??0:00 /sbin/init
root?????????2??0.0??0.0??????0?????0 ?????????S????Sep19??0:00 [kthreadd]
root?????????3??0.0??0.0??????0?????0 ?????????S????Sep19??0:00 [migration/0]
root?????????4??0.0??0.0??????0?????0 ?????????S????Sep19??0:02 [ksoftirqd/0]
root?????????5??0.0??0.0??????0?????0 ?????????S????Sep19??0:00 [migration/0]
root?????????6??0.0??0.0??????0?????0 ?????????S????Sep19??0:02 [watchdog/0]
。。。
david?????7226??0.0??0.1??50856??3020 ?????????Sl???06:32??0:00 /usr/bin/gnome-keyring-daemon --dae
david?????7238??0.0??0.3??32944??6244 ?????????Ssl??06:32??0:00 gnome-session
david?????7246??0.0??0.0???3664???760 ?????????S????06:32??0:00 dbus-launch --sh-syntax --exit-with
david?????7247??0.0??0.0???3396??1316 ?????????Ss???06:32??0:00 /bin/dbus-daemon --fork --print-pid
david?????7306??0.0??0.0??19200???364 ?????????S????06:32??0:00 /usr/bin/VBoxClient --display
david?????7308??0.0??0.0??19200??1080 ?????????S????06:32??0:00 /usr/bin/VBoxClient --display
david?????7312??0.0??0.0??19200???360 ?????????S????06:32??0:00 /usr/bin/VBoxClient --seamless
david?????7314??0.0??0.0??20884??1188 ?????????Sl???06:32??0:00 /usr/bin/VBoxClient --seamless
david?????7318??0.0??0.0??19200???360 ?????????S????06:32??0:00 /usr/bin/VBoxClient --draganddrop
david?????7320??0.1??0.0??21400??1296 ?????????Sl???06:32??0:07 /usr/bin/VBoxClient --draganddrop
david?????7343??0.0??0.2??10712??4624 ?????????S????06:32??0:00 /usr/libexec/gconfd-2
。。。
2)顯示用戶david的進程信息[root@localhost ~]#?ps -u david
PID TTY??????????TIME CMD
7226 ????????00:00:00 gnome-keyring-d
7238 ????????00:00:00 gnome-session
7246 ????????00:00:00 dbus-launch
7247 ????????00:00:00 dbus-daemon
7306 ????????00:00:00 VBoxClient
總結
以上是生活随笔為你收集整理的linux select 进程id,Linux基础命令---显示进程ps的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tableau连接mysql_table
- 下一篇: python调用jar 性能_亲自有效-