歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux系統中的ps進程查看命令使用實例集錦

Linux系統中的ps進程查看命令使用實例集錦

日期:2017/3/1 17:30:37   编辑:Linux技術

linux 中ps命令是Process Status的縮寫。ps命令可以列出系統中當前運行的進程,所列出的進程是執行ps命令這個時刻正在運行的進程。
如果要動態顯示進程信息,需要使用top命令。

通過ps命令,可以確定哪些進程正在運行和運行狀態、進程是否結束、進程是否僵死,哪些進程占用過多資源等。

要殺死進程,使用kill命令,例:kill 12345 (12345為進程的pid)

linux進程有5種狀態
1.運行(正在運行或在運行隊列中等待)
2.中斷(休眠中,受阻,或等待某個條件的形成或接受到信號)
3.不可中斷(收到信號不喚醒和不可運行,進程必須等待直到有中斷發生)
4.僵死(進程已終止,但進程描述符存在,直到父進程調用wait4()系統調用後釋放)
5.停止(進程受到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信號後停止運行)

ps 5種進程狀態的標識碼如下:
R 運行 runnable(on run queue)
S 中斷 sleeping
D 不可中斷 uninterruptible sleep (usually IO)
Z 僵死 a defunct("zombie") process
T 停止 traced or stopped

命令參數
a 顯示所有進程
-a 顯示同一終端下的所有程序
-A 顯示所有進程
c 顯示進程的真實名稱
-N 反向選擇
-e 等於“-A”
e 顯示環境變量
f 顯示程序間的關系
-H 顯示樹狀結構
r 顯示當前終端的進程
T 顯示當前終端的所有程序
u 指定用戶的所有進程
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的進程
-C<命令> 列出指定命令的狀況
–lines<行數> 每頁顯示的行數
–width<字符數> 每頁顯示的字符數
–help 顯示幫助信息
–version 顯示版本顯示

輸出列的含義
F 代表這個程序的旗標 (flag), 4 代表使用者為 super user
S 代表這個程序的狀態 (STAT),關於各 STAT 的意義將在內文介紹
UID 程序被該 UID 所擁有
PID 進程的ID
PPID 則是其上級父程序的ID
C CPU 使用的資源百分比
PRI 這個是 Priority (優先執行序) 的縮寫,詳細後面介紹
NI 這個是 Nice 值,在下一小節我們會持續介紹
ADDR 這個是 kernel function,指出該程序在內存的那個部分。如果是個 running的程序,一般就是 “-“
SZ 使用掉的內存大小
WCHAN 目前這個程序是否正在運作當中,若為 - 表示正在運作
TTY 登入者的終端機位置
TIME 使用掉的 CPU 時間。
CMD 所下達的指令

例子:
1.顯示所有進程信息

復制代碼代碼如下:
fdipzone@ubuntu:~$ ps -A
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 ksoftirqd/0
4 ? 00:00:00 kworker/0:0
5 ? 00:00:00 kworker/u:0
6 ? 00:00:00 migration/0
7 ? 00:00:00 migration/1
8 ? 00:00:00 kworker/1:0
9 ? 00:00:00 ksoftirqd/1
10 ? 00:00:00 kworker/0:1

...省略部分結果

2.顯示指定用戶進程

復制代碼代碼如下:
fdipzone@ubuntu:~$ ps -u fdipzone
PID TTY TIME CMD
1502 ? 00:00:00 gnome-keyring-d
1521 ? 00:00:00 gnome-session
1551 ? 00:00:00 ibus-daemon
1555 ? 00:00:00 ssh-agent
1558 ? 00:00:00 dbus-launch
1559 ? 00:00:00 ibus-gconf
1561 ? 00:00:00 python
1563 ? 00:00:00 dbus-daemon
1564 ? 00:00:00 ibus-x11
1569 ? 00:00:00 gconfd-2

...省略部分結果

3.顯示所有進程,並顯示命令行

復制代碼代碼如下:
fdipzone@ubuntu:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 22:53 ? 00:00:01 /sbin/init
root 2 0 0 22:53 ? 00:00:00 [kthreadd]
root 3 2 0 22:53 ? 00:00:00 [ksoftirqd/0]
root 4 2 0 22:53 ? 00:00:00 [kworker/0:0]
root 5 2 0 22:53 ? 00:00:00 [kworker/u:0]
root 6 2 0 22:53 ? 00:00:00 [migration/0]
root 7 2 0 22:53 ? 00:00:00 [migration/1]
root 8 2 0 22:53 ? 00:00:00 [kworker/1:0]
root 9 2 0 22:53 ? 00:00:00 [ksoftirqd/1]
root 10 2 0 22:53 ? 00:00:00 [kworker/0:1]

...省略部分結果

4.與grep命令組合使用,查找指定的進程

復制代碼代碼如下:
fdipzone@ubuntu:~$ ps -ef | grep apache
root 2032 1 0 22:56 ? 00:00:01 /usr/sbin/apache2 -k start
www-data 2318 2032 0 22:58 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2319 2032 0 22:58 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2320 2032 0 22:58 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2321 2032 0 22:58 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2322 2032 0 22:58 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2323 2032 0 22:58 ? 00:00:00 /usr/sbin/apache2 -k start

...省略部分結果

5.顯示當前登入用戶的bash相關的進程

復制代碼代碼如下:
fdipzone@ubuntu:~$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 1805 1798 0 80 0 - 7011 wait pts/0 00:00:00 bash
0 R 1000 2561 1805 0 80 0 - 3377 - pts/0 00:00:00 ps

6.列出所有用戶啟動的進程

復制代碼代碼如下:
[fdipzone@ubuntu:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.2 24136 2188 ? Ss 22:53 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 22:53 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 22:53 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S 22:53 0:00 [kworker/u:0]
root 6 0.0 0.0 0 0 ? S 22:53 0:00 [migration/0]
root 7 0.0 0.0 0 0 ? S 22:53 0:00 [migration/1]
root 8 0.0 0.0 0 0 ? S 22:53 0:00 [kworker/1:0]
root 9 0.0 0.0 0 0 ? S 22:53 0:00 [ksoftirqd/1]
root 10 0.0 0.0 0 0 ? S 22:53 0:00 [kworker/0:1]
root 11 0.0 0.0 0 0 ? S< 22:53 0:00 [cpuset]
root 12 0.0 0.0 0 0 ? S< 22:53 0:00 [khelper]

...省略部分結果

另外:
a:顯示其他用戶啟動的進程
x:查看系統中屬於自己的進程
u:啟動這個進程的用戶和啟動時間

Copyright © Linux教程網 All Rights Reserved