核心配置文件①

2660 字
13 分钟
核心配置文件①

核心配置文件①#

[TOC]


网卡配置文件#

📌 位置: /etc/sysconfig/network-scripts/ifcfg-ens33

📌 作用: IP地址的配置文件、网络相关的

Terminal window
[root@Kylin ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet # 网络类型 以太网(默认不允许修改)
# 前面的单词是大写,E也是大写
BOOTPROTO=none # IP地址的配置方式、none为静态手动的配置IP
# BOOTPROTO改为'static'也是可以的, 但不能是dhcp(dhcp 自动获取IP地址)
NAME=ens33 # 逻辑连接名称
UUID=b3fb32e7-18a5-4bc3-9914-923abd81b08c # 系统会给每个硬件分配身份证
# UUID即使删除,网络也能够正常使用,后面创建克隆更便捷一些
DEVICE=ens33 # 物理硬件设备名
ONBOOT=yes # 开机自动启动网卡 如果为no需要每次手动启动网卡 必须为yes
IPADDR=10.0.0.200 # IP地址局域网内唯一 连接服务器必要信息
PREFIX=24 # 子网掩码
GATEWAY=10.0.0.2 # 网关 去往不同网络的必经之路
DNS1=223.6.6.6 # DNS域名解析
DNS2=114.114.114.114 # 备用DNS解析

BOOTPROTO选项#

  • 可以互换:在配置静态 IP 时,BOOTPROTO=staticBOOTPROTO=none 实际效果相同
Important

⚠️ 这个是none不是no

  • 推荐选择
    • 新系统:优先使用 static(语义明确)

ONBOOT选项#

两个参数:

效果
yes系统启动时自动激活该网络接口 ✅️
no开机不自动启用,需手动 ❌️
Terminal window
#启用网卡
ifup ens33
'对应的是 NAME 字段' --> 逻辑连接名称 ✅️
#禁用网卡
ifdown ens33
# 重启网卡
ifdown ens33 && ifup ens33

给大家翻译一下, “就是当网络可以可达时,自动连接”

这个选项就是ONBOOT,如果你打上勾就是YES,否则就是NO.我们要打上√.

⚠️ 千万别忘了保存

优化网卡配置文件#

修改网卡配置#

Terminal window
[root@oldboyedu ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=10.0.0.200
PREFIX=24
GATEWAY=10.0.0.2
DNS1=223.6.6.6
DNS2=114.114.114.114

👑重启网卡#

Terminal window
[root@oldboy ~]# ifdown ens33
# 禁用ens33网卡
Socket error Event: 32 Error: 10053.
Connection closing...Socket close.
'先不要着急回车,一但回车,你的Xshell就连不上了'
Terminal window
[root@oldboy ~]# ifdown ens33 && ifup ens33
# 重启网卡
成功停用连接 "ens33"(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
'⭐把这两条命令放在一起敲同时执行两条命令'
'以前是重启网络服务,但这里是重启网卡'
✅️ 重启网卡的正确方式
Note

kylin系统默认不支持使用systemctl来管理网卡、必须安装一个软件才可以(CENTOS默认支持)

步骤1: 安装网卡管理软件、只需要安装一次即可

Terminal window
[root@oldboyedu ~]# yum -y install network-scripts

步骤2: 使用systemctl管理网络

Terminal window
[root@oldboyedu ~]# systemctl restart network
[root@oldboyedu ~]#
'啥都不提示说明配置文件是正确的、出现提示则错误'
✅️ 验证通过

主机名#

📌 路径: /etc/hostname

📌 作用: 主机名称表示本机可以ping通、规范、可以做解析

通过主机名称,可以很清楚知道这台服务器是干什么用的

查看主机名#

Terminal window
1)命令行
[root@Kylin ~]#
👆 '这个就是主机名'
2)hostname
[root@Kylin ~]# hostname
Kylin
3)hostnamectl
[root@Kylin ~]# hostnamectl
Static hostname: Kylin
Icon name: computer-vm
Chassis: vm

🌰 架构分类

  • CPU X86架构

    • 个人电脑、服务器、工作站、游戏主机
  • CPU ARM架构

    • 移动端手机 移动设备(手机、平板)、嵌入式系统
    • 物联网、苹果Mac、服务器、车载系统

查看配置文件#

Terminal window
[root@Kylin ~]# cat /etc/hostname
Kylin

📌 这个文件中是啥,开机启动就会设置成啥主机名称

修改主机名#

临时配置#

⚠️ 重启操作系统后,主机名失效,不是永久的修改

使用场景: 维护客户服务器 ==临时修改==

(1)临时配置新的主机名称

Terminal window
[root@Kylin ~]# hostname test
[root@Kylin ~]#

(2)重新连接xshell生效

Terminal window
[root@test ~]#

永久修改#

(1)直接修改配置文件 (不使用)

