Unix/Linux 檔案系統基礎



檔案系統是在分割槽或磁碟上檔案的邏輯集合。分割槽是資訊的容器,如果需要,可以跨越整個硬碟驅動器。

您的硬碟驅動器可以有多個分割槽,這些分割槽通常只包含一個檔案系統,例如一個檔案系統容納/檔案系統,另一個容納/home 檔案系統

每個分割槽一個檔案系統允許對不同的檔案系統進行邏輯維護和管理。

在 Unix 中,一切都被視為檔案,包括物理裝置,如 DVD-ROM、USB 裝置和軟盤驅動器。

目錄結構

Unix 使用分層檔案系統結構,就像一棵倒置的樹,根目錄 (/) 在檔案系統的底部,所有其他目錄都從那裡延伸。

Unix 檔案系統是具有以下屬性的檔案和目錄的集合:

  • 它有一個根目錄 (/),其中包含其他檔案和目錄。

  • 每個檔案或目錄都由其名稱、所在的目錄和唯一的識別符號(通常稱為inode)唯一標識。

  • 按照慣例,根目錄的inode編號為2,而lost+found目錄的inode編號為3inode編號01未使用。可以透過為ls 命令指定-i 選項檢視檔案 inode 編號。

  • 它是自包含的。一個檔案系統與另一個檔案系統之間沒有依賴關係。

目錄具有特定用途,並且通常儲存相同型別的資訊,以便於查詢檔案。以下是 Unix 主要版本中存在的目錄:

序號 目錄及說明
1

/

這是根目錄,它應該只包含檔案結構頂層所需的目錄

2

/bin

這是可執行檔案所在的位置。所有使用者都可以使用這些檔案

3

/dev

這些是裝置驅動程式

4

/etc

管理程式目錄命令、配置檔案、磁碟配置檔案、有效使用者列表、組、乙太網、主機,以及傳送重要訊息的位置

5

/lib

包含共享庫檔案,有時還包含其他與核心相關的檔案

6

/boot

包含用於啟動系統的檔案

7

/home

包含使用者和其他帳戶的主目錄

8

/mnt

用於掛載其他臨時檔案系統,例如cdromfloppy分別用於CD-ROM驅動器和軟盤驅動器

9

/proc

包含所有程序,這些程序由程序號或其他對系統動態的資訊標記為檔案

10

/tmp

儲存系統啟動之間使用的臨時檔案

11

/usr

用於各種目的,可以被許多使用者使用。包括管理命令、共享檔案、庫檔案和其他檔案

12

/var

通常包含可變長度的檔案,例如日誌和列印檔案以及任何可能包含可變數量資料的其他型別檔案

13

/sbin

包含二進位制(可執行)檔案,通常用於系統管理。例如,fdiskifconfig實用程式

14

/kernel

包含核心檔案

瀏覽檔案系統

現在您已經瞭解了檔案系統的基礎知識,您可以開始瀏覽所需的檔案。以下命令用於瀏覽系統:

序號 命令及說明
1

cat filename

顯示檔名

2

cd dirname

移動到指定的目錄

3

cp file1 file2

將一個檔案/目錄複製到指定位置

4

file filename

識別檔案型別(二進位制、文字等)

5

find filename dir

查詢檔案/目錄

6

head filename

顯示檔案的開頭

7

less filename

從檔案末尾或開頭瀏覽檔案

8

ls dirname

顯示指定目錄的內容

9

mkdir dirname

建立指定的目錄

10

more filename

從開頭到結尾瀏覽檔案

11

mv file1 file2

移動或重新命名檔案/目錄的位置

12

pwd

顯示使用者當前所在的目錄

13

rm filename

刪除檔案

14

rmdir dirname

刪除目錄

15

tail filename

顯示檔案的結尾

16

touch filename

建立一個空檔案或修改現有檔案或其屬性

17

whereis filename

顯示檔案的位置

18

which filename

如果檔案在您的 PATH 中,則顯示檔案的位置

您可以使用手冊頁幫助檢查此處提到的每個命令的完整語法。

df 命令

管理分割槽空間的第一種方法是使用df (disk free)命令。命令df -k (disk free)顯示以千位元組為單位的磁碟空間使用情況,如下所示:

