ps進程查看命令詳解

1、PS 命令是什么

查看它的man手冊可以看到,ps命令能夠給出當前系統中進程的快照。它能捕獲系統在某一事件的進程狀態。如果你想不斷更新查看的這個狀態,可以使用top命令。

2、ps命令支持三種使用的語法格式

  1. UNIX 風格,選項可以組合在一起,并且選項前必須有“-”連字符
  2. BSD 風格,選項可以組合在一起,但是選項前不能有“-”連字符
  3. NU 風格的長選項,選項前有兩個“-”連字符

注:我們能夠混用這幾種風格,但是可能會發生沖突。

3、ps命令格式及參數

使用權限:所有使用者

使用方式:ps [options] [--help]

說明:顯示瞬間行程 (process) 的動態??

  1. ps命令格式及參數

僅列出幾個常用的參數并大略介紹含義:

ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務標示。

ps -e 此參數的效果和指定"A"參數相同。

ps e 列出程序時,顯示每個程序所使用的環境變量。

ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關系。

ps -H 顯示樹狀結構,表示程序間的相互關系。

ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。

ps s 采用程序信號的格式顯示程序狀況。

ps S 列出程序時,包括已中斷的子程序資料。

ps -t<終端機編號>???指定終端機編號,并列出屬于該終端機的程序的狀況。

ps u以用戶為主的格式來顯示程序狀況。

ps x顯示所有程序,不以終端機來區分。

ps -A 列出所有的行程

ps -w 顯示加寬可以顯示較多的資訊

ps -au 顯示較詳細的資訊

ps -aux 顯示所有包含其他使用者的行程

5、ps au(x) 輸出格式 :

USER PID ?%CPU ?%MEM ?VSZ ?TTY ?STAT ?START ?TIME ?COMMAND

USER: 行程擁有者

PID: pid

%CPU: 占用的 CPU 使用率

%MEM: 占用的記憶體使用率

VSZ: 占用的虛擬記憶體大小

RSS: 占用的記憶體大小

TTY: 終端的次要裝置號碼 (minor device number of tty)

STAT: 該行程的狀態:

D: 不可中斷的靜止

R: 正在執行中

S: 靜止狀態

T: 暫停執行

Z: 僵尸進程,不存在但暫時無法消除

W: 沒有足夠的記憶體分頁可分配

<: 高優先序的行程

N: 低優先序的行程

L: 有記憶體分頁分配并鎖在記憶體內 (即時系統或捱A I/O)

START: 行程開始時間

TIME: 執行的時間

COMMAND:所執行的指令

6、ps命令實例

6.1不加參數執行ps命令

這是一個基本的ps使用,在控制臺中執行這個命令并查看結果。

結果默認會顯示4列信息:

PID: 運行著的命令(CMD)的進程編號

TTY: 命令所運行的位置(終端)

TIME: 運行著的該命令所占用的CPU處理時間

CMD: 該進程所運行的命令

6.2顯示所有當前進程

使用-a參數,-a代表all。同時加上x參數會顯示沒有控制終端的進程。

$ ps -ax?

?這個命令的結果或許會很長。為了便于查看,可以結合less命令和管道來使用。

$ ps -ax | less

6.3根據用戶過濾進程

在需要查看特定用戶進程的情況下,我們可以使用-u參數。比如我們要查看用戶‘kseven‘的進程,可以通過下面的命令:

$ ps -u kseven

6.4通過cpu和內存使用來過濾進程

也許你希望把結果按照CPU或者內存用量來篩選,這樣你就找到哪個進程占用了你的資源。要做到這一點,我們可以使用aux參數,來顯示全面的信息:

$ ps -aux | less

當結果很長時,我們可以使用管道和less命令來篩選。

6.5通過 --sort命令來排序

根據CPU使用來升序排序

$ ps -aux --sort -pcpu | less

根據內存使用來升序排序

$ ps -aux --sort -pmem | less

我們也可以將它們合并到一個命令,并通過管道顯示前10個結果:

