第一题

| 命令 | 是否通配符 | 无点普通文件(abc) | 带点普通文件(a.txt) | 隐藏文件(.bashrc) | 匹配./ ../ |
展开子目录内容 |
|---|---|---|---|---|---|---|
ls / ls . |
否 | ✅ | ✅ | ❌ | ❌ | ❌ |
ls * |
是 | ✅ | ✅ | ❌ | ❌ | ✅(* 匹配到子目录会展开里面文件) |
ls .* |
是 | ❌ | ❌ | ✅ | ✅(强制匹配.开头,必然命中./../) |
✅ |
ls *.* |
是 | ❌ | ✅ | ❌ | ❌ | ❌ |
通配符解析逻辑: *.* = [任意非点开头字符] + . + 任意字符
第二题
| 路由类型 | 关键字 | 标准完整语法 | 使用场景 | 是否需要 -net |
|---|---|---|---|---|
| 网段路由 | -net |
route add -net 目标网段 netmask 掩码 gw 网关 |
访问一整个子网(如 192.168.1.0/24) | ✅ 必须带 |
| 单主机路由 | -host |
route add -host 单个主机IP gw 网关 |
仅访问某一台单独设备 | ❌ 不能带 |
| 默认路由 | default |
route add default gw 网关IP |
所有未知网段统一走该网关 | ❌ 完全不用 |
低版本 Linux 允许直接写网段,省略 -net,系统自动识别子网,服务器能正常执行;
第三题
| 文件路径 | 核心作用 | 区分要点 |
|---|---|---|
| A /etc/HOSTNAME | 旧版系统存放本机主机名 | 和域名解析无关 |
| B /etc/hosts | 本地静态域名解析,本地优先匹配,无需 DNS 服务器 | 题目问「本地域名解析」,选此项 |
| C /etc/resolv.conf | DNS 服务器地址配置(远程域名解析) | 你说的没错,这是指定上游 DNS,不是本地解析 |
| D /etc/network/interfaces | Debian/Ubuntu 传统网卡配置文件,银河麒麟不使用 | 麒麟不用这个文件配置 IP |
Linux的体系分支
bash
UNIX
└── Linux内核(Linus Torvalds)
├─ 分支1:Debian 体系(deb软件包)
│ ├─ Debian(原生上游)
│ ├─ Ubuntu(基于Debian重构)
│ ├─ 树莓派OS、Deepin深度系统
│ └─ 国产桌面:统信UOS
│ 特征:dpkg/apt、网卡配置 /etc/network/interfaces
│
└─ 分支2:RedHat RHEL 体系(rpm软件包)
├─ RHEL(红帽商业企业版)
├─ CentOS(免费复刻RHEL,已停服)
├─ RockyLinux / AlmaLinux(CentOS替代)
├─ openEuler 欧拉(华为自研RPM分支,独立内核)
└─ 国产服务器:银河麒麟Kylin V10
特征:rpm/yum/dnf、网卡配置 /etc/sysconfig/network-scripts/
第四题