就是因为必须要重启系统,所以,一般不使用,因为很多时候,我们的服务器,不能重新启动

步骤一:

Terminal window
[root@Kylin ~]# vim /etc/hostname
[root@Kylin ~]# cat /etc/hostname
haha

步骤二: 重启系统生效

⚠️ 必须重启系统


(2)⭐使用命令修改(记住重点)

步骤一: 使用命令修改

Terminal window
[root@test ~]# hostnamectl set-hostname jiuzhao
[root@test ~]# cat /etc/hostname
jiuzhao
'执行这条命令,同时修改配置文件'
✅️ 一行命令永久生效,无需重启

步骤二: 重新连接xshell即可

✅️ 不用重新启动系统

DNS配置文件#

📌 路径: /etc/resolv.conf

📌 作用: 存储DNS服务器IP地址的配置文件

Terminal window
[root@oldboyedu ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 223.6.6.6 # 第一个DNS服务
nameserver 114.114.114.114 # 第二个DNS备用

📌 核心重点 —> 将DNS服务器的IP写入网卡配置中

Tip

面试题:DNS配置文件是哪个?

答: 是/etc/resolv.conf 当然我们也可以配置到网卡配置文件中

resolv.conf被覆盖#

(1)修改网卡DNS为233.5.5.5

Terminal window
[root@oldboyedu ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=10.0.0.200
PREFIX=24
GATEWAY=10.0.0.2
DNS1=233.6.6.6 # ⚠️ 233是错误的,正确的应为223
DNS2=114.114.114.114

(2)查看resolv.conf

Terminal window
[root@oldboyedu ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 223.6.6.6 # 目前还是旧的
nameserver 114.114.114.114

(3)重启网卡

Terminal window
[root@oldboyedu ~]# systemctl restart network
'只有重启后,我们修改的网卡配置文件才会生效'

(4)再次查看

Terminal window
[root@oldboyedu ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 233.5.5.5 # 已经变成错误的了
nameserver 114.114.114.114
'⚠️ 网卡DNS覆盖了resolv.conf'

开机自动执行#

📌 路径: /etc/rc.local 🧣面试题

📌 作用: 开机自动读取此文件 —> 执行里面的命令

⚠️ 只有开机重启,才会执行里面的文件,重新连接不会执行

Note

📄 /etc/rc.local 通常包含什么内容?

  • 启动自定义脚本(如 Python/Shell 守护进程)
  • 挂载网络存储(mount)
  • 设置内核参数或系统配置(systemctl…)
  • 启动 Docker 容器(开发/测试环境)
  • 设置 iptables 规则(临时方案)
    • 不适合放在 /etc/rc.local 的内容
  • alias grep='...'
Terminal window
[root@oldboy ~]# ll /etc/rc.local
lrwxrwxrwx 1 root root 13 4月 20 2022 /etc/rc.local -> rc.d/rc.local
# /etc/rc.local是快捷方式
[root@oldboy ~]# ll /etc/rc.d/rc.local
-rw-r--r-- 1 root root 473 4月 20 2022 /etc/rc.d/rc.local
'⭐ /etc/rc.d/rc.local这个才是源文件!'
⚠️ 但是这个源文件权限太低了 ⚠️

步骤1: 给==源文件==增加x执行权限

Terminal window
[root@oldboyedu ~]# chmod +x /etc/rc.d/rc.local
[root@oldboyedu ~]# ll /etc/rc.d/rc.local
-rwxr-xr-x 1 root root 473 4月 20 2022 /etc/rc.d/rc.local

步骤2: 在/etc/rc.local写入命令

Terminal window
[root@oldboyedu ~]# cat /etc/rc.local
... #省略的意思
mkdir /home/local

步骤3: 重启测试

Terminal window
[root@oldboyedu ~]# reboot
[root@oldboy ~]# ll /home/
总用量 4
-rw-r--r-- 1 root root 21 12月 6 09:57 1.txt
drwxr-xr-x 2 root root 6 12月 6 15:14 local
# 重启后local目录自动创建成功
✅️ rc.local开机自动执行验证通过

变量配置文件#

📌 路径: /etc/profile

📌 作用: 存放永久环境变量的配置文件

⚠️ 修改完环境变量,别忘了source一下,让它生效

  • xshell每次连接都要重新执行profile中的变量 == source /etc/profile
    • 它俩在使配置/etc/profile生效,功能等价
Note

注意source或者.(点)只对文件中的变量生效. 如果纯的配置文件则source没有意义

Terminal window
[root@oldboy ~]# cat /etc/hostname
oldboy
[root@oldboy ~]# source /etc/hostname
-bash: oldboy:未找到命令
# source对纯配置文件无意义

“只要有=就是变量”?

Terminal window
[root@oldboy ~]# source /etc/sysconfig/network-scripts/ifcfg-ens33
[root@oldboy ~]#
# 网卡配置文件中的=虽然看起来像变量,但source后并无实际效果

什么是变量#

Terminal window
[root@oldboyedu ~]# name=oldboy
📌 '用等号连接起来(不能有空格)'
[root@oldboyedu ~]# echo $name
oldboy
[root@oldboyedu ~]# name=test
[root@oldboyedu ~]# echo ${name}
test
'二次赋值后,会被覆盖'

⚠️ 上面这些变量是临时生效的变量.重新连接后,就消失了

Tip
  • $name 是标准的 Shell 变量引用语法,会替换为变量的值 oldboy
  • $(name)命令替换语法,Shell 会尝试把 name 当作一个命令去执行
语法含义本例结果
$name引用变量oldboy
${name}{花括号}引用变量(推荐写法,避免歧义oldboy
$(name)(小括号)执行命令并捕获输出报错 ❌
$NAME引用大写变量 NAME(==未定义则为空==)空字符串

PATH变量#

Terminal window
[root@oldboyedu ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
'最常用的是这个PATH变量,里面存放着所有可执行命令的路径'
================================
🌰 流程
(1)用户输入一个命令touch
(2)系统会自动搜索PATH变量中 touch所在的路径
(3)如果找到了则执行二进制命令touch --->`/usr/bin/touch`
(4)如果找不到命令则提示`-bash: ...:未找到命令`
  • 因为有了PATH变量,所以,我们能够在任意的目录中执行这些命令
    • 如果PATH变量不存在我们执行命令的方式、==麻烦==:
Terminal window
[root@oldboyedu ~]# /usr/bin/touch a.txt
[root@oldboyedu ~]# /usr/bin/mkdir oldboy
'使用的是绝对路径执行命令'

将touch命令移动到/opt下,不能执行如何解决❓️

Terminal window
[root@oldboyedu ~]# mv /usr/bin/touch /opt/
# 移动了整个touch命令至/opt目录下
[root@oldboyedu ~]# ll
总用量 0
-rw-r--r-- 1 root root 0 10月 30 14:53 a.txt
'验证,当前目录没有touch相关可执行文件'
[root@oldboyedu ~]# touch b.txt
-bash: touch:未找到命令
# touch命令不在PATH路径中了

解决方法1: 使用绝对路径执行touch

Terminal window
[root@oldboyedu ~]# /opt/touch b.txt

解决方法2: 将/opt路径加入到PATH变量中

Terminal window
[root@oldboyedu ~]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/opt
'重新给PATH变量赋值,但它是临时生效,重新连接后就消失了'
[root@oldboyedu ~]# ll
总用量 0
-rw-r--r-- 1 root root 0 10月 30 14:53 a.txt
-rw-r--r-- 1 root root 0 10月 30 14:57 b.txt
[root@oldboyedu ~]# touch c.txt
'并没有报错,成功执行'
✅️ 临时添加PATH验证通过

📌 永久生效写入/etc/profile

Terminal window
[root@oldboyedu ~]# vim /etc/profile
..G到最后一行进入编辑模式
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/opt
[root@oldboy home]# touch fsdf.txt
-bash: touch:未找到命令
# 刚修改完还没source,所以不生效
[root@oldboyedu ~]# source /etc/profile # 使环境变量生效
'我们也可以重新连接一下Xshell,它俩在使配置/etc/profile生效,功能等价'
[root@oldboy home]# touch fsdf.txt
[root@oldboy home]# ll
总用量 0
-rw-r--r-- 1 root root 0 12月 6 16:16 fsdf.txt
# source后立即生效
Terminal window
[root@oldboyedu ~]# mv /opt/touch /usr/bin/
# 测试完成后,把/etc/profile里的内容改回来了 & 并将touch移动回原目录
[root@oldboyedu ~]# ll /usr/bin/touch
-rwxr-xr-x 1 root root 96512 4月 21 2022 /usr/bin/touch
# 将touch移回原路径

开机系统运行级别#

📌 路径: /etc/inittab

⚠️ 在 CentOS 7 和 Kylin 系统中 仅作为了解项(历史遗留文件)

✅️ 由于系统底层已切换至 systemd,该文件不再被读取或生效

7种运行级别#

Terminal window
init 0 # 关机
init 6 # 重启

📌 笔试题:

0 # 表示关机

1 # 表示单用户模式、可以修改密码(扩展)

2 # 表示多用户模式、但是很多功能不支持

3 # 表示完全多用户模式、系统默认的模式

4 # 保留待开发

5 # 表示桌面模式

6 # 表示重启系统

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

核心配置文件①
https://www.kpyun.fun/posts/basics/core/core05/
作者
久棹
发布于
2025-07-22
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
久棹
只要胆子大,天天寒暑假!
公告
欢迎来到久棹的技术小站!本站专注 Linux 运维学习笔记分享,如有问题欢迎交流探讨 🎉
分类
标签
站点统计
文章
98
分类
11
标签
203
总字数
244,453
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录