Linux

什麼是 linux 中的類文件對象?

  • March 8, 2019

Linux 哲學

Linux 大量借鑒了 UNIX 作業系統,因為它被編寫為 UNIX 的免費和開源版本。文件儲存在分層文件系統中,系統的頂部節點是根或簡單的“/”。只要有可能,Linux 就會通過看起來像 files 的文件或對象來提供其組件。程序、設備和網路套接字都由類文件對象表示,並且通常可以使用與正常文件相同的實用程序來工作。

我需要通過適當的範例了解“只要有可能,Linux 通過看起來像文件的文件或對象”以及什麼是“類似文件的對象”這一行的詳細資訊。

它們在段落中說明。程序、設備和網路套接字(和其他)。這些是由核心管理的對象,但在文件系統中顯示為項目,您可以通過特定路徑訪問它們。它們的行為在許多方面也類似於正常文件。例如,您可以像處理正常文件一樣讀取和寫入設備文件(見下文)。

程序:每個程序都有它的文件夾/proc/$PPID/,其中$PPID是程序 ID。例如,您可以在 中找到該程序的命令行/proc/$PPID/cmdline

設備:設備顯示為設備文件。例如,如果您的硬碟連接到 SCSI 控制器,您很可能會在/dev/sda第一個分區上找到它/dev/sda1。因此,如果您從中讀取,/dev/sda您實際上是在讀取磁碟上的原始數據。這在製作圖像時很有用。

網路套接字bash用於/dev/tcp/$host/$port辨識 TCP 埠等 UDP。一般來說,可以在以下位置找到有關套接字的資訊/proc/net/{tcp,udp}

其他:標準輸入也是一個文件,您可以在 中找到它/dev/stdin,與標準輸出類似。您可以從文件中讀取/dev/zero以獲取零和從/dev/random獲取真正高質量的隨機數(雖然非常慢)。管道在 shell 中經常使用,您也可以創建一個命名管道。還有很多。

上面的答案是基於 Ubuntu LTS 16.04,其他 Linux/Unix 版本可能有不同的方式來索引這些對象。

引用自:https://unix.stackexchange.com/questions/416778