自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux文件系統(tǒng)知識大揭秘

運維 系統(tǒng)運維
linux系統(tǒng)中每個分區(qū)都是一個文件系統(tǒng),都有自己的目錄層次結構。linux會將這些分屬不同分區(qū)的、單獨的文件系統(tǒng)按一定的方式形成一個系統(tǒng)的目錄層次結構。必然要擁有并維護自己的文件系統(tǒng)。所以下文將重點介紹下Linux操作系統(tǒng)文件系統(tǒng)基礎知識。

一 、Linux文件系統(tǒng)結構
  文件系統(tǒng)結構是文件存放在磁盤等存貯設備上的組織方法。主要體現(xiàn)在對文件和目錄的組織上。
  目錄提供了管理文件的一個方便而有效的途徑。
  Linux使用標準的目錄結構,在安裝的時候,安裝程序就已經(jīng)為用戶創(chuàng)建了文件系統(tǒng)和完整而固定的目錄組成形式,并指定了每個目錄的作用和其中的文件類型。


   /根目錄

┏━━┳━━━┳━━━┳━━━╋━━━┳━━━┳━━━┳━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
bin home dev etc lib sbin tmp usr var
┃ ┃
┏━┻━┓ ┏━━┳━━┳━━┳━┻━┳━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
rc.d cron.d X11R6 src lib local man bin

┏━━━┳━━┳━┻━┳━━━┓
┃ ┃ ┃ ┃ ┃
init.d rc0.d rc1.d rc2.d …… linux bin lib src
  Linux采用的是樹型結構。最上層是根目錄,其他的所有目錄都是從根目錄出發(fā)而生成的。微軟的DOS和windows也是采用樹型結構,但是在DOS和 windows中這樣的樹型結構的根是磁盤分區(qū)的盤符,有幾個分區(qū)就有幾個樹型結構,他們之間的關系是并列的。但是在linux中,無論操作系統(tǒng)管理幾個磁盤分區(qū),這樣的目錄樹只有一個。從結構上講,各個磁盤分區(qū)上的樹型目錄不一定是并列的。
  如果這樣講不好理解的話,我來舉個例子:
  有一塊硬盤,分成了4個分區(qū),分別是/;/boot;/usr和windows下的fat
  對于/和/boot或者/和/usr,它們是從屬關系;對于/boot和/usr,它們是并列關系。
  如果我把windows下的fat分區(qū)掛載到/mnt/winc下,(掛載??哦,別急,呵呵,一會就講,一會就講。)那么對于/mnt/winc和/usr或/mnt/winc和/boot來說,它們是從屬于目錄樹上沒有任何關系的兩個分支。
  因為linux是一個多用戶系統(tǒng),制定一個固定的目錄規(guī)劃有助于對系統(tǒng)文件和不同的用戶文件進行統(tǒng)一管理。但就是這一點讓很多從windows轉到linux的初學者感到頭疼。下面列出了linux下一些主要目錄的功用。
  /bin 二進制可執(zhí)行命令
  /dev 設備特殊文件
  /etc 系統(tǒng)管理和配置文件
  /etc/rc.d 啟動的配置文件和腳本
  /home 用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示
  /lib 標準程序設計庫,又叫動態(tài)鏈接共享庫,作用類似windows里的.dll文件
  /sbin 系統(tǒng)管理命令,這里存放的是系統(tǒng)管理員使用的管理程序
  /tmp 公用的臨時文件存儲點
  /root 系統(tǒng)管理員的主目錄(呵呵,特權階級)
  /mnt 系統(tǒng)提供這個目錄是讓用戶臨時掛載其他的文件系統(tǒng)。
  /lost+found 這個目錄平時是空的,系統(tǒng)非正常關機而留下“無家可歸”的文件(windows下叫什么.chk)就在這里
  /proc 虛擬的目錄,是系統(tǒng)內(nèi)存的映射。可直接訪問這個目錄來獲取系統(tǒng)信  息。
  /var 某些大文件的溢出區(qū),比方說各種服務的日志文件
  /usr 最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。其中包  含:
  /usr/X11R6 存放X window的目錄
  /usr/bin 眾多的應用程序
  /usr/sbin 超級用戶的一些管理程序
  /usr/doc linux文檔
  /usr/include linux下開發(fā)和編譯應用程序所需要的頭文件
  /usr/lib 常用的動態(tài)鏈接庫和軟件包的配置文件
  /usr/man 幫助文檔
  /usr/src 源代碼,linux內(nèi)核的源代碼就放在/usr/src/linux里
  /usr/local/bin 本地增加的命令
  /usr/local/lib 本地增加的庫
  二 、linux文件系統(tǒng)
  文件系統(tǒng)指文件存在的物理空間,linux系統(tǒng)中每個分區(qū)都是一個文件系統(tǒng),都有自己的目錄層次結構。linux會將這些分屬不同分區(qū)的、單獨的文件系統(tǒng)按一定的方式形成一個系統(tǒng)的總的目錄層次結構。一個操作系統(tǒng)的運行離不開對文件的操作,因此必然要擁有并維護自己的文件系統(tǒng)。
  Llinux文件系統(tǒng)使用索引節(jié)點來記錄文件信息,作用像windows的文件分配表。
  索引節(jié)點是一個結構,它包含了一個文件的長度、創(chuàng)建及修改時間、權限、所屬關系、磁盤中的位置等信息。一個文件系統(tǒng)維護了一個索引節(jié)點的數(shù)組,每個文件或目錄都與索引節(jié)點數(shù)組中的唯一一個元素對應。系統(tǒng)給每個索引節(jié)點分配了一個號碼,也就是該節(jié)點在數(shù)組中的索引號,稱為索引節(jié)點號。
