本章內(nèi)容:
管理進(jìn)程
獲取磁盤統(tǒng)計(jì)信息
掛載新的磁盤
排序數(shù)據(jù)
歸檔數(shù)據(jù)
1. 管理進(jìn)程?
當(dāng)程序運(yùn)行在系統(tǒng)上時(shí),我們稱之為進(jìn)程(process) 需要熟悉ps命令的用法來查看運(yùn)行在系統(tǒng)上的所有程序的許多信息
ps常用參數(shù) ps -ef 來查看所有進(jìn)程的狀態(tài)信息,-H 參數(shù)能把輸出的進(jìn)程組織成一個(gè)層級(jí)的格式,簡單的說就是一個(gè)樹狀結(jié)構(gòu)
ps命令的局限性在于只能顯示某一個(gè)特定時(shí)間點(diǎn)的信息,這個(gè)時(shí)候需要另外一個(gè)命令top
top命令和ps相似,能夠顯示進(jìn)程的信息,但它是實(shí)時(shí)顯示的
輸出的第一部分顯示的系統(tǒng)的概況:第一行顯示了當(dāng)前的時(shí)間、系統(tǒng)的運(yùn)行時(shí)間、登入的用戶數(shù)以及系統(tǒng)的負(fù)載情況
平均負(fù)載有3個(gè)值:1分鐘 5分鐘 15分鐘 這些值越大代表系統(tǒng)的負(fù)載越高,重點(diǎn)關(guān)注15分鐘的負(fù)載情況,如果15分鐘的平均負(fù)載都很高,說明系統(tǒng)是有問題的
結(jié)束進(jìn)程
kill 命令 可通過PID(進(jìn)程號(hào))給進(jìn)程發(fā)信號(hào)。默認(rèn)情況下,kill命令會(huì)向命令行中列出的全部PID發(fā)送一個(gè)TERM信號(hào),要發(fā)送進(jìn)程信號(hào),你必須是進(jìn)程的屬組或者登陸為root用戶
1.作用
kill命令用來中止一個(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)。
(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ī),只需要中止(或者說是關(guān)閉)這個(gè)有問題的程序即可。當(dāng)kill處于X-Window界面時(shí),主要的程序(除了崩潰的程序之外)一般都已經(jīng)正常啟動(dòng)了。此時(shí)打開一個(gè)終端,在那里中止有問題的程序。比如,如果Mozilla瀏覽器程序出現(xiàn)了鎖死的情況,可以使用kill命令來中止所有包含有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í)地中止一些“越軌”的程序或很長時(shí)間沒有相應(yīng)的程序。例如,使用top命令發(fā)現(xiàn)一個(gè)無用 (Zombie) 的進(jìn)程,此時(shí)可以使用下面命令:
#kill -9 XXX
其中,XXX是無用的進(jìn)程標(biāo)識(shí)號(hào)。
(4)killall命令
Linux下還提供了一個(gè)killall命令,可以直接使用進(jìn)程的名字而不是進(jìn)程標(biāo)識(shí)號(hào),例如:
# killall -HUP inetd
*殺死進(jìn)程最安全的方法是單純使用kill命令,不加修飾符,不帶標(biāo)志。
2.獲取磁盤統(tǒng)計(jì)信息
有時(shí)候你需要知道在某個(gè)設(shè)備上還有多少的磁盤空間。df命令就是用來輕松查看所有已掛載磁盤的使用情況
df -h 常用命令參數(shù) 它會(huì)把輸出掛載中的磁盤空間按人類可讀的形式來顯示,通常用M來替代兆字節(jié),用G來替代吉字節(jié),還有已用空間所占的比例 設(shè)備掛載到了哪個(gè)掛載點(diǎn)上
du命令可以顯示某個(gè)特定目錄的磁盤使用情況,這個(gè)是用來判斷你系統(tǒng)上某個(gè)目錄下是不是有超大文件的快速方法。
du -sh 常用命令按人類可讀的形式來輸出文件的大小
3.掛載新的磁盤
mount 命令 用來掛載媒體的命令。默認(rèn)情況下,mount命令會(huì)輸出當(dāng)前系統(tǒng)上掛載的設(shè)備列表。
基本命令:
mount -t type device directory
-o 常用選項(xiàng):
ro:按只讀掛載
rw:按讀寫運(yùn)行的掛載
user:允許普通用戶掛載文件系統(tǒng)
check=none:掛載文件系統(tǒng)是不進(jìn)行完整性校驗(yàn)
loop:掛載一個(gè)文件 (常用掛載CD鏡像文件)
舉例:
mount -t vfat /dev/sdb1 /media/disk
mount -t iso9660 -o loop MEPIS-KDE-LIVE-DVD_32.iso mnt
umount 命令 用于卸載掛載點(diǎn)?
命令格式:
umount [ directory| device ] #支持通過設(shè)備文件或者是掛載點(diǎn)來指定要卸載的設(shè)備
如果在卸載設(shè)備時(shí),系統(tǒng)提示繁忙,無法卸載設(shè)備,通常是有進(jìn)程還在訪問該設(shè)備或使用該設(shè)備上的文件。這時(shí)可以用lsof命令獲取它的進(jìn)程信息,然后在應(yīng)用中停止使用該設(shè)備或者停止進(jìn)程。lsof 命令的用法很簡單: lsof /path/to/device/node 或者lsof /path/to/mount/point
4.排序數(shù)據(jù)
默認(rèn)情況下,sort 命令按你為這個(gè)會(huì)話指定的默認(rèn)語言的排序規(guī)則來對(duì)這個(gè)文本文件的數(shù)據(jù)進(jìn)行排序,sort命令會(huì)將數(shù)組當(dāng)作字符而執(zhí)行標(biāo)準(zhǔn)的字符排序,產(chǎn)生的輸出可能不是你想要的結(jié)果,所以 通過 -n 參數(shù)來把數(shù)字識(shí)別成數(shù)字而不是字符,并且將它們按值排序。
還有其他的參數(shù) -k 指定排序的字段 -t 指定字段分隔符?
舉例:對(duì)密碼文件/etc/passwd根據(jù)用戶ID進(jìn)行數(shù)值排序
# sort -t':' -k 3 -n /etc/passwd?
5.歸檔數(shù)據(jù)
Unix 和Linux上最廣泛使用的工具是tar命令
格式:
tar function [options] object1 object2 ...
常用參數(shù):
-c 創(chuàng)建一個(gè)新的tar文件
-C 切換到指定的目錄
-f 輸出結(jié)果到文件或者設(shè)備file (位置在最后)
-j 將輸出重定向給bzip2命令來壓縮內(nèi)容
-p 保留所有文件權(quán)限
-v 在處理文件時(shí)顯示文件信息
-z 將輸出重定向給gzip命令來壓縮內(nèi)容
創(chuàng)建一個(gè)新的test.tar 文件并輸出文件信息
tar -cvf test.tar test/ test2/
列出test.tar的內(nèi)容,但并不解壓文件
tar -tf test.tar?
解壓test.tar文件
tar -xvf test.tar
通過gzip壓縮tar文件
tar -zcvf test.tar.gz test/ test2/