| 选项 | 名称 | 核心功能 | 麒麟(RHEL)表现 | Ubuntu(Debian)差异 | 是否数据包过滤 |
|---|---|---|---|---|---|
| A | rarp | 反向 ARP:MAC 查 IP | 需手动yum install rarp安装,命令语法 rarp -s IP MAC |
Debian 源包名一样,但现代 Ubuntu 极少用,PXE 改用 dhcp,默认不预装 | ❌ 无过滤功能,二层地址解析工具 |
| B | route | 三层路由转发管理 | 系统自带,静态路由命令route add -net 网段 gw 网关 |
Ubuntu 也自带 route,用法完全一致;新版推荐ip route |
❌ 只控制转发路径,不拦截丢弃数据包 |
| C | firewalld | 防火墙服务,上层封装数据包过滤 | 麒麟 V10 默认防火墙服务,系统自带开机自启,管理底层 filter 表 | Ubuntu无 firewalld !默认防火墙工具是ufw,底层同样依赖 netfilter/filter 表,命令完全不通用 |
✅ 题目问「提供过滤的服务」,麒麟选 C,Ubuntu 对应服务为 ufw |
| D | filter | Linux 内核 netfilter 过滤表(底层内核模块) | 内核内置,不是系统服务,firewalld/iptables 底层调用它 | Ubuntu 内核同样存在 filter 表,属于内核通用组件,无系统差异 | ✅ 底层实现,但不是服务,题干关键词「服务」直接排除 D |
Ubuntu没有 firewalld 服务、没有 firewall-cmd 命令 ,默认防火墙服务是ufw:
bash
# Ubuntu防火墙操作(麒麟执行会直接报错command not found)
# 启用ufw过滤功能
ufw enable
# 放行80端口
ufw allow 80/tcp
# 查看过滤规则
ufw status numbered
# 关闭防火墙
ufw disable
Linux netfilter 三表完整深度精讲(底层原理 + Hook 绑定根源 + 工程实操 + 发行版差异)
前置基础:先吃透 5 个 Hook 钩子的执行时序与路由判断分界(所有表绑定 Hook 的根本原因)
1、网络数据包完整生命周期时序(内核固定流程,不可逆)
bash
网卡入栈 → 【PREROUTING 路由前钩子】 → 内核路由判决(核心分水岭)
├─ 分支1:目标IP是本机 → 【INPUT 入站钩子】 → 上层应用进程
└─ 分支2:目标IP是其他主机 → 【FORWARD 转发钩子】 → 路由二次匹配 → 【POSTROUTING 出站前钩子】
本机进程主动发包 → 【OUTPUT 本地出站钩子】 → 路由判决 → 【POSTROUTING 出站前钩子】
| 流量类型 | 路由次数 | 两次路由的区别 |
|---|---|---|
| 转发流量(跨网段) | 2 次 | 1. 简易判断是否转发;2. 过滤后完整查表算出口网卡 |
| 本机入站流量(访问本机服务) | 1 次 | PREROUTING 后一次路由,判定目标为本机,直接走 INPUT |
| 本机出站流量(服务器主动访问外网) | 1 次 | OUTPUT 链后一次完整路由,直接算出出口网卡 |





转发流量为什么有两次路由判断?



| 协议 | 解析方向 | 核心用途 | 现代环境使用率 |
|---|---|---|---|
| ARP | IP → MAC | 两台主机局域网通信,查询对方硬件地址 | 100%,所有内网必用 |
| RARP | MAC → IP | 无盘设备开机获取自身 IP | 0%,仅考题、老旧设备可见 |
第五题

| 符号 | 名称 | 完整作用解释 |
|---|---|---|
A ~ |
波浪号 tilde | 用户家目录简写1. 单独 ~ = 当前登录用户的主目录root 用户:~ 等价 /root普通用户 test:~ 等价 /home/test2. ~用户名:指定用户的家目录,例 ~mysql = /home/mysql |
B * |
星号 | Shell 通配符,匹配任意长度任意字符 例 ls *.txt 匹配所有后缀 txt 的文件,和目录无关 |
C . |
点号 | 代表当前所在目录 ls . 查看当前文件夹内容;. 也用于隐藏文件开头(.bashrc) |
D $ |
美元符 | 1. Shell 提示符普通用户结尾标识([test@localhost ~]$)2. 读取变量:$PATH、$USER和目录路径无任何关系 |
第八题


第十二题



第十三题


第十五题

| 命令 | 核心功能 |
|---|---|
| useradd | 创建普通用户账号(本题答案) |
| userdel | 删除用户 |
| usermod | 修改用户属性(UID、附加组、家目录、shell) |
| passwd | 设置 / 修改用户登录密码 |
| groupadd | 创建用户组(选项 A) |
| groupdel | 删除用户组 |
| groupmod | 修改组名称、GID |
| gpasswd | 管理组内成员,添加 / 移除用户到指定组 |
第十六题

| 对比维度 | su | sudo |
|---|---|---|
| 核心行为 | 切换完整用户登录会话 | 临时借权执行单条命令,不切换会话 |
| 要输谁的密码 | 目标用户(切 root 输 root 密码) | 当前登录用户(输自己密码) |
| 终端身份变化 | 变成目标用户,需要 exit 退出 | 全程保持自己账号,执行完自动复原 |
| 是否符合本题要求 | 不符合(会切换用户环境) | 完全符合 |
| 适用场景 | 长时间切换账号操作 | 只跑 1 条管理员命令,不想换账号 |
| 对比项 | su root(无横杠) | su - root(带横杠,完整登录) |
|---|---|---|
| 环境变量 | 保留原用户全部环境 | 清空原有环境,加载目标用户专属配置 |
| 登录脚本 | 不执行目标用户 profile/bashrc | 完整执行全套登录初始化脚本 |
| 当前工作目录 | 切换前目录不变 | 自动跳转到目标用户家目录 /root |
| PATH 变量 | 包含原用户私人目录 | 纯系统默认管理员 PATH,无私人路径 |
| 环境纯净度 | 混杂两套用户环境,易冲突 | 纯净、标准,和本机登录 root 完全一致 |
| 典型用途 | 临时简短操作,复用自身环境 | 长期运维、程序调试、故障排查 |


第十七题



第十九题

权限的相关知识点
1. 权限三段固定对象(永远不变)
第一位 用户u | 第二位 组g | 第三位 其他o
- u:文件创建者 / 所有者
- g:和文件归属同一个用户组的所有人(本题 alex 属于这一类)
- o:系统里剩下所有不沾边用户
2. r/w/x 三种权限对【文件】和【目录】作用完全不同(90% 人踩坑)
① 针对普通文件(txt/conf/sh/log)
| 权限 | 作用 |
|---|---|
| r | 读取文件内容(cat/less) |
| w | 修改、覆盖、删除文件内容(vi/echo >) |
| x | 执行脚本 / 二进制程序(shell、elf 程序) |
② 针对文件夹 / 目录(核心难点,工程高频踩坑)
目录 x 权限是进入目录的通行证,没有 x,哪怕有 rw 也无法 ls / 修改内部文件
| 权限 | 目录作用 |
|---|---|
| r | 列出目录内文件名(ls) |
| w | 在目录新建 / 删除 / 重命名内部文件 |
| x | 进入目录、访问内部文件内容(cd、读取子文件) |
举个典型坑:
tom 家目录 /home/tom 权限如果是 r--r--r--,alex 只有 r 无 x,哪怕 file1 是 664,alex 也 cd 不进去,根本看不到 file1,更谈不上修改。 目录至少需要 x 权限才能访问内部文件。
三、工程最常用权限场景(服务器运维标准规范)
1. 普通配置文件、日志、文本(*.conf *.txt *.log):644 rw-r--r--
- 所有者读写,组和其他人只能查看,不能篡改
- 示例:nginx.conf、/etc/profile、普通日志文件
bash
chmod 644 /etc/nginx/nginx.conf
2. 需要同组成员协同编辑的共享文件:664 rw-rw-r--(本题场景)
开发组多人同组,所有人都能修改文件,外部人员仅可读
bash
chmod 664 /data/dev/code.txt
3. 密钥、密码、隐私文件(id_rsa、shadow、数据库密钥):600 rw-------
最高安全标准,仅文件所有者能读写,组、其他人无任何权限,生产密钥强制 600
bash
chmod 600 ~/.ssh/id_rsa
4. 程序脚本、可执行二进制(sh、python、elf):755 rwxr-xr-x
所有者可读写执行,组和其他人可读可执行,不可修改
系统命令、启动脚本统一 755
bash
chmod 755 /usr/bin/nginx start.sh
5. 共享目录、网站根目录(文件夹必须带 x):755 rwxr-xr-x
目录必须有 x 才能进入,网站目录标准权限
bash
chmod 755 /var/www/html
6. 团队共享协作目录(多人读写上传文件):770 rwxrwx---
仅所有者 + 同组可读写进入,外部用户完全禁止访问,企业项目目录首选
bash
chmod 770 /data/project
7. 高危权限 777(生产严禁使用)
所有用户读写执行,任何用户都能删除篡改文件,安全漏洞,仅临时本地测试偶尔用。
四、配套修改权限 / 归属命令(实操必用)
1. chmod:修改数字 / 符号权限
bash
# 数字修改
chmod 664 file1
# 符号写法(给组增加写权限,本题等价操作)
chmod g+w file1
# 去掉其他用户所有权限
chmod o-rwx file1
2. chown:修改文件所有者、所属组(常搭配权限使用)
bash
# 所有者tom,组users
chown tom:users file1
# 仅改组
chown :users file1
3. 查看权限
bash
ls -l file1
ls -ln file1 # 显示UID/GID数字,不显示用户名
| 参数 | 对应英文 | 作用 | 口诀 |
|---|---|---|---|
-d |
directory | 修改家目录 | d = 目录,改路径 |
-e |
expire | 修改账号过期时间 | e = 到期,管过期 |
-aG |
append group | 追加附属用户组 | a = 追加,加组员 |
第二十题

