什麼是 linux 中的類文件對象?
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 版本可能有不同的方式來索引這些對象。