1. 程式人生 > >Linux真小白入門教程第七集——Bash Shell命令學習(4)

Linux真小白入門教程第七集——Bash Shell命令學習(4)

之前講了Linux對檔案和目錄的管理和相關操作,下面主要講一些Linux系統管理的一些命令,來探查Linux系統的內部資訊。

Linux系統管理員面臨的最複雜的任務之一就是跟蹤執行在系統中的程式。圖形化介面總是顯示不出所有正在執行的程式,好在還有一些命令可以進行管理。

 

ps命令可以檢測程序的執行它能輸出執行在系統上的所有程式的許多資訊。然而該命令還有很多的選項引數,所以ps命令可以被稱為複雜的命令之一。(學習一些必要的引數組合是非常必要的)

預設情況下,ps命令只會顯示執行在當前控制檯下屬於當前使用者的程序(只有ps命令本身)

輸出中包含程序的ID(PID),以及它們執行在哪個終端(TTY),以及程序已用的CPU時間。

 

Linux系統中實用的GNU ps命令支援三種不同型別的命令列引數

Unix風格引數 加單破折線-

BSD風格引數 不加破折線

GNU風格引數 加雙破折線

 

在實際使用中,並不是需要記住所有的引數選項,而是要記住一些非常有用、經常使用到的引數組合

-ef 檢視系統上執行的所有程序

-e 顯示所有程序 -f擴充套件輸出(格式上完整)

 

想要更多的資訊,則可以加 -l 引數

其實記住一個Unix風格即可,其他的風格最為了解,以後見到不是特別驚訝就好了

GNU是長引數型別

 

雖然ps命令可以手機到執行在系統上的程序資訊,但是ps命令只能顯示在某個特定時間點的資訊。使用top命令

也是現實程序資訊,但是是實時顯示的。

第一行顯示了當前時間、系統執行時間、登入使用者、系統的平均負載

(負載值超過2,就說明系統較為繁忙了)

第二行顯示程序的概要資訊,在top中程序被稱為task

第三行顯示CPU的概要資訊

最後兩行說明了系統記憶體的狀態

預設情況下,top命令在啟動時會按照%CPU值對程序進行排序,可以在top執行的時候,在進行重新排序

按q鍵退出top命令(可以用來找出佔用系統資源的罪魁禍首!)

 

在Linux中,程序間可以通過訊號來通訊程序的訊號就是預定義好的一個訊息程序可以識別它決定忽略或者做出反應,程序如何處理訊號由開發人員通過程式設計來實現。

標準的Unix程序訊號:

 

Linux上有兩個命令可以向執行中的程序發出訊號:

kill命令可以通過程序ID(PID)給程序發訊號。預設情況下,kill命令會向命令列中列出的全部PID傳送一個TERM訊號。

kill 3940

給程序3940發出TERM訊號(此時你必須是程序的屬主或者登陸為root使用者,否則會被拒絕

TERM告訴程序可能的話就停止執行,不過,也有不服管教的程序,就會忽略這個訊號,如果要強行中止,-s 引數可以讓你如願以償。(支援訊號名或者訊號值)

kill -s 15 3940

kill -s HUP 3940

 

killall 命令非常強大,它支援通過程序名而不是PID來結束程序,而且killall命令還支援萬用字元

killall http*

結束所有以http開頭的程序

(在root使用者下 ,要謹慎使用,防止殺掉必要的系統程序,可能會破壞檔案系統)