1. 程式人生 > >linux常用命令加例項大全

linux常用命令加例項大全

目  錄
引言    1
一、安裝和登入    2
(一)    login    2
(二)    shutdown    2
(三)    halt    3
(四)    reboot    3
(五)    install    4
(六)    mount    4
(七)    umount    6
(八)    chsh    6
(九)    exit    7
(十)    last    7
(十一)    動手練習    7
二、檔案處理    9
(一)    file    9
(二)    mkdir    9
(三)    grep    10
(四)    dd    11
(五)    find    11


(六)    mv    13
(七)    ls    13
(八)    diff    14
(九)    cmp    15
(十)    cat    15
(十一)    ln    16
(十二)    動手練習    16
三、系統管理    18
(一)    df    18
(二)    top    19
(三)    free    20
(四)    quota    20
(五)    at    21
(六)    lp    21
(七)    useradd    22
(八)    groupadd    23
(九)    kill    23
(十)    crontab    24
(十一)    動手練習    25

四、網路操作    27
(一)    ifconfig    27
(二)    ip    27
(三)    ping    28
(四)    netstat    29
(五)    telnet    30
(六)    ftp    31
(七)    route    32
(八)    rlogin    33
(九)    rcp    33
(十)    finger    34
(十一)    mail    34
(十二)    nslookup    34
(十三)    動手練習    35
五、系統安全    38
(一)    passwd    38
(二)    su    38
(三)    umask    39

(四)    chgrp    39
(五)    chmod    40
(六)    chown    41
(七)    chattr    42
(八)    sudo    43
(九)    ps    43
(十)    who    44
(十一)    動手練習    45
六、其他    47
(一)    tar    47
(二)    unzip    48
(三)    gunzip    49
(四)    unarj    50
(五)    mtools    50
(六)    man    51
(七)    unencode    53
(八)    uudecode    53
(九)    動手練習    53


引言
Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁碟操作、檔案存取、目錄操作、程序管理、檔案許可權設定等。所以,在Linux系 統上工作離不開使用系統提供的命令。要想真正理解Linux系統,就必須從Linux命令學起,通過基礎的命令學習可以進一步理解Linux系統。
不同Linux發行版的命令數量不一樣,但Linux發行版本最少的命令也有200多個。這裡筆者把比較重要和使用頻率最多的命令,按照它們在系統中的作用分成下面六個部分一一介紹。
◆ 安裝和登入命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 檔案處理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系統管理相關命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 網路操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
◆ 系統安全相關命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。


