Linux_系統(tǒng)管理

ps

ps aux

a: 顯示一個終端的所有進程,除了會話引線
u: 顯示進程的歸屬用戶及內(nèi)存的使用情況
x: 顯示沒有控制終端的進程
ps -le
-l: 長格式顯示。顯示更加詳細的信息
-e: 顯示所有進程,和-A 作用一致

[root@localhost ~]# ps aux
#查看系統(tǒng)中所有的進程
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 2872 1416 ? Ss Jun04 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S Jun04 0:00 [kthreadd]

USER:該進程是由哪個用戶產(chǎn)生的;
PID:進程的 ID 號;
%CPU:該進程占用 CPU 資源的百分比,占用越高,進程越耗費資源;
%MEM:該進程占用物理內(nèi)存的百分比,占用越高,進程越耗費資源;
VSZ:該進程占用虛擬內(nèi)存的大小,單位 KB;
RSS:該進程占用實際物理內(nèi)存的大小,單位 KB;
TTY:該進程是在哪個終端中運行的。其中 tty1-tty7 代表本地控制臺終端(可以通過
alt+F1-F7 鍵切換不同的終端),tty1-tty6 是本地的字符界面終端,tty7 是圖形終端。
pts/0-255 代表虛擬終端,一般是遠程連接的終端,第一個遠程連接占用的是 pts/0 終端,
第二個遠程連接占用 pts/1,依次增長。
STAT:進程狀態(tài)。常見的狀態(tài)有:
D:不可被喚醒的睡眠狀態(tài),通常用于 I/O 情況
R:該進程正在運行
S:該進程在睡眠狀態(tài),可被喚醒
T:停止?fàn)顟B(tài),可能是在后臺暫?;蜻M程在除錯狀態(tài)
W:內(nèi)存交互狀態(tài)(從 2.6 內(nèi)核開始無效)
X:死掉的進程(應(yīng)該不會出現(xiàn))
Z:僵尸進程。進程已經(jīng)終止,但是部分程序還在內(nèi)存當(dāng)中。
<:高優(yōu)先級(以下狀態(tài)在 BSD 格式當(dāng)中出現(xiàn))
N:低優(yōu)先級
L:被鎖入內(nèi)存
s:包含子進程
l:多線程(小寫 L) ? +:位于后臺
START:該進程的啟動時間
TIME:該進程占用 CPU 的運算時間,注意不是系統(tǒng)時間
COMMAND:產(chǎn)生此進程的命令名

ps -le
[root@localhost ~]# ps -le
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 718 - ? 00:00:02 init
1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd

F:進程標(biāo)志,說明進程的權(quán)限,常見的標(biāo)志有:
?1:進程可以復(fù)制,但是不能執(zhí)行
?4:進程使用超級用戶權(quán)限
S:進程狀態(tài)。具體的狀態(tài)和“ps aux”命令中 STAT 狀態(tài)一致
UID:進程是哪個 UID 用戶調(diào)用運行的
PID:進程的 ID 號 ? PPID:父進程的 ID 號 ? C:該進程的 CPU 使用率,單位是百分比
PRI:進程的優(yōu)先級,數(shù)值越小該進程優(yōu)先級越高,越快被 CPU 執(zhí)行
NI:進程的優(yōu)先級,也是數(shù)值越小越早被執(zhí)行
ADDR:該進程在內(nèi)存的哪個位置
SZ:該進程占用多大內(nèi)存
WCHAN:該進程是否運行?!?”代表正在運行
TTY:該進程由哪個終端產(chǎn)生
TIME:該進程占用 CPU 的運算時間,注意不是系統(tǒng)時間
CMD:產(chǎn)生此進程的命令名

top