$ ps -aux --sort -pcpu,+pmem | head -n 10

6.6通過進程名和PID過濾

使用-C參數,后面跟你要找的進程的名字。比如想顯示一個名為getty的進程的信息,就可以使用下面的命令:

$ ps -C getty

如果想要看到更多的細節,我們可以使用-f參數來查看格式化的信息列表:

$ ps -f -C getty

6.7根據線程來過濾進程

如果我們想知道特定進程的線程,可以使用-L 參數,后面加上特定的PID。

$ ps -L 1213

6.8樹形顯示進程

有時候我們希望以樹形結構顯示進程,可以使用 -axjf 參數。

$ps -axjf

?或者可以使用另一個命令。

$ pstree

6.9顯示安全信息

如果想要查看現在有誰登入了你的服務器。可以使用ps命令加上相關參數:? ?

$ ps -eo pid,user,args

參數-e顯示所有進程信息,-o參數控制輸出。Pid,User和Args參數顯示PID,運行應用的用戶和該應用。

能夠與-e參數一起使用的關鍵字是args, cmd, comm, command, fname, ucmd, ucomm, lstart, bsdstart和start。

6.10格式化輸出root用戶(真實的或有效的UID)創建的進程

系統管理員想要查看由root用戶運行的進程和這個進程的其他相關信息時,可以通過下面的命令:

$ ps -U root -u root u?

-U 參數按真實用戶ID(RUID)篩選進程,它會從用戶列表中選擇真實用戶名或 ID。真實用戶即實際創建該進程的用戶。

-u 參數用來篩選有效用戶ID(EUID)。

最后的u參數用來決定以針對用戶的格式輸出,由User, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME 和 COMMAND這幾列組成。

6.11使用PS實時監控進程狀態

ps 命令會顯示你系統當前的進程狀態,但是這個結果是靜態的。

當有一種情況,我們需要像上面第四點中提到的通過CPU和內存的使用率來篩選進程,并且我們希望結果能夠每秒刷新一次。為此,我們可以將ps命令和watch命令結合起來。

$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’

如果輸出太長,我們也可以限制它,比如前20條,我們可以使用head命令來做到。

$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’

這里的動態查看并不像top或者htop命令一樣。但是使用ps的好處是你能夠定義顯示的字段,你能夠選擇你想查看的字段。

舉個例子,如果你只需要看名為‘pungki‘用戶的信息,你可以使用下面的命令:

$ watch -n 1 ‘ps -aux -U pungki u --sort -pmem, -pcpu | head 20’

6.12查看每個用戶的線程數量

ps h -Led -o user | sort | uniq -c | sort -n

參數說明:

h 隱藏表頭,用于統計時不影響統計結果

L 以線程維度展示數據

e 展示所有用戶的線程

d 展示線程的ID(可以不用這個參數)

o 可選項,此處取值user為只展示進程的用戶名sort命令:排序

uniq -c 統計重復數據出現的數量

6.13確定是哪個進程的線程過多

cat `ls /proc/|grep [0-9][^a-z]|awk '{print "/proc/"$1"/status"}'`|grep -w -E -i 'Pid|Threads'

參數說明:

ls /proc/|grep [0-9][^a-z] :列出所有進程號

awk '{print "/proc/"$1"/status"}':拼接成“/proc/{進程號}/status”的形式,該文件有進程的詳細信息

最后cat每一個“/proc/{進程號}/status”文件,再用grep正則匹配出記錄了Pid那行和Threads那行

6.14確定進程的父進線程

使用ps -o查看父程程

使用查看PID status查看父程程

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15783.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15783.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15783.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鴻蒙ArkUI-X平臺差異化:【運行態差異化(@ohos.deviceInfo)】

平臺差異化 簡介 跨平臺使用場景是一套ArkTS代碼運行在多個終端設備上&#xff0c;如Android、iOS、OpenHarmony&#xff08;含基于OpenHarmony發行的商業版&#xff0c;如HarmonyOS Next&#xff09;。當不同平臺業務邏輯不同&#xff0c;或使用了不支持跨平臺的API&#xf…

