版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
遠(yuǎn)見<遠(yuǎn)見<Linux應(yīng)用開發(fā)班>“黑色經(jīng)典”系列之《嵌入式Linux應(yīng)用程序開發(fā)詳解第2 Linux基礎(chǔ)命本章目LinuxLinux命令行環(huán)境)才能充分地體現(xiàn)出來。在本章將幫助讀者學(xué)會如下內(nèi)容掌握S 熟練使用Linux中用戶管理命令熟練使用Linux中系統(tǒng)相關(guān)命令熟練使用Linux中文 相關(guān)命熟練使用Linux中打包壓縮相關(guān)命令熟練使用Linux中文件比較合并相關(guān)命令熟練使用Linux中網(wǎng)絡(luò)相關(guān)命令了解Linux的啟動過程深入了解INIT進(jìn)程及其配置文件能夠獨(dú)立完成在Linux中解壓軟學(xué)會添加環(huán)境變量能夠獨(dú)立定制Linux中系統(tǒng)服Linux常用操作命在安裝完Linux再次啟動之后,就可以進(jìn)入到與Windows類似的圖形化界面了。這個界面就是Linux圖形化界面X窗口系統(tǒng)(簡稱X)的一部分。要注意的是,X窗口系統(tǒng)僅僅是Linux上面的一個軟件(或者也可稱為服務(wù)),它不是Linux自身的一部分。雖然現(xiàn)在的X窗口系統(tǒng)已經(jīng)與Linux整合地相當(dāng)好了,但畢竟還不能保證可靠性。另外,X窗口系統(tǒng)是一個相Linux所帶來的高效及高穩(wěn)定性,建議讀者盡可能地使用Linux令行界面,也就是 環(huán)境 是一種Linux中令行解釋程序,就如是DOS下令解釋程序一樣,為用戶提供使用操作系統(tǒng)的接口。它們之的關(guān)系如圖2.1所示。用戶在提示符下輸入令都由S先解釋然后傳給Linux內(nèi)核 是命令語言、命令解釋程序及程序設(shè)計(jì)語言的統(tǒng)稱。它不僅擁有自己內(nèi)建的S 小知 程語言簡單易學(xué),任何在提示符中能鍵 令都能放到一個可執(zhí)行的 程序中。關(guān)于 Linux中運(yùn)行S 環(huán)境。這時屏幕上顯示類似“[sunq@wwwhome]$”的信息,其中,sunq是指系統(tǒng)用戶,而home是指 由于Linux中令非常多,要全部介紹幾乎 同時列出同一類中的其令。由于同一類令都有很大的相似性,因此,讀者通過學(xué)習(xí)本中所列命令,可以很快地掌握其令。格式中帶[]的表明為可選項(xiàng),其他為必選項(xiàng)選項(xiàng)可以多個連帶寫入
圖 本章后面選項(xiàng)參數(shù)列表中加粗的含義是:該選項(xiàng)是非常常用的選項(xiàng)用戶系統(tǒng)相關(guān)命Linux是一個多用戶的操作系統(tǒng),每個用戶又可以屬于不同的用戶組,下面,首先來熟悉一下Linux中的用戶切換和用戶管理的相關(guān)命令。Linux應(yīng)用程序開發(fā)詳解》——2章、Linux用戶切換作變更為其它使用者的,主要用于將普通用戶轉(zhuǎn)變?yōu)槌売脩簦倚栎斎胂鄳?yīng)用戶。格su選項(xiàng)使用者其中的使用者為要變更的對應(yīng)使用者主要選項(xiàng)參主要選項(xiàng)參數(shù)2.1所示表 su命 為該使用者重新登錄,大部分環(huán)境變量(如HOME、 和USER等錄都是以該使用者(USER)USERsu常見參數(shù)列- USER的使用者,并執(zhí)行指令(command) su[root@www示例通過su命令將普通用戶變更為root用戶,并使用選項(xiàng)“-”攜帶root環(huán)境變量使用說在將普通用戶變更為root用戶時建議使用”-”選項(xiàng),這樣可以將root的環(huán)境變量和 在轉(zhuǎn)變?yōu)閞oot權(quán)限后,提示符變?yōu)?小知
Lnux☆PATH☆HOME是系統(tǒng) ☆HISTSIZE☆LOGNAME☆HOSTNAME是指主機(jī)的名稱,若應(yīng)用程序要用到主機(jī)名的話,通常是從這個環(huán)境變量中來 是指當(dāng)前用戶用的是哪種 遠(yuǎn)見<Linux應(yīng)用開發(fā)班>培訓(xùn)遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班>☆MAIL是指當(dāng)前用戶的郵件存放 etho顯示字符串(指定環(huán)境變量)exportenv通過set命令顯示所有本地定義的 變量unset讀者可以試著用“env”命令查看“suroot”和“suroot”用戶管理(useraddLinux中常見用戶管理命令如表2.2所示,本書僅以useraddpasswd為例進(jìn)行詳細(xì)講解,其令類似,請讀者自行學(xué)習(xí)使用。Linux 令 添加用戶賬號useradd選項(xiàng)]usermod選項(xiàng)]userdel選項(xiàng)]groupadd選項(xiàng)]groupmod選項(xiàng)]groupdel選項(xiàng)]passwd對應(yīng)賬號 顯示用戶ID、組ID和用戶所屬的組列 id[用戶名作
groups組賬號]①useradd:添加用戶賬號②passwd:更改對應(yīng)用戶賬號格①useradd:useradd選項(xiàng)]用戶名②passwd:passwd選項(xiàng)用戶名]其中的用戶名為修改賬號的用戶,若不帶用戶名,缺省為更改當(dāng)前使用者賬號常用參①useradd主要選項(xiàng)參數(shù)見表2.3所示表 useradd命令常見參數(shù)列遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班> --Linux --- (4)使用實(shí)[root@wwwroot]#useradd[root@www(4)使用實(shí)[root@wwwroot]#useradd[root@wwwroot]#passwdNewRetypenewpasswd:allauthenticationtokensupdatedsuccessfully[root@wwwroot]#su-yul[yul@www[yul@wwwyul]$pwd(查看當(dāng) 實(shí)例中先添加了用戶名為yul的用戶,接著又為該用戶設(shè)置了賬號。并從su令 使用說在使用添加用戶時,這兩個命令是一起使用的,其中,useradd必須用root的權(quán)限。而且useradd指令所建立的賬號,實(shí)際上是保存在“/etc/passwd”文本文件中,文件中每一行在缺省情況下,useradd所做的初始化操作包括在“/home” adduser只是useradd的符號(關(guān)于符號的概念在本節(jié)后面會有介紹),兩是相同的passwd還可用于普通用戶修改賬號,Linux并不采用類似windows的回顯(顯示為*號),所以輸入的這些字符用戶是看不見的。最好包括字母、數(shù)字和特殊符號,并且設(shè)成6位以上系統(tǒng)管理命令(psLinux ps選項(xiàng)動態(tài)顯示系統(tǒng)中運(yùn)行的程序(Linux中常見的系統(tǒng)管理命令如Linux ps選項(xiàng)動態(tài)顯示系統(tǒng)中運(yùn)行的程序( PID(進(jìn)程號)的進(jìn)程kill選項(xiàng)]進(jìn)程號uname選項(xiàng)crontab選項(xiàng)Linuxshutdown選項(xiàng)時間作
①ps:顯示當(dāng)前系統(tǒng)中由該用戶運(yùn)行的進(jìn)程列表②kill:輸出特定的信號給指定 格①ps:ps選項(xiàng)]②kill:kill[選項(xiàng) 進(jìn)程號(PID)kill給該進(jìn)程①ps主要選①ps主要選參數(shù)見表2.5ps -查看所有進(jìn)程及其PID(進(jìn)程號)、系統(tǒng)時間、命令詳 - 除可顯示-efCPU-②kill主要項(xiàng)參數(shù)見表2.6kill 參數(shù)含---[root@wwwroot]# PIDPPIDCSTIME TIME100200500:00:05210200500:00:00300200500:00:00遠(yuǎn)見<Linux應(yīng)用開發(fā)班>培訓(xùn) 0200500:00:00 0200500:00:0021787102005017:1600:00:00/usr/local/bin/ntpd-c00:00:00grep[root@wwwroot]#kill[root@wwwroot]#ps-ef|grep 2178921739017:16 00:00:00grep7421ntp有該進(jìn)程號的進(jìn)程使用說ps在使用中通??梢耘c其他一些命令結(jié)合起來使用,主要作用是提高效率psw33顯示很長令行了。例如:ps–auxwww管道是Linux中信息通信的重要方式。它是把一個程序的輸出直接連接到另一個程序的輸入,而不經(jīng)過任何中間文件。管道線是指連接二個或 程序管道的通路。在s 小知識示管道線。如前例子中的ps–ef|grepntp所示,ps–ef的結(jié)果直接輸入到grepntp的程序中(關(guān)grep命令在后面會有詳細(xì)的介紹)。grep、pr、sortwc都可以在上述管道線上工作。讀者磁盤相關(guān)命令Linux中與磁盤相 令如表2.7所示,本書僅以fdisk為例進(jìn)行講解Linux選項(xiàng) free選項(xiàng)df選項(xiàng)du選項(xiàng)(1)作
fdisk[-fdisk可以查看硬盤分區(qū)情況,并可對硬盤進(jìn)行分區(qū)管理,這里主要向讀者介紹查看硬習(xí)使用fdisk進(jìn)行硬盤分區(qū)格習(xí)使用fdisk進(jìn)行硬盤分區(qū)格fdisk[-使用實(shí)[root@sunq fdisk-Disk/dev/hda:40.0GB,40007761920240heads,63sectors/track,5168Units=cylindersof *512 遠(yuǎn)見<Linux應(yīng)用開發(fā)班>培訓(xùn)遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班>Device*1+cW95FAT32fW95Ext'd+W95+W95 52208182Linux可以看出,使用”fdisk–l”列出了文件系統(tǒng)的分區(qū)情況使用說使用fdisk必須擁有root權(quán)限IDE硬盤對應(yīng)的設(shè)備名稱分別為hda、hdb、hdchdd,SCSI硬盤對應(yīng)的設(shè)備名稱則sda、sdb、…此外,hda1代表hda的第一個硬盤分區(qū),hda2代表hda的第二個分區(qū),依此類推通過查看/var/log/messages文件,可以找到Linux系統(tǒng)已辨認(rèn)出來的設(shè)備代號磁盤掛載命令作掛載文件系統(tǒng),它的使用權(quán)限是超級用戶或/etc/fstab中允許的使用者。正如1.2.1節(jié)中所 對應(yīng)的過程,而掛載點(diǎn)是指掛載在文件樹中的位置。mount命令 下,并且由于Linux中把設(shè)備都當(dāng)作文件一樣使用,因此,mount命令也可以掛載不同的設(shè)備。通常,在Linux下“/mnt” 格mount選項(xiàng)類型設(shè)備文件名載點(diǎn)常見參mount -依照/etc/fstabmount -依照/etc/fstab--t種:vfat、ext3、ext2、iso9660、nfsmount幾- 會和-v
使用實(shí)使用mount命令主要通過以下幾個步驟認(rèn)是否為Linux可以識別的文件系統(tǒng),Linux可識別的文件系統(tǒng)只要是以下幾種Linux應(yīng)用程序開發(fā)詳解》——2章、LinuxWindows95/98常用的FAT32文件系統(tǒng):vfatWinNT/2000的文件系統(tǒng):ntfsOS/2用的文件系統(tǒng):hpfsLinux用的文件系統(tǒng):ext2、ext3、nfsCD-ROM光盤用的文件系統(tǒng):iso9660②確定設(shè)備的名稱,確定設(shè)備名稱可通過使用命令“fdisk-l”查看找掛接點(diǎn)必須確定掛載點(diǎn)已經(jīng)存在,也就是在“/mnt”下的相應(yīng) 已經(jīng)存在,一般建議在 ,現(xiàn)在有些新版本的Linux(如Linux中軟Linux、MandrakeLinux)都可自動掛載文件系統(tǒng),RedHat僅可自動掛載光驅(qū)④掛載文件系統(tǒng)如下所示[root@sunqmnt]#mount-tvfat/dev/hda1[root@sunqmnt]#cd24.s03e02.pdtv.xvid-sfm.rmvbsandSettingsProgram…C盤是原先筆者Windows系統(tǒng)的啟動盤。可見,在掛載了C盤之后,可直接下的C盤的內(nèi)容使用完該設(shè)備文件后可使用命令umount將其卸載[root@sunqmnt]#umount[root@sunq[root@sunqmnt]#cd[root@sunqc]#可見,此 “/mnt/c”下為空。Windows下的C盤成功卸載LinuxU一般U盤為SCSI格式的硬盤,其格式為vfat格式,其設(shè)備號可通過“fdisk–l”進(jìn)行查看,假小知識若設(shè)備名為“/dev/sda1”mount-tvfat/dev/sda1文 相關(guān)命由于Linux中有關(guān)文件 作改變工 格遠(yuǎn)見<遠(yuǎn)見<Linux應(yīng)用開發(fā)班>cd路徑(3)使用實(shí)[root@wwwuclinux]#cd其中的路徑為要改變的工 ,(3)使用實(shí)[root@wwwuclinux]#cd[root@wwwsunq]#pwd[root@wwwsunq]#/home/sunq/該實(shí)例中變更工 為“/home/sunq/”,在后面的pwd(顯示當(dāng) )的結(jié)果中可以看出使用說 該命令可以使用通配符可使用“cd–”可以回到前次工 “./”代表當(dāng) ,“../”代表上 作列 的內(nèi)容格式:ls選項(xiàng)文件 ls主要選ls主要選項(xiàng)參數(shù)見2.9所ls -列 ---
組 (4)使用實(shí)[yuling@www/]$ls-totaldrwxr-xr-24096Mar2005drwxr-xr- 3-rw-r--r- 14096Apr320050Apr242002drwxr-xr- 3-rw-r--r- 14096Apr320050Apr242002…Linux應(yīng)用程序開發(fā)詳解》——2章、Linux顯示格式說明如下文件類型與權(quán)限數(shù)文件屬主文件屬組文件大小修改的時間名使用說ls的常見參數(shù)中,-l(長文件名顯示格式)的選項(xiàng)是最為常見的。可以詳細(xì)顯示出 若想顯示出所有“.”開頭的文件,可以使用-a,這在嵌入式的開發(fā)中很常用注意LinuxWindows一樣通過文件擴(kuò)展名來標(biāo)識的,而是通過設(shè)置文件相應(yīng)作創(chuàng)建一 格mkdir選項(xiàng)路常見參mkdir主要選項(xiàng)參數(shù)如表2.10所 --
mkdir對新 od命令(在本節(jié)后會有詳細(xì)說明)設(shè) 使用實(shí)[root@wwwsunq]#mkdir-p./ [root@wwwmy]#pwd(查看當(dāng)前 o/my多級 [root@wwwmy]#mkdir-m777./why[root@wwwmy]#ls-ltotal 2 4096Jan1409:24 使用說 作遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班>連接并顯示指定的一個和多個文件的有關(guān)信息格cat[選項(xiàng)]1文件其中的文件1、文件2為要顯示的多個文件常見參cat命令的常見參數(shù)如2.11所示表cat -- 和-n(4)使用實(shí)[yul@wwwyul]$cat-n 1#includevoid{printf("o!Thisismy56#includevoid{ o!Thisisyour10在該實(shí)例中,指定對o1.c和o2.c進(jìn)行輸出,并指定行號cp、mv作①cp:將給出的文件 到另一文件 中②mv:為文件 改名或?qū)⑽募梢?移入另一 中③rm:刪除一 中的一個或多個文件 格①cp:cp選項(xiàng)源文件目標(biāo)文件。②mv:mv選項(xiàng)源文件目標(biāo)文件。③rm:rm選項(xiàng)文件。常見參①主要選項(xiàng)參數(shù)見表2.12所示cp 參數(shù)含- 保留、文件屬性,并其 ,其作用等于dpr選項(xiàng)的組遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班>---y----y-此時cp除源文件的內(nèi)容外,還將把其修改時間和權(quán)限也到新文件 文件,此時cp將遞歸 - ②mv主要選項(xiàng)參數(shù)如表2.13所示表 mv命令常見參數(shù)列 參數(shù)含- mvn mv操作要覆蓋某已有的目標(biāo)文件時不給任何指示,在指定此選項(xiàng)后,i③主要選項(xiàng)參數(shù)如表2.14所示 rm --(4)使用實(shí)①-(4)使用實(shí)① rm-該實(shí)例使用-a選該實(shí)例使用-a選項(xiàng)將下還有原有的文件②下的所有文到當(dāng)下。而此時在原 o]#mv-i./my/why/該實(shí)例中把該實(shí)例中把下的所有文件移至當(dāng),則下文件被自動刪③。 –r-irm:descendintodirectory'./why'?yrm:remove'./why/my.c'?y遠(yuǎn)見<遠(yuǎn)見<Linux應(yīng)用開發(fā)班>rm:removedirectory'./why'?該實(shí)例使用“-r”選項(xiàng)刪除 下所有內(nèi)容,系統(tǒng)會進(jìn)行確認(rèn)是否刪除使用說①cp:該命令把指定的源文件到目標(biāo)文件或把多個源文件到目 中② 當(dāng)?shù)诙€參數(shù)是已存在 名稱時,mv命令將各參數(shù)指定的源文件均移至目 中在跨文件系統(tǒng)移動文件時,mv先,再將原有文件刪除,而鏈至該文件的也③如果沒有使用-r選項(xiàng),則rm不會刪 使用該命令時一旦文件被刪除,它是不能被恢復(fù)的,所以最好使用-i參數(shù)chown作①chown:修改文件所有者和組別②chgrp:改變文件的組 格①chown:chown選項(xiàng)]...文件所有者[所有者組名文件②chgrp:chgrp[選項(xiàng)]... 常見參chownchgrp chownchgrp的常見參數(shù)意義相同,其主chownchgrp 使用實(shí)
詳盡地描述每個file實(shí)際改變了哪些所 [root@wwwsunq]#ls--rwxr-xr-x 40966月42005uClinux-可以看出,這是一個文件,它的文件擁有者是 ,具有可讀寫和執(zhí)行的權(quán)限,它屬的用戶組是也只有可讀和執(zhí)行的權(quán)限Linux應(yīng)用程序開發(fā)詳解》——2章、Linux首首先使用chown將文件所有者改為root[root@wwwsunq]#chownrootuClinux-dist.tar[root@wwwsunq]#ls -rwxr-xr-x15 40966月42005uClinux-可以看出,此時,該文件擁有者變?yōu)榱藃oot,它所屬文件用戶組不變接接著使用chgrp將文件用戶組變?yōu)閞oot[root@wwwsunq]#chgrprootuClinux-dist.tar[root@wwwsunq]#ls -rwxr-xr-x15 40966月42005uClinux-使用說使用chownchgrp必須擁有root權(quán)限小技巧在進(jìn)行有關(guān)文件的操作時,若想避免輸入冗長的文件,在文件名沒有重復(fù)的情況下可以使用作改變文件的權(quán)限格od可使用符號標(biāo)記進(jìn)行更改和八進(jìn)制數(shù)指定更改兩種方式,因此它的格式也有兩種①符號標(biāo)記 od[選項(xiàng)]…符號權(quán)限[符號權(quán)限]…文間要用逗號分開表示,若沒有顯 則表示不作更改②八進(jìn)制數(shù): od[選項(xiàng)] 選項(xiàng)參od主要選項(xiàng)參數(shù)如表2.16所示odod --使用實(shí)od涉及文件的權(quán)限,在此對相關(guān)的概念進(jìn)行簡單的回顧在1.3.1節(jié)中已經(jīng)提到,文件的權(quán)限可表示成:- 的權(quán)限:讀(r)、寫(w)和運(yùn)行(x)。三個不同的用戶級別:文件擁有者(u)、所屬的用戶組(g)和系統(tǒng)里的其他用戶(o)。在此,可增加一個用戶級別a(all)來表示所有這Mar242005oda+rx,u+w[root@www[root@wwwsunq]# 1 [root@wwwsunq]# .tgz,其權(quán)限如下所示例Mar242005oda+rx,u+w[root@www[root@wwwsunq]# 1 [root@wwwsunq]# .tgz,其權(quán)限如下所示例如原先筆者系統(tǒng)中有文件 1 Mar242005 可見,在執(zhí)行了od之后,文件擁有者除擁有所有用戶都有的可讀和執(zhí)行的權(quán)限外,“1”,即“rw-”“rw-”和“r--”的八進(jìn)制表示為“110”、“110”、“100”,把這個2進(jìn)制串轉(zhuǎn)換成對應(yīng)的8 轉(zhuǎn)換 進(jìn)轉(zhuǎn)換 進(jìn)制 應(yīng)制制數(shù)就是6、6、4,也就是說該文件的權(quán)限為664(三位八進(jìn)制數(shù))。這樣對于轉(zhuǎn)化 轉(zhuǎn)換 進(jìn)轉(zhuǎn)換 進(jìn)制 應(yīng)制限
3657同上例,原先筆者系統(tǒng)中有文件genromfs-0.5.1.tar.gz,其權(quán)限如下所示[root@wwwsunq]# 1sunq 20543Dec292004genromfs-0.5.1.tar.gz[root@wwwsunq]# od765genromfs-0.5.1.tar.gz[root@wwwsunq]#ls -rwxrw-r- 1 20543Dec292004genromfs-可見,在執(zhí)行了od765之后,該文件的擁有者權(quán)限、文件組權(quán)限和其他用戶權(quán)限都使用使 od必須具有root權(quán)限想odo+x .tgz是什么意思?它所對應(yīng)的8進(jìn)制數(shù)指定更改應(yīng)如何表示遠(yuǎn)見<Linux應(yīng)用開發(fā)班>培訓(xùn)Linux應(yīng)用程序開發(fā)詳解》——2章、Linux作在指定文件中搜索特定的內(nèi)容,并將含有這些內(nèi)容的行標(biāo)準(zhǔn)輸出格grep選項(xiàng)]格式[文件及路徑其中的格式是指要搜索的內(nèi)容格式,若缺省“文件及路徑”則默認(rèn)表示在當(dāng) 下搜索常見參grep主要選項(xiàng)參數(shù)如表2.18所示grep--grep-------使用實(shí)
[root@wwwsunq]#grep o"/-Binaryfile./iscit2005/備份/iscit2004.sql oworld$2=0…該本例中,“o”是要搜索的內(nèi)容,“/-r”是指定文件,表示搜索 下的所有文件使用說 下形式列出:“grep:sound:Isadirectory”這會使“grep”的輸出難于閱讀。但有兩種解決的方法:①明確要求搜索 :grep–r(正如上例中所示②忽略 :grep-dskip當(dāng)預(yù)料到有許多輸出,可以通過管道將其轉(zhuǎn)到“l(fā)ess”(分頁器)上閱讀:如grep"h"-r|less分頁閱讀grep特殊用法greppattern1|pattern2files:顯示匹配pattern1pattern2的行g(shù)reppattern1files|greppattern2:顯示既匹配pattern1又匹配pattern2的行小知識在文件命令中經(jīng)常會使用pattern正則表達(dá)式,它是可以描述一類字符串的模式(Pattern),如 遠(yuǎn)見<Linux應(yīng)用開發(fā)班>培訓(xùn)遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班>中用戶可以使用通配符“*”Linux系統(tǒng)上,正則表達(dá)式通常被用來查:單個字符,如[A]A[-]:范圍,如[A-Z]A、B、CZ*0作在指 中搜索文件,它的使用權(quán)限是所有用戶格find[路徑][選項(xiàng)][描述 其中的描述是匹配表達(dá)式,是find命令接受的表達(dá)式常見參find -[選項(xiàng)]主find --
不在其他文件系統(tǒng)(Msdos、Vfat等)
[描述]主要參數(shù)如2.20所示find --(4)(4)使用實(shí)
用戶名:搜索文件屬主為用戶名(ID或名稱)的文件[root@wwwsunq]#find./-name在該實(shí)例中使用了-name的選項(xiàng)支持通配符Linux應(yīng)用程序開發(fā)詳解》——2章、Linux使用說 find命令可以使用混合查找的方法,例如,想在/etc 中查找大于500000字節(jié),并且在24小時內(nèi)修改的某個文件,則可以使用-and(與)把兩個查找參數(shù)起來組合成一個混合的查找方式,如“find/etc-size c-and-mtime+1”。作尋找時就只需查詢這個數(shù)據(jù)庫,而不必實(shí)際深入系統(tǒng)之中了。因此其速度比find快很多格locate選項(xiàng)- (3)locate主(3)locate主選項(xiàng)參數(shù)如表2.21所示locate ---proc(4)(4)使用實(shí) [root@wwwsunq]#locateissue-U./[root@wwwsunq]#updatedb[root@wwwsunq]#locate-r… 找。通過運(yùn)行可以發(fā)現(xiàn)locate的運(yùn)行速度非???。(5)使用說locate命令所查詢的數(shù)據(jù)庫由updatedb程序來更新的,而updatedb是由cron daemon周期性建立的,但若所找到的是最近才建立或剛更名的,可能會找不到,因?yàn)閡pdatedb默認(rèn)每天運(yùn)行一次,用戶可以由修改crontab(etc/crontab)來更新周期值。作為某一個文件在另外一個位置建立一個符號。當(dāng)需要在不同 用到相同的文時,Linux允許用戶不用在每一個需要 下文件用ln命令即可,這樣就不必重復(fù)地占用磁盤空間格ln[選項(xiàng)]目常見參(4)使用實(shí)[root@wwwuclinux]#ln-s../genromfs-0.5.1.tar.gz./[root@wwwuclinux]#ls-los建立(4)使用實(shí)[root@wwwuclinux]#ln-s../genromfs-0.5.1.tar.gz./[root@wwwuclinux]#ls-lototallrwxrwxrwx1root 24Jan14 o->../genromfs-該實(shí)例建立了當(dāng) o文件與上 之間的符號連接,可以看見, ols–l中的第一位為“l(fā)”,表示符 ,同時還顯示 的源文件(5)使用說ln命令會保持每一 都會發(fā)生相同的變化ln 又 和 兩種 就是上面所說的ln-s****,它只會在用戶選定的位置上生成一個文件的鏡像不會重復(fù)占用磁盤空間,平時使用較多的都是 硬是不帶參數(shù)的ln****,它會在用戶選定的位置上生成一個和源文件大小相同文件,無論是軟還是硬,文件都保持同步變化壓縮打包相關(guān)命Linux中打包壓縮的如表2.22所示,本書以gziptar為例進(jìn)行講解bzip2recoverbz2bzip2recoverbz2用來修復(fù)損壞的.bz2.bz2.bz2文件的壓縮(或解壓)
Linux
bunzip2[選項(xiàng)].bz2壓縮文件
.gz解壓被gzip壓縮過的文件winzip壓縮的.zip文件
gzip選項(xiàng)]壓縮(解壓縮)gunzip選項(xiàng).gzunzip選項(xiàng)zip 早期的壓縮或解壓程序(壓縮后文件名為.Z)compress[選項(xiàng) 文 對文 tar[選項(xiàng)][打包后文件名]文 列遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班>Linux應(yīng)用程序開發(fā)詳解》——2章、Linux作對文件進(jìn)行壓縮和解壓縮,而且gzip根據(jù)文件類型可自動識別壓縮或解壓格gzip[選項(xiàng)]壓縮(解壓縮)的文件名常見參(4)使用實(shí)[root@wwwmy]#[root@wwwmy]#lsgzip(4)使用實(shí)[root@wwwmy]#[root@wwwmy]#ls ------
gzip [root@www gzip- pressed 該實(shí)例 下的 o.c”文件進(jìn)行壓縮,選項(xiàng)“-l”列出了壓縮比使用說使用gzip壓縮只能壓縮單個文件,而不能壓縮 作對文 進(jìn)行打包或解包在此需要對打包和壓縮這兩個概念進(jìn)行區(qū)分。打包是指將一些文件 變成一個總Liuxgzip)格tar[選項(xiàng)][打包后文件名]文 列表遠(yuǎn)見<Linux應(yīng)用開發(fā)班>培訓(xùn)tar可自動根據(jù)文件名識別打包或解包動作,其中打包后文件名為用戶自定義的打包后文件名 主要參tar主要選項(xiàng)參數(shù)如表2.24所示- bzip2來壓縮打包文件,與-xbzip2tar ---tar -------gzip來壓縮打包文件,與-xgzip(4)使用實(shí)[root@wwwhome]#tar-cvfyul.tar./yul/.bash_profile[root@wwwhome]#ls-l-rw-r--r- 1 10240Jan1415:01該實(shí)例將 下的文件加以打包,其中選項(xiàng)“-v”在屏幕上輸出了打包的具體過程[root@wwwsunq]#tar-zxvflinux-2.6.11.tar.gz 遠(yuǎn)見<Linux應(yīng)用開發(fā)班>培訓(xùn)Linux應(yīng)用程序開發(fā)詳解》——2章、Linux…該實(shí)例用選項(xiàng)“-z”調(diào)用gzip,并-x聯(lián)用時完成解壓縮(5)使用說tar命令除了用于常規(guī)的打包之外,使用更為頻繁的是用選項(xiàng)“-z”或“-j”調(diào)用gzipbzip2(Linux中另一種解壓工具)完成對各種不同文件的解壓。表2.25對Linux中常見類型的文件解壓命令做一總結(jié)。
Linux tartartar.deb(Debain中的文件格
安裝:dpkg解壓:dpkg-debfsys-
presso.Z gunzipo.gz tarxvZfo.tar.Z tarxvzfo.tar.gz tarjxvfo.tar.bz2 安裝:rpm-iorpm 解壓:rpm2cpioo.rpm 安裝:dpkg-io.deb安裝:rpmtartartar安裝:rpmtartartarunzip比較合并文件相關(guān)命作比較兩個不同的文件或不 下的兩個同名文件功能,并生成補(bǔ)丁文件格diff[選項(xiàng)文件1文件diff比較文件1和文件2的不同之處,并按照選項(xiàng)所指定的格式加以輸出。diff的格式分進(jìn)行進(jìn)行詳細(xì)地講解。選項(xiàng)缺省時,diff默認(rèn)使用混合命令格式(3)主要參diff主要選項(xiàng)數(shù)如表2.26所示diff - - -
遠(yuǎn)見<Linux應(yīng)用開發(fā)班>培訓(xùn)-u,---以下有兩個文o1.c以下有兩個文o1.co2.c o!Thisisyour}以下實(shí)例主要講解了各種不同格式的比較和補(bǔ)丁文件的創(chuàng)建方法要格式比{#includevoid}#include<stdio.h>voidmain(){ o!Thisismy
compress來壓縮歸檔文件,與-xcompress 首先使用舊版上下文格式進(jìn)行比較[root@wwwyul]#diff-co1.c*** SatJan1416:24:51--- SatJan1416:54:41***1,5#includevoid{ printf("o!Thisismy}#include<stdio.h>voidmain(){ o!Thisisyour}遠(yuǎn)見<Linux應(yīng)用開發(fā)班>培訓(xùn)遠(yuǎn)見<遠(yuǎn)見<Linux應(yīng)用開發(fā)班>Linux應(yīng)用程序開發(fā)詳解》——2章、Linux接著使用新版的上下文格式進(jìn)行比較[root@wwwyul]#diff- SatJan1416:24:51 SatJan1416:54:41@@-1,5+1,5@@#include<stdio.h>voidmain(){- o!Thisismy+ o!Thisisyour接著使用新版的上下文格式進(jìn)行比較[root@wwwyul]#diff- SatJan1416:24:51 SatJan1416:54:41@@-1,5+1,5@@#include<stdio.h>voidmain(){- o!Thisismy+ o!Thisisyour}接下來使用命令格式進(jìn)行比較[root@wwwyul]#diff-e o!Thisisyour可以看出,命令符格式輸出時僅輸出了不同的行,其中命令符“4c”中的數(shù)字表示行數(shù)字母的含義為a——添加,b——刪除,c——更改。因此,-e選項(xiàng)令符表示:若要把o1.c變?yōu)閛2.c,就需要把o1.c的第四行改為顯示出的“printf(“o!Thisisyourhome!\n”);”[root@wwwyul]#diff-f o!Thisisyourdiff選項(xiàng)缺省的情況下,輸出結(jié)果如下所示[root@wwwyul]# o!Thisismy o!Thisisyour可以看出,diff缺省情況下的輸出格式充分顯示了如何將o1.c轉(zhuǎn)化為 o2.c的方法,相對應(yīng)的補(bǔ)丁文件。見下例[root@wwwyul]#[root@wwwyul]#vio2.c o!Thisismy相對應(yīng)的補(bǔ)丁文件。見下例[root@wwwyul]#[root@wwwyul]#vio2.c o!Thisismy o!Thisisyour可以看出,使用缺省選項(xiàng)創(chuàng)建補(bǔ)丁文件的內(nèi)容和前面使用缺省選項(xiàng)的輸出內(nèi)容是一樣的上例中所使用的”>“是輸出重定向。通常在Linux上執(zhí)行一個s 望再次使用這些數(shù)據(jù)時就不得不重新輸入。同樣,用戶對輸出信息不能做的處理,只能小知識 機(jī)制和管道(在1.3.1的小知識中已有介紹)。其中,輸入重定向是指把命令(或可執(zhí)行程序)述例子中所用到的把“diffo1.co2.c”的結(jié)果重定向到o.patch文件中。這就大大增作命令跟diff配合使用,把生成的補(bǔ)丁文件應(yīng)用到現(xiàn)有代碼上格patch選項(xiàng)patch的文件[patch文件]]常用的格式為:patchpnum[patch文件],其中的-pnum是選項(xiàng)參數(shù),在后面會詳細(xì)介紹常見參patch主要選項(xiàng)參數(shù)如表2.27所示patch -- dir遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班>-把輸入的補(bǔ)丁文件看作是ed-剝離文件名中的前NUM-把輸入的補(bǔ)丁文件看作是ed-剝離文件名中的前NUM -- patch以下對-punm選項(xiàng)進(jìn)行說明文件使用patch命令)首先查看以下示例(對分文件使用patch命令)diff-ruNaxc.orig/config/cf/Makefile以下是patch文件的頭標(biāo)記---以下是patch文件的頭標(biāo)記+++xc.new/config/cf/Imake.cfFriJan2113:48:44(4)使用實(shí)[root@wwwyul]#diff[root@wwwyul]#patch./o1.co2.cpatchingfile./ [root@wwwyul]]#(4)使用實(shí)[root@wwwyul]#diff[root@wwwyul]#patch./o1.co2.cpatchingfile./ [root@wwwyul]]#vi #include<stdio.h>void{如用戶源碼樹的 是缺省的xc而不是xc.orig,則除了可以把xc.orig移到xc處之外,patch嗎?NUM就是為此而設(shè)的:patch個“/”,也就是說,在此例中,-p1的結(jié)果是config/cf/Makefile,-p2的結(jié)果是cf/Makefile。因此,在此例中就可以用命令cdxc;patch_p1</pathname/xxx.patch完成操作。 o!Thisisyour}在該實(shí)例中,由于patch文件和源文件在同一 在應(yīng)用了patch之后,o1.c的內(nèi)容變?yōu)榱?o2.c的內(nèi)容。使用說如果patch失敗,patch命令會把成功的patch行補(bǔ)上其差異,同時(無條件)生成備份文件和一個.rej文件。.rej文件里是沒有成功提交的patch行,需要手工打上補(bǔ)丁。這種情在多數(shù)情況下,patch程序可以確定補(bǔ)丁文件的格式,當(dāng)它不能識別時,可以使用-c-e、-n或者-u選項(xiàng)來指定輸入的補(bǔ)丁文件的格式。由于只有GNUpatch可以創(chuàng)建和新版上下文格式的patch文件,因此,除非能夠確定補(bǔ)丁所面向的只是那些使用GNU工具的用戶,為了使patch程序能夠正常工作,需要上下文的行數(shù)至少是2行(即至少是有一處差網(wǎng)絡(luò)相關(guān)命Linux下網(wǎng)絡(luò)相關(guān)的常見命令如下表2.28所示,本書僅以ifconfigftp為例進(jìn)行說明Linux 令netstat[-查詢一臺機(jī)器的IP地址和其對應(yīng) Nslookup[IP地址 finger選項(xiàng)使用者用戶@主機(jī)[選項(xiàng)]主機(jī)名/IP地址ifconfig選項(xiàng)網(wǎng)絡(luò)接口作
利用ftp協(xié)議上傳 net協(xié)議瀏覽信息利用ssh登錄對方主機(jī)
ent[選項(xiàng)][IP地址/]ssh[選項(xiàng)][IP地址]用于查看和配置網(wǎng)絡(luò)接口的地址和參數(shù),包括IP地址、網(wǎng)絡(luò)掩碼、廣播地址,它的使用格ifconfig有兩種使用格式,分別用于查看和更改網(wǎng)絡(luò)接口①ifconfig選項(xiàng)網(wǎng)絡(luò)接口]:用來查看當(dāng)前系統(tǒng)的網(wǎng)絡(luò)配置情況② 網(wǎng)絡(luò)接口[選項(xiàng) 地址:用來配置指定接口(如eth0,eth1)IP地址、絡(luò)掩碼、廣播地址等(3)常見參ifconfig第二種格式常見項(xiàng)參數(shù)如表2.29所示ftp命令選項(xiàng)常見參數(shù)列 -eth0broadcastaddresspointopointnetmask使用實(shí)
IP地址遠(yuǎn)見<Linux應(yīng)用開發(fā)班>培訓(xùn)遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班>Linux應(yīng)用程序開發(fā)詳解》——2章、Linux首先,在本例中使用ifconfig的第一種格式來查看網(wǎng)口配置情況[root@sunqworkplace]# Linkencap:EthernetHWaddrinetaddr:0Bcast:55inet6addr:fe80::208:2ff:fee0:c18a/64Scope:LinkUPBROADCASTRUNNINGMULTICASTMTU:1500RXpackets:26931errors:0dropped:0overruns:0TXpackets:3209errors:0dropped:0overruns:0collisions:0RXbytes: (6.3MiB)TXbytes:321302(313.7KiB) Linkencap:Localinetaddr:inet6addr:::1/128UPLOOPBACKRUNNINGMTU:16436RXpackets:2537errors:0dropped:0overruns:0TXpackets:2537errors:0dropped:0overruns:0collisions:0RX (1.9MiB)TX (1.9[root@sunqworkplace]#ifconfig Linkencap:EthernetHWaddrinetaddr:0Bcast:55inet6addr:fe80::208:2ff:fee0:c18a/64Scope:LinkUPBROADCASTRUNNINGMULTICASTMTU:1500RXpackets:27269errors:0dropped:0overruns:0TXpackets:3212errors:0[root@sunqworkplace]#ifconfig Linkencap:EthernetHWaddrinetaddr:0Bcast:55inet6addr:fe80::208:2ff:fee0:c18a/64Scope:LinkUPBROADCASTRUNNINGMULTICASTMTU:1500RXpackets:27269errors:0dropped:0overruns:0TXpackets:3212errors:0dropped:0overruns:0collisions:0RX (6.3MiB)TXbytes:322488(314.9“-a”來查看所有接口(包括非活躍接口)的信息接下來的示 了如何使用ifconfig的第二種格式來改變指定接口的網(wǎng)絡(luò)參數(shù)配置[root@sunq~]#ifconfigeth0down[root@sunq~]#ifconfig Linkencap:Localinetaddr:inet6addr:::1/128UPLOOPBACKRUNNINGMTU:16436RXpackets:1931errors:0dropped:0overruns:0TXpackets:1931errors:0dropped:0overruns:0collisions:0RX (2.4MiB)TX (2.4
在此例在此例中,通過將指定接口的狀態(tài)設(shè)置為DOWN,暫時暫停該接口的工作[root@sunqworkplace]#ifconfigeth042netmask[root@sunqworkplace]# Linkencap:EthernetHWaddrinetaddr:42Bcast:55inet6addr:fe80::208:2ff:fee0:c18a/64Scope:LinkUPBROADCASTRUNNINGMULTICASTMTU:1500RXpackets:1722errors:0dropped:0overruns:0TXpackets:5errors:0dropped:0overruns:0collisions:0RXbytes:147382(143.9KiB)TXbytes:398(398.0從上例可以看出,ifconfig改變了接口eth0IP地址、子網(wǎng)掩碼等,在之后的查看中可以看出確實(shí)發(fā)生了變化使用說ifconfig失效作該命令允許用戶利用ftp協(xié)議上傳和文件格ftp選項(xiàng)主機(jī)名/IP]ftpftp服務(wù)器的過程中使用的。內(nèi)部命令是指成功登錄后進(jìn)行的一系列操作,下面會詳細(xì)列出。若用戶缺省“主機(jī)名/IP”,則可在轉(zhuǎn)入到ftp內(nèi)部命令后繼續(xù)選擇登錄。常見參ftp常見選項(xiàng)參數(shù)如表2.30所示表 ftp命令選項(xiàng)常見參數(shù)列遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班> -顯 -顯 -ftp-- ftp常見內(nèi)部命令如表2.31所示 bin/typebinarycdremote-odmodefile-deleteremote-file
ftp 使用ascii類型傳輸方式,為缺省傳輸模式退出ftp會話過程進(jìn) 主進(jìn) 主 的 主機(jī)文件file-name的存取方式設(shè)置為中斷與服務(wù)器的ftp會話(與open對應(yīng)) 刪除主機(jī)文件 設(shè)置調(diào)試方式,顯示發(fā)送至主機(jī)的每條命 getremote-file[local-
顯 主 ,并將結(jié)果存入本地文件local- 同 主機(jī)的文件remote-file傳至本地硬盤的local- 切換至 mgetremote-刪 mkdirdir-namemputlocal-fileopen在 ftp進(jìn) putlocal-file[remote- 將本地文件local-file傳送至主regetremote-file[local- getlocal-filesizefile-
顯示主機(jī)文件大顯 遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班>首先,在本首先,在本例中使用ftp命令 ”站點(diǎn)[root@sunq~]#Connected 220FTP500'AUTHGSSAPI':commandnot500'AUTHKERBEROS_V4':commandnotKERBEROS_V4rejectedasanauthenticationName :root):331Anonymousaccessallowed,sendidentity(e-mailname)as230Anonymoususerloggedin.RemotesystemtypeisWindows_NT.e-mail227EnteringPassiveMode125Dataconnectionalreadye-mail227EnteringPassiveMode125Dataconnectionalreadyopen;Transfer11-20-05 12-04-05 01-07-06 11-22-05 01-04-06 226Transfer以上使用ftp內(nèi)部命令dir列出了在 下文件 的信息ftp>cd 257/Wrox/Wrox.Beginning.SQL.Feb.2005.eBook-DDU"iscurrent257/Wrox/Wrox.Beginning.SQL.Feb.2005.eBook-DDU"iscurrent以上實(shí)例通過cd命令進(jìn)入相應(yīng)ftp>lcd,可通過pwd命令進(jìn)行驗(yàn)證Localdirectorynowftp>getd-local:d-wbsq01.zipremote:d-200PORTcommand遠(yuǎn)見<遠(yuǎn)見<Linux應(yīng)用開發(fā)班>Linux應(yīng)用程序開發(fā)詳解》——2章、Linux150OpeningASCIImodedataconnectionford- WARNING!WARNING!5350barelinefeedsreceivedinASCIImodeFilemaynothavetransferredcorrectly.226226Transferbytesreceivedin1.7seconds(8.6e+02接下來通過lcd命令首先改變用戶的本地工作 ,也就是希望或上傳的工作 就著通過get命令進(jìn)行文件。由于ftp默認(rèn)使用ASCII模式,因此,若希望改為其他模式如如“bin”,直接輸入bin即可,如下所示200TypesettoI.ftp>bye最后用bye命令退出ftp程序使用說若是需要登錄,則在“Name(**.**.**.**):”處鍵入anonymous,在處鍵入自己的E-mail地址即可若要傳送二進(jìn)制文件,務(wù)必要把模式改為binLinux啟動過程詳在了解了Linux的常見命令之后,下面來詳細(xì)了解Linux的啟動過程。Linux的啟Linux其原理及INIT進(jìn)程。希望讀者能認(rèn)真耐心閱讀,相信在真正掌握這一節(jié)的內(nèi)容之后對Linux C語言已有了一定的基礎(chǔ),因此對以上概用戶開機(jī)啟動Linux過程總體上是這樣的首先當(dāng)用戶打開PC的電源時,CPU將自動進(jìn)入實(shí)模式,并從地址0xFFFF0開始自動執(zhí)行程序代碼,這個地址通常是ROM-BIOS中的地址。這時BIOS進(jìn)行開機(jī)自檢,并按BIOS中設(shè)置的啟動設(shè)備(通常是硬盤)進(jìn)行啟動,接著啟動設(shè)備上安裝的引導(dǎo)程序lilogrub開始引導(dǎo)Linux(也就是啟動設(shè)備的第一個扇區(qū)),這時Linux才獲得了啟接下來的第二階段,Linux首先進(jìn)行內(nèi)核的引導(dǎo),主要完成磁盤引導(dǎo)、機(jī)器系統(tǒng)數(shù)第三階段執(zhí)行init程序(也就是系統(tǒng)初始化工作),init程序調(diào)用了rc.sysinitrc等程序,而rc.sysinit和rc在完成系統(tǒng)初始化和運(yùn)行服務(wù)的任務(wù)后,返回init。之后的第四階段,init啟動mingetty,打開終端供用戶登錄系統(tǒng),用戶登錄成功后進(jìn)入了Linux啟動總體流程圖如圖2.2所示,其中的4個階段分別由同步棒隔開。由于第一階段不涉及Linux自身的啟動過程,因此,下面分別對第二和第三階段進(jìn)行詳細(xì)講解。內(nèi)核引導(dǎo)階
圖 Linux啟動總體流程在grub或lilo等引導(dǎo)程序成功完成引導(dǎo)Linux系統(tǒng)的任務(wù)后,Linux就從它們手中接管了CPU的控制權(quán)。用戶可以從 以及compressed 下的head.S等。首先要介紹一下,Linux的內(nèi)核通常是壓縮過后的,包括如上述提到的那幾個重要的編程序,它們都是在壓縮內(nèi)核vmlinuz中的。因?yàn)長inux中提供的內(nèi)核包含了眾多驅(qū)動和功bootsect階grubvmlinuz后,會根據(jù)bootsect(正好512bytes)把它自身和setup程序段讀到不大于0x90000開始的的內(nèi)存里(注意:在以往的引導(dǎo)協(xié)議里是放在0x90000,但現(xiàn)在有所變化),然后grub會跳過bootsect512bytes的程序段,直接運(yùn)行setup里的第一跳指令。就是說bzImage里bootsect的程序沒有再被執(zhí)行了,而bootsect.S在完成了指令搬移以后就退出了。之后執(zhí)行權(quán)就轉(zhuǎn)到了setup.S的程序中。Linux應(yīng)用程序開發(fā)詳解》——2章、Linuxsetup階setup.S的主要功能就是利用ROMBIOS中斷機(jī)器系統(tǒng)數(shù)據(jù),并將系統(tǒng)參數(shù)(包括內(nèi)存、磁盤等)保存到0x90000~0x901FF開始的內(nèi)存中位置。此外,setup.S還 .S中的代碼包含進(jìn)來,檢測和設(shè)置顯示器和顯示模式最后,它還會設(shè)置CPU的控制寄存器CR0(也稱機(jī)器狀態(tài)字),從而進(jìn)入32位保護(hù)式運(yùn)行,并跳轉(zhuǎn)到絕對地址為0x100000(虛擬地址 +0x100000)處。當(dāng)CPU0x100000時,將執(zhí)行“arch/i386/kernel/head.S”中的startup_32head.S階head.Shead.S核解壓。就如本節(jié)前面提到的,內(nèi)核是通過壓縮的方式放在內(nèi)存中的,head.S通過調(diào)用中定義 press_kernel()函數(shù),將內(nèi)核vmlinuz解壓到0x100000的接下來head.S程序與完成解壓縮工作的head.S程序是不同的,它在源代碼中的位置是arch/i386/kernel/head.S。在完成了初始化之后,head.S就跳轉(zhuǎn)到start_kernel()函數(shù)中去了。main.c階 進(jìn)行內(nèi)核的初始化工作。要注意的是,在初始化之前系統(tǒng)中斷仍然是被的,另外內(nèi)核也處于被鎖定狀態(tài),以保證只有一個CPU用于Linux系統(tǒng)的啟動。start_kernel()的最后,調(diào)用了init()函數(shù),也就是下面要講述的INIT階段init階在加載了內(nèi)核之后,由內(nèi)核執(zhí)行引導(dǎo)的第一個進(jìn)程就是INIT進(jìn)程,該進(jìn)程號始終是“1”。INIT進(jìn)程根據(jù)其配置文件“/etc/inittab”主要完成系統(tǒng)的一系列初始化的任務(wù)。由于該配置文件是INIT進(jìn)程執(zhí)行的惟一依據(jù),因此先對它的格式進(jìn)行統(tǒng)一講解。inittab文件中除了注釋行外,每一行都有如下格式id是配置記錄標(biāo)識符,由1~4個字符組成,對于gettymingetty等其他login程序項(xiàng),要求id與tty的編號相同,否則getty程序?qū)⒉荒苷9ぷ?。runlevels是運(yùn)行級別記錄符,一般使用0~6以及S和s。其中,0、1、6運(yùn)行級別為系統(tǒng)保留:0作為shutdown動作,1作為重啟至單用戶模式,6為重啟;Ss意義相同,表示單用戶模式,且無需inittab文件,因此也不在inittab中出現(xiàn)。7~9級別也是可以使用的,傳統(tǒng)的UNIX系統(tǒng)沒有定義這幾個級別。runlevel可以是并列的多個值,對大多數(shù)action來說,僅當(dāng)runlevel與當(dāng)前運(yùn)行級別匹配action字段用于描述系統(tǒng)執(zhí)行的特定操作,它的常見設(shè)置有:initdefault、sysinit、boot遠(yuǎn)見<Linux應(yīng)用開發(fā)班>培訓(xùn)遠(yuǎn)見遠(yuǎn)見<Linux應(yīng)用開發(fā)班>bootwait、respawn等initdefault用于標(biāo)識系統(tǒng)缺省的啟動級別。當(dāng)init由內(nèi)核激活以后,它將inittab中initdefaultrunlevelinittab中沒有initdefault項(xiàng),init將在控制臺上請求輸入runlevelsysinit、boot、bootwaitaction將在系統(tǒng)啟動時無條件運(yùn)行,忽略其中的runlevel。respawn字段表示該類進(jìn)程在結(jié)束后會重新啟動運(yùn)行。process字段設(shè)置啟動進(jìn)程所執(zhí)行令以下結(jié)合筆者系統(tǒng)中的inittab配置文件詳細(xì)講解該配置文件完成的功能確定用戶登錄模式、文字界面多用戶模式、X-Windows多用戶模式等。其中的單人模式(runlevel為1)是類似于Windows中的“安全模式”,在這種情況下,系統(tǒng)不加載復(fù)雜的模式從而使系統(tǒng)能夠正常啟動。在這些模式中最為常見的是35,其中本系統(tǒng)中默認(rèn)的為5,也就是X-#Defaultrunlevel.The#Defaultrunlevel.Therunlevelsusedby#0-halt(DoNOTsetinitdefaultto#1SingleuserMultiuser,withoutNFS(ThesameasFullmultiuserifyoudonothave#2-#3#4-#5-##6-reboot(DoNOTsetinitdefaultto執(zhí)行內(nèi)容在確定了登錄模式之后,就要開始將Linux的主機(jī)信息讀入Linux系統(tǒng),其內(nèi)容就是文#System啟動內(nèi)核的模塊及各運(yùn)行級的在此,主要是選擇模塊的型態(tài)以進(jìn)行驅(qū)動程序的加載。接下來會根據(jù)不同的運(yùn)行級levellevel)加載不同的模塊,啟動系統(tǒng)服務(wù)l0:0:wait:/etc/rc.d/rcl1:1:wait:/etc/rc.d/rc遠(yuǎn)見<遠(yuǎn)見<Linux應(yīng)用開發(fā)班>l2:2:wait:/etc/rc.d/rcl3:3:wait:/etc/rc.d/rcl4:4:wait:/etc/rc.d/rcl5:5:wait:/etc/rc.d/rcl6:6:wait:/etc/rc.d/rcl2:2:wait:/etc/rc.d/rcl3:3:wait:/etc/rc.d/rcl4:4:wait:/etc/rc.d/rcl5:5:wait:/etc/rc.d/rcl6:6:wait:/etc/rc.d/rc#TrapCTRL-ALT-ca::ctrlael:/sbin/shutdown-t3-r#WhenourUPSlsuspowerhasfailed,assumewehaveafewminut#ofpowerleft.Scheduleashutdownfor2minutesfromnow.#Thisdoes,ofcourse,assumeyouhavepowerdinstalledand#UPSconnectedandworkingpf::powerfail:/sbin/shutdown-f-h+2"PowerFailure;System#Ifpowerwasrestoredbeforetheshutdownkickedin,cancelpr:12345:powerokwait:/sbin/shutdown-c"PowerRestored;Shutdown#Rungettysinstandard1:2345:respawn:/sbin/mingetty2:2345:respawn:/sbin/mingettytty23:2345:respawn:/sbin/mingetty4:2345:respawn:/sbin/mingetty5:2345:respawn:/sbin/mingetty6:2345:respawn:/sbin/mingetty#Runxdminrunlevelgx:5:respawn:/etc/X11/prefdm-Linux系統(tǒng)服INIT進(jìn)程的一個重要作用就是啟動Linux系統(tǒng)服務(wù)(也就是運(yùn)行在的守護(hù)進(jìn)程)Linux的系統(tǒng)服務(wù)包括兩種,第一種是獨(dú)立運(yùn)行的系統(tǒng)服務(wù),它們常駐內(nèi)存中,自開機(jī)后一直啟動著(如httpd),具有很快的響應(yīng)速度;第二種是由xinet設(shè)定的服務(wù)。xinet能夠同時xinetd看作一個啟動服務(wù)的管理服務(wù)器,它獨(dú)立運(yùn)行的服獨(dú)立運(yùn)行的系統(tǒng)服務(wù)的啟動都放 “/etc/rc.d/init.d/”中。如筆者系統(tǒng)中的系服務(wù)的啟 有(關(guān)于Linux中服務(wù)的具體含義見附錄[root@sunq lsacpiddc_clientiptablesnamedpandrpcsvcgssdanacrondc_serverirdanetdumppcmciasaslauthdapmddiskdumpirqbalancenetfsportmapsendmailarptables_jfdovecotisdnnetplugdpsacctsinglewatchquaggaatddundkillallnetworkrawdevicessmartdwinbindautofsfirstbootkudzuNetworkManagerreadaheadsmb…為了為了指定特定運(yùn)行級別服務(wù)的開啟或關(guān)閉,系統(tǒng)的各個不同運(yùn)行級別都有不同文件, 為.d”,其中的N分別對應(yīng)不用的運(yùn)行級別。讀者可以進(jìn)入到里查看相應(yīng)服務(wù)的開啟或關(guān)閉狀態(tài),如進(jìn)入中的文[root@sunqls…K10psacctK50netdumpK99microcode_ctlS13portmapS55cupsK02NetworkManagerK35winbindK89netplugdS10networS28autofsS95anacK05saslauthdK36lisaK90bluetoothS12syslogS40smartdS95atdK10dc_serverK45namedK94diskdumpS13irqbalanceS44acpidS97messageb可以看到,每個對應(yīng)的服務(wù)都以“K”或“S”開頭,其中的K代表關(guān)閉(kill),其中的S代表啟動(start),用戶可以使用命令“+start|stop|status|restart”來對相應(yīng)的服務(wù)進(jìn)在執(zhí)行完相應(yīng)的rcN.d 下的文件后,INIT最后會執(zhí)行rc.local來啟動本地服務(wù),因此,用戶若想把某些非系統(tǒng)服務(wù)設(shè)置為自啟動,可以編輯rc.local文件,加上相應(yīng)的執(zhí)如下所示[root@sunqxinetd.d]#servicexinetd停止 確定另外,讀者還可以使用命令如下所示[root@sunqxinetd.d]#servicexinetd停止 確定開啟 確定xinetd設(shè)定的服xinetd管理系統(tǒng)中不經(jīng)常使用的服務(wù),這些服務(wù)程序只有在有請求時才由xinetd服務(wù)負(fù)責(zé)啟動,一旦運(yùn)行完畢服務(wù)自動結(jié)束。xinetd的配置文件為“/etc/xinetd.conf”,它對xinet的Linux應(yīng)用程序開發(fā)詳解》——2章、Linux##Simpl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版粉煤灰運(yùn)輸環(huán)保風(fēng)險評估與治理服務(wù)合同3篇
- 二零二五年服務(wù)合同違約金支付與損害賠償3篇
- 二零二五版地下室房屋租賃合同附條件續(xù)約協(xié)議3篇
- 二零二五版旅游景點(diǎn)停車場車位租賃及旅游服務(wù)合同3篇
- 二零二五版硅酮膠產(chǎn)品市場調(diào)研與分析合同3篇
- 二零二五版白酒瓶裝生產(chǎn)線租賃與回購合同3篇
- 二零二五年度養(yǎng)老社區(qū)場地租賃與管理合同3篇
- 二零二五版消防安全評估與應(yīng)急預(yù)案合同3篇
- 2025年度綠色建筑節(jié)能改造合同范本2篇
- 二零二五版房產(chǎn)抵押合同變更及合同終止協(xié)議3篇
- 大學(xué)計(jì)算機(jī)基礎(chǔ)(第2版) 課件 第1章 計(jì)算機(jī)概述
- 數(shù)字化年終述職報告
- 《阻燃材料與技術(shù)》課件 第5講 阻燃塑料材料
- 2025年蛇年年度營銷日歷營銷建議【2025營銷日歷】
- 2024年職工普法教育宣講培訓(xùn)課件
- 安保服務(wù)評分標(biāo)準(zhǔn)
- T-SDLPA 0001-2024 研究型病房建設(shè)和配置標(biāo)準(zhǔn)
- (人教PEP2024版)英語一年級上冊Unit 1 教學(xué)課件(新教材)
- 全國職業(yè)院校技能大賽高職組(市政管線(道)數(shù)字化施工賽項(xiàng))考試題庫(含答案)
- 2024胃腸間質(zhì)瘤(GIST)診療指南更新解讀 2
- 光儲電站儲能系統(tǒng)調(diào)試方案
評論
0/150
提交評論