[root@localhost ~]# top [選項]
選項:
-d 秒數(shù): 指定 top 命令每隔幾秒更新。默認(rèn)是 3 秒 -b: 使用批處理模式輸出。一般和“-n”選項合用,用于把 top 命令重定向到
文件中
-n 次數(shù): 指定 top 命令執(zhí)行的次數(shù)。一般和“-b”選項合用
-p: 指定 PID。只查看某個 PID 的進程
-s: 使 top 在安全模式運行,避免在交互模式中出現(xiàn)錯誤
-u 用戶名: 只監(jiān)聽某個用戶的進程
在 top 命令的交互模式當(dāng)中可以執(zhí)行的命令:
?或 h: 顯示交互模式的幫助
P: 以 CPU 使用率排序,默認(rèn)就是此項
M: 以內(nèi)存的使用率排序
N: 以 PID 排序
T: 按照 CPU 的累積運算時間排序,也就是用 TIME+項排序
k: 按照 PID 號,給予某個進程一個信號。一般用于終止某個進程,信號 9
是強制終止的信號
r: 按照 PID 號,給某個進程重設(shè)優(yōu)先級(Nice)值
q: 退出 top
[root@localhost ~]# top
top - 12:26:46 up 1 day, 13:32, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.7%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 625344k total, 571504k used, 53840k free, 65800k buffers
Swap: 524280k total, 0k used, 524280k free, 409280k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
19002 root 20 0 2656 1068 856 R 0.3 0.2 0:01.87 top 
 1 root 20 0 2872 1416 1200 S 0.0 0.2 0:02.55 init 
 2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd
image.png
image.png
image.png
image.png
image.png

再來看 top 命令的第二部分輸出,主要是系統(tǒng)進程信息。這部分和 ps 命令的輸出比較類似,
只是如果在終端中執(zhí)行 top 命令不能看到所有的進程,而只能看到占比靠前的進程。
PID:進程 ID
USER:該進程所屬的用戶
PR:優(yōu)先級,數(shù)值越小優(yōu)先級越高
NI:優(yōu)先級,數(shù)值越小優(yōu)先級越高
VIRT:該進程使用的虛擬內(nèi)存的大小,單位 KB
RES:該進程使用的物理內(nèi)存的大小,單位 KB
SHR:共享內(nèi)存大小,單位 KB
S:進程狀態(tài)
%CPU:該進程占用 CPU 的百分比
%MEM:該進程占用內(nèi)存的百分比
TIME+:該進程總共占用的 CPU 時間
COMMAND:進程的命令名

[root@localhost ~]# top -b -n 1 > /root/top.log
#讓 top 命令只執(zhí)行一次,讓后把結(jié)果保存到 top.log 文件中。這樣就能看到所有的進程了

后臺運行某個命令

[root@localhost ~]# find / -name install.log &
[1] 1920
# [工作號] 進程號
#find 命令放入后臺執(zhí)行,每個后臺命令會分配一個工作號,命令既然可以執(zhí)行,就會有進
#程產(chǎn)生,所以也會有進程號。

后臺管理命令

查看后臺的工作
[root@localhost ~]# jobs [-l]
選項:
-l: 顯示工作的 PID
將后臺暫停的工作恢復(fù)到前臺執(zhí)行
[root@localhost ~]# fg %工作號
參數(shù):
%工作號: %號可以省略,但是注意工作號和 PID 的區(qū)別
把后臺暫停的工作恢復(fù)到后臺執(zhí)行
[root@localhost ~]# bg %工作號
后臺命令脫離登錄終端運行

nohup 命令的作用就是讓后臺工作在離開操作終端時,也能夠正確的在后臺執(zhí)行。

[root@localhost ~]# nohup [命令] &
例如:
[root@localhost ~]# nohup find / -print > /root/file.log &
[3] 2349 ? 用 find 命令,打印/下所有文件。放入后臺執(zhí)行

vmstat

[root@localhost ~]# vmstat [刷新延時 刷新次數(shù)]
例如:
[root@localhost proc]# vmstat 1 3
#使用 vmstat 檢測,每 1 秒刷新一次,共刷新 3 次
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 407376 55772 84644 0 0 5 2 9 10 0 0 100 0 0
0 0 0 407368 55772 84644 0 0 0 0 12 10 0 0 100 0 0
0 0 0 407368 55772 84644 0 0 0 0 15 13 0 0 100 0 0

解釋下這個命令的輸出:
procs:進程信息字段:
   r:等待運行的進程數(shù),數(shù)量越大,系統(tǒng)越繁忙。
   b:不可被喚醒的進程數(shù)量,數(shù)量越大,系統(tǒng)月繁忙。
