0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Linux使用ps命令

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2022-12-14 17:47 ? 次閱讀

Linux 程序的運行實例稱為進(jìn)程。有時在Linux工作時,您可能需要找出當(dāng)前正在運行的進(jìn)程。

您可以使用許多命令來查找正在運行進(jìn)程的信息pstop也是最常用的命令。

教程中,我們將討論如何在Linux使用ps命令列出正在運行的進(jìn)程以及打印進(jìn)程的信息。

ps命令的語法是ps [OPTIONS]。出于歷史和兼容性的原因,ps命令接受幾種不同類型的選項。

UNIX風(fēng)格選項,這種通常在ps命令后跟一個破折號。BSD風(fēng)格選項,不帶破折號。GNU長選項,后跟兩個破折號。

你可以混合使用多種選項,但在某些情況下可能會出現(xiàn)沖突,因此最好堅持使用一種類型的選項。BSD和UNIX風(fēng)格是最常用的。

不帶任何選項運行ps命令,是最簡單的形式。ps命令將打印四列信息,顯示當(dāng)前shell程序中正在運行的兩個進(jìn)程。shell程序本身以及調(diào)用ps命令時運行的進(jìn)程。

ps
PID TTY          TIME CMD
 1809 pts/0    00:00:00 bash
 2043 pts/0    00:00:00 ps

四列分別標(biāo)記PIDTTY,TIMECMD。PID是進(jìn)程ID。

在大多數(shù)情況下,運行ps命令時,用戶尋找的最重要的信息是進(jìn)程PID。了解PID可以使您終止故障進(jìn)程。

TTY進(jìn)程控制終端的名稱。TIME進(jìn)程使用CPU的時間,以分鐘和秒為單位。CMD創(chuàng)建該進(jìn)程的命令名稱。

上面的輸出不是很有用,因為它包含的信息不多。當(dāng)使用其他選項運行ps命令時,ps命令的真正功能才能體現(xiàn)出來。

ps命令接受大量選項,這些選項可用于顯示指定的一組進(jìn)程以及進(jìn)程的信息,但是在日常使用中只需要少數(shù)幾個選項。ps命令最常與以下選項組合使用。

PS命令BSD風(fēng)格

如果以BSD的風(fēng)格運行PS命令是不帶破折號-的,例如命令ps aux,將使用BSD風(fēng)格選項來查看進(jìn)程信息。

a選項將會展示所有用戶的進(jìn)程,但不包括關(guān)聯(lián)終端的進(jìn)程以及進(jìn)程的父進(jìn)程。u代表一種面向用戶的格式,提供進(jìn)程的詳細(xì)信息。

x選項讓ps沒有控制終端的進(jìn)程。這包括在啟動時在后臺運行的進(jìn)程,例如服務(wù)。

ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.8  77616  8604 ?        Ss   19:47   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    19:47   0:00 [kthreadd]
...

ps aux命令將顯示11個的列的信息USER,PID,%CPU,%MEM,VSZ,RSSSTAT,STARTTTY,TIMECMD

我們已經(jīng)解釋PID,TTY,TIMECMD列。這是其他標(biāo)簽列的說明,USER運行進(jìn)程的用戶。

%CPU進(jìn)程的cpu利用率。%MEM進(jìn)程的駐留空間大小占計算機物理內(nèi)存的百分比。

VSZ進(jìn)程的虛擬內(nèi)存大小,以KiB作為單位。RSS進(jìn)程正在使用的物理內(nèi)存的大小。

STAT進(jìn)程狀態(tài)代碼,可以是Z僵尸進(jìn)程,S正在休眠進(jìn)程,R正在運行進(jìn)程等。START命令開始的時間。

要打印進(jìn)程樹,請?zhí)砑?code>f選項。這將指示ps命令顯示父進(jìn)程到子進(jìn)程的樹視圖。例如命令ps auxf將會打印進(jìn)程樹視圖。

ps命令還允許您對輸出進(jìn)行排序。例如,要根據(jù)內(nèi)存使用情況對輸出進(jìn)行排序,則可以運行命令ps aux --sort=-%mem

ps auxf
ps aux --sort=-%mem

PS命令UNIX風(fēng)格

ps -ef命令是Unix風(fēng)格最常使用的命令,e選項指示ps列出所有進(jìn)程。f列出進(jìn)程的詳細(xì)信息。

ps -ef命令將顯示8列的信息包括UID,PIDPPID,C,STIME,TIMECMD

UID與BSD風(fēng)格的PS命令的USER列相同,表示運行進(jìn)程的用戶。PPID父進(jìn)程的ID。

C與相同%CPU列相同,表示進(jìn)程的cpu利用率。STIMESTART列相同,表示命令啟動的時間。

要僅查看以指定用戶運行的進(jìn)程,請運行命令ps -f -U myfreax -u myfreax,其中myfreax用戶名。

ps -ef
ps -f -U myfreax -u myfreax
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 19:47 ?        00:00:01 /sbin/init
root         2     0  0 19:47 ?        00:00:00 [kthreadd]
...

打印指定列

如果你需要太多列的進(jìn)程信息,可以使用o選項,后跟要打印的列名,ps命令將會僅展示你指定的列名。

例如要僅打印PID,COMMAND的信息。您將運行unix風(fēng)格的命令ps -efo pid,comm。或者BSD風(fēng)格的命令ps auxo pid,comm。

ps -efo pid,comm #UNIX
ps auxo pid,comm #BSD

PS命令與管道

ps可以通過命令與其它命令組合使用。如果你分頁顯示ps命令的信息,則可以通過管道符|,傳遞給less命令,以達(dá)到分頁的查看目的。

