《鳥哥Linux私房菜》Linux的文件權限,目錄配置,文件系統總結

用ls -l來查看詳細信息時,第一個字符:
d:代表這是一個目錄。
-:代表這是一個文件。
l:代表這是一個鏈接文件。

然後三個爲一組rwx,分別代表可讀,可寫,可執行。
第一組爲文件擁有者的權限。
第二組爲加入此用戶組的賬號的權限。
第三組爲其他人的權限。
目錄與文件的權限意義不同
目錄裏面存的是文件名。
目錄的w權限非常重要。
如果用戶在這個目錄裏面有w的權限,就可以在這個目錄裏刪除文件,新建文件等等.
之後的數字代表有多少個文件名鏈接到此節點(inode)
文件的權限也可以用數字表示:r爲4,w爲2,x爲1

修改文件權限的命令爲:chmod

用法:chmod 【-R】 xyz 文件或目錄
選項與參數:
-R:就是進行遞歸修改,即連同子目錄下的所有文件都會修改
xyz:就是數字,但是是一組rwz數字相加

chmod 777 .bashrc

意思就是修改.bashrc這個文件的權限爲rwxrwxrwx
也可以用字母的方式:
文件擁有者:user 簡寫爲u
加入此用戶組的賬號:group 簡寫爲g
其他人:other 簡寫爲o

chmod u=rwx,g=rx,o=rx .bashrc

修改文件擁有者命令:chown (chang owner)

用法:chown 【-R】 賬號名稱 文件或目錄
或 chown 【-R】 賬號名稱:用戶組名稱 文件或目錄
-R:遞歸修改,即將子目錄下的所有文件都修改

chown MyUbuntu  .bashrc
chown MyUbuntu:MyUbuntu .bashrc

修改用戶組的命令:chgrp(chang group)

用法類似

chgrp  MyUbuntu .bashrc

Linux目錄配置依據:FHS

由於開發Linux發行版的社區和公司很多,而每個Linux的目錄裏面放置的文件都不一致,所以爲了規範那個目錄裏放那些文件,就有了FHS標準。

絕對路徑與相對路徑

以根目錄開始的爲絕對路徑
相對於目前路徑的寫法,就是相對路徑,反正不從根目錄開始的都爲相對路徑.
目錄的相關操作:
. 代表此層目錄
… 代表上一層目錄
– 代表前一個工作目錄
~ 代表當前使用者身份所在的家目錄
~account 代表account這個使用者的家目錄
切換目錄:cd
顯示當前目錄:pwd
建立一個新目錄:mkdir
刪除一個空目錄:rmdir
刪除文件或目錄:rm
rm -i [文件名] 交互模式,刪除時會詢問是否要刪除
rm -r [目錄名] 遞歸刪除,常用於目錄的刪除.

複製文件或目錄:cp
移動文件或目錄:mv
修改文件時間或創建新文件:touch
文件內容的查看:
cat:從第一行開始顯示文件內容
cat -n 打印出行號
tac:從最後一行開始顯示文件內容
nl:在顯示的時候同時輸出行號
與cat -n 不同的是nl可以對行號做更多的細節內容比如是否補零,行號的寬度等.

more:一頁一頁的顯示文件內容
less:與more類似,但是它可以往前翻頁

head:只看前面幾行
tail:只看後面幾行
od:以二進制的方式讀取文件內容

文件默認權限:umask

文件默認權限是:-rw-rw-rw-
目錄默認權限是:drwxrwxrwx

在命令行輸入:umask會出現:0022
umask是默認權限減去那個權限纔是最終的權限
所以建立文件時:文件的權限爲:-rw-r–r--
目錄的權限爲:drwx-r-xr-x

設置umask:
例:umask 002 即可

文件隱藏屬性:

查看文件隱藏屬性:lsattr
設置文件隱藏屬性:chattr

文件隱藏屬性最重要的就是:
i 表明這個文件不能被刪除,改名,寫入數據,設置鏈接. 對於系統安全性很重要.
a 表明這個文件只能新增數據不能刪除也不能修改數據,對於日誌文件很重要.

但是chattr 只有在ext2,ext3,ext4的linux傳統文件系統上才完全生效.其他的文件系統例如xfs僅支持部分參數.
chattr 用法:
+代表新增某個特殊屬性
– 去掉某個特殊屬性
= 直接設置特殊屬性
例如: chattr +i [文件名]

觀察文件類型是屬於ASCII的純文本文件還是數據文件還是二進制文件,有沒有使用動態鏈接庫等信息,使用file命令

使用方法:file [文件名]

命令和文件的查找:

腳本文件的查找:which或type,顯示命令的完整文件名.

which ls
/bin/ls

