1、大家刚接触linux时,可能会有这样的疑问:为什么每次修改完配置文件之后,总是要重新加载配置文件才能生效?或者需要重启后才能生效?
 
之前听过一个解释是这样子的:
 
“修改了文件内容后,只是硬盘的文件改了,但是内存还是原来的配置,所以需要重新加载,内存才会是新的配置……”
 
嗯…当然了,以上的解释不能说是错的,但总归比较笼统,对于刚入linux这个坑的小白来说更是只知其表不知其里,接下来我会给出一个更加“其里”的解释。
 
首先,我们需要知道原因,就得先了解下文件的组成结构。
 
2、在liunx下一切皆文件,linux文件由三部分构成:
 
(1)文件名:文件的别名(类似一个人的姓名)
 
(2)inode:inode存储的是文件的元信息,比如:文件字节数、文件属主UID、文件属组GID、读写执行权限、时间戳等。inode是linux系统识别文件的唯一标识;(类似于一个人的身份证号码)
 
(3)block块:真正存储文件数据的地方;
 
查看文件内容命令: 
 
stat /etc/profile
 
3、inode
(1)由于 inode 号码与文件名分离,这种机制导致了一些 Unix/Linux 系统特有的现象:有时,文件名包含特殊字符,无法正常删除。这时,直接删除 inode 节点,就能起到删除文件的作用;
 
(2)移动文件或重命名文件,只是改变文件名,不影响 inode 号码;
 
(3)打开一个文件之后,系统就以 inode 号码来识别这个文件,不再考虑文件名。因此系统无法从 inode 号码得知文件名。
 
4、重新加载配置文件原因
(1)当配置文件被vim修改时,inode号会随之改变,而这对于linux来说,虽然文件名相同,但是inode号不同,相当于是一个新文件,系统识别的原文件的inode号已经没有数据了,所以需要重新加载配置文件
 
(2)实例,更改前和更改后的inode号:

ll -i /etc/yum.repos.d/nginx.repo
 
5、重新加载配置文件操作:
 
# 方式一:
    source /etc/profile
# 方式二:
    . /etc/profile
Ps:source命令也称为“点命令”,也就是一个点符号(.)

linux中为何每次修改完配置文件后都需要重新加载配置文件的更多相关文章

  1. linux下为什么每次修改完配置文件之后都需要重新加载配置文件

    目录 一.关于inode 二.inode的作用 二.为什么每次修改完服务器配置文件之后,都需要重新加载一下配置文件? 一.关于inode 1.在linux下一切皆文件,linux文件由三部分组成:文件 ...

  2. Linux安装redis,启动配置不生效(指定启动加载配置文件)

    一.今天有个同学问我,为什么明明安装了redis,修改了配置,启动的时候,配置还是不生效.如下图是安装后的redis文件图. 二.想加载上图中的redis.conf,进入到src中寻找到启动文件red ...

  3. 解决Eclipse每次修改完代码后需要先Clean,不然修改的代码无效

    工具栏 Project-->Build Automatically 勾选上即可

  4. Nginx下修改php.ini后重新加载配置文件命令

    修改php.ini后 如,我的 php.ini 文件是放在 /etc/php.ini php 所在目录是 /www/Linux/php-5.2.17 修改 php.ini 后要用 php-fpm 来进 ...

  5. []转帖]linux 上修改了nginx.conf 怎么重新加载配置文件生效

    linux 上修改了nginx.conf 怎么重新加载配置文件生效 https://www.cnblogs.com/zhuyeshen/ 步骤如下先利用/usr/local/nginx/sbin/ng ...

  6. Linux下文件 ~/.bashrc 和 ~/.bash_profile 和 /etc/bashrc 和 /etc/profile 的区别 | 用户登录后加载配置文件的顺序

    转自 https://blog.csdn.net/secondjanuary/article/details/9206151 文件说明: /ect/profile 此文件为系统的每个用户设置环境信息, ...

  7. Java中加载配置文件的集中方式,以及利用ClassLoader加载文件 .

    我们往常进行文件的加载的时候 用到的都是  FileInputStream进行 文件的加载比如下面一个例子 : InputStream in=FileInputStream("1.prope ...

  8. springboot属性类自动加载配置文件中的值

    springboot属性类自动加载配置文件中的值,如Person类加载在yml中配置的name,age等属性值,可以通过如下步骤获取: 类上添加@ConfigurationProperties注解,p ...

  9. web 中加载配置文件

    1.web.xml中配置   <!-- 加载配置文件 -->   <listener>      <description>ServletContextListen ...

随机推荐

  1. mysql的一些配置操作

    mysql的一些配置操作 一.背景 二.mysql配置 三.慢查询日志 1.命令行临时生效 2.配置文件修改永久生效 3.慢查询日志解释 4.mysqldumpdlow查看慢查询日志 四.查看索引为何 ...

  2. SCons - 简单而强大的项目编译脚本(原文https://www.cnblogs.com/binchen-china/p/5646791.html)

    N年前学的makefile,当时还勉强能写一些简单的工程编译,现在已经基本忘了.makefile确实编写复杂,而且平时也不是经常使用,容易忘记.偶识了scons,一切都变的简单了.最近研究了下scon ...

  3. 一文读懂Android进程及TCP动态心跳保活

    一直以来,APP进程保活都是 各软件提供商 和 个人开发者 头疼的问题.毕竟一切的商业模式都建立在用户对APP的使用上,因此保证APP进程的唤醒,提升用户的使用时间,便是软件提供商和个人开发者的永恒追 ...

  4. SDIO总线协议

    SDIO采用HOST-DEVICE模式,所有通信都由HOST端发命令,DEVICE设备只要解析HOST命令就可与HOST进行通信. SDIO总线的几根线: 1.  CLK信号:HOST给DEVICE的 ...

  5. Python网络爬虫实战入门

    一.网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序. 爬虫的基本流程: 发起请求: 通过HTTP库向目标站点发起请求,也就是发送一个Request ...

  6. Java并发:AbstractQueuedSynchronizer(AQS)

    队列同步器 AbstractQueuedSynchronizer 是一个公共抽象类.提供一个同步器框架,用于实现依赖于先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量,事件等).使用一个 in ...

  7. UVM RAL模型和内置seq

    转载:UVM RAL模型:用法和应用_寄存器 (sohu.com) 在系统设计中通常会面临两大挑战:缩小技术节点的规模和上市时间(TTM,Time to Market).为了适应激烈的市场竞争,大多数 ...

  8. linux tr

    转载:tr命令_Linux tr 命令用法详解:将字符进行替换压缩和删除 (linuxde.net) tr命令 文件过滤分割与合并 tr命令可以对来自标准输入的字符进行替换.压缩和删除.它可以将一组字 ...

  9. Register Abstraction(9)

    This post will explain how to use the UVM Register Abstraction Layer (RAL) to generate register tran ...

  10. python的分支结构

    python分支结构 if结构 python的 if 选择分支结构的基础语法如下,需要注意的是判断条件后面是半角的分号,它的作用相当于Java中的小括号 if 判断条件 : 代码块 elif 判断条件 ...