pslinux查看進程
① linux命令中ps -ef詳解
1、ps -ef表示查看全格式的全部進程。
ps是linux下最常用的也是非常強大的進程查看命令,常配合管道命令 | 和查找腔櫻鍵命令 grep 同時執行來查看特定進程。
參數含義:
-e 顯示所有進程。-f 全格式。-h 不顯示標題。-l 長格式。-w 寬輸出。a 顯示終端上的所有進程,包括其他用戶的進程。r 只顯示正在運行的進程。x 顯示沒有控制終端的進程。
2、(1)pslinux查看進程擴展閱讀:
進程狀態:
R 運行,正在運行或在運行隊列中等待。
S 中斷,休眠中, 受阻, 在等待某個條件的形成或接受到信號。
D 不可中斷,收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生。
Z 僵死 ,進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放。
T 停止,進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行。
3、grep命令是查找
中間的|是管道命令 是指ps命令與grep同時執行
PS是LINUX下最常用的也是非常強大的進程查看命令
grep命令是查找,是一種伍巧強大的文本搜索工具,它能 使用正則表達式 搜索文本,並把匹配的行列印出來。
grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用許可權是所有用戶。
以下這條命令是檢查java 進程是否存在: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 :系統啟動時間
TTY :登入者的終端機位置
TIME :使用掉的CPU時間。
CMD :所下達的是什麼指令
ps -e|grep dae
② Linux進程查看的ps命令
ps簡介
前面介紹的兩個命令都是用於查看當前系統用戶的情況,下面就來看看進程的情況,這也是本章的主題。要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而ps命令就是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等。總之大部分信息都是可以通過執行該命令得到的。
ps命令冊運掘及其參數
ps命令最常用的還是用於監控後台進程的工作情況,因為後台進程是不和屏幕鍵盤這些標准輸入/輸出設備進行通信的,所以如果需要檢測其情況,便可以使用ps命令了。
該命令語法格式如下:
ps [選項]
下面對命令選項進行說明:
-e 顯示所有進程。
-f 全格式。
-h 不顯示標題。
-l 長格式。
-w 寬輸出。
a 顯示終端上的所有進程,包括其他用戶的進程。
r 只顯示正在運行的進程。
x 顯示沒有控制終端的進程。
O[+|-] k1 [,[+|-] k2 [,…]] 根據SHORT KEYS、k1、k2中快捷鍵指定的多級排序順序顯示進程列表。對於ps的不同格式都存在著默認的順序指定。這些默認順序可以被用戶的指定所覆蓋。其中「+」字元是可選的,「-」字元是倒轉指定鍵的方向。
pids 只列出指定進程的情況。各進程ID之間使用逗號分隔。該進程列表必須在命令行參數的最後一個選項後面緊接著給出,中間不能插入空格。比如:ps -f1,4,5。
以下介紹長命令行選項,這些選項都使用「--」開頭:
--sort X[+|-] key [,[+|-] key [,…]] 從SORT KEYS段中選一個多字母鍵。「+」字元是可選的,因為默認的方向就是按數字升序或者詞典淥承頡1熱紓?ps -jax -sort=uid,-ppid,+pid。
--help 顯示幫助信息。
--version 顯示該命令的版本信息。
在前面的選項說明中提到了排序鍵,接下來對悄洞排序鍵作進一步說明。需要注意的是排序中使用的值是ps使用的內部值,並非僅用於某些輸出格式的偽值。排序鍵列表見表4-3。
表4-3排序鍵列表
短格式
長格式
說 明
c
cmd
可執行的簡單名稱
C
cmdline
完整命令行
f
flags
長模式標志
g
pgrp
進程的組ID
G
tpgid
控制tty進程組ID
j
cutime
累計用戶時間
J
cstime
累計系統時間
k
utime
用戶時間
K
stime
系統時間
m
min_flt
次要頁錯誤的數量
M
maj_flt
主要頁錯誤的數量
n
cmin_flt
累計次要頁錯誤
N
cmaj_flt
累計主要頁錯誤
o
session
對話ID
p
pid
進程ID
P
ppid
父進程ID
r
rss
駐留大小
R
resident
駐留頁
s
size
內存大小(千位元組)
S
share
共享頁的數量
t
tty
tty次要設備號
T
start_time
進程啟動的時間
U
uid
UID
u
user
用戶名
v
vsize
總的虛擬內存數量(位元組)
y
priority
內核調度優先順序
常用ps命令參數
前面兩節介紹的參數可能讓讀者覺得有些可怕,實際上這是一個非常容易使用的命令,一般的用戶只需掌握一些最常用的命令參數就可以了。 最常用的三個參數是u、a、x,下面將通過例子來說明其具體用法。
[例20] 以root身份登錄系統,查看當前進程狀況
$ ps
PID TTY TIME COMMAND
5800 ttyp0 00:00:00 bash
5835 ttyp0 00:00:00 ps
可以看到,顯示的項目共分為四項,依次為PID(進程ID)、TTY(終端名稱)、TIME(進程執行時間)、COMMAND(該進程的命令行輸入)。
可以使用u選項來查看進程所有者及其他一些詳細信息,如下所示:
$ ps u
USER PID %CPU %MEM USZ RSS TTY STAT START TIME COMMAND
test 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bash
test 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 ps u
在bash進程前面有條橫線,意味著該進程便是用戶的登錄shell,所以對於一個登錄用戶來說帶短橫線的進程只有一個。州核還可以看到%CPU、%MEM兩個選項,前者指該進程佔用的CPU時間和總時間的百分比;後者指該進程佔用的內存和總內存的百分比。
在這種情況下看到了所有控制終端的進程;但是對於其他那些沒有控制終端的進程還是沒有觀察到,所以這時就需要使用x選項。使用x選項可以觀察到所有的進程情況。
[例21] 下面是使用x選項的例子:
$ ps x
PID TTY STAT TIME COMMAND
5800 ttyp0 S 0:00 -bash
5813 ttyp1 S 0:00 -bash
5921 ttyp0 S 0:00 man ps
5922 ttyp0 S 0:00 sh -c /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz | /
5923 ttyp0 S 0:00 /usr/bin/gunzip -c /var/catman/cat1/ps.1.gz
5924 ttyp0 S 0:00 /usr/bin/less -is
5941 ttyp1 R 0:00 ps x
可以發現突然一下子就多出了那麼多的進程。這些多出來的進程就是沒有控制終端的進程。 前面看到的所有進程都是test用戶自己的。其實還有許多其他用戶在使用著系統,自然也就對應著其他的很多進程。如果想對這些進程有所了解,可以使用a選項來查看當前系統所有用戶的所有進程。經常使用的是aux組合選項,這可以顯示最詳細的進程情況。
[例22]
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1136 64 ? S Nov25 0:02 init [3]
root 2 0.0 0.0 0 0 ? SW Nov25 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Nov25 0:03 [kupdate]
root 4 0.0 0.0 0 0 ? SW Nov25 0:00 [kpiod]
root 5 0.0 0.0 0 0 ? SW Nov25 0:00 [kswapd]
root 163 0.0 0.1 1628 332 ? S Nov25 0:02 sshd
root 173 0.0 0.0 1324 200 ? S Nov25 0:00 syslogd
root 181 0.0 0.0 1420 0 ? SW Nov25 0:00 [klogd]
daemon 191 0.0 0.1 1160 312 ? S Nov25 0:00 /usr/sbin/atd
root 201 0.0 0.1 1348 492 ? S Nov25 0:00 crond
root 212 0.0 0.0 1292 68 ? S Nov25 0:00 inetd
……
在顯示的最前面是其他用戶的進程情況,可以看到有root、daemon等用戶以及他們所啟動的進程。 在上面的例子中,介紹了ps命令最常見的一些選項和選項組合,用戶可以根據自己的需要選用。
③ linux下用ps -ef |grep ,結果哪個是進程號
root 13091 12287 0 07:20 pts/1 00:00:00 grep oscard中的第二列【13091】是進程號。
ps命令將某個進程顯示出來,LINUX下最常用的也是非常強大的進程查看命令
grep命令是查找,全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用許可權是所有用戶。這是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。
中間的 | 是管道命令 是指ps命令與grep同時執行
(3)pslinux查看進程擴展閱讀:
PS命令其中各項的內容意思如下:
1、參數e: 顯示所有程序。
2、參數f: 顯示UID,PPIP,C與STIME欄位
3、UID: 用戶ID、但輸出的是用戶名
4、PID:進程的ID
5、PPID:父進程ID
6、C: 進程佔用CPU的百分比
7、STIME : 進程啟動到現在的時間
8、TTY :該進程在那個終端上運行,若與終端無關,則顯示? 若為pts/0等,則表示由網路連接主機進程。
9、CMD:命令的名稱和參數
④ 如何在Linux中查看所有正在運行的進程
查看系統所有正在運行的進程,可以用ps aux命令,比較重要的是它的-a參數,表示不與終端有關的進程也顯示出來。還有一個和ps命令相似的命令是pstree,pstree命令用於列出正在運行的進程的進程樹,所謂進程搭孫兆樹就是不光顯示進程信息,還顯示有關系的進程的相關性,也就是顯示父子進程知租之間的關系。pstree命令的常見用法是:pstree -Aup
-A參數表示:結果中的進程樹連接用ASCII字元來顯示
-u參數表示:列出進程的所屬用戶
-p參數表示:列出每個進程的PID
ps命令和pstree命令是選取一個時間點的進程狀態,還有一個top命令可以持續檢測進程運行狀態,它顯示的是動態的信息,有點像Windows的任務管理器(不過top命令是命令行),使用方法:
top -d 數字
-d參數後面接一個數字表示幾秒更新一凱卜次顯示,一般可以設置成2,表示2秒一更新。
⑤ 如何在Linux中查看所有正在運行的進程
ps命令
輸入下面的ps命令,顯示所有運行中的進程:
# ps aux | less
其中,
-A:顯示所有進程
a:顯示終端中包括其它用戶的所有進程
x:顯示無控制終端的進程
任務:查看系統中的每個進程。
# ps -A
# ps -e
任務:查看非root運行的進程
# ps -U root -u root -N
任務:查看用戶vivek運行的進程
# ps -u vivek
任務:top命令
top命令提供了運行中系統的動態實時視圖。在命令提示行中輸入top:
# top
任務:顯示進程的樹狀圖。
pstree以樹狀顯示並帆正在運行的進程。樹的根節點為pid或init。如果指定了用戶名,進程樹將以用戶所擁有的進程作為根節點。
$ pstree
任務:使用ps列印進程樹
# ps -ejH
# ps axjf
任務:獲得線程信息
輸入下列命令:
# ps -eLf
# ps axms
任務:獲得安全信息
輸入下列命令:
# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM
任務:將進程快照儲存到文件中
輸入下列命令:
# top -b -n1 > /tmp/鎮攜process.log
你也可以將結果通過郵件發給自己:
# top -b -n1 | mail -s 'Process snapshot' [email protected]
任務:查找進程
使用pgrep命令。pgrep能查找當前正在運行的進程並列出符合條件的進程ID。例如顯示firefox的進程ID:
$ pgrep firefox
下面命令將顯示進程名為sshd、所有者為root的進程。
$ pgrep -u root sshd
向htop和atop說hello
htop是一個類似top的互動式進程查看工具,但是可以垂直和水平滾動來查看所有進程和他們的命令行。進程的相關操作(killing,renicing)不需要輸入PID。要安裝htop輸入命令:
# apt-get install htop
或
# yum install htop
在命令提示行中輸入htop:絕旅雹
# htop
atop工具
atop是一個用來查看Linux系統負載的互動式監控工具。它能展現系統層級的關鍵硬體資源(從性能角度)的使用情況,如CPU、內存、硬碟和網路。
它也可以根據進程層級的CPU和內存負載顯示哪個進程造成了特定的負載;如果已經安裝內核補丁可以顯示每個進程的硬碟和網路負載。輸入下面的命令啟動atop:
# atop
⑥ 如何在Linux中查看所有正在運行的進程
ps命令用於查看系統中的進程狀態,格式為:「ps [參數]」,
常見的ps命令參數包括有:
-a 顯示所有的進程(包括其他用戶的)
-u 用戶以及其他詳細信息
-x 顯示沒有控制終端的進程
Linux系統中時刻運行著許許多多的進程,如果能夠合理的管理它們,絕對有益於對系統的性能優化,Linux系統中進程最常見的5種不同的狀態是運行、中斷、不可中斷、僵死與停止,它們的含義分別是:《搏數Linux就該這么學》這本書上有詳細的介紹,網址為
R(運行):正在運行或在運行隊列中等待。
S(中斷):休眠中, 在等待某個條件的形成或接收到信號。
D(不可中斷):收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生。
Z:(僵死):進程已終止, 但進程描述符存在, 直到父進肆銀森程調用wait4()系統調用裂畝後釋放。
T:(停止):進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行。當執行"ps aux"命令後通常會看到下面格式的進程狀態,表格中只是列舉了部分輸出值,而且正常的輸出值中不包括中文注釋部分:
⑦ linux ps查看進程顯示的是用戶ID,不是用戶名是怎麼回事
使用ps命令時,發州凳現部分用戶顯示的是用戶名,有些用戶顯示的是UID,例如nmon程序的運行時webmaster,但是ps顯示的不是直接顯示uid 500。
通過man發現:8位用戶名的賬戶能夠顯示完整的用戶名,9位用戶名的賬戶就顯示了UID使用下面的命令來解決;
ps -o ruser=userForLongName -e -o pid,ppid,c,stime,tty,time,cmd
注意:「userForLongName」是隨便填寫的,Linux會自動檢查此字元串的長度,為15,則15位以下的用戶名都可以正常顯示。
⑧ Linux裡面ps - ef是查看進程的嗎
指令:ps
作用:主要是查看伺服器的進程信息
選項含義:
-e:等知鍵價於 『-A』鋒猛首 ,表示列出全部的進程
-f:顯示全部的列(顯示銀數全欄位)
⑨ Linux ps命令:用於顯示當前進程 (process) 的狀態
ps [options] [—help]
ps [-aAcdefHjlmNVwy][acefghLnrsSTuvxX][-C <指令名稱>][-g <群組名稱>]
[-G <群組識別碼>][-p <進程識別碼>][p <進程識別碼>][-s <階段作業>]
[-t <終端機編號>][t <終端機編號>][-u <用戶識別碼>][-U <用戶識別碼>]
[U <用戶名稱>][-<進程識別碼>][--cols <每列字元數>]
[--columns <每列字元數>][--cumulative][--deselect][--forest]
[--headers][--help][-- info][--lines <顯示列數>][--no-headers]
[--group <群組名稱>][-Group <群組識別碼>][--pid <進程識別碼>]
[--rows <顯示列數>][--sid <階段作業>][--tty <終端機編號>]
[--user <用戶名稱>][--User <用戶識別碼>][--version]
[--width <每列字元數>]
-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"參數相同
-A 列出所有的行程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程
linux上進程有5種狀態:
1. 運行(正在運行或在運行隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生)
4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放)
5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行)
ps工具標識進程的5種狀態碼:
D 不可中斷 uninterruptible sleep (usually IO)
R 運行 runnable (on run queue)
S 中斷 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (」zombie」) process
1、# ps aux //顯示所有正在內存中的程序
USER:該 process 屬於那個使用者賬號的
PID :該 process 的號碼
%CPU:該 process 使用掉的 CPU 資源百分比
%MEM:該 process 所佔用的物理內存百分比
VSZ :該 process 使用掉的虛擬內存量 (Kbytes)
RSS :該 process 佔用的固定的內存量 (Kbytes)
TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程序,若為 pts/0 等等的,則表示為由網路連接進主機的程序。
STAT:該程序目前的狀態,主要的狀態有
R :該程序目前正在運作,或者是可被運作
S :該程序目前正在睡眠當中 (可說是 idle 狀態),但可被某些訊號 (signal) 喚醒。
D: 無法中斷的休眠狀態 (通常 IO 的進程)
T :該程序目前正在偵測或者是停止了
Z :該程序應該已經終止,但是其父程序卻無法正常的終止他,造成 zombie (疆屍) 程序的狀態
<: 高優先序的行程
N: 低優先序的行程
L: 有記憶體分頁分配並鎖在記憶體內 (實時系統或捱A I/O)
START:該 process 被觸發啟動的時間
TIME :該 process 實際使用 CPU 運作的時間
COMMAND:該程序的實際指令
2、# ps -A 顯示進程信息
3、# ps -u work //顯示work進程用戶信息
4、# ps -ef //顯示所有命令,連帶命令行
5、# ps -l //將屬於自己這次登入的pid與相關信息顯示出來
F:代表這個程序的旗標 (flag), 4 代表使用者為 super user
S:代表這個程序的狀態 (STAT)
UID:程序被該 UID 所擁有
PID:就這個程序的 ID
PPID:其上級父程序的ID
C:CPU使用的資源百分比
PRI: Priority (優先執行序) 的縮寫
NI: Nice 值
ADDR:kernel function,指出該程序在內存的那個部分。如果是個 running的程序,一般就是 "-"
SZ:使用掉的內存大小
WCHAN:目前這個程序是否正在運作當中,若為 - 表示正在運作
TTY:登入者的終端機位置
TIME:使用掉的 CPU 時間。
CMD:所下達的指令為何
在預設的情況下, ps 僅會列出與目前所在的 bash shell 有關的 PID,所以, 當使用 ps -l 的時候,只有三個 PID。
6、其他
1)可以用 | 管道和 more 連接起來分頁查看
命令:ps -aux |more
2)把所有進程顯示出來,並輸出到ps001.txt文件
命令:ps -aux > ps001.txt
3)輸出指定的欄位
命令:ps -o pid,ppid,pgrp,session,tpgid,comm