memory:內(nèi)存信息字段:
swpd:虛擬內(nèi)存的使用情況,單位 KB。 
free:空閑的內(nèi)存容量,單位 KB。 
buff:緩沖的內(nèi)存容量,單位 KB。 
cache:緩存的內(nèi)存容量,單位 KB。
swap:交換分區(qū)的信息字段:
si:從磁盤中交換到內(nèi)存中數(shù)據(jù)的數(shù)量,單位 KB。 ? so:從內(nèi)存中交換到磁盤中數(shù)據(jù)的數(shù)量,單位 KB。此兩個數(shù)越大,證明數(shù)據(jù)需要經(jīng)常在
磁盤和內(nèi)存之間交換,系統(tǒng)性能越差。
io:磁盤讀寫信息字段:
bi:從塊設(shè)備讀入數(shù)據(jù)的總量,單位是塊。
bo:寫到塊設(shè)備的數(shù)據(jù)的總量,單位是塊。此兩個數(shù)越大,代表系統(tǒng)的 I/O 越繁忙。
system:系統(tǒng)信息字段:
in:每秒被中斷的進程次數(shù)。
cs:每秒鐘進行的事件切換次數(shù)。此兩個數(shù)越大,代表系統(tǒng)與接口設(shè)備的通信非常繁忙。
CPU:CPU 信息字段:
us:非內(nèi)核進程消耗 CPU 運算時間的百分比。
sy:內(nèi)核進程消耗 CPU 運算時間的百分比。
id:空閑 CPU 的百分比。
wa:等待 I/O 所消耗的 CPU 百分比。
st:被虛擬機所盜用的 CPU 占比。

free 命令查看內(nèi)存使用狀態(tài)

[root@localhost ~]# free [-b|-k|-m|-g]
選項:
-b: 以字節(jié)為單位顯示
-k: 以 KB 為單位顯示,默認(rèn)就是以 KB 為單位顯示
-m: 以 MB 為單位顯示
-g: 以 GB 為單位顯示
[root@localhost ~]# free 
 total used free shared buffers cached
Mem: 625344 219704 405640 0 56852 85276
-/+ buffers/cache: 77576 547768
Swap: 524280 0 524280

第一行:total 是總內(nèi)存數(shù),used 是已經(jīng)使用的內(nèi)存數(shù),free 是空閑的內(nèi)存數(shù),shared 是多個
進程共享的內(nèi)存總數(shù),buffers 是緩沖內(nèi)存數(shù),cached 是緩存內(nèi)存數(shù)。默認(rèn)單位是 KB。
第二行:-/buffers/cache 的內(nèi)存數(shù),相當(dāng)于第一行的 used-buffers-cached。+/buffers/cache
的內(nèi)存數(shù),相當(dāng)于第一行的 free+buffers+cached。
第三行:total 是 swap 的總數(shù);used 是已經(jīng)使用的 swap 數(shù),free 是空閑的 swap 數(shù)。默認(rèn)單位
是 KB。

crontab

  • 當(dāng)系統(tǒng)中有/etc/cron.allow 文件時,只有希爾此文件的用戶可以使用 crontab 命令,沒有
    寫入的用戶不能使用 crontab 命令。同樣如果有此文件,/etc/cron.deny 文件會被忽略,
    /etc/cron.allow 文件的優(yōu)先級更高。
  • 當(dāng)系統(tǒng)中只有/etc/cron.deny 文件時,則寫入此文件的用戶不能使用 crontab 命令,沒有寫
    入文件的用戶可以使用 crontab 命令。
  • /etc/cron.allow 文件的優(yōu)先級比/etc/cron.deny 文件的
    優(yōu)先級高,Linux 中默認(rèn)只有/etc/cron.deny 文件。
[root@localhost ~]# crontab [選項]
選項:
-e: 編輯 crontab 定時任務(wù)
-l: 查詢 crontab 任務(wù)
-r: 刪除當(dāng)前用戶所有的 crontab 任務(wù),如果有多個任務(wù),只想刪除一個,可
以所以用“crontab -e” -u 用戶名: 修改或刪除其他用戶的 crontab 任務(wù)。只有 root 可用
image.png
  • '*' 代表任何時間
  • ',' 代表不連續(xù)的時間。比如“0 8,12,16 * * * 命令”,就代表在每天的 8 點 0 分,12 點 0 分,16 點 0 分都執(zhí)行一次命令
  • '-'代表連續(xù)的時間范圍。比如“0 5 * * 1-6 命令”,代表在周一到周六的凌晨 5 點 0 分執(zhí)行命令
  • '/n'代表每隔多久執(zhí)行一次。比如“/10 * * * * 命令”,代表每隔10 分鐘就執(zhí)行一遍命令
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容