Linux文件和管理

Linux內(nèi)所有的數(shù)據(jù)都是以文件的形式存在,所以Linux系統(tǒng)中最重要的地方就在于目錄樹(directory tree)結構。
目錄樹結構如下:

Linux目錄樹.jpg

掛載

掛載就是利用一個目錄當成進入點,將磁盤分區(qū)的數(shù)據(jù)放置在該目錄下,進入該目錄即可讀取該分區(qū),這個動作我們稱為掛載。這個進入點的目錄我們稱為掛載點。掛載點一定是目錄。

掛載點.png

從圖中可以看出可以將不同的目錄掛載在不同的分區(qū)上。
可以在/etc/fsta里修改開機掛載內(nèi)容。同時又以下限制:

  • /目錄必須掛載,并且要先于其他掛載點掛載;
  • 其他mount porint必須為已創(chuàng)建的目錄,可任意指定,但一定要遵守必須的系統(tǒng)目錄架構原則(FHS);
  • 所有的mount point在同一時間之內(nèi),只能掛載一次。

文件屬性和權限

改變權限命令:

  • chgrp:改變文件所屬群組;
  • chown:改變文件擁有者;
  • chmod:改變文件的權限。
    -R為遞歸,文件次目錄的所有文件都會變更。
    也可以使用chown user.group file的方式同時改變擁有者和群組。
    cp命令會將文件擁有者屬性和權限都復制過去。
    文件權限數(shù)字表達為:r:4; w:2;x:1
    符號類型改變文件權限:擁有者表達方式u=user, g=group, o=other a=all權限則用+ - =來表示添加、刪除和賦予。

文件種類與擴展名

文件種類

  1. 普通文件,第一個字符為-,包含文本、二進制文件、數(shù)據(jù)格式文件等;
  2. 目錄:d
  3. 鏈接文件:l
  4. 設備文件
    • 區(qū)塊設備文件,b
    • 字符設備文件,c
  5. 數(shù)據(jù)接口文件:socket s
  6. 管道文件(pipe):FIFO(first in first out) p

linux文件目錄

/bin:可執(zhí)行文件目錄,該目錄的指令可在單人維護模式下被執(zhí)行。
/boot: 放置開機啟動文件,包括linux kernel和開機菜單、開機所需配置文件等。kernel文件名為vmlinuz
/dev:設備與周邊設備存放目錄;
/etc:系統(tǒng)主要配置文件目錄。只有root用戶可修改。
/lib:系統(tǒng)函數(shù)庫存放文件,驅(qū)動文件也放在這;
/media /mnt:媒體存放目錄以及掛載目錄;
/opt:第三方軟件存放目錄;
/srv:一些www ftp等服務數(shù)據(jù)存放目錄
/tmp:一般使用者或正在執(zhí)行的程序暫放文件的地方。任何人都可以讀取,需要定期清理;
/home:默認使用者主文件夾;
/root:root用戶主文件夾;
/last+found:ext2/3/4文件格式會產(chǎn)生的一個目錄,當文件系統(tǒng)發(fā)生錯誤時,一些遺失的片段會放置在該目錄下。
/proc:進程信息、設備狀態(tài)、網(wǎng)絡狀態(tài)目錄
/usr:unix software resource縮寫,
文件默認權限umask來查看和修改。顯示的是被減去的權限。

文件系統(tǒng)存放

superblock:記錄文件系統(tǒng)的整體信息,包括inode/block的總量、使用量、剩余量以及文件系統(tǒng)的格式和相關信息;
inode:記錄文件的屬性,一個文件占用一個inode,同時記錄文件的數(shù)據(jù)所在的block號碼;
block:實際記錄文件的內(nèi)容,可能占用多個block。

EXT2

EXT2文件系統(tǒng)劃分了多個block group,每個區(qū)塊有獨立的inode/block/superblock系統(tǒng)。ext2系統(tǒng)所支持的block大小為1K/2K/4K(Bytes)這三種。block的大小導致了文件系統(tǒng)磁盤容量的大小不同

ext2.png

ext2文件系統(tǒng)的block的限制如下:

  • block大小和數(shù)量在格式化完后就固定了;
  • 每個block內(nèi)最多只能放置一個文件的數(shù)據(jù);
  • 如果文件大于block的大小,則一個文件占用多個block數(shù)量;
  • 如果文件小于block,則該block的剩余容量就不會被其他文件占用。
    當小文件過多(日志文件)時,格式化成4K的block會浪費很大空間;而大型文件假如格式化成1K的block時則需要占用數(shù)量更多的block,則inode也要記錄更多block號碼,會導致文件系統(tǒng)不良的讀寫性能。因此要針對是什么服務器進行專門區(qū)分。

inode

inode記錄的數(shù)據(jù):

  • 該文件的讀取模式;
  • 文件的擁有者和群組;
  • 文件的容量;
  • 文件的創(chuàng)建或狀態(tài)改變時間ctime;
  • 最近一次讀取時間atime;
  • 最近一次修改時間mtime;
  • 定義文件特殊的flag;
  • 文件真正指向pointer;
    inode特點:
  • 每個inode 大小固定為128Bytes(最新系統(tǒng)可到256)
  • 每個文件僅占用一個inode;
  • 文件系統(tǒng)能夠創(chuàng)建的文件數(shù)量和inode數(shù)量相關;
  • 系統(tǒng)讀取文件先找到inode,然后分析權限,最后讀取block內(nèi)容。

superblclock

superblock記錄了整filesystem相關信息:

  • block和inode總量;
  • 未使用與已使用inode、block數(shù)量;
  • block和inode的大小;
  • filesystem的掛載時間、寫入時間、檢驗磁盤時間等;
  • 一個vaild bit數(shù)值(掛載為0,未掛載為1)
    查詢superblock命令dumpe2fs

鏈接

在linux下面鏈接文件有兩種,一種類似Windows快捷方式的軟鏈接,一種是通過文件系統(tǒng)的inode鏈接來產(chǎn)生新文件名,而不產(chǎn)生新文件,這種稱為硬鏈接。
二文件名只與目錄相關,而文件內(nèi)容則與inode相關。使用hard link設置鏈接文件時,磁盤的空間與inode的數(shù)目都不會改變,hard link只是某個目錄下block多寫入一個關聯(lián)數(shù)據(jù),既不會增加inode也不消耗block數(shù)量。

hard link限制

  • 不能跨file system;
  • 不能link 目錄;
    hard link相比symbolic link安全,因為其中一個目錄的文件被刪掉,另外目錄存放的數(shù)據(jù)還是安全的。

ln命令用法

ln [-sf] 源文件 目標文件
-s:symbolic link,不加任何參數(shù)的話則默認hardlink
-f:如果目標文件存在,則將目標文件移除后再創(chuàng)建

磁盤管理

觀察分區(qū)

lsblk:list block device列出系統(tǒng)上的所有磁盤列表;
parted:列出磁盤的分區(qū)表類型與分區(qū)信息;
gdiskfdisk:MBR分區(qū)使用fdisk,GPT使用gdisk,不要對正在使用的分區(qū)進行分區(qū)操作,需要先將分區(qū)卸載掉,然后在進行分區(qū)操作。
mkfs make filesystem格式化分區(qū)。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容