Linux文件系統及管理


Linux文件系統及管理

一、Linux系統的文件系統與目錄結構

  Linux系統的文件目錄結構為一個單根倒置的樹結構,具體表現如下圖:

從CentOS7開始,以下目錄與之前的版本發生變化

◆/bin 軟鏈接指向 /usr/bin

◆/sbin 軟鏈接指向 /usr/sbin

◆/lib 軟鏈接指向 /usr/lib

◆/lib64 軟鏈接指向 /usr/lib64

文件系統從根目錄下開始,用“/”表示

◆boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader,grub)都存放於此目錄

◆/bin:所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序

◆/sbin:管理類的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序

◆/lib:啟動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)

◆/lib64:專用於x86_64系統上的輔助共享庫文件存放位置

◆/etc:配置文件目錄

◆/home/USERNAME:普通用戶家目錄

◆/root:管理員的家目錄

◆/media:便攜式移動設備掛載點

◆/mnt:臨時文件系統掛載點

◆/dev:設備文件及特殊文件存儲位置
b: block device,隨機訪問
c: character device,線性訪問

◆/opt:第三方應用程序的安裝位置

◆/srv:系統上運行的服務用到的數據

◆/tmp:臨時文件存儲位置

◆/usr: universal shared, read-only data
bin: 保證系統擁有完整功能而提供的應用程序
sbin:
lib:32位使用
lib64:只存在64位系統
include: C程序的頭文件(header files)
share:結構化獨立的數據,例如doc, man等
local:第三方應用程序的安裝位置
bin, sbin, lib, lib64, etc, share

◆/proc: 用於輸出內核與進程信息相關的虛擬文件系統

◆/sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統

◆/selinux: security enhanced Linux,selinux相關的安全策略等信息的存儲位置

二、Linux下的文件類型

◆- 普通文件

◆d 目錄文件

◆b 塊設備

◆c 字符設備

◆l 符號鏈接文件

◆p 管道文件pipe

◆s 套接字文件socket

三、文件的3種時間atime mtime ctime

Linux系統中,文件存在3種時間狀態屬性

1、這3個time的含義:

atime:Access Time 最后一次訪問文件(讀取或執行)或目錄的時間;

mtime:Modofy Time 最后一次修改文件內容(數據)或目錄內容(目錄內文件列表)的時間;

ctime:Change Time 最后一次改變文件屬性(元數據)或目錄屬性(元數據)的時間;

2、如何查看文件或目錄的atime/mtime/ctime

可通過stat命令查看全部3個時間

[root@centos7 data]#stat test.txt 
  File: ‘test.txt’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d	Inode: 67          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2019-07-28 15:25:54.755150776 +0800
Modify: 2019-07-28 15:25:54.755150776 +0800
Change: 2019-07-28 15:25:54.755150776 +0800
 Birth: -
[root@centos7 data]#

或可以通過以下命令分別查看:

查看atime: ls -lu filename

[root@centos7 data]#ls -lu test.txt 
-rw-r--r--. 1 root root 0 Jul 28 15:25 test.txt
[root@centos7 data]#

查看mcime: ls -l filename

[root@centos7 data]#ls -l test.txt 
-rw-r--r--. 1 root root 12 Jul 28 15:29 test.txt
[root@centos7 data]#

查看ctime: ls -lc filename

[root@centos7 data]#ls -lc test.txt 
-rw-r--r--. 1 root root 12 Jul 28 15:29 test.txt
[root@centos7 data]#

四、Linux文件系統的inode

1、inode是什么?

  理解inode,要從文件儲存說起。

  文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區"(Sector)。每個扇區儲存512字節(相當於0.5KB)。

  操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個"塊"(block)。這種由多個扇區組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續八個 sector組成一個block。

  文件數據都儲存在"塊"中,那么很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創建者、文件的創建日期、文件的大小等等。這種儲存文件元信息的區域就叫做inode,中文譯名為索引節點

  每一個文件都有對應的inode,里面包含了與該文件有關的一些信息。系統是根據inode號來識別文件。

2、inode包含的信息

  inode包含文件的屬性信息(元數據),具體來說有以下內容:

    * 文件的字節數

  * 文件擁有者的User ID

  * 文件的Group ID

  * 文件的讀、寫、執行權限

  * 文件的時間戳,共有三個:ctime指inode上一次變動的時間,mtime指文件內容上一次變動的時間,atime指文件上一次打開的時間。

  * 鏈接數,即有多少文件名指向這個inode

  * 文件數據block的位置

3、inode的特性

  • inode也會消耗磁盤空間,所以在硬盤格式化的時候,操作系統會自動將硬盤分為2個區域,一部分用來存放inode信息,一部分存放文件數據。

  • 每個inode節點的大小,一般是128字節或256字節。inode節點的總數,在格式化時就給定,一般是每1KB或每2KB就設置一個inode。

  • 磁盤的每一個獨立分區的inode號是相互獨立的。

查看每個硬盤分區的inode總數和已經使用的數量,可以使用df -i命令。

[root@centos7 ~]#df -i
Filesystem       Inodes  IUsed    IFree IUse% Mounted on
/dev/sda2      26214400 131432 26082968    1% /
devtmpfs         228956    391   228565    1% /dev
tmpfs            232906      1   232905    1% /dev/shm
tmpfs            232906    872   232034    1% /run
tmpfs            232906     16   232890    1% /sys/fs/cgroup
/dev/sda3      26214400      4 26214396    1% /data
/dev/sda1        524288    342   523946    1% /boot
tmpfs            232906      9   232897    1% /run/user/42
tmpfs            232906      1   232905    1% /run/user/0
[root@centos7 ~]#

五、硬鏈接、軟鏈接文件特性及區別

  • 硬鏈接:同一文件系統上(同一磁盤分區)相同inode編號的不同文件名的文件,對應同一文件系統上相同的block磁盤位置。

  • 軟鏈接:一個符號鏈接文件指向另外一個文件或者目錄,與被指向的文件inode號不相同。

硬鏈接和軟連接的區別:
(1)本質:硬鏈接:同一個文件多個名字,軟連接不同的文件。

(2)硬鏈接不可以跨分區,軟鏈接可以。

(3)硬鏈接不支持對目錄創建,軟鏈接支持。

(4)相互關系:硬鏈接相互是獨立的關系,軟鏈接相互是依賴的關系。

(5)inode號,硬鏈接相同,軟連接不同。

(6)鏈接數。硬鏈接會增長或減少,軟鏈接不變。

(7)路徑問題:原始文件的路徑。硬鏈接的相對路徑是當前工作目錄,軟連接是相對路徑是根據后面軟鏈接的路徑決定。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM