這一節學習了rhel的檔案管理系統,主要包括了檔案系統的檢視,裝置的挂載,建立連結和檔案定位4個方面的知識點。
首先來看看檔案系統
我們可以在/proc/partitions這個檔案檢視目前的分區
通過df -h檢視已經挂載了的裝置
-ht可以顯示裝置的檔案系統類型
有的挂載點路徑比較長,自動分2行顯示,可以-p強制一行顯示
如同程序有pid,使用者有uid,每個檔案系統也有自己的id,稱為uuid,可以通過 blkid(block id)來檢視。注意uuid标記的是檔案系統,而不是分區。uuid的好處在于可以通過uuid這個唯一值來挂載系統,這樣可以避免因為删除硬碟造成的錯位,sda6變成了sda5等等
在目錄裡面可以通過 ls -ld檢視目錄的屬性,ls -la檢視内容的屬性,但是-ld顯示的目錄大小隻有4k,這僅僅是目錄本身的大小,如何檢視目錄和其内容的整個大小呢?
可以通過du來檢視,如果隻想看最終結果,使用-s(summary)就行了
接下來,看看如何建立新的硬碟分區,并加載該裝置
我新添加一個10g的硬碟
在disk工具裡面可以看見該磁盤了,但是content是unknown,這是因為我們還沒有格式化檔案系統
自定義格式化,選擇檔案系統格式為xfs
格式化
格式化以後就可以看見cotents變成xfs了,但是還沒有加載
我們可以通過fdisk 或者 blkid來檢視目前的磁盤,也可以通過df -h來檢視目前的磁盤是否都已經加載了
加載的文法很簡單 mount -o 選項 外部裝置 挂載點目錄
比如 我建立一個目錄,然後mount加載,umount解除安裝
有的時候,我們會遇見無法解除安裝裝置的情況,比如使用者正在使用中。
例如,另外開一個程序,進入這個目錄
這個時候因為正在使用中,是以我無法解除安裝
如果判斷哪一個程序和使用者正在使用這個檔案系統的話,我們可以強行終止掉這個程序。
我們通過fuser來進行判斷,文法如下
顯示程序5751,使用者beanxyz正在通路這個目錄(檔案系統)
kill -9 強行終止程序之後就可以解除安裝了
-o的選項還可以設定權限讀寫執行的權限
例如,挂載的時候設為隻讀權限
這樣我是無法寫入内容的
可以通過remount來更改權限,比如改為讀寫權限,我就可以建立新文檔了
再試試看執行的權限,建立一個簡單sh腳本,輸出一行語句
更改權限為不可執行之後,即使是root執行腳本也會被拒絕,更改為exec之後就沒問題了
前面說了uuid也可以用來挂載,直接把裝置名改成uuid="xxxxx"的格式就行了
前面的這些挂載操作都是臨時性的,一旦重新開機計算機,就會丢失。我們可以修改/etc/fstab檔案來實作開機的自動挂載
格式有6列,分别代表以下幾個含義
裝置名/uuid 挂載點 檔案系統 defaults dump 開機自檢
裝置名,挂載點和檔案系統一目了然,defaults是指系統預設的各種權限設定, dump和開機自檢都設成0(關掉)即可
可以直接用mount -a來挂載所有在fstab裡面已經配置了裝置
第三部分 連結的建立
rhel裡面,一個硬碟分區一般包括兩大部分,inode 區和資料區,資料區是由很多的block(塊)組成的,一個塊預設大小是4k,一個塊最多隻能存放一個檔案,是以1個12k的檔案需要占據3個塊,而一個1k的檔案隻會使用1個塊,而且這個塊裡面有3k的空間都會浪費掉。是以對于大量的小檔案,适合較小的塊,少而大的檔案适合比較大的塊來分區; inode區裡面有很多的inode節點,每一個inode對應一個檔案的元資訊,比如大小,建立時間,block的位置,連接配接數目等等;當我們通路一個檔案或者目錄的時候,系統會找到檔案名比對的inode号碼,然後找到inode的相關資訊,然後通路記錄檔案目錄的block。
知道了inode的基本概念,現在了看看如何使用
在rhel裡面,可以通過ls -i來檢視inode。
如果我建立了一個mm檔案,然後拷貝一個副本nn,這兩個檔案是獨立的,是以擁有不同的inode編号
我們可以通過ln來建立硬連接配接,一個硬連結類似于windows的junction point,或者了解為别名。我建立了mm的硬連結nn,mm和nn其實都是指向同一個inode,是以他們通路的其實是同一個檔案,對其中任何一個做修改,另外一個其實也被修改了;如果删除其中一個,那麼inode的連接配接數減少1,其餘的任然可以通路inode,當全部删掉以後,系統就會回收這個inode号碼和對應的block。
這裡順便說一下目錄檔案的"連結數"。建立目錄時,預設會生成兩個目錄項:"."和".."。前者的inode号碼就是目前目錄的inode号碼,等同于目前目錄的"硬連結";後者的inode号碼就是目前目錄的父目錄的inode号碼,等同于父目錄的"硬連結"。是以,任何一個目錄的"硬連結"總數,總是等于2加上它的子目錄總數(含隐藏目錄)
硬連結的缺點在于他不能跨分區,例如以下報錯
除了硬連結 我們還可以建立軟連接配接,這個類似windows的快捷方式,他指向的是檔案名而不是inode,是以是兩個獨立的檔案(不同的inode),a依賴b而存在,如果删除了b,那麼a會報錯