Linux ps命令例子匯總
Linux ps命令主要用于查看系統(tǒng)運(yùn)行的進(jìn)程,確定進(jìn)程運(yùn)行的狀態(tài)機(jī)是否占用過多資源等?下面學(xué)習(xí)啦小編通過實例來給大家詳細(xì)介紹下Linux的ps命令,一起來了解下吧。
Linux提供了當(dāng)前進(jìn)程的同時,如用戶ID,CPU使用率,內(nèi)存使用率,命令名稱等,它不顯示實時數(shù)據(jù),如top或htop命令的詳細(xì)信息。但是,即使是功能和輸出簡單,但它仍然是一個必用的過程管理/監(jiān)控工具,每一個Linux新手應(yīng)該知道這一點,好好學(xué)習(xí)。在這篇文章中,我們將使用ps命令以不同的方式來查看進(jìn)程、篩選和排序它們,以加強(qiáng)基礎(chǔ)部分。
語法注意:
ps命令帶有2種不一樣的風(fēng)格,分別是BSD和UNIX。新用戶經(jīng)常會混淆和錯誤地解釋這兩種風(fēng)格。所以要弄清楚他們,繼續(xù)操作之前這里是一些基本的信息。
注意:“ps aux”和“ps -aux”不相同。例如“-u”用來顯示該用戶的進(jìn)程。但是“u”則是顯示詳細(xì)的信息。
BSD風(fēng)格:在BSD風(fēng)格的語法選項前不帶連字符。
ps aux
UNIX/LINUX的風(fēng)格:在linux風(fēng)格的語法選項前面有一個破折號如常。…
ps -ef
混合使用兩種Linux系統(tǒng)上的語法風(fēng)格是好事兒。例如“ps ax”在這篇文章中,我們將主要集中在UNIX風(fēng)格的語法。
如何使用ps命令呢?
1、顯示所有進(jìn)程:
下面的命令將列出所有的進(jìn)程
$ ps ax
$ ps -ef
加上管道輸出給less,來滾動顯示
“u”或者“-f”參數(shù)來顯示所有進(jìn)程的詳細(xì)信息
$ ps aux
$ ps -ef -f
注意:為什么用戶列不顯示我的用戶名,但顯示其他用戶,如root、www等,對于所有的用戶名(包括你)如果長度大于8個字符,然后ps將只顯示UID,而不是用戶名。
2、根據(jù)用戶顯示進(jìn)程:
由進(jìn)程的所屬用戶使用&l“&rdq”用戶名來顯示。多個用戶名可以提供以逗號分隔。
$ ps -f -u www-data
UID PID PPID C STIME TTY TIME CMD
www-data 1329 1328 0 09:32 ? 00:00:00 nginx: worker process
www-data 1330 1328 0 09:32 ? 00:00:00 nginx: worker process
www-data 1332 1328 0 09:32 ? 00:00:00 nginx: worker process
www-data 1377 1372 0 09:32 ? 00:00:00 php-fpm: pool a.localhost
www-data 1378 1372 0 09:32 ? 00:00:00 php-fpm: pool a.localhost
www-data 4524 2359 0 10:03 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 4527 2359 0 10:03 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 4528 2359 0 10:03 ? 00:00:00 /usr/sbin/apache2 -k start
3、通過名字和進(jìn)程ID顯示進(jìn)程:
通過名字或命令搜索進(jìn)程,使用&l“&rdq”加搜索詞。
$ ps -C apache2
PID TTY TIME CMD
2359 ? 00:00:00 apache2
4524 ? 00:00:00 apache2
4525 ? 00:00:00 apache2
。。。
4、根據(jù)CPU或者內(nèi)存進(jìn)行排序:
系管理員經(jīng)常希望找出那些消耗大量內(nèi)存或CPU的進(jìn)程。排序選項將基于特定的字段或參數(shù)讓進(jìn)程列表進(jìn)行排序。
“–sort&r”由逗號分隔的多個字段可以用指定。此外,該字段可以帶有前綴&l“rdquo;或&l”dquo;符號,表示降序或升序分別排序。通過進(jìn)程列表進(jìn)行排序有很多參數(shù),你可以檢查手冊頁的完整列表。
$ ps aux --sort=-pcpu,+pmem
顯示前5個消耗了大部分的CPU進(jìn)程。
$ ps aux --sort=-pcpu | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 2.6 0.7 51396 7644 ? Ss 02:02 0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
root 1249 2.6 3.0 355800 30896 tty1 Rsl+ 02:02 0:02 /usr/bin/X -background none :0 vt01 -nolisten tcp
root 508 2.4 1.6 248488 16776 ? Ss 02:02 0:03 /usr/bin/《span id=“3_nwp” style=“width: auto; height: auto; float: none;”》《a id=“3_nwl” href=“http://cpro.baidu.com/cpro/ui/uijs.php?rs=1&u=http%3A%2F%2Fwww%2E21ops%2Ecom%2Flinux%2F5623%2Ehtml&p=baidu&c=news&n=10&t=tpclicked3_hc&q=98031099_cpr&k=python&k0=chrome&kdi0=8&k1=linux&kdi1=1&k2=%BC%E0%BF%D8&kdi2=1&k3=python&kdi3=1&k4=sun&kdi4=1&k5=%B1%EA%C7%A9&kdi5=8&sid=e31bc2f843262db&ch=0&tu=u1836738&jk=8c16c9b871dfd19d&cf=29&fv=11&stid=9&urlid=0&luki=4&seller_id=1&di=128”target=“_blank” mpid=“3” style=“text-decoration: none;”》《span style=“color:#0000ff;font-size:14px;width:auto;height:auto;float:none;”》python《/span》《/a》《/span》 /usr/sbin/firewalld --nofork
silver 1525 2.1 2.3 448568 24392 ? S 02:03 0:01 /usr/bin/python /usr/share/system-config-printer/applet.py
5、用樹的風(fēng)格顯示進(jìn)程的層次關(guān)系:
許多進(jìn)程實際上是一些父進(jìn)程分的分支,知道這父子進(jìn)程關(guān)系往往是有用的。在‘–forest’選項將建立ASCII藝術(shù)風(fēng)格層次的樹視圖。
下面的命令將搜索進(jìn)程名字為Apache2,形成一個樹結(jié)構(gòu)來顯示詳細(xì)的信息。
$ ps -f --forest -C apache2
UID PID PPID C STIME TTY TIME CMD
root 2359 1 0 09:32 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 4524 2359 0 10:03 ? 00:00:00 _ /usr/sbin/apache2 -k start
www-data 4525 2359 0 10:03 ? 00:00:00 _ /usr/sbin/apache2 -k start
www-data 4526 2359 0 10:03 ? 00:00:00 _ /usr/sbin/apache2 -k start
www-data 4527 2359 0 10:03 ? 00:00:00 _ /usr/sbin/apache2 -k start
www-data 4528 2359 0 10:03 ? 00:00:00 _ /usr/sbin/apache2 -k start
盡量不要使用任何的排序和樹風(fēng)格一起展示,因為他們使用了不同的順序。