ps命令的輸出也可以通過管道|傳遞給grep進(jìn)行過濾。比如僅展示root用戶的進(jìn)程。

ps -ef | less
ps -ef | grep root

結(jié)論

對Linux問題進(jìn)行故障排除時,ps命令是最常用的命令之一。它有很多選項,通常大多數(shù)用戶都使用ps auxps -ef來收集正在運行的進(jìn)程的信息。

個人建議使用BSD風(fēng)格,簡單且已讀。要查看所有可用ps選項的信息,請在終端中輸入man ps

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11161

    瀏覽量

    208468
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    663

    瀏覽量

    21956
  • 進(jìn)程
    +關(guān)注

    關(guān)注

    0

    文章

    198

    瀏覽量

    13933
收藏 人收藏

    評論

    相關(guān)推薦

    10款可替代Linux命令的開源項目

    Linux 誕生于 1991 年,我們熟知的 ls、cd、ps命令也出生于那個年代。雖然它們都是 30 年前的產(chǎn)物,但是我們現(xiàn)在依舊每天都在用這些命令
    發(fā)表于 07-21 09:06 ?981次閱讀

    何在Linux使用iostat命令

    IO等待或者`iowait`,`wait`,`wa`,`%iowait`,或者`wait%`通??梢酝ㄟ^Linux系統(tǒng)監(jiān)控工具查看。例如命令行工具top、sar、atop等。
    的頭像 發(fā)表于 01-04 17:17 ?1464次閱讀

    何在Linux中使用htop命令

    本文介紹如何在 Linux 中使用 htop 命令。
    的頭像 發(fā)表于 12-04 14:45 ?1647次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>中使用htop<b class='flag-5'>命令</b>

    Linux和UNIX可以用什么命令查看運行中進(jìn)程的相關(guān)信息

      你可以使用ps命令。它能顯示當(dāng)前運行中進(jìn)程的相關(guān)信息,包括進(jìn)程的PID。Linux和UNIX都支持ps命令,顯示所有運行中進(jìn)程的相關(guān)信息
    發(fā)表于 01-20 09:42 ?6431次閱讀

    Linux應(yīng)用開發(fā)-串口下載命令rzsz交叉編譯

    rz/sz工具是通過Zmodem協(xié)議傳輸文件的命令,常用于Linux與windows之前的數(shù)據(jù)傳輸。 這篇文章就介紹如何在交叉編譯rz/sz命令,并在
    的頭像 發(fā)表于 08-14 09:20 ?2262次閱讀

    何在Linux使用pidof命令

    `pidof`是一個命令行程序,可讓您找到正在運行程序的進(jìn)程ID。在教程中,我們將說明如何在Linux 使用pidof命令。
    的頭像 發(fā)表于 12-05 17:01 ?2210次閱讀

    何在Linux使用ps/pstree/top命令查看進(jìn)程

    Linux 程序的運行實例稱為進(jìn)程。有時在Linux工作時,您可能需要找出當(dāng)前正在運行的進(jìn)程。
    的頭像 發(fā)表于 12-05 17:07 ?1716次閱讀

    何在Linux使用touch命令

    Linux touch命令用于更改文件時間戳。但touch命令的最常見用法是創(chuàng)建文件。
    的頭像 發(fā)表于 12-05 17:21 ?1970次閱讀

    何在Linux使用rpm命令

    RPM是基于RedHat Linux發(fā)行版的軟件包管理器,例如CentOS和Fedora。RPM還指`rpm`命令和`.rpm`文件擴展名稱。
    的頭像 發(fā)表于 01-04 17:14 ?1596次閱讀

    何在Linux上使用粘貼命令?

    Linux中的粘貼命令是一個有用的工具,用于將多個文件或文本行合并到單個文件或輸出中。它通常與剪切命令結(jié)合使用,允許用戶剪切特定行或文本部分并將其粘貼到其他地方。在本文中,小編將探討 Linu
    的頭像 發(fā)表于 02-08 16:58 ?1735次閱讀

    何在Linux中高效運行終端命令

    Linux 終端是一個功能強大的工具,允許您使用命令執(zhí)行各種系統(tǒng)操作。文件操作、程序管理和服務(wù)自動化是您可以使用 shell 命令高效執(zhí)行的一些操作。
    的頭像 發(fā)表于 03-20 09:39 ?653次閱讀

    何在Linux中使用progress命令

    progress 命令是一個簡單但功能強大的 Linux/Unix 命令行工具,可讓用戶查看文件操作的進(jìn)度。
    的頭像 發(fā)表于 04-08 15:51 ?2134次閱讀

    何在Linux中高效運行終端命令

    Linux 終端是一個功能強大的工具,允許您使用命令執(zhí)行各種系統(tǒng)操作。文件操作、程序管理和服務(wù)自動化是您可以使用 shell 命令高效執(zhí)行的一些操作。
    的頭像 發(fā)表于 04-13 10:34 ?624次閱讀

    何在Linux命令行中運行Python腳本

    Python 腳本。 在本文中,我們將詳細(xì)介紹如何在 Linux 命令行中運行 Python 腳本。我們將討論以下主題:
    的頭像 發(fā)表于 05-12 14:49 ?1617次閱讀

    恒訊科技分析:如何在Linux上使用rm命令刪除文件和目錄?

    本指南展示了如何在Linux中使用rm命令行刪除文件、目錄和其他內(nèi)容?
    的頭像 發(fā)表于 06-09 17:02 ?1105次閱讀