UNIX 文件系統(tǒng)基礎(chǔ)知識

2018-08-12 22:12 更新

文件系統(tǒng)基礎(chǔ)知識

文件系統(tǒng)是一個分區(qū)或磁盤上的文件的邏輯集合。一個分區(qū)是一個信息的容器,如果需要可以跨整個硬盤。

你的硬盤可以有不同的分區(qū),但通常只包含一個文件系統(tǒng),如一個文件系統(tǒng)涵蓋 /file 系統(tǒng),另一個包含 /home 文件系統(tǒng)。

一個文件系統(tǒng)分區(qū)允許不同文件系統(tǒng)的邏輯維護(hù)和管理。

UNIX 中一切都被認(rèn)為是一個文件,包括物理設(shè)備,如 DVD-ROMs、USB 設(shè)備、軟盤驅(qū)動器等等。

目錄結(jié)構(gòu)

UNIX 使用文件系統(tǒng)層次結(jié)構(gòu),就像一棵倒置的樹,根目錄(/) 是文件系統(tǒng)的底部,所有其他的目錄都從那里蔓延。

UNIX 文件系統(tǒng)是文件和目錄的集合,具有以下屬性:

  • 它有一個根目錄 (/),包含其他的文件和目錄。
  • 使用名字唯一地標(biāo)識每個文件或目錄,這個名字可以是它所在的目錄,或者一個獨特的標(biāo)識符,通常被稱為一個 inode。
  • 按照慣例,根目錄的 inode 編號為 2,lost+found 目錄的 inode 編號為 3。Inode 編號 0 和 1 暫不使用。文件的 inode 編號可以通過 ls 命令的 -i 選項指定。
  • 它是自包含的。一個文件系統(tǒng)和其他文件系統(tǒng)之間沒有依賴關(guān)系。

目錄有特定的目的,通常存儲相同類型的信息以實現(xiàn)更容易定位文件的目的。以下是主要的 UNIX 版本上存在的目錄:

目錄 描述
/ 這是根目錄,只包含頂層文件結(jié)構(gòu)所需的目錄。
/bin 這是可執(zhí)行文件所在的地方。他們提供給所有用戶使用。
/dev 這些是設(shè)備驅(qū)動程序。
/etc 上級目錄的命令,配置文件,磁盤配置文件,有效的用戶列表,組,以太網(wǎng),主機等各種發(fā)送重要信息的地方。
/lib 包含共享庫文件,例如其他內(nèi)核相關(guān)文件。
/boot 包含系統(tǒng)啟動相關(guān)的文件。
/home 包含用戶的主目錄和其他賬戶。
/mnt 用來掛載其他臨時文件系統(tǒng),比如分別針對光盤和軟盤的 CD-ROM 驅(qū)動器和軟盤驅(qū)動器。
/proc 標(biāo)記為一個包含所有進(jìn)程的文件,這些進(jìn)程使用進(jìn)程編號或其他信息標(biāo)記。這個文件是一個動態(tài)的系統(tǒng)。
/tmp 包含系統(tǒng)啟動期間所有的臨時文件。
/uer 用于各種各樣的用途,可以被許多用戶使用。包括行政命令、共享文件、庫文件等等。
/var 通常包含變長文件,如日志和打印文件和任何其他類型的文件,該文件包含的數(shù)據(jù)的量可能是變化的。
/sbin 包含二進(jìn)制(可執(zhí)行的)文件,通常用于系統(tǒng)管理。比如 fdisk 和 ifconfig 功能。
/kernel 包含內(nèi)核文件。

瀏覽文件系統(tǒng)

既然已經(jīng)了解了文件系統(tǒng)的基本知識,現(xiàn)在就可以開始導(dǎo)航到所需要的文件。以下列出導(dǎo)航到文件系統(tǒng)可以使用的命令:

命令 描述
cat filename 顯示文件名。
cd dirname 移動到確定的目錄。
cp file1 file2 復(fù)制一個文件/目錄到指定位置。
file filename 識別文件類型(二進(jìn)制、文本等)。
find filename dir 發(fā)現(xiàn)一個文件/目錄。
head filename 顯示一個文件的開始。
less filename 從結(jié)束或開始位置瀏覽一個文件。
ls dirname 顯示指定目錄的內(nèi)容。
mkdir dirname 創(chuàng)建指定目錄。
more filename 從頭到尾瀏覽一個文件。
mv file1 file2 移動一個文件/目錄的位置或重命名一個文件/目錄。
pwd 顯示用戶當(dāng)前所在的目錄。
rm filename 刪除一個文件。
rmdir dirname 刪除一個目錄。
tail filename 顯示一個文件的結(jié)束。
touch filename 創(chuàng)建一個空白文件或修改現(xiàn)有文件的屬性。
whereis filename 顯示一個文件的位置。
which filename 如果文件在你的路徑內(nèi),顯示它的位置,。

