




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
管理信息化信息化知識Linu某系統(tǒng)知識全剖析Linux全剖析什么是Linux簡單地說,Linux是一套免費使用和自由傳播的類UnixIntelx86系列CPU是建立不受任何商品化軟件的版權(quán)制約的、全世界都能自由使用的Unix兼容產(chǎn)品。Linux的出現(xiàn),最早開始于一位名叫LinusTorvalds的計算機業(yè)余愛好者,當(dāng)時他是芬蘭赫爾辛基大學(xué)的學(xué)生。他的目的是想設(shè)計一個代替Minix(是由一位名叫AndrewTannebaum的計算機教授編寫的一個操作系統(tǒng)示教程序)的操作系統(tǒng),這個操作系統(tǒng)可用于386、486或奔騰處理器的個人計算機上,并且具有Unix操作系統(tǒng)的全部功能,因而開始了Linux雛形的設(shè)計。Linux以它的高效性和靈活性著稱。它能夠在PC計算機上實現(xiàn)全部的Unix特性,具有多任務(wù)、多用戶的能力。Linux是在GNU公共許可權(quán)限下免費獲得的,是一個符合POSIX標(biāo)準(zhǔn)的操作系統(tǒng)。Linux操作系統(tǒng)軟件包不僅包括完整的Linux操作系統(tǒng),而且還包括了文本編輯X-Windows圖形用戶界面,如同我們使用WindowsNT一樣,允許我們使用窗口、圖標(biāo)和菜單對系統(tǒng)進行操作。Linux之所以受到廣大計算機愛好者的喜愛,主要原因有兩個,一是它屬于自由軟件,用戶改,無償對它使用,無約束地繼續(xù)傳播。另一個原因是,它具有Unix的全部功能,任何使用Unix操作系統(tǒng)或想要學(xué)習(xí)Unix操作系統(tǒng)的人都可以從Linux中獲益。第二課為什么使用Linux由于Linux是一套具有Unix為廣大的計算機愛好者提供了學(xué)習(xí)、探索以及修改計算機操作系統(tǒng)內(nèi)核的機會。作系統(tǒng)的內(nèi)核。這對于廣大計算機愛好者來說無疑是一種束縛。軟件包都為特定的操作系統(tǒng)和機器編寫。使用者無權(quán)修改這些應(yīng)用程序。使用Linux,可以將操作系統(tǒng)變成一種操作環(huán)境。由于Linux用程序,而且可以任意地修改和補充它們。這對用戶學(xué)習(xí)、了解Unix操作系統(tǒng)的內(nèi)核非常LinuxLinux是目前唯一可免費獲得的、為PC機平臺上的多個用戶提供多任務(wù)、多進程功能的操作系統(tǒng),這是人們要使用它的主要PCLinux提供了比其他任何操作系統(tǒng)都要強大的功能,Linux還可以因此,可以節(jié)省大量用于購買或升級應(yīng)用程序的資金。Linux不僅為用戶提供了強大的操作系統(tǒng)功能,而且還提供了豐富的應(yīng)用軟件。用戶不但可以從Internet上下載LinuxInternet上下載許多Linux的應(yīng)用程序。可以說,Linux本身包含的應(yīng)用程序以及移植到Linux上的應(yīng)用程序包羅萬象,任何一位用戶都能從有關(guān)Linux的網(wǎng)站上找到適合自己特殊需要的應(yīng)用程序及其源代碼,這樣,WindowsNT、Windows98、MS-DOS或OS/2等商品化操作系統(tǒng)來說是無法做到的。Linux為廣大用戶提供了一個在家里學(xué)習(xí)和使用UnixLinux是由計算最流行的Unix操作系統(tǒng)提供了廉價的機會?,F(xiàn)在有許多CD-ROM供應(yīng)商和軟件公司(如RedHat和TurboLinux)支持Linux操作系統(tǒng)。Linux成為Unix系統(tǒng)在個人計算機上的一個UnixUnixUnix的兼容系統(tǒng),即Linux系統(tǒng),在家中使用Linux就能夠完成一些工作任務(wù)。第三課Linux縱覽1.Linux內(nèi)核里接受命令并把命令送給內(nèi)核去執(zhí)行。2.LinuxShellShell是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內(nèi)核去執(zhí)行。實際上ShellShell有自己的編程語言用于對命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點,比如它也有循環(huán)結(jié)構(gòu)和分支控制結(jié)構(gòu)等,用這種編程語言編寫的Shell程序與其他應(yīng)用程序具有同樣的效果。Linux提供了像MicrosoftWindows那樣的可視的命令輸入界面--XWindow的圖形用戶界面(GUI)。它提供了很多窗口管理器,其操作就象Windows一樣,有窗口、圖標(biāo)和菜單,所有的管理都是通過鼠標(biāo)控制?,F(xiàn)在比較流行的窗口管理器是KDE和GNOME。每個Linux系統(tǒng)的用戶可以擁有他自己的用戶界面或Shell,用以滿足他們自己專門的
Shell需要。同Linux本身一樣,ShellShellBourneShell:是貝爾實驗室開發(fā)的。BASH:是GNU的BourneAgainShell,是GNU操作系統(tǒng)上默認(rèn)的shell。KornShellBourneSHellBourneShell兼容。CShellSUN公司Shell的BSD版本。3.Linux文件結(jié)構(gòu)文件結(jié)構(gòu)是文件存放在磁盤等存儲設(shè)備上的組織方法。主要體現(xiàn)在對文件和目錄的組織上。且可以設(shè)置目錄和文件的權(quán)限,設(shè)置文件的共享程度。使用LinuxLinux1.1入任何一個已授權(quán)進入的目錄,訪問那里的文件。文件結(jié)構(gòu)的相互關(guān)聯(lián)性使共享數(shù)據(jù)變得容易,幾個用戶可以訪問同一個文件。Linux是一個統(tǒng)目錄。圖1.1中那些根目錄下的目錄就是系統(tǒng)目錄。內(nèi)核,Shell和文件結(jié)構(gòu)一起形成了基本的操作系統(tǒng)結(jié)構(gòu)。它們使得用戶可以運行程序,管理文件以及使用系統(tǒng)。此外,Linux操作系統(tǒng)還有許多被稱為實用工具的程序,輔助用戶完成一些特定的任務(wù)。4.Linux實用工具標(biāo)準(zhǔn)的Linux系統(tǒng)都有一套叫做實用工具的程序,它們是專門的程序,例如編輯器、執(zhí)行標(biāo)準(zhǔn)的計算操作等。用戶也可以產(chǎn)生自己的工具。實用工具可分三類:編輯器:用于編輯文件。過濾器:用于接收數(shù)據(jù)并過濾數(shù)據(jù)。交互程序:允許用戶發(fā)送信息或接收來自其他用戶的信息。Linux的編輯器主要有:Ed、Ex、Vi和Emacs。Ed和Ex是行編輯器,Vi和Emacs是全屏幕編輯器。Linux的過濾器(Filter)讀取從用戶文件或其他地方的輸入,檢查和處理數(shù)據(jù),然后輸出結(jié)果。從這個意義上說,它們過濾了經(jīng)過它們的數(shù)據(jù)。Linux有不同類型的過濾器,一些過情況下,用戶可以編寫自己的過濾器程序。Linux訊。第四課Linux的發(fā)展Linux是專門為個人計算機所設(shè)計的操作系統(tǒng)。它最早是由LinusTorvalds設(shè)計的。當(dāng)時Linux是他的一項個人研究項目,其目的是為Minix用戶設(shè)計一個比較有效的UnixPC版本。LinusTorvalds稱它為Linux。Minix是由AndrewTannebaum教授開發(fā)的,發(fā)布在InternetMinix具有較多UnixUnixLinus打算為Minix用戶設(shè)計一個較完整的UnixPC1991年發(fā)行了Linux0.11它發(fā)布在Internet上,免費供人們使用。LinuxUnix標(biāo)準(zhǔn)和Unix系統(tǒng)中應(yīng)用程序的特點,修改并增加了一些內(nèi)容,使得Linux的功能更完善。Linux設(shè)計了與所有主要的窗口管理器的接口,提供了大量InternetFTPTELNET和SLIP等。Linux提供比較完整的程序開發(fā)工具,最常用的是C++編譯器和調(diào)試器。
盡管Linux擁有了Unix的全部功能和特點,但它卻是最小、最穩(wěn)定和最快速的操作系統(tǒng)。
在最小配置下,它可以運行在僅4MB的內(nèi)存上。Linux是在Internet開放環(huán)境中開發(fā)的,它由世界各地的程序員不斷完善,而且免費供用戶
UnixUnix版本大量出現(xiàn),
電子電氣工程協(xié)會(IEEEUnix標(biāo)準(zhǔn),這個新的ANSIUnix標(biāo)準(zhǔn)被稱為計
算機環(huán)境的可移植性操作系統(tǒng)界面(PSOIXUnix系統(tǒng)調(diào)用也做了專門的論述。PSOIX限制所有UnixUnix
和流行版本都是遵循POSIX標(biāo)準(zhǔn)的,而Linux從一開始就遵循POSIX標(biāo)準(zhǔn)。
第五課Linux特性Linux操作系統(tǒng)在短短的幾年之內(nèi)得到了非常迅猛的發(fā)展,這與Linux具有的良好特性是分不開的。Linux包含了Unix的全部功能和特性。簡單的說,Linux具有以下主要特性:1開放性開放性是指系統(tǒng)遵循世界標(biāo)準(zhǔn)規(guī)范,特別是遵循開放系統(tǒng)互連(OSI)國際標(biāo)準(zhǔn)。凡遵循國際標(biāo)準(zhǔn)所開發(fā)的硬件和軟件,都能彼此兼容,可方便地實現(xiàn)互連。2多用戶設(shè)備)有特定的權(quán)限,互不影響。Linux和Unix都具有多用戶的特性。
3多任務(wù)的運行互相獨立。Linux系統(tǒng)調(diào)度每一個進程平等地訪問微處理器。由于CPU的處理速度非程序中的一組指令到Linux是感覺不出來的。4良好的用戶界面Linux向用戶提供了兩種界面:用戶界面和系統(tǒng)調(diào)用。Linux的傳統(tǒng)用戶界面是基于文本的命令行界面,即shell,它既可以聯(lián)機使用,又可存在文件上脫機使用。shell有很強的程序設(shè)計能力,用戶可方便地用它編制程序,從而為用戶擴充系統(tǒng)功能提供了更高級的手段??删幊蘏hell是指將多條命令組合在一起,形成一個Shell程序,這個程序可以單獨運行,也可以與其他程序同時運行。令。系統(tǒng)通過這個界面為用戶程序提供低級、高效率的服務(wù)。Linux還為用戶提供了圖形用戶界面。它利用鼠標(biāo)、菜單、窗口、滾動條等設(shè)施,給用戶呈現(xiàn)一個直觀、易操作、交互性強的友好的圖形化界面。5設(shè)備獨立性任何用戶都可以象使用文件一樣,操縱、使用這些設(shè)備,而不必知道它們的具體存在形式。
個設(shè)備都是通過其與內(nèi)核的專用連接獨立進行訪問。Linux是具有設(shè)備獨立性的操作系統(tǒng),它的內(nèi)核具有高度適應(yīng)能力,隨著更多的程序員加入Linux編程,會有更多硬件設(shè)備加入到各種Linux內(nèi)核和發(fā)行版本中。另外,由于用戶可以免費得到Linux備。6供了豐富的網(wǎng)絡(luò)功能完善的內(nèi)置網(wǎng)絡(luò)是Linux的一大特點。Linux在通信和網(wǎng)絡(luò)功能方面優(yōu)于其他操作系統(tǒng)。其性的靈活性。而Linux為用戶提供了完善的、強大的網(wǎng)絡(luò)功能。支持Internet是其網(wǎng)絡(luò)功能之一。Linux免費提供了大量支持Internet的軟件,Internet是在Unix領(lǐng)域中建立并繁榮起來的,在這方面使用Linux是相當(dāng)方便的,用戶能用Linux與世界上的其他人通過Internet網(wǎng)絡(luò)進行通信。文件傳輸是其網(wǎng)絡(luò)功能之二。用戶能通過一些Linux命令完成內(nèi)部信息或文件的傳輸。遠(yuǎn)程訪問是其網(wǎng)絡(luò)功能之三。Linux不僅允許進行文件和程序的傳輸,它還為系統(tǒng)管理員和為多個系統(tǒng)服務(wù),即使那些系統(tǒng)位于相距很遠(yuǎn)的地方。7可靠的系統(tǒng)安全Linux核心授權(quán)等,這為網(wǎng)絡(luò)多用戶環(huán)境中的用戶提供了必要的安全保障。8良好的可移植性可移植性是指將操作系統(tǒng)從一個平臺轉(zhuǎn)移到另一個平臺使它仍然能按其自身的方式運行的能力。Linux是一種可移植的操作系統(tǒng),能夠在從微型計算機到大型計算機的任何環(huán)境中和任何平
Linux的不同計算機平臺與其他任何機器進行準(zhǔn)確而有效的通信
提供了手段,不需要另外增加特殊的和昂貴的通信接口。第六課Linux與其他操作系統(tǒng)的區(qū)別目前運行在PC機上的操作系統(tǒng)主要有Microsoft的MS-DOS、Windows、WindowsNT、IBM的
OS/2PC機用戶普遍使用MS-DOSWindowsWindowsNTLinux是新
PCLinux與其他操作系
統(tǒng)的主要區(qū)別是什么呢?下面從兩個方面加以論述。首先看一下Linux與MS-DOS之間的區(qū)別。在同一系統(tǒng)上運行Linux和MS-DOS已很普遍,就發(fā)揮處理器功能來說,MS-DOS沒有完全實
現(xiàn)x86Linux完全在處理器保護模式下運行,并且開發(fā)了處理器的所有特性。Linux可以直接訪問計算機內(nèi)的所有可用內(nèi)存,提供完整的Unix接口。而MS-DOS只支持部分Unix的接口。就使用費用而言,Linux和MS-DOSMS-DOS價格比較便宜,而且在PC機用戶中有很大的占有率,任何其他PC機操作系統(tǒng)都很難達(dá)到MS-DOSPC機用戶來說都是一個不小的負(fù)擔(dān)。Linux是免費的,用戶可以從internet上或者其他途徑獲得它的版本,而且可以任意使用,不用考慮費用問題。就操作系統(tǒng)的功能來說,MS-DOS是單任務(wù)的操作系統(tǒng),一旦用戶運行了一個MS-DOS的應(yīng)用
Linux是多任務(wù)的操作系統(tǒng),用戶可以同時運行多個應(yīng)用程序。再看一下Linux與OS/2、Windows、WindowsNT之間的區(qū)別。從發(fā)展的背景看,Linux與其他操作系統(tǒng)的區(qū)別是,Linux是從一個比較成熟的操作系統(tǒng)發(fā)
WindowsNT這一區(qū)別使得Linux的用戶能大大地從UnixUnix是世界上使用最普
系統(tǒng)之一。無論是Unix的作者還是Unix的用戶,都認(rèn)為只有Unix才是一個真正的操作系
統(tǒng),許多計算機系統(tǒng)(從個人計算機到超級計算機)都存在Unix版本,Unix的用戶可以從
Linux做為Unix助,直接擁有Unix在用戶中建立的牢固的地位。從使用費用上看,Linux與其他操作系統(tǒng)的區(qū)別在于Linux是一種開放、免費的操作系統(tǒng),
很多Linux的版本以及為其開發(fā)的應(yīng)用軟件。當(dāng)我們訪問Internet時,會發(fā)現(xiàn)幾乎所有可
用的自由軟件都能夠運行在Linux系統(tǒng)上。有來自很多軟件商的多種Unix實現(xiàn),Unix的開
何一個軟件商(或開拓者)都能在某種Unix實現(xiàn)中實現(xiàn)這些標(biāo)準(zhǔn)。OS/2和WindowsNT等操
其設(shè)計,它們是在封閉的環(huán)境下發(fā)展的。第七課TurboLinux簡介TurboLinux是拓林思公司最近發(fā)行的linux國也有一定的業(yè)績。當(dāng)前版本為4.0,是基于linux2.2.10內(nèi)核的。
TurboLinux的優(yōu)點簡單易用的圖形安裝程序;友好的圖形桌面界面KDE、GNOME等;豐富的軟件包,包括:系統(tǒng)管理工具、網(wǎng)絡(luò)分析程序、服務(wù)程序包(如:Apache)等等;提供了完整的源代碼程序;提供了預(yù)配置安裝功能。TurboLinux的特色TurboPNPCfg-TurboLinux的ISAISAPnP所有系統(tǒng)組件都采用RPM軟件包管理系統(tǒng);TurboPkg-TurboLinux有完善的RPM前端,即便是FTP,也可以進行系統(tǒng)組件的簡單安裝、升級和拆卸;Xfree863.3.3;TurboXCfg-TurboLinux先進的配置工具;一套完整高效的應(yīng)用程序,包括:GIMP(Photoshop型程序)Xpaint(圖形程序)yx(排版工具)WingZ(電子表格)Netscape(通訊程序)Emacs和Xemacs(編輯器)Xessite(電子表格)多種游戲、屏幕保護程序、仿真程序和其他娛樂性程序;完整的網(wǎng)絡(luò)客戶程序-除了如tenet、等標(biāo)準(zhǔn)程序外,TurboLinux還提供了如tkined、基于SNMP的圖形網(wǎng)絡(luò)管理器的程序。大量的服務(wù)器軟件包提供如下的服務(wù):基本的端口監(jiān)視服務(wù)程序(tenet、等)Web服務(wù)程序(Apache)DNS名字服務(wù)器(bind)E-mailTurboLinux的一般用途防火墻路由器工作站Intranet或Internet服務(wù)器TurboLinux具有設(shè)置服務(wù)器、開發(fā)者和辦公系統(tǒng)所需的一切功能。1.對于服務(wù)器TurboLinuxInternet站點所需的
TurboLinux用作帶有限客戶的工作組服務(wù)器,也可以把它當(dāng)作成熟的,能夠同時接收數(shù)百個連接請求的Internet站點。2.對于開發(fā)者TurboLinux為開發(fā)者提供了常用的編輯器、編譯器、調(diào)試器和編程工具。另外,TurboLinux種語言如:C、C++、Java、Per、Tc/tk、Python和Fortran77的編譯器/解釋器以及集成開發(fā)環(huán)境、調(diào)試和其他開發(fā)工具。3.對于辦公系統(tǒng)TurboLinux包含了辦公室運轉(zhuǎn)所需的一切。如:NetscapeNavigator、WordPerfect8、Wingz(電子表格)、Gimp(Photoshop類程序)和Xpaint(圖形程序),一共有幾百種程序。誰從TurboLinux獲益開發(fā)者程序員系統(tǒng)管理員系統(tǒng)分析員管理人員最終用戶TurboLinux的站點·(美國)·(中國)·(日本)第八課進入與退出系統(tǒng)TurboLinux后,必須退出系統(tǒng)。本章主要討論登錄和退出系統(tǒng)的方法。能進入系統(tǒng)。在系統(tǒng)安裝過程中可以創(chuàng)建兩種帳號:1)root--超級用戶帳號,使用這個帳號可以在系統(tǒng)中做任何事情。2)普通用戶--這個帳號供普通用戶使用,可以進行有限的操作。一般的Linux免無意中破壞系統(tǒng)。系統(tǒng)用來辨別真假用戶的關(guān)鍵字。在Linux另外,Linux系統(tǒng)給計算機賦予一個主機名。主機名用于在網(wǎng)絡(luò)上識別獨立的計算機(即使用戶的計算機沒有聯(lián)網(wǎng),也應(yīng)該有一個主機名)。TurboLinux系統(tǒng)給出的缺省主機名為:localhost。在下面的例子中,我們假設(shè)用戶名為"xxq",系統(tǒng)的主機名為"localhost"。進入系統(tǒng)(登錄)超級用戶登錄超級用戶的用戶名為root示:localhostlogin:這時輸入超級用戶名"root"localhostlogin:rootPassword:令,就會在屏幕上看到下列信息:loginincorrect.這時需要重新輸入。當(dāng)用戶正確地輸入用戶名和口令后,就能合法地進入系統(tǒng)。屏幕顯示:[/root]#此時說明該用戶已經(jīng)登錄到系統(tǒng)中,可以進行操作了。這里"#"是超級用戶的系統(tǒng)提示符。普通用戶登錄建立了普通用戶帳號以后,就可以進行登錄了。在登錄時,用戶會在屏幕上看到類似下面的提示:localhostlogin:這時輸入用戶名"xxq",然后鍵入回車鍵。此時,用戶會在屏幕上看到輸入口令的提示:localhostlogin:xxqPassword:令,就會在屏幕上看到下列信息:loginincorrect.這時需要重新輸入。當(dāng)用戶正確地輸入用戶名和口令后,就能合法地進入系統(tǒng)。屏幕顯示:[]$此時說明該用戶已經(jīng)登錄到系統(tǒng)中,可以進行操作了。修改口令為了更好的保護用戶帳號的安全,Linux允許用戶隨時修改自己的口令,修改口令的命令是
passwd無意中按錯鍵。如果用戶忘記了口令,可以請系統(tǒng)管理員為自己重新設(shè)置一個。
虛擬控制臺Linux是一個真正的多用戶操作系統(tǒng),這表示它可以同時接受多個用戶登錄。Linux還允許一個用戶進行多次登錄,這是因為Linux和許多版本的UNIX一樣,提供了虛擬控制臺的訪問方式,允許用戶在同一時間從控制臺(系統(tǒng)的控制臺是與系統(tǒng)直接相連的監(jiān)視器和鍵盤)進行多次登錄。虛擬控制臺的選擇可以通過按下Alt鍵和一個功能鍵來實現(xiàn),通常使用F1-F6。例如,用戶登錄后,按一下Alt-F2鍵,用戶又可以看到"login:"提示符,說明用戶看到了第二個虛擬控制臺。然后只需按Alt-F1鍵,就可以回到第一個虛擬控制臺。一個新安裝的Linux系統(tǒng)允許用戶使用Alt-F1到Alt-F6鍵來訪問前六個虛擬控制臺。虛擬控制臺可使用戶同時在多個控制臺上工作,真正感受到Linux可以在某一虛擬控制臺上進行的工作尚未結(jié)束時,切換到另一虛擬控制臺開始另一項工作??刂婆_上查閱信息。退出系統(tǒng)shell下面以普通用戶的退出為例,說明退出系統(tǒng)的過程:[]$exit還有其他退出系統(tǒng)的方法,但上面一種是最安全的。第九課文件與目錄操作用戶的數(shù)據(jù)和程序大多以文件的形式保存。用戶使用Linux在Linux環(huán)境下運行DOS命令。文件與目錄的基本概念文件與文件名在多數(shù)操作系統(tǒng)中都有文件的概念。文件是Linux用來存儲信息的基本結(jié)構(gòu),它是被命名(稱為文件名)的存儲在某種介質(zhì)(如磁盤、光盤和磁帶等)上的一組信息的集合。Linux的字符串來構(gòu)成。用戶應(yīng)該選擇有意義的文件名。Linux要求文件名的長度限制在255個字符以內(nèi)。悉,例如,C語言編寫的源代碼文件總是具有C的擴展名。用戶可以根據(jù)自己的需要,隨意加入自己的文件擴展名。
以下例子都是有效的Linux文件名。
prefacechapter1.txtxu.c文件的類型Linux系統(tǒng)中有三種基本的文件類型:普通文件、目錄文件和設(shè)備文件。1.普通文件普通文件是用戶最經(jīng)常面對的文件。它又分為文本文件和二進制文件。1)ASCII碼形式存儲在計算機中。它是以"行"為基本結(jié)構(gòu)的一種信息組織和存儲方式。2)等等。2.文件的位置、大小等與文件有關(guān)的信息。目錄文件往往簡稱為目錄。3.設(shè)備文件設(shè)備文件是Linux系統(tǒng)很重要的一個特色。Linux系統(tǒng)把每一個I/O設(shè)備都看成I/O設(shè)備的使用和一般文件的使用一樣,不必了解I/O個字符為單位的。目錄樹型目錄結(jié)構(gòu)的接口是文件系統(tǒng)的一大任務(wù)。Linux系統(tǒng)以文件目錄的方式來組織和管理系統(tǒng)中的所有文
件。所謂文件目錄就是將所有文件的說明信息采用樹型結(jié)構(gòu)組織起來--即我們常說的目錄。
也就是說,整個文件系統(tǒng)有一個"根"(root),然后在根上分"杈"(directory),任何一
"葉子""根"和"杈"在Linux中被稱為是"目錄"或
"文件夾"。而"葉子"則是一個個的文件。實踐證明,此種結(jié)構(gòu)的文件系統(tǒng)效率比較高。
如前所述,目錄也是一種類型的文件。Linux系統(tǒng)通過目錄將系統(tǒng)中所有的文件分級、分層
Linux文件系統(tǒng)的樹型層次結(jié)構(gòu)。以根目錄為起點,所有其他的目錄都
Linux系統(tǒng)的樹型目錄結(jié)構(gòu)如圖3.1個系統(tǒng),可以進入任何一個已授權(quán)進入的目錄,訪問那里的文件。上圖中,我們只給出了目錄結(jié)點名稱,而沒有給出各個目錄"之下"的每一個文件。實際上,
各個目錄結(jié)點"之下"為它設(shè)定兩個目錄文件,一個是".",代表該目錄自己,另一個是"..",代表該目錄的父目
錄,對于根目錄,"."和".."都代表其自己。Linux目錄提供了管理文件的一個方便途徑。每個目錄里面都包含文件。用戶可以為自己的文件。因此允許用戶設(shè)置文件的共享程度。需要說明的是,根目錄是Linux系統(tǒng)中的特殊目錄。Linux是一個多用戶系統(tǒng),操作系統(tǒng)本3.1中那些根目錄下的目錄就是系統(tǒng)目錄。工作目錄、用戶主目錄與路徑Linux系統(tǒng)組織文件的一種特殊文件。為使用戶更好地使用目錄,我們介紹有關(guān)目錄的一些基本概念。I.工作目錄與用戶主目錄Linux"處在"WorkingDirectory錄到系統(tǒng)中時,其主目錄(HomeDirectory"."表示,其父目錄用".."表示。主目錄,不同用戶的主目錄一般互不相同。用戶剛登錄到系統(tǒng)中時,其工作目錄便是該用戶主目錄,通常與用戶的登錄名相同。用戶可以通過一個"~"字符來引用自己的主目錄。例如命令WANG$cat~software_1和下面的命令WANG$catWANGsoftware_1意義相同。shell將用用戶主目錄名來替換"~"字符。目錄層次建立好之后,用戶就可以把有關(guān)的文件放到相應(yīng)的目錄中,從而實現(xiàn)對文件的組織。對文件進行訪問時,需要用到"路徑"(Path)的概念。II.路徑成是目錄名稱,中間用"/"分開。任一文件在文件系統(tǒng)中的位置都是由相應(yīng)的路徑?jīng)Q定的。
徑是指從"根"開始的路徑,也稱為完全路徑;相對路徑是從用戶工作目錄開始的路徑。
使用某些命令如cp和tar等大有好處。錄的相對位置來引用它,而不需要列出這個文件的完整的路徑名。例如,用戶WANG有一個名為classsoftware_1和hardware_1。若用戶WANG想顯示出其class目錄中的名為software_1WANG$catWANGsoftware_1用戶也可以根據(jù)文件software_1與當(dāng)前工作目錄的相對位置來引用該文件。這時命令為:WANG$catclass/software_1文件和目錄操作相關(guān)命令顯示文件內(nèi)容命令用戶需要查看一個文件的內(nèi)容時,可以根據(jù)顯示要求的不同選用以下的命令。cat命令功能1:在標(biāo)準(zhǔn)輸出上顯示文件。語法:cat[-選項]文件輸出。cat命令中各個選項的含義為:-v用一種特殊形式顯示控制字符,LFD與TAB除外。加了-v選項后,-T和-E選項將起作用。其中:-T將TAB顯示為“ùI”。該選項需要與-v選項一起使用。即如果沒有使用-v選項,則這個選項將被忽略。-E在每行的末尾顯示一個$符。該選項需要與-v選項一起使用。-u輸出不經(jīng)過緩沖區(qū)。-A等于-vET。-t等于-vT。-e等于-vE。例1:$cat則在屏幕上顯示出文件的內(nèi)容。成真。例2:$cat-Aexam2.txt則在屏幕上顯示出exam2.txt文件的內(nèi)容,而且如果文件中含有特殊字符的話,一并顯示。Iamaboy!ùIYouareacuteboy$功能2:連接兩個或多個文件說明:該命令功能之二是用來將兩個或多個文件連接起來。例3:$catfile1file2>file3這樣就把文件filel和文件file2file3不能直接看到該命令執(zhí)行后的結(jié)果。若想看到連接后的文件內(nèi)容,可以再使用“catfile3”。)來不及看清其內(nèi)容。因此,當(dāng)文件內(nèi)容較大時,一般可用more等命令分屏顯示,以免因屏幕滾動太快而無法看清。more命令功能:在終端屏幕按屏顯示文本文件。語法:more[-選項]文件--More--,系統(tǒng)還將同時顯示出已顯示文本占全部文本的百分比,若要繼續(xù)顯示,按回車或空格鍵即可。more命令中各個選項的含義為:-p顯示下一屏之前先清屏。-c作用同-p基本一樣。-d在每屏的底部顯示更友好的提示信息:--More--(XX%)[Pressspacetocontiune,‘q’toquit.]而且若用戶輸入了-個錯誤命令則顯示出錯信息,而不是簡單地鳴響終端。-l不處理<Ctrl+l>(換頁符)。如果沒有給出這個選項,則more命令在顯示了一個包含有<Ctrl+l>字符的行后將暫停顯示,并等待接收命令。-s文件中連續(xù)的空白行壓縮成一個空白行顯示。執(zhí)行中的命令在moremore自己的一系列命令動態(tài)地根據(jù)需要來選擇顯示的部分。moremore指令在執(zhí)行中用到的一些常用命令,而有關(guān)這些命令的完整內(nèi)容,可以在more執(zhí)行時按h查看。這些命令的執(zhí)行方法是先輸入i(行數(shù))的值,再打所要的命令,不然它會以預(yù)設(shè)值來執(zhí)行命令。i空格若指定i,顯示下面的i行;否則,顯示下一整屏。i回車若指定i,顯示下面的i行;否則,顯示下一行。iùD按<Ctrl+D>,若指定i,顯示下面的i行;否則,往下顯示半屏(一般為11行)。id同iùD。iz同“i空格”類似,只是i將成為以下每個滿屏的缺省行數(shù)。
is跳過下面的i行再顯示一個整屏。預(yù)設(shè)值為1。
if跳過下面的i屏再顯示一個整屏。預(yù)設(shè)值為1。
iùB按<Ctrl+B>,往回跳過(即向文件首回跳)i屏,再顯示一個滿屏。預(yù)設(shè)值為1。
b與iùB相同?!氐缴洗嗡阉鞯牡胤絨或Q退出more。=顯示當(dāng)前行號。v在當(dāng)前行啟動bin/vi對之進行編輯修改。h顯示各命令的幫助信息。i/pattern查找匹配該模式的第i行。預(yù)設(shè)值為1。in查找符合表達(dá)式的倒數(shù)i行。預(yù)設(shè)值為1。!<cmd>或:!<cmd>在子shell中執(zhí)行<cmd>命令。i:n在命令行中指定了多個文件名的情況下,可用此命令使之顯示第i個文件,若i過大(出界),則顯示文件名列表中的最后一個文件。ip在命令行中指定了多個文件名的情況下,可用此命令使之顯示倒數(shù)第ii過大(出界),則顯示第一個文件。i:f顯示當(dāng)前文件的文件名和行數(shù)?!ぶ貜?fù)上次鍵人的命令。例1:用分頁的方式顯示一個文件的內(nèi)容。$moreexample1.c/*-------------------------------------------*//*example1.c*//*-------------------------------------------*//**//*targetfBBSmaintop-menuroutines*//*createf9923*//*updatef9915*//*-------------------------------------------*/#define_MAIN_C_#inc1ude<BBS.h>jmp_bufbyebye;inttalkrequest=NA;staticuscharEnter_uflagi#ifdefSHOW_IDLE_TIME--More-(3%)例2$more-dcexample1.c執(zhí)行該命令后,先清屏,然后顯示文件example.c的內(nèi)容。/*-------------------------------------------*//*example1.c*//*-------------------------------------------*//**//*targetfBBSmaintop-menuroutines*//*createf9923*//*updatef9915*//*-------------------------------------------*/
#define_MAIN_C_#inc1ude<BBS.h>jmp_bufbyebye;inttalkrequest=NA;staticuscharEnter_uflagi#ifdefSHOW_IDLE_TIMEcharfromhost();--More-(3%)[Pressspacetocontinue,‘q’toquit.]例3:顯示一個文件的內(nèi)容,要求每十行顯示一次,且顯示之前先清屏。$more-c-10example1.c執(zhí)行該命令后,先清屏,然后將以每十行每十行的方式顯示文件example.c的內(nèi)容。/*-------------------------------------------*//*example1.c*//*-------------------------------------------*//**//*targetfBBSmaintop-menuroutines*//*createf9923*//*updatef9915*//*-------------------------------------------*/#define_MAIN_C_inc1ude<BBS.h>--More-(3%)less命令less命令的功能幾乎和moreless命令在顯示文件時允許用戶既可以向前又可以向后翻閱文件。less命令的使用與more命令類似,在此就不贅述了,用戶如有不清楚的地方可直接查看聯(lián)機幫助。用less命令顯示文件時,若需要在文件中往前移動,按<b>示的某位置,則指定一個0到100之間的數(shù),并按<p>即可。例如,需要按頁顯示test文件$lesstesthead命令整個文件。用head命令只顯示文件或標(biāo)準(zhǔn)輸入的頭幾行。
語法:head[-n]文件功能:顯示指定文件的前若干行。n行。如果沒有給出n值,缺省設(shè)置為10。如果沒有指定文件,head就從標(biāo)準(zhǔn)輸入讀取。例如顯示文件example.c的前3行。$head-3example.c/*-------------------------------------------*//*example1.c*//*-------------------------------------------*/tail命令同樣,如果用戶想查看文件的尾部,可以使用tail命令。語法:tail[+/-num][參數(shù)]文件輸出上。如果沒有給定文件名,則使用標(biāo)準(zhǔn)輸入文件。tail命令中各個選項的含義為:+num從第num行以后開始顯示。-num從距文件尾num行處開始顯示。如果省略num參數(shù),系統(tǒng)默認(rèn)值為10。l以文本行為num的計數(shù)單位。與參數(shù)選項+num或-num選項同時使用時,num表示要顯示的文本行行數(shù)。c以字節(jié)為num的計數(shù)單位。與參數(shù)選項+num或-num選項同時使用時,num表示要顯示的字符數(shù)。(l、c選項可以省略,系統(tǒng)默認(rèn)值為l,即按行計數(shù))。例如:$tail-4example將顯示文件example的最后4行。od命令用戶通常使用od八進制、十六進制和ASCII碼來顯示文件。語法:od[選項]文件…命令中各選項的含義:-A指定地址基數(shù),包括:d十進制o八進制(系統(tǒng)默認(rèn)值)x十六進制n不打印位移值-t指定數(shù)據(jù)的顯示格式,主要的參數(shù)有:cASCII字符或反斜杠序列d有符號十進制數(shù)f浮點數(shù)o八進制(系統(tǒng)默認(rèn)值為02)u無符號十進制數(shù)x十六進制數(shù)除了選項c以外的其他選項后面都可以跟一個十進制數(shù)n說明:od命令系統(tǒng)默認(rèn)的顯示方式是八進制,這也是該命令的名稱由來(OctalDump)。但這不是最有用的顯示方式,用ASCII碼和十六進制組合的方式能提供更有價值的信息輸出。例如:$od-Ax-tcx1wh5000000Filesystem46696c56d0k-blocks16b2d626c6f636b732020000020UsedAvailabc6162000030leUse%Mounted6cd6f756e0000040on\n/dev/hda86f6e0a2ff9218%/\n/def0a2f6465000080v/hda9762f90000a0000b02%/home\n\n\nf686f6d650a0a0a0000bd第十課(二)文件內(nèi)容查詢命令grep、fgrep和egrep命令grep命令一次只能搜索一個指定的模式;egrep命令檢索擴展的正則表達(dá)式(包括表達(dá)式組和可選項);fgrep命令檢索固定字符串,它不識別正則表達(dá)式,是快速搜索命令。函數(shù),或是相關(guān)的詞組。grep命令的搜索功能比fgrep強大,因為grep命令的搜索模式可以是正則表達(dá)式,而fgrep卻不能。有關(guān)正則表達(dá)式請參見shell一章。寫。輸出之前加上文件名。語法:grep[選項][查找模式][文件名1,文件名2,……]
egrep[選項][查找模式][文件名1,文件名2,……]
fgrep[選項][查找模式][文件名1,文件名2,……]
這組命令各選項的含義為:-E每個模式作為一個擴展的正則表達(dá)式對待。-F每個模式作為一組固定字符串對待(以新行分隔),而不作為正則表達(dá)式。-b在輸出的每一行前顯示包含匹配字符串的行在文件中的字節(jié)偏移量。-c只顯示匹配行的數(shù)量。-i比較時不區(qū)分大小寫。-h在查找多個文件時,指示grep不要將文件名加入到輸出之前。-l重復(fù)顯示此文件名。-n在輸出前加上匹配串所在行的行號(文件首行行號為1)。
-v只顯示不包含匹配串的行。-x只顯示整行嚴(yán)格匹配的行。-eexpression指定檢索使用的模式。用于防止以“-”開頭的模式被解釋為命令選項。-fexpfile從expfile文件中獲取要搜索的模式,一個模式占一行。對該組命令的使用還需注意以下方面:如“*”等,用來生成文件名列表。如果想在搜索的模式中包含有空格的字符串,可以用單Shell將把空格認(rèn)為是命令行參數(shù)的定界符,而grep命令將把搜索模式中的單詞解釋為文件名列表中的一部分。在下面的例子中,grep命令在文件example中搜索模式“textfile”。$grep’textfile’example用戶可以在命令行上用Shell殊字符“*”用來生成一個文件名列表,該列表包含當(dāng)前目錄下所有的文件。該命令將搜索出當(dāng)前目錄下所有文件中與模式匹配的行。$grepdata*C程序源文件中特定的模式,您可以用“*.c”來指定文件名列表。假設(shè)用戶的C程序中包含一些不必要的轉(zhuǎn)向語句(goto語句),想要找到這些語句,可以用如下的命令來搜索并顯示所有包含goto語句的代碼行:$grepgoto*.c-f下面的例子中,用戶要在文件exam中搜索字符串“editor”和“create”,就把要搜索的
模式放置在文件mypats中,然后,grep命令從文件mypats中讀取要搜索的模式。
$catmypatseditorcreate$grep-fmypatsexam文件查找命令find命令很強大。語法:find起始目錄尋找條件操作說find命令從指定的起始目錄開始,遞歸地搜索其各個子目錄,查找滿足尋找條件的文件并對之采取相關(guān)的操作。該命令提供的尋找條件可以是一個用邏輯運算符not、and、or組成的復(fù)合條件。邏輯運算符and、or、not的含義為:(1and:邏輯與,在命令中用“表示,是系統(tǒng)缺省的選項,表示只有當(dāng)所給的條件都滿足時,尋找條件才算滿足。例如:$find–name’tmp’–xtypec-user’inin’該命令尋找三個給定條件都滿足的所有文件。(2or:邏輯或,在命令中用“表示。該運算符表示只要所給的條件中有一個滿足時,尋找條件就算滿足。例如:$find–name’tmp’–o–name’mina*’該命令查詢文件名為’tmp’或是匹配’mina*’的所有文件。(3not:邏輯非,在命令中用“!表示。該運算符表示查找不滿足所給條件的文件。例如:$find!–name’tmp’該命令查詢文件名不是’tmp’的所有文件。需要說明的是:當(dāng)使用很多的邏輯選項時,可以用括號把這些選項括起來。為了避免Shell本身對括號引起誤解,在話號前需要加轉(zhuǎn)義字符“\”來去除括號的意義。例:$find\(–name’tmp’–xtypec-user’inin’\)尋找條件有以下選項:首先,下列各個選項中的n值可以有三種輸入方式,假設(shè)n為20,則:+20表示20以后(21,22,23等)-20表示20以前(19,18,17等)20表示正好是201.以名稱和文件屬性查找。-name’字串’查找文件名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、[]。-lname’字串查找文件名匹配所給字串的所有符號鏈接文件,字串內(nèi)可用通配符*?[]。-gidn查找屬于ID號為n的用戶組的所有文件。-uidn查找屬于ID號為n的用戶的所有文件。-group’字串’查找屬于用戶組名為所給字串的所有的文件。-user’字串’查找屬于用戶名為所給字串的所有的文件。-empty查找大小為0的目錄或文件。-path’字串’查找路徑名匹配所給字串的所有文件,字串內(nèi)可用通配符*、?、[]。-perm權(quán)限查找具有指定權(quán)限的文件和目錄,權(quán)限的表示可以如711,644。-sizen[bckw]查找指定文件大小的文件,n后面的字符表示單位,缺省為b,代表512字節(jié)的塊。-typex查找類型為x的文件,x為下列字符之一:b塊設(shè)備文件c字符設(shè)備文件d目錄文件p命名管道(FIFO)f普通文件l符號鏈接文件(symboliclinks)ssocket文件-xtypex與-type基本相同,但只查找符號鏈接文件。2.以時間為條件查找-aminn查找n分鐘以前被訪問過的所有文件。-atimen查找n天以前被訪問過的所有文件。-cminn查找n分鐘以前文件狀態(tài)被修改過的所有文件。-ctimen查找n天以前文件狀態(tài)被修改過的所有文件。-mminn查找n分鐘以前文件內(nèi)容被修改過的所有文件。-mtimen查找n天以前文件內(nèi)容被修改過的所有文件。3.可執(zhí)行的操作-exec命令名稱{}對符合條件的文件執(zhí)行所給的Linux命令,而不詢問用戶是否需要執(zhí)行該
命令。{}表示命令的參數(shù)即為所找到的文件;命令的末尾必須以“\;”結(jié)束。
-ok命令名稱{}對符合條件的文件執(zhí)行所給的Linuxexec是否需要執(zhí)行該命令。-ls詳細(xì)列出所找到的所有文件。-fprintf文件名將找到的文件名寫入指定文件。-print在標(biāo)準(zhǔn)輸出設(shè)備上顯示查找出的文件名。-printf格式格式的寫法請參考有關(guān)C語言的書。例1:查找當(dāng)前目錄中所有以main開頭的文件,并顯示這些文件的內(nèi)容。$find.-name‘main*’-execmore{}\;例2:刪除當(dāng)前目錄下所有一周之內(nèi)沒有被訪問過的a.out或*.o文件。$find.\(-namea.out-o-name‘*.o’\)\>-atime+7-execrm{}\;說明如下:命令中的“表示當(dāng)前目錄,此時find將從當(dāng)前目錄開始,逐個在其子目錄中查找滿足后面指定條件的文件。\(和\)表示括號(),其中的“\”稱為轉(zhuǎn)義符。之所以這樣寫是由
于對Shell而言,(和)另有不同的含義,而不是這里的用于組合條件的用途?!?namea.out”是指要查找名為a.out的文件;“-name‘*.o’”是指要查找所有名字以.o-name之間的-oora.out或名字以.o結(jié)find時間是否在7天以前(條件-atime+7),若是,則對該文件執(zhí)行命令rm(-execrm{}\;)。其中{}代表當(dāng)前查到的符合條件的文件名,\;則是語法所要求的。上述命令中第一行的最后一個\是續(xù)行符。當(dāng)命令太長而在一行寫不下時,可輸入一個\,之后系統(tǒng)將顯示一個>,指示用戶繼續(xù)輸入命令。locate命令locate命令用于查找文件,它比find命令的搜索速度快,它需要一個數(shù)據(jù)庫,這個數(shù)據(jù)庫由每天的例行工作(crontab)程序來建立。當(dāng)我們建立好這個數(shù)據(jù)庫后,就可以方便地來搜尋所需文件了。該命令的一般形式為:locate相關(guān)字例如:查找相關(guān)字issue$locateissueissuemanissue.5man.5第十課(三)文本處理命令Sort命令sort命令的功能是對文件中的各行進行排序。sort命令有許多非常實用的選項,這些選項
sort命令可以被認(rèn)為是
一個非常強大的數(shù)據(jù)管理工具,用來管理內(nèi)容類似數(shù)據(jù)庫記錄的文件。Sort行的下一字符,如果還相同,將繼續(xù)進行比較。語法:sort[選項]文件說sort命令對指定文件中所有的行進行排序,并將結(jié)果顯示在標(biāo)準(zhǔn)輸出上。如不指定輸入文件或使用“-”,則表示排序內(nèi)容來自標(biāo)準(zhǔn)輸入。sort來排序的最小的字符序列。缺省情況下以整行為關(guān)鍵字按ASCII字符順序進行排序。改變?nèi)笔≡O(shè)置的選項主要有:-m若給定文件已排好序,合并文件。-c1退出。-u對排序后認(rèn)為相同的行只留其中一行。-o輸出文件將排序輸出寫到輸出文件中而不是標(biāo)準(zhǔn)輸出,如果輸出文件是輸入文件之一,sort先將該文件的內(nèi)容寫入一個臨時文件,然后再排序和寫輸出結(jié)果。改變?nèi)笔∨判蛞?guī)則的選項主要有:-d按字典順序排序,比較時僅字母、數(shù)字、空格和制表符有意義。-f將小寫字母與大寫字母同等對待。-I忽略非打印字符。-M作為月份比較:“JAN”<“FEB”<?<“DEC”。-r按逆序輸出排序結(jié)果。+posl-pos2poslpos2括poslpos2pos2posl0開始。-b在每行中尋找排序關(guān)鍵字時忽略前導(dǎo)的空白(空格和制表符)。-tseparator指定字符separator作為字段分隔符。下面通過幾個例子來講述sort的使用。用sort命令對text一個單詞完全相同,該命令將從它們的第二個單詞vegetables與fruit的首字符處繼續(xù)進行比較。$cattextvegetablesoup
freshvegetables
freshfruitlowfatmilk$sorttextfreshfruitfreshvegetableslowfatmilkvegetablesoup后的文件內(nèi)容保存到名為result的文件中。$sorttext>result以第2個字段作為排序關(guān)鍵字對文件example的內(nèi)容進行排序。$sort+1-2example對于file1和file2outfile2個字段的第一個字符作為排序關(guān)鍵字。$sort-r-oout-1.1examplesort作目錄中的文件送給sort進行排序,排序關(guān)鍵字是第6個至第8個字段。$ls-l|sort+5-7sortcat把多個文件合并,然后用管道操作把合并后的文本行輸入給命令sort,sort命令將輸出這些合并及排序后的文本行。在下面的例子中,文件veglist與文件fruitlist的文本行經(jīng)過合并與排序后被保存到文件clist中。$catveglistfruitlist|sort>clistuniq命令cat命令將兩個文件合sortuniq命令將這些重復(fù)行從輸出文件中刪除,只留下每條記錄的唯一樣本。語法:uniq[選項]文件件中。輸入文件和輸出文件必須不同。如果輸入文件用“-”表示,則從標(biāo)準(zhǔn)輸入讀取。該命令各選項含義如下:、-c顯示輸出中,在每行行首加上本行在文件中出現(xiàn)的次數(shù)。它可取代-u和-d選項。-d只顯示重復(fù)行。-u只顯示文件中不重復(fù)的各行。-n前n彼此由制表符和空格隔開(字段從0開始編號)。+n前n個字符被忽略,之前的字符被跳過(字符從0開始編號)。-fn與-n相同,這里n是字段數(shù)。-sn與+n相同,這里n是字符數(shù)。例如:1.顯示文件example中不重復(fù)的行。uniq-uexample2.顯示文件example中不重復(fù)的行,從第2個字段的第2個字符開始做比較。uniq-u-1+1example第十課(四)文件內(nèi)容統(tǒng)計命令wc命令wc命令的功能為統(tǒng)計指定文件中的字節(jié)數(shù)、字?jǐn)?shù)、行數(shù),并將統(tǒng)計結(jié)果顯示輸出。語法:wc[選項]文件…讀取。wc同時也給出所有指定文件的總統(tǒng)計數(shù)。字是由空格字符區(qū)分開的最大字符串。該命令各選項含義如下:-c統(tǒng)計字節(jié)數(shù)。-l統(tǒng)計行數(shù)。-w統(tǒng)計字?jǐn)?shù)。這些選項可以組合使用。行數(shù)、字?jǐn)?shù)、字節(jié)數(shù)、文件名如果命令行中沒有文件名,則輸出中不出現(xiàn)文件名。例如:$wc-lcwfile1file2433file1752file2111185total省略任選項-lcw,wc命令的執(zhí)行結(jié)果與上面一樣。第十課(五)文件比較命令這組命令可以用來比較兩個文件內(nèi)容的差別。Comm命令如果想對兩個有序的文件進行比較,可以使用m命令。
語法:m[-123]file1file2說明:該命令是對兩個已經(jīng)排好序的文件進行比較。其中file1和file2是已排序的文件。m讀取這兩個文件,然后生成三列輸出:僅在file1中出現(xiàn)的行;僅在file2中出現(xiàn)的行;在兩個文件中都存在的行。如果文件名用“-”,則表示從標(biāo)準(zhǔn)輸入讀取。選項1、2或3抑制相應(yīng)的列顯示。例如m-12m-23只顯示在第一個文件中出現(xiàn)而未在第二個文件中出現(xiàn)的行;m-123則什么也不顯示。例如:假設(shè)要對文件myfile1和myfile2進行比較$catmyfile1main(){floata,b,i,j,z;a=i=10;b=j=5;z=i+j;printf(“z=%d\n”,z);}$catmyfile2#includemain(){floati,j,z;i=10;j=5;z=i+j;printf(“z=%f\n”,z);}$m-12myfile1myfile2main(){z=i+j;}就只顯示文件myfile1和myfile2中共有的行。Diff命令該命令的功能為逐行比較兩個文本文件,列出其不同之處。它比m命令完成更復(fù)雜的檢查。
行排序。語法:diff[選項]file1file2file1和file2一致,需要修改它們的哪些行。如果用“-”表示file1或fiie2,則表示標(biāo)準(zhǔn)輸入。如果file1或file2是目錄,那么diff將使用該目錄中的同名文件進行比較。例如:diffxumine把目錄xu中名為mine的文件與當(dāng)前目錄中的mine文件進行比較。通常輸出由下述形式的行組成:n1an3,n4n1,n2dn3n1,n2cn3,n4這些行類似ed命令把filel轉(zhuǎn)換成file2。字母(a、d和cn1,n2file1n3n4file2ad和c分別表示附加、刪除和修改操作。在上述形式的每一行的后面跟隨受到影響的若干行,以“<打頭的行屬于第一個文件,以“>”打頭的行屬于第二個文件。diff能區(qū)別塊和字符設(shè)備文件以及FIFO(管道文件),不會把它們與普通文件進行比較。如果file1和file2都是目錄,則diff會產(chǎn)生很多信息。如果一個目錄中只有一個文件,則產(chǎn)生一條信息,指出該目錄路徑名和其中的文件名。diff各選項的含義如下:-b忽略行尾的空格,而字符串中的一個或多個空格符都視為相等。如Howareyou與Howareyou被視為相同的字符串。-c采用上下文輸出格式(提供三行上下文)。-Cn采用上下文輸出格式(提供n行上下文)。-e產(chǎn)生一個合法的ed腳本作為輸出。-r當(dāng)file1和file2是目錄時,遞歸作用到各文件和目錄上。例如,文件ml.c的內(nèi)容為(左邊行號是有意加上的,以便前后對照):1main(){printf(“Hello!\n”);}5文件m2.c的內(nèi)容為:1main()2{3intn,m;4n=10;5printf(“%d\n”,m=n*10);6}輸入命令:$diffm1.cm2.c屏幕上顯示:3,5c3,6printf(“Hello?。躰”);}<5>3intn,m;>4n=10;>5printf(“%d\n”,m=n*10);>6}表示把文件m1.c的3至5行改成m2.c的3至6行后,兩個文件相同。第十課(六)文件的復(fù)制、刪除和移動命令cp命令該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,就如同DOS下的copy命令一樣,功能非常強大。語法:cp[選項]源文件或目錄目標(biāo)文件或目錄說明:該命令把指定的源文件復(fù)制到目標(biāo)文件或把多個源文件復(fù)制到目標(biāo)目錄中。該命令的各選項含義如下:-adpR選項的組合。-d拷貝時保留鏈接。-f刪除已經(jīng)存在的目標(biāo)文件而不提示。-i和fy時目標(biāo)文件將被覆蓋,是交互式拷貝。-p此時cp除復(fù)制源文件的內(nèi)容外,還將把其修改時間和訪問權(quán)限也復(fù)制到新文件中。
-r若給出的源文件是一目錄文件,此時cp將遞歸復(fù)制該目錄下所有的子目錄和文件。此時
目標(biāo)文件必須為一個目錄名。-l不作拷貝,只是鏈接文件。需要說明的是,為防止用戶在不經(jīng)意的情況下用cp命令破壞另一個文件,如用戶指定的目
標(biāo)文件名是一個已存在的文件名,用cp命令拷貝文件后,這個文件就會被新拷貝的源文件
覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。$cp-iexam1.cwang/shiyan1.c該命令將文件exam1.c拷貝到wang這個目錄下,并改名為shiyan1.c。若不希望重新命名,可以使用下面的命令:$cpexam1.cwang/$cp-rxu/liu/將xu目錄中的所有文件及其子目錄拷貝到目錄liu中。mv命令用戶可以使用mv命令來為文件或目錄改名或?qū)⑽募梢粋€目錄移入另一個目錄中。該命令
如同DOS下的ren和move的組合。語法:mv[選項]源文件或目錄目標(biāo)文件或目錄說明:視mv命令中第二個參數(shù)類型的不同(是目標(biāo)文件還是目標(biāo)目錄),mv命令將文件重mvmv命令將mv件刪除,而鏈至該文件的鏈接也將丟失。命令中各選項的含義為:-Imv要求用戶回答y或n,這樣可以避免誤覆蓋文件。-f禁止交互操作。在mv操作要覆蓋某已有的目標(biāo)文件時不給任何指示,指定此選項后,i選項將不再起作用。不經(jīng)意的情況下用mvmvi選項。需要注意的是,mv與cp的結(jié)果不同。mv好象文件“搬家”,文件個數(shù)并末增加,而cp對文件進行復(fù)制,文件個數(shù)增加了。例1:將xu中的所有文件移到當(dāng)前目錄(用“.”表示)中:$mvxu/*.例2:將文件重命名為$mvrm命令在linux中創(chuàng)建文件很容易,系統(tǒng)中隨時會有文件變得過時且毫無用處。用戶可以用rm命
變。rm命令的一般形式為:rm[選項]文件…如果沒有使用-r選項,則rm不會刪除目錄。該命令的各選項含義如下:-f忽略不存在的文件,從不給出提示。-r指示rm將參數(shù)中列出的全部目錄和子目錄均遞歸地刪除。-i進行交互式刪除。使用rm命令要格外小心。因為一旦一個文件被刪除,它是不能被恢復(fù)的。例如,用戶在輸入cpmvrm命令,當(dāng)用戶按了回車鍵并認(rèn)識到自己的錯誤時,已經(jīng)太晚了,文件已經(jīng)沒有了。為了防止此種情況的發(fā)生,可以使用rm命令中的i選項來確認(rèn)要刪除的每個文件。如果用戶輸入y,文件將被刪除。如果輸入任何其他東西,文test和example進行確認(rèn)。用戶最終決定刪除example文件,保留test文件。$rm-iitestexampleRemovetest?nRemoveexample?y第十課(七)文件鏈接命令ln命令的共享和安全性的問題。而且,即使我們刪除這個鏈接,也不會破壞原來的目錄。語法:ln[選項]目標(biāo)[鏈接名]ln[選項]目標(biāo)目錄鏈接有兩種,一種被稱為硬鏈接(HardLink),另一種被稱為符號鏈接(SymbolicLink)。
的硬鏈接。而對符號鏈接,則不存在這個問題。默認(rèn)情況下,ln產(chǎn)生硬鏈接。
在硬鏈接的情況下,參數(shù)中的“目標(biāo)被鏈接至[鏈接名]。如果[鏈接名]是一個目錄名,系
統(tǒng)將在該目錄之下建立一個或多個與“目標(biāo)同名的鏈接文件,鏈接文件和被鏈接文件的內(nèi)
[鏈接名]為一個文件,用戶將被告知該文件已存在且不進行鏈接。如果指
定了多個“目標(biāo)”參數(shù),那么最后一個參數(shù)必須為目錄。如果給ln命令加上-s選項,則建立符號鏈接。如果[鏈接名]已經(jīng)存在但不是目錄,將不做鏈接。[鏈接名]“目標(biāo)不在同一個文件系統(tǒng)中。如果[鏈接名]是一個已經(jīng)存在的目錄,系統(tǒng)將在該目錄下建立一個或多個與“目標(biāo)同名的文件,此新建的文件實際上是指向原“目標(biāo)的符號鏈接文件。第十課(八)目錄的創(chuàng)建與刪除命令mkdir命令功能:創(chuàng)建一個目錄(類似DOS下的md命令)。語法:mkdir[選項]dirname說明:該命令創(chuàng)建由dirname命名的目錄。要求創(chuàng)建目錄的用戶在當(dāng)前目錄中(dirname的父目錄中)具有寫權(quán)限,并且dirname不能是當(dāng)前目錄中已有的目錄或文件名稱。命令中各選項的含義為:-m對新建目錄設(shè)置存取權(quán)限。也可以用chmod命令設(shè)置。-p立好那些尚不存在的目錄,即一次可以建立多個目錄。例如:在當(dāng)前目錄中建立inin和inin下的/mail目錄,也就是連續(xù)建兩個目錄。$mkdir-p-m700.mail/該命令的執(zhí)行結(jié)果是在當(dāng)前目錄中創(chuàng)建嵌套的目錄層次inin/mail,權(quán)限設(shè)置為只有文件主有讀、寫和執(zhí)行權(quán)限。rmdir命令功能:刪除空目錄。語法:rmdir[選項]dirname說明:dirname表示目錄名。該命令從一個目錄中刪除一個或多個子目錄項。需要特別注意的是,一個目錄被刪除之前必須是空的。(注意,rm-rdir命令可代替rmdir,但是有很大危險性。)刪除某目錄時也必須具有對父目錄的寫權(quán)限。命令中各選項的含義為:-p遞歸刪除目錄dirname被刪除或者由于某種原因保留部分路徑,則系統(tǒng)在標(biāo)準(zhǔn)輸出上顯示相應(yīng)的信息。例如:$rmdir-pxu/txt將xu/txt目錄刪除。
改變工作目錄、顯示目錄內(nèi)容命令
cd命令功能:改變工作目錄。語法:cd[directory]說明:該命令將當(dāng)前目錄改變至directory所指定的目錄。若沒有指定directory,則回到用戶的主目錄。為了改變到指定目錄,用戶必須擁有對指定目錄的執(zhí)行和讀權(quán)限。該命令可以使用通配符(通配符含義請參見第十章)。例如:假設(shè)用戶當(dāng)前目錄是:xu,現(xiàn)需要更換到xu/pro目錄中,$cdpro此時,用戶可以執(zhí)行pwd命令來顯示工作目錄。$pwdxu/propwd命令在Linux層次目錄結(jié)構(gòu)中,用戶可以在被授權(quán)的任意目錄下利用mkdir可以利用cd命令從一個目錄轉(zhuǎn)換到另一個目錄。然而,沒有提示符來告知用戶目前處于哪一個目錄中。要想知道當(dāng)前所處的目錄,可以使用pwd命令,該命令顯示整個路徑名。語法:pwd說明:此命令顯示出當(dāng)前工作目錄的絕對路徑。例:$pwdxu顯示的路徑名為xu,每個目錄名都用“/”隔開,根目錄以開頭的“/”表示。ls命令ls是英文單詞list的簡寫,其功能為列出目錄的內(nèi)容。這是用戶最常用的一個命令之一,
因為用戶需要不時地查看某個目錄的內(nèi)容。該命令類似于DOS下的dir命令。
語法:ls[選項][目錄或是文件]ls將輸出其文件名
名時,就顯示當(dāng)前目錄的信息。命令中各選項的含義如下:-a顯示指定目錄下所有子目錄與文件,包括隱藏文件。
-A顯示指定目錄下所有子目錄與文件,包括隱藏文件。但不列出“.”和“..”。
-b對文件名中的不可顯示字符用八進制逃逸字符顯示。
-c按文件的修改時間排序。-C分成多列顯示各項。-dl目錄的詳細(xì)信息。-f不排序。該選項將使lts選項失效,并使aU選項有效。-F“/”“*”“@”FIFO)后面標(biāo)記“|”,socket文件后面標(biāo)記“=”。-i在輸出的第一列顯示文件的i節(jié)點號。-l以長格式來顯示文件的詳細(xì)信息。這個選項最常用。每行列出的信息依次是:文件類型與權(quán)限鏈接數(shù)文件屬主文件屬組文件大小建立或最近修改的時間名字對于符號鏈接文件,顯示的文件名之后有“—〉”和引用文件路徑名。對于設(shè)備文件,其“文件大小字段顯示主、次設(shè)備號,而不是文件大小。目錄中的總塊數(shù)顯示在長格式列表的開頭,其中包含間接塊。-L若指定的名稱為一個符號鏈接文件,則顯示鏈接所指向的文件。
-m輸出按字符流格式,文件跨頁顯示,以逗號分開。-n輸出格式與lUID號和GID號來表示,而不是實際的名稱。-o與l選項相同,只是不顯示擁有者信息。-p在目錄后面加一個“/”。-q將文件名中的不可顯示字符用“?”代替。-r按字母逆序或最早優(yōu)先的順序顯示輸出結(jié)果。-R遞歸式地顯示指定目錄的各個子目錄中的文件。-s給出每個目錄項所用的塊數(shù),包括間接塊。-t修改時間取決于是否使用了c或u選頂。缺省的時間標(biāo)記是最后一次修改時間。-u顯示時按文件上次存取的時間(最近優(yōu)先)而不是按名字排序。即將-t的時間標(biāo)記修改為最后一次訪問的時間。-x按行顯示出各排序項的信息。用ls-l10個字符構(gòu)成的字符串,其中第一個字符表示文件類型,它可以是下述類型之一:-普通文件d目錄l符號鏈接b塊設(shè)備文件c字符設(shè)備文件后面的9個字符表示文件的訪問權(quán)限,分為3組,每組3位。第一組表示文件屬主的權(quán)限,件的讀、寫和執(zhí)行權(quán)限。
各權(quán)限如下所示:
r讀w寫x執(zhí)行。對于目錄,表示進入權(quán)限。sUID或GID賦予執(zhí)行進程的UID(用戶IDGID(組ID)。t設(shè)置標(biāo)志位(留在內(nèi)存,不被換出)。如果該文件是目錄,在該目錄中的文件只能被超級的指針仍留在內(nèi)存。這樣再次執(zhí)行它時,系統(tǒng)就能更快地裝入該文件。-沒有設(shè)置權(quán)限。例1:列出當(dāng)前目錄的內(nèi)容。$ls-Fbin/lib/var/etc/tmp/index.例2:列出某個目錄的內(nèi)容。$ls–FxuMai1/map1e/mm/ptr/telnetd*fd/mboxmountsobsrc.tgztmp/例3:列出某個目錄下所有的文件(包括隱藏文件)。$1s-aFxu./..e1m/.netscape/map1eptr//.fvwin2rc95.term/mboxsobsrc.tgz.Xauthority.kermrcMai1/mm/te1netd*.bash-history.ncftp/fd/mounttmp/例4:用長格式列出某個目錄下所有的文件(包括隱藏文件)。$1s-laFxutotal584drwxr-xr-xl2rootroot1024Nov0222:07./
drwxr-xr-x15bbsbbs1024Jul2907:08/-rw-r--r--1yuusers4343Ju12922:20.bash-history
drwx------2yuusers1024May1706:36.e1m/
--rw------1rootroot4628Jun21l:34mboxlrwxrwxrwx1rootrootl4Ju12903:08mount->/mnt
drwxrwxr-x4rootroot1024Ju12303:43ptr/
-rw--r--r-1rootroot483997Ju1l517:3lsobsrc.tgz
-rwxr-xr-xlr
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同終止訴訟書范例大全
- 承包合同補充協(xié)議范本
- 9《古代科技耀我中華》(教學(xué)設(shè)計)-部編版道德與法治五年級上冊
- 餐飲空間設(shè)計合同范本
- 寧波建設(shè)用地使用權(quán)出讓合同范本
- 涉外企業(yè)外匯借款合同范本
- 裝修工程合同家庭居室版
- 8《同學(xué)相伴》教學(xué)設(shè)計-2024-2025學(xué)年道德與法治三年級上冊統(tǒng)編版
- 6 將相和 第一課時 教學(xué)設(shè)計-2024-2025學(xué)年語文五年級上冊統(tǒng)編版
- 車輛借用合同書
- 2025年02月黃石市殘聯(lián)專門協(xié)會公開招聘工作人員5人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2024-2025學(xué)年第二學(xué)期開學(xué)典禮-開學(xué)典禮校長致辭
- 網(wǎng)絡(luò)保險風(fēng)險評估-洞察分析
- 2025-2030年中國旅居康養(yǎng)行業(yè)全國市場開拓戰(zhàn)略制定與實施研究報告
- 食品檢驗員聘用合同樣本
- 六年級信息技術(shù)下冊教學(xué)計劃
- 2025年九年級數(shù)學(xué)中考復(fù)習(xí)計劃
- 《汽車專業(yè)英語》2024年課程標(biāo)準(zhǔn)(含課程思政設(shè)計)
- 《物料擺放規(guī)范》課件
- 2024年資助政策主題班會課件
- 《煙花效果及制作》課件
評論
0/150
提交評論