linux文件系統(tǒng)將文件索引節(jié)點號和文件名同時保存在目錄中。所以,目錄只是將文件的名稱和它的索引節(jié)點號結合在一起的一張表,目錄中每一對文件名稱和索引節(jié)點號稱為一個連接。
  對于一個文件來說有唯一的索引節(jié)點號與之對應,對于一個索引節(jié)點號,卻可以有多個文件名與之對應。因此,在磁盤上的同一個文件可以通過不同的路徑去訪問它。
  可以用ln命令對一個已經(jīng)存在的文件再建立一個新的連接,而不復制文件的內(nèi)容。連接有軟連接和硬連接之分,軟連接又叫符號連接。它們各自的特點是:
  硬連接:原文件名和連接文件名都指向相同的物理地址。
目錄不能有硬連接;硬連接不能跨越文件系統(tǒng)(不能跨越不同的分區(qū))
文件在磁盤中只有一個拷貝,節(jié)省硬盤空間;
  由于刪除文件要在同一個索引節(jié)點屬于唯一的連接時才能成功,因此可以防止不必要的誤刪除。
  符號連接:用ln -s命令建立文件的符號連接符號連接是linux特殊文件的一種,作為一個文件,它的數(shù)據(jù)是它所連接的文件的路徑名。類似windows下的快捷方式。
  可以刪除原有的文件而保存連接文件,沒有防止誤刪除功能。
  這一段的的內(nèi)容過于抽象,又是節(jié)點又是數(shù)組的,我已經(jīng)盡量通俗再通俗了,又不好加例子作演示。大家如果還是云里霧里的話,我也沒有什么辦法了,只有先記住,日后在實際應用中慢慢體會、理解了。這也是我學習的一個方法吧。

   #p#
三 、掛載文件系統(tǒng)
  由上一節(jié)知道,linux系統(tǒng)中每個分區(qū)都是一個文件系統(tǒng),都有自己的目錄層次結構。linux會將這些分屬不同分區(qū)的、單獨的文件系統(tǒng)按一定的方式形成一個系統(tǒng)的總的目錄層次結構。這里所說的“按一定方式”就是指的掛載。
將一個文件系統(tǒng)的頂層目錄掛到另一個文件系統(tǒng)的子目錄上,使它們成為一個整體,稱為掛載。把該子目錄稱為掛載點。
舉個例子吧:
  根分區(qū):
  /根目錄

┏━━━━┳━━━━━┳━━━━━┳━━━━━╋━━━━━┳━━━━━┳━━━━━┳━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
bin home dev etc lib sbin tmp usr var

┏━┻━┓
┃ ┃
rc.d cron.d

