12 個 Linux 程式管理命令介紹
執行中的程式在稱作程式。當程式以可執行檔案存放在儲存中,並且執行的時候,每個程式會被動態得分配系統資源、記憶體、安全屬性和與之相關的狀態。可以有多個程式關聯到同一個程式,並同時執行不會互相干擾。作業系統會有效地管理和追蹤所有執行著的程式。
為了管理這些程式,使用者應該能夠:
- 檢視所有執行中的程式
- 檢視程式消耗資源
- 定位個別程式並且對其執行指定操作
- 改變程式的優先順序
- 殺死指定程式
- 限制程式可用的系統資源等
Linux提供了許多命令來讓使用者來高效掌控上述的操作。接下來,一個一個的來講解下。
1. ps
‘ps’是Linux 中最基礎的瀏覽系統中的程式的命令。能列出系統中執行的程式,包括程式號、命令、CPU使用量、記憶體使用量等。下述選項可以得到更多有用的訊息。
ps -a - 列出所有執行中/啟用程式
ps -ef |grep - 列出需要程式 ps -aux - 顯示程式資訊,包括無終端的(x)和針對使用者(u)的程式:如USER, PID, %CPU, %MEM等
2. pstree
linux中,每一個程式都是由其父程式建立的。此命令以視覺化方式顯示程式,通過顯示程式的樹狀圖來展示程式間關係。如果指定了pid了,那麼樹的根是該pid,不然將會是init(pid: 1)。
3. top
‘top’是一個更加有用的命令,可以監視系統中不同的程式所使用的資源。它提供實時的系統狀態資訊。顯示程式的資料包括 PID、程式屬主、優先順序、%CPU、%memory等。可以使用這些顯示指示出資源使用量。
4. htop
htop與top很類似,但是htop是互動式的文字模式的程式檢視器。它通過文字圖形化地顯示每一個程式的CPU和記憶體使用量、swap使用量。使用上下游標鍵選擇程式,F7和F8改變優先順序,F9殺死程式。Htop不是系統預設安裝的,所以需要額外安裝。
5. nice
通過nice命令的幫助,使用者可以設定和改變程式的優先順序。提高一個程式的優先順序,核心會分配更多CPU時間片給這個程式。預設情況下,程式以0的優先順序啟動。程式優先順序可以通過top命令顯示的NI(nice value)列檢視。
程式優先順序值的範圍從-20到19。值越低,優先順序越高。
nice <優先值> <程式名> - 通過給定的優先值啟動一個程式
上述命令例子中,可以看到‘top’命令獲得了-3的優先值。
6. renice
renice命令類似nice命令。使用這個命令可以改變正在執行的程式優先值。注意,使用者只能改變屬於他們自己的程式的優先值。
renice -n -p - 改變指定程式的優先值
初始優先值為0的3806號程式優先值已經變成了4.
renice -u -g - 通過指定使用者和組來改變程式優先值
上述例子中,使用者為‘mint’的所有程式優先值變為‘-3’。
7. kill
這個命令用於傳送訊號來結束程式。如果一個程式沒有響應殺死命令,這也許就需要強制殺死,使用-9引數來執行。注意,使用強制殺死的時候一定要小心,因為程式沒有時機清理現場,也許寫入檔案沒有完成。如果我們不知道程式PID或者打算用名字殺死程式時候,killall就能派上用場。
kill <pid> kill -9 <pid> killall -9 - 殺死所有擁有同樣名字的程式
如果你使用kill,你需要知道程式ID號。pkill是類似的命令,但使用模式匹配,如程式名,程式擁有者等。
pkill <程式名>
8. ulimit
該命令用於控制系統資源在shell和程式上的分配量。對於系統管理員是最有用的,可以管理重度使用和存在效能問題的系統。限制資源大小可以確保重要程式持續執行,其他程式不會佔用過多資源。
ulimit -a - 顯示當前使用者關聯的資源限制
-f - 最大檔案尺寸大小 -v - 最大虛擬記憶體大小(KB) -n - 增加最大檔案描述符數量 -H : 改變和報告硬限制 -S : 改變和報告軟限制
瀏覽ulimit man頁面獲取更多選項。
9. w
w 提供當前登入的使用者及其正在執行的程式的資訊。顯示資訊頭包含資訊,如當前時間、系統執行時長、登入使用者總數、過去的1,5,15分鐘內的負載均衡數。
基於這些使用者資訊,使用者在終止不屬於他們的程式時要小心。
who是類似命令,提供當前登入使用者列表、系統啟動時間、執行級別等。
whoami 命令輸出當前使用者ID
10. pgrep
pgrep的意思是”程式號全域性正則匹配輸出”。該命令掃描當前執行程式,然後按照命令匹配條件列出匹配結果到標準輸出。對於通過名字檢索程式號是很有用。
pgrep -u mint sh
這個命令將會顯示使用者為‘mint’和程式名為‘sh’的程式ID。
11. fg , bg
有時,命令需要很長的時間才能執行完成。對於這種情況,我們使用‘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
12. ipcs
ipcs命令報告程式間通訊設施狀態。(共享記憶體,訊號量和訊息佇列)
用-p引數聯合-m、-s或-q使用,可以獲得相關的程式間通訊的程式ID。
ipcs -p -m
下面螢幕截圖列出了最近訪問了共享記憶體段的程式的建立者的ID和程式ID。
總結
總之 ,這些命令可以幫助管理員修復問題和改善效能。同樣作為一名普通使用者也需要解決程式出現的問題。所以,熟悉如此繁多的命令,從能有效管理程式是行之有效。
相關文章
- 12個程式管理命令介紹
- Linux xargs命令介紹Linux
- linux xhost命令介紹Linux
- linux ps命令介紹Linux
- Linux yum 命令介紹Linux
- Linux top命令介紹Linux
- Linux make命令介紹Linux
- Linux useradd 命令介紹Linux
- Linux重啟命令介紹Linux
- 【SRE工程師】Linux常用硬碟管理相關命令介紹!工程師Linux硬碟
- 『學了就忘』Linux系統管理 — 81、程式管理介紹Linux
- Linux 關機命令介紹shutdownLinux
- linux基本命令介紹(二)Linux
- linux基本命令介紹(一)Linux
- 【Linux】jq 命令介紹和使用Linux
- linux vi命令常用方法介紹Linux
- Linux常用命令介紹Linux
- 為初學者介紹的 Linux tee 命令(6 個例子)Linux
- Linux常用命令介紹(搜尋命令)Linux
- linux檢視埠是否被佔用的命令是什麼 linux被哪個程式佔用命令介紹Linux
- linux高階工具命令 -- vmstat介紹Linux
- Linux服務管理神器:SYSTEMD介紹Linux
- Linux ls命令最詳細用法介紹Linux
- Linux Grep命令使用的詳細介紹Linux
- SRVCTL命令介紹
- docker 命令介紹Docker
- tar命令介紹
- linux20個常用命令詳解和用法 linux常用命令大全介紹Linux
- 『學了就忘』Linux軟體包管理 — 46、yum命令詳細介紹Linux
- 每天一個 Linux 命令(12):more 命令Linux
- Linux中一些 Sed命令技巧介紹Linux
- Linux效能分析和最佳化命令介紹Linux
- 進行Linux效能監控的命令介紹Linux
- Linux下ulimit命令的詳細使用介紹LinuxMIT
- 詳細介紹Linux finger命令的使用Linux
- 虛擬機器之linux介紹和命令虛擬機Linux
- Shell echo命令介紹
- HBase shell 命令介紹