c++中靜態函數

在Qt中&#xff0c;可以通過在類中定義靜態方法來添加靜態方法。靜態方法是類的一部分&#xff0c;但不需要實例化類對象就可以直接調用。 下面是一個示例&#xff0c;演示了如何在類中添加靜態方法&#xff1a; cpp class MyClass { public: static void myStaticMethod…

Postman快捷功能-批量斷言與快速查詢替換

大家好&#xff0c;在我們日常的接口測試工作中&#xff0c;經常需要對接口返回的數據進行斷言&#xff0c;以確保接口的正確性。當接口數量較多時&#xff0c;逐個編寫斷言語句會變得非常繁瑣。此外&#xff0c;在接口測試過程中&#xff0c;我們還可能需要頻繁地查找和替換某…

Python自動化工具(桌面自動化、Web自動化、游戲輔助)

工具介紹 連點工具是一款可以模擬鍵鼠后臺操作的連點器工具。支持鼠標連點、鍵鼠腳本錄制&#xff0c;支持輔助您實現辦公自動化以及輔助游戲操作。功能簡潔易用&#xff0c;非常方便操作。連點工具讓您在在玩游戲、網購搶購的時候全自動點擊鼠標&#xff01;主要功能有&#…

MySQL數據庫的數據文件保存在哪?MySQL數據存在哪里

在安裝好MySQL數據庫使用一段時間后&#xff0c;會產生許多的數據庫和數據。那這些數據庫的數據文件存放在本地文件夾的什么位置呢 一、默認位置 一般來說MySQL數據庫的數據文件都是存放在data文件夾之中&#xff0c;但是根據使用的存儲引擎不同&#xff0c;產生的一些文件也…

牛客前端面試高頻八股總結(2)(附文檔)

1.fetch請求方式 fetch是什么&#xff1f; fetch是一種http 數據請求的方式&#xff0c;是xml的一種替代方式。 怎么請求&#xff1f; fetch方法返回一個promise解析response顯示狀態&#xff08;成功與否&#xff09;的方法。 優點&#xff1a; 使用Promise&#xff0c;支持鏈…

24李林跌落神壇,880還刷嗎?還是換1000、900、660?

“李林今年跌落神壇了&#xff01;” “全是固定題型沒新題&#xff0c;結果今年考的全是新題。” 880是“老真題的神”&#xff0c; 遇到24年&#xff0c;冷門考點多&#xff0c;計算量又大&#xff0c;就不靈了。 但“老真題”&#xff0c;還是得刷。就像往年真題是要刷的…

(十一)統計學基礎練習題五(50道選擇題)

本文整理了統計學基礎知識相關的練習題&#xff0c;共50道&#xff0c;適用于想鞏固統計學基礎或備考的同學。來源&#xff1a;如荷學數據科學題庫&#xff08;技術專項-統計學二&#xff09;。序號之前的題請看往期文章。 201&#xff09; 202&#xff09; 203&#xff09; 2…

得帆信息PMO總監李健達受邀為第十三屆中國PMO大會演講嘉賓

全國PMO專業人士年度盛會 上海得帆信息技術有限公司aPaaS業務線副總裁、PMO總監李健達先生受邀為PMO評論主辦的2024第十三屆中國PMO大會演講嘉賓&#xff0c;演講議題為“AI時代的PMO工作法”。大會將于6月29-30日在北京舉辦&#xff0c;敬請關注&#xff01; 議題簡要&#x…

39. 組合總和 - 力扣(LeetCode)

基礎知識要求&#xff1a; Java&#xff1a; 方法、集合、泛型、Arrays工具類、for循環、if判斷 Python&#xff1a; 方法、列表、for循環、if判斷 題目&#xff1a; 給你一個 無重復元素 的整數數組 candidates 和一個目標整數 target &#xff0c;找出 candidates 中可以使…