一、安裝和登入
本文以Mandrake Linux 9.1(Kenrel 2.4.21)為例,介紹Linux下的安裝和登入命令。
(一)    login
1.作用
login的作用是登入系統,它的使用許可權是所有使用者。
2.格式
login [name][-p ][-h 主機名稱]
3.主要引數
-p:通知login保持現在的環境引數。
-h:用來向遠端登入的之間傳輸使用者名稱。
如果選擇用命令列模式登入Linux的話,那麼看到的第一個Linux命令就是login:。
一般介面是這樣的:
Manddrake Linux release 9.1(Bamboo) for i586
renrel 2.4.21-0.13mdk on i686 / tty1
localhost login:root
password:
上面程式碼中,第一行是Linux發行版本號,第二行是核心版本號和登入的虛擬控制檯,我們在第三行輸入登入名,按“Enter”鍵在Password後輸入賬戶密碼,即可登入系統。出於安全考慮,輸入賬戶密碼時字元不會在螢幕上回顯,游標也不移動。
登入後會看到下面這個介面(以超級使用者為例):
[[email protected] root]#
last login:Tue ,Nov 18 10:00:55 on vc/1
上面顯示的是登入星期、月、日、時間和使用的虛擬控制檯。
4.應用技巧
Linux是一個真正的多使用者作業系統,可以同時接受多個使用者登入,還允許一個使用者進行多次登入。這是因為Linux和許多版本的Unix一樣,提 供了虛擬控制檯的訪問方式,允許使用者在同一時間從控制檯(系統的控制檯是與系統直接相連的監視器和鍵盤)進行多次登入。每個虛擬控制檯可以看作是一個獨立 的工作站,工作臺之間可以切換。虛擬控制檯的切換可以通過按下Alt鍵和一個功能鍵來實現,通常使用F1-F6 。
例如,使用者登入後,按一下“Alt+F2”鍵,使用者就可以看到上面出現的“login:”提示符,說明使用者看到了第二個虛擬控制檯。然後只需按 “Alt+ F1”鍵,就可以回到第一個虛擬控制檯。一個新安裝的Linux系統允許使用者使用“Alt+F1”到“Alt+F6”鍵來訪問前六個虛擬控制檯。虛擬控制 臺最有用的是,當一個程式出錯造成系統死鎖時,可以切換到其它虛擬控制檯工作,關閉這個程式。
(二)    shutdown
1.作用
shutdown命令的作用是關閉計算機,它的使用許可權是超級使用者。
2.格式
shutdown [-h][-i][-k][-m][-t]
3.重要引數
-t:在改變到其它執行級別之前,告訴init程式多久以後關機。
-k:並不真正關機,只是送警告訊號給每位登入者。
-h:關機後關閉電源。
-c:cancel current process取消目前正在執行的關機程式。所以這個選項當然沒有時間引數,但是可以輸入一個用來解釋的訊息,而這資訊將會送到每位使用者。
-F:在重啟計算機時強迫fsck。
-time:設定關機前的時間。
-m: 將系統改為單使用者模式。
-i:關機時顯示系統資訊。
4.命令說明
shutdown命令可以安全地將系統關機。有些使用者會使用直接斷掉電源的方式來關閉Linux系統,這是十分危險的。因為Linux與 Windows不同,其後臺執行著許多程序,所以強制關機可能會導致程序的資料丟失,使系統處於不穩定的狀態,甚至在有的系統中會損壞硬體裝置(硬碟)。 在系統關機前使用 shutdown命令,系統管理員會通知所有登入的使用者系統將要關閉,並且login指令會被凍結,即新的使用者不能再登入。
(三)    halt
1.作用
halt命令的作用是關閉系統,它的使用許可權是超級使用者。
2.格式
halt [-n] [-w] [-d] [-f] [-i] [-p]
3.主要引數說明
-n:防止sync系統呼叫,它用在用fsck修補根分割槽之後,以阻止核心用老版本的超級塊覆蓋修補過的超級塊。
-w:並不是真正的重啟或關機,只是寫wtmp(/var/log/wtmp)紀錄。
-f:沒有呼叫shutdown,而強制關機或重啟。
-i:關機(或重啟)前,關掉所有的網路介面。
-f:強迫關機,不呼叫shutdown這個指令。
-p: 當關機的時候順便做關閉電源的動作。
-d:關閉系統,但不留下紀錄。 
4.命令說明
halt就是呼叫shutdown -h。halt執行時,殺死應用程序,執行sync(將存於buffer中的資料強制寫入硬碟中)系統呼叫,檔案系統寫操作完成後就會停止核心。若系統的 執行級別為0或6,則關閉系統;否則以shutdown指令(加上-h引數)來取代。 
(四)    reboot
1.作用
reboot命令的作用是重新啟動計算機,它的使用許可權是系統管理者。
2.格式
reboot [-n] [-w] [-d] [-f] [-i]
3.主要引數
-n: 在重開機前不做將記憶體資料寫回硬碟的動作。
-w: 並不會真的重開機,只是把記錄寫到/var/log/wtmp檔案裡。
-d: 不把記錄寫到/var/log/wtmp檔案裡(-n這個引數包含了-d)。
-i: 在重開機之前先把所有與網路相關的裝置停止。
(五)    install
1.作用
install命令的作用是安裝或升級軟體或備份資料,它的使用許可權是所有使用者。
2.格式
(1)install [選項]... 來源 目的地
(2)install [選項]... 來源... 目錄
(3)install -d [選項]... 目錄...
在前兩種格式中,會將<來源>複製至<目的地>或將多個<來源>檔案複製至已存在的<目錄>,同 時設定許可權模式及所有者/所屬組。在第三種格式中,會建立所有指定的目錄及它們的主目錄。長選項必須用的引數在使用短選項時也是必須的。
3.主要引數
--backup[=CONTROL]:為每個已存在的目的地檔案進行備份。
-b:類似 --backup,但不接受任何引數。
-c:(此選項不作處理)。
-d,--directory:所有引數都作為目錄處理,而且會建立指定目錄的所有主目錄。
-D:建立<目的地>前的所有主目錄,然後將<來源>複製至 <目的地>;在第一種使用格式中有用。
-g,--group=組:自行設定所屬組,而不是程序目前的所屬組。
-m,--mode=模式:自行設定許可權模式 (像chmod),而不是rwxr-xr-x。
-o,--owner=所有者:自行設定所有者 (只適用於超級使用者)。
-p,--preserve-timestamps:以<來源>檔案的訪問/修改時間作為相應的目的地檔案的時間屬性。
-s,--strip:用strip命令刪除symbol table,只適用於第一及第二種使用格式。
-S,--suffix=字尾:自行指定備份檔案的<字尾>。
-v,--verbose:處理每個檔案/目錄時印出名稱。
--help:顯示此幫助資訊並離開。
--version:顯示版本資訊並離開。
(六)    mount
1.作用
mount命令的作用是載入檔案系統,其使用許可權是超級使用者或/etc/fstab中允許的使用者。
2.格式
mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir
3.主要引數
-h:顯示輔助資訊。
-v:顯示資訊,通常和-f用來除錯。
-a:將/etc/fstab中定義的所有檔案系統掛上。
-F:這個命令通常和-a一起使用,它會為每一個mount的動作產生一個行程負責執行。在系統需要掛上大量NFS檔案系統時可以加快載入的速度。
-f:通常用於除錯。它會使mount不執行實際掛上的動作,而是模擬整個掛上的過程,通常會和-v一起使用。
-t vfstype:顯示被載入檔案系統的型別。
-n:一般而言,mount掛上後會在/etc/mtab中寫入一筆資料,在系統中沒有可寫入檔案系統的情況下,可以用這個選項取消這個動作。
4.應用技巧
在Linux和Unix系統上,所有檔案都是作為一個大型樹(以/為根)的一部分訪問的。要訪問CD-ROM上的檔案,需要將CD-ROM裝置掛裝 在檔案樹中的某個掛裝點。如果發行版安裝了自動掛裝包,那麼這個步驟可自動進行。在Linux中,如果要使用硬碟、光碟機等儲存裝置,就得先將它載入,當儲存裝置掛上了之後,就可以把它當成一個目錄來訪問。掛上一個裝置使用mount命令。在使用mount這個指令時,至少要先知道下列三種資訊:要載入物件 的檔案系統型別、要載入物件的裝置名稱及要將裝置載入到哪個目錄下。
(1)Linux可以識別的檔案系統
◆ Windows 95/98常用的FAT 32檔案系統:vfat ;
◆ Win NT/2000 的檔案系統:ntfs ;
◆ OS/2用的檔案系統:hpfs;
◆ Linux用的檔案系統:ext2、ext3;
◆ CD-ROM光碟用的檔案系統:iso9660。
雖然vfat是指FAT 32系統,但事實上它也相容FAT 16的檔案系統型別。
(2)確定裝置的名稱
在Linux中,裝置名稱通常都存在/dev裡。這些裝置名稱的命名都是有規則的,可以用“推理”的方式把裝置名稱找出來。例如,/dev /hda1這個 IDE裝置,hd是Hard Disk(硬碟)的,sd是SCSI Device,fd是Floppy Device(或是Floppy Disk?)。a代表第一個裝置,通常IDE介面可以接上4個IDE裝置(比如4塊硬碟)。所以要識別IDE硬碟的方法分別就是hda、hdb、hdc、 hdd。hda1中的“1”代表hda的第一個硬碟分割槽 (partition),hda2代表hda的第二主分割槽,第一個邏輯分割槽從hda5開始,依此類推。此外,可以直接檢查/var/log /messages檔案,在該檔案中可以找到計算機開機後系統已辨認出來的裝置代號。
(3)查詢掛接點
在決定將裝置掛接之前,先要檢視一下計算機是不是有個/mnt的空目錄,該目錄就是專門用來當作掛載點(Mount Point)的目錄。建議在/mnt裡建幾個/mnt/cdrom、/mnt/floppy、/mnt/mo等目錄,當作目錄的專用掛載點。舉例而言,如要掛載下列5個裝置,其執行指令可能如下 (假設都是Linux的ext2系統,如果是Windows XX請將ext2改成vfat):
軟盤 ===>mount -t ext2 /dev/fd0 /mnt/floppy
cdrom ===>mount -t iso9660 /dev/hdc /mnt/cdrom
SCSI cdrom ===>mount -t iso9660 /dev/sdb /mnt/scdrom
SCSI cdr ===>mount -t iso9660 /dev/sdc /mnt/scdr
不過目前大多數較新的Linux發行版本(包括紅旗 Linux、中軟Linux、Mandrake Linux等)都可以自動掛裝檔案系統,但Red Hat Linux除外。
(七)    umount
1.作用
umount命令的作用是解除安裝一個檔案系統,它的使用許可權是超級使用者或/etc/fstab中允許的使用者。
2.格式
unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir
3.使用說明
umount命令是mount命令的逆操作,它的引數和使用方法和mount命令是一樣的。Linux掛裝CD-ROM後,會鎖定CD—ROM,這 樣就不能用CD-ROM面板上的Eject按鈕彈出它。但是,當不再需要光碟時,如果已將/cdrom作為符號連結,請使用umount/cdrom來卸 裝它。僅當無使用者正在使用光碟時,該命令才會成功。該命令包括了將帶有當前工作目錄當作該光碟中的目錄的終端視窗。
(八)    chsh
1.作用
chsh命令的作用是更改使用者shell設定,它的使用許可權是所有使用者。
2.格式
chsh [ -s ] [ -list] [ --help ] [ -v ] [ username ]
3.主要引數
-l:顯示系統所有Shell型別。
-v:顯示Shell版本號。
4.應用技巧
前面介紹了Linux下有多種Shell,一般預設的是Bash,如果想更換Shell型別可以使用chsh命令。先輸入賬戶密碼,然後輸入新Shell型別,如果操作正確系統會顯示“Shell change”。其介面一般如下:
Changing fihanging shell for cao
Password:
New shell [/bin/bash]: /bin/tcsh
上面程式碼中,[ ]內是目前使用的Shell。普通使用者只能修改自己的Shell,超級使用者可以修改全體使用者的Shell。要想查詢系統提供哪些Shell,可以使用chsh -l 命令,見圖1所示。

