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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

如何在Linux使用ps命令

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

Linux 程序的運行實例稱為進程。有時在Linux工作時,您可能需要找出當前正在運行的進程。

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

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

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

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

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

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

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

四列分別標記PID,TTY,TIMECMD。PID是進程ID。

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

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

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

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

PS命令BSD風格

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

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

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

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,RSS,STATSTART,TTYTIMECMD

我們已經(jīng)解釋PID,TTYTIMECMD列。這是其他標簽列的說明,USER運行進程的用戶。

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

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

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

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

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

ps auxf
ps aux --sort=-%mem

PS命令UNIX風格

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

ps -ef命令將顯示8列的信息包括UIDPID,PPIDC,STIMETIMECMD。

UID與BSD風格的PS命令的USER列相同,表示運行進程的用戶。PPID父進程的ID。

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

要僅查看以指定用戶運行的進程,請運行命令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]
...

打印指定列

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

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

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

PS命令與管道

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

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

ps -ef | less
ps -ef | grep root

結論

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

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

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

    關注

    87

    文章

    11207

    瀏覽量

    208717
  • 命令
    +關注

    關注

    5

    文章

    676

    瀏覽量

    21965
  • 進程
    +關注

    關注

    0

    文章

    201

    瀏覽量

    13938
收藏 人收藏

    評論

    相關推薦

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

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

    何在Linux使用iostat命令

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

    何在Linux中使用htop命令

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

    Linux和UNIX可以用什么命令查看運行中進程的相關信息

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

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

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

    何在Linux使用pidof命令

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

    何在Linux使用ps/pstree/top命令查看進程

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

    何在Linux使用touch命令

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

    何在Linux使用rpm命令

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

    何在Linux上使用粘貼命令

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

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

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

    何在Linux中使用progress命令

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

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

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

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

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

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

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