Linux 中一切皆為文件,文件類型也有多種,使用 ls -l 命令可以查看文件的屬性,所顯示結果的第一列的第一個字元用來表明該文件的文件類型,如下: 1、普通文件 使用 ls -l 命令後,第一列第一個字元為 "-" 的文件為普通文件,如上圖所示,普通文件一般為灰色字體,綠色字體的是可執行文件,紅 ...
Linux 中一切皆為文件,文件類型也有多種,使用 ls -l 命令可以查看文件的屬性,所顯示結果的第一列的第一個字元用來表明該文件的文件類型,如下:
1、普通文件
使用 ls -l 命令後,第一列第一個字元為 "-" 的文件為普通文件,如上圖所示,普通文件一般為灰色字體,綠色字體的是可執行文件,紅色字體的是壓縮文件。
文件的許可權:
以普通文件為例,使用 ls -l 命令,可以看到結果的第一列是 -rwxrwxrwx 的形式,其中第一個字元 "-" 表示這個文件為普通文件,它也可以是其他的字元,不同的字元代表不同類型的文件。其後的一串字元表明瞭該文件的許可權,其中:
1)r 表明該文件具有可讀許可權,若該位置為 "-" ,則表明文件不可讀;
2)w 表明該文件具有寫許可權,若該位置為 "-" ,則表明文件不可寫;
3)x 表明該文件具有可執行許可權,若該位置為 "-" ,則表明文件不具有可執行許可權;
4)第一個 rwx 表示該文件的所有者對該文件的許可權;第二個 rwx 表示該文件所屬組對該文件的許可權;第三個 rwx 表示其他用戶對該文件的許可權。
創建一個普通文件:
可以使用 touch 命令來創建一個文件:
touch newfile
刪除一個普通文件:
可以使用 rm 命令來刪除一個文件:
rm newfile
2、目錄文件
Linux 中的目錄也是文件,目錄文件中保存著該目錄下其他文件的 inode 號 和文件名等信息,目錄文件中的每個數據項都是指向某個文件 inode 號的鏈接,刪除文件名就等於刪除與之對應的鏈接。目錄文件的字體顏色是藍色,使用 ls -l 命令查看,第一個字元為"d"(directory)。
目錄文件的許可權:
1)r 表明該目錄文件具有可讀許可權,即可以使用 ls 命令查看該目錄的存儲情況;
2)w 表明該目錄文件具有寫許可權,即可以往該目錄下添加、修改、刪除文件;
3)x 表明該目錄文件具有可執行文件,即可以使用 cd 命令進入到該目錄下。
可以使用 chmod 指令來改變文件的許可權。
創建一個目錄:
可以使用 mkdir 命令來創建一個目錄文件:
mkdir directory
刪除一個目錄:
可以使用 rmdir 命令來刪除一個空目錄:
rmdir directory
如果該目錄下有其他文件,則可以使用 rm -r 命令來遞歸刪除該目錄下的所有文件。需要註意的是,使用該命令將會刪除該目錄及目錄下的所有數據,過程不可逆,需要謹慎使用:
rm -r directory
3、鏈接文件
鏈接文件一般指的是一個文件的軟連接(或符號鏈接),使用 ls -l 命令查看,第一個符號為 "l",文件名為淺藍色,如下:
這裡,test_softlink 就是一個鏈接文件,從結果上還可以看到它是文件 test.txt 的軟鏈接,刪除原文件 test.txt 的話,對應的軟鏈接文件 test_softlink 也會消失。可以使用 ln 命令來創建一個文件的鏈接文件:
1)軟鏈接
軟鏈接(又稱符號鏈接),使用 ln -s file file_softlink 命令可以創建一個文件的軟鏈接文件:
ln -s test.txt test_softlink
軟鏈接相當於給原文件創建了一個快捷方式,如果刪除原文件,則對應的軟鏈接文件也會消失。
2)硬鏈接
硬鏈接,相當於給原文件取了個別名,其實兩者是同一個文件,刪除二者中任何一個,另一個不會消失;對其中任何一個進行更改,另一個的內容也會隨之改變,因為這兩個本質上是同一個文件,只是名字不同。使用 ls -i 命令查看,可以發現硬鏈接的兩個文件的 inode 號是一樣的:
同樣的,使用 ln 命令可以創建一個文件的硬鏈接:
ln test.txt test_hardlink
4、設備文件
Linux 中的硬體設備如硬碟、滑鼠等也都被表示為文件,即為設備文件。設備文件一般存放在 /dev/ 目錄下,文件名為黃色,如下:
設備文件分兩種:
1)塊設備文件:
塊設備文件支持以塊(block)為單位的訪問方式。在 EXT4 文件系統中,一個 block 通常為 4KB 的大小,也就是說每次可以存取 4096(或其整數倍) 個位元組的數據。應用程式可以隨機訪問塊設備文件的數據,程式可以自行確定數據的位置,硬碟、軟盤等都是塊設備。使用 ls -l 命令查看,塊設備文件的第一個字元是 "b"(block)。
2)字元設備文件:
字元設備文件以位元組流的方式進行訪問,由字元設備驅動程式來實現這種特性,這通常要用到 open、close、read、write 等系統調用。字元終端、串口和鍵盤等就是字元設備。另外,由於字元設備文件是以文件流的方式進行訪問的,因此可以順序讀取,但通常不支持隨機存取。使用 ls -l 命令查看,字元設備文件的第一個字元是 "c"(char)。
5、管道文件(FIFO文件)
管道文件主要用於進程間通信,使用 ls -l 命令查看,第一個字元為 "p"(pipe)。可以使用 mkfifo 命令來創建一個管道文件:
mkfifo fifo_file
在 FIFO 中可以很好地解決在無關進程間數據交換的要求,FIFO 的通信方式類似於在進程中使用文件來傳輸數據,只不過 FIFO 類型的文件同時具有管道的特性,在讀取數據時,FIFO 管道中同時清除數據。