# 1. /etc/fstab 写错导致系统无法启动的恢复路径,救援模式下如何只读修复 A 只要 fstab 有错,系统就一定起不来 B 修改 fstab 后无需验证即可重启 C fstab 推荐使用设备名 /dev/sdX 以防止挂载失败 D 应通过救援模式进入,只读转 rw 后用 blkid 核实 UUID 并 mount -a 验证 ✓ 正确答案
# 2. /proc/sys/fs/file-max 与 /proc/sys/fs/nr_open 在 fd 限制的层级关系 A file-max 约束系统总 fd,nr_open 是单进程 fd 的绝对硬上限,提升需两级同时满足 ✓ 正确答案 B file-max 是单进程上限,nr_open 是系统总量 C nr_open 永远小于 file-max 才有意义 D 修改 ulimit 即可突破 nr_open
# 3. /proc、/sys、/dev 三个虚拟文件系统分别承担什么职责 A /proc 用于存放设备节点 B /proc 侧重进程与内核状态,/sys 侧重设备与驱动模型,/dev 是设备节点文件 ✓ 正确答案 C /sys 存放进程运行时信息 D /dev 用于调整内核参数
# 4. LVM snapshot 与文件系统 snapshot 在备份场景的差异 A 两者机制完全相同 B LVM 快照不占空间 C LVM 是块层 COW 快照需预留空间,文件系统快照更省空间且一致性更好,需按场景选择 ✓ 正确答案 D 文件系统快照无法保证一致性
# 5. Linux ACL 与 POSIX 权限的兼容性与冲突处理 A ACL 是 POSIX 权限的超集,mask 限制命名用户/组的最大有效权限,chmod 会更新 mask ✓ 正确答案 B ACL 与 POSIX 权限互不兼容 C chmod 不会影响 ACL D mask 不影响任何 ACL 条目
# 6. Linux 中 df -i 与 df -h 输出不一致时如何判断根因 A 二者必然一致 B df -i 满而 df -h 未满说明 inode 耗尽,多因海量小文件,需清理小文件或重建加大 inode ✓ 正确答案 C df -i 满一定是空间不足 D inode 耗尽无法处理
# 7. Linux 中 inode 耗尽、文件描述符耗尽、磁盘配额满三类故障如何快速区分 A 按报错关键字结合 df -h/df -i/ulimit/quota 区分:inode 耗尽、fd 耗尽、配额满各有不同 ✓ 正确答案 B 三者报错完全相同 C inode 耗尽报 Too many open files D 磁盘配额满时 df -h 必为 100%
# 8. Linux 文件权限 rwx 三组分别控制什么,目录的 x 位为何与读文件不同 A 目录 x 位表示执行文件 B 目录 x 位表示"可进入/搜索",删除文件需目录 w+x 而非文件自身写权限 ✓ 正确答案 C 目录只有 r 即可完全访问 D 文件 x 位与目录 x 位意义相同
# 9. chmod 777 在生产环境为何是高危操作,何时只能用于临时调试 A 777 权限非常安全 B 777 使任意用户可写可执行,易被篡改/提权,生产应避免,仅临时调试并尽快收紧 ✓ 正确答案 C 777 只影响 owner D 生产环境应广泛使用 777 避免权限问题
# 10. chown、chgrp、umask 三者如何配合确保新建文件的默认权限安全 A 三者互不影响 B 用 777 即可替代 umask C chown/chgrp 定归属配属组授权,umask 定默认权限门槛,配合 setgid 目录实现安全共享 ✓ 正确答案 D umask 只影响 root 用户
# 11. fdisk、gdisk、parted 在 MBR 与 GPT 上的差异 A MBR 支持 2TB 以上磁盘 B fdisk 只能操作 GPT C GPT 支持 >2TB 与多分区,自动化用 parted,交互精细操作用 fdisk/gdisk ✓ 正确答案 D gdisk 只能操作 MBR
# 12. find 与 xargs、find -exec 的区别,删除百万级文件时如何避免参数过长 A rm *.log 一定能处理百万级文件 B 百万级文件用 find -print0 | xargs -0 分批或 find -delete 内建删除,避免参数过长与特殊字符 ✓ 正确答案 C -exec \; 是最高效方式 D xargs 无法分批处理
# 13. grep、egrep、fgrep、固定字符串与 PCRE 在性能与可维护性上的取舍 A 字面量匹配用 -F 最快最准,结构匹配用 -E,复杂匹配才用 -P 并注意性能 ✓ 正确答案 B fgrep 会解释正则 C -P 最省性能 D grep 默认使用扩展正则
# 14. mount 的 noexec、nosuid、nodev 三类安全挂载选项分别在哪些场景启用 A noexec 允许执行目录内程序 B noexec 防执行、nosuid 防提权、nodev 防伪设备,常用于 /tmp、/dev/shm 等用户可写目录 ✓ 正确答案 C nosuid 用于禁止网络 D nodev 禁止挂载任何文件系统
# 15. sed 与 awk 在字段切分、流式处理与状态机场景下的选型差异 A awk 擅长行级替换 B sed 适合行级编辑替换,awk 适合字段切分与状态机/统计 ✓ 正确答案 C sed 无法做任何编辑 D awk 不能处理字段
# 16. setuid、setgid、sticky bit 三类特殊位分别在哪些场景使用 A sticky bit 用于提权 B setgid 只影响可执行文件 C setuid 提权、setgid 目录继承属组供共享、sticky bit 保护公共目录内文件防删除 ✓ 正确答案 D sticky bit 与目录无关
# 17. umask 计算默认权限时为何对目录与文件行为不同 A 文件与目录默认基准都是 777 B umask 只影响文件不影响目录 C 文件默认含执行位 D 文件默认 666、目录默认 777,故同 umask 下文件不含 x 位而目录含 x 位 ✓ 正确答案
# 18. 大文件日志按时间切割的 rotate 策略,logrotate 的 copytruncate 与 create 模式选哪种 A copytruncate 不会丢数据 B 应用支持 reopen 时用 create 更可靠,无法 reopen 时才用 copytruncate 并接受少量数据丢失 ✓ 正确答案 C create 模式无需应用配合 D 大文件日志应禁用 rotate
# 19. ACL mask 在 ACL 中的最大有效权限语义与误用陷阱 A mask 会增加权限 B mask 限制 owner 权限 C mask 是命名用户/组/group 位的最大有效权限上限,chmod 会重算 mask 导致权限收窄 ✓ 正确答案 D mask 与 group 位无关
# 20. GNU find 的 -print0 与 xargs -0 的工程意义,避免文件名包含特殊字符崩溃 A 两者都按换行分隔 B 特殊字符文件名无需特殊处理 C -0 会让文件名被拆分 D -print0 用 NUL 分隔、-0 按 NUL 解析,可安全处理含空格/换行/引号的文件名 ✓ 正确答案
# 21. Linux 中 ext4 多块分配与延迟分配的影响 A 多块/延迟分配提升性能减少碎片,但延迟落盘带来掉电丢数据风险,需 fsync 保证持久性 ✓ 正确答案 B 延迟分配立即落盘 C 延迟分配没有一致性影响 D 多块分配只影响小文件
# 22. Linux 文件的 ctime、mtime、atime 分别代表什么及典型修改场景 A ctime 是文件创建时间 B 读文件会更新 mtime C chmod 只更新 mtime D mtime 是内容修改时间,ctime 是状态变更时间且不可手动设置,atime 是访问时间 ✓ 正确答案
# 23. Linux 文件系统 journaling 模式 data=ordered/writeback/journal 的崩溃一致性边界 A ordered 保证数据先于元数据落盘是默认,writeback 只日志元数据,journal 数据也入日志最安全 ✓ 正确答案 B writeback 保证数据与元数据一致 C journal 模式性能最好 D 三种模式一致性完全相同
# 24. Linux 软 RAID mdadm 与硬件 RAID 在文件系统层的差异 A 文件系统能看出底层 RAID 类型 B 硬件 RAID 一定有最高性能 C 软 RAID 不占 CPU D 软/硬 RAID 都对文件系统呈现为块设备,差异在实现层与缓存/fsync 语义,软 RAID 用 mdadm 管理 ✓ 正确答案
# 25. POSIX 文件能力与 setuid 二进制的能力赋权差异 A setuid 不提升权限 B setuid 是整体提权,file capabilities 只授特定能力实现最小权限,是更安全的加固方式 ✓ 正确答案 C file capabilities 比 setuid 权限更大 D 两者机制完全相同
# 26. POSIX 文本文件末尾换行的工程意义与 git diff 的表现 A 末尾换行无意义 B 末尾换行会导致 diff 错误 C git diff 看不出末尾换行 D POSIX 行以换行结尾,缺末尾换行会触发 git diff 的"\ No newline"标记并引起无意义变更,应统一保留 ✓ 正确答案
# 27. bash、dash、zsh 在脚本场景下的差异,sh 链接到 dash 的兼容性 A dash 支持 bash 数组 B Debian 系 /bin/sh 是 dash,脚本用 bash 特有语法时需声明 #!/bin/bash 否则报错 ✓ 正确答案 C zsh 是默认脚本解释器 D sh 一定是 bash
# 28. chattr +i、+a 的工作机制与对 root 提权的影响边界 A +i 只对普通用户生效 B +i 使文件不可变、+a 只追加,对 root 也生效,是加固手段但需 root 解除且受文件系统支持限制 ✓ 正确答案 C root 可无需解除直接写入 +i 文件 D chattr 对所有文件系统都完全支持
# 29. chflags 在 BSD 与 chattr 在 Linux 的等价性差异 A 功能等价但命令与属性名不同(uchg/i 等),且支持的文件系统与权限语义有差异 ✓ 正确答案 B 两者命令完全相同 C chattr 的 s 位在 Linux 一定支持 D NFS 完全支持 chattr 全部属性
# 30. column、pr、tsv 在文本对齐与展示上的应用 A column 对齐列、pr 分页分栏、tsv 是 tab 分隔数据格式,三者用于不同展示/处理需求 ✓ 正确答案 B column 用于分页 C pr 用于对齐列 D tsv 是分页工具
# 31. cp -a、cp -r、cp -L 区别,保留权限与硬链接时为何用 cp -a A cp -r 保留所有属性 B cp -L 保留符号链接 C cp -a 递归并保留权限/时间戳/符号链接/硬链接,备份迁移应使用;cp -r 只递归,cp -L 解引用链接 ✓ 正确答案 D cp -a 与 cp -r 完全相同
# 32. diff、patch 在配置漂移检测中的作用,patch 失败时如何 dry-run A patch 用于找差异 B diff 无法检测漂移 C dry-run 会实际修改文件 D diff 比较期望与实际配置发现漂移,patch 应用补丁,可用 --dry-run 预检避免改坏文件 ✓ 正确答案
# 33. envsubst、gettext 在配置文件模板替换中的差异 A 两者都做变量替换 B envsubst 做运行时环境变量模板替换,gettext 做多语言翻译,用途不同 ✓ 正确答案 C gettext 用于替换环境变量 D envsubst 用于国际化
# 34. fallocate、truncate、dd 在创建稀疏文件时的差异 A dd 默认创建稀疏文件 B truncate 创建空洞(稀疏)省空间,fallocate 默认预分配(-n 只保持长度),dd 默认真实写入(seek 可建空洞) ✓ 正确答案 C fallocate 默认不占空间 D truncate 无法创建指定大小文件
# 35. filefrag、xfs_info、dumpe2fs 查看碎片与文件系统元数据的差异 A filefrag 查看文件系统元数据 B dumpe2fs 用于 xfs C filefrag 看单文件碎片(通用),dumpe2fs 看 ext 元数据,xfs_info 看 xfs 元数据 ✓ 正确答案 D xfs_info 用于 ext4
# 36. grep --color 与 ripgrep --color 在终端输出上的取舍 A rg 默认无颜色 B grep 需显式 --color,rg 默认彩色且性能更好,管道输出时两者都需注意颜色处理 ✓ 正确答案 C grep 性能一定优于 rg D rg 无法递归搜索
# 37. less、more、tail -f 与 journalctl -f 在跟踪日志时的差别 A less 分页浏览、tail -F 实时跟踪文件追加(rotate 不中断)、journalctl -f 跟踪 systemd 日志并可过滤 ✓ 正确答案 B tail -f 能过滤服务 C journalctl 无法实时跟踪 D more 支持向后翻页
# 38. mktemp 在创建临时文件时的安全实践,避免 /tmp 竞争 A 用固定文件名即可 B /tmp 无竞态风险 C mktemp 生成随机唯一名避免 TOCTOU 竞争,创建后立即使用并 trap 清理,防止符号链接攻击 ✓ 正确答案 D mktemp 默认 0777 权限
# 39. mount --bind 将目录绑定到 NFS 挂载点时的行为与风险,以及 bind 后挂载选项与安全位如何继承、NFS 与本地文件系统权限语义差异如何排查 A bind 后自动继承安全位 B bind 后安全位需显式 remount 收紧,NFS 权限受导出选项与 root_squash 影响,需 findmnt/stat 排查 ✓ 正确答案 C bind 改变底层文件系统 D NFS 与本地 chmod 语义完全相同
# 40. mount --make-shared/--make-private/--make-slave 在容器命名空间的传递 A slave 双向传播 B 传播只影响容器 rootfs C private 会传播到其他命名空间 D shared 双向传播、private 双向隔离、slave 单向(master 到 slave),容器用其控制卷挂载可见性 ✓ 正确答案
# 41. rename.ul 在批量重命名时的可用性与替代方案 A rename.ul 仅做简单替换,正则需 perl rename,复杂规则可用 shell 循环 + mv 或 mmv ✓ 正确答案 B rename.ul 支持正则 C 所有发行版 rename 都相同 D mv 无法批量重命名
# 42. sed -i 在 GNU/BSD 的差异,备份后缀 -i.bak 的兼容性 A 两者语法完全相同 B GNU 允许 -i 无后缀,BSD 必须带备份后缀,用 -i.bak 可跨平台兼容 ✓ 正确答案 C BSD -i 无后缀也合法 D GNU 不支持 -i.bak
# 43. set -euo pipefail 在脚本中的工程价值,为何单独 set -e 不够 A set -e 已完全足够 B nounset 会允许未定义变量 C pipefail 检查多个命令全部成功 D 单独 set -e 会漏掉管道中前段命令失败与未定义变量,需 pipefail+nounset 组合才健壮 ✓ 正确答案
# 44. shell 变量 IFS 与引号误用导致的 word splitting 问题如何避免 A 未加引号的变量按 IFS 拆成多词,加双引号可阻止 word splitting 与 globbing ✓ 正确答案 B 未加引号的变量不会被拆分 C IFS 对加引号变量也生效 D word splitting 无安全风险
# 45. sort、uniq、awk 三者组合做日志去重的常见坑,时间字段排序为何要 -k1.5 A uniq 只相邻去重需先 sort,时间字段用 -k1.5 从第 1 字段第 5 字符排序,awk 关联数组可免排序去重 ✓ 正确答案 B uniq 无需先排序 C sort 默认按第二字段排序 D awk 无法去重
# 46. sudoedit 与 visudo 在特权文件编辑的安全边界 A sudoedit 用临时副本隔离编辑防提权,visudo 校验 sudoers 语法防止锁死系统 ✓ 正确答案 B sudoedit 让编辑器以 root 运行 C visudo 无语法校验 D sudoedit 直接编辑原文件
# 47. tail -F 与 tail -f 在日志被 rotate 后行为差异,为什么推荐 -F A tail -f 按 inode 跟踪,rotate 后停旧文件;tail -F 按文件名自动重开新文件,日志轮转场景推荐 -F ✓ 正确答案 B 两者 rotate 后行为相同 C tail -F 不支持重试 D -f 比 -F 更推荐
# 48. tar、cpio 与 rsync 在备份场景的差异及稀疏文件、硬链接、增量与带宽控制如何取舍 A tar 无法打包 B tar 支持带宽控制 C rsync 不能增量 D tar 归档打包、rsync 增量/校验/带宽控制、cpio 底层归档,稀疏/硬链接需各自显式选项处理 ✓ 正确答案
# 49. truncate、dd、shred 在清空或销毁磁盘数据时各自的安全级别与差异 A truncate 能安全销毁数据 B shred 对 SSD 绝对安全 C 单次覆盖对 SSD 一定彻底 D truncate 仅逻辑清空、dd 覆盖、shred 多次覆盖更安全,但 SSD 需 blkdiscard/设备级安全擦除 ✓ 正确答案
# 50. umask 027 与 umask 077 在多用户系统的安全等级差异 A 两者都允许组内读 B 027 允许其他用户写 C 027 组内可读(640/750),077 仅属主可访问(600/700),077 更安全,027 用于组内共享 ✓ 正确答案 D 077 允许同组写
# 51. umask 在 systemd unit 文件与登录脚本中的取值差异 A 登录脚本 umask 影响交互会话,systemd UMask 影响服务进程,服务需在 unit 显式设置 ✓ 正确答案 B 两者作用完全相同 C systemd 服务会加载 .bashrc D UMask 只影响登录用户
# 52. watch、stdbuf、unbuffer 让管道实时刷新如何配合使用 A unbuffer 增加缓冲 B stdbuf 让输出更慢 C watch 周期执行,stdbuf 关闭缓冲、unbuffer 用 PTY 模拟交互,配合实现命令输出实时刷新 ✓ 正确答案 D watch 无法周期刷新
# 53. xargs -I{} 与 -n1 的性能差异,为什么大数据集应避免 -I A -I{} 会批量合并参数 B -n1 一定比 -I{} 快 C -I{} 强制逐条执行、子进程开销大,大数据集应改 -n 批量合并参数提升性能 ✓ 正确答案 D -I{} 适合海量文件
# 54. xargs 与 parallel -j 在并行处理文件的性能差异 A xargs -P 与 parallel 功能相同 B parallel 无法并行 C xargs -P 简单并行,parallel 调度更精细(输出同步、重试、资源控制),复杂任务用 parallel ✓ 正确答案 D xargs 无法并行
# 55. 为什么 NFS 共享目录上的 chmod 行为可能与本地 ext4 不同 A NFS 权限与本地完全一致 B NFS 无权限模型 C NFS 受 root_squash 与 uid 映射影响,客户端 root 可能被映射为 nobody,与本地 ext4 权限语义不同 ✓ 正确答案 D root_squash 只影响普通用户
# 56. 为什么不应使用 chattr 给 /etc/passwd 加 +i,否则会影响用户创建 A +i 不影响用户管理 B +i 使 /etc/passwd 不可变,useradd 等写入失败无法创建用户,应改用权限控制与完整性监控 ✓ 正确答案 C useradd 不写 /etc/passwd D root 可绕过 +i 写入
# 57. 为什么脚本中 cat $file | grep 是不良写法,如何优化 A 该写法性能最优 B 变量无需加引号 C cat 是必须的 D 是 UUOC,grep 可直接读文件,且变量需加引号,应改为 grep pattern "$file" ✓ 正确答案
# 58. 在 CI 中调用 bash 的 -x、-v、set -o nounset 如何选择 A CI 应常开 -x 输出全部 B nounset 会忽略未定义变量 C CI 默认 set -euo pipefail 保证健壮,-x 按需调试(注意敏感信息),-v 查原始行 ✓ 正确答案 D -x 会隐藏变量值
# 59. 文件系统选型 xfs、ext4、btrfs 在大文件、快照、压缩场景下如何决策 A xfs 适合小文件 B 所有场景都用 ext4 C btrfs 无快照 D xfs 适合大文件/大容量,ext4 通用稳定,btrfs 原生支持快照与压缩,需按场景决策 ✓ 正确答案
# 60. Linux 中 file 命令如何识别 ELF、shebang、文本编码 A file 依赖扩展名判断 B file 只能识别文本 C file 通过 magic 内容识别 ELF/shebang/编码,-i 显示 MIME 与 charset ✓ 正确答案 D file 无法识别 ELF
# 61. hexdump、xxd、od 在二进制分析时各自的特性 A od 默认十六进制输出 B xxd 无法反转 C hexdump 格式自定义最强、xxd 支持 -r 反转、od 是 POSIX 标准兼容,按需选型 ✓ 正确答案 D od 默认八进制因此不能用于二进制
# 62. lsattr 的常见属性位 a、c、d、i、j、s、t、u 的工程含义 A a 位表示不可变 B a 只追加、i 不可变、d 备份排除、s 安全删除、u 可恢复,但受文件系统支持限制 ✓ 正确答案 C i 是只追加 D s 位所有文件系统都支持
# 63. lsof -i、ss -tulpn、netstat 在新版本系统中为何逐渐被 ss 取代 A ss 通过 netlink 直接读内核、性能好,适合高并发,netstat/lsof 遍历 /proc 较慢 ✓ 正确答案 B netstat 性能更优 C ss 无法查连接 D lsof 与 ss 功能完全相同
# 64. rename 与 mv 在批量重命名时如何选择,为什么 mv 不能跨设备 A mv 跨设备总是原子 B mv 跨设备不复制数据 C rename 用于单文件移动 D mv 单文件移动/重命名,同设备改目录项原子、跨设备需复制+删除,rename 专用于批量改名 ✓ 正确答案
# 65. script 与 asciinema 在录屏时的文件大小与可检索性差异 A script 是 JSON 格式 B asciinema 回放差 C script 是文本可 grep 检索但含控制字符,asciinema 是 JSON 体积小回放精确但检索需解析 ✓ 正确答案 D script 无法回放
# 66. script、ttyrec、asciinema 录制终端会话的差异与回放 A 三者格式相同 B ttyrec 无法回放 C asciinema 用于文本取证 D script 文本+scriptreplay、ttyrec 专用格式+ttyplay、asciinema JSON+asciinema play,各有回放方式 ✓ 正确答案
# 67. stat、file、file -i 与 hexdump 在判断文件类型与编码时各自用途 A stat 判断文件内容类型 B hexdump 判断编码 C file 依赖扩展名 D stat 看元数据、file 判断类型、file -i 看编码/MIME、hexdump 看原始字节 ✓ 正确答案
# 68. tmpfs、devpts、proc、sysfs 的默认挂载参数错误引发的故障 A tmpfs size 过小致内存/临时文件不足,devpts gid/mode 错致 PTY 不可用,proc/sysfs 需正确挂载 ✓ 正确答案 B tmpfs 大小参数无影响 C devpts 无需挂载 D proc 参数永不引发故障
# 69. 为什么大文件场景应避免使用 vim 直接编辑,如何用 split/tee/sponge 改写 A vim 适合任意大文件 B sponge 会原地截断 C vim 整文件加载内存不适合大文件,应用 split 切分、sed/awk 流式、sponge 原子写回避免损坏 ✓ 正确答案 D 大文件必须用 vim
# 70. 为什么大目录 rm -rf 会卡顿,如何用 rsync --delete 替代 A rm -rf 速度最快 B rsync --delete 会误删 C rm -rf 逐个删元数据卡顿,可先用 rsync --delete 空目录对拷或 mv 后后台删减少卡顿 ✓ 正确答案 D 大目录删除无法优化
# 71. 大循环中频繁 cat 文件的优化手段,read -r 与 while read 行尾空格问题 A 循环内频繁 cat 性能最优 B read 默认保留行尾空格 C 循环外读入内存避免循环内 cat,read -r 禁转义、IFS= 保留行尾空格 ✓ 正确答案 D -r 会解释反斜杠
# 72. 大文件复制的工具选型中 cp 与 rsync 在断点续传、校验与带宽控制上的差异,以及 dd 在裸设备复制中的适用场景 A cp 支持断点续传 B dd 用于文件级复制 C rsync 无带宽控制 D cp 简单无续传校验,rsync 支持断点续传/校验/带宽,dd 适合裸设备块级复制 ✓ 正确答案
# 73. 文件删除后空间未释放的常见原因,lsof 与 fuser 如何排查 A rm 后空间立即释放 B 有进程仍持有已删文件句柄导致空间不释放,用 lsof +L1 | grep deleted 定位进程并关闭/清空 fd ✓ 正确答案 C lsof 无法找已删文件 D 重启无法释放空间