df命令

管理分區(qū)空間的第一種方式是 df (磁盤空閑)命令。命令 df -k(磁盤空閑)以千字節(jié)的形式顯示磁盤空間的使用情況,如下所示:

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

一些目錄,比如 /devices,以千字節(jié)形式顯示使用為 0,且可用列以及能力都為 0%。這些特殊的(或虛擬的)文件系統(tǒng),雖然他們駐留在磁盤上,但他們本身不占用磁盤空間。

在所有 UNIX 系統(tǒng)上 df -k 的輸出通常都是相同的。它一般包括:

描述
Filesystem 物理文件系統(tǒng)名稱。
kbytes 存儲介質(zhì)上的可用空間總字節(jié)。
used 被文件使用過的空間的總字節(jié)。
avail 可用空間的總字節(jié)。
capacity 被文件使用的空間和總額的比例。
Mounted on 文件系統(tǒng)正在安裝的。

您可以使用 -h (可讀的)選項來設(shè)置顯示,使用易于理解的符號,合適的大小等輸出格式。

du 命令

du (磁盤使用量) 命令使您能夠按指定目錄來顯示一個特定的目錄中磁盤空間的使用情況。

如果你想判斷一個特定的目錄正在使用多少空間,這個命令是很有用的。以下命令將顯示被每個目錄消耗的塊的數(shù)量。根據(jù)系統(tǒng)的不同,一個塊可能需要 512 字節(jié)或 1 千字節(jié)。

    $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
    ...
    $

掛載文件系統(tǒng)

文件系統(tǒng)必須安裝以用于系統(tǒng)的正常使用。為了查看您的系統(tǒng)上目前安裝(可用)的文件系統(tǒng),可以使用這個命令:

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

UNIX 協(xié)定的 /mnt 目錄,就是臨時掛載的地方(例如 CD-ROM 驅(qū)動器,遠(yuǎn)程網(wǎng)絡(luò)驅(qū)動器,軟盤驅(qū)動器)。如果你需要掛載文件系統(tǒng),您可以使用 mount 命令,語法如下:

    mount -t file_system_type device_to_mount directory_to_mount_to

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

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

假設(shè)您的 CD-ROM 設(shè)備稱為 /dev/cdrom,你想掛載到 /mnt/cdrom??梢詤⒖及惭b手冊頁獲得更具體的信息或類型,在命令行輸入 -h 得到幫助信息。

安裝之后,您可以使用 cd 命令通過掛載點來瀏覽可用的新文件系統(tǒng)。

卸載文件系統(tǒng)

通過識別掛載點或設(shè)備,從你的系統(tǒng)中卸載(刪除)文件系統(tǒng)。使用 umount 命令實行。

例如,可以使用以下命令卸載光盤:

    $ umount /dev/cdrom

mount 命令使你能夠訪問你的文件系統(tǒng),但在大多數(shù)現(xiàn)代 UNIX 系統(tǒng)中,加載函數(shù)使這個過程對用戶不可見且不需要用戶干預(yù)。

用戶和組配額

提供用戶和組配額的機制:單個用戶或特定組中的所有用戶所使用的空間量可以由管理員定義的值限制。

配額操作有兩種限制。如果空間的數(shù)量或磁盤塊的數(shù)量開始超過管理員定義的限制,允許用戶采取行動:

  • 軟限制:如果用戶超過限制的定義,有一個寬限度,允許用戶釋放一些空間。
  • 硬限制:當(dāng)達(dá)到硬限制使,忽略寬限度,沒有進(jìn)一步的文件或塊可以分配。

有許多命令來管理配額:

命令 描述
quota 顯示組中一個用戶的磁盤使用情況和限制。
edquota 這是一個配額編輯器??梢允褂眠@個命令編輯用戶或組配額。
quotacheck 掃描文件系統(tǒng),為了磁盤使用、制造、檢查和修復(fù)配額文件
setquota 這也是一個命令行配額編輯器。
quotaon 系統(tǒng)宣布應(yīng)該在一個或多個文件系統(tǒng)上啟用磁盤配額。
quotaoff 系統(tǒng)宣布應(yīng)該禁用一個或多個文件系統(tǒng)上的磁盤配額。
repquota 打印指定文件系統(tǒng)的磁盤使用和配額的匯總

您可以使用 Manpage 幫助 查看這里提到每個命令的完整語法。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號