Linux文件系統由三部分組成:文件名,inode,block(真正存數據)java
inode:文件數據都存儲在塊中,那麼很顯然,咱們必須找到一個地方存儲文件的元信息,好比文件的建立者,文件的建立日期,文件的大小等等。這種存儲文件元信息的區域叫作inode,中文譯名爲 索引節點node
inode的內容:web
inode包含文件的元信息,具體來講有如下內容:服務器
* 文件的字節數app
* 文件擁有者的User IDide
* 文件的Group ID測試
* 文件的讀、寫、執行權限操作系統
* 文件的時間戳,共有三個:ctime指inode上一次變更的時間,mtime指文件內容上一次變更的時間,atime指文件上一次打開的時間。日誌
* 連接數,即有多少文件名指向這個inode索引
* 文件數據block的位置
例如:使用stat命令查看文件inode信息
[wang@localhost ~]$ stat /etc/passwd
File: `/etc/passwd'
Size: 1667 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 925374 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-12-20 20:47:17.929700869 -0500
Modify: 2016-12-20 20:47:11.339701023 -0500
Change: 2016-12-20 20:47:11.340701019 -0500
[wang@localhost ~]$ ll /etc/passwd
-rw-r--r--. 1 root root 1667 Dec 20 20:47 /etc/passwd
inode的大小:
inode也會消耗硬盤空間,因此硬盤格式化的時候,操做系統自動將硬盤分紅兩個區域。一個是數據區,存放文件數據;另外一個是inode區(inode table),存放inode所包含的信息。
例如:
查看每一個硬盤分區的inode總數和已經使用的數量,可使用df命令
[wang@localhost ~]$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root 1152816 99078 1053738 9% /
tmpfs 125551 7 125544 1% /dev/shm
/dev/sda1 128016 38 127978 1% /boot
/dev/sr0 0 0 0 - /media/CDROM
每一個文件最少有一個inode號,操做系統用inode號碼來識別不一樣的文件。
[wang@localhost ~]$ ls -i /etc/passwd
925374 /etc/passwd
[wang@localhost ~]$ ls -i /boot/grub/grub.conf
65031 /boot/grub/grub.conf
查看目錄下:
[wang@localhost ~]$ ls -i /boot/
14 config-2.6.32-431.el6.x86_64 11 lost+found
65027 efi 15 symvers-2.6.32-431.el6.x86_64.gz
65025 grub 13 System.map-2.6.32-431.el6.x86_64
17 initramfs-2.6.32-431.el6.x86_64.img 16 vmlinuz-2.6.32-431.el6.x86_64
[wang@localhost ~]$ ll -i /etc/passwd
925374 -rw-r--r--. 1 root root 1667 Dec 20 20:47 /etc/passwd
[wang@localhost ~]$ ls -i /etc/passwd
925374 /etc/passwd
查看目錄的inode號:
[wang@localhost ~]$ ls -di /etc/
915715 /etc/
拓展:Linux中的ctime,mtime,atime的區別
ctime:改變時間
mtime:修改時間
改變和修改之間的區別在於改文件的屬性仍是更改他的內容。chmod a-w myfile,那麼這是一個改變
echo foo>>myfile 那麼這是一個修改
改變是文件的索引節點發生了改變,修改是文本自己的內容發生了變化
atime:訪問時間
訪問時間是文件最後一次被讀取的時間,所以閱讀一個文件會更新它的訪問時間,可是他的改變時間和修改時間並無改變
ls -lc filename 列出文件的ctime
ls -lu filename 列出文件的atime
ls -l filename 列出文件的mtime
ln命令能夠建立硬連接:
ln 源文件 目標文件
文件名 -- inode -- block
例如:
[wang@localhost ~]$ touch a.txt
[wang@localhost ~]$ ll a.txt
-rw-rw-r--. 1 wang wang 82 Dec 21 04:54 a.txt
[wang@localhost ~]$ ln a.txt a2.txt
[wang@localhost ~]$ ll a.txt
-rw-rw-r--. 2 wang wang 82 Dec 21 04:54 a.txt
[wang@localhost ~]$ ll a2.txt
-rw-rw-r--. 2 wang wang 82 Dec 21 04:54 a2.txt
[wang@localhost ~]$ ls -i a.txt a2.txt
142721 a2.txt 142721 a.txt
測試:
[wang@localhost ~]$ rm -rf a.txt
[wang@localhost ~]$ cat a2.txt
sssssssssssssssssssssssssss
aaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbb
[wang@localhost ~]$ ll a2.txt
-rw-rw-r--. 1 wang wang 82 Dec 21 04:54 a2.txt
總結:硬連接特色,建立時,不能跨分區,不能給文件夾
軟件連接:至關於window中的快捷方式
ln -s 源文件或目錄 軟件鏈名字
[wang@localhost ~]$ ln -s a2.txt as.txt
[wang@localhost ~]$ ls
a2.txt b.txt Desktop Downloads Music Pictures Public text.sh
as.txt c.txt Documents hello.java mydir pub Templates Videos
[wang@localhost ~]$ ll as.txt
lrwxrwxrwx. 1 wang wang 6 Dec 21 08:28 as.txt -> a2.txt
例如:
[root@localhost wang]# ll /etc/grub.conf
lrwxrwxrwx. 1 root root 22 Nov 21 17:41 /etc/grub.conf -> ../boot/grub/grub.conf
例如:
[root@localhost wang]# ln -s /boot/grub/grub.conf aa.txt
[root@localhost wang]# ln -s /boot/grub ccc
軟連接數是不會變的。
[root@localhost wang]# ll /boot/grub/grub.conf
-rw-------. 1 root root 819 Nov 21 17:41 /boot/grub/grub.conf
查看目錄的連接數:
[root@localhost wang]# ls test/
test2
[root@localhost wang]# ll -a test/
total 12
drwxr-xr-x. 3 root root 4096 Dec 21 09:05 .
drwx------. 32 wang wang 4096 Dec 21 09:04 ..
drwxr-xr-x. 2 root root 4096 Dec 21 09:05 test2
[root@localhost wang]# cd test/
[root@localhost test]# ls -id .
142707 .
[root@localhost test]#
[root@localhost test]#
[root@localhost test]# ls -id test2/..
142707 test2/..
實例:
web服務器中小文件不少,致使硬盤有空間,單沒法建立文件
inode數被用光了
[root@localhost test]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root 1152816 99083 1053733 9% /
tmpfs 125551 7 125544 1% /dev/shm
/dev/sda1 128016 39 127977 1% /boot
/dev/sr0 0 0 0 - /media/CDROM
block設置大:效率高,利用率低
block設置小:效率低,利用率高
通常系統默認就行
ext4文件系統和ext3文件系統的強的方面:
ext4和ext3兼容
更大的文件系統和更大的文件
無限數量的子目錄
無日誌 模式