Linux操作系統(tǒng)基礎與應用(CentOSStream9) 課件 張宏甫 項目3、4 管理文件與目錄、管理文本文件_第1頁
Linux操作系統(tǒng)基礎與應用(CentOSStream9) 課件 張宏甫 項目3、4 管理文件與目錄、管理文本文件_第2頁
Linux操作系統(tǒng)基礎與應用(CentOSStream9) 課件 張宏甫 項目3、4 管理文件與目錄、管理文本文件_第3頁
Linux操作系統(tǒng)基礎與應用(CentOSStream9) 課件 張宏甫 項目3、4 管理文件與目錄、管理文本文件_第4頁
Linux操作系統(tǒng)基礎與應用(CentOSStream9) 課件 張宏甫 項目3、4 管理文件與目錄、管理文本文件_第5頁
已閱讀5頁,還剩130頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

項目3管理文件與目錄【項目情景】任務3-1了解文件類型與目錄結(jié)構(gòu)任務3-2文件和目錄的基本操作任務3-3查找文件內(nèi)容或文件位置任務3-4文件壓縮歸檔01【學習目標】【知識目標】【能力目標】【素養(yǎng)目標】【知識目標】知道Linux系統(tǒng)的文件類型和目錄結(jié)構(gòu)熟悉文件和目錄基本操作掌握查找文件和內(nèi)容的方法了解文件壓縮歸檔命令【能力目標】掌握Linux系統(tǒng)的文件類型掌握Linux系統(tǒng)的目錄結(jié)構(gòu)掌握Linux系統(tǒng)下文件的基本操作掌握Linux系統(tǒng)下的文件打包、壓縮等操作【素養(yǎng)目標】提高溝通能力和表達能力,可以向他人清晰表達項目過程培養(yǎng)合作意識,做到與小組成員互相幫助,取長補短02【項目情景】【項目情景】小陳通過前期的學習,已經(jīng)能夠在字符界面下完成一些基本操作。然而,僅僅掌握目前學習的幾個命令還不足以高效地完成對目錄和文件的操作。因此,小陳決定繼續(xù)學習Linux系統(tǒng)中的目錄與文件管理命令。03任務3-1了解文件類型與目錄結(jié)構(gòu)【任務目標】任務3-1了解文件類型與目錄結(jié)構(gòu)【任務目標】3.1.1了解Linux文件類型3.1.2了解Linux目錄結(jié)構(gòu)【任務目標】在Linux系統(tǒng)的管理與使用過程中,文件和目錄是系統(tǒng)管理員最常接觸的對象。對文件和目錄的管理是Linux系統(tǒng)運行和維護的基礎工作。計算機系統(tǒng)中有大量的文件,為了方便管理和查找,Linux系統(tǒng)采用目錄的方式將不同類型或功能的文件分類存儲在不同的目錄中。在本任務中,小陳需要熟悉Linux系統(tǒng)中不同類型的文件,并理解文件目錄結(jié)構(gòu)及其作用。因此,小陳制定了如下的任務目標:1.了解Linux系統(tǒng)的文件類型及系統(tǒng)目錄結(jié)構(gòu)2.掌握文件和目錄的常用操作命令。3.會使用查找和打包壓縮命令。3.1.1了解Linux文件類型磁盤上的文件系統(tǒng)是分層次的,由若干目錄及其子目錄組成,最上層的目錄稱為根目錄,用“/”表示。1.文件與目錄的定義2.文件結(jié)構(gòu)3.文件類型1.文件與目錄的定義表3.1文件與目錄定義表名稱定義文件系統(tǒng)它是磁盤上有特定格式的一片區(qū)域,操作系統(tǒng)通過文件系統(tǒng)可以方便地查尋和訪問其中所包含的磁盤塊。文件文件系統(tǒng)中存儲數(shù)據(jù)的一個命名對象。一個文件可以是空文件,但仍可為操作系統(tǒng)提供其他信息。目錄包含許多文件項目的一類特殊文件。目錄支持文件系統(tǒng)的層次結(jié)構(gòu)。文件系統(tǒng)中的每個文件都登記在一個(或多個)目錄中。子目錄包含在另一個目錄中的目錄。包含子目錄的目錄稱為父目錄。除了根目錄以外,所有的目錄都是子目錄,并且有它們的父目錄。根目錄就作為自己的父目錄。文件名用來標識文件的字符串,它保存在一個目錄文件項中。路徑名由斜線字符“/”結(jié)合在一起的一個或多個文件名的集合。路徑名指定一個文件在分層的樹形結(jié)構(gòu)(即文件系統(tǒng))中的位置。2.文件結(jié)構(gòu)文件是Linux操作系統(tǒng)處理信息的基本單位。所有軟件都組織成文件形式。(1)文件的成分無論文件是一個程序、一個文檔、一個數(shù)據(jù)庫,或者是一個目錄,操作系統(tǒng)都會賦予文件相同的結(jié)構(gòu),具體信息如下:①索引節(jié)點:又稱inode(元數(shù)據(jù))。在文件系統(tǒng)結(jié)構(gòu)中,包含有關相應文件信息的一個記錄,這些信息包括文件類型、權限、硬鏈接數(shù)、所有者及所屬組、文件大小、時間信息等。②數(shù)據(jù):文件的具體內(nèi)容存放地。2.文件結(jié)構(gòu)(2)命名文件文件名保存在目錄文件中。Linux的文件名幾乎可以由ASCII字符的任意組合構(gòu)成,文件名可長達255個字符。為方便管理文件,文件名應遵循以下規(guī)則:①文件名應盡量簡單,并且應反映出文件內(nèi)容。文件名沒有必要超過14個字符。②除斜杠“/”和空字符以外,文件名可以包含任意的ASCII字符,因為這兩個字符被內(nèi)核當做表示路徑名的特殊字符來解釋。③習慣上允許使用下線符“_”和句點“.”來區(qū)別文件的類型,使文件名更易讀。但是應避免使用以下字符,因為對系統(tǒng)的shell來說,它們有特殊的含義。這些字符是:;|<>`"'$!%&*?\()[],另外文件名應避免使用空格、制表符或其他控制字符。④同類文件應使用同樣的后綴或擴展名。⑤Linux系統(tǒng)區(qū)分文件名的大小寫,例如名為letter的文件與名為Letter的文件不是同一個文件。說明:以圓點“.”開頭的文件名是隱含文件,默認方式下使用ls命令并不能將它們在屏幕上顯示出來。同樣,在默認情況下,shell通配符并不匹配這類文件名。2.文件結(jié)構(gòu)(3)文件名擴展字符為了能一次處理多個文件,shell提供了幾個特別字符,稱為文件名擴展字符(也稱通配符)。文件名擴展字符主要有以下幾種:①星號“*”:與0個或多個任意的字符相匹配,可以匹配當前目錄下的所有文件,但以點“.”開頭的隱含文件除外。例如:file*可以代表file123、fileabc或②問號“?”:只與一個任意的字符匹配??梢允褂枚鄠€問號。例如:file?可以與file1、file2、file3匹配,但不與file23、file10匹配。

③方括號“[]”:只與方括號中字符之一匹配,可以用短橫代表一個范圍內(nèi)的字符,在方括號中如果以驚嘆號開始,表示不與驚嘆號后的字符匹配。例如,file[1234]只與文件file1、file2、file3或file4匹配;file[!1234]除了file1、file2、file3和file4這4個文件外,與其他任何一個以file起始的文件名匹配。3.文件類型Linux系統(tǒng)總共有7種類型的文件,分為三大類:普通文件、目錄文件和特殊文件。特殊文件包含5種類型:鏈接文件、塊設備文件、字符設備文件、套接字文件、管道文件。(1)普通文件普通文件也稱為常規(guī)文件,包含各種長度的字符串。核心對這些文件沒有進行結(jié)構(gòu)化,只是作為有序的字符序列將它提交給應用程序。應用程序自己組織和解釋這些數(shù)據(jù)。它包括文件,字符設備文件,命令文件,塊設備文件,壓縮文件,圖片文件,視頻文件等。第一個屬性為[-]。(2)目錄文件目錄文件就是我們平常說的文件夾,在Linux中,使用cd命令可以進到目錄中。第一個屬性為[d]。(3)鏈接文件類似Windows下面的快捷方式,方便用戶從不同的位置來訪問原始文件。在Linux系統(tǒng)中有兩種鏈接:硬鏈接和軟連接。軟連接又稱為符號鏈接。第一個屬性為[l]。3.文件類型(4)塊設備文件以數(shù)據(jù)塊為單位進行隨機訪問的設備最常見的塊設備就是磁盤。例如一號硬盤的代碼是/dev/hda1等文件。第一個屬性為[b]。(5)字符設備文件用來描述以字符流方式進行操作的接口設備,例如鍵盤、鼠標等。第一個屬性為[c]。(6)套接字文件通常用于網(wǎng)絡數(shù)據(jù)連接。系統(tǒng)啟動一個程序來監(jiān)聽客戶端的要求,客戶端就可以通過套接字來進行數(shù)據(jù)通信。第一個屬性為[s]。(7)管道文件管道是Linux中的一種進程通訊機制。管道文件則是建立在內(nèi)存中可以同時被兩個進程訪問的文件。通常,一個進程寫一些數(shù)據(jù)到管道中,這些數(shù)據(jù)就可以被另一個進程從這個管道中讀物出來。管道文件可以分為兩種類型:無名管道文件和命名管道文件。第一個屬性為[p]。3.1.2了解Linux目錄結(jié)構(gòu)Linux操作系統(tǒng)使用分層目錄結(jié)構(gòu)來組織所有的文件。這意味著所有的文件形成了一棵樹形目錄,類似于Windows系統(tǒng)中的文件夾,這個目錄樹包含文件和其他目錄。文件系統(tǒng)中的第一級目錄被稱為根目錄。根目錄包含文件和子目錄,子目錄又包含更多的文件和子目錄,以此類推。目錄本身也是一種特殊類型的文件。Linux系統(tǒng)通過目錄將系統(tǒng)中的所有文件系統(tǒng)進行層級和分組組織,形成了Linux文件系統(tǒng)的樹形結(jié)構(gòu)。從根目錄開始,所有其他目錄都是從根目錄衍生出來的,用戶可以瀏覽整個系統(tǒng),并可以進入任何一個有訪問權限的目錄,并訪問該目錄下的文件。1.Linux系統(tǒng)的目錄結(jié)構(gòu)在Linux系統(tǒng)中并不存在C、D、E、F等盤符,Linux系統(tǒng)中的一切文件都是從“根(/)”目錄開始的,是一種單一的根目錄結(jié)構(gòu)。根目錄位于Linux文件系統(tǒng)的頂層,所有分區(qū)都掛載到根目錄下某個目錄中。Linux系統(tǒng)的目錄結(jié)構(gòu)如圖3.1所示。Linux系統(tǒng)的根目錄最為重要,其原因有兩點。(1)所有目錄都是由根目錄衍生出來的。(2)根目錄與系統(tǒng)的開機、修復、還原密切相關。因此,根目錄必須包含開機軟件、核心文件、開機所需程序、函數(shù)庫、修復系統(tǒng)程序等文件。Linux系統(tǒng)中的常見目錄結(jié)構(gòu)如表3-2所示。圖3.1Linux系統(tǒng)的目錄結(jié)構(gòu)2.目錄與路徑(1)文件目錄所謂文件目錄,就是將所有文件的說明信息采用樹型結(jié)構(gòu)組織起來,即常說的目錄。也就是說,整個文件系統(tǒng)有一個“根”(root),然后在根上分“杈”(directory),任何一個分杈上都可以再分杈,杈上也可以長出“葉子”?!案焙汀拌尽痹贚inux中被稱為“目錄”或“文件夾”,而“葉子”則是一個個文件。實踐證明,此種結(jié)構(gòu)的文件系統(tǒng)效率比較高。實際上,各個目錄中都會有一些文件和子目錄。并且,系統(tǒng)在建立每一個目錄時,都會自動為它建立兩個目錄文件:一個是“.”,代表該目錄自己;另一個是“..”,代表該目錄的父目錄。對于根目錄,“.”和“..”都代表其自己。Linux目錄提供了管理文件的一個方便途徑。每個目錄里都包含文件。用戶可以為特定的文件創(chuàng)建特定的目錄,也可以將一個目錄下的文件移動或復制到另一個目錄下。(2)當前工作目錄用戶當前所在的目錄稱為當前工作目錄。2.目錄與路徑(3)用戶主目錄用戶主目錄是系統(tǒng)管理員創(chuàng)建用戶時建立起來的,每個用戶都有自己的主目錄,不同用戶的主目錄一般互不相同。用戶主目錄一般在/home子目錄下,與用戶名相同。需要注意的是,用戶登錄系統(tǒng)時,其主目錄為其工作目錄。(4)路徑顧名思義,路徑是指從樹型目錄的某個目錄層次到某個文件的一條道路。路徑主要由目錄名稱構(gòu)成,中間用“/”分隔。用戶在對文件進行訪問時,要給出文件所在的路徑。路徑又分為相對路徑和絕對路徑。絕對路徑是指從“根”開始、到達相應文件的所有目錄名連接而成,絕對路徑是唯一的,也稱為完全路徑;相對路徑是從用戶當前工作目錄開始、到達相應文件的路徑。04任務3-2文件和目錄的基本操作【任務目標】任務3-2文件和目錄的基本操作【任務目標】3.2.1查找與定位文件3.2.2文本文件查看3.2.3文件目錄常規(guī)操作3.2.4創(chuàng)建鏈接文件3.2.5顯示文件或目錄的磁盤占用量【任務目標】通過文件和目錄結(jié)構(gòu)的學習,小陳已經(jīng)理解了Linux系統(tǒng)中的文件類型和目錄結(jié)構(gòu),并希望通過命令來進行實際操作。他查閱了一些資料,了解到日常工作中文件和目錄的基本操作包括查看、新建、復制、移動、刪除、統(tǒng)計和壓縮等。在本任務中,小陳需要學習與這些基本功能相對應的命令,以便能夠快速有效地完成日常工作。因此,小陳制定了如下的任務目標:1.學習如何查找定位文件的命令。2.掌握文件目錄日常操作所需要的基本命令。3.能夠創(chuàng)建鏈接,會使用命令查看目錄,文件的磁盤占用情況。3.2.1查找與定位文件1.pwd命令2.cd命令3.ls命令4.tree命令1.pwd命令pwd命令來自于英文詞組“printworkingdirectory”的縮寫,其功能是用于顯示當前工作目錄的路徑,即顯示所在位置的絕對路徑。在實際工作中,我們經(jīng)常會在不同目錄之間進行切換,為了防止“迷路”,可以使用pwd命令快速查看當前所處的工作目錄路徑,方便開展后續(xù)工作。命令及運行結(jié)果如下。[root@server~]#pwd/root2.cd命令cd命令來自于英文詞組“changedirectory”的縮寫,其功能是用于更改當前所處的工作目錄,路徑可以是絕對路徑,也可以是相對路徑,若省略不寫則會跳轉(zhuǎn)至當前使用者的家目錄。cd命令的格式如下:cd[選項][目錄名]cd命令的選項及其含義如表3.3所示。3.ls命令ls是最常被使用到的Linux命令之一,來自于英文單詞list的縮寫,其功能是列舉出指定目錄下的文件名稱及其屬性。默認不加參數(shù)的情況下,ls命令會列出當前工作目錄中的文件信息,經(jīng)常與cd和pwd命令搭配使用,十分方便。ls命令的格式如下:ls[選項][文件]該命令的選項及其含義如表3.4所示:通配符是一種特殊語句,主要有星號(*)和問號(?),通配符及其含義詳見表3.5。當不知道真正的字符或者不想輸入多個字符時,常常使用通配符代替一個或多個真正的字符。熟練運用通配符可以提高工作效率并簡化一些煩瑣的處理步驟。4.tree命令tree命令的功能是用于以樹狀圖形式列出目錄內(nèi)容,幫助運維人員快速了解到目錄的層級關系。使用時直接輸入該命令后按回車鍵即可。雖然ls命令可以很便捷地查看目錄內(nèi)有哪些文件,但無法直觀地獲取目錄內(nèi)文件的層次結(jié)構(gòu)。假如目錄a中有個b,b中又有個c,那么ls命令就只能看到最外面的a目錄,顯然有些時候這不太夠用。tree命令則能夠以樹狀圖的形式列出目錄內(nèi)所有文件的結(jié)構(gòu)。3.2.2文本文件查看1.cat命令2.more命令3.head命令4.tail命令1.cat命令cat命令來自于英文單詞concatenate的縮寫,其功能是用于查看文件內(nèi)容。cat命令適合查看內(nèi)容較少的、純文本的文件。另外,還可以用來連接兩個文件或多個文件,形成新的文件。cat命令的格式如下:cat[選項][文件]該命令的選項及其含義如表3.6所示:cat命令可以同時查看多個文件,文件的內(nèi)容依次顯示;如果將多個文件的內(nèi)容輸出重定向到指定的文件,則實現(xiàn)了文件內(nèi)容的合并。2.more命令more命令的功能是用于分頁顯示文本文件內(nèi)容。使用more命令進行分頁查看,可以將文本內(nèi)容一頁一頁地顯示在終端界面上。用戶每按一次回車鍵,就會顯示下一行文本;每按一次空格鍵,就會顯示下一頁文本。用戶可以通過按鍵來逐頁或逐行瀏覽文本文件,直到查看完為止。more命令的格式如下:more[選項][文件]該命令的選項及其含義如表3.7所示:使用more命令顯示文件時,會逐行或逐頁顯示,方便用戶閱讀,最基本的操作是按Enter鍵顯示下一行,按空格鍵(Space)顯示下一頁,按b鍵顯示上一頁,按q鍵退出或文件結(jié)束自動退出。3.head命令head命令的功能是顯示文件開頭的內(nèi)容,默認為前10行。可以通過選項“-n”設定顯示的行數(shù)。head命令的格式如下:head[選項][文件]4.tail命令tail命令的功能是用于查看文件的尾部內(nèi)容。默認情況下,它會在終端界面上顯示指定文件的末尾10行內(nèi)容。如果指定了多個文件,tail命令會在顯示每個文件的內(nèi)容前加上文件名,以區(qū)分它們。tail命令的高級用法中,-f選項的作用是持續(xù)顯示文件的最新內(nèi)容。這類似于機場候機廳的大屏幕,會不斷展示最新的消息給用戶,特別適用于查看日志文件,無需手動刷新頁面,即可實時獲取最新的日志信息。tail命令的格式如下:tail[選項][文件]3.2.3文件目錄常規(guī)操作1.touch命令2.mkdir命令3.cp命令4.mv命令5.rm命令6.file命令1.touch命令touch命令的功能是用于創(chuàng)建文件或修改文件的時間戳。當指定的文件不存在時,touch命令會創(chuàng)建一個空的文本文件;而當文件已經(jīng)存在時,touch命令會更新文件的訪問時間(Atime)和修改時間(Mtime)。請注意,touch命令不會修改文件的創(chuàng)建時間(Ctime),而是將訪問時間和修改時間設置為當前時間。touch命令的格式如下。touch[選項][文件]touch命令的選項及其含義如表3.8所示。2.mkdir命令mkdir命令來自于英文詞組“makedirectories”的縮寫,其功能是用來創(chuàng)建目錄文件。若要創(chuàng)建的目標目錄已經(jīng)存在,則會提示已存在而不繼續(xù)創(chuàng)建,不覆蓋已有文件。而目錄不存在,但具有嵌套的依賴關系,例如a/b/c/d/e/f,要想一次性創(chuàng)建則需要加入-p選項,進行遞歸操作。mkdir命令的格式如下。mkdir[選項][文件]mkdir命令的選項及其含義如表3.9所示。3.cp命令cp命令來自于英文單詞copy的縮寫,用于將一個或多個文件或目錄復制到指定位置,亦常用于文件的備份工作。-r選項用于遞歸操作,復制目錄時若忘記加則會直接報錯,而-f選項則用于當目標文件已存在時會直接覆蓋不再詢問,這兩個參數(shù)尤為常用。cp命令的格式如下:cp[選項]源文件目標文件該命令的選項及其含義如表3.10所示。3.cp命令在Linux系統(tǒng)中,cp操作有三種情況:(1)如果目標文件是目錄,則會把源文件復制到該目錄中。(2)如果目標文件也是普通文件,則會詢問是否要覆蓋它。(3)如果目標文件不存在,則執(zhí)行正常的復制操作。需要注意的是,源文件可以有多個,但這種情況下,目標文件必須是目錄才行。4.mv命令mv命令是move的縮寫,其功能與英文含義相同,用于對文件進行剪切和重命名操作。mv命令是一個常用的文件管理命令,需要注意它與復制命令的區(qū)別。cp命令用于文件的復制操作,即在目標位置創(chuàng)建一個新的文件副本,而mv命令則是對文件進行移動或重命名操作。通過mv命令,文件的位置發(fā)生變化,但總文件數(shù)不增加或減少。在同一個目錄內(nèi)對文件進行剪切操作,實際上可以理解為對文件進行重命名操作。mv命令的格式如下:mv[選項]源文件目標文件該命令的選項及其含義如表3.11所示。5.rm命令rm命令是remove的縮寫,其功能是用于刪除文件或目錄。可以一次性刪除多個文件,也可以遞歸地刪除目錄及其內(nèi)的所有子文件。注意:rm命令是一個非常危險的命令,在使用時必須特別小心,尤其對于新手而言更需要格外注意。例如,執(zhí)行rm-rf/\*命令會清空系統(tǒng)中的所有文件,并且這些文件可能無法恢復。因此,在執(zhí)行rm命令之前,務必仔細確認當前所在的目錄以及要刪除的文件或目錄,并在確認無誤后再敲擊回車鍵。請時刻保持清醒的頭腦,以避免意外刪除重要文件或系統(tǒng)文件。rm命令的格式如下:rm[選項]文件或目標文件該命令的選項及其含義如表3.12所示。6.file命令file命令的功能是用于識別文件的類型,也可以用來辨別一些內(nèi)容的編碼格式。由于Linux系統(tǒng)并不是像Windows系統(tǒng)那樣通過擴展名來定義文件類型,因此用戶無法直接通過文件名來進行分辨。file命令則是為了解決此問題,通過分析文件頭部信息中的標識來顯示文件類型。file命令的格式如下:file[選項]文件該命令的選項及其含義如表3.13所示。3.2.4創(chuàng)建鏈接文件ln命令來自于英文單詞link的縮寫,中文譯為“鏈接”,其功能是用于為某個文件在另外一個位置建立同步的鏈接。Linux系統(tǒng)中的鏈接文件有兩種形式,一種是硬鏈接(hardlink),另一種是符號鏈接(symboliclink,也稱為軟鏈接)。軟鏈接相當于Windows系統(tǒng)中的快捷方式文件,原始文件被移動或刪除后,軟鏈接文件也將無法使用,而硬鏈接則是通過復制文件的inode屬性塊來實現(xiàn),因此即使原始文件被移動或刪除,硬鏈接文件仍然可以使用。ln命令的格式如下:ln[選項]源文件或目錄連接文件名ln命令的選項及其含義如表3.14所示。3.2.5顯示文件或目錄的磁盤占用量du命令來自于英文詞組“DiskUsage”的縮寫,其功能是用于查看文件或目錄的大小。通常用于按照指定容量單位來查看文件或目錄在磁盤中的占用情況。du命令的格式如下:du[選項]文件該命令的選項及其含義如表3.15所示。05任務3-3查找文件內(nèi)容或文件位置【任務目標】任務3-3查找文件內(nèi)容或文件位置【任務目標】3.3.1查找與條件匹配的文件或字符串3.3.2查找命令文件【任務目標】通過前面的學習,小陳掌握了Linux系統(tǒng)中文件和目錄的日常操作命令,已經(jīng)能夠完成大部分的日常操作任務。但是,他發(fā)現(xiàn)有時候很難找到自己想要處理的文件或目錄,這嚴重影響了工作效率。師傅告訴他可以學習一下Linux中的查找命令,這樣效率就會大大提高。因此,小陳制定了如下的任務目標:1.掌握查找文件和目錄的命令find和locate。2.掌握在命令輸出結(jié)果中查找信息的命令grep。3.掌握定位命令的二進制程序的命令whereis和which。3.3.1查找與條件匹配的文件或字符串合理利用搜索功能可以提高檢索的效率,Linux系統(tǒng)提供了多種搜索命令,包括文件內(nèi)容查找命令和文件位置查找命令。需要掌握以下常用搜索命令。1.find命令2.Locat命令3.grep命令1.find命令find命令的功能是根據(jù)給定的路徑和條件查找相關的文件或目錄。它具有很多可用的參數(shù),并且支持正則表達式。通過結(jié)合管道符號,還可以實現(xiàn)更復雜的功能。對于系統(tǒng)管理員和普通用戶來說,find命令是日常工作中必須掌握的命令之一。find命令通常從根目錄(/)開始進行全盤搜索。然而,對于服務器負載較高的情況,建議在高峰時段避免使用find命令進行模糊搜索,因為這可能會占用較多的系統(tǒng)資源。find命令的格式如下。find[路徑][選項]該命令的選項及其含義如表3.16所示。2.Locat命令locate命令的功能是快速查找文件或目錄。與find命令進行全盤搜索不同,locate命令是基于數(shù)據(jù)庫文件(/var/lib/mlocate/mlocate.db)進行定位查找,因此速度更快。由于搜索范圍被限定,locate命令能夠更快地找到所需的文件或目錄。在使用locate命令之前,建議先使用updatedb命令來更新數(shù)據(jù)庫文件,然后再使用locate命令進行查找,這樣能夠保證結(jié)果的準確性。locate命令的格式如下。locate[選項]匹配條件locate命令的選項及其含義如表3.17所示。3.grep命令grep命令來自于英文詞組"globalsearchregularexpressionandprintouttheline"的縮寫,用于進行全局搜索并打印匹配行的功能。通常與正則表達式結(jié)合使用,grep命令可以根據(jù)指定的模式進行搜索,并輸出匹配的結(jié)果。人們經(jīng)常使用不同的參數(shù)來補充搜索過程或篩選輸出結(jié)果,使得grep命令在使用時非常靈活。grep命令的格式如下。grep[選項]匹配條件grep命令的選項及其含義如表3.18所示。3.3.2查找命令文件1.whereis命令2.which命令1.whereis命令whereis命令用于查找命令的二進制程序、源代碼文件和man手冊頁等相關文件的路徑。whereis命令的查找速度非??欤驗樗窃谝粋€數(shù)據(jù)庫中進行查詢。該數(shù)據(jù)庫是Linux系統(tǒng)自動創(chuàng)建的,包含了本地所有文件的信息,并且每天通過自動執(zhí)行updatedb命令進行更新。然而,正因為如此,whereis命令的搜索結(jié)果有時可能不準確。例如,如果剛添加的文件尚未被更新到數(shù)據(jù)庫中,那么該文件將無法被whereis命令找到。whereis命令的格式如下:whereis[選項]文件名whereis命令的選項及其含義如表3.19所示。2.which命令which命令的功能是用于查找命令文件,能夠快速搜索二進制程序所對應的位置。例如查找grep命令可執(zhí)行文件所在的絕對路徑。[root@server~]#whichgrepaliasgrep='grep--color=auto'/usr/bin/grep06任務3-4文件壓縮歸檔【任務目標】任務3-4文件壓縮歸檔【任務目標】3.4.1認識tar包3.4.2使用和管理tar包3.4.3文件壓縮與解壓縮3.4.4tar包的特殊使用【任務目標】通過前面的學習,小陳已經(jīng)能夠高效地完成對文件和目錄的操作和管理。然而,他發(fā)現(xiàn)在Linux中當需要通過網(wǎng)絡將多個文件傳輸給同事時并不方便。于是,師傅告訴他可以先將這些文件進行歸檔、打包和壓縮,然后再進行傳輸,這樣可以提高效率。因此,小陳制定了如下的任務目標:1.掌握打包歸檔的常用方法。2.掌握Linux系統(tǒng)內(nèi)壓縮和解壓縮的方法。3.4.1認識tar包在Windows系統(tǒng)中,最常見的壓縮文件是.zip和.rar。Linux系統(tǒng)中,最常見的壓縮文件是.gz、.tar.gz、.tgz、.bz2、.z和.tar等。在Linux中,很多壓縮命令只能針對一個文件進行操作,當有大量文件需要壓縮時,就需要進行歸檔打包,然后再用壓縮命令進行壓縮。所以我們要理解三個概念:1.打包是指將許多文件和目錄集中存儲在一個文件中。2.壓縮是指利用算法對文件進行處理,從而達到減少磁盤空間占用的目的。3.解打包就是從歸檔文件中還原所需文件,也就是打包的反過程。3.4.2使用和管理tar包tar命令的功能是用于壓縮和解壓縮文件,能夠制作出Linux系統(tǒng)中常見的.tar、.tar.gz、.tar.bz2等格式的壓縮包文件。對于RHEL7、CentOS7版本以后的系統(tǒng),解壓時可以不加壓縮格式參數(shù)(如z或j),系統(tǒng)能自動進行分析并解壓。tar命令的格式如下。tar[選項]文件名或目錄tar命令的選項及其含義如表3.20所示。注意:關于tar命令有以下幾點需要說明。(1)選項“-cvf”一般是習慣用法,記住打包時,需要指定打包之后的文件名,而且要用“.tar”作為擴展名。上例是打包單個文件和目錄,tar命令也可以打包多個文件或目錄,只要用空格分開即可。(2)解包和打包相比,只是把打包選項“-cvf“更換為“-xvf”。(3)使用“-xvf”選項,會把包中的文件釋放到工作目錄下。如果想要指定位置,則需要使用“-C(大寫)”選項。3.4.3文件壓縮與解壓縮常用的壓縮命令gzip,解壓縮命令unzip。1.gzip命令2.unzip命令1.gzip命令gzip命令來自于英文單詞gunzip的縮寫,其功能是用于壓縮和解壓文件。gzip是一款使用廣泛的壓縮工具,文件經(jīng)過壓縮后一般會以.gz后綴結(jié)尾,與tar命令合用后即為.tar.gz后綴。據(jù)統(tǒng)計,gzip命令對文本文件的壓縮比率通常能達到60%~70%,壓縮后可以很好的提升存儲空間的使用率,還能夠在網(wǎng)絡傳輸文件時減少等待時間。gzip命令的格式如下:gzip[選項]文件名或目錄gzip命令的選項及其含義如表3.21所示。2.unzip命令unzip命令用于解壓縮zip格式文件,雖然Linux系統(tǒng)中更多的使用tar命令進行對壓縮包的管理工作,但有時也會收到同Windows系統(tǒng)常用的.zip和.rar格式的壓縮包文件,unzip格式便派上了用場。直接使用unzip命令解壓縮文件后,壓縮包內(nèi)原有的文件會被提取并輸出保存到當前工作目錄下。常見用法有三種:分別是將壓縮包文件解壓到當前工作目錄中,將壓縮文件解壓到指定目錄中,測試壓縮包文件是否完整、有無損壞。具體用法如下:(1)將壓縮包文件解壓到當前工作目錄中的[root@server~]#unziplatest.zipArchive:latest.zipcreating:wordpress/inflating:wordpress/xmlrpc.phpinflating:wordpress/wp-blog-header.phpinflating:wordpress/readme.html2.unzip命令(2)將壓縮包文件解壓到指定目錄中[root@server~]#unziplatest.zip-d/homeArchive:latest.zipcreating:/home/wordpress/inflating:/home/wordpress/xmlrpc.phpinflating:/home/wordpress/wp-blog-header.phpinflating:/home/wordpress/readme.html(3)測試壓縮包文件是否完整、有無損壞[root@server~]#unzip-tlatest.zipArchive:latest.ziptesting:wordpress/OKtesting:wordpress/xmlrpc.phpOKtesting:wordpress/wp-blog-header.phpOKtesting:wordpress/readme.htmlOK3.4.4tar包的特殊使用在實際應用中,為了使操作簡便高效,通??梢允褂胻ar命令結(jié)合gzip命令來進行文件或目錄的壓縮和解壓縮。以下是tar調(diào)用gzip的示例:tar中使用-z這個參數(shù)來調(diào)用gzip。07【拓展知識】【拓展知識】通過前面三個項目的學習,我相信大部分讀者對Linux系統(tǒng)都有了一定的了解,有人覺得Linux系統(tǒng)與以往的windows系統(tǒng)有很大的差別,挑戰(zhàn)性極大,反而引發(fā)了很大的興趣。還有一部分讀者對Linux系統(tǒng)產(chǎn)生了畏難情緒,開始打退堂鼓了。筆者結(jié)合自己的教學經(jīng)驗,向讀者提供幾點學習建議。(1)如何學習Linux系統(tǒng)對事物的認識一般都是由淺入深、由表及里的過程,循序才能漸進。學習Linux系統(tǒng)也需要有一定的順序和方法,這也是你學習本教程的意義所在。如果你是初學者,我建議按照本教程的順序進行閱讀,不要跳躍閱讀。急于求成往往難以達到預期效果,而且揠苗也不見得能讓它們更好地生長。此外,強烈建議你記好讀書筆記,在閱讀過程中做記錄、練習和思考。正如古語所說:“學而不思則罔,思而不學則殆”。比起勤奮,思考能力更加重要,不要盲目學習,要有思考的能力。養(yǎng)成良好的閱讀習慣,一本書,單純地讀一遍可能無法深入學習,多次閱讀、反復實踐,才能讓知識深深地印在腦海中?!就卣怪R】(2)忘記Windows,改變思維模式思想的轉(zhuǎn)變比暫時性的技術提高更重要,因為它能幫助你加快學習速度。很多人在使用Linux系統(tǒng)時仍然抱著Windows系統(tǒng)的思維方式,比如有讀者問:“是把Linux裝在C盤嗎?”可見,大多數(shù)初學者已經(jīng)習慣了使用Windows系統(tǒng)的圖形界面來完成操作。然而,在學習和日后使用Linux系統(tǒng)時,我們基本上是在命令行模式下進行操作。如果你想深入了解Linux系統(tǒng),就必須學習命令行操作。因此,在開始學習Linux系統(tǒng)之前,我們需要擺脫對Windows系統(tǒng)思維的束縛。這實際上是一個使用習慣的問題。如果我們最初接觸的操作系統(tǒng)是Linux系統(tǒng),那么當我們學習Windows系統(tǒng)時,可能會對其必須啟動圖形界面才能操作感到困惑?!就卣怪R】(3)多記憶Linux命令當你經(jīng)過一段時間的學習后,應該擴充自己的知識,多學習Linux命令。但是,在初學階段不需要系統(tǒng)地學習所有Linux命令,只需將教材上介紹的命令熟練掌握即可。學習Linux命令的最佳方法是學習Shell腳本編程。Shell腳本比其他語言更簡單,但功能卻十分強大。通過學習Shell腳本編程,你能夠掌握許多Linux命令。此外,購買一本命令參考手冊是必要的,當遇到不熟悉的命令時可以隨時查詢,這比查閱man文檔更快捷。在Linux中,命令可分為系統(tǒng)基本命令和應用程序命令,系統(tǒng)基本命令是所有Unix類系統(tǒng)都支持的命令。【拓展知識】(4)深究Linux系統(tǒng)結(jié)構(gòu)以及Linux系統(tǒng)的管理等你對Linux系統(tǒng)有了一定的認識后,了解了/etc目錄下的配置文件的作用,接下來可以開始學習系統(tǒng)結(jié)構(gòu)。了解系統(tǒng)結(jié)構(gòu)并不是要你去查看哪個文件夾放置了什么內(nèi)容,而是要學習一些原理性的知識。例如,了解系統(tǒng)是如何引導的,引導后啟動了哪些組件,以及系統(tǒng)中哪些是最基本的庫文件,它們有什么作用等等?!就卣怪R】(5)遇到問題要想辦法解決學習和使用Linux系統(tǒng)時,我們會或多或少地遇到問題。在面對問題時,首先嘗試自己解決,然后再向有經(jīng)驗的人尋求幫助。在解決問題的過程中,雖然可能會花費很多時間,也可能會遇到挫折,但是通過這個過程,我們可以學到很多與Linux系統(tǒng)相關的知識,也會積累更豐富的經(jīng)驗。Linux系統(tǒng)的一個重要優(yōu)勢是,當命令執(zhí)行錯誤或系統(tǒng)設置錯誤時,通常會清楚地顯示錯誤信息,告訴你具體出錯的地方。只要認真觀察錯誤信息,我們大概就能知道問題出現(xiàn)在哪里,以及如何解決。有時候,操作步驟比較復雜,當出現(xiàn)問題時,我們應該回顧之前的步驟,檢查是否有命令敲錯或配置文件設置錯誤的情況。此外,Linux系統(tǒng)的幫助文檔是一個很好的工具,我們可以從中找到命令選項、配置文件設置等方面的答案。08【項目實訓】【項目實訓】Linux傳統(tǒng)用戶界面是基于文本的命令行界面,即shell,它既可以聯(lián)機使用,又可存在文件上脫機使用。Shell具有強大的編程能力,用戶可以方便地使用它編寫程序,從而為用戶提供更高級的方式來擴展系統(tǒng)功能。因此,所有的Linux用戶都必須熟練掌握基本的Linux命令,以便能夠快速高效地完成各種操作。對于初學者小陳來說更是如此,因此安排了以下訓練內(nèi)容。此部分內(nèi)容請參考本書配套的活頁工單《Linux操作系統(tǒng)實用技術(微課版活頁式)》中的“工單3.

使用Linux命令完成日常操作”。09【項目小結(jié)】【項目小結(jié)】(掃碼獲取本章思維導圖)通過學習本項目,我們了解了Linux系統(tǒng)中的文件類型和目錄結(jié)構(gòu),學會了文件和目錄的基本操作命令,掌握了查找文件內(nèi)容、文件位置以及打包和壓縮文件的方法。當然,隨著Linux系統(tǒng)的發(fā)展,會有越來越多、越來越好的圖形界面可供選擇。但是一旦我們熟練掌握了各種Linux命令,我們是否會繼續(xù)認為圖形界面操作更方便、更優(yōu)秀,效率更高呢?這個問題留給讀者們自己去探索吧!THEENDTHANKS項目4管理文本文件西安航空職業(yè)技術學院linux操作系統(tǒng)教材編寫組2023-06-06【項目情景】任務4-1了解Vim編輯器任務4-2使用Nano編輯器任務4-3重定向01【學習目標】【知識目標】【能力目標】【素養(yǎng)目標】【知識目標】了解Vim編輯器的工作模式了解Nano編輯器的安裝方法和使用方法掌握輸入輸出重定向【能力目標】能熟練掌握編輯器的操作方式熟記各種快捷命令能使用Vim等文本編輯器編寫配置文件能熟練使用重定向命令,提高工作效率【素養(yǎng)目標】培養(yǎng)探索意識,走出圖形操作的舒適區(qū)02【項目情景】【項目情景】經(jīng)過一段時間的學習,小陳已經(jīng)能夠在Linux系統(tǒng)中進行一些基本的操作。最近,師傅告訴小陳,在Linux系統(tǒng)中,“一切皆文件”,各種系統(tǒng)配置都可以通過修改配置文件的方式來完成。但是,具體應該如何進行修改呢?小陳對此問題產(chǎn)生了興趣,并開始學習如何管理文本文件。03任務4-1了解Vim編輯器【任務目標】【任務目標】Vim是從vi發(fā)展出來的一個文本編輯器。從誕生至今經(jīng)歷數(shù)十年的發(fā)展,已經(jīng)是Linux系統(tǒng)用戶主要使用的一種基于文本界面的編輯工具。其代碼補全、編譯及錯誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用。作為一名Linux用戶,小陳必須掌握Vim這一工具的使用。因此,小陳制定了如下的任務目標:了解Vim編輯器的工作模式。會使用Vim編輯器編輯文件。任務4-1了解Vim編輯器【任務目標】4.1.1Vim編輯器的工作模式概述4.1.2Vim編輯器的基本操作4.1.3.Vim編輯器的環(huán)境變更【任務目標】Vim是從vi發(fā)展出來的一個文本編輯器。從誕生至今經(jīng)歷數(shù)十年的發(fā)展,已經(jīng)是Linux系統(tǒng)用戶主要使用的一種基于文本界面的編輯工具。其代碼補全、編譯及錯誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用。作為一名Linux用戶,小陳必須掌握Vim這一工具的使用。因此,小陳制定了如下的任務目標:1.了解Vim編輯器的工作模式。2.會使用Vim編輯器編輯文件。4.1.1Vim編輯器的工作模式概述Vim是VimsualinterfaceIMproved的簡稱??梢詧?zhí)行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以跟進需求自定制。這是其他編輯程序所沒有的。Vim不是一個排版程序,它不像MSWord或WPS那樣可以對字體、格式、段落等其他屬性進行編排,它只是一個文本編輯程序。Vim是全屏幕文本編輯器,它沒有菜單,只有命令。啟動與退出Vim編輯器在命令提示符中,輸入“vim文件名”命令后,如果指定文件存在,則打開該文件,否則將新建該文件;如果僅輸入“vim"命令,則自動新建一個未命名的文本文件,退出并保存時要命名文件名。在終端提示符中,輸入“vim”命令,按Enter鍵,即可打開圖4.1所示的Vim編輯器歡迎界面。圖4.1Vim編輯器歡迎界面Vim編輯器的工作模式Vim是一個全屏幕編輯器,使用Vim編輯器編輯文件時,為了區(qū)別按鍵的作用,實現(xiàn)各項功能,Vim的工作模式被劃分為3種,分別是命令模式、插入模式和末行模式。命令模式使用Vim編輯器編輯文件時,默認Vim處于命令模式。在此模式下,按鍵將作為命令直接執(zhí)行,可使用方向鍵(上鍵、下鍵、左鍵、右鍵)或k鍵、j鍵、h鍵、l鍵移動光標的位置,還可以對文件內(nèi)容進行復制、粘貼、替換、刪除等操作。插入模式按鍵將作為輸入內(nèi)容或相應操作對文件執(zhí)行寫操作,文件編輯完成后,按下Esc鍵可返回命令模式。末行模式末行模式用于對文件中的指定內(nèi)容執(zhí)行保存、查找和替換等操作。在命令模式下按“:”鍵,Vim編輯器窗口的左下方出現(xiàn)一個“:”符號,即進入末行模式,在此模式下輸入的命令,按Enter鍵后執(zhí)行,執(zhí)行完自動返回命令模式。三種工作模式之間的切換關系注意:當不知道編輯器處于何種模式時,可以多按幾次Esc鍵返回命令模式,再從命令模式進入其他模式。圖4.2Vim編輯器的3種工作模式的切換方法4.1.2Vim編輯器的基本操作1.使用Vim打開、退出和保存文件2.一般模式下移動光標3.一般模式下復制粘貼刪除4.查找與替換1.使用Vim打開、退出和保存文件使用Vim編輯器打開文件很簡單,在命令提示符后面輸入“vim文件名”即可打開文件。退出和保存等多數(shù)文件管理命令都是在末行模式下執(zhí)行的。此模式下常用的按鍵操作如表4.1所示。2.一般模式下移動光標Vim作為字符界面全屏編輯器,光標的移動與定位需要用鍵盤按鍵實現(xiàn)。在命令模式下,Vim編輯器提供了許多高效的移動光標的方法,具體操作方法如表4.2所示。3.一般模式下復制粘貼刪除常用的編輯操作如復制、粘貼、刪除等命令的具體介紹如表4.3所示。4.查找與替換Vim編輯器在命令模式和末行模式下都有文本查找與替換功能,命令模式下的命令如表4.4所示,末行模式下的命令如表4.5所示。4.1.3.Vim編輯器的環(huán)境變更在Linux上幾乎所有的服務都有對應的配置文件,Vim編輯器也不例外??梢栽谂渲梦募信渲脝禹梺泶蛟旄糜玫腣im編輯器,配置文件一般位于用戶目錄下的~/.vimrc文件,通過在配置文件中添加配置命令并保存退出,再次啟動Vim編輯器即可生效。Vim編輯器的常用配置選項如表4.6所示。04任務4-2使用Nano編輯器【任務目標】任務4-2使用Nano編輯器【任務目標】4.2.1Nano編輯器簡介及安裝4.2.2啟動與退出Nano編輯器4.2.3Nano編輯器的基本操作【任務目標】小陳通過任務4.1的學習,已經(jīng)掌握了使用Vim編輯器進行文本編輯的技巧。然而,小陳發(fā)現(xiàn)對于初學者來說,Vim仍然有一定的難度。因此,他向師傅詢問是否有更簡單易用的文本編輯器。師傅向他介紹了Nano編輯器,建議他可以嘗試使用它。因此,小陳制定如下的任務目標。1.熟悉Nano編輯器的功能和特點。2.掌握Nano編輯器的使用。4.2.1Nano編輯器簡介及安裝Nano是Unix和類Unix系統(tǒng)中的一個文本編輯器,是Pico的復制品(clone)。Nano的目標是具有類似Pico的全功能但又易于使用的編輯器。Nano是遵守GNU通用公共許可證的自由軟件,自從2.0.7版發(fā)布,許可證從GPLv2升級到GPLv3。Nano編輯器界面包括四個主要部分如圖4.3所示。1.頂行顯示程序版本、當前被編輯的文件名以及該文件是否已被修改。2.接著是主要編輯區(qū),顯示正在編輯的文件。3.狀態(tài)行位于倒數(shù)第三行,用來顯示重要的信息。4.底部的兩行顯示了編輯器中最常用的快捷鍵。4.2.1Nano編輯器簡介及安裝CentOSStream9中默認已經(jīng)安裝Nano,如果其他版本默認沒有安裝的話可以使用以下命令進行安裝。[root@server~]#dnfinstallnanoNano,面向鍵盤的,它的所有操作都可以使用快捷鍵來完成。使用Nano時,【CTRL】由【^】表示。例如,如果要剪切一行文本,可以使用【CTRL+K】鍵,在Nano中就相當于【^k】。有一些命令需要按【Alt】鍵才有用,由字母【M】表示?!綧-R】表示按【Alt+R】鍵來執(zhí)行。需要注意的是,MacOS用戶需要使用【Esc】鍵,而不是【Alt】鍵來執(zhí)行這些命令。圖4.3Nano編輯器工作面4.2.2啟動與退出Nano編輯器在命令提示符下,輸入“nano文件名”命令或“nano”命令。如果指定的文件存在,則打開該文件,否則新建該文件;如果不指定文件名,則新建一個未命名的文本文件,保存時再指定文件名。在終端中輸入“nano”命令,按【Enter】鍵打開如圖4.4所示。退出Nano編輯器時,使用【CTRL+x】鍵即可。注意:使用Nano編輯用于配置應用程序或系統(tǒng)實用程序的文件時,請使用-w標志啟動Nano,如“nano-w/etc/mysql/f”。原因是有些文件中有長度很長的行,-w標志可以防止這些長行因為長度過長而無法在屏幕中顯示。圖4.4nano編輯器的歡迎界面4.2.3Nano編輯器的基本操作與Vim不同,Nano編輯器在輸入文本之前無需進入編輯模式,用戶可以在窗口打開后立即開始輸入,使用箭頭鍵移動光標??捎妹畹牟糠植藛物@示在終端窗口的底部,用戶可以根據(jù)需要隨時調(diào)用。光標控制Nano編輯器中移動光標最常用的方法就是使用鍵盤上的上下左右方向鍵進行移動。也可以輸入【Alt+M】,啟用鼠標的支持,用鼠標來移動光標。如果需要選擇文字,可以按住鼠標左鍵拖動。整體操作習慣與記事本非常相似。復制、粘貼、搜索1.復制一整行:【Alt+6】鍵實現(xiàn)。2.剪貼一整行:【Ctrl+K】鍵實現(xiàn)。3.粘貼:【Ctrl+U】鍵實現(xiàn)。如果需要復制/剪貼多行或者一行中的一部分,先將光標移動到需要復制/剪貼的文本的開頭,按【Ctrl+6】鍵(或者【Alt+A】鍵)進行標記,然后移動光標到待復制/剪貼的文本末尾。這時選定的文本會反白,用【Alt+6】復制,【Ctrl+K】來剪貼。若在選擇文本過程中要取消,只需要再按一次【Ctrl+6】。4.精確剪切:移動光標到需要剪切文本的開頭,按下【Ctrl+6】(或者【Alt+A】)。然后移動光標到待剪切文本的末尾。撤消文本標記,只需再按一次。再按照上面的步驟來剪切和粘貼。5.搜索:按【Ctrl+W】,然后輸入你要搜索的關鍵字,按【Enter】鍵確定。這將會定位到第一個匹配的文本,接著可以用【Alt+W】來定位到下一個匹配的文本。翻頁、保存、退出1.翻頁按下【Ctrl+Y】鍵翻頁到上一頁,按下【Ctrl+V】鍵翻頁到下一頁。2.保存按下【Ctrl+O】鍵保存所做的修改,輸入文件名后按下【Enter】鍵即可。3.退出按下【Ctrl+X】鍵可以退出編輯。若對文件進行了修改,會詢問是否需要保存修改。輸入Y確認保存,輸入N不保存,按【Ctrl+C】鍵取消返回。05任務4-3重定向【任務目標】任務4-3重定向【任務目標】4.3.1標準輸入/輸出與重定向4.3.2輸出重定向4.3.3輸入重定向4.3.4錯誤重定向4.3.5同時實現(xiàn)標準輸出重定向和標準錯誤重定向【任務目標】小陳在工作中注意到許多老員工喜歡將多個Linux命令組合在一起進行操作。這種操作看起來很酷,同時也可以提高工作效率。受到啟發(fā),小陳決定學習這種技巧。因此,小陳制定如下的任務目標。1.熟悉輸入/輸出重定向的用法。2.能夠合理使用重定向技術。4.3.1標準輸入/輸出與重定向1.標準輸入/輸出文件2.重定向1.標準輸入/輸出文件在Linux系統(tǒng)中,執(zhí)行一個Shell命令時,通常會自動打開3個標準文件:標準輸入(stdin)文件,通常對應終端的鍵盤;標準輸出(stdout)文件和標準錯誤(stderr)輸出文件,這兩個文件都對應終端的屏幕。由父進程創(chuàng)建子進程時,子進程就繼承了父進程打開的這3個文件,因而可以利用鍵盤輸入數(shù)據(jù),從屏幕上顯示計算結(jié)果及各種信息。在Shell中,這三個文件都可以通過重定向符進行重新定向。標準輸入/輸出等文件表述如表4.7所示?!拔募枋龇笨梢岳斫鉃長inux系統(tǒng)為文件分配的一個數(shù)字,范圍是0-2。通常0表示標準輸入(stdin),1是標準輸出(stdout),2是標準錯誤(stderr)?!胺柋硎尽贝韺崿F(xiàn)方式。“>”表示覆蓋原文件中的內(nèi)容,如果文件不存在,就創(chuàng)建文件;如果文件存在,就將其清空?!?gt;>”表示追加到原文件中的內(nèi)容之后,如果文件不存在,就創(chuàng)建文件;如果文件存在,則將新的內(nèi)容追加到該文件的末尾,該文件中的原有內(nèi)容不受影響。2.重定向在Linux系統(tǒng)中,默認的輸入、輸出設備分別是鍵盤和屏幕,利用重定向操作符可以重新定義命令涉及的默認輸入和輸出設備對象,即重定向操作符可以將命令輸入和輸出數(shù)據(jù)流從默認設備重定向到其他位置。重定向操作符本身不是一條命令,而是命令中附加的可以改變命令的輸入和輸出對象的特殊符號,其中“>”“>>”稱為輸出重定向操作符,“<”“<<”稱為輸入重定向操作符。4.3.2輸出重定向1.輸出重定向符2.輸出附加重定向符1.輸出重定向符輸出重定向符“>”的作用是將命令(或可執(zhí)行程序)的標準輸出重新定向到指定文件。這樣,該命令的輸出就不在屏幕上顯示,而是寫入到指定文件中。輸出重定向的一般格式如下。命令>文件名其中,文件名可以是普通文件名,也可以是對應于I/O設備的特別文件名,如打印機。舉例如下。[root@server~]#who>outfile命令who的輸出重新定向到outfile文件中,在屏幕上看不到who的執(zhí)行結(jié)果。查看outfile文件的內(nèi)容,就可以得到who命令的輸出信息。[root@server~]#catoutfilerootpts/02022-08-1610:23()chentty22022-08-1421:08(tty2)2.輸出附加重定向符輸出附加重定向符“>>”的作用是將命令(或可執(zhí)行程序)的輸出附加到指定文件的后面,而該文件原有的內(nèi)容不被破壞。輸出附加重定向的一般格式如下。命令>>文件名舉例如下。[root@server~]#ps-a>>outfile[root@server~]#catoutfilerootpts/02022-08-1610:23()chentty22022-08-1421:08(tty2)PIDTTYTIMECMD2426tty200:00:00gnome-session-b5130pts/000:00:00ps將ps命令的輸出附加到文件outfile的結(jié)尾處。利用cat命令就可以看到文件outfile的全部信息,包括原有內(nèi)容和新添的三行內(nèi)容。4.3.3輸入重定向1.輸入重定向符2.即時文件定向符1.輸入重定向符輸入重定向符“<”的作用是將命令(或可執(zhí)行程序)的標準輸入重新定向到指定文件。輸入重定向的一般格式如下。命令<文件名例如,使用輸入重定向把outfile文件導入給wc-l命令,統(tǒng)計一下文件中的內(nèi)容行數(shù):\[root@server~\]#wc-l<outfile5前面我們使用wc命令統(tǒng)計outfile文件行數(shù)的運行結(jié)果:\[root@server~\]#wc-loutfile5outfile由以上結(jié)果可知,采用輸入重定向運行wc命令的結(jié)果中沒有文件名。這是因為此前使用的“wc-loutfile”是一種非常標準的“命令+參數(shù)+對象”的執(zhí)行格式,而這次的“wc-l<outfile”則是將outfile文件中的內(nèi)容通過操作符導入到命令中,沒有被當作命令對象進行執(zhí)行,因此wc命令只能讀到信息流數(shù)據(jù),而沒有文件名稱的信息。2.即時文件定向符即時文件是由重新定向符“<<”、一對標記符及其中的若干輸入符組成,它允許將Shell程序的輸入行重新定向到一個命令中。即時文件的格式如下。命令\[參數(shù)\]<<標記符……輸入行標記符注意:1.結(jié)尾的標記符一定要頂格寫,之前和之后都不能有任何字符,包括空格和縮進。2.開頭處標記符的前后空格會被忽略。舉例如下。[root@server~]#wc-l<<EOF>小陳很努力!>小陳會學好Linux的!>小陳會成為網(wǎng)絡管理員的!>EOF3[root@server~]#大家可以看到,這里將兩個標記符“EOF”之間的內(nèi)容作為輸入傳遞給wc命令,統(tǒng)計出了輸入的內(nèi)容的行數(shù)是3。4.3.4錯誤重定向錯誤重定向是指將命令返回的錯誤信息,輸出到某個指定的文件中。錯誤重定向有兩種用法,語法格式如下。命令2>文件或命令2>>文件4.3.5同時實現(xiàn)標準輸出重定向和標準錯誤重定向需要同時重定向標準錯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論