日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 命令之 ps -- 显示进程状态/查看进程信息

發布時間:2023/12/3 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 命令之 ps -- 显示进程状态/查看进程信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 介紹
    • 語法格式
    • 常用選項
    • 命令示例
      • 示例 1,查看進程的 PID、名稱以及 CPU 占用率
      • 示例 2,查看所有的進程
      • 示例 3,按內存資源的使用量對進程進行排序
      • 示例 4,按 CPU 資源的使用量對進程進行排序
      • 示例 5,顯示所有進程信息
      • 示例 6,顯示指定用戶的進程信息
      • 示例 7,查看所有進程
      • 示例 8,顯示所有進程信息,連同命令行
      • 示例 9,結合命令 grep 查看指定進程的信息
      • 示例 10,通過名字或命令查看指定進程信息
      • 示例 11,查看所有進程,并按 CPU 降序,內存升序
      • 示例 12,用樹的風格顯示進程的層次關系
      • 示例 13,顯示一個父進程的子進程
      • 示例 14,重定義標簽,即自定義顯示欄的名稱,或者說顯示列的名稱
      • 示例 15,顯示進程運行的時間
      • 示例 16,查看指定進程的詳細信息
      • 示例 17,通過進程 id 獲取服務名稱
      • 示例 18,將目前屬于您自己這次登入的進程與相關信息列示出來
        • 字段說明
      • 示例 19,列出目前所有正在內存當中的程序
        • 字段說明
      • 示例 20,按程序樹的形式來顯示進程的信息
      • 示例 21,查看服務名稱含有 cron 或者 syslog 的進程信息
      • 示例 22,把所有進程顯示出來,并輸出到 ps001.txt 文件
      • 示例 23,用管道符 | 管道和 more 連接起來分頁查看所有的進程
      • 示例 24,按指定的字段來顯示進程的信息

介紹

ps 命令是“process status”的縮寫,ps 命令用于顯示當前系統的進程狀態。可以搭配kill指令隨時中斷、刪除不必要的程序。

ps 命令是最基本同時也是非常強大的進程查看命令,使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等,總之大部分信息都是可以通過執行該命令得到的。

語法格式

ps [選項]

常用選項

選項說明
-a顯示所有終端機下執行的程序,除了階段作業領導者之外。
a顯示現行終端機下的所有程序,包括其他用戶的程序。
-A顯示所有程序。
-c顯示CLS和PRI欄位。
c列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,選項或常駐服務的標示。
-C<指令名稱>指定執行指令的名稱,并列出該指令的程序的狀況。
-d顯示所有程序,但不包括階段作業領導者的程序。
-e此選項的效果和指定"A"選項相同。
e列出程序時,顯示每個程序所使用的環境變量。
-f顯示UID,PPIP,C與STIME欄位。
f用ASCII字符顯示樹狀結構,表達程序間的相互關系。
-g<群組名稱>此選項的效果和指定"-G"選項相同,當亦能使用階段作業領導者的名稱來指定。
g顯示現行終端機下的所有程序,包括群組領導者的程序。
-G<群組識別碼>列出屬于該群組的程序的狀況,也可使用群組名稱來指定。
h不顯示標題列。
-H顯示樹狀結構,表示程序間的相互關系。
-j 或 j采用工作控制的格式顯示程序狀況。
-l 或 l采用詳細的格式來顯示程序狀況。
L列出欄位的相關信息。
-m 或 m顯示所有的執行緒。
n以數字來表示USER和WCHAN欄位。
-N顯示所有的程序,除了執行ps指令終端機下的程序之外。
-p<程序識別碼>指定程序識別碼,并列出該程序的狀況。
p<程序識別碼>此選項的效果和指定"-p"選項相同,只在列表格式方面稍有差異。
r只列出現行終端機正在執行中的程序。
-s<階段作業>指定階段作業的程序識別碼,并列出隸屬該階段作業的程序的狀況。
s采用程序信號的格式顯示程序狀況。
S列出程序時,包括已中斷的子程序資料。
-t<終端機編號>指定終端機編號,并列出屬于該終端機的程序的狀況。
t<終端機編號>此選項的效果和指定"-t"選項相同,只在列表格式方面稍有差異。
-T顯示現行終端機下的所有程序。
-u<用戶識別碼>此選項的效果和指定"-U"選項相同。
u以用戶為主的格式來顯示程序狀況。
-U<用戶識別碼>列出屬于該用戶的程序的狀況,也可使用用戶名稱來指定。
U<用戶名稱>列出屬于該用戶的程序的狀況。
v采用虛擬內存的格式顯示程序狀況。
-V 或 V顯示版本信息。
-w 或 w采用寬闊的格式來顯示程序狀況。
x顯示所有程序,不以終端機來區分。
X采用舊式的Linux i386登陸格式顯示程序狀況。
-y配合選項"-l"使用時,不顯示F(flag)欄位,并以RSS欄位取代ADDR欄位 。
-<程序識別碼>此選項的效果和指定"p"選項相同。
–cols<每列字符數>設置每列的最大字符數。
–columns<每列字符數>此選項的效果和指定"–cols"選項相同。
–cumulative此選項的效果和指定"S"選項相同。
–deselect此選項的效果和指定"-N"選項相同。
–forest此選項的效果和指定"f"選項相同。
–headers重復顯示標題列。
–help在線幫助。
–info顯示排錯信息。
–lines<顯示列數>設置顯示畫面的列數。
–no-headers此選項的效果和指定"h"選項相同,只在列表格式方面稍有差異。
–group<群組名稱>此選項的效果和指定"-G"選項相同。
–Group<群組識別碼>此選項的效果和指定"-G"選項相同。
–pid<程序識別碼>此選項的效果和指定"-p"選項相同。
–rows<顯示列數>此選項的效果和指定"–lines"選項相同。
–sid<階段作業>此選項的效果和指定"-s"選項相同。
–tty<終端機編號>此選項的效果和指定"-t"選項相同。
–user<用戶名稱>此選項的效果和指定"-U"選項相同。
–User<用戶識別碼>此選項的效果和指定"-U"選項相同。
–version此選項的效果和指定"-V"選項相同。
–widty<每列字符數>此選項的效果和指定"-cols"選項相同。

