歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux維護 >> Linux ps命令例子匯總

Linux ps命令例子匯總

日期:2017/3/2 10:36:58   编辑:Linux維護

Linux ps命令主要用於查看系統運行的進程,確定進程運行的狀態機是否占用過多資源等?下面小編通過實例來給大家詳細介紹下Linux的ps命令,一起來了解下吧。

Linux提供了當前進程的同時,如用戶ID,CPU使用率,內存使用率,命令名稱等,它不顯示實時數據,如top或htop命令的詳細信息。但是,即使是功能和輸出簡單,但它仍然是一個必用的過程管理/監控工具,每一個Linux新手應該知道這一點,好好學習。在這篇文章中,我們將使用ps命令以不同的方式來查看進程、篩選和排序它們,以加強基礎部分。

語法注意:

ps命令帶有2種不一樣的風格,分別是BSD和UNIX。新用戶經常會混淆和錯誤地解釋這兩種風格。所以要弄清楚他們,繼續操作之前這裡是一些基本的信息。

注意:“ps aux”和“ps -aux”不相同。例如“-u”用來顯示該用戶的進程。但是“u”則是顯示詳細的信息。

BSD風格:在BSD風格的語法選項前不帶連字符。

ps aux

UNIX/LINUX的風格:在linux風格的語法選項前面有一個破折號如常。…

ps -ef

混合使用兩種Linux系統上的語法風格是好事兒。例如“ps ax”在這篇文章中,我們將主要集中在UNIX風格的語法。

如何使用ps命令呢?

1、顯示所有進程:

下面的命令將列出所有的進程

$ ps ax

$ ps -ef

加上管道輸出給less,來滾動顯示

“u”或者“-f”參數來顯示所有進程的詳細信息

$ ps aux

$ ps -ef -f

注意:為什麼用戶列不顯示我的用戶名,但顯示其他用戶,如root、www等,對於所有的用戶名(包括你)如果長度大於8個字符,然後ps將只顯示UID,而不是用戶名。

2、根據用戶顯示進程:

由進程的所屬用戶使用&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、通過名字和進程ID顯示進程:

通過名字或命令搜索進程,使用&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、根據CPU或者內存進行排序:

系管理員經常希望找出那些消耗大量內存或CPU的進程。排序選項將基於特定的字段或參數讓進程列表進行排序。

“–sort&r”由逗號分隔的多個字段可以用指定。此外,該字段可以帶有前綴&l“rdquo;或&l”dquo;符號,表示降序或升序分別排序。通過進程列表進行排序有很多參數,你可以檢查手冊頁的完整列表。

$ ps aux --sort=-pcpu,+pmem

顯示前5個消耗了大部分的CPU進程。

$ 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、用樹的風格顯示進程的層次關系:

許多進程實際上是一些父進程分的分支,知道這父子進程關系往往是有用的。在‘–forest’選項將建立ASCII藝術風格層次的樹視圖。

下面的命令將搜索進程名字為Apache2,形成一個樹結構來顯示詳細的信息。

$ 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

盡量不要使用任何的排序和樹風格一起展示,因為他們使用了不同的順序。

6、顯示一個父進程的子進程:

這裡有一個例子顯示所有apache進程的分支

$ ps -o pid,uname,comm -C apache2

PID USER COMMAND

2359 root apache2

4524 www-data apache2

4525 www-data apache2

4526 www-data apache2

4527 www-data apache2

4528 www-data apache2

[term]

The first process that is owned by root is the main apache2 process and all other apache2 processes have been forked out of this main process. The next command lists all child apache2 processes using the pid of the main apache2 process

[term]

$ ps --ppid 2359

PID TTY TIME CMD

4524 ? 00:00:00 apache2

4525 ? 00:00:00 apache2

4526 ? 00:00:00 apache2

4527 ? 00:00:00 apache2

4528 ? 00:00:00 apache2

7、顯示一個進程的線程:

“-L&r”將顯示進程的線程。它可以用來顯示特定進程的所有線程或者所有進程。

下面的命令將顯示所有id為3150的進程所擁有的線程。

$ ps -p 3150 -L

8、改變要顯示的列:

ps命令可以配置為只顯示選中的列表。為了顯示完整列表可以查看手冊。

下面的命令只顯示PID,用戶名,CPU,內存和命令的列。

$ ps -e -o pid,uname,pcpu,pmem,comm

可以重命名列標簽:

$ ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm

PID USERNAME CPU_USAGE %MEM COMMAND

1 root 0.0 0.0 init

2 root 0.0 0.0 kthreadd

3 root 0.0 0.0 ksoftirqd/0

4 root 0.0 0.0 kworker/0:0

5 root 0.0 0.0 kworker/0:0H

7 root 0.0 0.0 migration/0

8 root 0.0 0.0 rcu_bh

9 root 0.0 0.0 rcuob/0

10 root 0.0 0.0 rcuob/1

相當的靈活

9、顯示進程運行的時間:

表示進程的運行時間。對於運行的時間,列默認情況下是不顯示的,可以使用&l“&rdq”。

$ ps -e -o pid,comm,etime

10、把ps命令變成一個實時查看器:

像往常一樣,watch命令可以用來實時捕捉ps顯示進程。簡單的例子如下:

$ watch -n 1 ‘ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15’

輸出在桌面上像這樣:

Every 1.0s: ps -e -o pid,uname,cmd,pmem,pcpu --。。。 Sun Dec 1 18:16:08 2013

PID USER CMD %MEM %CPU

3800 1000 /opt/google/《span id=“0_nwp” style=“width: auto; height: auto; float: none;”》《a id=“0_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=chrome&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=1&seller_id=1&di=128”target=“_blank” mpid=“0” style=“text-decoration: none;”》《span style=“color:#0000ff;font-size:14px;width:auto;height:auto;float:none;”》chrome《/span》《/a》《/span》/chrome - 4.6 1.4

7492 1000 /opt/google/chrome/chrome - 2.7 1.4

3150 1000 /opt/google/chrome/chrome 2.7 2.5

3824 1000 /opt/google/chrome/chrome - 2.6 0.6

3936 1000 /opt/google/chrome/chrome - 2.4 1.6

2936 1000 /usr/bin/plasma-desktop 2.3 0.2

9666 1000 /opt/google/chrome/chrome - 2.1 0.8

3842 1000 /opt/google/chrome/chrome - 2.1 0.8

4739 1000 /opt/google/《span id=“1_nwp” style=“width: auto; height: auto; float: none;”》《a id=“1_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=chrome&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=1&seller_id=1&di=128”target=“_blank” mpid=“1” style=“text-decoration: none;”》《span style=“color:#0000ff;font-size:14px;width:auto;height:auto;float:none;”》chrome《/span》《/a》《/span》/chrome - 1.8 1.0

3930 1000 /opt/google/chrome/chrome - 1.7 1.0

3911 1000 /opt/google/chrome/chrome - 1.6 0.6

3645 1000 /opt/google/chrome/chrome - 1.5 0.4

3677 1000 /opt/google/chrome/chrome - 1.5 0.4

3639 1000 /opt/google/chrome/chrome - 1.4 0.4

輸出將被刷新,每1秒刷新統計數據。不過不要以為這是類似上面。

你會注意到在相比情況下top/htop命令的輸出變化會更加頻繁。

這是因為上面輸出各種各樣的值,CPU使用率和內存使用情況的組合。但上述ps命令排序顯示的更簡單,采取的是一個時間1列(如學校數學)。所以它不會像top那樣快速更新。

Copyright © Linux教程網 All Rights Reserved