| 字段序号 | 示例内容 | 字段名称 | 详细说明 |
|---|---|---|---|
| 1 | root | 登录用户名 | 用户登录系统使用的账号名,root 是超级管理员账号 |
| 2 | x | 密码占位符 | x 表示密码加密内容存放在 /etc/shadow;为空代表无登录密码 |
| 3 | 0 | UID(用户 ID) | 用户数字标识,root 固定 0;1~999 为系统账号;≥1000 为普通登录用户 |
| 4 | 0 | GID(主组 ID) | 用户默认所属主组的数字 ID,对应 /etc/group 文件 |
| 5 | root | 用户注释信息 | 备注字段,可填写姓名、部门、联系方式,无强制格式 |
| 6 | /root | 用户家目录 | 登录后默认进入的目录,普通用户默认路径 /home/用户名 |
| 7 | /bin/bash | 默认登录 Shell | 用户登录后运行的命令解释器;/bin/bash 可交互登录;/sbin/nologin 禁止账号登录 |
第二十二题

chattr命令


实操演示区分:
bash
# 给文件加a属性
chattr +a test.log
# 追加内容,正常成功
echo "新增日志" >> test.log
# 覆盖原有内容,直接报错
echo "覆盖" > test.log
# 删除文件,报错无法删除
rm -f test.log
# i属性完全锁死,连追加都不行
chattr +i test.txt
echo 123 >> test.txt # 权限拒绝
rm test.txt # 权限拒绝
生产环境高频使用场景(运维每天都会用到)
场景 1:系统日志防篡改(最主流)
/var/log/ 下系统日志、业务日志,防止黑客、误操作清空日志销毁操作痕迹
bash
# 给系统安全日志开启追加属性
chattr +a /var/log/secure
chattr +a /var/log/messages
场景 2:关键业务审计文件
企业操作记录、充值流水、登录审计记录,只能新增记录,不能删除修改历史数据,保证数据不可篡改。
场景 3:防止重要文件被误删 / 覆盖
服务器配置说明、备案材料、密钥说明文档,允许补充备注,但不能删除、覆盖原有文字。
4. 配套完整实操命令(生产常用)
bash
# 1. 给文件开启追加属性
chattr +a file.log
# 2. 取消追加属性(必须root才能执行)
chattr -a file.log
# 3. 查看文件扩展属性,确认a是否生效
lsattr file.log
# 输出示例:-----a------- file.log 代表已开启a属性
# 4. 递归给目录下所有日志加a属性
chattr -R +a /var/log/xxx/
第二十三题

A /etc/services 存储系统端口与服务名映射表(如 80 对应 http、22 对应 ssh),和磁盘挂载完全无关,排除。

B /etc/sysctl.conf Linux 内核运行参数配置文件(调整 TCP 连接、内存、端口上限等内核调优项),不管理磁盘,排除。

3. C /etc/fstab(正确) File System Table,文件系统挂载表。系统开机时自动读取此文件,按里面的配置自动挂载磁盘 / 分区 / 网络存储,所有 Linux 发行版(银河麒麟、CentOS、Ubuntu)通用。

4. D /etc/crontab 系统级定时任务配置文件,用来设置定时执行脚本 / 命令,和磁盘无关,排除。