命令示例

示例 1,查看進程的 PID、名稱以及 CPU 占用率

[root@htlwk0001host ~]# ps axo pid,comm,pcpuPID COMMAND %CPU1 systemd 0.02 kthreadd 0.03 rcu_gp 0.04 rcu_par_gp 0.06 kworker/0:0H 0.08 mm_percpu_wq 0.0

示例 2,查看所有的進程

[root@htlwk0001host ~]# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 179148 9780 ? Ss 2020 12:36 /usr/lib/syst root 2 0.0 0.0 0 0 ? S 2020 0:02 [kthreadd] root 3 0.0 0.0 0 0 ? I< 2020 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< 2020 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< 2020 0:00 [kworker/0:0H root 8 0.0 0.0 0 0 ? I< 2020 0:00 [mm_percpu_wq root 9 0.0 0.0 0 0 ? S 2020 0:05 [ksoftirqd/0]

示例 3,按內存資源的使用量對進程進行排序

[root@htlwk0001host ~]# ps aux | sort -rnk 4

示例 4,按 CPU 資源的使用量對進程進行排序

[root@htlwk0001host ~]# ps aux | sort -nk 3

示例 5,顯示所有進程信息

[root@htlwk0001host ~]# ps -APID TTY TIME CMD1 ? 00:12:36 systemd2 ? 00:00:02 kthreadd3 ? 00:00:00 rcu_gp4 ? 00:00:00 rcu_par_gp[root@htlwk0001host ~]# ps -aux # 也是查看所有的進程

示例 6,顯示指定用戶的進程信息

[root@htlwk0001host ~]# ps -u rootPID TTY TIME CMD1 ? 00:12:36 systemd2 ? 00:00:02 kthreadd3 ? 00:00:00 rcu_gp

示例 7,查看所有進程

[root@htlwk0001host ~]# ps -efL UID PID PPID LWP C NLWP STIME TTY TIME CMD root 1 0 1 0 1 2020 ? 00:12:36 /usr/lib/systemd/systemd --switched-root --system --deserialize 17 root 2 0 2 0 1 2020 ? 00:00:02 [kthreadd] root 3 2 3 0 1 2020 ? 00:00:00 [rcu_gp]

示例 8,顯示所有進程信息,連同命令行

