12 個 Linux 程序管理命令介紹

2021-09-30 14:39:59 字數 2860 閱讀 4075

執行中的程式在稱作程序。當程式以可執行檔案存放在儲存中,並且執行的時候,每個程序會被動態得分配系統資源、記憶體、安全屬性和與之相關的狀態。可以有多個程序關聯到同乙個程式,並同時執行不會互相干擾。作業系統會有效地管理和追蹤所有執行著的程序。

為了管理這些程序,使用者應該能夠:

linux提供了許多命令來讓使用者來高效掌控上述的操作。接下來,乙個乙個的來講解下。

『ps』是linux 中最基礎的瀏覽系統中的程序的命令。能列出系統中執行的程序,包括程序號、命令、cpu使用量、記憶體使用量等。下述選項可以得到更多有用的訊息。

ps -a - 列出所有執行中/啟用程序

ps -ef |grep - 列出需要程序

ps -aux - 顯示程序資訊,包括無終端的(x)和針對使用者(u)的程序:如user, pid, %cpu, %mem等

linux中,每乙個程序都是由其父程序建立的。此命令以視覺化方式顯示程序,通過顯示程序的樹狀圖來展示程序間關係。如果指定了pid了,那麼樹的根是該pid,不然將會是init(pid: 1)。

『top』是乙個更加有用的命令,可以監視系統中不同的程序所使用的資源。它提供實時的系統狀態資訊。顯示程序的資料報括 pid、程序屬主、優先順序、%cpu、%memory等。可以使用這些顯示指示出資源使用量。

htop與top很類似,但是htop是互動式的文字模式的程序檢視器。它通過文字圖形化地顯示每乙個程序的cpu和記憶體使用量、swap使用量。使用上下游標鍵選擇程序,f7和f8改變優先順序,f9殺死程序。htop不是系統預設安裝的,所以需要額外安裝。

通過nice命令的幫助,使用者可以設定和改變程序的優先順序。提高乙個程序的優先順序,核心會分配更多cpu時間片給這個程序。預設情況下,程序以0的優先順序啟動。程序優先順序可以通過top命令顯示的ni(nice value)列檢視。

程序優先順序值的範圍從-20到19。值越低,優先順序越高。

nice 優先

程序 - 通過給定的優先值啟動乙個程式

上述命令例子中,可以看到『top』命令獲得了-3的優先值。

renice命令類似nice命令。使用這個命令可以改變正在執行的程序優先值。注意,使用者只能改變屬於他們自己的程序的優先值。

renice -n -p - 改變指定程序的優先值
初始優先值為0的3806號程序優先值已經變成了4.

renice -u -g - 通過指定使用者和組來改變程序優先值
上述例子中,使用者為『mint』的所有程序優先值變為『-3』。

這個命令用於傳送訊號來結束程序。如果乙個程序沒有響應殺死命令,這也許就需要強制殺死,使用-9引數來執行。注意,使用強制殺死的時候一定要小心,因為程序沒有時機清理現場,也許寫入檔案沒有完成。如果我們不知道程序pid或者打算用名字殺死程序時候,killall就能派上用場。

kill

kill -9

killall -9 - 殺死所有擁有同樣名字的程序

如果你使用kill,你需要知道程序id號。pkill是類似的命令,但使用模式匹配,如程序名,程序擁有者等。

pkill 程序

該命令用於控制系統資源在shell和程序上的分配量。對於系統管理員是最有用的,可以管理重度使用和存在效能問題的系統。限制資源大小可以確保重要程序持續執行,其他程序不會占用過多資源。

ulimit

-a - 顯示當前使用者關聯的資源限制

-f - 最大檔案尺寸大小

-v - 最大虛擬記憶體大小(kb)

-n - 增加最大檔案描述符數量

-h : 改變和報告硬限制

-s : 改變和報告軟限制

瀏覽ulimit man頁面獲取更多選項。

w 提供當前登入的使用者及其正在執行的程序的資訊。顯示資訊頭包含資訊,如當前時間、系統執行時長、登入使用者總數、過去的1,5,15分鐘內的負載均衡

數。基於這些使用者資訊,使用者在終止不屬於他們的程序時要小心。

who是類似命令,提供當前登入使用者列表、系統啟動時間、執行級別等。

whoami命令輸出當前使用者id

pgrep的意思是」程序號全域性正則匹配輸出」。該命令掃瞄當前執行程序,然後按照命令匹配條件列出匹配結果到標準輸出。對於通過名字檢索程序號是很有用。

pgrep -u mint sh
這個命令將會顯示使用者為『mint』和程序名為『sh』的程序id。

有時,命令需要很長的時間才能執行完成。對於這種情況,我們使用『bg』命令可以將任務放在後台執行,而用『fg』可以調到前台來使用。

我們可以通過『&』在後台啟動乙個程式:

find . -name *iso > /tmp/res.txt &
乙個正在執行的程式也可以通過「ctrl+z」和「bg」命令組合放到後台執行。

find . -name *iso > /tmp/res.txt &     -  啟動乙個程式

ctrl+z - 掛起當前執行程式

bg - 將程式放到後台執行

我們可以使用『jobs』命令列出所有後台程序。

jobs
使用『fg』命令可以將後台程式調到前台執行。

fg %程序id
ipcs命令報告程序間通訊設施狀態。(共享記憶體,訊號量和訊息佇列)

用-p引數聯合-m、-s或-q使用,可以獲得相關的程序間通訊的程序id。

ipcs -p -m
下面螢幕截圖列出了最近訪問了共享記憶體段的程序的建立者的id和程序id。

總之 ,這些命令可以幫助管理員修復問題和改善效能。同樣作為一名普通使用者也需要解決程序出現的問題。所以,熟悉如此繁多的命令,從能有效管理程序是行之有效。

12 個 Linux 程序管理命令介紹

執行中的程式在稱作程序。當程式以可執行檔案存放在儲存中,並且執行的時候,每個程序會被動態得分配系統資源 記憶體 安全屬性和與之相關的狀態。可以有多個程序關聯到同乙個程式,並同時執行不會互相干擾。作業系統會有效地管理和追蹤所有執行著的程序。為了管理這些程序,使用者應該能夠 linux提供了許多命令來讓...

12個Linux程序管理命令介紹

執行中的程式稱作程序。當程式可以執行檔案存放在儲存中,並且執行的時候,每個程序會被動態得分配系統資源 記憶體 安全屬性和與之相關的狀態。可以有多個程序關聯到同乙個程式,並同時執行不會互相干擾。作業系統會有效地管理和追蹤所有執行著的程序。為了管理這些程序,使用者應該能夠 檢視所有執行中的程序 檢視程序...

12個程序管理命令介紹

執行中的程式在稱作程序。當程式以可執行檔案存放在儲存中,並且執行的時候,每個程序會被動態得分配系統資源 記憶體 安全屬性和與之相關的狀態。可以有多個程序關聯到同乙個程式,並同時執行不會互相干擾。作業系統會有效地管理和追蹤所有執行著的程序。l 為了管理這些程序,使用者應該能夠 l 檢視所有執行中的程序...