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
posted @ 2020-12-14 11:49  人生的哲理  阅读(2661)  评论(1编辑  收藏  举报