1. 查看進程(參數帶 - 與不帶有區別):
command [options]
例:ps -a(配合其他options參數以展示進程更多參數)
ps -ef | grep 進程名(返回值是該進程的詳細信息)
pgrep 進程名(返回值直接是該進程PID)
pidof 進程名,同pgrep,不同點pgrep 進程名可以模糊匹配, pidof的進程名必須精准
常用:
ps a 顯示現行終端機下的所有程序,包括其他用戶的程序。
ps u 以用戶為主的格式來顯示程序狀況。
ps x 顯示所有程序,不以終端機來區分。
ps -A 顯示所有程序。
ps c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
非常用:
ps -e 此參數的效果和指定"A"參數相同。
ps e 列出程序時,顯示每個程序所使用的環境變量。
ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關系。
ps -H 顯示樹狀結構,表示程序間的相互關系。
ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。
ps 采用程序信號的格式顯示程序狀況。
ps S 列出程序時,包括已中斷的子程序資料。
ps -t <終端機編號> 指定終端機編號,並列出屬於該終端機的程序的狀況。
參數含義:
- F 進程的標志(flag),4表示用戶為超級用戶
- S 進程的狀態(stat)
- PID 進程的ID
- C CPU使用資源的百分比
- PRI priority(優先級)的縮寫,
- NI Nice值,
- ADDR 核心功能,指出該進程在內存的那一部分,如果是運行的進程,一般都是“-”
- SZ 用掉的內存的大小
- WCHAN 當前進程是否正在運行,若為“-”表示正在運行
- TIME 用掉的CPU的時間
- CMD 所執行的指令
結果列名含義:
- USER 進程的屬主;
- PID 進程的ID;
- PPID 父進程;
- %CPU 進程占用的CPU百分比;
- %MEM 占用內存的百分比;
- NI 進程的NICE值,數值大,表示較少占用CPU時間;
- VSZ 進程使用的虛擬內存量(KB);
- RSS 該進程占用的固定內存量(KB)(駐留中頁的數量);
- TTY 該進程在那個終端上運行(登錄用戶的終端位置)。
- pts/0 則表示由網絡連接主機進程
- WCHAN 當前進程是否正在運行,若為-表示正在運行;
- START 該進程被觸發啟動時間;
- TIME 該進程實際使用CPU運行的時間;
- COMMAND 命令的名稱和參數;
- STAT 狀態位常見的狀態字符
- D 無法中斷的休眠狀態(通常 IO 的進程);
- R 正在運行可中在隊列中可過行的;
- S 處於休眠狀態;
- T 停止或被追蹤;
- W 進入內存交換 (從內核2.6開始無效);
- X 死掉的進程 (基本很少見);
- Z 僵屍進程;
- < 優先級高的進程
- N 優先級較低的進程
- L 有些頁被鎖進內存;
- s 進程的領導者(在它之下有子進程);
- l 多進程的(使用 CLONE_THREAD, 類似 NPTL pthreads);
- + 位於后台的進程組;
2. 通過端口查看進程:
2.1 lsof -i: 查看所有進程端口使用,采用的網絡協議等信息
2.2 lsof -i:端口號, 光查看該端口號的具體信息
2.3 netstat -tpln | grep 端口號
3. 殺死進程
獲取進程PID:
根據pid殺死進程
以上資料由查詢資料結合自己實戰所總結,由於本人記憶太差,所以寫下隨筆,給予小白及和我同個星球的人……