文件的查找:
whereis 只從特定目錄中查找,速度快,但可能查不到.(顯示文件名)
locate 從數據庫中查找,速度快,(當做關鍵字,完整文件名包括路徑名稱中有這個關鍵字的都列出來),但如果是剛建的文件會顯示找不到,因爲數據庫還沒有更新,數據庫的更新時間每個發行版不同,centos是一天,也可以手動更新數據庫,方法直接輸入:updatedb
find 從整個文件系統中查找,速度慢,對磁盤性能有影響,不很常用.

文件系統分爲xfs和ext系列等等

兩者的一個區別是:ext系列對於大容量的硬盤,格式化非常慢,因爲他的設計是在格式化時分配好所有的inode和區塊
而xfs是在需要時才動態分配inode和區塊。這樣格式化時就比較快。

ext文件系統簡介:

在ext系列文件系統中每一個文件都有inode和數據區塊(1K,2K,4K), inode是存放文件屬性和權限和數據區塊的號碼的地方, 數據區塊是存放實際數據的地方. 一個文件只佔一個inode,inode大小爲128B或256B, 但是inode記錄一個數據區塊就有4B, 所以系統將inode記錄區塊號碼的區域定位爲12個直接, 一個間接, 一個雙間接, 一個三間接.
可以有多個數據區塊, 如果存不下會用多個區塊.
ext文件系統還有超級區塊(super block),存放的是整個文件系統的信息包括還有多少剩餘inode和區塊等。
ext文件系統還有區塊對照表:顯示那個區塊是空的,那個是已使用的.
ext文件系統還有區塊羣組:每個區塊羣組都有inode和數據區塊,有的還有超級區塊,但是這個超級區塊是文件系統超級區塊的備份,防止超級區塊故障,可以快速恢復.因爲一個文件系統只有一個超級區塊.
ext文件系統還有inode對照表:顯示哪個inode是空的,哪個inode是已經使用的.

數據不一致狀態:

因爲有可能在你修改一個文件時,在它還沒有同步更新到inode對照表和區塊對照表時斷電了,這就會導致數據的不一致狀態,在ext2文件系統中,這就會藉助超級區塊的信息來查找整個文件系統進行比對.非常耗時.所以就有了後來的日誌式文件系統的興起.
ext3和ext4文件系統爲日誌式文件系統,爲了解決數據的不一致狀態,所以採用用一個區塊來記錄我們對文件的操作,所以當產生數據的不一致狀態後,直接通過這個區塊,就可以找到是那個文件有問題,然後只比對這一個文件就可以恢復了,而不用對整個文件系統進行檢查.
還有一個問題是:所有的數據都要加載到內存中才能被CPU處理.
那麼如果我們在編輯一個大文件,這個操作又需要系統頻繁的把數據寫入到磁盤,而磁盤的速度比內存的速度慢的多,所以我們要耗費時間在等待磁盤的讀取中.
爲了解決這個問題,Linux使用的方式叫做:異步處理.就是當一個文件加載到內存後,如果這個文件沒有被修改過,就被標記爲clean,如果被修改過就被標記爲dirty,而系統會不定時的會將內存中標記爲dirty的文件寫入到磁盤中.你也可以手動用sync命令來把內存中的數據寫入到磁盤中.另外在關機時系統會調用sync命令來寫入到磁盤中,但如果不正常關機,由於內存中的數據還沒有寫入到磁盤中,所以重新啓動後會花很多時間在進行磁盤校驗,甚至可能會導致文件系統的損壞(非硬盤的損壞).
因爲內存的速度比磁盤的速度快的多,所以Linux系統會把一些常用的文件數據放置到內存的緩衝區,來加速文件的讀寫操作.所以Linux的文件系統與內存有很大的關係,所以Linux的內存最後都會被用光,這是正常的,用來加速系統性能.

xfs文件系統簡介:

xfs文件系統在數據的分佈上,主要規劃爲三個部分,一個是數據區,一個是文件系統活動登錄區,一個是實時運行區.
數據區和ext文件系統差不多,都有inode區塊和數據區塊和超級區塊.
不同的只是inode和數據區塊是在需要時才動態分配產生,所以格式化很快.
文件系統的活動登錄區:在登錄區這個區域主要被用來記錄文件系統的變化,其實有點像是日誌區.文件的變化會在這裏記錄下來,知道該變化完整的寫入到數據區後,該條記錄纔會被結束.如果文件系統因爲斷電而損壞時,系統會拿這個登錄區塊來進行檢驗.
實時運行區:當有文件要被建立時,xfs會在這個區段裏面找一個到數個的extent區塊,將文件放置在這個區塊內,等到分配完畢後,在寫入到數據區的inode和數據區塊中.

發佈了13 篇原創文章 · 獲贊 5 · 訪問量 751
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章