$df -k
Filesystem      1K-blocks      Used   Available Use% Mounted on
/dev/vzfs        10485760   7836644     2649116  75% /
/devices                0         0           0   0% /devices
$

某些目錄,例如/devices,在 kbytes、used 和 avail 列中顯示 0,容量也顯示 0%。這些是特殊(或虛擬)檔案系統,儘管它們位於 / 下的磁碟上,但它們本身不會佔用磁碟空間。

df -k輸出在所有 Unix 系統上通常相同。以下是它通常包含的內容:

序號 列及說明
1

Filesystem

物理檔案系統名稱

2

kbytes

儲存介質上可用的總千位元組空間

3

used

已使用的總千位元組空間(由檔案使用)

4

avail

可用於使用的總千位元組數

5

capacity

檔案使用的總空間百分比

6

Mounted on

檔案系統安裝到的位置

您可以使用-h (human readable) 選項以更易於理解的表示法顯示大小的輸出。

du 命令

du (disk usage) 命令允許您指定目錄以顯示特定目錄的磁碟空間使用情況。

如果您想確定特定目錄佔用了多少空間,此命令很有用。以下命令顯示每個目錄消耗的塊數。單個塊的大小可能是 512 位元組或 1 千位元組,具體取決於您的系統。

$du /etc
10     /etc/cron.d
126    /etc/default
6      /etc/dfs
...
$

-h選項使輸出更容易理解:

$du -h /etc
5k    /etc/cron.d
63k   /etc/default
3k    /etc/dfs
...
$

掛載檔案系統

必須掛載檔案系統才能被系統使用。要檢視當前掛載到系統上的內容(可供使用),請使用以下命令:

$ mount
/dev/vzfs on / type reiserfs (rw,usrquota,grpquota)
proc on /proc type proc (rw,nodiratime)
devpts on /dev/pts type devpts (rw)
$

按照 Unix 約定,/mnt目錄是臨時掛載點(例如 CDROM 驅動器、遠端網路驅動器和軟盤驅動器)所在的位置。如果您需要掛載檔案系統,可以使用以下語法的 mount 命令:

mount -t file_system_type device_to_mount directory_to_mount_to

例如,如果您想將CD-ROM掛載到目錄/mnt/cdrom,您可以鍵入:

$ mount -t iso9660 /dev/cdrom /mnt/cdrom

這假設您的 CD-ROM 裝置稱為/dev/cdrom,並且您想將其掛載到/mnt/cdrom。有關更具體的詳細資訊,請參閱 mount 手冊頁,或在命令列鍵入 mount -h 以獲取幫助資訊。

掛載後,您可以使用 cd 命令透過剛剛建立的掛載點瀏覽新可用的檔案系統。

解除安裝檔案系統

要解除安裝(刪除)系統中的檔案系統,請使用umount命令並指定掛載點或裝置。

例如,要解除安裝 cdrom,請使用以下命令:

$ umount /dev/cdrom

mount 命令允許您訪問檔案系統,但在大多數現代 Unix 系統上,自動掛載功能使此過程對使用者不可見,並且不需要任何干預。

使用者和組配額

使用者和組配額提供了機制,透過該機制,單個使用者或特定組內所有使用者使用的空間量可以限制為管理員定義的值。

配額圍繞兩個限制執行,如果空間量或磁碟塊數量開始超過管理員定義的限制,則允許使用者採取一些措施:

  • 軟限制 - 如果使用者超過定義的限制,則會有一個寬限期,允許使用者釋放一些空間。

  • 硬限制 - 無論寬限期如何,達到硬限制後,將無法再分配任何檔案或塊。

有一些命令可以管理配額:

序號 命令及說明
1

quota

顯示使用者或組的磁碟使用情況和限制

2

edquota

這是一個配額編輯器。可以使用此命令編輯使用者或組的配額

3

quotacheck

掃描檔案系統以查詢磁碟使用情況,建立、檢查和修復配額檔案

4

setquota

這是一個命令列配額編輯器。

5

quotaon

此命令通知系統在一個或多個檔案系統上啟用磁碟配額。

6

quotaoff

此命令通知系統在一個或多個檔案系統上停用磁碟配額。

7

repquota

此命令列印指定檔案系統的磁碟使用情況和配額摘要。

您可以使用手冊頁幫助檢查此處提到的每個命令的完整語法。

廣告