Spring框架學習筆記(五):JdbcTemplate 和 聲明式事務

基本介紹&#xff1a;通過 Spring 框架可以配置數據源&#xff0c;從而完成對數據表的操作。JdbcTemplate 是 Spring 提供的訪問數據庫的技術。將 JDBC 的常用操作封裝為模板方法 1 JdbcTemplate 使用前需進行如下配置 1.1 在maven項目的pom文件加入以下依賴 <dependencies…

Java面試進階指南:高級知識點問答精粹(二)

Java 面試問題及答案 1. 什么是Java內存模型&#xff08;JMM&#xff09;&#xff1f;它在并發編程中扮演什么角色&#xff1f; 答案&#xff1a; Java內存模型&#xff08;JMM&#xff09;是一個抽象的模型&#xff0c;它定義了Java程序中各種變量&#xff08;線程共享變量&…

labelme的使用

創建虛擬環境 聽說是要用這個3.6版本的python環境 conda create --namelabelme python3.6激活虛擬環境 activate labelme下載labelme pip install labelme #安裝labelme組件啟動labelme 在你打開文件的時候推薦還是自己先建立一個label.txt 把自己要分的類別放進去 label.…

Python中的深拷貝與淺拷貝:深入解析與實用指南

Python中的深拷貝與淺拷貝&#xff1a;深入解析與實用指南 一、引言 在Python編程中&#xff0c;我們經常需要復制對象&#xff0c;但有時候僅僅復制對象的引用是不夠的&#xff0c;我們需要的是對象的真實副本。此時&#xff0c;我們就需要考慮使用深拷貝或淺拷貝。深拷貝和…

GPT-2添加PAD token

GPT-2和GPT-3模型&#xff08;包括其他類似系列&#xff09;通常沒有內置的PAD token&#xff0c;因為它們主要用于生成任務&#xff0c;而這些任務通常不需要填充。然而&#xff0c;在一些特定任務&#xff08;如批量處理或序列對齊&#xff09;中&#xff0c;添加PAD token是…

翻譯《The Old New Thing》- What‘s the deal with the EM_SETHILITE message?

Whats the deal with the EM_SETHILITE message? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20071025-00/?p24693 Raymond Chen 2007年10月25日 簡要 文章討論了EM_SETHILITE和EM_GETHILITE消息在文檔中顯示為“未實現”的原因。這些…

前端 JS 經典:Web 性能指標

什么是性能指標&#xff1a;Web Performance Metrics 翻譯成 Web 性能指標&#xff0c;一般和時間有關系&#xff0c;在短時間內做更多有意義的事情。 一個站點表現得好與不好&#xff0c;標準在于用戶體驗&#xff0c;而用戶體驗好不好&#xff0c;有一套 RAIL 模型來衡量。這…

大專學歷java能找到工作嗎

就低學歷就業的情況&#xff0c;大專學歷的職業上限基本上是中小公司的開發小組長&#xff0c;中專或同等學歷的職業上限一般是軟件小作坊的項目經理。當下大專學歷能進大公司的可能性不能說沒&#xff0c;但相比前幾年&#xff0c;少了太多。有穩定業務渠道的軟件公司&#xf…

Vue.js功能實現博客

Vue.js功能實現博客 一、前言 Vue.js 是一款構建用戶界面的漸進式框架。今天我們將通過一個簡單的示例來展示如何使用 Vue.js 創建一個簡單的計數器功能&#xff0c;并在此過程中解釋每個步驟。 二、環境準備 在開始之前&#xff0c;請確保你的開發環境中已經安裝了 Node.j…

音視頻學習規劃

文章目錄 概述閑聊點 小結 概述 最近在學習音視頻&#xff0c;覺得還是要先寫個提綱&#xff0c;給自己制定下學習路線及目標。先寫下我的個人流程及思路。 ffmpeg的命令ffmpeg api播放器流媒體RTMP&#xff0c;HLS 閑聊點 先說下學習命令行吧&#xff0c;學習命令行是為了…