磁盘挂载
1. 底层原理:Linux 所有磁盘分区必须挂载才能读写
Linux 没有 Windows "C 盘 D 盘" 盘符概念,所有硬盘分区都要挂载到一个目录下才能访问文件。
- 系统根分区
/、/boot、swap 交换分区,安装系统时自动写入 fstab,开机自动挂载,你看不到手动操作; - 新加的数据盘、第二块硬盘、U 盘、NAS 网络存储,不会自动写入 fstab ,重启后挂载失效,必须手动写进
/etc/fstab实现永久开机挂载。
2. VMware 虚拟机为什么没手动操作?
- 安装麒麟系统时,安装程序自动把系统分区(/、/boot、swap)写入
/etc/fstab; - 你平时只用系统盘,开机自动挂载,不用手动配置,感知不到;
- 如果你在 VMware 新增一块虚拟硬盘,重启后会消失挂载,这时就必须修改
/etc/fstab。
3. 实体服务器是否需要配置?
分两种情况:
- 系统自带硬盘(装系统的盘):装机时自动写入 fstab,无需手动操作;
- 业务数据盘、扩容硬盘、阵列盘 :必须手动写入
/etc/fstab,否则服务器重启后磁盘消失,业务数据无法访问。 企业实体服务器几乎都会配置多块数据盘,是运维高频操作。

bash
# 第一行:系统根分区 /
/dev/mapper/klas\_bogon-root / xfs defaults 0 0
# 第二行:/boot 启动分区,存内核、引导文件
UUID=f5e18d8e-fe45-4581-9d6a-74456cc3eeb6 /boot xfs defaults 0 0
# 第三行:swap交换分区,虚拟内存
/dev/mapper/klas\_bogon-swap none swap defaults 0 0
通用 6 字段模板(每行统一结构)
设备标识 挂载点 文件系统类型 挂载参数 dump备份标记 fsck自检优先级







梳理blkid的内容

先梳理整机磁盘硬件结构:你的服务器只有一块物理硬盘 /dev/sda,分了 2 个分区:




硬盘、分区、挂载









场景:服务器磁盘根目录 / 爆满,新增一块物理硬盘










xfs_growfs:给已经在用、存有数据的 XFS 文件系统「扩大容量」,只扩容、不删除原有数据;mkfs.xfs:给空白裸设备「新建格式化文件系统」,会清空设备里所有数据,是从零创建文件系统。
第二十五题

| 指令 | 全称 | 功能说明(考试 + 工程重点) |
|---|---|---|
| m | menu | 打印全部帮助菜单,忘记指令就输 m |
| p | 打印当前硬盘分区表(本题考点,看 * 引导标记) | |
| n | new | 新建分区(主 / 扩展 / 逻辑分区) |
| d | delete | 删除已有分区(高危!数据全部清空) |
| a | activate boot | 切换分区的可引导标记 (输入 a 后选分区,分区 p 输出会出现 / 消失*) |
| t | type | 修改分区类型 ID(比如改成 8e=LVM 分区) |
| w | write | 保存分区表并退出,不输入 w 所有操作不生效 |
| q | quit | 不保存修改,直接退出,放弃所有分区操作 |
关键风险提醒
- 所有分区操作,不输入 w 写入磁盘就不会生效;改错输 q 直接退出即可撤销;
- 删除分区 d、修改分区类型 t、新建 n,一旦 w 保存,原有分区数据极易损坏。
LVM 不能直接拿整块裸硬盘做 PV,但行业运维规范是「先分区再做 LVM」;你也能整块硬盘直接做 PV,只是生产不推荐。分区和 LVM 是两层完全独立的技术,分工完全不一样。

完整实操:新增 20G 硬盘 /dev/sdb,整块划分分区作为 LVM 原材料












第二十六题




df + du 配套完整故障流程(企业最标准磁盘爆满处理流程)

第二十八题



bash
tzselect
# 执行完按提示写入环境变量,永久生效
echo "export TZ='Asia/Shanghai'" >> /etc/profile
# 软链接时区文件(最稳定的修改时区方式)
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

第二十九题






第三十题

RAID




RAID6 完整存储原理



| 项目 | RAID5 | RAID6 |
|---|---|---|
| 校验数量 | 1 套 P 校验 | 2 套:P+Q 双校验 |
| 最低硬盘 | 3 块 | 4 块 |
| 最大容错 | 仅允许同时坏 1 块盘 | 允许同时损坏 2 块硬盘 |
| 容量损耗 | 永久扣除 1 块盘容量存校验 | 永久扣除 2 块盘容量存双校验 |
| 写入性能 | 较好,只计算 1 次校验 | 偏弱,每次写入要计算两套校验,CPU 开销更大 |
| 适用场景 | 硬盘数量少(3-4 块)、中小型存储 | 硬盘数量多(6/8/12 块大容量存储柜、监控盘) |
RAID10 完整深度讲解





第三十一题




