一、 top
1.作用
top命令用來(lái)顯示執(zhí)行中的程序進(jìn)程,使用權(quán)限是所有用戶。
2.格式
top [-] [d delay] [q] [c] [S] [s] [i] [n]
3.主要參數(shù)
d:指定更新的間隔,以秒計(jì)算。q:沒(méi)有任何延遲的更新。如果使用者有超級(jí)用戶,則top命令將會(huì)以最高的優(yōu)先序執(zhí)行。c:顯示進(jìn)程完整的路徑與名稱。S:累積模式,會(huì)將己完成或消失的子行程的CPU時(shí)間累積起來(lái)。s:安全模式。i:不顯示任何閑置(Idle)或無(wú)用(Zombie)的行程。n:顯示更新的次數(shù),完成后將會(huì)退出top。
4.說(shuō)明
top命令是Linux系統(tǒng)管理的一個(gè)主要命令,通過(guò)它可以獲得許多信息。這里我們結(jié)合圖1來(lái)說(shuō)明它給出的信息。
圖1 top命令的顯示
在圖1中,第一行表示的項(xiàng)目依次為當(dāng)前時(shí)間、系統(tǒng)啟動(dòng)時(shí)間、當(dāng)前系統(tǒng)登錄用戶數(shù)目、平均負(fù)載。第二行顯示的是所有啟動(dòng)的進(jìn)程、目前運(yùn)行的、掛起(Sleeping)的和無(wú)用(Zombie)的進(jìn)程。第三行顯示的是目前CPU的使用情況,包括系統(tǒng)占用的比例、用戶使用比例、閑置(Idle)比例。第四行顯示物理內(nèi)存的使用情況,包括總的可以使用的內(nèi)存、已用內(nèi)存、空閑內(nèi)存、緩沖區(qū)占用的內(nèi)存。第五行顯示交換分區(qū)使用情況,包括總的交換分區(qū)、使用的、空閑的和用于高速緩存的大小。第六行顯示的項(xiàng)目最多,下面列出了詳細(xì)解釋。
PID(Process ID):進(jìn)程標(biāo)示號(hào)。USER:進(jìn)程所有者的用戶名。PR:進(jìn)程的優(yōu)先級(jí)別。NI:進(jìn)程的優(yōu)先級(jí)別數(shù)值。VIRT:進(jìn)程占用的虛擬內(nèi)存值。RES:進(jìn)程占用的物理內(nèi)存值。SHR:進(jìn)程使用的共享內(nèi)存值。S:進(jìn)程的狀態(tài),其中S表示休眠,R表示正在運(yùn)行,Z表示僵死狀態(tài),N表示該進(jìn)程優(yōu)先值是負(fù)數(shù)。%CPU:該進(jìn)程占用的CPU使用率。%MEM:該進(jìn)程占用的物理內(nèi)存和總內(nèi)存的百分比。TIME+:該進(jìn)程啟動(dòng)后占用的總的CPU時(shí)間。Command:進(jìn)程啟動(dòng)的啟動(dòng)命令名稱,如果這一行顯示不下,進(jìn)程會(huì)有一個(gè)完整的命令行。
top命令使用過(guò)程中,還可以使用一些交互的命令來(lái)完成其它參數(shù)的功能。這些命令是通過(guò)快捷鍵啟動(dòng)的。
空格>:立刻刷新。P:根據(jù)CPU使用大小進(jìn)行排序。M:根據(jù)使用內(nèi)存大小進(jìn)行排序。T:根據(jù)時(shí)間、累計(jì)時(shí)間排序。q:退出top命令。m:切換顯示內(nèi)存信息。t:切換顯示進(jìn)程和CPU狀態(tài)信息。c:切換顯示命令名稱和完整命令行。W:將當(dāng)前設(shè)置寫(xiě)入~/.toprc文件中。這是寫(xiě)top配置文件的推薦方法。
可以看到,top命令是一個(gè)功能十分強(qiáng)大的監(jiān)控系統(tǒng)的工具,對(duì)于系統(tǒng)管理員而言尤其重要。但是,它的缺點(diǎn)是會(huì)消耗很多系統(tǒng)資源。
5.應(yīng)用實(shí)例
使用top命令可以監(jiān)視指定用戶,缺省情況是監(jiān)視所有用戶的進(jìn)程。如果想查看指定用戶的情況,在終端中按“U”鍵,然后輸入用戶名,系統(tǒng)就會(huì)切換為指定用戶的進(jìn)程運(yùn)行界面,見(jiàn)圖2所示。
圖2 使用top命令監(jiān)視指定用戶
二、 free
1.作用
free命令用來(lái)顯示內(nèi)存的使用情況,使用權(quán)限是所有用戶。
2.格式
free [-b|-k|-m] [-o] [-s delay] [-t] [-V]
3.主要參數(shù)
-b -k -m:分別以字節(jié)(KB、MB)為單位顯示內(nèi)存使用情況。-s delay:顯示每隔多少秒數(shù)來(lái)顯示一次內(nèi)存使用情況。l-t:顯示內(nèi)存總和列。-o:不顯示緩沖區(qū)調(diào)節(jié)列。
4.應(yīng)用實(shí)例
free命令是用來(lái)查看內(nèi)存使用情況的主要命令。和top命令相比,它的優(yōu)點(diǎn)是使用簡(jiǎn)單,并且只占用很少的系統(tǒng)資源。通過(guò)-S參數(shù)可以使用free命令不間斷地監(jiān)視有多少內(nèi)存在使用,這樣可以把它當(dāng)作一個(gè)方便實(shí)時(shí)監(jiān)控器。
#free -m -s 3
使用這個(gè)命令后終端會(huì)連續(xù)不斷地報(bào)告內(nèi)存使用情況(以MB為單位),每3秒更新一次。
三、 kill
1.作用
kill命令用來(lái)中止一個(gè)進(jìn)程。
2.格式
kill [ -s signal | -p ] [ -a ] pid …
kill -l [ signal ]
3.參數(shù)
-s:指定發(fā)送的信號(hào)。-p:模擬發(fā)送信號(hào)。-l:指定信號(hào)的名稱列表。pid:要中止進(jìn)程的ID號(hào)。Signal:表示信號(hào)。
4.說(shuō)明
進(jìn)程是Linux系統(tǒng)中一個(gè)非常重要的概念。Linux是一個(gè)多任務(wù)的操作系統(tǒng),系統(tǒng)上經(jīng)常同時(shí)運(yùn)行著多個(gè)進(jìn)程。我們不關(guān)心這些進(jìn)程究竟是如何分配的,或者是內(nèi)核如何管理分配時(shí)間片的,所關(guān)心的是如何去控制這些進(jìn)程,讓它們能夠很好地為用戶服務(wù)。
Linux操作系統(tǒng)包括三種不同類(lèi)型的進(jìn)程,每種進(jìn)程都有自己的特點(diǎn)和屬性。交互進(jìn)程是由一個(gè)Shell啟動(dòng)的進(jìn)程。交互進(jìn)程既可以在前臺(tái)運(yùn)行,也可以在后臺(tái)運(yùn)行。批處理進(jìn)程和終端沒(méi)有聯(lián)系,是一個(gè)進(jìn)程序列。監(jiān)控進(jìn)程(也稱系統(tǒng)守護(hù)進(jìn)程)時(shí)Linux系統(tǒng)啟動(dòng)時(shí)啟動(dòng)的進(jìn)程,并在后臺(tái)運(yùn)行。例如,httpd是著名的Apache服務(wù)器的監(jiān)控進(jìn)程。
kill命令的工作原理是,向Linux系統(tǒng)的內(nèi)核發(fā)送一個(gè)系統(tǒng)操作信號(hào)和某個(gè)程序的進(jìn)程標(biāo)識(shí)號(hào),然后系統(tǒng)內(nèi)核就可以對(duì)進(jìn)程標(biāo)識(shí)號(hào)指定的進(jìn)程進(jìn)行操作。比如在top命令中,我們看到系統(tǒng)運(yùn)行許多進(jìn)程,有時(shí)就需要使用kill中止某些進(jìn)程來(lái)提高系統(tǒng)資源。在講解安裝和登陸命令時(shí),曾提到系統(tǒng)多個(gè)虛擬控制臺(tái)的作用是當(dāng)一個(gè)程序出錯(cuò)造成系統(tǒng)死鎖時(shí),可以切換到其它虛擬控制臺(tái)工作關(guān)閉這個(gè)程序。此時(shí)使用的命令就是kill,因?yàn)閗ill是大多數(shù)Shell內(nèi)部命令可以直接調(diào)用的。
5.應(yīng)用實(shí)例
(1)強(qiáng)行中止(經(jīng)常使用殺掉)一個(gè)進(jìn)程標(biāo)識(shí)號(hào)為324的進(jìn)程:
#kill -9 324
(2)解除Linux系統(tǒng)的死鎖
在Linux中有時(shí)會(huì)發(fā)生這樣一種情況:一個(gè)程序崩潰,并且處于死鎖的狀態(tài)。此時(shí)一般不用重新啟動(dòng)計(jì)算機(jī),只需要中止(或者說(shuō)是關(guān)閉)這個(gè)有問(wèn)題的程序即可。當(dāng)kill處于X-Window界面時(shí),主要的程序(除了崩潰的程序之外)一般都已經(jīng)正常啟動(dòng)了。此時(shí)打開(kāi)一個(gè)終端,在那里中止有問(wèn)題的程序。比如,如果Mozilla瀏覽器程序出現(xiàn)了鎖死的情況,可以使用kill命令來(lái)中止所有包含有Mozolla瀏覽器的程序。首先用top命令查處該程序的PID,然后使用kill命令停止這個(gè)程序:
#kill -SIGKILL XXX
其中,XXX是包含有Mozolla瀏覽器的程序的進(jìn)程標(biāo)識(shí)號(hào)。
(3)使用命令回收內(nèi)存
我們知道內(nèi)存對(duì)于系統(tǒng)是非常重要的,回收內(nèi)存可以提高系統(tǒng)資源。kill命令可以及時(shí)地中止一些“越軌”的程序或很長(zhǎng)時(shí)間沒(méi)有相應(yīng)的程序。例如,使用top命令發(fā)現(xiàn)一個(gè)無(wú)用 (Zombie) 的進(jìn)程,此時(shí)可以使用下面命令:
#kill -9 XXX
其中,XXX是無(wú)用的進(jìn)程標(biāo)識(shí)號(hào)。
然后使用下面命令:
#free
此時(shí)會(huì)發(fā)現(xiàn)可用內(nèi)存容量增加了。
(4)killall命令
Linux下還提供了一個(gè)killall命令,可以直接使用進(jìn)程的名字而不是進(jìn)程標(biāo)識(shí)號(hào),例如:
# killall -HUP inetd
四、 查看磁盤(pán)盤(pán)剩余空間 df (df -h)
用法:df [選項(xiàng)]… [文件]…
顯示每個(gè)文件>所在的文件系統(tǒng)的信息,默認(rèn)是顯示所有文件系統(tǒng)。
長(zhǎng)選項(xiàng)必須用的參數(shù)在使用短選項(xiàng)時(shí)也是必須的。
-a, –all 包括大小為 0 個(gè)塊的文件系統(tǒng)-B, –block-size=大小 塊以指定大小>的字節(jié)為單位-h, –human-readable 以容易理解的格式印出文件系統(tǒng)大小 (例如 1K 234M 2G)-H, –si 類(lèi)似 -h,但取 1000 的次方而不是 1024-i, –inodes 顯示 inode 信息而非塊使用量-k 即 –block-size=1K-l, –local 只顯示本機(jī)的文件系統(tǒng)–no-sync 取得使用量數(shù)據(jù)前不進(jìn)行 sync 動(dòng)作 (默認(rèn))-P, –portability 使用 POSIX 輸出格式–sync 取得使用量數(shù)據(jù)前先進(jìn)行 sync 動(dòng)作-t, –type=類(lèi)型 只印出指定類(lèi)型>的文件系統(tǒng)信息-T, –print-type 印出文件系統(tǒng)類(lèi)型-x, –exclude-type=類(lèi)型 只印出不是指定類(lèi)型>的文件系統(tǒng)信息-v (此選項(xiàng)不作處理)
匯總:
top -c
free -m
kill -9 2312 (說(shuō)明:強(qiáng)制殺死進(jìn)程 kill -9 pid )
df -h