新聞中心
在Linux中,ps命令是一款非常常用的進程管理命令。它可以列出系統(tǒng)中正在運行的進程信息,以幫助用戶更好地了解系統(tǒng)的運行狀態(tài)和進程占用情況。本文將從以下幾個方面對linux下的ps命令進行簡析。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了藁城免費建站歡迎大家使用!
1. ps命令的基本用法
ps命令的基本用法是:在Shell命令行下輸入”ps”即可列出當前用戶的進程列表。
下面是一個示例:
“`
$ ps
PID TTY TIME CMD
4701 pts/0 00:00:00 bash
4805 pts/0 00:00:00 ps
“`
這個輸出的之一行是標題欄,分別是PID、TTY、TIME和CMD。后面的每一行都表示一個進程,PID表示進程號,TTY表示進程所處的終端設(shè)備,TIME表示運行時間,CMD表示進程的命令。以上例子中,Ps的進程號是4805,它的命令是ps。
ps命令還可以添加一些選項參數(shù)以改變它的輸出,比如:
“`
$ ps -e #列出所有進程
$ ps -l #使用長格式輸出
$ ps -ef #列出所有進程,并且使用完整格式輸出
$ ps -aux #列出所有進程,并且包括僵尸進程
“`
2. ps命令的常用選項參數(shù)
除了上面提到的-e、-l、-f和-aux參數(shù)之外,ps命令還具有其他選項參數(shù),下面對其中一些進行簡要介紹:
– -C:根據(jù)進程的命令名稱選出進程
– -N:不選定任何進程
– -u:根據(jù)進程的用戶ID選出進程
– -A:表示選擇所有進程,相當于-e參數(shù)
– -d:顯示進程的父進程ID
– -n:只顯示與當前終端相關(guān)的進程
– -o:輸出指定的字段列表
3. ps命令的實戰(zhàn)應(yīng)用
ps命令不僅可以用于查看系統(tǒng)進程,還可以支持一些其他的應(yīng)用場景。下面介紹幾個實戰(zhàn)應(yīng)用:
1. 列出某用戶的進程
“`
$ ps -u username
“`
2. 列出某個程序的進程
“`
$ ps -C program_name
“`
3. 查找某個程序是否在運行
“`
$ ps -e | grep program_name
“`
4. 結(jié)束某個進程
“`
$ kill -9
“`
4. ps命令的相關(guān)實用技巧
除了上面介紹的ps命令中的選項參數(shù)和實戰(zhàn)應(yīng)用外,還有一些相關(guān)的實用技巧。
1. 使用pgrep命令查找進程ID
pgrep命令可以直接通過進程名稱查找進程ID,比如:
“`
$ pgrep program_name
“`
2. 通過ps命令查看進程樹
下面命令可以顯示當前進程及其子進程的樹狀結(jié)構(gòu):
“`
$ ps fax
“`
3. 使用ps命令查看內(nèi)存使用情況
“`
$ ps aux | awk ‘{ sum += $6 } END { print sum }’
“`
這個命令將按字節(jié)統(tǒng)計系統(tǒng)中所有進程使用的內(nèi)存總量。
相關(guān)問題拓展閱讀:
- Linux進程詳解
- Linux ps命令詳解
Linux進程詳解
ps是Linux 中最基礎(chǔ)的瀏覽系統(tǒng)中的進程的命令。能列出系統(tǒng)中運行的進程,包括進程號、命令、CPU使用量、內(nèi)存使用量等。接下來解讀一下Linux操作系統(tǒng)的進程和Windows「Ctrl+Alt+delete」直接的差異。
在進行了解進程命令之前需要知道進程的一些狀態(tài)
ps工具標識進程的5種狀態(tài)碼:
Linux操作系統(tǒng)進程執(zhí)行的狀態(tài)轉(zhuǎn)換圖如圖所示:
下面來看一下 ps命令
ps –help命令可以查看ps命令的使用說明
或者使用 man ps命令 查詢ps的詳細說明
在 man手冊 關(guān)于ps的解讀中,總結(jié)了一下幾個參數(shù)的含義:
以上的參數(shù)是可以拼接使用的,那就了解一些常用的參數(shù)組合
ps aux命令
ps -ef命令
查看進程狀態(tài)這兩個是命令是最常用的,使用 ps aux 可以查看進程的詳細運行狀態(tài)等。使用 ps -ef 不僅可以顯示自身的PID,也可以顯示PPID(父進程)。但是顯示不了進程的運行狀態(tài)
top命令
top命令是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進程的資源占用狀況,類鄭吵似于Windows的任務(wù)管理器
man手冊關(guān)于top的解釋
關(guān)閉進程,重啟進程
在上一片文章中 linux的目錄結(jié)構(gòu) 里面說過,在目錄/etc/init.d/目錄下包含許多系統(tǒng)各種服務(wù)的啟動和停止腳本。假設(shè)進程占用內(nèi)存較大或者進程液汪異常,我們是重啟這個進程restart。如下圖所示:
我們重啟了mysqld這個進程,可以看出進程號已經(jīng)改變(從15743到15964),說明進程已經(jīng)重啟。
Linux下有3個喊埋侍特殊的進程,idle進程(PID=0), init進程(PID=1)和kthreadd(PID=2)
我們來看一下進程狀態(tài)
可以看到很多進程的PPID號是1和2。也就是init進程和kthreadd進程。
在使用Windows系統(tǒng)的過程中,都碰到過應(yīng)用程序卡死的情況。應(yīng)對此問題,我們一般都是等待失去響應(yīng)的程序恢復(fù),或者是直接使用任務(wù)管理器將其強制關(guān)閉,然后再重新打開。
在Linux中,遇到特別耗費資源的進程,當然需要使用 top命令 查看進程占用率高的進程?;蛘呤褂?free -m命令 查看內(nèi)存剩余。假設(shè)需要強殺進程來釋放空間。我們涉及到Linux中信號?的知識,在這里簡單的描述一下,信號的詳解會在接下來的文章里面敘述。
free -m命令查看內(nèi)存空間
在linux中存在著64種信號
使用 kill -l命令 查看信號列表
在前面說過進程會被這些個信號>
(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號強制停止運行)
那問題就在于如何發(fā)信號給這些個進程。
使用kill命令發(fā)信號
我們從上面可以看到 mysqld進程被重啟了 。
Linux ps命令詳解
ps -elf |grep cp(與進程有關(guān)的字符串)
whereis cp
cp: /bin/cp /usr/share/man/man1p/cp.1p.gz /usr/share/man/man1/cp.1.gz
可以找到進程橋念名的所有頃行路徑雀消嘩。
【 ps 】
?語法
ps
?功能
ps 命令:用來顯示當前進程的狀態(tài)
?類似命令top kill pgrep
?執(zhí)行權(quán)限 超級用戶 普通用戶
?命令屬性 系統(tǒng)管理
?參數(shù)
必要參數(shù)
a 顯示所有進程
-a 顯示同一終端下的所有程序
-A 顯示所有進程
c 顯示進程的真實名稱
-N 反向選擇
-e 等于“-A”
e 顯示環(huán)境變量
f 顯示程序間的關(guān)系
-H 顯示樹狀結(jié)構(gòu)
r 顯示當前終端的進程
T 顯示當前終端的所有程序
u 指定用戶的所攜圓則有進程
選擇參數(shù)
-C 列出指定命令的狀況
–lines 每頁顯示的行數(shù)
–width 每頁顯示的字符數(shù)
–help 顯示幫助信息
–version 顯示版本顯示
范例1: 顯示所有進程信息
root@localhost :~# ps -A 顯示進腔氏程信息
PID TTY TIME CMD
1 ? 00:00:02 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 watchdog/0
6 ? 00:00:00 events/0
7 ? 00:00:00 cpuset
……
范例2: 顯示指定用戶信息
root@localhost :~# ps -u root //顯示root進程用戶信息
PID TTY TIME CMD
1 ? 00:00:02 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 watchdog/0
6 ? 00:00:00 events/0
7 ? 00:00:00 cpuset
8 ? 00:00:00 khelper
9 ? 00:00:00 netns
10 ? 00:00:00 async/mgr
11 ? 00:00:00 pm
12 ? 00:00:00 sync_supers
13 ? 00:00:00 bdi-default
14 ? 00:00:00 kintegrityd/0
15 ? 00:00:02 kblockd/0
16 ? 00:00:00 kacpid
……省略部分結(jié)果
30487 ? 00:00:06 gnome-terminal
30488 ? 00:00:00 gnome-pty-helpe
30489 pts/0 00:00:00 bash
30670 ? 00:00:00 debconf-communi
30749 pts/0 00:00:15 gedit
30886 ? 00:01:10 qtcreator.bin
30894 ? 00:00:00 qtcreator.bin
31160 ? 00:00:00 dhclient
31211 ? 00:00:00 aptd
31302 ? 00:00:00 sshd
31374 pts/2 00:00:00 bash
31397 pts/2 00:00:00 ps
范例3: 顯示指辯棚定終端信息
root@localhost :~# ps -u root //顯示終端1進程信息
PID TTY TIME CMD
1 ? 00:00:02 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 watchdog/0
6 ? 00:00:00 events/0
7 ? 00:00:00 cpuset
8 ? 00:00:00 khelper
9 ? 00:00:00 netns
10 ? 00:00:00 async/mgr
11 ? 00:00:00 pm
12 ? 00:00:00 sync_supers
13 ? 00:00:00 bdi-default
14 ? 00:00:00 kintegrityd/0
15 ? 00:00:02 kblockd/0
16 ? 00:00:00 kacpid
……省略部分結(jié)果
30487 ? 00:00:06 gnome-terminal
30488 ? 00:00:00 gnome-pty-helpe
30489 pts/0 00:00:00 bash
30670 ? 00:00:00 debconf-communi
30749 pts/0 00:00:15 gedit
30886 ? 00:01:10 qtcreator.bin
30894 ? 00:00:00 qtcreator.bin
31160 ? 00:00:00 dhclient
31211 ? 00:00:00 aptd
31302 ? 00:00:00 sshd
31374 pts/2 00:00:00 bash
31397 pts/2 00:00:00 ps
范例4: 顯示所有進程信息,連同命令行
root@localhost :~# ps -ef //顯示所有命令,連帶命令行
UID PID PPID C STIME TTY TIME CMD
root0:22 ? 00:00:02 /in/init
root0:22 ? 00:00:00
root0:22 ? 00:00:00
root0:22 ? 00:00:00
root0:22 ? 00:00:00
root0:22 ? /usr/lib/NetworkManager
……省略部分結(jié)果
root0 17:42 ? 00:00:00 sshd: root@pts/2
root 0 17:42 pts/2 00:00:00 -bash
root 17:46 ? 00:00:00 /usr/bin/python /usr/in/aptd
root 0 17:48 pts/2 00:00:00 ps -ef
范例5: ps 與grep 常用組合用法,查找特定進程
root@localhost :~# ps -ef |grep sshd //查找字串為sshd的進程
root10:31 ? 00:00:00 /usr/in/sshd
root0 17:42 ? 00:00:00 sshd: root@pts/2
root 0 17:50 pts/2 00:00:00 grep –color=auto sshd
root@localhost :~#
范例6: 顯示命令的完整命令行
root@localhost :~# ps -efww
UID PID PPID C STIME TTY TIME CMD
root0:22 ? 00:00:02 /in/init
root0:22 ? 00:00:00
root0:22 ? 00:00:00
root0:22 ? 00:00:00
root0:22 ? 00:00:00
root0:22 ? 00:00:00
……省略部分結(jié)果
root0:23 ? 00:00:00
root0:23 ? 00:00:00
root0:23 ? 00:00:00
root0:23 ? 00:00:00
root0:23 ? 00:00:00
root0:23 ? 00:00:00
root10:23 ? 00:00:00
root10:23 ? 00:00:00
root10:23 ? 00:00:00
root10:23 ? 00:00:12
root10:23 ? 00:00:00
root10:23 ? 00:00:00 upstart-udev-bridge –daemon
范例7: 顯示進程間的關(guān)系
root@localhost :~# ps -efh
Warning: bad ps syntax, perhaps a bogus ‘-‘? See
31374 pts/2 Ss 0:00 -bash USER=root LOGNAME=root HOME=/root PATH=/usr/local/in:/usr/
31418 pts/2 R+ 0:00 \_ ps -efh TERM=xterm SHELL=/bin/bash XDG_SESSION_COOKIE=93b5d3d0
30489 pts/0 Ss+ 0:00 bash XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg SPEECHD_PORT=6560
30749 pts/0 S 0:15 \_ gedit ui_mainlocalhost.h ORBIT_SOCKETDIR=/tmp/orbit-root SSH_AGENT
1025 tty7 Ss+ 10:12 /usr/bin/X :0 -nr -verbose -auth /var/run/gdm/auth-for-gdm-Ge8TFD/
1021 tty1 Ss+ 0:00 /in/gettytty1 PATH=/usr/local/in:/usr/local/bin:/usr
867 tty6 Ss+ 0:00 /in/gettytty6 PATH=/usr/local/in:/usr/local/bin:/usr
864 tty3 Ss+ 0:00 /in/gettytty3 PATH=/usr/local/in:/usr/local/bin:/usr
862 tty2 Ss+ 0:00 /in/gettytty2 PATH=/usr/local/in:/usr/local/bin:/usr
855 tty5 Ss+ 0:00 /in/gettytty5 PATH=/usr/local/in:/usr/local/bin:/usr
852 tty4 Ss+ 0:00 /in/gettytty4 PATH=/usr/local/in:/usr/local/bin:/usr
ps
ps(即進程狀態(tài))命令用于提供有關(guān)當前正在運行的進程的信息,包括其進程標識號(PID)。
進程,也稱為任務(wù),是程序的執(zhí)行(即,運行)實例。系統(tǒng)為每個進程分粗派配一個唯一的PID。
ps的基本語法是
ps
當沒有任何選項使用ps時,它會發(fā)送到標準輸出,默認情況下是顯示監(jiān)視器,系統(tǒng)上當前至少有兩個進程的四項信息:shell和ps。shell是一個程序,它在類Unix操作系統(tǒng)中提供傳統(tǒng)的純文本用戶界面,用于發(fā)出命令并與系統(tǒng)交互,默認情況下在Linux上是bash。ps本身是一個進程,一旦顯示輸出它就會死掉(即終止)。
使用ps獲取有關(guān)系統(tǒng)當前搏寬進程的更完整信息的常用方便方法是使用以下方法:
ps -aux | less
ps顯示的進程可以限制為屬巖銀賀于任何給定用戶的進程,方法是通過grep(一種用于搜索文本的過濾器)輸出輸出。例如,屬于具有用戶名adam的用戶的進程可以使用以下內(nèi)容顯示:
ps -ef | grep adam
Linux 下 取進程占用 cpu 更高的前10個進程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
linux 下 取進程占用內(nèi)存(MEM)更高的前10個進程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
其中rsz是是實際內(nèi)存
$ ps -e -o ‘pid,comm,args,pcpu,rsz,vsz,stime,user,uid’
$ ps -e -o ‘pid,comm,args,pcpu,rsz,vsz,stime,user,uid’ | grep oracle | sort -nrk5
其中rsz為實際內(nèi)存,上例實現(xiàn)按內(nèi)存排序,由大到小
5個命令檢查Linux中內(nèi)存使用情況,含PS
ps -e 是所有進程
ps aux命令可以看到更詳細的命令行
關(guān)于linux下的ps命令的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機房服務(wù)器托管租用。
網(wǎng)站題目:Linux下的ps命令簡析 (linux下的ps命令)
標題鏈接:http://www.5511xx.com/article/dhjocjj.html


咨詢
建站咨詢
