歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> ps命令的10個例子

ps命令的10個例子

日期:2017/2/28 14:37:56   编辑:Linux教程

Linux ps 命令

linux的ps命令是一個查看系統運行的進程的一個最基礎的工具。它提供了一個當前進程的快照,還帶有一些具體的信息,比如用戶id,cpu使用率,內存使用,命令名等,它不會像top或者htop一樣實時顯示數據。雖然它在功能和輸出上更加簡單,但它仍然是每個linux新手需要了解和學好的必要進程管理/檢測工具。

在本篇中,我們會學習ps命令基本的用法:查找、過濾,以不同的方式排序。

語法說明

ps命令有兩種不同風格的語法規則:BSD風格和UNIX風格。Linux新手經常感到困惑並會誤解這兩種風格,所以在繼續下一步之前,我們來弄清楚一些基本的信息。

注意: "ps aux"不等同於"ps -aux"。比如"-u"用於顯示用戶的進程,但是"u"意味著顯示具體信息。

BSD 形式 - BSD形式的語法的選項前沒有破折號,如:

ps aux

UNIX/LINUX 形式 - linux形式的語法的選項前有破折號,如:

ps -ef

在linux系統上混合這兩種語法是可以的。比如 "ps ax -f"。但是本章中我們主要討論UNIX形式語法。

如何使用ps命令

1. 顯示所有進程

下面的命令可以顯示所有進程的列表。

$ ps ax
$ ps -ef

通過管道輸出到"less"可以分頁。

使用"u"或者"-f"選項可以顯示進程的具體信息。

$ ps aux
$ ps -ef -f

為什麼USER列顯示的不是我的用戶名,但是其他的像root,www-data等卻顯示? 對於所有的用戶(包括你們的),如果長度大於8個字符,那麼ps只會顯示你的UID而不是用戶名。

2. 顯示用戶進程

使用"-u"選項後跟用戶名來過濾所屬用戶的進程。多個用戶名可以用逗號分隔。

$ 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顯示進程

通過"-C"選項後面加上名字或者命令來搜索進程。

$ ps -C apache2
  PID TTY          TIME CMD
 2359 ?        00:00:00 apache2
 4524 ?        00:00:00 apache2
 4525 ?        00:00:00 apache2
...

要通過進程id顯示進程,就使用"-p"選項,並且還可以通過逗號分隔來指定多個進程id。

$ ps -f -p 3150,7298,6544

"-C"必須提供精確的進程名,並且它並不能通過部分名字或者通配符查找。為了更靈活地搜索進程列表,通常使用grep命令。

$ ps -ef | grep apache

4. 通過cpu或者內存使用排序進程

系統管理員通常想要找出那些消耗最多內存或者CPU的進程。排序選項會基於特定的字段或者參數來排序進程列表。

可以用'--sort'指定多個字段,並用逗號分割。除此之外,字段前面還可以跟上'-'或者'+'的前綴來相應地表示遞減和遞增排序。這裡有很多的用於排序的選項,通過man頁來獲取完整的列表。

$ 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/python /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

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2013-12/93799p2.htm

推薦閱讀:

Linux流量監控工具 – iftop http://www.linuxidc.com/Linux/2013-08/89102.htm

Linux top 命令詳解 http://www.linuxidc.com/Linux/2013-06/85626.htm

Linux下top命令 http://www.linuxidc.com/Linux/2013-04/83151.htm

Linux下高效的使用 top 命令 http://www.linuxidc.com/Linux/2013-04/82676.htm

Linux系統top命令詳解 http://www.linuxidc.com/Linux/2012-12/76750.htm

Linux 系統監控負載top命令詳解 http://www.linuxidc.com/Linux/2012-10/72756.htm

Copyright © Linux教程網 All Rights Reserved