第三十二题




第三十三题


第三十五题


第三十六题


第三十八题

nmcli工具



nmcli 生产常用实操示例



bash
# 1. 设置手动静态地址、网关、DNS
nmcli connection modify ens38 \
ipv4.method manual \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "223.5.5.5,114.114.114.114"
# 2. 重载网卡配置,立即生效(永久保存,重启不丢)
nmcli connection up ens38
场景 3:切换 DHCP 自动获取 IP
bash
nmcli connection modify ens38 ipv4.method auto
nmcli connection up ens38
场景 4:启停网卡(断网 / 重连)
启用网卡
bash
nmcli connection up ens38
断开网卡
bash
nmcli connection down ens38
场景 5:给单网卡增加第二个 IP(多 IP 业务场景)
网卡 ens38 原有 192.168.1.100,追加 192.168.1.101/24
bash
nmcli connection modify ens38 +ipv4.addresses 192.168.1.101/24
nmcli connection up ens38
加号
+代表追加,不加会覆盖原有 IP

第三十九题



scp 基础示例(本地传到远程)
bash
scp test.log root@192.168.1.100:/data/
- 加
-C参数开启传输压缩,进一步降低带宽占用,资源消耗依旧可控; - 生产小文件批量拷贝优先 scp,超大文件增量同步用 rsync(rsync 资源开销更高)。
第四十题

/etc/fstab:系统配置文件,用来规定开机自动挂载哪些分区(规则表)
/boot:硬盘上的一个独立分区(物理存储分区)
核心联系
/boot 分区想要开机自动加载,就要在 /etc/fstab 里写一行挂载规则;
没有 fstab 配置,系统开机不会自动挂载 /boot(只有系统安装时会默认写入)。


bash
# 第1行:根分区,第一列是 LVM逻辑卷路径 /dev/mapper/xxx
/dev/mapper/klas_bogon-root / xfs defaults 0 0
# 不是 sda2,是LVM上层虚拟设备,不属于"磁盘分区名"
# 第2行:/boot分区,第一列是 UUID,不是 /dev/sda1
UUID=f5e18d8e-fe45-4581-9d6a-74456cc3eeb6 /boot xfs defaults 0 0
# 这里完全没写 sda1,照样合法开机挂载
# 第3行:swap交换分区,LVM逻辑卷
/dev/mapper/klas_bogon-swap none swap defaults 0 0

第四十一题


| 符号 | 含义 | 示例 |
|---|---|---|
. |
匹配任意单个字符(除换行) | a.b → 匹配 a1b、axb、a#b,不匹配 ab |
[abc] |
匹配括号内任意 1 个字符 | [0-9] 单个数字;[a-z] 单个小写字母;[A-Z] 单个大写 |
[^abc] |
匹配不在括号里的任意单个字符(取反) | [^0-9] 匹配非数字字符 |
\d |
等价 [0-9],单个数字 |
\d\d 匹配两位数字 |
\w |
等价 [a-zA-Z0-9_],单个字母 / 数字 / 下划线 |
匹配用户名、变量名字符 |

| 符号 | 含义 | 示例 |
|---|---|---|
* |
匹配前面字符 0 次、1 次、多次(可有可无,随便多少) | a* → 空、a、aa、aaa 都匹配 |
+ |
匹配前面字符 至少 1 次(不能没有) | a+ → a、aa、aaa,不匹配空 |
? |
匹配前面字符 0 次或 1 次(可有只能有一个) | a? → 空、a,不匹配 aa |
{n} |
精确匹配 n 次 | \d{4} 匹配 4 位数字(年份 2026) |
{n,} |
匹配至少 n 次 | \d{6,} 6 位以上数字 |
{n,m} |
匹配 n~m 次之间 | \d{6,11} 6-11 位手机号 / QQ 号 |
对应你上一题坑点
[a-z] 只代表1 个小写字母 ;如果要多个小写字母,必须写 [a-z]+ 或 [a-z]*





| RAID 类型 | 最小硬盘数量 | 容错能力 |
|---|---|---|
| RAID0 | 2 | 无,坏一块数据全丢 |
| RAID1 | 2 | 允许坏 1 块 |
| RAID5 | 3 | 允许坏 1 块 |
| RAID6 | 4 | 允许坏 2 块 |