JAVA好管家,一天一个shell命令 linux好管家-进程-ps命令详解
小知識(以ps為例):
查看命令路徑? which ps
命令幫助 ps --help
命令完全手冊: man ps
說明
ps全稱是:Process Status (進程狀態),他就是提供進程信息的。
ps命令用于報告當前系統的進程狀態。可以搭配kill指令隨時中斷、刪除不必要的程序。ps命令是最基本同時也是非常強大的進程查看命令,使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等,總之大部分信息都是可以通過執行該命令得到的。
附知識說明
我們經常見到shell命令有三種類型的參數,最初我還琢磨 單劃線和雙劃線有什么特殊的含義,原來是一個版本演變留下的問題。
linux系統中常見的3種命令行參數(以ps為例):
Unix類型的參數,前面有一短劃線 如:ps -e
BSD類型的參數,前面沒有短劃線? 如:ps? a
GNU長參數,前面有雙劃線 如:ps --deselect
所以,ps –a 和 ps? a查詢結果會不同
常見實例
$ps
如圖:
解釋:默認情況,ps命令只顯示屬于當前用戶并正在當前終端中運行的進程。默認ps的話,只運行了bash 和 ps
$ps –ef
如圖:
解釋:
UID 擁有進程的用戶
PID 進程的ID
PPID 父進程PID
C 進程存續期的處理利用率
STIME 進程啟動時的系統時間
TTY 進程所屬的終端
TIME? 運行進程累計CPU時間
CMD 啟動進程的名稱
幫助文檔
這回我用的是redhat的--help, 得到ps的help被分為五類:
simple selection? 簡易選項
********* simple selection *********
-A all processes??? 所有線程
-N negate selection?? 忽略選擇
-a all w/ tty except session leaders 顯示一個終端的所有進程,除了會話引線
-d all except session leaders???? 顯示所有進程,但省略所有的會話引線(utility)
-e all processes
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
selection by list? 列表選項
********* selection by list *********
-C by command name
-G by real group ID (supports names)
-U by real user ID (supports names)
-g by session OR by effective group name
-p by process ID
-s processes in the sessions given
-t by tty
-u by effective user ID (supports names)
U? processes for specified users
t? by tty
output format? 輸出格式化
*********** output format **********
-o,o user-defined?? 可以輸入自己的參數
-f full
-j,j job control
s? signal
-O,O preloaded
-o? v? virtual memory
-l,l long
u? user-oriented
-F?? extra full
X? registers
long options? 長操作類型
*********** long options ***********
--Group? --User? --pid? --cols? --ppid
--group? --user? --sid? --rows? --info
--cumulative? --format? --deselect
--sort? --tty? --forest? --version
--heading? --no-heading? --context
misc options 其他選項
********* misc options *********
-V,V? show version????? L? list format codes?? f? ASCII art forest
-m,m,-L,-T,H? threads?? S? children in sum??? -y change -l format
-M,Z? security data???? c? true command name? -c scheduling class
-w,w? wide output?????? n? numeric WCHAN,UID? -H process hierarchy
實例(來自man ps)
1. 查看系統每個進程的標準參數(To see every process on the system using standard syntax)
$ps -e
$ps -ef
$ps -eF
$ps –ely
2. 查看系統每個進程的BSD(系統名)參數(To see every process on the system using BSD syntax)
$ps ax
$ps axu
3. 打印進程樹(To print a process tree)
$ps -ejH
$ps axjf
4. 打印線程的有關信息
$ps -eLf
$ps axms
5. 獲取安全信息
$ps -eo euser,ruser,suser,fuser,f,comm,label
$ps axZ
$ps –eM
6. 要查看每個進程運行在用戶根目錄(真實的和有效的ID)格式
$ps -U root -u root u
7. 查看用戶自定義的格式(To see every process with a user-defined format)
$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
8. 僅僅打印系統日志的進程ID(Print only the process IDs of syslogd)
$ps -C syslogd -o pid=
9. 僅僅打印pid=42的name(Print only the name of PID 42)
$ps -p 42 -o comm=
10. 實用? 以(7)為例,按照自定義格式看cpu信息
$ps -eo comm,pcpu | head
附: -0的參數目錄
參數
描述
pcpu
CPU占用率
pid
進程ID
ppid
父進程ID
pmem
內存使用率
comm
可執行文件
cmd
簡單命令(simple command)
user
啟動進程的用戶
nice
優先級(niceness)
time
累計的CPU時間
etime
進程啟動后累計時間
tty
當前終端進程
euid
有效用戶ID
stat
進程狀態
ps語法
ps(選項)
ps選項
-a:顯示所有終端機下執行的程序,除了階段作業領導者之外。
a:顯示現行終端機下的所有程序,包括其他用戶的程序。
-A:顯示所有程序。
-c:顯示CLS和PRI欄位。
c:列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,選項或常駐服務的標示。
-C:指定執行指令的名稱,并列出該指令的程序的狀況。
-d:顯示所有程序,但不包括階段作業領導者的程序。
-e:此選項的效果和指定"A"選項相同。
e:列出程序時,顯示每個程序所使用的環境變量。
-f:顯示UID,PPIP,C與STIME欄位。
f:用ASCII字符顯示樹狀結構,表達程序間的相互關系。
-g:此選項的效果和指定"-G"選項相同,當亦能使用階段作業領導者的名稱來指定。
g:顯示現行終端機下的所有程序,包括群組領導者的程序。
-G:列出屬于該群組的程序的狀況,也可使用群組名稱來指定。
h:不顯示標題列。
-H:顯示樹狀結構,表示程序間的相互關系。
-j或j:采用工作控制的格式顯示程序狀況。
-l或l:采用詳細的格式來顯示程序狀況。
L:列出欄位的相關信息。
-m或m:顯示所有的執行緒。
n:以數字來表示USER和WCHAN欄位。
-N:顯示所有的程序,除了執行ps指令終端機下的程序之外。
-p:指定程序識別碼,并列出該程序的狀況。
p:此選項的效果和指定"-p"選項相同,只在列表格式方面稍有差異。
r:只列出現行終端機正在執行中的程序。
-s:指定階段作業的程序識別碼,并列出隸屬該階段作業的程序的狀況。
s:采用程序信號的格式顯示程序狀況。
S:列出程序時,包括已中斷的子程序資料。
-t:指定終端機編號,并列出屬于該終端機的程序的狀況。
t:此選項的效果和指定"-t"選項相同,只在列表格式方面稍有差異。
-T:顯示現行終端機下的所有程序。
-u:此選項的效果和指定"-U"選項相同。
u:以用戶為主的格式來顯示程序狀況。
-U:列出屬于該用戶的程序的狀況,也可使用用戶名稱來指定。
U:列出屬于該用戶的程序的狀況。
v:采用虛擬內存的格式顯示程序狀況。
-V或V:顯示版本信息。
-w或w:采用寬闊的格式來顯示程序狀況。
x:顯示所有程序,不以終端機來區分。
X:采用舊式的Linux i386登陸格式顯示程序狀況。
-y:配合選項"-l"使用時,不顯示F(flag)欄位,并以RSS欄位取代ADDR欄位 。
-:此選項的效果和指定"p"選項相同。
--cols:設置每列的最大字符數。
--columns:此選項的效果和指定"--cols"選項相同。
--cumulative:此選項的效果和指定"S"選項相同。
--deselect:此選項的效果和指定"-N"選項相同。
--forest:此選項的效果和指定"f"選項相同。
--headers:重復顯示標題列。
--help:在線幫助。
--info:顯示排錯信息。
--lines:設置顯示畫面的列數。
--no-headers:此選項的效果和指定"h"選項相同,只在列表格式方面稍有差異。
--group:此選項的效果和指定"-G"選項相同。
--Group:此選項的效果和指定"-G"選項相同。
--pid:此選項的效果和指定"-p"選項相同。
--rows:此選項的效果和指定"--lines"選項相同。
--sid:此選項的效果和指定"-s"選項相同。
--tty:此選項的效果和指定"-t"選項相同。
--user:此選項的效果和指定"-U"選項相同。
--User:此選項的效果和指定"-U"選項相同。
--version:此選項的效果和指定"-V"選項相同。
--widty:此選項的效果和指定"-cols"選項相同。
由于ps命令能夠支持的系統類型相當的多,所以選項多的離譜!
總結
以上是生活随笔為你收集整理的JAVA好管家,一天一个shell命令 linux好管家-进程-ps命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql服务器显示空白,sql服务器空白
- 下一篇: git push error: RPC