核心配置文件①

核心配置文件①
[TOC]
网卡配置文件
📌 位置: /etc/sysconfig/network-scripts/ifcfg-ens33
📌 作用: IP地址的配置文件、网络相关的
[root@Kylin ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33TYPE=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需要每次手动启动网卡 必须为yesIPADDR=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=static 和 BOOTPROTO=none 实际效果相同
⚠️ 这个是none不是no
- 推荐选择:
- 新系统:优先使用 static(语义明确)
ONBOOT选项
两个参数:
| 值 | 效果 |
|---|---|
| yes | 系统启动时自动激活该网络接口 ✅️ |
| no | 开机不自动启用,需手动 ❌️ |
#启用网卡ifup ens33'对应的是 NAME 字段' --> 逻辑连接名称 ✅️
#禁用网卡ifdown ens33
# 重启网卡ifdown ens33 && ifup ens33
给大家翻译一下, “就是当网络可以可达时,自动连接”
这个选项就是ONBOOT,如果你打上勾就是YES,否则就是NO.我们要打上√.

⚠️ 千万别忘了保存
优化网卡配置文件
修改网卡配置
[root@oldboyedu ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33TYPE=EthernetBOOTPROTO=noneNAME=ens33DEVICE=ens33ONBOOT=yesIPADDR=10.0.0.200PREFIX=24GATEWAY=10.0.0.2DNS1=223.6.6.6DNS2=114.114.114.114👑重启网卡
[root@oldboy ~]# ifdown ens33# 禁用ens33网卡Socket error Event: 32 Error: 10053.Connection closing...Socket close.'先不要着急回车,一但回车,你的Xshell就连不上了'[root@oldboy ~]# ifdown ens33 && ifup ens33# 重启网卡成功停用连接 "ens33"(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)'⭐把这两条命令放在一起敲同时执行两条命令''以前是重启网络服务,但这里是重启网卡'✅️ 重启网卡的正确方式kylin系统默认不支持使用systemctl来管理网卡、必须安装一个软件才可以(CENTOS默认支持)
步骤1: 安装网卡管理软件、只需要安装一次即可
[root@oldboyedu ~]# yum -y install network-scripts步骤2: 使用systemctl管理网络
[root@oldboyedu ~]# systemctl restart network[root@oldboyedu ~]#'啥都不提示说明配置文件是正确的、出现提示则错误'✅️ 验证通过主机名
📌 路径: /etc/hostname
📌 作用: 主机名称表示本机可以ping通、规范、可以做解析
通过主机名称,可以很清楚知道这台服务器是干什么用的
查看主机名
1)命令行[root@Kylin ~]# 👆 '这个就是主机名'
2)hostname[root@Kylin ~]# hostnameKylin
3)hostnamectl[root@Kylin ~]# hostnamectl Static hostname: Kylin Icon name: computer-vm Chassis: vm
🌰 架构分类
-
CPU X86架构
- 个人电脑、服务器、工作站、游戏主机
-
CPU ARM架构
- 移动端手机 移动设备(手机、平板)、嵌入式系统
- 物联网、苹果Mac、服务器、车载系统
查看配置文件
[root@Kylin ~]# cat /etc/hostnameKylin📌 这个文件中是啥,开机启动就会设置成啥主机名称
修改主机名
临时配置
⚠️ 重启操作系统后,主机名失效,不是永久的修改
使用场景: 维护客户服务器 ==临时修改==
(1)临时配置新的主机名称
[root@Kylin ~]# hostname test[root@Kylin ~]#(2)重新连接xshell生效
[root@test ~]#永久修改
(1)直接修改配置文件 (不使用)
就是因为必须要重启系统,所以,一般不使用,因为很多时候,我们的服务器,不能重新启动
步骤一:
[root@Kylin ~]# vim /etc/hostname[root@Kylin ~]# cat /etc/hostnamehaha步骤二: 重启系统生效
⚠️ 必须重启系统
(2)⭐使用命令修改(记住重点)
步骤一: 使用命令修改
[root@test ~]# hostnamectl set-hostname jiuzhao[root@test ~]# cat /etc/hostnamejiuzhao'执行这条命令,同时修改配置文件'✅️ 一行命令永久生效,无需重启步骤二: 重新连接xshell即可
✅️ 不用重新启动系统
DNS配置文件
📌 路径: /etc/resolv.conf
📌 作用: 存储DNS服务器IP地址的配置文件
[root@oldboyedu ~]# cat /etc/resolv.conf# Generated by NetworkManagernameserver 223.6.6.6 # 第一个DNS服务nameserver 114.114.114.114 # 第二个DNS备用📌 核心重点 —> 将DNS服务器的IP写入网卡配置中
面试题:DNS配置文件是哪个?
答: 是/etc/resolv.conf 当然我们也可以配置到网卡配置文件中
resolv.conf被覆盖
(1)修改网卡DNS为233.5.5.5
[root@oldboyedu ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33TYPE=EthernetBOOTPROTO=noneNAME=ens33DEVICE=ens33ONBOOT=yesIPADDR=10.0.0.200PREFIX=24GATEWAY=10.0.0.2DNS1=233.6.6.6 # ⚠️ 233是错误的,正确的应为223DNS2=114.114.114.114(2)查看resolv.conf
[root@oldboyedu ~]# cat /etc/resolv.conf# Generated by NetworkManagernameserver 223.6.6.6 # 目前还是旧的nameserver 114.114.114.114(3)重启网卡
[root@oldboyedu ~]# systemctl restart network'只有重启后,我们修改的网卡配置文件才会生效'(4)再次查看
[root@oldboyedu ~]# cat /etc/resolv.conf# Generated by NetworkManagernameserver 233.5.5.5 # 已经变成错误的了nameserver 114.114.114.114'⚠️ 网卡DNS覆盖了resolv.conf'开机自动执行
📌 路径: /etc/rc.local 🧣面试题
📌 作用: 开机自动读取此文件 —> 执行里面的命令
⚠️ 只有开机重启,才会执行里面的文件,重新连接不会执行
📄 /etc/rc.local 通常包含什么内容?
- 启动自定义脚本(如 Python/Shell 守护进程)
- 挂载网络存储(mount)
- 设置内核参数或系统配置(systemctl…)
- 启动 Docker 容器(开发/测试环境)
- 设置 iptables 规则(临时方案)
- ❌ 不适合放在 /etc/rc.local 的内容
alias grep='...'
[root@oldboy ~]# ll /etc/rc.locallrwxrwxrwx 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执行权限
[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写入命令
[root@oldboyedu ~]# cat /etc/rc.local... #省略的意思mkdir /home/local步骤3: 重启测试
[root@oldboyedu ~]# reboot
[root@oldboy ~]# ll /home/总用量 4-rw-r--r-- 1 root root 21 12月 6 09:57 1.txtdrwxr-xr-x 2 root root 6 12月 6 15:14 local# 重启后local目录自动创建成功✅️ rc.local开机自动执行验证通过变量配置文件
📌 路径: /etc/profile
📌 作用: 存放永久环境变量的配置文件
⚠️ 修改完环境变量,别忘了source一下,让它生效
- xshell每次连接都要重新执行profile中的变量 == source /etc/profile
- 它俩在使配置/etc/profile生效,功能等价
注意source或者.(点)只对文件中的变量生效. 如果纯的配置文件则source没有意义
[root@oldboy ~]# cat /etc/hostnameoldboy[root@oldboy ~]# source /etc/hostname-bash: oldboy:未找到命令# source对纯配置文件无意义“只要有=就是变量”?
[root@oldboy ~]# source /etc/sysconfig/network-scripts/ifcfg-ens33[root@oldboy ~]## 网卡配置文件中的=虽然看起来像变量,但source后并无实际效果什么是变量
[root@oldboyedu ~]# name=oldboy📌 '用等号连接起来(不能有空格)'[root@oldboyedu ~]# echo $nameoldboy[root@oldboyedu ~]# name=test[root@oldboyedu ~]# echo ${name}test'二次赋值后,会被覆盖'⚠️ 上面这些变量是临时生效的变量.重新连接后,就消失了
$name是标准的 Shell 变量引用语法,会替换为变量的值oldboy$(name)是命令替换语法,Shell 会尝试把name当作一个命令去执行
| 语法 | 含义 | 本例结果 |
|---|---|---|
$name | 引用变量 | oldboy ✅ |
${name}{花括号} | 引用变量(推荐写法,避免歧义) | oldboy ✅ |
$(name)(小括号) | 执行命令并捕获输出 | 报错 ❌ |
$NAME | 引用大写变量 NAME(==未定义则为空==) | 空字符串 |
PATH变量
[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变量不存在我们执行命令的方式、==麻烦==:
[root@oldboyedu ~]# /usr/bin/touch a.txt[root@oldboyedu ~]# /usr/bin/mkdir oldboy'使用的是绝对路径执行命令'将touch命令移动到/opt下,不能执行如何解决❓️
[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
[root@oldboyedu ~]# /opt/touch b.txt解决方法2: 将/opt路径加入到PATH变量中
[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
[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后立即生效[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种运行级别
init 0 # 关机init 6 # 重启📌 笔试题:
0 # 表示关机
1 # 表示单用户模式、可以修改密码(扩展)
2 # 表示多用户模式、但是很多功能不支持
3 # 表示完全多用户模式、系统默认的模式
4 # 保留待开发
5 # 表示桌面模式
6 # 表示重启系统
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!



