Linux操作系統(tǒng)教程02_第1頁
Linux操作系統(tǒng)教程02_第2頁
Linux操作系統(tǒng)教程02_第3頁
Linux操作系統(tǒng)教程02_第4頁
Linux操作系統(tǒng)教程02_第5頁
已閱讀5頁,還剩156頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGE第2章Linux基礎(chǔ)本章提要:本章介紹如何使用Linux、Linux的用戶界面、Linux基礎(chǔ)命令、Linux文件系統(tǒng)、Linux文件屬性、Linux文件備份和壓縮以及進(jìn)程管理。此章屬于入門知識部分,讀者熟練掌握本章各知識點,對后章能熟練操作Linux系統(tǒng)至關(guān)重要。2.1使用Linux2.1.1開機(jī)用戶接通Linux主機(jī)電源以后,首先會進(jìn)入一個引導(dǎo)界面,如圖2-1所示。下面以RedHat9的grub為例。圖2-1在上圖的框內(nèi),有一個可以上下移動的光標(biāo),可以選擇你想進(jìn)入的操作系統(tǒng)或者模式,然后按Enter鍵進(jìn)入系統(tǒng)。2.1.2注冊用戶接通Linux主機(jī)電源,主機(jī)顯示啟動有關(guān)信息,稍待片刻顯示RUTU界面,如圖2-2所示,表示處于注冊狀態(tài)。圖2-2此處顯示了所用Linux的發(fā)布版名稱,代號以及核心版本、機(jī)器類型等信息。不同的發(fā)布版都有類似的界面。2.1.3控制臺操作出現(xiàn)系統(tǒng)提示符后,表示系統(tǒng)處于待命狀態(tài),此時用戶可以輸入Linux能夠接受的命令,Linux下命令的格式一般是:<命令>-<可選項1>-<可選項2>…<可選項n><參數(shù)1><參數(shù)2>…<參數(shù)n>其中,可選項決定命令執(zhí)行的形式,一條Linux命令能附帶的可選項多達(dá)數(shù)十種,它們之間的組合數(shù)目就更加龐大了。而參數(shù)則是命令執(zhí)行所需提供的一些相關(guān)信息。有一些命令可以完全不用參數(shù),而有一些則可能需要許多參數(shù)。注意:Linux的命令、可選項、參數(shù)均區(qū)分大小寫。在輸入命令的過程中如果發(fā)現(xiàn)輸入出錯,可按鍵盤上的退格鍵往回刪除剛輸入的出錯字符,再重新輸入。如果出錯的字符位于離光標(biāo)當(dāng)前位置較遠(yuǎn)的地方,也可以用左光標(biāo)鍵將光標(biāo)移至出錯字符處右端,再按退格鍵刪除,若是漏打字符則可在該處重打插入。按上、下光標(biāo)鍵可以使用以前打過的命令,當(dāng)經(jīng)常需要運(yùn)行某條形式相似的命令時,此功能特別有用,甚至還可以返回以前注冊時使用過的命令。輸入的命令以回車結(jié)束,系統(tǒng)將分析用戶輸入的命令,如果該命令不正確,系統(tǒng)將給出錯信息,如果命令正確,系統(tǒng)將執(zhí)行該命令所對應(yīng)的功能,如圖2-3所示。圖2-3命令運(yùn)行過程中,會在用戶所在終端的屏幕(標(biāo)準(zhǔn)輸出)輸出該命令運(yùn)行的一些信息和結(jié)果。若輸出的內(nèi)容較多,一個屏幕容納不下,屏幕將會把原有內(nèi)容上翻,新的內(nèi)容繼續(xù)在后面顯示,如果屏幕翻滾速度太快,用戶為了看清輸出的結(jié)果,可以用<Ctrl>+s組合鍵暫停輸出,然后,按<Ctrl>+q又可重新恢復(fù)輸出。命令執(zhí)行完畢后,將返回系統(tǒng)提示符下。此時,用戶又可以繼續(xù)輸入下一條命令,如此往復(fù),直到用戶退出為止。若一條命令運(yùn)行了很長時間都沒有停止,用戶可以用組合鍵<Ctrl>+c中斷該命令的執(zhí)行,重新返回提示符。2.1.4進(jìn)入圖形界面(1)用超級用戶登錄Linux,再運(yùn)行startx,如圖2-4所示。圖2-4(2)輸入Enter,出現(xiàn)一系列的信息以后,按提示輸入。2.1.5遠(yuǎn)程管理LinuxLinux有個比較方便的管理方法——遠(yuǎn)程登錄?,F(xiàn)在比較常用的遠(yuǎn)程管理方法有Telnet和SSH。Telnet是以前比較常用的一種管理工具,只要在Server上面啟動Telnetd程序,并且聯(lián)通了Internet,那么,就可以從Internet的任何一個地方來管理它了。但是telnet在所有的指令傳送過程中都是使用明文的,就連用戶名密碼都不例外。所以,在考慮安全問題的前提下,經(jīng)過SSL加密的SSH工具就成了人們登錄管理遠(yuǎn)程計算機(jī)的比較理想的工具。在Linux中使用SSH客戶端。命令格式:ssh–l<用戶名><服務(wù)器端地址或者域名>如登錄遠(yuǎn)程域名為的機(jī)器:[root@ibmroot]#ssh-lzgyTheauthenticityofhost'()'can'tbeestablished.RSAkeyfingerprintis87:94:0a:0a:c9:64:51:46:c4:2a:39:d4:1a:55:4c:46.Areyousureyouwanttocontinueconnecting(yes/no)?yesWarning:Permanentlyadded'localhost'(RSA)tothelistofknownhosts.zgy@'spassword:Lastlogin:SatDec621:29:252003from[root@testroot]#在Windows中使用SSH登錄工具。支持SSH的常用工具有Sterm、SecureCRT等等?,F(xiàn)在用SecureCRT來舉例。(1)首先安裝SecureCRT。運(yùn)行SecureCRT,如圖2-5所示。圖2-5(2)單擊“NewSession”,彈出如圖2-6所示對話框,在Name中輸入好記的名字,在Protocol中選擇協(xié)議,一般有ssh1和ssh2兩項可以選擇,一般服務(wù)器兩者都支持。圖2-6(3)在“connect”對話框(如圖2-7所示)中,選擇你想遠(yuǎn)程管理的設(shè)備,然后單擊“Connect”。(4)如果是第一次登錄,客戶端會要求生成密鑰。在“NewHostKey”對話框中單擊“Accept&Save”即可,如圖2-8所示。圖2-7圖2-8(5)輸入用戶名。在RedHat中默認(rèn)可以用超級用戶登錄,用戶名區(qū)分大小寫,如圖2-9所示。(6)輸入剛才輸入的用戶名對應(yīng)的密碼,區(qū)分大小寫,如圖2-10所示。圖2-9圖2-10(7)登錄完成以后的界面如圖2-11所示,這樣就可以對遠(yuǎn)程計算機(jī)進(jìn)行操作了。圖2-112.1.6注銷當(dāng)用戶停止使用Linux時,需要向系統(tǒng)注銷,使終端回到“l(fā)ogin:”狀態(tài),以讓其他用戶繼續(xù)使用該終端注冊進(jìn)入主機(jī)。進(jìn)行注銷的命令是:logout↙或者exit↙有時,也可用組合鍵<Ctrl>+d進(jìn)行注銷,用戶在連線期間運(yùn)行的尚未完結(jié)的程序,除非有特別的指定,將同時被終止。2.1.7關(guān)閉系統(tǒng)關(guān)閉Linux主機(jī)是系統(tǒng)管理員的工作。切記千萬不要直接切斷電源。1.Shutdown-停止系統(tǒng)的一種安全和周到的方式shutdown[<可選項>]<時間>[<警告>]↙首先關(guān)閉系統(tǒng),常用的<可選項>有:-r關(guān)閉系統(tǒng)后重新啟動。-h關(guān)閉系統(tǒng)后進(jìn)入停機(jī)狀態(tài)。-k不真正關(guān)閉系統(tǒng),只是向各用戶發(fā)送警告信息。<時間>表示關(guān)閉系統(tǒng)的時間,使用Linux系統(tǒng)慣用的POSIX標(biāo)準(zhǔn)時間格式字符串,形式如下:<時間串>[<日期串>][<偏移量>]<時間串>的格式為:hhmmhh為24小時制記時,mm為分;如果采用12小時制,在hhmm后要加上am或pm加以區(qū)別。例如時間串“1305”及“0105pm”均表示13時5分。有幾個特別的<時間串>,它們是:NOON(正午12:00),MIDNIGHT(午夜00:00),TEATIME(下午16:00),now(現(xiàn)在)。now<日期串>格式為:MMDDYYMM表示月,DD表示日,YY表示年份,或:<月><日>[<年>]此處<月>使用英文縮寫。例如“JAN121999”、“JAN12”。日期串也可用TODAY表示當(dāng)天,TOMORROW表示明天,或用MON、TUE、WED、THU、FRI、SAT、SUN<偏移量>表示“……之后”,寫法為:+<數(shù)目><時間單位><時間單位>可以是minute(分鐘)、hour(小時)、day(天)、week(周),必要時使用復(fù)數(shù)。例如:“+15minutes”表示15分鐘之后,“+1week”表示一周后等等。例如:請寫出以下標(biāo)準(zhǔn)時間格式串:(1)1999年1月20日下午2時16分答案:1416JAN201999(2)2周之后的上午10時。答案:10am+2weeks(3)15分鐘之后。答案:now+15minutes或+15minutes<警告>是用雙引號括住的字符串,表示在關(guān)機(jī)前首先向各在線用戶發(fā)出的警告信息。例如:shutdown–r+5minutes"Systemwillrebootin5minutes!"表示在5分鐘后將關(guān)閉系統(tǒng)并重新啟動,每個在線用戶都會收到相應(yīng)信息。Shutdown–hnow↙表示馬上關(guān)閉系統(tǒng)并停機(jī),此時控制臺上將顯示如圖2-12所示。圖2-12提示系統(tǒng)已經(jīng)停機(jī)。系統(tǒng)管理員也可在主機(jī)鍵盤上按<Ctrl>+<Alt>+<Del>鍵,其作用等價于“shutdown–rnow”,待用戶重新啟動后,便可切斷主機(jī)電源。2.Halt-關(guān)閉系統(tǒng)的簡單方法Halt命令執(zhí)行關(guān)閉操作系統(tǒng)所需要的基本任務(wù)。Halt記錄關(guān)機(jī)的情況,中止那些非必需的進(jìn)程,執(zhí)行sync系統(tǒng)調(diào)用,等待文件系統(tǒng)寫完成,然后停止內(nèi)核。這種關(guān)閉計算機(jī)的方法相對比較簡單,不等待馬上就關(guān)閉計算機(jī)。對于一個人在操作的計算機(jī)來說比較簡便,但是對于多人同事操作的計算機(jī)來說,可能會意外停止其他人正在進(jìn)行的操作。3.Reboot-快速而不潔的重新啟動Reboot幾乎和halt一樣,只是它讓計算機(jī)從頭重新啟動,而halt是關(guān)閉計算機(jī)。Reboot由shotdown–r來調(diào)用,與halt類似。2.2Linux的用戶界面BASH是BourneAgainShell的簡寫,是RedHat最常用的shell。shell是一種命令語言解析器(command-languageinterpreter)。它是用戶和內(nèi)核的一個接口,它將用戶輸入的沒一個命令進(jìn)行解析,然后傳給內(nèi)核。Shell在用戶成功登錄系統(tǒng)是啟動,始終作為用戶和內(nèi)核的交互手段,直到用戶退出系統(tǒng)。每個用戶都有一個默認(rèn)的shell,在/etc/passwd文件中指定。1.幾個常用的shell命令幾個常用的shell命令如表2-1所示。表2-1幾個常用的shell命令命令說明alias設(shè)置bash別名bg使一個被掛起的進(jìn)程在后臺繼續(xù)執(zhí)行cd改變當(dāng)前工作目錄exit退出當(dāng)前shellexport使變量的值對當(dāng)前shell的所有子進(jìn)程都可見fc用來編輯歷史命令列表里的命令fg使一個被掛起的進(jìn)程在前臺繼續(xù)執(zhí)行help顯示bash內(nèi)部命令的幫助信息kill終止某個進(jìn)程pwd顯示當(dāng)前工作目錄unalias刪除已定義的別名2.bash的幾個變量bash的幾個變量如表2-2所示。表2-2bash的幾個變量變量說明EDITOR,FCEDITbsahfc命令的缺省編輯器HISTFILE用于貯存歷史命令的文件HISTSIZE歷史命令列表的大小HOME當(dāng)前用戶的用戶目錄OLDPWD前一個工作目錄PATHbash尋找可執(zhí)行文件的搜索路徑PS1命令行的一級提示符PS2命令行的二級提示符PWD當(dāng)前工作目錄SECONDS當(dāng)前shell開始后所流逝的秒數(shù)3.bash的特點1)命令補(bǔ)全在bash下輸入命令時不必把命令輸全shell就能判斷出你所要輸入的命令。如,要輸入telnet這個命令,直需要打teln然后按下Tab就可以補(bǔ)全為telnet了。只要輸入命令的一部分,再按下Tab鍵,如果輸入的一部分命令已經(jīng)在系統(tǒng)中是獨一無二的情況下,bash將幫你補(bǔ)齊命令并顯示在屏幕上。如剛才的例子,以teln開頭的命令只有telnet了,所以,bash可以補(bǔ)全它,效果和用戶輸入整條命令效果是相同的。這個命令補(bǔ)全的功能在平時工作的時候能節(jié)省時間以及減少背命令的難度。2)通配符另一個使命令輸入變得更簡單的方法是在命令中使用通配符。bash支持三種通配符:*匹配任何字符和任何數(shù)目的字符。?匹配任何單字符。[…]匹配任何包含在括號里的單字符。3)命令歷史bash支持命令歷史記錄。bash把用戶輸入的命令保存在一個歷史列表。歷史文件的文件名被一個叫HISTFILE的bash變量指定。歷史文件的缺省名字是.bash_history。這個文件通常在你的用戶目錄中。使用歷史記錄列表最簡單的方法是用上方向鍵。按下上方向鍵后最后輸入的命令將出現(xiàn)在命令行上。再按一下則倒數(shù)第二條命令會出現(xiàn),以此類推。如果上翻多了的話也可以用向下的方向鍵來下翻。也可以使用history<N>來顯示前n條命令。顯示在命令行上的歷史命令可以被編輯,但這里編輯的只是歷史命令的格式,并不能改變原來已經(jīng)執(zhí)行完成的命令。4)別名命令別名通常是其他命令的縮寫,用來減少鍵盤輸入。如:aliasls="ls–color"那么,在shell提示符下輸入ls命令,其實實際運(yùn)行的是ls–color命令。這是一些很多用戶認(rèn)為有用的別名,你可以把它們寫入你的.profile文件中提高工作效率。取消別名用unalis。如取消上例別名:unaliasls5)重定向輸入重定向用于改變一個命令的輸入源。一些命令需要在命令行里輸入足夠的信息才能工作。輸入重定向并不經(jīng)常使用因為大多數(shù)命令都以參數(shù)的形式在命令行上指定輸入文件的文件名。盡管如此,當(dāng)你使用一個不接受文件名為輸入?yún)?shù)的命令,而需要的輸入又是在一個已存在的文件里時,你就能用輸入重定向解決問題。6)管道管道可以把一系列命令連接起來。這意味著第一個命令的輸出會通過管道傳給第二個命令而作為第二個命令的輸入,第二個命令的輸出又會作為第三個命令的輸入,以此類推。而管道行中最后一個命令的輸出才會顯示在屏幕上(如果命令行里使用了輸出重定向的話,將會放進(jìn)一個文件里)。7)提示符bash有兩級用戶提示符。第一級是經(jīng)??吹降腷ash在等待命令輸入時的提示符。缺省的一級提示符是字符$(如果是超級用戶,則是#號)??梢酝ㄟ^改變bash的PS1變量的值來改變你的缺省提示符。把bashshell的提示符改為指定的字符串。當(dāng)bash期待輸入更多的信息以完成命令時顯示第二級提示符。缺省的第二級提示符是>。如果你要改變第二級提示符,可以通過設(shè)置PS2變量的值來實現(xiàn)。8)作用控制作業(yè)控制能夠控制當(dāng)前正在運(yùn)行的進(jìn)程的行為。特別地,你能把一個正在運(yùn)行的進(jìn)程掛起,稍后再恢復(fù)它的運(yùn)行。bash保持對所有已啟動的進(jìn)程的跟蹤,你能在一個正在運(yùn)行的進(jìn)程的生命期內(nèi)的任何時候把它掛起或是使它恢復(fù)運(yùn)行。按下<Ctrl>+Z使一個運(yùn)行的進(jìn)程掛起。bg命令使一個被掛起的進(jìn)程在后臺恢復(fù)運(yùn)行,反之fg命令使進(jìn)程在前臺恢復(fù)運(yùn)行。這幾個命令在當(dāng)用戶想在后臺運(yùn)行而意外的把它放到了前臺時,經(jīng)常被用到。當(dāng)一個命令在前臺被運(yùn)行時,它會禁止用戶與shell的交互,直到該命令結(jié)束。這通常不會造成麻煩,因為大多數(shù)命令很快就執(zhí)行完了。如果你要運(yùn)行的命令要花費(fèi)很長的時間的話,我們通常會把它放到后臺,以使我們能在前臺繼續(xù)輸入其他命令。9)bash配置文件為了保存這些用戶化配置,必須把它們保存到一個bash的初始化文件里。你能把任何想每次進(jìn)入bash都執(zhí)行的命令放到初始化文件里。這個文件里最常見到的命令通常是alias和變量的初始化。在RedHat9.0中,有幾個文件,用戶目錄下.bash_profile和.bashrc以及/etc/bashrc。2.3基礎(chǔ)命令2.3.1命令的輸入與編輯在shell提示符下面直接輸入命令。如在bash下面telnet到遠(yuǎn)程,如圖2-13所示。圖2-13在圖2-13的情況下,光標(biāo)停留在最后,直接按<Enter>即命令計算機(jī)執(zhí)行telnet的命令。這是還可以移動光標(biāo),按退格鍵刪除光標(biāo)前面一個字符,按刪除鍵刪除光標(biāo)上方的字符,直接輸入是在光標(biāo)前插入字符。也可以利用bash的一些特性,輸入teln+<TAB>+。這樣的效果和輸入telnet相同。2.3.2修改口令若用戶是首次注冊到主機(jī),一般首先要為自己添加(修改)密碼,設(shè)置密碼的命令是passwd,用戶在系統(tǒng)提示符下輸入:passwd↙系統(tǒng)顯示如圖2-14所示。圖2-14用戶首先輸入當(dāng)前密碼,然后輸入新的密碼,再重打一遍新的密碼,重打的目的是為了防止用戶輸入出錯。如果能出現(xiàn)最后一行提示,表示新密碼已被系統(tǒng)接受。Linux的密碼最長不能超過8個字符,若用戶輸入了過長的密碼,將只有前8位是有效的。另外,用戶選擇密碼時,最好選擇字母、數(shù)字、特殊符號的混合組合,而且最好用滿8個字符,例如:x+y=1234w2xc34fe5*3a=15a#e34%^&I等。不要選用純粹由數(shù)字或字母——特別是英文單詞或漢語拼音組合——組成的密碼,例如:19950809morningabc1234ZhaoBiao等。過于簡單或有規(guī)律的密碼是很容易被破解的,會造成系統(tǒng)安全性方面的漏洞。在一些版本的Linux中,系統(tǒng)會在用戶設(shè)定密碼時自動檢查密碼的安全程度,如果被認(rèn)為太簡單即所謂的弱密碼(weakpassword),系統(tǒng)會拒絕接受。只有root才可以強(qiáng)迫系統(tǒng)接受弱密碼。一般來說,用戶只能修改自己的密碼,但root可以修改任何用戶的密碼。方法如下:passwd<用戶賬號>↙例如:用戶h1忘記了自己的密碼,現(xiàn)由root為其重新設(shè)定,如圖2-15所示。圖2-15注意:本章及后面章節(jié)中出現(xiàn)的符號“↙”指的是按回車鍵。2.3.3查詢及修改日期時間用戶在系統(tǒng)提示符下可以通過一些命令來獲得主機(jī)的一些簡單信息。例如:要觀察主機(jī)的時間設(shè)置,可用命令:date↙系統(tǒng)顯示:MonDec801:06:47GMT2003表示當(dāng)前時間是北京時間(CST——ChinaStandardTime)2003年12月8日1時06分星期一,如果要顯示格林威治時間,可用可選項-u:date-u↙系統(tǒng)顯示:MonDec801:07:15UTC2003如果用戶以root身份注冊,還可以修改日期、時間,方法是:dateMMDDhhmm[[CC]YY][.ss]↙其中,date后面的部分是日期字符串,表示要修改的日期時間,MM代表月份,DD代表日期,hh代表時,mm代表分,CC代表年份的頭兩位,YY代表年份的后兩位,[]表示括號括住的內(nèi)容是可以省略的(以下同),如果年份被省略,則表示為當(dāng)年,ss代表秒。例如:將當(dāng)前時間改為2004年1月1日0時整,可用:date0101000004↙2.3.4觀看日歷用戶可用命令cal觀看本月的月歷,如圖2-16所示。圖2-16如果要觀看指定的年、月的日歷,可用:cal[月][年]↙例如:cal903↙可以觀看2003年9月的月歷。cal命令有兩個可選項:-y可以顯示整年的日歷,此時一般一個屏幕放不下所有的信息,按輸出暫停鍵又較麻煩,此時可用以下用法:cal–y|more↙“|”是管道符號,more是通用輸出暫停程序,我們將在以后對其作詳細(xì)介紹。使用此方法后屏幕在顯滿一屏后將自動暫停輸出,并在屏幕下方顯示“more”的字樣,表示還會有后續(xù)輸出,如圖2-17所示。圖2-17按回車鍵,屏幕將會上滾一行,按空格鍵將往上翻一屏,直到完成全部輸出為止。cal命令的另一個可選項是-j,用于顯示Julian式月歷,即以該年1月1日到該天的天數(shù)作為日期的記錄方法,例如輸入:cal–j1203↙結(jié)果顯示如圖2-18所示。圖2-18當(dāng)一條命令后帶多個可選項時,可以將它們合并在同一個“-”之后。例如:cal-j-y03等價于cal-jy03。2.3.5清屏當(dāng)屏幕上顯示了太多的內(nèi)容以至顯得雜亂時,可用命令:clear↙進(jìn)行清屏。清屏后,屏幕上的內(nèi)容將被全部清除,系統(tǒng)提示符定位在屏幕左上角處。2.3.6獲取用戶信息有時候,一個用戶可能有多個注冊賬號,而又忘記了自己是以哪一個賬號注冊到主機(jī)上的。此時可通過下列方法之一獲得自己的注冊信息:(1)觀察系統(tǒng)提示符,但有些主機(jī)的系統(tǒng)提示符的設(shè)定未必能提供用戶的注冊信息。(2)使用命令:logname↙系統(tǒng)顯示:root表示用戶是以賬號root進(jìn)行注冊的。另外一條命令:whoami↙也起類似的作用。如果還想了解在線的其他用戶的注冊情況,可以用命令:who↙系統(tǒng)顯示如圖2-19所示。圖2-19與主機(jī)連接的用戶有2人,使用的用戶名是root。其中一個是從tty1(實際上是主機(jī)控制臺)登錄,登錄時間是11月28號22點04分。還有一個是從8上面登錄上來的,時間是12月8號21點54分。使用可選項可獲得更多的信息。例如-I,可得到用戶發(fā)呆(idle,即沒作任何操作)的時間。2.3.7與其他用戶進(jìn)行簡單通訊注冊后,如果有其他在線用戶,可通過命令write向另外一個用戶發(fā)送信息,用法是:write用戶賬號[@主機(jī)名][終端號]↙如果所在的系統(tǒng)是多主機(jī),或發(fā)送的對象用一個賬號同時在多個終端上注冊,則可能要指明<主機(jī)名>或<終端名>,否則只須指出用戶賬號即可。例如:writerootttyp1↙此時,光標(biāo)停在下一行,如圖2-20所示。圖2-20用戶可以輸入要發(fā)送的信息,每一句信息以回車結(jié)束。要結(jié)束write狀態(tài),按<Ctrl>+c鍵中斷即可。接收方的屏幕上顯示如圖2-21所示的界面。圖2-21接收者按回車鍵將重新返回提示符。使用write命令,在線用戶之間可以很方便地互相交談,交換信息。有時,用戶專注于某項工作,不希望被其他用戶發(fā)送過來的信息所打擾,可使用命令:mesgn↙進(jìn)行屏蔽,此時只有root才可向該用戶發(fā)送信息,其他用戶在使用write命令時,系統(tǒng)將顯示:write:Permissiondenied表示對方處于信息屏蔽狀態(tài)。要觀看自己的信息接收狀態(tài),可以輸入:mesg↙若顯示“isy”,表示可以接收,但如果顯示“isn”則表示自己處于屏蔽狀態(tài)。要觀看所有在線用戶的信息屏蔽情況,可用命令:who-w↙例如,顯示如圖2-22所示。圖2-22其中帶“-”符號的表示其處于信息屏蔽狀態(tài)。如果用戶想恢復(fù)接收信息,只須簡單地輸入:mesgy↙2.3.8觀看主機(jī)信息用戶可通過命令:uname↙觀看主機(jī)的配置情況,例如系統(tǒng)回應(yīng):Linux表示主機(jī)使用的是Linux操作系統(tǒng)。要得到更詳細(xì)的信息,可輸入:uname-a↙顯示如圖2-23所示。圖2-23從左到右分別顯示:操作系統(tǒng)名稱、主機(jī)名、操作系統(tǒng)核心版本、發(fā)布版版本、核心生成的時間、CPU硬件類型等。2.3.9尋找命令使用方法Linux具有很好的聯(lián)機(jī)文檔,當(dāng)用戶不知道該如何去使用一條命令時,可用:man<命令>↙尋求詳細(xì)的幫助信息,例如:要了解who命令的詳細(xì)用法,可輸入:manwho↙顯示如圖2-24所示。圖2-24多數(shù)情況下,幫助信息會超過一屏,用戶可用<PgUp>鍵或<PgDn>鍵實現(xiàn)往上或往下翻屏,或用上下光標(biāo)鍵移行。觀看完畢,按q鍵退出。2.4文件系統(tǒng)2.4.1Linux文件Linux可以支持長達(dá)256個字符的文件名稱,在命令中如果以文件名稱作為參數(shù),則文件名稱中不能直接使用以下字符:!@#$%^&*()[]{}‘“\/|;<>空格這些字符具有特殊含義(稱為“元字符”),如果出現(xiàn)在文件名稱中并在命令中使用的話,會產(chǎn)生“多義性”。如果一定要使用這些字符必須在其前面加上轉(zhuǎn)義符“\”,以取消其特殊含義,這種使用方法稱為“引用”。例如:判斷以下文件名稱如果在命令中作參數(shù)時的合法性。abcdef.12345happyhours(中間空白處為一空格)let’s_gomyprogram(99.1.20)myprogram\(99.1.20\)my\\program100%FULL123/456注意:在Linux中的文件名稱是區(qū)分大小寫的,“abc”與“ABC”所代表的是不同的文件。文件名稱中的小數(shù)點有時被稱為“分隔符”,最后(最靠右)的一個分隔符右端部分稱為文件名稱的“后綴”,后綴往往用于辨別文件的性質(zhì)。例如,以下文件:bbssec.cbbsboa.cbbsall.cauthorsearch.c都是以“.c”作為后綴,一般約定凡是以“.c”作為后綴的文件是C語言編寫的源程序文件。其他一些經(jīng)常使用的后綴有:.txt:一般文本文件。.doc:信息文檔。.sh:shell過程文件。.html:HTML超文本文件。.pl:PERL語言編寫的程序文件。.c:C語言程序文件。.o:編譯程序產(chǎn)生的目標(biāo)文件。.tar:tar命令產(chǎn)生的備份包文件。.gz:gzip命令產(chǎn)生的壓縮包文件。.rpm:由rpm產(chǎn)生的文件包。等。如圖2-25所示“bbsall.c“是一個C程序文件,bbs2www.h是C程序的頭文件。用戶一般最好遵從系統(tǒng)的這些約定,以免造成不必要的誤會。在以后的圖例中我們將用正方形“□”表示文件,如圖2-26所示,圖中的“○”表示文件存儲的地方,直線表示從屬關(guān)系。此圖表明了a、b、c、d四個文件存儲在同一處。圖2-25圖2-262.4.2目錄結(jié)構(gòu)在Linux中(實際上是在幾乎所有的操作系統(tǒng)中)就是以這種形式進(jìn)行存儲介質(zhì)管理的,上述的所謂“分類”在術(shù)語上被稱為“目錄”(directory),對于一個分類中包含的更細(xì)層次的分類,前者稱為后者的父目錄或上級目錄,而后者則稱為前者的子目錄。一個目錄就是一系列它所包含的文件及子目錄的集合。在以后的圖例中,我們?nèi)杂谩啊酢北硎疚募?,直線表示從屬關(guān)系,而目錄則用“○”表示,如圖2-27所示,表示子目錄b及文件c均屬于目錄a。在一個存儲設(shè)備中最基本的目錄(即分層結(jié)構(gòu)的最上端)稱為根目錄,用符號“/”表示,這種分層保管文件的存儲形式稱為文件系統(tǒng),在每一個文件系統(tǒng)中都只會有惟一一個根目錄。由于文件系統(tǒng)看上去就像一棵倒掛著的樹,故也稱為“樹型結(jié)構(gòu)”。圖2-27一個文件系統(tǒng)在剛建立的時候,只有一個根目錄。用戶可以在根目錄下建立子目錄,也可直接存放文件。然后在子目錄中既可建立更深層次的“孫目錄”,又可直接存放文件……如此往復(fù),直至存儲設(shè)備的容量被用完為止。在每一個邏輯上獨立的存儲設(shè)備(如硬盤上的獨立分區(qū)、軟盤、CD-ROM等)都可建立一個樹型結(jié)構(gòu)。當(dāng)然,不同的操作系統(tǒng),實現(xiàn)樹型結(jié)構(gòu)的方法(術(shù)語上稱為“文件系統(tǒng)的格式”)各不一樣,例如:Linux采用ext2格式的文件系統(tǒng);DOS則為FAT;Windows95為VFAT,Windows98為FAT32,WindowsNT/2000為NTFS;OS/2為HPFS等等。但是這些操作系統(tǒng)對樹型結(jié)構(gòu)的操作是很相似的。Linux在安裝時要在存儲設(shè)備(通常是硬盤)指定一個主文件系統(tǒng)作為基本的樹型結(jié)構(gòu)。構(gòu)成Linux操作系統(tǒng)的基本文件通常就放在主文件系統(tǒng)下,而其他存儲設(shè)備上的文件系統(tǒng)則通過后面將要講述的mount命令架設(shè)到主文件系統(tǒng)上,在邏輯上組成一個“大文件系統(tǒng)”,然后這些文件系統(tǒng)就可以被用戶訪問。這一過程如圖2-28所示。圖2-28在DOS/Windows下則一般不用作掛接,每一個兼容的文件系統(tǒng)都被賦予一個盤符,然后通過盤符來訪問這些文件系統(tǒng)。通常異種操作系統(tǒng)由于實現(xiàn)方法不同,所以它們的文件系統(tǒng)之間一般不能互相訪問的。但某些操作系統(tǒng)為了增強(qiáng)其兼容能力,除自己直接支持的文件系統(tǒng)以外,也能訪問其他一些類型的文件系統(tǒng)。在這方面,可以說Linux的系統(tǒng)兼容性幾乎是最好的,它通過mount命令幾乎可以掛接訪問其他任何格式的文件系統(tǒng)。表2-3列出了各種常用操作系統(tǒng)對各種文件系統(tǒng)的兼容性(Linux為2.4.x核心)。表2-3常用操作系統(tǒng)對各種文件系統(tǒng)的兼容性操作系統(tǒng)名稱LinuxDOSWindows95Windows98WindowsNTOS/2采用的文件系統(tǒng)Ext2FATVFATFAT32NTFSHPFS能兼容的其他文件系統(tǒng)Ext2√FAT√√√√√√VFAT√√√√√FAT32√√N(yùn)TFS√√HPFS√√每一個目錄都可以在其下存放文件或建立新的子目錄,但在同一父目錄下,不能有相同名稱的文件,也不能有相同名稱的子目錄,甚至不能有相同名稱的文件和子目錄。這一規(guī)則主要是確保用戶能惟一定位所需的文件。如圖2-29所示的一些例子。但像圖2-30所示的結(jié)構(gòu)卻是允許的。原因是盡管有文件、子目錄名稱相同。但它們的父目錄卻各不相同,在樹型結(jié)構(gòu)中是可以相互區(qū)分的。圖2-29圖2-30一個文件有可能同時屬于很多個子目錄(通過鏈接命令ln實現(xiàn)),這對一些有交叉分類的情況特別有用,例如圖2-31所示。圖2-31例:請判別圖2-32和圖2-33所示的樹型結(jié)構(gòu)存在的問題。圖2-32圖2-33圖2-32答案:(1)目錄a包含根目錄。(2)c目錄下有兩個同名文件k。(3)文件g包含文件m。(4)目錄l下有同名的p文件和p目錄。(5)目錄j下有同名子目錄n。圖2-33答案:(1)有兩個根目錄。(2)b目錄下有同名子目錄e。(3)b目錄下有同名文件f。(4)k文件包含文件m。(5)j目錄下有同名的文件l和子目錄l。2.4.3路徑要在樹型結(jié)構(gòu)中惟一地標(biāo)識一個目錄,光用目錄名稱是不足夠的,如圖2-34所示,樹型結(jié)構(gòu)中有多個目錄c,如果我們說:要把文件abc放入目錄c,那究竟是哪一個目錄呢?為了解決這個問題,當(dāng)需要定位一個目錄時,我們采用指出從根目錄出發(fā)走向該目錄的一條“通路”的辦法,例如在圖2-35中,從根目錄到目錄v的“通路”是:/→f→n→v圖2-34圖2-35而從根目錄到目錄q的“通路”則是:/→e→j→q在術(shù)語中這樣的“通路”被稱為路徑,在上述“通路”寫法中,引入以下規(guī)則,便成為標(biāo)準(zhǔn)的路徑寫法:(1)第一個“→”不用寫。(2)“→”用符號“/”代替。例如,從根目錄到目錄v的路徑是:/f/n/v而從根目錄到目錄q的路徑是:/e/j/q當(dāng)需要在樹型結(jié)構(gòu)中定位一個目錄時,我們只須指出從根目錄到該目錄的路徑即可,由樹型結(jié)構(gòu)的規(guī)則,采用上述方法進(jìn)行定位是絕對不會產(chǎn)生二義性——即一個路徑寫法同時表示兩個不同的目錄。以上方法也可用于在樹型結(jié)構(gòu)中定位文件,例如文件p可寫為:/e/i/p文件z則可寫為:/f/n/v/x/z開機(jī)啟動Linux以后,我們處于樹型結(jié)構(gòu)的某個目錄之中,這個目錄稱為當(dāng)前目錄,剛開機(jī)時的當(dāng)前目錄一般是用戶的主工作目錄,這是在創(chuàng)建用戶時設(shè)定的,對于root,主工作目錄一般是:/root對于一般用戶,主工作目錄一般是:/home/<用戶賬號>啟動以后,當(dāng)前目錄可用命令cd改變,用法是:cd<路徑>↙<路徑>指出從根目錄到要轉(zhuǎn)換的目錄的路徑。例如在上圖中,當(dāng)前目錄為e,現(xiàn)要把當(dāng)前目錄改為v,可以輸入:cd/f/n/v↙我們想知道當(dāng)前目錄的位置,可以使用命令pwd,如圖2-36所示。圖2-36另外,通常通過觀察系統(tǒng)提示符也可獲得當(dāng)前目錄路徑。關(guān)于主工作目錄,Linux中有一個簡化的寫法“~”,例如:cd~表示把當(dāng)前目錄轉(zhuǎn)到用戶本身的主工作目錄。路徑還有另外一種寫法,就是指出從當(dāng)前目錄到目標(biāo)目錄的“通路”。例如在上圖中,當(dāng)前目錄為e,則從e到目錄q的“通路”是:e→j→q從e到目錄x的“通路”是:e→/→f→n→v→x這種路徑的標(biāo)準(zhǔn)寫法是:(1)由于起點必定是當(dāng)前目錄,故起點與第一個“→”可以省略不寫。(2)“→”用符號“/”代替。(3)上級目錄用“..”表示。因此,從當(dāng)前目錄e到目錄q的路徑可寫為:j/q而從e到x的路徑則可寫為:../f/n/v/x這種路徑寫法與當(dāng)前目錄(即起點)的位置有關(guān),故稱為“相對路徑法”;前面介紹的寫法,路徑均從根目錄開始,與當(dāng)前目錄位置無關(guān),故被稱作“絕對路徑法”。在某些場合下,用絕對法書寫路徑會比較簡單,而在另一些場合,可能用相對法比較簡單,例如在上圖中,假設(shè)當(dāng)前目錄為x,現(xiàn)要把當(dāng)前目錄轉(zhuǎn)到v,使用絕對法,輸入命令:cd/f/n/v使用相對法,輸入命令:cd..相對法較簡單。在相對法中還有一個特殊的路徑,就是從當(dāng)前目錄到當(dāng)前目錄的路徑,我們用“.”表示。要判斷一個路徑究竟是用絕對法書寫還是用相對法書寫只須簡單地觀察路徑中的起首字符是否為“/”,如果是,則是用絕對法;如果不是,那就是用相對法。相對法也同樣可用于惟一定位子目錄或文件。例:如圖2-20所示,設(shè)當(dāng)前目錄為j,表2-4分別是用絕對法和相對法惟一定位的目錄或文件。表2-4目錄或文件的絕對法和相對法子目錄或文件絕對法相對法目錄q/e/j/qq目錄e/e..//../..目錄f/f../../f目錄x/f/n/v/x../../f/n/v/x續(xù)表2-4子目錄或文件絕對法相對法目錄i/e/i../I目錄j/e/j.文件b/b../../b文件r/e/j/rr文件y/f/n/v/y../../f/n/v/y2.4.4相關(guān)操作命令1.文件及子目錄名稱列表使用ls命令只能列出當(dāng)前目錄下的文件及子目錄清單,其他目錄中的內(nèi)容不會被列出,如圖2-37所示。圖2-37在所列清單中,可以發(fā)現(xiàn)在i、j后面有“/”符號,這表示它們是子目錄而不是一個文件。如果用戶使用的是具有彩色能力的終端(例如:控制臺,仿真彩色終端),還可以看到目錄和文件的名稱通常是用不同的顏色顯示的,例如:目錄名稱一般以藍(lán)色顯示。如果要顯示其他目錄中的文件及子目錄名稱列表,可使用以下方法:ls<路徑>↙其中<路徑>是用相對法或絕對法書寫的到要觀察的目錄的路徑。例如:在圖中要觀看/f/n目錄中文件及子目錄名稱的列表,可輸入:ls/f/n↙也可用相對法寫成:ls../f/n↙除上述方法外,當(dāng)然也可先用cd命令將當(dāng)前目錄移至要觀察的目錄,然后再運(yùn)行l(wèi)s命令。2.顯示一個文本文件的內(nèi)容“cat<文件名稱>”命令現(xiàn)在除了能顯示當(dāng)前目錄下文本文件內(nèi)容外,還可以用于顯示其他目錄中的文本文件內(nèi)容,一般性的用法是在指出<文件名稱>時使用帶路徑指引定位的文件名稱。例如:當(dāng)前目錄為e,要觀看文件z的內(nèi)容,可用:cat/f/n/v/x/z↙3.改變文件、目錄名稱,搬移整棵目錄樹在樹型結(jié)構(gòu)下,mv命令有了更強(qiáng)大的功能。除了改變文件的名稱外,還可以用于改變目錄的名稱,用戶可首先用cd命令進(jìn)入要改名的文件或子目錄所存放的上級目錄處,然后使用:mv<原文件或子目錄名稱><新名稱>↙例如在圖2-38中,現(xiàn)要將/a/b目錄改名為bb,/a/c文件改名為cc,操作如下:圖2-38cd/a↙mvbbb↙mvccc↙若不想改變當(dāng)前目錄,也可用:mv/a/b/a/bb↙mv/a/c/a/cc↙則圖2-38變?yōu)閳D2-39所示的結(jié)構(gòu)。實際上mv的真正功能是在樹型結(jié)構(gòu)中搬移文件和目錄,改名就是某種意義下的搬移。先看搬移文件的用法:mv<帶路徑指引的源文件名稱><帶路徑指引的目標(biāo)文件名稱>↙例如在圖2-40所示的結(jié)構(gòu)中,當(dāng)前目錄為根目錄,輸入:mv/a/d/g/b/e/gg↙則將文件/a/d/g搬移到/b/e下,名稱變?yōu)間g,如圖2-41所示。圖2-39圖2-40圖2-41如果在命令使用中,指引文件存放位置的路徑被省略,就表示文件位于當(dāng)前目錄,如果目標(biāo)文件只用路徑指出其存放位置,而沒有指定文件名稱,那就表示搬移后文件名稱不變。例如在圖2-40中輸入:mv/a/d/h/b/e↙則樹型結(jié)構(gòu)變?yōu)閳D2-42所示。在圖2-42中,輸入:mv/a/cabc↙則文件/a/c被搬移到當(dāng)前目錄——根目錄下,名稱為abc,樹型結(jié)構(gòu)變?yōu)槿鐖D2-43所示。用mv命令還可以搬動以指定目錄為起點的一棵“小樹型結(jié)構(gòu)”,使用方法是:mv<帶路徑指引的起點目錄名稱><目標(biāo)目錄名稱>↙例如,在圖2-43所示中,輸入:mv/b/e/a/ee↙變?yōu)槿鐖D2-44所示。圖2-42圖2-43圖2-44同理,如果省略目標(biāo)目錄的指引路徑,則表示搬移至當(dāng)前目錄;如果省略目標(biāo)目錄名稱,則表示名稱在搬移后不變。注意:使用mv命令對文件或目錄進(jìn)行搬移會產(chǎn)生覆蓋的危險。4.刪除文件使用命令rm,如果要刪除非當(dāng)前目錄下的文件,須加上路徑指引。用法如下:rm<帶路徑指引的文件名稱>↙5.復(fù)制文件在樹型結(jié)構(gòu)下,cp可以跨目錄復(fù)制文件,用法如下:cp<帶路徑指引的源文件名稱><帶路徑指引的目標(biāo)文件名稱>↙與mv命令用法類似,如果省略路徑指引,則表示文件位于當(dāng)前目錄,如果省略目標(biāo)文件名稱,則表示進(jìn)行復(fù)制后名稱仍保持不變。使用可選項-a,cp命令還可復(fù)制整棵目錄樹,用法如下:cp-a<帶路徑指引的起點目錄名稱><帶路徑指引的目標(biāo)目錄名稱>↙例如:在如圖2-45所示中。輸入命令:cp-a/a/d/b/dd↙則圖2-45變?yōu)閳D2-46所示。6.創(chuàng)建新的子目錄使用的命令是mkdir,用法是:mkdir[<路徑>/]<新目錄名稱>↙<路徑>指出新目錄所在的位置,如果路徑指引被省略,則表示在當(dāng)前目錄下創(chuàng)建新的子目錄。如圖2-47所示,設(shè)當(dāng)前目錄為/a。圖2-45圖2-46圖2-47輸入:mkdirb↙則結(jié)構(gòu)變?yōu)槿鐖D2-48所示。再輸入:mkdirb/c↙則結(jié)構(gòu)變?yōu)槿鐖D2-49所示。如果在mkdir命令中指出了實際并不存在的路徑,將會有出錯信息提示,但選用-p選項,則可建立起一連串的新目錄。例如在圖2-49中輸入:mkdir-pd/e/f↙則結(jié)構(gòu)變?yōu)槿鐖D2-50所示。由于當(dāng)前目錄下并無子目錄d,此時mkdir會自動先建立d子目錄,再在d下建立子目錄e,最后在e下建子目錄f。這是一種高效率的用法,甚至可以用一行命令來建立整個樹型結(jié)構(gòu)。例如要把圖2-51中的左圖結(jié)構(gòu)變?yōu)橛覉D所示的結(jié)構(gòu)。圖2-48圖2-49圖2-50圖2-51可以輸入:mkdir–pb/e/g;mkdir–pb/d;mkdir–pc/f↙Linux可以在一個命令行中同時使用多條命令,命令之間用“;”隔開,系統(tǒng)將依次逐條執(zhí)行這些命令。7.刪除目錄刪除目錄的命令是rmdir,用法為:rmdir<帶路徑指引的目錄名稱>如果省略路徑指引,那就表示要刪除的子目錄位于當(dāng)前目錄下。此命令只能刪除空目錄,如果用它去刪除一個非空(即其內(nèi)包含文件或子目錄)目錄,系統(tǒng)會給出出錯提示,這樣從某種意義下可以保障信息的安全,降低發(fā)生誤操作的機(jī)會。要用rmdir刪非空目錄,就必須先刪其包含的文件和子目錄,但用帶可選項-r的rm命令可以一次刪除一棵目錄樹,用法是:rm–r<目錄樹的起點目錄>↙如在圖2-52中,要把以/a/b目錄為起點的整棵目錄樹刪去,可以用:rm–r/a/brm將會遞歸地刪除該目錄樹下的每一個文件及子目錄。由于這是一個非常危險的操作,因此在刪除每一個文件或子目錄時均需用戶進(jìn)行確認(rèn),如果目錄樹規(guī)模較大,這將是一個令人煩惱的過程,此時用戶可用-f可選項取消確認(rèn),例如:rm–rf/a/b↙系統(tǒng)將一聲不響地把以/a/b為起點的目錄樹刪除,當(dāng)然用戶要意識到這種操作的危險性。其他有可能對信息安全性產(chǎn)生危害的命令,如mv、cp、rmdir等,均可類似地使用-f可選項取消確認(rèn)。例如:假設(shè)樹型結(jié)構(gòu)如圖2-53左圖所示,當(dāng)前目錄為根目錄,請用已學(xué)過的Linux命令將此結(jié)構(gòu)變成如圖2-53右圖所示,假設(shè)名稱相同的文件內(nèi)容也相同。圖2-52圖2-53解答:依照樹型結(jié)構(gòu)的變化使用“圖上作業(yè)法”。(1)mkdir/x↙。此時樹型結(jié)構(gòu)變?yōu)槿鐖D2-54所示。(2)mv/c/g/j/x↙。樹型結(jié)構(gòu)變?yōu)槿鐖D2-55所示。圖2-54圖2-55(3)mv/c/g/i/b↙。樹型結(jié)構(gòu)變?yōu)槿鐖D2-56所示。圖2-56(4)rm-rf/c↙。樹型結(jié)構(gòu)變?yōu)槿鐖D2-57所示。(5)mv/a/c↙mv/b/a↙mv/x/b↙樹型結(jié)構(gòu)最終變?yōu)槿鐖D2-58所示。圖2-57圖2-58這正是我們所需要的。2.4.5通配符與多文件操作前面所講的命令大多以單個文件或單個目錄作為操作對象。有時,我們可能同時對多個對象進(jìn)行操作,例如:要觀看當(dāng)前目錄下a、b、c、d、e、f六個文件的內(nèi)容,本來要用六條cat命令:cata;catb;catc;catd;cate;catf;↙Linux提供了一種“操作對象清單”的辦法,可將上面的六條命令簡化為一條:catabcdef↙在這種方法下,將要處理的文件列出在命令之后,中間用空格分開即可。其他的命令也有類似的用法,例如要刪除當(dāng)前目錄下a、b、c、d、e、f六個文件,可用:rmabcdef↙盡管如此,在某些情況下,例如:要刪除當(dāng)前目錄下的所有文件或部分文件(如:所有以字母a開頭的文件),而這些文件的數(shù)目較多或文件名稱較長時,即使使用上述做法也是十分麻煩的。那么是否能有一種匹配符號,由它可以靈活實現(xiàn)一種符號就能表達(dá)一長串的操作對象清單呢?例如:一種符號就能表達(dá)“當(dāng)前目錄下所有文件”、“當(dāng)前目錄下所有以a開頭的文件”等,當(dāng)要刪除一大堆文件時,只需簡單地輸入:rm<匹配符號>↙即可,便能完成所有的操作。在Linux中,是通過通配符來實現(xiàn)一種符號可代表多個操作對象的目的,Linux下使用的通配符有三種,除了在DOS中常被使用的“*”和“?”外,還有“[]”:*:代表在其所在的位置上可以是任意多個任意字符(包括空字符)。?:代表在其所在位置上可以是任意的單個字符。[]:這是一個較特別的符號,在“[”和“]”之間是一個字符集,例如:[123abc]等。此符號表示在其所在的位置上可以是括號內(nèi)所包含的字符集中的某個字符。如果供選擇的字符集是連續(xù)的,例如:[abcdefgh],可用連貫符號“-”作簡化,將它寫成[a-h];同理,十個十進(jìn)制數(shù)碼組成的字符集可寫為[0-9],而全體英文字母(包括大小寫)組成的字符集則可寫成[a-zA-Z]。從上可以看出,這三種匹配符號均起到一個字符表達(dá)多種不同字符(串)選擇的作用,將它們與普通字符組合成“通配表達(dá)式”便能靈活表達(dá)多種不同字符串,再看看操作對象中有哪些與其匹配,從而便達(dá)到一個通配表達(dá)式同時代表多個操作對象的目的。例如:設(shè)當(dāng)前目錄下有以下文件。(1)Abcd (2)XYZ (3)abcd (4)bcd (5)f23 (6)f4(7)f9.html (8)fe (9)fdisk.exe (10)gaz.html (11)h.so (12)ddisk.html表2-5指出通配表達(dá)式的含義,以及與當(dāng)前目錄下哪些文件匹配。表2-5通配表達(dá)式的含義及其當(dāng)前目錄下匹配的文件通配表達(dá)式含義與其匹配的文件A*以a開頭的所有文件(3)[a-zA-Z]???以英文字母(大小寫)開頭,文件名稱長度為4個字符的文件(1)、(3)、(11)*.html以.html作后綴的文件(7)、(10)、(12)F[012]文件名稱開頭字母為f,名稱長為2個字符,第二個字符為0或1或2無F[1-9]文件名稱長為2個字符,以f開頭,第二個字符是1~9九個數(shù)字中的一個(6)*全體文件(1)~(12)?disk*文件名稱的第二到第五個字符分別為disk(9)、(12)一個通配表達(dá)式能與什么文件匹配是相對的,與用戶在該目錄下的文件有關(guān)。使用通配表達(dá)式,我們可以很方便地實現(xiàn)多文件操作,只需用通配表達(dá)式替代操作命令中相應(yīng)位置上的<文件名稱>以及<目錄名稱>即可。例如當(dāng)前目錄下有以下文件:A a.txt Bcd d.txt fe.txtH1 ijk.txt Lucky memo tea.txt現(xiàn)在我們要在屏幕上顯示所有以“.txt”作后綴的文件的內(nèi)容,可輸入:cat*.txt↙系統(tǒng)在執(zhí)行此命令時,首先會看看通配表達(dá)式與當(dāng)前目錄下哪些文件匹配,然后將其“展開”,在此例中,“*.txt”被展為:a.txtd.txtfe.txtijk.txttea.txt然后代入命令中,即把“cat*.txt”變?yōu)椋篶ata.txtd.txtfe.txtijk.txttea.txt再真正運(yùn)行以上命令。以前學(xué)過的命令中有很多是可以利用通配符進(jìn)行操作的,例如,樹型結(jié)構(gòu)如圖2-59所示(當(dāng)前目錄為/)。圖2-59要列出文件A、B…Z的詳細(xì)屬性信息,可輸入:ls–l[A-Z]↙如果要列出文件a、b…t、A、B…Z的詳細(xì)屬性信息,類似地可用:ls-l[a-tA-Z]↙如果輸入:ls–l?↙可以發(fā)現(xiàn)除了當(dāng)前目錄下所有文件被列出以外,子目錄u、v中的文件也被列出,這是因為系統(tǒng)在將“?”展開時,也匹配了u和v,故執(zhí)行的命令中包括了:ls–luv↙有了通配符,在作文件名稱列表時,我們可以很方便地將注意力集中到所需的文件上,而無須理會其他無關(guān)重要的文件。另外,在目錄下有一些文件的名稱是以“.”開頭的,例如:.profile.xinitrc等。這些文件即使使用ls或ls*命令均不能被列出,我們將之稱為“隱含文件”。如要列出隱含文件,可用:ls.*↙或用帶-a可選項的ls命令,該可選項可使包括隱含文件在內(nèi)的所有文件均被列出。如果用戶希望ls命令不光能列出某一目錄下的文件名稱,而且還希望列出以該目錄為起點的整個目錄樹中所有文件的信息,可用-R可選項,例如在上例中輸入:ls–Rl↙將列出整個樹型結(jié)構(gòu)中所有文件和子目錄的詳細(xì)信息。請大家思考一下:在上例中,如果要列出整個樹型結(jié)構(gòu)中所有以小寫字母開頭的文件的詳細(xì)信息,又該輸入什么命令,是否要輸入:ls–Rl[a-z]↙請作具體試驗,并解釋結(jié)果。例如:將圖2-60中左圖的樹型結(jié)構(gòu)變?yōu)橛覉D,假設(shè)當(dāng)前目錄為/,相同名稱的文件內(nèi)容也相同。使用一條命令即可:rm[a-jl-z]↙如果不使用“[]”,也可用三條命令完成:mvkabc;rm?;mvabck↙例如:完成下列樹型結(jié)構(gòu)變化,假設(shè)當(dāng)前目錄為/,相同名稱的文件內(nèi)容也相同,如圖2-61所示。圖2-60圖2-61命令是:rm[ab]/[1-9];rm[cd]/[0-8]↙可見,通配表達(dá)式還可多層使用。例如:完成下列樹型結(jié)構(gòu)變化,假設(shè)當(dāng)前目錄為/,相同名稱的文件內(nèi)容也相同,如圖2-62所示。所需命令為:rmdira/[b-z]a/b/[ac-z]a/b/c[ab][d-z]↙例:完成下列樹型結(jié)構(gòu)變化,假設(shè)當(dāng)前目錄為/,相同名稱的文件內(nèi)容也相同,如圖2-63所示。圖2-62圖2-63命令是:mkdir/a/b/c↙cp/a?/a↙rm/a3↙mv/b?/b↙mv/c?/c↙在chmod、chown、chgrp等命令中也同樣可以使用通配符,以實現(xiàn)一次改變多個文件或目錄的屬性,使用-r(r表示recursive,循環(huán)的意思)可選項,甚至可一次改變整個目錄樹中所有文件的屬性。2.4.6硬鏈接在Linux下,一個文件可以同時歸屬于多個不同目錄,相應(yīng)的操作稱為鏈接,使用ln命令可以將一個現(xiàn)存的文件鏈接到另外一個目錄,具體用法為:ln<帶路徑指引的文件名稱><帶路徑指引的目錄名稱>↙例如,如圖2-64所示,輸入命令:ln/a/c/b↙則結(jié)構(gòu)變?yōu)槿鐖D2-65所示。圖2-64圖2-65此時,無論是:ls/a↙還是:ls/b↙均顯示有文件c,而且無論用戶在哪一個目錄中對文件c進(jìn)行修改,在另一個目錄中都能發(fā)現(xiàn)c確實已作相應(yīng)修改,這是ln命令與cp命令的不同之處。cp復(fù)制的文件在物理上位于存儲介質(zhì)的不同位置,確實是不同的文件;而ln鏈接的文件,在存儲介質(zhì)上只有一個,只不過在不同的目錄下同時作了登記而已。當(dāng)用戶要在文件系統(tǒng)中徹底刪除一個作了鏈接的文件時,必須在其所屬(鏈接)的所有目錄下都刪除該文件。如在上例中,要刪去文件c的話,必須:rm/a/c↙rm/b/c↙如果是刪除一次,在另一目錄中可看到文件c仍存在。鏈接一般只能對文件,為了與后面講的“符號鏈接”相區(qū)別,上述的鏈接方法被稱為“硬鏈接”(hardlink)。2.4.7符號鏈接還有一種被稱為“符號鏈接”的鏈接方式,主要是為簡化操作而設(shè)的,有點類似于Windows95中的“快捷方式”。有時,經(jīng)常要在某個目錄中對樹型結(jié)的另一個目錄中的文件或子目錄進(jìn)行操作,如圖2-66所示。圖2-66在圖2-66中,當(dāng)前目錄為a,經(jīng)常要使用/b/e/i/j文件,為了避免經(jīng)常轉(zhuǎn)換當(dāng)前目錄或書寫一長串指引路徑的麻煩,可以在當(dāng)前目錄a下建立該文件的一個符號鏈接,建立的一般方法是使用帶-s可選項的ln命令,用法如下:ln–s<帶路徑指引的文件或子目錄名稱><符號鏈接文件名稱>↙于是,在上例中,輸入:ln–s/b/e/i/j/a/k↙則在當(dāng)前目錄/a下建立了一個符號鏈接文件k,如圖2-67所示。圖2-67以后在圖例中,符號鏈接用“…”表示,并在旁邊注明其鏈接的目標(biāo)。當(dāng)輸入ls命令時,可以看到如圖2-68所示。圖2-68在符號鏈接文件后標(biāo)有符號“@”,表示這是一個符號鏈接,在彩色終端上還可以看到該文件的顏色與其他類型的文件是不一樣的。建立了符號鏈接k后,可以簡化很多操作。例如,要觀看j文件的內(nèi)容,本來應(yīng)輸入:cat/b/e/i/j↙而現(xiàn)在只要輸入:catk↙就可以起到相同的作用。系統(tǒng)會自動地用符號鏈接文件k的內(nèi)容“/b/e/i/j”進(jìn)行替代。除對文件進(jìn)行鏈接外,符號鏈接還可對目錄進(jìn)行,例如:ln-s/b/el↙則在當(dāng)前目錄/a下多了一個指向/b/e目錄的符號鏈接文件l,如圖2-69所示。圖2-69此時,我們要列出/b/e的內(nèi)容,只需輸入:lsl↙前面講過的命令,大部分都可以利用符號鏈接進(jìn)行替代,例如:cpl/h/a↙mkdirl/x↙cpkkk↙rmdirl/v↙等等。但如果我們使用命令:cdl↙用pwd命令觀看當(dāng)前目錄,可以發(fā)現(xiàn),當(dāng)前目錄并不是/b/e,而是/a/l;再輸入:cd..↙再用pwd檢查,當(dāng)前目錄并非/b,而是/a,這一點請大家在操作時要注意。另外,要刪除符號鏈接,直接使用rm命令即可,例如:rml↙rmk↙在使用rm命令時,并不會發(fā)生替代。符號鏈接可用mv進(jìn)行改名,同樣也不會發(fā)生替代。符號鏈接的對象如被刪除或發(fā)生改名、搬移等變化,對符號鏈接文件本身并無任何影響。甚至還可在創(chuàng)建符號鏈接時,將其指向一個根本不存在的文件或目錄,當(dāng)然,在應(yīng)用其進(jìn)行操作時,系統(tǒng)會給出找不到相應(yīng)文件或子目錄的出錯信息。2.5文件屬性2.5.1顯示文件屬性在Linux的文件系統(tǒng)中,以文件統(tǒng)一處理各種對象,以上所講的符號鏈接和目錄實質(zhì)上都可以看作是特殊的文件。一個文件除了作為標(biāo)識的文件名稱以外還有許多特性,例如:最后修改時間、最后訪問時間、文件的類別(一般文件、目錄或符號鏈接等)、硬鏈接數(shù)目、文件的長度等。此外,Linux是一個多用戶的系統(tǒng),在對文件進(jìn)行操作時,必會涉及到安全性——即用戶操作權(quán)限的問題,所有這些特性,我們統(tǒng)稱為文件的屬性。要得到文件的屬性信息,可以使用帶-l可選項的ls命令。利用它可以得到當(dāng)前目錄下每一個文件(廣義的文件,包括目錄、符號鏈接等)屬性的詳細(xì)信息,如圖2-70所示。圖2-70從圖2-70中可見,每一個文件的屬性信息如下:-rwxr-xr--1rootroot10739Dec2313:31bbscon(7)(4)(5)(6)(3)(2)(1)從左到右分為7欄,其含義分別為:(1)文件名稱,如果是符號鏈接,還會在文件名稱后顯示出其鏈接的對象。(2)文件最后一次修改的時間,如果是在最近一個月所作的修改,則依次顯示月、日、時、分,否則,顯示月、日、年。(3)文件的長度,對于目錄這種特別的文件(以后就稱為目錄文件),其內(nèi)容為它所包含的文件及子目錄在存儲介質(zhì)上的位置,因而也是有長度的。目錄的長度會隨著其內(nèi)文件及子目錄數(shù)的多寡而變化。(4)對一般文件而言是指其硬鏈接數(shù),即該文件同時歸屬于多少個不同的目錄。對于目錄文件,是該目錄所直接包含的子目錄數(shù)目加2(實質(zhì)上是兩個特殊子目錄——當(dāng)前目錄“.”和上級目錄“..”)。以下(5)~(7)為用戶對該文件操作權(quán)限方面的信息。(5)表示文件的擁有者(owner),擁有者一般對其擁有的文件具有較多的操作權(quán)限。(6)表示文件的組擁有者,凡屬于該組的用戶對文件的操作通常比其他一般用戶具有更多的權(quán)限。(7)文件的權(quán)限字串,共計10個字符,分為4部分:-rwxr–xr--ABCDA表示文件的性質(zhì),占1個字符,此字符有多種選擇,常用的有:-一般文件。d目錄文件。l符號鏈接文件。b塊類型設(shè)備文件。c字符型設(shè)備文件。后兩類文件將會在設(shè)備文件一節(jié)中講述。事實上,通過辨別文件權(quán)限字串的第一位,我們便可以分清一個名稱所代表的究竟是一般文件,還是目錄文件、符號鏈接或其他特殊類型的文件。B~D決定了系統(tǒng)內(nèi)的所有用戶對該文件的操作權(quán)限。B表示文件的擁有者對該文件的操作權(quán)限。C表示文件的組擁有者(屬于該組的全體用戶)對該文件的操作權(quán)限。D表示其他所有用戶對該文件的操作權(quán)限。權(quán)限通常包括r、w、x三種:r表示讀的權(quán)限。對于一般文件,用戶擁有它的r權(quán),則可讀出該文件的內(nèi)容。例如,可以用cat命令顯示其內(nèi)容(如果是文本文件的話),可以復(fù)制該文件等。對于目錄,用戶可以觀看該目錄的內(nèi)容,例如使用ls命令對該目錄所包含的文件名稱進(jìn)行列表等。w表示寫的權(quán)限。對于一般文件,這意味著擁有此權(quán)限的用戶可以修改該文件。對于目錄,擁有此權(quán)的用戶可在該目錄中建立新的文件或子目錄,可以刪除、移動、改名其所包含的文件和子目錄等等。x表示可執(zhí)行權(quán)。具有x權(quán)的一般文件往往是一個可執(zhí)行程序,用戶可以具此判斷一個文件是否能被執(zhí)行,最常見的可執(zhí)行文件包括二進(jìn)制機(jī)器碼文件和shell過程文件。一個不可執(zhí)行的文件若被賦予x權(quán),那在運(yùn)行它的時候會產(chǎn)生不可預(yù)料的結(jié)果。用戶如擁有了某個文件的x權(quán),他就可以在需要時運(yùn)行這個文件,運(yùn)行的方法是在系統(tǒng)提示符下輸入:<帶路徑指引的可執(zhí)行文件名稱>↙例如在圖2-55中,在當(dāng)前目錄/a下有可執(zhí)行文件d,用戶擁有其x權(quán),現(xiàn)要運(yùn)行d,可以輸入:/a/d↙或./d↙如圖2-71所示。圖2-71一般情況下路徑指引是不可省略的,除非已經(jīng)把該可執(zhí)行文件所在的目錄設(shè)為搜索目錄(后面會講到)。對于目錄,只有當(dāng)用戶擁有其x權(quán)后,才可用cd命令轉(zhuǎn)入該目錄,如果在cd命令后使用一長串路徑,則該路徑所經(jīng)過的所有目錄,用戶都必須具有x權(quán),方可正確轉(zhuǎn)入。實際上,前面所講的許多命令,例如ls、cat、cp、mv等等,都是以可執(zhí)行文件的形式放在文件系統(tǒng)中,我們運(yùn)行這些命令,實質(zhì)上就是運(yùn)行相應(yīng)的可執(zhí)行程序。只不過這些命令存放的目錄已被系統(tǒng)自動設(shè)置為搜索目錄,因此我們在輸入命令時,在命令的前面無須加上路徑的指引。也有個別的命令,例如:cd,沒有任何可執(zhí)行文件與之對應(yīng),它完全是由系統(tǒng)本身解釋執(zhí)行的,這類命令被稱為“內(nèi)部命令”。以上權(quán)限約束一般只對普通用戶有效,對于root,由于他是系統(tǒng)中權(quán)力至高無上的管理者,因此,無論一個文件(目錄)的r、w權(quán)怎樣設(shè)置,他都自動擁有該文件(目錄)的r、w權(quán);另外,只要該文件的權(quán)限字串中出現(xiàn)過一次x權(quán)(表明該文件可執(zhí)行),root就具有運(yùn)行該程序文件的權(quán)力。在權(quán)限字串的寫法中,r、w、x依次排列,如果有某種權(quán)限是沒有的,就用“-”來代替。組合起來無非就是8種情況,分別是:rwxrw-r-x-wxrw-r---w-還有一個比較冷僻的執(zhí)行權(quán)s。我們在術(shù)語中把一個正在運(yùn)行的程序稱為“進(jìn)程”。當(dāng)在進(jìn)程中需要打開其他文件時,如何判斷其權(quán)限情況呢?這要根據(jù)進(jìn)程的擁有者。如果用戶執(zhí)行文件時是對該文件擁有x權(quán),該文件的權(quán)限字串中也沒有使用過s權(quán)的話,那么進(jìn)程的擁有者就是運(yùn)行該程序的用戶。例如,可執(zhí)行文件d的權(quán)限字串為:-rwxr-xr-x其擁有者為root,組擁有者是root。用戶h1運(yùn)行d,那么相應(yīng)進(jìn)程的擁有者就是h1。如果程序d在運(yùn)行過程中要讀取文件c的內(nèi)容,文件c的權(quán)限字串如下:-rw其擁有者為root,組擁有者也是root。由于程序d的進(jìn)程擁有者h(yuǎn)1對文件c并沒有r權(quán),故操作失敗。s權(quán)可以被賦予擁有者或組擁有者,它與x權(quán)的區(qū)別是,當(dāng)一個具有s權(quán)的可執(zhí)行文件被執(zhí)行時,其進(jìn)程擁有者不是運(yùn)行相應(yīng)程序的用戶,而是文件的擁有者!如在上述例子中,如果文件d的權(quán)限字串變?yōu)椋?r-sr-xr-x其他信息不變。當(dāng)用戶h1運(yùn)行d時,相應(yīng)的進(jìn)程擁有者就不是h1了,而是root,root具有對文件c的一切權(quán)限,操作自然就成功了。請大家自行作一個實驗,實驗以下我們已學(xué)過的命令在運(yùn)行時對該命令的操作對象應(yīng)具有何種權(quán)限,把結(jié)果做成一張表格。2.5.2權(quán)限字與權(quán)限操作文件的屬性可以進(jìn)行修改。例如:文件的最近修改時間可以用touch命令改變,用法為:touch<帶路徑指引的文件或目錄名稱>↙此用法可以把相應(yīng)文件的最近修改時間改為當(dāng)前時間,若指定的文件不存在,touch會在相應(yīng)的位置上建立一個空文件(長度為0),這大概是建立文件的最簡單方法。touch命令還可以將文件的最近修改時間改到一個指定的時刻,用法是使用-t可選項。touch–tMMDDhhmm[CC[YY]][.ss]<帶路徑指引的文件或目錄名稱>↙命令中所使用的時間串的寫法與date命令中的類似。文件的擁有者可以用命令chown進(jìn)行修改,用法是:chown<新?lián)碛姓哔~號名><帶路徑指引的文件名稱>↙文件的組擁有者也可以用命令chgrp修改,用法是:chgrp<新的組擁有者名稱><帶路徑指引的文件名稱>↙例如,以root身份進(jìn)入系統(tǒng),分別進(jìn)行以下操作,如圖2-72所示。圖2-72文件的操作權(quán)限可用命令chmod進(jìn)行修改,用法為:chmod<八進(jìn)制權(quán)限字串><帶路徑指引的文件名稱>↙其中<八進(jìn)制權(quán)限字串>由3位八進(jìn)制數(shù)碼(0~7)組成,這3位數(shù)字依次分別對應(yīng)于文件擁有者、組擁有者、其他用戶對該文件的操作權(quán)限。這3位數(shù)字的制定方法如下:首先,每一種權(quán)限對應(yīng)一個八進(jìn)制數(shù)值:-0x1w2r4而<八進(jìn)制權(quán)限串>中的每一位八進(jìn)制數(shù),就是對應(yīng)各權(quán)限之和:0r--4--x1r-x5-w-2rw-6-wx3Rwx7例:寫出下列權(quán)限字串的對應(yīng)八進(jìn)制權(quán)限串:-rwxr-xr-x755drwxrwx770-rw-r--r--644-rwxr-x750drwxrwxrwx777例如,以root身份登錄,進(jìn)行如下一系列操作,如圖2-73所示。圖2-73chmod命令還有一種較直觀的用法:chmod<a|u|g|o><+|-|=><權(quán)限字串><帶路徑指引的文件名稱>↙此處,u代表文件擁有者,g代表組擁有者,o代表其他用戶,a代表全體用戶(即同時包括u、g、o),“|”符號表示在多個選擇中選取其中一個,+表示增加權(quán)限,-表示去掉權(quán)限,=表示指定權(quán)限,<權(quán)限字串>則是-、r、w、x中的某一個或它們的組合。例如:為文件abc的組擁有者增加rw權(quán):chmodg+rwabc↙為abc文件的文件擁有者去除x權(quán):chmodu-xabc↙指定文件abc的其他用戶權(quán)限為rw-:chmodo=rw-abc↙為文件abc的全體用戶增加x權(quán):chmoda+xabc↙當(dāng)一個新文件建立時,一般有一個權(quán)限缺省值,例如對于可執(zhí)行文件是“755”,即rwxr-xr-x,對于非可執(zhí)行文件,是“644”,即rw-r—r--。如果想改變這一缺省值,可用命令umask設(shè)置屏蔽,用法為:umask<八進(jìn)制權(quán)限屏蔽字>↙新的缺省值由以下方式產(chǎn)生:對于可執(zhí)行文件,新缺省值是:.not.(<八進(jìn)制權(quán)限屏蔽字>)對于非可執(zhí)行文件,新缺省值是:666.and..not.(<八進(jìn)制權(quán)限屏蔽字>)此處,“.and.”和“.not.”分別是邏輯與和邏輯否操作。例如:umask033↙則缺省值變?yōu)?,對于可?zhí)行文件:.not.033=744即rwxr—r—對于非可執(zhí)行文件:666.and..not.(033)=633即rw—wx-wx特別地,如要觀察當(dāng)前權(quán)限屏蔽字的情況,可直接輸入:umask↙例如顯示:03文件操作相關(guān)命令(1)觀看文件名稱列表,命令是ls(源于list),用法為:ls↙系統(tǒng)將顯示“當(dāng)前”存儲的全體文件名稱。(2)顯示一個文本文件的內(nèi)容,命令是cat(源于catalog),用法為:cat<文本文件名稱>↙例如:要觀看文本文件readme的內(nèi)容,可以輸入:catreadme↙屏幕上將顯示該文件的內(nèi)容,如圖2-74所示。圖2-74如果文件內(nèi)容很多,還可以通過:cat<文本文件名稱>|more↙實現(xiàn)翻屏?xí)和!W⒁猓褐挥形谋疚募膬?nèi)容才會被正確輸出,其他文件——例如機(jī)器指令組成的文件,用戶將只能在屏幕上看到一些古怪的字符。(3)刪除一個文件,命令是rm(源于remove),用法為:rm<文件名稱>↙如圖2-75所示。圖2-75<文件名稱>指定了要刪除的文件的名字,例如:最后的ls命令證實了文件a確實已經(jīng)被刪除掉了。這一變化可以用圖2-76表示。圖2-76(4)改變一個文件的名稱,命令是mv(源于move),用法為:mv<原文件名稱><新文件名稱>↙例如,續(xù)上圖,我們要把文件b的名稱改為abc,操作如圖2-77所示。圖2-77最后的ls命令證實了文件確實已被改名。此過程可以用如圖2-78所示來描述。圖2-78注意:如果要改變的文件的新名稱是現(xiàn)在已有文件的名稱,例如在上例中,輸入:mvbc↙要將文件b的名稱改為c,但c文件原已存在。那是否會產(chǎn)生兩個名稱同為c的文件呢?當(dāng)然不可能,因為這樣系統(tǒng)就無法通過文件名稱來辨識兩個不同的文件了。一般情況下系統(tǒng)會先將原有文件c刪除,再將文件b的名稱改為c,經(jīng)此操作后,盡管文件c仍存在,但其內(nèi)容已變。這種情況被稱為“覆蓋”,覆蓋會刪除現(xiàn)存文件,錯誤的覆蓋有可能造成信息丟失,因而mv是一種有潛在危險的操作。為了保障數(shù)據(jù)的安全,在一些Linux系統(tǒng)中,當(dāng)要發(fā)生覆蓋時會先作提示,例如:mv:replace'c'?用戶輸入y↙,將發(fā)生覆蓋,輸入n↙,系統(tǒng)不作任何操作,返回提示符。(5)復(fù)制文件,命令是cp(源于copy,由于音譯的原因,復(fù)制又稱為“拷貝”),用法為:cp<源文件名稱><目標(biāo)文件名稱>↙例如,續(xù)上圖,要將文件abc復(fù)制到文件123,操作如圖2-79所示。圖2-79最后的ls命令證實了文件已被復(fù)制。文件123是文件abc的復(fù)制品,這兩個文件名稱不同,但內(nèi)容是一樣的。盡管如此,它們在物理上分別位于存儲介質(zhì)上的不同位置,因而確實是兩個不同的文件,此過程可用圖2-80所示來描述。圖2-80復(fù)制文件也同樣有可能產(chǎn)生覆蓋,例如在圖2-80中輸入:cpabcc↙此時,大多數(shù)Linux系統(tǒng)將會提示:cp:overwrite'abc'?讓用戶自己作決定。另外,一個文件不能復(fù)制為自身,例如,以下的用法是錯誤的:cpdd↙2.6文件備份和壓縮備份是計算機(jī)日常重要操作之一。放在硬盤上的文件,很容易會因硬件損壞、軟件改裝、誤操作等各種原因而遭受破壞。通常對于重要的數(shù)據(jù),都要定期將它從硬盤上復(fù)制到其他存儲介質(zhì)(例如:軟盤、磁帶、MO等)上,然后設(shè)法妥善保管這些備份介質(zhì),從而達(dá)到保護(hù)(原始)數(shù)據(jù)的目的,一旦硬盤上數(shù)據(jù)遭受損害,我們可以從備份介質(zhì)上把原先的數(shù)據(jù)還原。最簡單的備份方法是用cp命令進(jìn)行復(fù)制。例如:用戶在/data目錄下存放了重要數(shù)據(jù),假設(shè)所有這些數(shù)據(jù)的總?cè)萘坎怀^一張3″高密盤的容量。現(xiàn)對這些數(shù)據(jù)進(jìn)行備份,假設(shè)a:為一3″軟驅(qū),可以在a:中插入一張新盤片,然后對其進(jìn)行格式化,輸入:fdformat/dev/fd0H1440↙格式化完成后,再在盤片上建立必須的文件系統(tǒng):mkfs/dev/fd0↙然后將該軟盤架設(shè)到主文件系統(tǒng)上:mount/dev/fd0/mnt↙再將/data為起點的整棵目錄樹復(fù)制到軟盤上:cp–a/data/*/mnt↙注意:復(fù)制后文件的權(quán)限情況會改變,例如:擁有者會變?yōu)檫M(jìn)行備份的操作員,如果想保留原先的權(quán)限設(shè)置,可以使用可選項-p。復(fù)制完成后,卸載軟盤,輸入:umount/mnt↙從軟驅(qū)中取出軟盤,進(jìn)行寫保護(hù),貼上標(biāo)簽,例如:注明備份內(nèi)容、備份日期、時間、操作人等信息,然后妥善保管。這樣,一次

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論