一天乙個linux命令(2) ps

2021-07-12 02:21:58 字數 1714 閱讀 3232

linux中的ps命令是process status的縮寫。ps命令用來列出系統中當前執行的那些程序。ps命令列出的是當前那些程序的快照,就是執行ps命令的那個時刻的那些程序,如果想要動態的顯示程序資訊,就可以使用top命令。

上面這段話說得實在太好了,忍不住摘錄過來了,出處是:每天乙個linux命令(41):ps命令,由於該作者的這篇文章寫得真心很好,所以下面很多都是摘錄過來稍加自己的整理的,特此說明。

上面這句話需要注意的乙個點是——「快照」,snapshot,可以簡單用照相機按下快門照相來理解,就是某一瞬間的狀態,和top動態顯示變化情況是相對的。

要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,而 ps 命令就是最基本同時也是非常強大的程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態、程序是否結束、程序有沒有僵死、哪些程序占用了過多的資源等等。總之大部分資訊都是可以通過執行該命令得到的。

想要檢視程序的狀態,那麼就得先對程序有了解,比如應該知道:

這些東西應該在作業系統課程裡學習的,這裡就不多贅述了(也相信會看這篇部落格的朋友,不太可能沒學過os)。

還有目標驅動,我們平時主要想看看程序的狀態(僵死還是就緒還是在執行),占用了多少記憶體和cpu。管理的話,我們可能會想要殺死某些程序,比如占用資源過多的,或者僵死的,或者不需要的。所以以下分這兩個方面來介紹:

哎,打什麼命令呢?help一下:

ps –help後,提示好像是說,有多種模式,試了以下******的,確實挺簡單的,就全都是乙個選項,每個選項也都解釋挺到位的:

-a,-e,檢視全部的程序

-a,檢視所有有終端的程序,除了session learders的……

其它的其實很容易解釋,只要搞清楚下面兩個點:

tty(終端裝置的統稱):tty一詞源於teletypes,或者teletypewriters,原來指的是電傳打字機,是通過序列線用印表機鍵盤通過閱讀和傳送資訊的東西,後來這東西被鍵盤與顯示器取代,所以現在叫終端比較合適。終端是一種字元型裝置,它有多種型別,通常使用tty來簡稱各種型別的終端裝置。

session leader,session應該是指你用bash登入時候產生的乙個會話,你這次會話期間,所產生的程序。

上面這張圖是對比了ps -a和ps -a的結果,大概可以知道-a到底是什麼意思:除了bash(登入之前/時),以及還沒做的程序(grep是在ps -a執行之後,將其結果通過管道傳給grep程序的),其它的,由你執行的程序。

還有值得注意的是,可以發現當前的資訊很簡單(******模式嘛),只有四列,第一列是pid,即程序id;第二列是tty,即上面解釋的「終端」;第三列是持續的時間;最後一列是指執行的命令。

ps –help l一下(注意是l的l,而不是123的1,也不是hi的i):

看一下這些用法的介紹,結合l(list的簡寫)的意思,這部分指令應該是指按照你給定的條件來檢視程序,比如-c就是通過命令來看,-u就是通過使用者名稱或使用者id來檢視,等等。

tty:

一天乙個Linux命令 cp

cp命令用來將乙個或多個原始檔或者目錄複製到指定的目的檔案或目錄。它可以將單個原始檔複製成乙個指定檔名的具體的檔案或乙個已經存在的目錄下。cp命令還支援同時複製多個檔案,當一次複製多個檔案時,目標檔案引數必須是乙個已經存在的目錄,否則將出現錯誤。一般情況下,在命令列下複製檔案時,如果目標檔案已經存在...

一天乙個linux命令 find

find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案,返回目錄或檔名稱。並且將查詢到的子目錄和檔案全部進行顯示。find starting point option print exec ...

一天乙個linux命令 (7)

1.建立使用者組 groupadd r g o r f groupname groupadd r group1 2.刪除使用者分組 groupdel group1 3.gpasswd a 將某個使用者添 組中 d 將某個使用者從群組中刪除 a 將群組的管理員許可權交給某個使用者 r 使群組的密碼失效...