Linux入門時(shí)必學(xué)60個(gè)文件處理命令
圖1 使用ls-l命令
文件類型開頭是由10個(gè)字符構(gòu)成的字符串。其中第一個(gè)字符表示文件類型,它可以是下述類型之一:-(普通文件)、d(目錄)、l(符號(hào)鏈接)、b(塊設(shè)備文件)、c(字符設(shè)備文件)。后面的9個(gè)字符表示文件的訪問權(quán)限,分為3組,每組3位。第一組表示文件屬主的權(quán)限,第二組表示同組用戶的權(quán)限,第三組表示其他用戶的權(quán)限。每一組的三個(gè)字符分別表示對文件的讀(r)、寫(w)和執(zhí)行權(quán)限(x)。對于目錄,表示進(jìn)入權(quán)限。s表示當(dāng)文件被執(zhí)行時(shí),把該文件的 UID或GID賦予執(zhí)行進(jìn)程的UID(用戶ID)或GID(組 ID)。t表示設(shè)置標(biāo)志位(留在內(nèi)存,不被換出)。如果該文件是目錄,那么在該目錄中的文件只能被超級用戶、目錄擁有者或文件屬主刪除。如果它是可執(zhí)行文件,那么在該文件執(zhí)行后,指向其正文段的指針仍留在內(nèi)存。這樣再次執(zhí)行它時(shí),系統(tǒng)就能更快地裝入該文件。接著顯示的是文件大小、生成時(shí)間、文件或命令名稱。
diff
1.作用
diff命令用于兩個(gè)文件之間的比較,并指出兩者的不同,它的使用權(quán)限是所有用戶。
2.格式
diff [options] 源文件 目標(biāo)文件
3.[options]主要參數(shù)
-a:將所有文件當(dāng)作文本文件來處理。
-b:忽略空格造成的不同。
-B:忽略空行造成的不同。
-c:使用綱要輸出格式。
-H:利用試探法加速對大文件的搜索。
-I:忽略大小寫的變化。
-n ——rcs:輸出RCS格式。
cmp
1.作用
cmp(“compare”的縮寫)命令用來簡要指出兩個(gè)文件是否存在差異,它的使用權(quán)限是所有用戶。
2.格式
cmp[options] 文件名
3.[options]主要參數(shù)
-l:將字節(jié)以十進(jìn)制的方式輸出,并方便將兩個(gè)文件中不同的以八進(jìn)制的方式輸出。
cat
1.作用
cat(“concatenate”的縮寫)命令用于連接并顯示指定的一個(gè)和多個(gè)文件的有關(guān)信息,它的使用權(quán)限是所有用戶。
2.格式
cat [options] 文件1 文件2……
3.[options]主要參數(shù)
-n:由第一行開始對所有輸出的行數(shù)編號(hào)。
-b:和-n相似,只不過對于空白行不編號(hào)。
-s:當(dāng)遇到有連續(xù)兩行以上的空白行時(shí),就代換為一行的空白行。
4.應(yīng)用舉例
(1)cat命令一個(gè)最簡單的用處是顯示文本文件的內(nèi)容。例如,我們想在命令行看一下README文件的內(nèi)容,可以使用命令:
$ cat README
(2)有時(shí)需要將幾個(gè)文件處理成一個(gè)文件,并將這種處理的結(jié)果保存到一個(gè)單獨(dú)的輸出文件。cat命令在其輸入上接受一個(gè)或多個(gè)文件,并將它們作為一個(gè)單獨(dú)的文件打印到它的輸出。例如,把README和INSTALL的文件內(nèi)容加上行號(hào)(空白行不加)之后,將內(nèi)容附加到一個(gè)新文本文件File1 中:
$ cat README INSTALL File1
(3)cat還有一個(gè)重要的功能就是可以對行進(jìn)行編號(hào),見圖2所示。這種功能對于程序文檔的編制,以及法律和科學(xué)文檔的編制很方便,打印在左邊的行號(hào)使得參考文檔的某一部分變得容易,這些在編程、科學(xué)研究、業(yè)務(wù)報(bào)告甚至是立法工作中都是非常重要的。
圖2 使用cat命令/etc/named.conf文件進(jìn)行編號(hào)
對行進(jìn)行編號(hào)功能有-b(只能對非空白行進(jìn)行編號(hào))和-n(可以對所有行進(jìn)行編號(hào))兩個(gè)參數(shù):
$ cat -b /etc/named.conf
ln
1.作用
ln命令用來在文件之間創(chuàng)建鏈接,它的使用權(quán)限是所有用戶。
2.格式
ln [options] 源文件 [鏈接名]
3.參數(shù)
-f:鏈結(jié)時(shí)先將源文件刪除。
-d:允許系統(tǒng)管理者硬鏈結(jié)自己的目錄。
-s:進(jìn)行軟鏈結(jié)(Symbolic Link)。
-b:將在鏈結(jié)時(shí)會(huì)被覆蓋或刪除的文件進(jìn)行備份。
鏈接有兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號(hào)鏈接(Symbolic Link)。默認(rèn)情況下,ln命令產(chǎn)生硬鏈接。
硬連接指通過索引節(jié)點(diǎn)來進(jìn)行的連接。在Linux的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給它分配一個(gè)編號(hào),稱為索引節(jié)點(diǎn)號(hào)(Inode Index)。在Linux中,多個(gè)文件名指向同一索引節(jié)點(diǎn)是存在的。一般這種連接就是硬連接。硬連接的作用是允許一個(gè)文件擁有多個(gè)有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因?yàn)閷?yīng)該目錄的索引節(jié)點(diǎn)有一個(gè)以上的連接。只刪除一個(gè)連接并不影響索引節(jié)點(diǎn)本身和其它的連接,只有當(dāng)最后一個(gè)連接被刪除后,文件的數(shù)據(jù)塊及目錄的連接才會(huì)被釋放。也就是說,文件才會(huì)被真正刪除。
與硬連接相對應(yīng),Lnux系統(tǒng)中還存在另一種連接,稱為符號(hào)連接(Symbilc Link),也叫軟連接。軟鏈接文件有點(diǎn)類似于Windows的快捷方式。它實(shí)際上是特殊文件的一種。在符號(hào)連接中,文件實(shí)際上是一個(gè)文本文件,其中包含的有另一文件的位置信息。
動(dòng)手聯(lián)系
上面我們介紹了Linux文件處理命令,下面介紹幾個(gè)實(shí)例,大家可以動(dòng)手練習(xí)一下剛才講過的命令。
1.利用符號(hào)鏈接快速訪問關(guān)鍵目錄
符號(hào)鏈接是一個(gè)非常實(shí)用的功能。假設(shè)有一些目錄或文件需要頻繁使用,但由于Linux的文件和目錄結(jié)構(gòu)等原因,這個(gè)文件或目錄在很深的子目錄中。比如, Apache Web服務(wù)器文檔位于系統(tǒng)的/usr/local/httpd/htdocs中,并且不想每次都要從主目錄進(jìn)入這樣一個(gè)長的路徑之中(實(shí)際上,這個(gè)路徑也非常不容易記憶)。
為了解決這個(gè)問題,可以在主目錄中創(chuàng)建一個(gè)符號(hào)鏈接,這樣在需要進(jìn)入該目錄時(shí),只需進(jìn)入這個(gè)鏈接即可。
為了能方便地進(jìn)入Web服務(wù)器(/usr/local/httpd/htdocs)文檔所在的目錄,在主目錄下可以使用以下命令:
$ ln -s /usr/local/httpd/htdocs gg
這樣每次進(jìn)入gg目錄就可訪問Web服務(wù)器的文檔,以后如果不再訪問Web服務(wù)器的文檔時(shí),刪除gg即可,而真正的Web服務(wù)器的文檔并沒有刪除。
2.使用dd命令將init.rd格式的root.ram內(nèi)容導(dǎo)入內(nèi)存
dd if=/dev/fd0 of=floppy.fd
dd if=root.ram of=/dev/ram0 #
3.grep命令系統(tǒng)調(diào)用
grep是Linux/Unix中使用最廣泛的命令之一,許多Linux系統(tǒng)內(nèi)部都可以調(diào)用它。
評論