[root@htlwk0001host ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 2020 ? 00:12:36 /usr/lib/systemd/systemd --switched-root --system --deserialize 17 root 2 0 0 2020 ? 00:00:02 [kthreadd] root 3 2 0 2020 ? 00:00:00 [rcu_gp]

示例 9,結合命令 grep 查看指定進程的信息

通過 ps 與 grep 的組合用法,查看進程 ssh 的信息:

[root@htlwk0001host ~]# ps -ef | grep ssh

示例 10,通過名字或命令查看指定進程信息

查看命令 nginx 的進程信息:

[root@htlwk0001host ~]# ps -C nginxPID TTY TIME CMD26556 ? 00:00:00 nginx414774 ? 00:00:23 nginx414775 ? 00:00:00 nginx

示例 11,查看所有進程,并按 CPU 降序,內存升序

[root@htlwk0001host ~]# ps aux --sort=-pcpu,+pmem USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 545600 0.0 0.0 17832 1580 ? Ssl 1月30 6:17 /usr/local/share/assist-daemon/assist_daemon root 558809 0.0 0.0 13100 1596 tty5 Ss+ 2月02 0:00 /sbin/agetty -o -p -- \u --noclear tty5 linux root 558808 0.0 0.0 13100 1708 tty6 Ss+ 2月02 0:00 /sbin/agetty -o -p -- \u --noclear tty6 linux root 558810 0.0 0.0 13100 1756 tty4 Ss+ 2月02 0:00 /sbin/agetty -o -p -- \u --noclear tty4 linux root 34295 0.0 0.0 98700 1864 ? Ss 2020 0:00 svnserve -d -r /opt/svn/qydpw/

注:- 表示降序,+ 表示升序

示例 12,用樹的風格顯示進程的層次關系

[root@htlwk0001host ~]# ps -f --forest -C nginx UID PID PPID C STIME TTY TIME CMD root 26556 1 0 2020 ? 00:00:00 nginx: master process nginx root 414774 26556 0 2020 ? 00:00:23 \_ nginx: worker process root 414775 26556 0 2020 ? 00:00:00 \_ nginx: worker process [root@htlwk0001host ~]#

示例 13,顯示一個父進程的子進程

[root@htlwk0001host ~]# ps -o pid,uname,comm -C nginxPID USER COMMAND26556 root nginx414774 root nginx414775 root nginx

示例 14,重定義標簽,即自定義顯示欄的名稱,或者說顯示列的名稱

[root@htlwk0001host ~]# ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,commPID USERNAME CPU_USAGE %MEM COMMAND1 root 0.0 0.2 systemd2 root 0.0 0.0 kthreadd3 root 0.0 0.0 rcu_gp4 root 0.0 0.0 rcu_par_gp

示例 15,顯示進程運行的時間

[root@htlwk0001host ~]# ps -e -o pid,comm,etimePID COMMAND ELAPSED1 systemd 201-06:48:462 kthreadd 201-06:48:46

示例 16,查看指定進程的詳細信息

查看 named 進程的詳細信息:

[root@htlwk0001host ~]# ps -aux | grep named root 828974 0.0 0.0 12320 1068 pts/0 S+ 16:51 0:00 grep --color=auto named [root@htlwk0001host ~]#

示例 17,通過進程 id 獲取服務名稱

[root@htlwk0001host ~]# ps -o command -p 9 | sed -n 2p [ksoftirqd/0]

示例 18,將目前屬于您自己這次登入的進程與相關信息列示出來

[root@htlwk0001host ~]# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 0 828665 828664 0 80 0 - 7418 - pts/0 00:00:00 bash 0 R 0 828984 828665 0 80 0 - 11404 - pts/0 00:00:00 ps

字段說明

在預設的情況下, ps 僅會列出與目前所在的 bash shell 有關的 PID 而已,所以, 當我使用 ps -l 的時候,只有2個 PID。F # 代表這個程序的旗標 (flag), 例如:4 代表使用者為 super user S # 代表這個程序的狀態 (STAT) UID # 進程所屬用戶 ID PID # 進程 ID PPID # 上級父程序的ID C CPU # 使用的資源百分比 PRI # 這個是 Priority (優先執行序) 的縮寫 NI # 這個是 Nice 值 ADDR # 這個是 kernel function,指出該程序在內存的那個部分。如果是個 running的程序,一般就是 "-" SZ # 使用掉的內存大小 WCHAN # 目前這個程序是否正在運作當中,若為 - 表示正在運作 TTY # 登入者的終端機位置 TIME # 使用掉的 CPU 時間 CMD # 所下達的指令為何

示例 19,列出目前所有正在內存當中的程序

[root@htlwk0001host ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 179148 9780 ? Ss 2020 12:36 /usr/lib/systemd/systemd --switched-root --system --deserialize 17 root 2 0.0 0.0 0 0 ? S 2020 0:02 [kthreadd] root 3 0.0 0.0 0 0 ? I< 2020 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< 2020 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< 2020 0:00 [kworker/0:0H]

字段說明

USER # 該 process 屬于那個使用者賬號的PID # 該 process 的編號%CPU # 該 process 使用掉的 CPU 資源百分比%MEM # 該 process 所占用的物理內存百分比VSZ # 該 process 使用掉的虛擬內存量 (Kbytes)VSZ (Virtual Memory Size),表明是虛擬內存大小,表明了該進程可以訪問的所有內存,包括被交換的內存和共享庫內存。RSS # 該 process 占用的固定的內存量 (Kbytes)RSS( Resident Set Size )常駐內存集合大小,表示相應進程在RAM中占用了多少內存,并不包含在SWAP中占用的虛擬內存。在內存中使用的共享庫的內存大小也一并計算在內,包含了完整的在stack和heap中的內存。TTY # 該 process 是在那個終端機上面運作,若與終端機無關,則顯示問號 ?。另外, tty1-tty6 是本機上面的登入者程序,若為 pts/0 等等的,則表示為由網絡連接進主機的程序。STAT # 該程序目前的狀態,主要的狀態有:R # 該程序目前正在運作,或者是可被運作S # 該程序目前正在睡眠當中 (可說是 idle 狀態),但可被某些訊號 (signal) 喚醒。T # 該程序目前正在偵測或者是停止了Z # 該程序應該已經終止,但是其父程序卻無法正常的終止他,造成 zombie (疆尸) 程序的狀態START # 該 process 被觸發啟動的時間TIME # 該 process 實際使用 CPU 運作的時間COMMAND # 該程序的實際指令

示例 20,按程序樹的形式來顯示進程的信息

[root@htlwk0001host ~]# ps -axjfPPID PID PGID SID TTY TPGID STAT UID TIME COMMAND0 2 0 0 ? -1 S 0 0:02 [kthreadd]2 3 0 0 ? -1 I< 0 0:00 \_ [rcu_gp]2 4 0 0 ? -1 I< 0 0:00 \_ [rcu_par_gp]2 6 0 0 ? -1 I< 0 0:00 \_ [kworker/0:0H]2 8 0 0 ? -1 I< 0 0:00 \_ [mm_percpu_wq]2 9 0 0 ? -1 S 0 0:05 \_ [ksoftirqd/0]2 10 0 0 ? -1 I 0 9:12 \_ [rcu_sched]2 11 0 0 ? -1 S 0 0:00 \_ [migration/0]2 12 0 0 ? -1 S 0 0:00 \_ [watchdog/0]2 13 0 0 ? -1 S 0 0:00 \_ [cpuhp/0]

示例 21,查看服務名稱含有 cron 或者 syslog 的進程信息

[root@htlwk0001host ~]# ps aux | egrep '(cron|syslog)' dbus 728 0.0 0.1 56448 5252 ? Ss 2020 9:47 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only root 1087 0.0 0.2 511332 9036 ? Ssl 2020 5:32 /usr/sbin/rsyslogd -n root 1096 0.0 0.0 36092 3516 ? Ss 2020 0:10 /usr/sbin/crond -n root 829022 0.0 0.0 12320 2448 pts/0 S+ 17:10 0:00 grep -E --color=auto (cron|syslog) [root@htlwk0001host ~]#

示例 22,把所有進程顯示出來,并輸出到 ps001.txt 文件

[root@htlwk0001host ~]# ps -aux > ps001.txt

示例 23,用管道符 | 管道和 more 連接起來分頁查看所有的進程

liaowenongdeair:bin root# ps -ef|moreUID PID PPID C STIME TTY TIME CMD0 1 0 0 8:13上午 ?? 1:15.47 /sbin/launchd0 57 1 0 8:13上午 ?? 0:03.13 /usr/sbin/syslogd0 58 1 0 8:13上午 ?? 0:13.99 /usr/libexec/UserEventAgent (System)0 61 1 0 8:13上午 ?? 0:01.70 /System/Library/PrivateFrameworks/Uninstall.framework/Resources/uninstalld0 62 1 0 8:13上午 ?? 0:37.31 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/Support/fseventsd0 63 1 0 8:13上午 ?? 0:00.54 /System/Library/PrivateFrameworks/MediaRemote.framework/Support/mediaremoted0 65 1 0 8:13上午 ?? 12:57.99 /Applications/SunloginClient.app/Contents/MacOS/SunloginClient -m service0 67 1 0 8:13上午 ?? 0:48.33 /usr/sbin/systemstats --daemon

示例 24,按指定的字段來顯示進程的信息

liaowenongdeair:bin root# ps -o pid,ppid,uid,tpgid,commPID PPID UID TPGID COMM1630 1599 0 3183 login1637 1631 0 3183 sudo1638 1637 0 3183 -bash3183 1638 0 3183 ps

總結

以上是生活随笔為你收集整理的Linux 命令之 ps -- 显示进程状态/查看进程信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。