圖1 系統可以使用的Shell型別
從圖1中可以看到,筆者系統中可以使用的Shell有bash(預設)、csh、sh、tcsh四種。
(九)    exit
1.作用
exit命令的作用是退出系統,它的使用許可權是所有使用者。
2.格式
exit
3.引數
exit命令沒有引數,執行後退出系統進入登入介面。
(十)    last
1.作用
last命令的作用是顯示近期使用者或終端的登入情況,它的使用許可權是所有使用者。通過last命令檢視該程式的log,管理員可以獲知誰曾經或企圖連線系統。
2.格式
1ast[—n][-f file][-t tty] [—h 節點][-I —IP][—1][-y][1D]
3.主要引數
-n:指定輸出記錄的條數。
-f file:指定用檔案file作為查詢用的log檔案。
-t tty:只顯示指定的虛擬控制檯上登入情況。
-h 節點:只顯示指定的節點上的登入情況。
-i IP:只顯示指定的IP上登入的情況。
-1:用IP來顯示遠端地址。
-y:顯示記錄的年、月、日。
-ID:知道查詢的使用者名稱。
-x:顯示系統關閉、使用者登入和退出的歷史。
(十一)    動手練習
上面介紹了Linux安裝和登入命令,下面介紹幾個例項,動手練習一下剛才講過的命令。
1.一次執行多個命令
在一個命令列中可以執行多個命令,用分號將各個命令隔開即可,例如:
#last -x;halt
上面程式碼表示在顯示系統關閉、使用者登入和退出的歷史後關閉計算機。
2.利用mount掛裝檔案系統訪問Windows系統
許多Linux發行版本現在都可以自動載入Vfat分割槽來訪問Windows系統,而Red Hat各個版本都沒有自動載入Vfat分割槽,因此還需要進行手工操作。
mount可以將Windows分割槽作為Linux的一個“檔案”掛接到Linux的一個空資料夾下,從而將Windows的分割槽和/mnt這個目 錄聯絡起來。因此,只要訪問這個資料夾就相當於訪問該分割槽了。首先要在/mnt下建立winc資料夾,在命令提示符下輸入下面命令:
#mount -t vfat /dev/hda1 /mnt/winc
即表示將Windows的C分割槽掛到Liunx的/mnt/winc目錄下。這時,在/mnt/winc目錄下就可以看到Windows中C盤的內 容了。使用類似的方法可以訪問Windows系統的D、E盤。在Linux系統顯示Windows的分割槽一般順序這樣的:hda1為C盤、hda5為D 盤、 hda6為E盤……以此類推。上述方法可以檢視Windows系統有一個很大的問題,就是Windows中的所有中文檔名或資料夾名全部顯示為問號 “?”,而英文卻可以正常顯示。我們可以通過加入一些引數讓它顯示中文。還以上面的操作為例,此時輸入命令:
#mount -t vfat -o iocharset=cp936 /dev/hda1 /mnt/winc
現在它就可以正常顯示中文了。
3.使用mount加掛閃盤上的檔案系統
在Linux下使用閃盤非常簡單。Linux對USB裝置有很好的支援,當插入閃盤後,閃盤被識別為一個SCSI盤,通常輸入以下命令:
# mount /dev/sda1 /usb
就能夠加掛閃盤上的檔案系統。
(十二)    小知識
Linux命令與Shell
所謂Shell,就是命令解釋程式,它提供了程式設計介面,可以使用程式來程式設計。學習Shell對於Linux初學者理解Linux系統是非常重要 的。 Linux系統的Shell作為作業系統的外殼,為使用者提供了使用作業系統的介面。Shell是命令語言、命令解釋程式及程式設計語言的統稱,是使用者和 Linux核心之間的介面程式。如果把Linux核心想象成一個球體的中心,Shell就是圍繞核心的外層。當從Shell或其它程式向Linux傳遞命令時,核心會做出相應的反應。Shell在Linux系統的作用和MS DOS下的COMMAND.COM和Windows 95/98 的 explorer.exe相似。Shell雖然不是系統核心的一部分,只是系統核心的一個外延,但它能夠呼叫系統核心的大部分功能。因此,可以說 Shell是Unux/Linux最重要的實用程式。
Linux中的Shell有多種型別,其中最常用的是Bourne Shell(sh)、C Shell(csh)和Korn Shell(ksh)。大多數Linux發行版本預設的Shell是Bourne Again Shell,它是Bourne Shell的擴充套件,簡稱bash,與Bourne Shell完全向後相容,並且在Bourne Shell的基礎上增加了很多特性。bash放在/bin/bash中,可以提供如命令補全、命令編輯和命令歷史表等功能。它還包含了很多C Shell和Korn Shell中的優點,有靈活和強大的程式設計介面,同時又有很友好的使用者介面。Linux系統中200多個命令中有40個是bash的內部命令,主要包括 exit、less、lp、kill、 cd、pwd、fc、fg等。


