更新時(shí)間:2020-12-15 17:41:34 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2615次
眾所周知,在Linux 中一切皆為文件,包括硬盤和顯卡等。在 Linux 系統(tǒng)中,大部分的文件都是普通文件和目錄文件。但是也有其他的文件類型,發(fā)揮著不同的作用。因此,理解Linux文件類型在許多方面都是非常重要的。
一般情況下,Linux文件類型分為以下6類:
1.普通文件(-)
從Linux的角度來(lái)說(shuō),類似mp4、pdf、html這樣應(yīng)用層面上的文件類型都屬于普通文件Linux用戶可以根據(jù)訪問權(quán)限對(duì)普通文件進(jìn)行查看、更改和刪除。
2.目錄文件(d,directory file)
目錄文件對(duì)于用慣Windows的用戶來(lái)說(shuō)不太容易理解,目錄也是文件的一種目錄文件包含了各自目錄下的文件名和指向這些文件的指針,打開目錄事實(shí)上就是打開目錄文件,只要有訪問權(quán)限,你就可以隨意訪問這些目錄下的文件(普通文件的執(zhí)行權(quán)限就是目錄文件的訪問權(quán)限),但是只有內(nèi)核的進(jìn)程能夠修改它們雖然不能修改,但是我們能夠通過(guò)vim去查看目錄文件的內(nèi)容。
3.符號(hào)鏈接(l,symbolic link)
這種類型的文件類似Windows中的快捷方式,是指向另一個(gè)文件的間接指針,也就是我們常說(shuō)的軟鏈接。
4.塊設(shè)備文件(b,block)和字符設(shè)備文件(c,char)
這些文件一般隱藏在/dev目錄下,在進(jìn)行設(shè)備讀取和外設(shè)交互時(shí)會(huì)被使用到比如磁盤光驅(qū)就是塊設(shè)備文件,串口設(shè)備則屬于字符設(shè)備文件系統(tǒng)中的所有設(shè)備要么是塊設(shè)備文件,要么是字符設(shè)備文件,無(wú)一例外。
5. FIFO(p,pipe)
管道文件主要用于進(jìn)程間通訊。比如使用mkfifo命令可以創(chuàng)建一個(gè)FIFO文件,啟用一個(gè)進(jìn)程A從FIFO文件里讀數(shù)據(jù),啟動(dòng)進(jìn)程B往FIFO里寫數(shù)據(jù),先進(jìn)先出,隨寫隨讀。
6.套接字(s,socket)
用于進(jìn)程間的網(wǎng)絡(luò)通信,也可以用于本機(jī)之間的非網(wǎng)絡(luò)通信這些文件一般隱藏在/var/run目錄下,證明著相關(guān)進(jìn)程的存在。
6 種Linux文件類型,就是以上的內(nèi)容,Linux 文件是沒有所謂的擴(kuò)展名的,一個(gè) Linux文件能不能被執(zhí)行與它是否可執(zhí)行的屬性有關(guān),只要你的權(quán)限中有 x ,比如[ -rwx-r-xr-x ] 就代表這個(gè)文件可以被執(zhí)行,與文件名沒有關(guān)系。
Linux 系統(tǒng)上的文件名真的只是讓你了解該文件可能的用途而已,真正的執(zhí)行與否仍然需要權(quán)限的規(guī)范才行。比如常見的/bin/ls 這個(gè)顯示文件屬性的指令要是權(quán)限被修改為無(wú)法執(zhí)行,那么ls 就變成不能執(zhí)行了。這種問題最常發(fā)生在文件傳送的過(guò)程中。例如你在網(wǎng)絡(luò)上下載一個(gè)可執(zhí)行文件,但是偏偏在你的Linux系統(tǒng)中就是無(wú)法執(zhí)行,那就可能是檔案的屬性被改變了。而且從網(wǎng)絡(luò)上傳送到你的Linux系統(tǒng)中,文件的屬性權(quán)限確實(shí)是會(huì)被改變的。在本站的Linux教程中有Linux系統(tǒng)中文件屬性變化的詳細(xì)解析,感興趣的小伙伴可以去觀看學(xué)習(xí)。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)