歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統文件概念和文件類型

Linux系統文件概念和文件類型

日期:2017/2/28 16:09:31   编辑:Linux教程

當使用Linux命令對文件進行操作時,就可訪問存儲在一個結構化環境中的信息。所有這些信息都存放在一個分層的結構中,可以方便且有條不紊地管理數據。重要的是,不僅應學會如何訪問這些數據,而且應學會如何控制對信息的訪問。對文件與目錄進行管理和維護可能是每個用戶最經常做的工作。

文件系統概念
磁盤上的文件系統是層次結構的,由若干目錄和其子目錄組成,最上層的目錄稱為根(root)目錄,用"/"表示。

1. 文件與目錄的定義

  • 文件系統:它是磁盤上有特定格式的一片區域,操作系統通過文件系統可以方便地查詢和訪問其中所包含的磁盤塊。
  • 文件:是指文件系統中存儲數據的一個命名的對象。一個文件可以是空文件(即沒有包含用戶數據),但是它仍然為操作系統提供了其他信息。
  • 目錄:其中包含許多文件項目的一類特殊文件。目錄支持文件系統的層次結構。文件系統中的每個文件都登記在一個(或多個)目錄中。
  • 子目錄:被包含在另一個目錄中的目錄。包含子目錄的目錄稱為父目錄。除了root目錄以外,所有的目錄都是子目錄,並且有它們的父目錄。root目錄就作為自己的父目錄。
  • 文件名:用來標志文件的字符串,它保存在一個目錄文件項中。
  • 路徑名:由斜線(/)字符結合在一起的一個或多個文件名的集合。路徑名指定一個文件在分層樹形結構(即文件系統)中的位置。查看文件系統要使用一個參考點目錄,它就稱為當前工作目錄。
  • 用15命令可以列出當前工作目錄中包含的文件和子目錄的名字,這是默認方式。
  • 文件名按照ASCH碼順序列出:以數字開頭的文件名列在前面,然後是以大寫字母開頭的文件名,最後是以小寫字母開頭的文件名。

2. 文件結構
文件是Linux操作系統處理信息的基本單位。所有軟件都組織成文件。
文件的成分:無論文件是一個程序、一個文檔、一個數據庫,還是一個目錄,操作系統都會賦予它如下所示的同樣的結構。
①索引節點:又稱為I節點,是在文件系統結構中,包含相應文件信息的一個記錄,這些信息包括文件權限、文件主、文件大小等。
②數據:文件的實際內容,它可以是空的,也可以非常大,並且有自己的結構。

命名文件:文件名保存在目錄文件中。Linux的文件名幾乎可以由ASCⅡ字符的任意組合構成,文件名最長可多達255個字符(某些較老的文件系統類型把文件名長度限制為14個字符)。下面的慣例會使你更加方便地管理文件。
①文件名應盡量簡單,並且應反映出文件的內容。文件名幾乎沒有必要超過14個字符。
②除斜線(/)和空字符(AS口I字符\0)以外,文件名可以包含任意的ASCⅡ字符,因為那兩個字符被核心當做表示路徑名的特殊字符來解釋。
③習慣上允許使用下線符(_)和句點(.)來區別文件的類型,使文件名更易讀,但是應避免使用以下字符,因為對系統的shen來說,它們有特殊的含義。這些字符是:
; | < > ` “ ‘ $ ! % & * ? \ ( ) [ ]
此外,文件名應避免使用空格、制表符或其他控制字符。
④同類文件應使用同樣的後綴或擴展名。
⑤Linux系統區分文件名的大小寫,如名為letter的文件與名為Letter的文件不是同一個文件。
⑥以圓點(.)開頭的文件名是隱含文件,在默認方式下,使用15命令並不能把它們在屏幕上顯示出來。

文件類型操作系統支持以下文件類型:普通文件、目錄文件、設備文件及符號鏈接文件。

普通文件
普通文件也稱為常規文件,包含各種長度的字符串。核心對這些數據沒有進行結構化,只是作為有序的字符序列把它提交給應用程序。應用程序自己組織和解釋這些數據,通常把它們歸並為下述類型之一。

  • 文本文件:它由ASCⅡ字符構成。例如,信件、報告和稱為腳本(script)的命令文本文件,後者由shell解釋執行。
  • 數據文件:它由來自應用程序的數字型和文本型數據構成。例如,電子表格、數據庫及字處理文檔。
  • 可執行的二進制程序:它由機器指令和數據構成,例如,已經學過的系統命令。命令文本文件也是可執行的。

可以使用file命令來確定指定文件的類型。該命令可以將任意多個文件名當做參數,其一般使用格式是:
file文件名【文件名…】

目錄文件
目錄文件是一種特別文件,利用它可以構成文件系統的分層樹狀結構。如同普通文件那樣,目錄文件也包含數據,但目錄文件與普通文件的差別是:核心對這些數據進行結構化處理,即它是由成對的“Ⅰ節點號/文件名”構成的列表。
(1)Ⅰ節點號是檢索I節點表的下標,Ⅰ節點中存放有文件的狀態信息。
(2)文件名是給一個文件分配的文本形式的字符串,用來標記該文件。在一個指定的目錄中,任何兩項都不能有同樣的名字。
每個目錄的第一項都表示目錄本身,並以“點(.)”作為它的文件名。每個目錄的第二項的名字是“點點(..)",表示該目錄的父目錄。
應記住,以“.”開頭的文件名表示隱含文件,使用帶-a選項的ls命令可以列出它們。
當把文件添加到一個目錄中時,該目錄的尺寸會增大,以便容納新文件名。當刪除文件時,目錄的尺寸並不減小,而是核心對該目錄項做上特殊標記,以便下次添加一個文件時重新使用它。ls命令不會列出這些未被使用的項。
例如,利用以一F命令可以顯示當前目錄的內容:
# ls -ai
應注意,所列出的前兩項分別表示當前目錄和其父目錄。請查看是否有其他的隱含文件。如果使用不帶-a選項的ls命令,則隱含文件不再被顯示出來。如果使用不帶 –i 選項的ls命令,則文件的I節點號不再出現。
使用ls –d 命令,則只能看到當前目錄下的各子目錄名。

設備文件
設備文件是一種特別文件,除了在其文件Ⅰ節點中存放有屬性信息外,它們不包含任何數據。系統利用它們來標記各個設備驅動器,核心使用它們與硬件設備通信。有兩類特別設備文件,它們對應不同類型的設備驅動器。
(1)字符設備—最常用的設備類型,允許I/O傳送任意大小的數據,取決於設備本身的容量。使用這種接口的設備包括終端、打印機及鼠標。
(2)塊設備—這類設備利用核心緩沖區的自動緩存機制。緩沖區進行I/O傳送總是以KB為單位。使用這種接口的設備包括硬盤、軟盤和RAM盤。
設備文件的一個示例是當前正在使用的終端文件。tty命令可以顯示出這個文件名,例如:
# tty
/dev/tty01
通常,設備文件存放在/dev目錄之下。

符號鏈接文件
符號鏈接文件是一種特殊文件,提供對其他文件的參照。它們存放的數據是文件系統中通向文件的路徑。當使用符號鏈接文件時,核心自動訪問所保存的這個路徑。

Copyright © Linux教程網 All Rights Reserved