進程管理:查看與終止html
1. 進程是正在執行的程序或命令。vim
2. 進程管理的做用:緩存
判斷服務器健康狀態,服務器
查看系統中全部進程ui
殺死進程spa
3. 查看系統中全部進程操作系統
ps aux # 查看系統中全部進程,使用BSD操做系統格式rest
ps le # 查看系統中全部進程,使用Linux標準命令格式htm
USER:該進程由哪一個用戶產生的;blog
PID:進程的ID號;
%CPU:該進程佔用CPU資源的百分比,佔用越高,進程越耗費資源;
%MEM:該進程佔用物理內存的百分比,佔用越高,進程越耗費資源;
VSZ:該進程佔用虛擬內存的大小,單位KB;
RSS:該進程佔用實際物理內存的大小,單位KB;
TTY:該進程是在哪一個終端中運行的。其中tty1-tty7表明本地控制檯終端,tty1-tty6是本地的字符界面終端,tty7是圖形終端。pts/0-256表明虛擬終端。?表明由內核產生;
STAT:進程狀態。常見的狀態有(R:運行、S:睡眠、T:中止、s:包含子進程、+:位於後臺);
START:該進程的啓動時間;
TIME:該進程佔用CPU的運算時間,注意不是系統時間;
COMMAND:產生此進程的命令名;
4. 查看系統健康狀態
top [選項]
-d 秒數 : 指定top命令每隔幾秒更新,默認是3秒;
在top命令的交互模式當中能夠執行的命令:
? 或 h : 顯示交互模式的幫助;
P : 以CPU使用率排序,默認;
M : 之內存的使用率排序;
N : 以PID排序;
q : 退出top;
第一行是任務隊列信息
12:26:46 # 系統當前時間(不必定準確)
up 1 day, 13:32 #系統的運行時間,本機已運行1天 13小時32分鐘
2 users # 當前登陸了兩個用戶
load average:0.06, 0.11, 0.12 # 系統在以前1分鐘,5分鐘,15分鐘的平均負載。通常認爲小於1時(1核CPU),負載較小。若是大於1,系統已經超出負荷。
第二行是進程信息
Tasks:95 total # 系統中的進程總數
1 running # 正在運行的進程數
94 sleeping # 睡眠的進程
0 stopped # 正在中止的進程
0 zombie # 殭屍進程。若是不是0,須要手工檢查殭屍進程
第三行是CPU信息
Cpu(s):0.1%us # 用戶模式佔用的CPU百分比
0.1%sy # 系統模式佔用的CPU百分比
0.0%ni # 改變過優先級的用戶進程佔用的CPU百分比
99.7%id # 空閒CPU的百分比
0.1%wa # 等待輸入/輸出的進程的佔用CPU百分比
0.0%hi # 硬中斷請求服務佔用的CPUb百分比
0.1%si # 軟中斷請求服務佔用的CPU百分比
0.0%st # st(Steal time)虛擬時間百分比。就是當有虛擬機時,虛擬CPU等待實際CPU的時間百分比。
第四行是物理內存信息
Mem:1870784k total # 物理內存的總量,單位KB
1795092k used # 已經使用的物理內存數量
85028k free # 空閒的物理內存數量,若是是虛擬機就是虛擬機中所剩可用內存,(85028/1024=83M)
0 buffers # 做爲緩衝的內存數量
第五行是交換分區(swap)信息
Swap:2097148 total # 交換分區(虛擬內存)的總大小
736812k used # 已經使用的交換分區的大小
1360336 free # 空閒交換分區的大小
300712 cached Mem # 做爲緩存的交換分區的大小
( 以上幾個重要指標是:平均負載,CPU空閒率,內存空閒大小 )
( top命名自己也是耗資源的,沒有必要一直開着,用完就退出 )
5. 查看進程樹
pstree [選項]
-p : 顯示進程的PID
-u : 顯示進程的所屬用戶
kill -l # 查看可用的進程信號。
kill -1 進程ID # 該信號讓進程當即關閉,而後從新讀取配置文件以後重啓。
kill -9 進程ID # 當即結束程序的運行,本信號不能被阻塞、處理和忽略。通常用於強制終止進程。
kill -15 進程ID # 正常結束進程的信號,kill的默認信號。
killall [選項][信號] 進程名 # 按照進程名殺死進程
選項
-i : 交互式,詢問是否要殺死某個進程
-I : 忽略進程名的大小寫
pkill [選項][信號] 進程名 # 按照進程名終止進程(與killall徹底同樣,除了選項)
選項
-t 終端號 : 按照終端號提出用戶
( w # 使用w命令查詢本機已經登陸的用戶 )
( pkill -t -9 pts/1 # 強制殺死從pts/1虛擬終端登陸的進程 )
工做管理
1. 命令結尾加 & 符號,在後臺繼續執行;
2. 命令執行過程當中按 ctrl+z ,把任務放入後臺暫停運行。
一個典型場景是,vim 編輯某些文件時,使用 ctrl+z 能夠保留工做現場退回到終端,以後經過 fg 回到編輯界面。
jobs [-l]
參數: -l 顯示工做的 pid
「+」 表明最近一個放入後臺的工做,也是工做恢復時,默認恢復的工做。
「 - 」 表明倒數第二個放入後臺的工做。
fg %工做號
參數:%工做號 注意工做號是 jobs 列出的在行首的數字,不是PID
bg %工做號
注:後臺恢復執行的命令,是不能和前臺有交互的,不然不能恢復到後臺執行,好比 top、vim.
系統資源查看
vmstat [刷新延時 刷新次數]
vmstat 2 3 # 共輸出三次,每次間隔2秒,主要是看內存和CPU的使用,比 top 的輸出內容簡潔
dmesg
dmesg | grep CPU
free [-b|-k|-m|-g|-h]
緩存(cache)和緩衝(buffer)的區別:
緩存是用來加速數據從硬盤中「讀取」的,而緩衝是用來加速數據「寫入」硬盤的。
顯示系統的啓動時間和平均負載,也就是 top 命令的第一行,w 命令也能夠看到這個數據。
uname [選項]
-a 查看系統全部相關信息
-r 查看內核版本,主要用途
-s 查看內核名稱
file /bin/ls # /bin/ls: ELF 64-bit ......
lsb_release -a
lsof [選項]
-c 字符串 只列出以字符串開頭的進程打開的文件
-u 用戶名 只列出某個用戶的進程打開的文件
-p pid 列出某個PID進程打開的文件
系統定時任務
systemctl restart cron.service # 重啓cron服務
systemctl enable cron.service # 設置開機自啓動
systemctl list-unit-files # 查看是否開機自啓動
systemctl list-units --type=service # 查看全部已啓動的服務
crontab [選項],格式:分-時-日-月-周 命令
-e 編輯 crontab 定時任務
-l 顯示用戶的 crontab 任務
-r 刪除當前用戶全部的 crontab 任務