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

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了藁城免費(fèi)建站歡迎大家使用!
1. ps命令的基本用法
ps命令的基本用法是:在Shell命令行下輸入”ps”即可列出當(dāng)前用戶的進(jìn)程列表。
下面是一個(gè)示例:
“`
$ ps
PID TTY TIME CMD
4701 pts/0 00:00:00 bash
4805 pts/0 00:00:00 ps
“`
這個(gè)輸出的之一行是標(biāo)題欄,分別是PID、TTY、TIME和CMD。后面的每一行都表示一個(gè)進(jìn)程,PID表示進(jìn)程號(hào),TTY表示進(jìn)程所處的終端設(shè)備,TIME表示運(yùn)行時(shí)間,CMD表示進(jìn)程的命令。以上例子中,Ps的進(jìn)程號(hào)是4805,它的命令是ps。
ps命令還可以添加一些選項(xiàng)參數(shù)以改變它的輸出,比如:
“`
$ ps -e #列出所有進(jìn)程
$ ps -l #使用長(zhǎng)格式輸出
$ ps -ef #列出所有進(jìn)程,并且使用完整格式輸出
$ ps -aux #列出所有進(jìn)程,并且包括僵尸進(jìn)程
“`
2. ps命令的常用選項(xiàng)參數(shù)
除了上面提到的-e、-l、-f和-aux參數(shù)之外,ps命令還具有其他選項(xiàng)參數(shù),下面對(duì)其中一些進(jìn)行簡(jiǎn)要介紹:
– -C:根據(jù)進(jìn)程的命令名稱選出進(jìn)程
– -N:不選定任何進(jìn)程
– -u:根據(jù)進(jìn)程的用戶ID選出進(jìn)程
– -A:表示選擇所有進(jìn)程,相當(dāng)于-e參數(shù)
– -d:顯示進(jìn)程的父進(jìn)程ID
– -n:只顯示與當(dāng)前終端相關(guān)的進(jìn)程
– -o:輸出指定的字段列表
3. ps命令的實(shí)戰(zhàn)應(yīng)用
ps命令不僅可以用于查看系統(tǒng)進(jìn)程,還可以支持一些其他的應(yīng)用場(chǎng)景。下面介紹幾個(gè)實(shí)戰(zhàn)應(yīng)用:
1. 列出某用戶的進(jìn)程
“`
$ ps -u username
“`
2. 列出某個(gè)程序的進(jìn)程
“`
$ ps -C program_name
“`
3. 查找某個(gè)程序是否在運(yùn)行
“`
$ ps -e | grep program_name
“`
4. 結(jié)束某個(gè)進(jìn)程
“`
$ kill -9
“`
4. ps命令的相關(guān)實(shí)用技巧
除了上面介紹的ps命令中的選項(xiàng)參數(shù)和實(shí)戰(zhàn)應(yīng)用外,還有一些相關(guān)的實(shí)用技巧。
1. 使用pgrep命令查找進(jìn)程ID
pgrep命令可以直接通過進(jìn)程名稱查找進(jìn)程ID,比如:
“`
$ pgrep program_name
“`
2. 通過ps命令查看進(jìn)程樹
下面命令可以顯示當(dāng)前進(jìn)程及其子進(jìn)程的樹狀結(jié)構(gòu):
“`
$ ps fax
“`
3. 使用ps命令查看內(nèi)存使用情況
“`
$ ps aux | awk ‘{ sum += $6 } END { print sum }’
“`
這個(gè)命令將按字節(jié)統(tǒng)計(jì)系統(tǒng)中所有進(jìn)程使用的內(nèi)存總量。
相關(guān)問題拓展閱讀:
- Linux進(jìn)程詳解
- Linux ps命令詳解
Linux進(jìn)程詳解
ps是Linux 中最基礎(chǔ)的瀏覽系統(tǒng)中的進(jìn)程的命令。能列出系統(tǒng)中運(yùn)行的進(jìn)程,包括進(jìn)程號(hào)、命令、CPU使用量、內(nèi)存使用量等。接下來(lái)解讀一下Linux操作系統(tǒng)的進(jìn)程和Windows「Ctrl+Alt+delete」直接的差異。
在進(jìn)行了解進(jìn)程命令之前需要知道進(jìn)程的一些狀態(tài)
ps工具標(biāo)識(shí)進(jìn)程的5種狀態(tài)碼:
Linux操作系統(tǒng)進(jìn)程執(zhí)行的狀態(tài)轉(zhuǎn)換圖如圖所示:
下面來(lái)看一下 ps命令
ps –help命令可以查看ps命令的使用說明
或者使用 man ps命令 查詢ps的詳細(xì)說明
在 man手冊(cè) 關(guān)于ps的解讀中,總結(jié)了一下幾個(gè)參數(shù)的含義:
以上的參數(shù)是可以拼接使用的,那就了解一些常用的參數(shù)組合
ps aux命令
ps -ef命令
查看進(jìn)程狀態(tài)這兩個(gè)是命令是最常用的,使用 ps aux 可以查看進(jìn)程的詳細(xì)運(yùn)行狀態(tài)等。使用 ps -ef 不僅可以顯示自身的PID,也可以顯示PPID(父進(jìn)程)。但是顯示不了進(jìn)程的運(yùn)行狀態(tài)
top命令
top命令是Linux下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,類鄭吵似于Windows的任務(wù)管理器
man手冊(cè)關(guān)于top的解釋
關(guān)閉進(jìn)程,重啟進(jìn)程
在上一片文章中 linux的目錄結(jié)構(gòu) 里面說過,在目錄/etc/init.d/目錄下包含許多系統(tǒng)各種服務(wù)的啟動(dòng)和停止腳本。假設(shè)進(jìn)程占用內(nèi)存較大或者進(jìn)程液汪異常,我們是重啟這個(gè)進(jìn)程restart。如下圖所示:
我們重啟了mysqld這個(gè)進(jìn)程,可以看出進(jìn)程號(hào)已經(jīng)改變(從15743到15964),說明進(jìn)程已經(jīng)重啟。
Linux下有3個(gè)喊埋侍特殊的進(jìn)程,idle進(jìn)程(PID=0), init進(jìn)程(PID=1)和kthreadd(PID=2)
我們來(lái)看一下進(jìn)程狀態(tài)
可以看到很多進(jìn)程的PPID號(hào)是1和2。也就是init進(jìn)程和kthreadd進(jìn)程。
在使用Windows系統(tǒng)的過程中,都碰到過應(yīng)用程序卡死的情況。應(yīng)對(duì)此問題,我們一般都是等待失去響應(yīng)的程序恢復(fù),或者是直接使用任務(wù)管理器將其強(qiáng)制關(guān)閉,然后再重新打開。
在Linux中,遇到特別耗費(fèi)資源的進(jìn)程,當(dāng)然需要使用 top命令 查看進(jìn)程占用率高的進(jìn)程。或者使用 free -m命令 查看內(nèi)存剩余。假設(shè)需要強(qiáng)殺進(jìn)程來(lái)釋放空間。我們涉及到Linux中信號(hào)?的知識(shí),在這里簡(jiǎn)單的描述一下,信號(hào)的詳解會(huì)在接下來(lái)的文章里面敘述。
free -m命令查看內(nèi)存空間
在linux中存在著64種信號(hào)
使用 kill -l命令 查看信號(hào)列表
在前面說過進(jìn)程會(huì)被這些個(gè)信號(hào)>
(進(jìn)程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號(hào)強(qiáng)制停止運(yùn)行)
那問題就在于如何發(fā)信號(hào)給這些個(gè)進(jìn)程。
使用kill命令發(fā)信號(hào)
我們從上面可以看到 mysqld進(jìn)程被重啟了 。
Linux ps命令詳解
ps -elf |grep cp(與進(jìn)程有關(guān)的字符串)
whereis cp
cp: /bin/cp /usr/share/man/man1p/cp.1p.gz /usr/share/man/man1/cp.1.gz
可以找到進(jìn)程橋念名的所有頃行路徑雀消嘩。
【 ps 】
?語(yǔ)法
ps
?功能
ps 命令:用來(lái)顯示當(dāng)前進(jìn)程的狀態(tài)
?類似命令top kill pgrep
?執(zhí)行權(quán)限 超級(jí)用戶 普通用戶
?命令屬性 系統(tǒng)管理
?參數(shù)
必要參數(shù)
a 顯示所有進(jìn)程
-a 顯示同一終端下的所有程序
-A 顯示所有進(jìn)程
c 顯示進(jìn)程的真實(shí)名稱
-N 反向選擇
-e 等于“-A”
e 顯示環(huán)境變量
f 顯示程序間的關(guān)系
-H 顯示樹狀結(jié)構(gòu)
r 顯示當(dāng)前終端的進(jìn)程
T 顯示當(dāng)前終端的所有程序
u 指定用戶的所攜圓則有進(jìn)程
選擇參數(shù)
-C 列出指定命令的狀況
–lines 每頁(yè)顯示的行數(shù)
–width 每頁(yè)顯示的字符數(shù)
–help 顯示幫助信息
–version 顯示版本顯示
范例1: 顯示所有進(jìn)程信息
root@localhost :~# ps -A 顯示進(jìn)腔氏程信息
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進(jìn)程用戶信息
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進(jìn)程信息
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: 顯示所有進(jìn)程信息,連同命令行
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 常用組合用法,查找特定進(jìn)程
root@localhost :~# ps -ef |grep sshd //查找字串為sshd的進(jìn)程
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: 顯示進(jìn)程間的關(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(即進(jìn)程狀態(tài))命令用于提供有關(guān)當(dāng)前正在運(yùn)行的進(jìn)程的信息,包括其進(jìn)程標(biāo)識(shí)號(hào)(PID)。
進(jìn)程,也稱為任務(wù),是程序的執(zhí)行(即,運(yùn)行)實(shí)例。系統(tǒng)為每個(gè)進(jìn)程分粗派配一個(gè)唯一的PID。
ps的基本語(yǔ)法是
ps
當(dāng)沒有任何選項(xiàng)使用ps時(shí),它會(huì)發(fā)送到標(biāo)準(zhǔn)輸出,默認(rèn)情況下是顯示監(jiān)視器,系統(tǒng)上當(dāng)前至少有兩個(gè)進(jìn)程的四項(xiàng)信息:shell和ps。shell是一個(gè)程序,它在類Unix操作系統(tǒng)中提供傳統(tǒng)的純文本用戶界面,用于發(fā)出命令并與系統(tǒng)交互,默認(rèn)情況下在Linux上是bash。ps本身是一個(gè)進(jìn)程,一旦顯示輸出它就會(huì)死掉(即終止)。
使用ps獲取有關(guān)系統(tǒng)當(dāng)前搏寬進(jìn)程的更完整信息的常用方便方法是使用以下方法:
ps -aux | less
ps顯示的進(jìn)程可以限制為屬巖銀賀于任何給定用戶的進(jìn)程,方法是通過grep(一種用于搜索文本的過濾器)輸出輸出。例如,屬于具有用戶名adam的用戶的進(jìn)程可以使用以下內(nèi)容顯示:
ps -ef | grep adam
Linux 下 取進(jìn)程占用 cpu 更高的前10個(gè)進(jìn)程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
linux 下 取進(jìn)程占用內(nèi)存(MEM)更高的前10個(gè)進(jìn)程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
其中rsz是是實(shí)際內(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為實(shí)際內(nèi)存,上例實(shí)現(xiàn)按內(nèi)存排序,由大到小
5個(gè)命令檢查L(zhǎng)inux中內(nèi)存使用情況,含PS
ps -e 是所有進(jìn)程
ps aux命令可以看到更詳細(xì)的命令行
關(guān)于linux下的ps命令的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站營(yíng)銷推廣找創(chuàng)新互聯(lián),全國(guó)分站站群網(wǎng)站搭建更好做SEO營(yíng)銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價(jià)格厚道。提供成都服務(wù)器托管租用、綿陽(yáng)服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽(yáng)服務(wù)器機(jī)房服務(wù)器托管租用。
本文名稱:Linux下的ps命令簡(jiǎn)析 (linux下的ps命令)
本文URL:http://www.fisionsoft.com.cn/article/dhjocjj.html


咨詢
建站咨詢
