1、1. linux 磁盤(pán)分區(qū)和目錄 linux 發(fā)行版本之間的差別很少,差別主要表現(xiàn)在系統(tǒng)管理的特色工具以及軟件包管理方式的不同。
2、目錄結(jié)構(gòu)基本上都是一樣的。
3、 Windows 的文件結(jié)構(gòu)是多個(gè)并列的樹(shù)狀結(jié)構(gòu),最頂部的是不同的磁盤(pán)(分區(qū)),如: C , D , E , F 等。
(相關(guān)資料圖)
4、linux 的文件結(jié)構(gòu)是單個(gè)的樹(shù)狀結(jié)構(gòu) . 可以用 tree 進(jìn)行展示。
5、 在 Ubuntu 下安裝 tree ( sudo apt-get install tree ) , 并可通過(guò)命令來(lái)查看。
6、每次安裝系統(tǒng)的時(shí)候我們都會(huì)進(jìn)行分區(qū), linux 下磁盤(pán)分區(qū)和目錄的關(guān)系如下:– 任何一個(gè)分區(qū)都必須掛載到某個(gè)目錄上。
7、– 目錄是邏輯上的區(qū)分。
8、分區(qū)是物理上的區(qū)分。
9、– 磁盤(pán) linux 分區(qū)都必須掛載到目錄樹(shù)中的某個(gè)具體的目錄上才能進(jìn)行讀寫(xiě)操作。
10、– 根目錄是所有 linux 的文件和目錄所在的地方,需要掛載上一個(gè)磁盤(pán)分區(qū)。
11、以下是我們可能存在的一種目錄和分區(qū)關(guān)系:圖1:目錄和分區(qū)關(guān)系Q: 如何查看分區(qū)和目錄及使用情況?– fdisk 查看硬盤(pán)分區(qū)表– df :查看分區(qū)使用情況– du: 查看文件占用空間情況Q: 為什么要分區(qū),如何分區(qū)?– 可以把不同資料,分別放入不同分區(qū)中管理,降低風(fēng)險(xiǎn)。
12、– 大硬盤(pán)搜索范圍大,效率低– 磁盤(pán)配合只能對(duì)分區(qū)做設(shè)定– /home /var /usr/local 經(jīng)常是單獨(dú)分區(qū),因?yàn)榻?jīng)常會(huì)操作,容易產(chǎn)生碎片2. Mount 掛載和 NFS 簡(jiǎn)介掛載的概念 :當(dāng)要使用某個(gè)設(shè)備時(shí),例如要讀取硬盤(pán)中的一個(gè)格式化好的分區(qū)、光盤(pán)或軟件等設(shè)備時(shí),必須先把這些設(shè)備對(duì)應(yīng)到某個(gè)目錄上,而這個(gè)目錄就稱(chēng)為 掛載點(diǎn)( mount point ) ,這樣才可以讀取這些設(shè)備,而這些對(duì)應(yīng)的動(dòng)作就是 掛載 。
13、 將物理分區(qū)細(xì)節(jié)屏蔽掉。
14、用戶(hù)只有統(tǒng)一的邏輯概念。
15、所有的東西都是文件。
16、 Mount 命令可以實(shí)現(xiàn)掛載:mount [-fnrsvw] [-t vfstype] [-o options] device dirQ :所有的磁盤(pán)分區(qū)都必須被掛載上才能使用,那么我們機(jī)器上的硬盤(pán)分區(qū)是如何被掛載的?A :這主要是它利用了 /etc/fstab 文件。
17、每次內(nèi)核加載它知道從這里開(kāi)始 mount 文件系統(tǒng)。
18、每次系統(tǒng)啟動(dòng)會(huì)根據(jù)該文件定義自動(dòng)掛載。
19、若沒(méi)有被自動(dòng)掛載,分區(qū)將不能使用。
20、 如下是我的 /etc/fstab 的定義,主要是根據(jù)裝機(jī)的分區(qū)來(lái)的:#
21、如果要自動(dòng)掛載則可以修改 /etc/fstab 文件 .NFS 簡(jiǎn)介: NFS 相信在很多地方都有廣泛使用,是一個(gè)非常好的文件共享方式。
22、我們公司所使用的上傳服務(wù)就是把文件上傳到某臺(tái)網(wǎng)絡(luò)服務(wù)器上,中間就是通過(guò) NFS 實(shí)現(xiàn)。
23、使用 NFS 客戶(hù)端可以透明的地訪問(wèn)服務(wù)器端的文件。
24、 NFS 也是通過(guò) mount 來(lái)實(shí)現(xiàn),底層是通過(guò) NFS 通信協(xié)議實(shí)現(xiàn)。
25、基本原理:圖2:NFS基本原理Ubuntu 下面 Ubuntu 下的例子服務(wù)端 :$apt-get install nfs-kernel-servervi /etc/exports 添加 nfs 目錄 : /personal/nfs_share10.1.60.34(rw,sync,no_root_squash)$sudo exportfs -r$sudo /etc/init.d/portmap start$sudo /etc/init.d/nfs-kernel-server start客戶(hù)端 :$sudo apt-get install nfs-common$sudo mount 10.19.34.76:/personal/nfs_share ~/nfsshare 例子:3. 文件類(lèi)型linux 下面的文件類(lèi)型主要有:a) 普通文件 : C 語(yǔ)言元代碼、 SHELL 腳本、二進(jìn)制的可執(zhí)行文件等。
26、分為純文本和二進(jìn)制。
27、b) 目錄文件 :目錄,存儲(chǔ)文件的唯一地方。
28、c) 鏈接文件 :指向同一個(gè)文件或目錄的的文件。
29、d) 特殊文件 :與系統(tǒng)外設(shè)相關(guān)的,通常在 /dev 下面。
30、分為塊設(shè)備和字符設(shè)備。
31、可以通過(guò) ls –l, file, stat 幾個(gè)命令來(lái)查看文件的類(lèi)型等相關(guān)信息。
32、4.文件存儲(chǔ)結(jié)構(gòu)linux 正統(tǒng)的文件系統(tǒng) ( 如 ext2 、 ext3) 一個(gè)文件由目錄項(xiàng)、 inode 和數(shù)據(jù)塊組成。
33、目錄項(xiàng) : 包括文件名和 inode 節(jié)點(diǎn)號(hào)。
34、Inode :又稱(chēng)文件索引節(jié)點(diǎn),是文件基本信息的存放地和數(shù)據(jù)塊指針存放地。
35、數(shù)據(jù)塊 :文件的具體內(nèi)容存放地。
36、linux 正統(tǒng)的文件系統(tǒng) ( 如 ext2 、 3 等 ) 將硬盤(pán)分區(qū)時(shí)會(huì)劃分出目錄塊、 inode Table 區(qū)塊和 data block 數(shù)據(jù)區(qū)域。
37、 一個(gè)文件由一個(gè)目錄項(xiàng)、 inode 和數(shù)據(jù)區(qū)域塊組成。
38、 Inode 包含文件的屬性 ( 如讀寫(xiě)屬性、 owner 等,以及指向數(shù)據(jù)塊的指針 ) ,數(shù)據(jù)區(qū)域塊則是文件內(nèi)容。
39、 當(dāng)查看某個(gè)文件時(shí),會(huì)先從 inode table 中查出文件屬性及數(shù)據(jù)存放點(diǎn),再?gòu)臄?shù)據(jù)塊中讀取數(shù)據(jù)。
40、站在 2w 英尺視圖,文件存儲(chǔ)結(jié)構(gòu)大概如下:圖3:文件存儲(chǔ)結(jié)構(gòu)2w英尺視圖其中目錄項(xiàng)的結(jié)構(gòu)如下 ( 每個(gè)文件的目錄項(xiàng)存儲(chǔ)在改文件所屬目錄的文件內(nèi)容里 ) :圖4:目錄項(xiàng)結(jié)構(gòu)其中文件的 inode 結(jié)構(gòu)如下( inode 里所包含的文件信息可以通過(guò) stat filename 查看得到):。
本文就為大家分享到這里,希望看了會(huì)喜歡。