二、檔案處理
Linux 系統資訊存放在檔案裡,檔案與普通的公務檔案類似。每個檔案都有自己的名字、內容、存放地址及其它一些管理資訊,如檔案的使用者、檔案的大小等。檔案可以是一封信、一個通訊錄,或者是程式的源語句、程式的資料,甚至可以包括可執行的程式和其它非正文內容。 Linux檔案系統具有良好的結構,系統提供了很多檔案處理程式。這裡主要介紹常用的檔案處理命令。
(一)    file
1.作用
根據檔案內容判斷檔案型別,使用許可權是所有使用者。
2.格式
file通過探測文
file [options] 檔名
3.[options]主要引數
-v:在標準輸出後顯示版本資訊,並且退出。
-z:探測壓縮過的檔案型別。
-L:允許符合連線。
-f name:從檔案namefile中讀取要分析的檔名列表。
4.簡單說明
使用file命令可以知道某個檔案究竟是二進位制(ELF格式)的可執行檔案, 還是Shell Script檔案,或者是其它的什麼格式。file能識別的檔案型別有目錄、Shell指令碼、英文文字、二進位制可執行檔案、C語言原始檔、文字檔案、DOS的可執行檔案。
5.應用例項
如果我們看到一個沒有後綴的檔案grap,可以使用下面命令:
$ file grap
grap: English text
此時系統顯示這是一個英文文字檔案。需要說明的是,file命令不能探測包括圖形、音訊、視訊等多媒體檔案型別。
(二)    mkdir
1.作用
mkdir命令的作用是建立名稱為dirname的子目錄,與MS DOS下的md命令類似,它的使用許可權是所有使用者。
2.格式
mkdir [options] 目錄名
3.[options]主要引數
-m, --mode=模式:設定許可權<模式>,與chmod類似。
-p, --parents:需要時建立上層目錄;如果目錄早已存在,則不當作錯誤。
-v, --verbose:每次建立新目錄都顯示資訊。
--version:顯示版本資訊後離開。
4.應用例項
在進行目錄建立時可以設定目錄的許可權,此時使用的引數是“-m”。假設要建立的目錄名是“tsk”,讓所有使用者都有rwx(即讀、寫、執行的許可權),那麼可以使用以下命令:
$ mkdir -m 777 tsk
(三)    grep
1.作用
grep命令可以指定檔案中搜索特定的內容,並將含有這些內容的行標準輸出。grep全稱是Global Regular Expression Print,表示全域性正則表示式版本,它的使用許可權是所有使用者。
2.格式
grep [options]
3.主要引數
[options]主要引數:
-c:只輸出匹配行的計數。
-I:不區分大小寫(只適用於單字元)。
-h:查詢多檔案時不顯示檔名。
-l:查詢多檔案時只輸出包含匹配字元的檔名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文字的錯誤資訊。
-v:顯示不包含匹配文字的所有行。
pattern正則表示式主要引數:
\:忽略正則表示式中特殊字元的原有含義。
^:匹配正則表示式的開始行。
$: 匹配正則表示式的結束行。
\<:從匹配正則表示式的行開始。
\>:到匹配正則表示式的行結束。
[ ]:單個字元,如[A]即A符合要求 。
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
. :所有的單個字元。
* :有字元,長度可以為0。
正則表示式是Linux/Unix系統中非常重要的概念。正則表示式(也稱為“regex”或“regexp”)是一個可以描述一類字串的模式 (Pattern)。如果一個字串可以用某個正則表示式來描述,我們就說這個字元和該正則表示式匹配(Match)。這和DOS中使用者可以使用萬用字元 “*”代表任意字元類似。在Linux系統上,正則表示式通常被用來查詢文字的模式,以及對文字執行“搜尋-替換”操作和其它功能。
4.應用例項
查詢DNS服務是日常工作之一,這意味著要維護覆蓋不同網路的大量IP地址。有時IP地址會超過2000個。如果要檢視nnn.nnn網路地址,但 是卻忘了第二部分中的其餘部分,只知到有兩個句點,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]\{3 \}\.[0-0\{3\}\。含義是任意數字出現3次,後跟句點,接著是任意數字出現3次,後跟句點。
$grep '[0-9 ]\{3 \}\.[0-0\{3\}\' ipfile
補充說明,grep家族還包括fgrep和egrep。fgrep是fix grep,允許查詢字串而不是一個模式;egrep是擴充套件grep,支援基本及擴充套件的正則表示式,但不支援\q模式範圍的應用及與之相對應的一些更加規範的模式。
(四)    dd
1.作用
dd命令用來複制檔案,並根據引數將資料轉換和格式化。
2.格式
dd [options]
3.[opitions]主要引數
bs=位元組:強迫 ibs=<位元組>及obs=<位元組>。
cbs=位元組:每次轉換指定的<位元組>。
conv=關鍵字:根據以逗號分隔的關鍵字表示的方式來轉換檔案。
count=塊數目:只複製指定<塊數目>的輸入資料。
ibs=位元組:每次讀取指定的<位元組>。
if=檔案:讀取<檔案>內容,而非標準輸入的資料。
obs=位元組:每次寫入指定的<位元組>。
of=檔案:將資料寫入<檔案>,而不在標準輸出顯示。
seek=塊數目:先略過以obs為單位的指定<塊數目>的輸出資料。
skip=塊數目:先略過以ibs為單位的指定<塊數目>的輸入資料。
4.應用例項
dd命令常常用來製作Linux啟動盤。先找一個可引導核心,令它的根裝置指向正確的根分割槽,然後使用dd命令將其寫入軟盤:
$ rdev vmlinuz /dev/hda
$dd if=vmlinuz of=/dev/fd0
上面程式碼說明,使用rdev命令將可引導核心vmlinuz中的根裝置指向/dev/hda,請把“hda”換成自己的根分割槽,接下來用dd命令將該核心寫入軟盤。
(五)    find
1.作用
find命令的作用是在目錄中搜索檔案,它的使用許可權是所有使用者。
2.格式
find [path][options][expression]
path指定目錄路徑,系統從這裡開始沿著目錄樹向下查詢檔案。它是一個路徑列表,相互用空格分離,如果不寫path,那麼預設為當前目錄。
3.主要引數
[options]引數:
-depth:使用深度級別的查詢過程方式,在某層指定目錄中優先查詢檔案內容。
-maxdepth levels:表示至多查詢到開始目錄的第level層子目錄。level是一個非負數,如果level是0的話表示僅在當前目錄中查詢。
-mindepth levels:表示至少查詢到開始目錄的第level層子目錄。
-mount:不在其它檔案系統(如Msdos、Vfat等)的目錄和檔案中查詢。
-version:列印版本。
[expression]是匹配表示式,是find命令接受的表示式,find命令的所有操作都是針對表示式的。它的引數非常多,這裡只介紹一些常用的引數。
—name:支援統配符*和?。
-atime n:搜尋在過去n天讀取過的檔案。
-ctime n:搜尋在過去n天修改過的檔案。
-group grpoupname:搜尋所有組為grpoupname的檔案。
-user 使用者名稱:搜尋所有檔案屬主為使用者名稱(ID或名稱)的檔案。
-size n:搜尋檔案大小是n個block的檔案。
-print:輸出搜尋結果,並且列印。
4.應用技巧
find命令查詢檔案的幾種方法:
(1)根據檔名查詢
例如,我們想要查詢一個檔名是lilo.conf的檔案,可以使用如下命令:
find / -name lilo.conf
find命令後的“/”表示搜尋整個硬碟。
(2)快速查詢檔案
根據檔名查詢檔案會遇到一個實際問題,就是要花費相當長的一段時間,特別是大型Linux檔案系統和大容量硬碟檔案放在很深的子目錄中時。如果我 們知道了這個檔案存放在某個目錄中,那麼只要在這個目錄中往下尋找就能節省很多時間。比如smb.conf檔案,從它的檔案字尾“.conf”可以判斷這 是一個配置檔案,那麼它應該在/etc目錄內,此時可以使用下面命令:
find /etc -name smb.conf
這樣,使用“快速查詢檔案”方式可以縮短時間。
(3)根據部分檔名查詢方法
有時我們知道只某個檔案包含有abvd這4個字,那麼要查詢系統中所有包含有這4個字元的檔案可以輸入下面命令:
find / -name '*abvd*'
輸入這個命令以後,Linux系統會將在/目錄中查詢所有的包含有abvd這4個字元的檔案(其中*是萬用字元),比如abvdrmyz等符合條件的檔案都能顯示出來。
(4) 使用混合查詢方式查詢檔案
find命令可以使用混合查詢的方法,例如,我們想在/etc目錄中查詢大於500000位元組,並且在24小時內修改的某個檔案,則可以使用-and (與)把兩個查詢引數連結起來組合成一個混合的查詢方式。
find /etc -size +500000c -and -mtime +1
(六)    mv
1.作用
mv命令用來為檔案或目錄改名,或者將檔案由一個目錄移入另一個目錄中,它的使用許可權是所有使用者。該命令如同DOS命令中的ren和move的組合。
2.格式
mv[options] 原始檔或目錄 目標檔案或目錄
3.[options]主要引數
-i:互動方式操作。如果mv操作將導致對已存在的目標檔案的覆蓋,此時系統詢問是否重寫,要求使用者回答“y”或“n”,這樣可以避免誤覆蓋檔案。
-f:禁止互動操作。mv操作要覆蓋某個已有的目標檔案時不給任何指示,指定此引數後i引數將不再起作用。
4.應用例項
(1)將/usr/cbu中的所有檔案移到當前目錄(用“.”表示)中:
$ mv /usr/cbu/ * .
(2)將檔案cjh.txt重新命名為wjz.txt:
$ mv cjh.txt wjz.txt
(七)    ls
1.作用
ls命令用於顯示目錄內容,類似DOS下的dir命令,它的使用許可權是所有使用者。
2.格式
ls [options][filename]
3.options主要引數
-a, --all:不隱藏任何以“.” 字元開始的專案。
-A, --almost-all:列出除了“ . ”及 “.. ”以外的任何專案。
--author:印出每個檔案著作者。
-b, --escape:以八進位制溢位序列表示不可列印的字元。
--block-size=大小:塊以指定<大小>的位元組為單位。
-B, --ignore-backups:不列出任何以 ~ 字元結束的專案。
-f:不進行排序,-aU引數生效,-lst引數失效。
-F, --classify:加上檔案型別的指示符號 (*/[email protected]| 其中一個)。
-g:like -l, but do not list owner。
-G, --no-group:inhibit display of group information。
-i, --inode:列出每個檔案的inode號。
-I, --ignore=樣式:不印出任何符合Shell萬用字元<樣式>的專案。
-k:即--block-size=1K。
-l:使用較長格式列出資訊。
-L, --dereference:當顯示符號連結的檔案資訊時,顯示符號連結所指示的物件,而並非符號連結本身的資訊。
-m:所有專案以逗號分隔,並填滿整行行寬。
-n, --numeric-uid-gid:類似-l,但列出UID及GID號。
-N, --literal:列出未經處理的專案名稱,例如不特別處理控制字元。
-p, --file-type:加上檔案型別的指示符號 (/[email protected]| 其中一個)。
-Q, --quote-name:將專案名稱括上雙引號。
-r, --reverse:依相反次序排列。
-R, --recursive:同時列出所有子目錄層。
-s, --size:以塊大小為序。
4.應用舉例
ls 命令是Linux系統使用頻率最多的命令,它的引數也是Linux命令中最多的。使用ls命令時會有幾種不同的顏色,其中藍色表示是目錄,綠色表示是可執 行檔案,紅色表示是壓縮檔案,淺藍色表示是連結檔案,加粗的黑色表示符號連結,灰色表示是其它格式檔案。ls最常使用的是ls- l,見圖1所示。

圖1 使用ls-l命令
檔案型別開頭是由10個字元構成的字串。其中第一個字元表示檔案型別,它可以是下述型別之一:-(普通檔案)、d(目錄)、l(符號連結)、 b(塊裝置檔案)、c(字元裝置檔案)。後面的9個字元表示檔案的訪問許可權,分為3組,每組3位。第一組表示檔案屬主的許可權,第二組表示同組使用者的許可權, 第三組表示其他使用者的許可權。每一組的三個字元分別表示對檔案的讀(r)、寫(w)和執行許可權(x)。對於目錄,表示進入許可權。s表示當檔案被執行時,把該 檔案的UID 或GID賦予執行程序的UID(使用者ID)或GID(組 ID)。t表示設定標誌位(留在記憶體,不被換出)。如果該檔案是目錄,那麼在該目錄中的檔案只能被超級使用者、目錄擁有者或檔案屬主刪除。如果它是可執行文 件,那麼在該檔案執行後,指向其正文段的指標仍留在記憶體。這樣再次執行它時,系統就能更快地裝入該檔案。接著顯示的是檔案大小、生成時間、檔案或命令名 稱。
(八)    diff
1.作用
diff命令用於兩個檔案之間的比較,並指出兩者的不同,它的使用許可權是所有使用者。
2.格式
diff [options] 原始檔 目標檔案
3.[options]主要引數
-a:將所有檔案當作文字檔案來處理。
-b:忽略空格造成的不同。
-B:忽略空行造成的不同。
-c:使用綱要輸出格式。
-H:利用試探法加速對大檔案的搜尋。
-I:忽略大小寫的變化。
-n --rcs:輸出RCS格式。
(九)    cmp
1.作用
cmp(“compare”的縮寫)命令用來簡要指出兩個檔案是否存在差異,它的使用許可權是所有使用者。
2.格式
cmp[options] 檔名
3.[options]主要引數
-l: 將位元組以十進位制的方式輸出,並方便將兩個檔案中不同的以八進位制的方式輸出。
(十)    cat
1.作用
cat(“concatenate”的縮寫)命令用於連線並顯示指定的一個和多個檔案的有關資訊,它的使用許可權是所有使用者。
2.格式
cat [options] 檔案1 檔案2……
3.[options]主要引數
-n:由第一行開始對所有輸出的行數編號。
-b:和-n相似,只不過對於空白行不編號。
-s:當遇到有連續兩行以上的空白行時,就代換為一行的空白行。
4.應用舉例
(1)cat命令一個最簡單的用處是顯示文字檔案的內容。例如,我們想在命令列看一下README檔案的內容,可以使用命令:
$ cat README 
(2)有時需要將幾個檔案處理成一個檔案,並將這種處理的結果儲存到一個單獨的輸出檔案。cat命令在其輸入上接受一個或多個檔案,並將它們作為一 個單獨的檔案列印到它的輸出。例如,把README和INSTALL的檔案內容加上行號(空白行不加)之後,將內容附加到一個新文字檔案File1 中:
$ cat README INSTALL File1
(3)cat還有一個重要的功能就是可以對行進行編號,見圖2所示。這種功能對於程式文件的編制,以及法律和科學文件的編制很方便,列印在左邊的行號使得參考文件的某一部分變得容易,這些在程式設計、科學研究、業務報告甚至是立法工作中都是非常重要的。

圖2 使用cat命令/etc/named.conf檔案進行編號
對行進行編號功能有-b(只能對非空白行進行編號)和-n(可以對所有行進行編號)兩個引數:
$ cat -b /etc/named.conf
(十一)    ln
1.作用
ln命令用來在檔案之間建立連結,它的使用許可權是所有使用者。
2.格式
ln [options] 原始檔 [連結名]
3.引數
-f:鏈結時先將原始檔刪除。
-d:允許系統管理者硬鏈結自己的目錄。
-s:進行軟鏈結(Symbolic Link)。
-b:將在鏈結時會被覆蓋或刪除的檔案進行備份。
連結有兩種,一種被稱為硬連結(Hard Link),另一種被稱為符號連結(Symbolic Link)。預設情況下,ln命令產生硬連結。
硬連線指通過索引節點來進行的連線。在Linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點號 (Inode Index)。在Linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允許一個檔案擁有多個有效路徑名,這樣使用者 就可以建立硬連線到重要檔案,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連線。只刪除一個連線並不影響索引節點本身和 其它的連線,只有當最後一個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案才會被真正刪除。
與硬連線相對應,Lnux系統中還存在另一種連線,稱為符號連線(Symbilc Link),也叫軟連線。軟連結檔案有點類似於Windows的快捷方式。它實際上是特殊檔案的一種。在符號連線中,檔案實際上是一個文字檔案,其中包含的有另一檔案的位置資訊。
(十二)    動手練習
上面我們介紹了Linux檔案處理命令,下面介紹幾個例項,大家可以動手練習一下剛才講過的命令。
1.利用符號連結快速訪問關鍵目錄
符號連結是一個非常實用的功能。假設有一些目錄或檔案需要頻繁使用,但由於Linux的檔案和目錄結構等原因,這個檔案或目錄在很深的子目錄中。比 如, Apache Web伺服器文件位於系統的/usr/local/httpd/htdocs中,並且不想每次都要從主目錄進入這樣一個長的路徑之中(實際上,這個路徑也 非常不容易記憶)。
為了解決這個問題,可以在主目錄中建立一個符號連結,這樣在需要進入該目錄時,只需進入這個連結即可。
為了能方便地進入Web伺服器(/usr/local/httpd/htdocs)文件所在的目錄,在主目錄下可以使用以下命令:
$ ln -s /usr/local/httpd/htdocs gg
這樣每次進入gg目錄就可訪問Web伺服器的文件,以後如果不再訪問Web伺服器的文件時,刪除gg即可,而真正的Web伺服器的文件並沒有刪除。
2.使用dd命令將init.rd格式的root.ram內容匯入記憶體
dd if=/dev/fd0 of=floppy.fd
dd if=root.ram of=/dev/ram0 #
3.grep命令系統呼叫
grep是Linux/Unix中使用最廣泛的命令之一,許多Linux系統內部都可以呼叫它。
(1)如果要查詢目錄列表中的目錄,方法如下:
$ ls -l | grep '∧d'
(2)如果在一個目錄中查詢不包含目錄的所有檔案,方法如下:
$ ls -l | grep '∧[∧d]'
(3)用find命令呼叫grep,如所有C原始碼中的“Chinput”,方法如下:
$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print


三、系統管理
對於Linux系統來說,無論是中央處理器、記憶體、磁碟驅動器、鍵盤、滑鼠,還是使用者等都是檔案,Linux系統管理的命令是它正常執行的核心。熟悉了Linux常用的檔案處理命令以後,這一講介紹對系統和使用者進行管理的命令。
(一)    df
1.作用
df命令用來檢查檔案系統的磁碟空間佔用情況,使用許可權是所有使用者。
2.格式
df [options]
3.主要引數
-s:對每個Names引數只給出佔用的資料塊總數。
-a:遞迴地顯示指定目錄中各檔案及子目錄中各檔案佔用的資料塊數。若既不指定-s,也不指定-a,則只顯示Names中的每一個目錄及其中的各子目錄所佔的磁碟塊數。
-k:以1024位元組為單位列出磁碟空間使用情況。
-x:跳過在不同檔案系統上的目錄不予統計。
-l:計算所有的檔案大小,對硬連結檔案則計算多次。
-i:顯示inode資訊而非塊使用量。
-h:以容易理解的格式印出檔案系統大小,例如136KB、254MB、21GB。
-P:使用POSIX輸出格式。
-T:顯示檔案系統型別。
4.說明
df命令被廣泛地用來生成檔案系統的使用統計資料,它能顯示系統中所有的檔案系統的資訊,包括總容量、可用的空閒空間、目前的安裝點等。
超級許可權使用者使用df命令時會發現這樣的情況:某個分割槽的容量超過了100%。這是因為Linux系統為超級使用者保留了10%的空間,由其單獨支 配。也就是說,對於超級使用者而言,他所見到的硬碟容量將是110%。這樣的安排對於系統管理而言是有好處的,當硬碟被使用的容量接近100%時系統管理員 還可以正常工作。
5.應用例項
Linux支援的檔案系統非常多,包括JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、vfat、MSDOS等。使用df -T命令檢視磁碟空間時還可以得到檔案系統的資訊:
#df -T
檔案系統 型別 容量 已用 可用 已用% 掛載點
/dev/hda7 reiserfs 5.2G 1.6G 3.7G 30% /
/dev/hda1 vfat 2.4G 1.6G 827M 66% /windows/C
/dev/hda5 vfat 3.0G 1.7G 1.3G 57% /windows/D
/dev/hda9 vfat 3.0G 2.4G 566M 82% /windows/E
/dev/hda10 NTFS 3.2G 573M 2.6G 18% /windows/F
/dev/hda11 vfat 1.6G 1.5G 23M 99% /windows/G
從上面除了可以看到磁碟空間的容量、使用情況外,分割槽的檔案系統型別、掛載點等資訊也一覽無遺。
(二)    top
1.作用
top命令用來顯示執行中的程式程序,使用許可權是所有使用者。
2.格式
top [-] [d delay] [q] [c] [S] [s] [i] [n]
3.主要引數
d:指定更新的間隔,以秒計算。
q:沒有任何延遲的更新。如果使用者有超級使用者,則top命令將會以最高的優先序執行。
c:顯示程序完整的路徑與名稱。
S:累積模式,會將己完成或消失的子行程的CPU時間累積起來。
s:安全模式。
i:不顯示任何閒置(Idle)或無用(Zombie)的行程。
n:顯示更新的次數,完成後將會退出top。
4.說明
top命令是Linux系統管理的一個主要命令,通過它可以獲得許多資訊。這裡我們結合圖1來說明它給出的資訊。
圖1 top命令的顯示
在圖1中,第一行表示的專案依次為當前時間、系統啟動時間、當前系統登入使用者數目、平均負載。第二行顯示的是所有啟動的程序、目前執行的、掛起 (Sleeping)的和無用(Zombie)的程序。第三行顯示的是目前CPU的使用情況,包括系統佔用的比例、使用者使用比例、閒置(Idle)比例。 第四行顯示實體記憶體的使用情況,包括總的可以使用的記憶體、已用記憶體、空閒記憶體、緩衝區佔用的記憶體。第五行顯示交換分割槽使用情況,包括總的交換分割槽、使用 的、空閒的和用於快取記憶體的大小。第六行顯示的專案最多,下面列出了詳細解釋。
PID(Process ID):程序標示號。
USER:程序所有者的使用者名稱。
PR:程序的優先級別。
NI:程序的優先級別數值。
VIRT:程序佔用的虛擬記憶體值。
RES:程序佔用的實體記憶體值。
SHR:程序使用的共享記憶體值。
S:程序的狀態,其中S表示休眠,R表示正在執行,Z表示僵死狀態,N表示該程序優先值是負數。
%CPU:該程序佔用的CPU使用率。
%MEM:該程序佔用的實體記憶體和總記憶體的百分比。
TIME+:該程序啟動後佔用的總的CPU時間。
Command:程序啟動的啟動命令名稱,如果這一行顯示不下,程序會有一個完整的命令列。
top命令使用過程中,還可以使用一些互動的命令來完成其它引數的功能。這些命令是通過快捷鍵啟動的。
<空格>:立刻重新整理。
P:根據CPU使用大小進行排序。
T:根據時間、累計時間排序。
q:退出top命令。
m:切換顯示記憶體資訊。
t:切換顯示程序和CPU狀態資訊。
c:切換顯示命令名稱和完整命令列。
M:根據使用記憶體大小進行排序。
W:將當前設定寫入~/.toprc檔案中。這是寫top配置檔案的推薦方法。
可以看到,top命令是一個功能十分強大的監控系統的工具,對於系統管理員而言尤其重要。但是,它的缺點是會消耗很多系統資源。
5.應用例項
使用top命令可以監視指定使用者,預設情況是監視所有使用者的程序。如果想檢視指定使用者的情況,在終端中按“U”鍵,然後輸入使用者名稱,系統就會切換為指定使用者的程序執行介面,見圖2所示。
圖2 使用top命令監視指定使用者
(三)    free
1.作用
free命令用來顯示記憶體的使用情況,使用許可權是所有使用者。
2.格式
free [-b|-k|-m] [-o] [-s delay] [-t] [-V]
3.主要引數
-b -k -m:分別以位元組(KB、MB)為單位顯示記憶體使用情況。
-s delay:顯示每隔多少秒數來顯示一次記憶體使用情況。
-t:顯示記憶體總和列。
-o:不顯示緩衝區調節列。
4.應用例項
free命令是用來檢視記憶體使用情況的主要命令。和top命令相比,它的優點是使用簡單,並且只佔用很少的系統資源。通過-S引數可以使用free命令不間斷地監視有多少記憶體在使用,這樣可以把它當作一個方便實時監控器。
#free -b -s5
使用這個命令後終端會連續不斷地報告記憶體使用情況(以位元組為單位),每5秒更新一次。
(四)    quota
1.作用
quota命令用來顯示磁碟使用情況和限制情況,使用許可權超級使用者。
2.格式
quota [-g][-u][-v][-p] 使用者名稱 組名
3.引數
-g:顯示使用者所在組的磁碟使用限制。
-u:顯示使用者的磁碟使用限制。
-v:顯示沒有分配空間的檔案系統的分配情況。
-p:顯示簡化資訊。
4.應用例項
在企業應用中磁碟配額非常重要,普通使用者要學會看懂自己的磁碟使用情況。要查詢自己的磁碟配額可以使用下面命令(下例中使用者賬號是caojh):
#quota caojh
Disk quotas for user caojh(uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda3 58 200000 400000 41 500 1000
以上顯示ID號為502的caojh賬號,檔案個數設定為500~1000個,硬碟空間限制設定為200MB~400MB。一旦磁碟配額要用完時,就需要刪除一些垃圾檔案或向系統管理員請求追加配額。
(五)    at
1.作用
at命令用來在指定時刻執行指定的命令序列。
2.格式
at [-V] [-q x] [-f file] [-m] time
3.主要引數
-V:顯示標準錯誤輸出。
-q:許多佇列輸出。
-f:從檔案中讀取作業。
-m:執行完作業後傳送電子郵件到使用者。
time:設定作業執行的時間。time格式有嚴格的要求,由小時、分鐘、日期和時間的偏移量組成,其中日期的格式為MM.DD.YY,MM是分鐘,DD是日期,YY是指年份。偏移量的格式為時間+偏移量,單位是minutes、hours和days。
4.應用例項
#at -f data 15:30 +2 days
上面命令表示讓系統在兩天後的17:30執行檔案data中指明的作業。
(六)    lp
1.作用
lp是列印檔案的命令,使用許可權是所有使用者。
2.格式
lp [-c][-d][-m][-number][-title][-p]
3.主要引數
-c:先拷貝檔案再列印。
-d:列印佇列檔案。
-m:列印結束後傳送電子郵件到使用者。
-number:列印份數。
-title:列印標題。
-p:設定列印的優先級別,最高為100。
4.應用例項
(1)使用lp命令列印多個檔案
#lp 2 3 4
request id is 11 (3 file(s))
其中2、3、4分別是檔名;“request id is 11 (3 file(s)) ”表示這是第11個列印命令,依次列印這三個檔案。
(2)設定列印優先級別
#lp lp -d LaserJet -p 90 /etc/aliases
通過新增“-p 90”,規定了列印作業的優先順序為90。它將在優先順序低於90的列印作業之前列印,包括沒有設定優先順序的作業,預設優先順序是50
(七)    useradd
1.作用
useradd命令用來建立使用者帳號和建立使用者的起始目錄,使用許可權是超級使用者。
2.格式
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
3.主要引數
-c:加上備註文字,備註文字儲存在passwd的備註欄中。 
-d:指定使用者登入時的啟始目錄。
-D:變更預設值。
-e:指定賬號的有效期限,預設表示永久有效。
-f:指定在密碼過期後多少天即關閉該賬號。
-g:指定使用者所屬的群組。
-G:指定使用者所屬的附加群組。
-m:自動建立使用者的登入目錄。
-M:不要自動建立使用者的登入目錄。
-n:取消建立以使用者名稱稱為名的群組。
-r:建立系統賬號。
-s:指定使用者登入後所使用的shell。
-u:指定使用者ID號。
4.說明
useradd可用來建立使用者賬號,它和adduser命令是相同的。賬號建好之後,再用passwd設定賬號的密碼。使用useradd命令所建立的賬號,實際上是儲存在/etc/passwd文字檔案中。
5.應用例項
建立一個新使用者賬戶,並設定ID:
#useradd caojh -u 544
需要說明的是,設定ID值時儘量要大於500,以免衝突。因為Linux安裝後會建立一些特殊使用者,一般0到499之間的值留給bin、mail這樣的系統賬號。
(八)    groupadd
1.作用
groupadd命令用於將新組加入系統。
2.格式
groupadd [-g gid] [-o]] [-r] [-f] groupname
3.主要引數
-g gid:指定組ID號。
-o:允許組ID號,不必惟一。
-r:加入組ID號,低於499系統賬號。
-f:加入已經有的組時,發展程式退出。
4.應用例項
建立一個新組,並設定組ID加入系統:
#groupadd -g 344 cjh
此時在/etc/passwd檔案中產生一個組ID(GID)是344的專案。
(九)    kill
1.作用
kill命令用來中止一個程序。
2.格式
kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
3.引數
-s:指定傳送的訊號。
-p:模擬傳送訊號。
-l:指定訊號的名稱列表。
pid:要中止程序的ID號。
Signal:表示訊號。
4.說明
程序是Linux系統中一個非常重要的概念。Linux是一個多工的作業系統,系統上經常同時執行著多個程序。我們不關心這些程序究竟是如何分配的,或者是核心如何管理分配時間片的,所關心的是如何去控制這些程序,讓它們能夠很好地為使用者服務。
Linux 作業系統包括三種不同型別的程序,每種程序都有自己的特點和屬性。互動程序是由一個Shell啟動的程序。互動程序既可以在前臺執行,也可以在後臺執行。 批處理程序和終端沒有聯絡,是一個程序序列。監控程序(也稱系統守護程序)時Linux系統啟動時啟動的程序,並在後臺執行。例如,httpd是著名的 Apache伺服器的監控程序。
kill命令的工作原理是,向Linux系統的核心傳送一個系統操作訊號和某個程式的程序標識號,然後系統核心就可以對程序標識號指定的程序進行操 作。比如在top命令中,我們看到系統執行許多程序,有時就需要使用kill中止某些程序來提高系統資源。在講解安裝和登陸命令時,曾提到系統多個虛擬控 制臺的作用是當一個程式出錯造成系統死鎖時,可以切換到其它虛擬控制檯工作關閉這個程式。此時使用的命令就是kill,因為kill是大多數Shell內 部命令可以直接呼叫的。
5.應用例項
(1)強行中止(經常使用殺掉)一個程序標識號為324的程序:
#kill -9 324
(2)解除Linux系統的死鎖
在Linux 中有時會發生這樣一種情況:一個程式崩潰,並且處於死鎖的狀態。此時一般不用重新啟動計算機,只需要中止(或者說是關閉)這個有問題的程式即可。當 kill處於X-Window介面時,主要的程式(除了崩潰的程式之外)一般都已經正常啟動了。此時開啟一個終端,在那裡中止有問題的程式。比如,如果 Mozilla瀏覽器程式出現了鎖死的情況,可以使用kill命令來中止所有包含有Mozolla瀏覽器的程式。首先用top命令查處該程式的PID,然 後使用kill命令停止這個程式:
#kill -SIGKILL XXX
其中,XXX是包含有Mozolla瀏覽器的程式的程序標識號。
(3)使用命令回收記憶體
我們知道記憶體對於系統是非常重要的,回收記憶體可以提高系統資源。kill命令可以及時地中止一些“越軌”的程式或很長時間沒有相應的程式。例如,使用top命令發現一個無用 (Zombie) 的程序,此時可以使用下面命令:
#kill -9 XXX
其中,XXX是無用的程序標識號。
然後使用下面命令:
#free
此時會發現可用記憶體容量增加了。
(4)killall命令
Linux下還提供了一個killall命令,可以直接使用程序的名字而不是程序標識號,例如:
# killall -HUP inetd
(十)    crontab
1.作用
使用crontab命令可以修改crontab配置檔案,然後該配置由cron公用程式在適當的時間執行,該命令使用許可權是所有使用者。
2.格式
crontab [ -u user ] 檔案
crontab [ -u user ] { -l | -r | -e }
3.主要引數
-e:執行文字編輯器來設定時程表,內定的文字編輯器是vi。
-r:刪除目前的時程表。