linux下為什麼每次修改完配置文件之後都需要重新加載配置文件
一.關於inode
1.在linux下一切皆文件,linux文件由三部分組成:文件名,inode,block塊
- 文件名:文件名只是為了更好辨別文件而起的別名;
- inode::inode存儲的是文件的元信息,比如:文件位元組數、文件屬主UID、文件屬組GID、讀寫執行權限、時間戳等。inode是linux系統識別文件的唯一標識;
- block塊:block塊是真正存儲文件數據的地方。
2.查看文件名,inode,block塊的方法:可以使用stat命令
[root@node5 ~]# stat /etc/passwd
File: 『/etc/passwd』
Size: 2615 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 17363913 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-12-13 11:20:01.293083729 +0800
Modify: 2020-12-10 11:14:34.432545850 +0800
Change: 2020-12-10 11:14:34.434545850 +0800
Birth: -
二.inode的作用
由於 inode 號碼與文件名分離,這種機制導致了一些 Unix/Linux 系統特有的現象:
- 有時,文件名包含特殊字符,無法正常刪除。這時,直接刪除 inode 節點,就能起到刪除文件的作用;
- 移動文件或重命名文件,只是改變文件名,不影響 inode 號碼;
- 打開一個文件之後,系統就以 inode 號碼來識別這個文件,不再考慮文件名。因此系統無法從 inode 號碼得知文件名。
二.為什麼每次修改完服務器配置文件之後,都需要重新加載一下配置文件?
答:因為vim每次修改完配置文件之後,inode號都會改變,這對於linux系統來說這是一個新文件,需要重新加載配置文件。
[root@node5 ~]# cp /etc/profile profile
#-i參數可以查看inode號,此時33688532就是profile的inode號
[root@node5 ~]# ll -i profile
33688532 -rw-r--r-- 1 root root 1795 Nov 27 15:50 profile
#使用echo追加一些內容,發現inode號沒有改變
[root@node5 ~]# echo '#!/bin/bash' >> profile
[root@node5 ~]# ll -i profile
33688532 -rw-r--r-- 1 root root 1807 Nov 27 15:51 profile
#使用vim修改文件之後inode號已經改變
[root@node5 ~]# vim profile
[root@node5 ~]# ll -i profile
34449901 -rw-r--r-- 1 root root 1826 Nov 27 15:52 profile