linux下爲何每次修改完配置文件以後都須要從新加載配置文件

一.關於inode

1.在linux下一切皆文件,linux文件由三部分組成:文件名,inode,block塊node

  • ​ 文件名:文件名只是爲了更好辨別文件而起的別名;
  • ​ inode::inode存儲的是文件的元信息,好比:文件字節數、文件屬主UID、文件屬組GID、讀寫執行權限、時間戳等。inode是linux系統識別文件的惟一標識;
  • ​ block塊:block塊是真正存儲文件數據的地方。

2.查看文件名,inode,block塊的方法:能夠使用stat命令linux

[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 系統特有的現象:shell

  • ​ 有時,文件名包含特殊字符,沒法正常刪除。這時,直接刪除 inode 節點,就能起到刪除文件的做用;
  • ​ 移動文件或重命名文件,只是改變文件名,不影響 inode 號碼;
  • ​ 打開一個文件以後,系統就以 inode 號碼來識別這個文件,再也不考慮文件名。所以系統沒法從 inode 號碼得知文件名。

二.爲何每次修改完服務器配置文件以後,都須要從新加載一下配置文件?

答:由於vim每次修改完配置文件以後,inode號都會改變,這對於linux系統來講這是一個新文件,須要從新加載配置文件。vim

[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
相關文章
相關標籤/搜索