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