┏━━━┳━━━┳━┻━┳━━━━┓
┃ ┃ ┃ ┃ ┃
init.d rc0.d rc1.d rc2.d ……
  /usr分區(qū) :
  usr

┏━━━━┳━━━╋━━━┳━━━┳━━━┓
┃ ┃ ┃ ┃ ┃ ┃
X11R6 src lib local man bin
┃ ┃
┃ ┏━━━╋━━━┓
┃ ┃ ┃ ┃
linux bin lib src
  掛載之后就形成了文章開始時的那個圖。像不像掛上去的?
  注意:1、掛載點必須是一個目錄。
  2、一個分區(qū)掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載后這個目錄下以前的內(nèi)容將不可用。
對于其他操作系統(tǒng)建立的文件系統(tǒng)的掛載也是這樣。但是需要理解的是:光盤、軟盤、其他操作系統(tǒng)使用的文件系統(tǒng)的格式與linux使用的文件系統(tǒng)格式是不一樣的。光盤是ISO9660;軟盤是fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和windowsXP是fat16、fat32、 NTFS。掛載前要了解linux是否支持所要掛載的文件系統(tǒng)格式。
  掛載時使用mount命令:
格式:mount [-參數(shù)] [設備名稱] [掛載點]
  其中常用的參數(shù)有
  -t 指定設備的文件系統(tǒng)類型,常見的有:
  minix linux最早使用的文件系統(tǒng)
  ext2 linux目前常用的文件系統(tǒng)
  msdos MS-DOS的fat,就是fat16
  vfat windows98常用的fat32
  nfs 網(wǎng)絡文件系統(tǒng)
  iso9660 CD-ROM光盤標準文件系統(tǒng)
  ntfs windows NT 2000的文件系統(tǒng)
  hpfs OS/2文件系統(tǒng)
  auto 自動檢測文件系統(tǒng)
  -o 指定掛載文件系統(tǒng)時的選項。有些也可用在/etc/fstab中。常用的  有
  codepage=XXX 代碼頁
  iocharset=XXX 字符集
  ro 以只讀方式掛載
  rw 以讀寫方式掛載
  nouser 使一般用戶無法掛載
  user 可以讓一般用戶掛載設備
  提醒一下,mount命令沒有建立掛載點的功能,因此你應該確保執(zhí)行mount命令時,掛載點已經(jīng)存在。(不懂?說白了點就是你要把文件系統(tǒng)掛載到哪,首先要先建上個目錄。這樣OK?)
  例子:windows98裝在hda1分區(qū),同時計算機上還有軟盤和光盤需要掛載。
  # mk /mnt/winc
  # mk /mnt/floppy
  # mk /mnt/cdrom
  # mount -t vfat /dev/hda1 /mnt/winc
  # mount -t msdos /dev/fd0 /mnt/floppy
  # mount -t iso9660 /dev/cdrom /mnt/cdrom
  現(xiàn)在就可以進入/mnt/winc等目錄讀寫這些文件系統(tǒng)了。
  要保證最后兩行的命令不出錯,要確保軟驅和光驅里有盤。(要是硬盤的磁盤片也可以經(jīng)常隨時更換的話,我想就不會犯這樣的錯誤了 :-> )
