首頁 > linux教程 > Linux安裝 閱讀:0更新時間:2020-03-28 00:55:03

Linux中一切皆文件[包含優缺點]

linux 中所有內容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目錄(Windows 下稱為文件夾)是文件,硬件設備(鍵盤、監視器、硬盤、打印機)是文件,就連套接字(socket)、網絡通信等資源也都是文件。

Linux系統中,文件具體可分為以下幾種類型:

1) 普通文件

類似 mp4、pdf、html 這樣,可直接拿來使用的文件都屬于普通文件,Linux 用戶根據訪問權限的不同可以對這些文件進行查看、刪除以及更改操作。

2) 目錄文件

對于用慣 Windows 系統的用戶來說,目錄是文件可能不太好理解。

Linux 系統中,目錄文件包含了此目錄中各個文件的文件名以及指向這些文件的指針,打開目錄等同于打開目錄文件,只要你有權限,可以隨意訪問目錄中的任何文件。

注意,目錄文件的訪問權限,同普通文件的執行權限,是一個意思。

3) 字符設備文件和塊設備文件

這些文件通常隱藏在 /dev/ 目錄下,當進行設備讀取或外設交互時才會被使用。

例如,磁盤光驅屬于塊設備文件,串口設備則屬于字符設備文件。

Linux 系統中的所有設備,要么是塊設備文件,要么是字符設備文件。

4) 套接字文件(socket)

套接字文件一般隱藏在 /var/run/ 目錄下,用于進程間的網絡通信。

5) 符號鏈接文件(symbolic link)

類似與 Windows 中的快捷方式,是指向另一文件的簡介指針(也就是軟鏈接)。

6) 管道文件(pipe)

主要用于進程間通信。例如,使用 mkfifo 命令創建一個 FIFO 文件,與此同時,啟用進程 A 從 FIFO文件讀數據,啟用進程 B 從 FIFO文件中寫數據,隨寫隨讀。

“一切皆文件”的利弊

和 Windows 系統不同,Linux 系統沒有 C 盤、D 盤、E 盤那么多的盤符,只有一個根目錄(/),所有的文件(資源)都存儲在以根目錄(/)為樹根的樹形目錄結構中。

這樣做最明顯的好處是,開發者僅需要使用一套 API 和開發工具即可調取 Linux 系統中絕大部分的資源。舉個簡單的例子,Linux 中幾乎所有讀(讀文件,讀系統狀態,讀 socket,讀 PIPE)的操作都可以用 read 函數來進行;幾乎所有更改(更改文件,更改系統參數,寫 socket,寫 PIPE)的操作都可以用 write 函數來進行。

不利之處在于,使用任何硬件設備都必須與根目錄下某一目錄執行掛載操作,否則無法使用。我們知道,本身 Linux 具有一個以根目錄為樹根的文件目錄結構,每個設備也同樣如此,它們是相互獨立的。如果我們想通過 Linux 上的根目錄找到設備文件的目錄結構,就必須將這兩個文件系統目錄合二為一,這就是掛載的真正含義。

有關 Linux 掛載的具體知識,后續文章將會詳細介紹。

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