如果你的windows98目錄里有中文文件名,使用上面的命令掛載后,顯示的是一堆亂碼。這就要用到 -o 參數(shù)里的codepage iocharset選項。codepage指定文件系統(tǒng)的代碼頁,簡體中文中文代碼是936;iocharset指定字符集,簡體中文一般用cp936或 gb2312。
  當掛載的文件系統(tǒng)linux不支持時,mount一定報錯,如windows2000的ntfs文件系統(tǒng)??梢灾匦戮幾glinux內(nèi)核以獲得對該文件系統(tǒng)的支持。關于重新編譯linux內(nèi)核,就不在這里說了。
  四 、自動掛載
  每次開機訪問windows分區(qū)都要運行mount命令顯然太煩瑣,為什么訪問其他的linux分區(qū)不用使用mount命令呢?
  其實,每次開機時,linux自動將需要掛載的linux分區(qū)掛載上了。那么我們是不是可以設定讓linux在啟動的時候也掛載我們希望掛載的分區(qū),如windows分區(qū),以實現(xiàn)文件系統(tǒng)的自動掛載呢?
  這是完全可以的。在/etc目錄下有個fstab文件,它里面列出了linux開機時自動掛載的文件系統(tǒng)的列表。我的/etc/fstab文件如下:
  /dev/hda2 / ext3 defaults 1 1
  /dev/hda1 /boot ext3 defaults 1 2
  none /dev/pts devpts gid=5,mode=620 0 0
  none /proc proc defaults 0 0
  none /dev/shm tmpfs defaults 0 0
  /dev/hda3 swap swap defaults 0 0
  /dev/cdrom /mnt/cdrom iso9660 noauto,codepage=936,iocharset=gb2312 0 0
  /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
  /dev/hdb1 /mnt/winc vfat defaults,codepage=936,iocharset=cp936 0 0
  /dev/hda5 /mnt/wind vfat defaults,codepage=936,iocharset=cp936 0 0
  在/etc/fstab文件里,第一列是掛載的文件系統(tǒng)的設備名,第二列是掛載點,第三列是掛載的文件系統(tǒng)類型,第四列是掛載的選項,選項間用逗號分隔。第五六列不知道是什么意思,還望高手指點。
  在最后兩行是我手工添加的windows下的C;D盤,加了codepage=936和iocharset=cp936參數(shù)以支持中文文件名。參數(shù)defaults實際上包含了一組默認參數(shù):
  rw 以可讀寫模式掛載
  suid 開啟用戶ID和群組ID設置位
  dev 可解讀文件系統(tǒng)上的字符或區(qū)塊設備
  exec 可執(zhí)行二進制文件
  auto 自動掛載
  nouser 使一般用戶無法掛載
  async 以非同步方式執(zhí)行文件系統(tǒng)的輸入輸出操作
  大家可以看到在這個列表里,光驅和軟驅是不自動掛載的,參數(shù)設置為noauto。(如果你非要設成自動掛載,你要確保每次開機時你的光驅和軟驅里都要有盤,呵呵。

       經(jīng)過上面文章的描述,我們廣大網(wǎng)友可以清楚的了解Linux操作系統(tǒng)文件系統(tǒng)基礎知識,希望上文能對大家有所幫助。

 【編輯推薦】

  1. 利用 inotify 來監(jiān)控 Linux 文件系統(tǒng)事件
  2. Linux 文件系統(tǒng)精通指南
  3. Linux 文件系統(tǒng)掛裝與高層體系結構
  4. Linux就這樣被黑客入侵
  5. Linux比拼Windows誰更給力
  6. Linux文件系統(tǒng)保護最佳實踐:Tripwire
  7. Oracle表態(tài):絕不放棄Lustre文件系統(tǒng)

 

 

責任編輯:趙鵬
相關推薦

2011-01-13 14:10:30

Linux文件系統(tǒng)

2010-04-29 10:11:17

Unix系統(tǒng)

2010-05-05 17:46:32

Unix文件系統(tǒng)

2010-04-13 13:31:31

Unix文件

2020-07-22 14:53:06

Linux系統(tǒng)虛擬文件

2012-03-22 09:58:36

LinuxUbuntu

2014-01-16 09:42:19

TFS分布式文件系統(tǒng)

2021-06-06 16:55:22

Linux文件系統(tǒng)

2021-04-12 05:44:44

Linux文件系統(tǒng)

2009-12-22 15:12:33

Linux擴展文件系統(tǒng)

2009-12-25 09:58:46

linux劃分文件系統(tǒng)

2009-12-14 13:14:57

2021-11-01 13:38:55

Linux文件系統(tǒng)

2011-01-13 13:18:38

Linux網(wǎng)絡文件

2010-04-23 17:09:25

Aix文件系統(tǒng)

2018-08-24 10:10:25

Linux文件系統(tǒng)技術

2019-09-20 10:04:45

Linux系統(tǒng)虛擬文件

2021-05-31 07:50:59

Linux文件系統(tǒng)

2009-12-18 17:08:10

Linux常見文件系統(tǒng)

2009-09-11 08:41:59

Linux文件系統(tǒng)ACLs權限控制
點贊
收藏

51CTO技術棧公眾號