第二章《目录和文件管理》全套测试题【20260424】004篇
文章目录
- Linux目录与文件管理 - 企业级技能评估题库 (100题)
- L1 基础认知 (20题)
- L2 初级实战 (20题)
- L3 中级工程 (20题)
- L4 高级专家 (20题)
- L5 DevOps/SRE深度实践 (20题)
《第二章 目录和文件管理》综合性评估题库。
Linux目录与文件管理 - 企业级技能评估题库 (100题)
题库结构说明:
- L1 基础认知 (20题):紧扣PPT,评估对命令、概念、格式的准确理解。
- L2 初级实战 (20题):模拟初级运维/开发工程师日常工作,考察基础命令组合与应用。
- L3 中级工程 (20题):面向运维工程师/SRE,考察系统管理、排错、脚本编写能力。
- L4 高级专家 (20题):面向高级SRE/架构师,考察复杂场景设计、性能调优、高可用架构思维。
- L5 DevOps/SRE深度实践 (20题):聚焦自动化、可观测性、混沌工程等现代运维工程实践。
L1 基础认知 (20题)
考察点:命令格式、核心概念、基础操作。所有答案均严格基于PPT内容。
选择题:Linux命令行格式中,用于调节命令具体功能的组件是?
A) 命令字
B) 选项
C) 参数
D) 管道判断题:
gzip和bzip2命令的压缩算法相同,只是压缩级别不同。( )填空题:在
tar命令中,用于创建归档文件的选项是____,用于解开归档文件的选项是____,调用gzip进行压缩解压的选项是____。选择题:在vi编辑器中,要从命令模式切换到输入模式,可以按哪个键?
A):
B)i
C)Esc
D)dd简答题:请解释
grep命令中-i和-v选项分别代表什么功能?命令匹配:将左侧命令与右侧其最准确的功能描述连线。
head -n 5-> 查看文件结尾部分tail -f-> 查看文件开头5行wc -l-> 统计文件行数less-> 实时跟踪文件新增内容more-> 可前后翻页查看文件
填空题:在命令行中,按下
_______键可以自动补全命令或文件名;按下Ctrl + L可以_______屏幕。选择题:以下哪个是获取
ls命令详细帮助信息的正确方法?(多选)
A)help ls
B)ls --help
C)man ls
D)info ls简答题:
cat命令和more命令在查看文件内容时的主要区别是什么?操作题:请写出将
/etc/passwd文件中的内容按页显示,并且能向前翻页查看的命令。判断题:
gunzip file.gz和gzip -d file.gz命令的效果是完全一样的。( )填空题:在vi的命令模式下,复制当前行的命令是
____,删除当前行的命令是____,撤销上一次操作的命令是____。选择题:管道符
|的作用是?
A) 将前一个命令的输出作为文件保存
B) 将前一个命令的输出作为后一个命令的输入
C) 顺序执行多个命令
D) 在后台运行命令简答题:
tail -n 20 file.log和head -n -20 file.log这两个命令的输出有什么不同?命令解释:请说明
tar -xzvf archive.tar.gz -C /opt/这个命令中每个选项和参数的具体含义。填空题:在vi的末行模式中,保存并退出的命令是
_______,强制退出不保存的命令是_______。选择题:哪个快捷键可以在输入命令时,快速删除从光标处到行首的所有字符?
A)Ctrl + K
B)Ctrl + U
C)Ctrl + W
D)Ctrl + A简答题:如何使用
grep命令在文件server.log中查找以“ERROR”开头的行?判断题:
find命令是Linux内部命令,因为它以‘f’开头。( )场景题:你手头有一个压缩包
source.tar.bz2,在不解压的情况下,想看看里面包含哪些文件,应该使用什么命令?
L2 初级实战 (20题)
考察点:在简单明确的运维/开发场景下,运用命令组合解决问题的能力。
日志分析:应用日志
/var/log/app/app.log不断增长。你需要每隔5秒查看一下日志的最后3行,以监控应用状态。请写出命令。文件管理:你需要清理
/tmp目录下超过7天且大小超过100MB的.tmp文件。请写出find命令。配置检查:检查Nginx配置文件
/etc/nginx/nginx.conf的语法是否正确。请写出命令。备份操作:将
/home/user/docs目录备份,要求打包成docs_backup.tar.gz,并保留所有文件属性。请写出命令,并解释如何验证压缩包完整性。文本处理:有一个CSV文件
data.csv,你需要提取其第二列(以逗号分隔)的所有数据,并排序去重。请写出命令链。搜索定位:在
/usr/share目录下,递归查找所有扩展名为.so的文件(动态库)。请写出命令。进程管理:发现一个名为“rogue_process”的进程消耗CPU过高,你需要找到它的PID并结束它。请写出命令步骤。
网络调试:如何快速检查本地服务器上的
80端口是否处于监听状态?请写出命令。用户管理:如何查看当前系统上有哪些用户拥有登录shell(如
/bin/bash)?请写出分析/etc/passwd的命令。磁盘空间:当前目录下哪个子目录占用的空间最大?请写出命令。
文件比较:有两个配置文件
config_v1.ini和config_v2.ini,请找出它们之间的差异。请写出命令。批量重命名:将当前目录下所有
.jpg文件的扩展名改为.jpeg。请写出命令。环境变量:如何持久地为自己添加
/opt/myapp/bin到PATH环境变量中?请说明步骤和需要修改的文件。计划任务:如何设置一个每天凌晨2点30分自动执行
/opt/scripts/backup.sh的计划任务?请写出crontab的条目。服务状态:如何查看系统上所有已启动的系统服务?请写出命令。
文件编码:你收到一个Windows生成的文本文件
win.txt,在Linux下打开时行尾有^M字符。如何将其转换为Unix格式?请写出命令。链接管理:为
/usr/local/jdk-17创建一个软链接/usr/local/java。请写出命令,并解释软链接和硬链接的一个关键区别。压缩优化:有一个非常大的日志文件
big.log(超过10GB),你想用最高压缩比将其压缩,但担心内存不足。你会选择gzip -9还是bzip2 -9?为什么?并写出你选择的压缩命令。安全扫描:如何快速找出系统中所有任何人都可以写的文件?请写出
find命令(忽略/proc,/sys等虚拟文件系统)。性能快照:如何抓取当前系统资源使用情况(CPU, 内存, IO, 网络)的一个“快照”?请写出命令。
L3 中级工程 (20题)
考察点:独立分析、解决典型系统问题,编写自动化脚本,具备安全与性能意识。
故障排查:用户报告通过SSH连接服务器非常慢,但连接建立后操作正常。请描述你的系统性排查思路,并列出每个排查点可能用到的关键命令。
根目录满:
/分区使用率突然达到100%,导致服务异常。请写出你的紧急排查和临时恢复的命令步骤。僵尸进程:系统监控发现大量僵尸进程。请解释僵尸进程产生的原因,并写出清理僵尸进程的命令或步骤。
too many open files:应用报错“Too many open files”。请写出查询和修改该系统级和用户级文件描述符限制的命令。权限修复:某人误执行了
chmod -R 777 /(在实际环境中绝对禁止),你作为备份管理员,需要从昨日的完整备份中恢复/etc目录的正确权限。请描述你的恢复思路和关键命令。日志切割:设计一个日志轮转方案,针对
/var/log/myapp/app.log,要求:- 当日志超过100MB时进行轮转。
- 保留最近10个压缩后的归档日志。
- 轮转后通知应用重新打开日志文件。
请写出实现此方案的logrotate配置文件片段。
网络连接分析:请写出命令,统计当前服务器上所有ESTABLISHED状态的TCP连接,并按目标IP地址进行连接数排序,列出前5个。
系统启动项:如何排查并禁用一个不需要的系统启动服务?请写出查看启动服务和禁用服务的命令。
sudo安全审计:如何查看所有用户使用sudo命令的历史记录?资源限制:如何为一个特定的运行进程(已知PID)动态调整其CPU使用权重(Nice值)?
Shell脚本:编写一个Shell脚本
clean_old_logs.sh,它接受两个参数:目录路径和保留天数。功能是删除该目录下修改时间超过保留天数的.log文件,并在删除前记录日志。入侵检测:如何检查系统中是否有命令二进制文件被替换(例如,
ls命令是否被植入了后门)?请写出检查思路和命令。性能分析:使用
dd命令测试磁盘/dev/sdb的顺序写性能(块大小1M,写入1GB数据)。请写出命令,并解释输出结果中“copied, s, MB/s”的含义。systemd服务:如何查看一个systemd服务(如nginx.service)的详细运行状态、依赖关系和本次启动的日志?时间同步:如何强制系统立即与NTP服务器同步时间?请写出命令。
批量部署:你需要将一份配置文件
app.conf推送到集群node{1..10}的/etc/myapp/目录下。假设已配置SSH免密登录,请写出一个简单的循环命令来完成此操作。动态调试:如何跟踪一个正在运行的应用进程(已知PID)发起的系统调用?请写出命令。
LVM扩容:简述在线为/home目录(位于LVM逻辑卷上)扩容10GB的步骤。不需要具体命令,描述关键操作阶段即可。安全加固:如何通过修改
ssh配置,禁止root用户直接登录,并强制使用密钥认证?请说明需要修改的配置文件和参数。容器基础:在宿主机上,如何找出一个Docker容器内进程在宿主机上对应的真实PID?
L4 高级专家 (20题)
考察点:设计复杂系统解决方案,进行深度性能调优,处理海量数据,具备高可用与容灾思维。
架构设计:设计一个集中式日志收集方案。描述如何将上百台服务器上
/var/log/app/*.log的日志,实时收集到中心服务器,并考虑日志的轮转、传输压缩、断点续传和初步分类。请列出可能用到的核心开源技术栈和Shell命令在其中扮演的角色。全链路追踪:一个微服务请求延迟很高,如何从操作系统层面(非APM工具)定位可能的瓶颈点?请描述你的分析路径,涵盖CPU、内存、磁盘I/O、网络和进程调度,并给出每个环节的关键观测命令。
容量规划:你负责的数据库服务器,磁盘使用率每月增长5%。请设计一个监控预警模型,不仅要预警空间不足,还要预测耗尽时间。你需要收集哪些数据?如何用Shell脚本和计划任务实现基础的数据收集与预测计算?
内核调优:针对一个高并发的Web服务器,你可能需要调整哪些内核参数来优化网络性能和连接处理?请至少列出3个参数及其调整方向(如
net.core.somaxconn,net.ipv4.tcp_tw_reuse),并说明在哪个文件中进行持久化修改。灾难恢复:描述一个基于Linux命令的、数据库(如MySQL)的“全量+增量”备份策略。请给出每周全备和每日增备的Shell脚本核心逻辑,并重点说明如何利用二进制日志(
binlog)进行增量恢复。性能压测:请用
stress-ng或原生命令,设计一个模拟以下混合压力的测试场景,并说明每个压力对应的命令:- CPU使用率达到80%
- 内存占用20GB
- 磁盘顺序写IO 100MB/s
- 产生100个僵尸进程
海量文件查找:在存有数亿个文件的目录中,执行
find . -name “*.dat“会非常慢甚至失败。你有什么替代方案来快速定位或统计特定类型的文件?请提出至少两种不依赖find遍历的思路。网络丢包:两台服务器间网络延迟正常,但传输大文件时速度不稳定且慢。请设计一个排查步骤,使用
ping,mtr,iperf3,tcpdump等工具,定位是带宽、丢包、重传还是窗口大小的问题。安全应急响应:怀疑服务器被入侵,黑客可能留下了后门或挖矿程序。请列出你的应急取证检查清单(至少5项),并写出对应的检查命令(如检查可疑进程、计划任务、授权密钥、最近修改的文件等)。
自动化部署:设计一个基于Git Hook的自动化部署流程。当代码推送到
production分支时,自动在测试服务器拉取代码,执行构建,将产物打包,然后分发到生产服务器集群。请用Shell脚本描述核心步骤。配置漂移:你管理着数百台服务器,如何定期检测它们的核心配置文件(如
/etc/ssh/sshd_config)是否与“黄金镜像”一致?请设计一个基于diff和md5sum的简单检测方案。存储优化:对于存放大量小图片(KB级别)的业务,使用
ext4文件系统可能会遇到什么性能问题?从文件系统块大小、inode数量等方面分析,并提出可能的解决方案或替代存储方案。cgroup应用:如何使用cgroup限制一组进程(如某个Java应用)的总内存使用不超过4GB,并在超出限制时触发OOM Killer终止该组进程?请写出使用systemd或cgcreate创建限制的大致步骤。时钟源:在虚拟化环境(如KVM)中,Linux客户机的时钟可能会漂移,影响对时间敏感的应用。如何检查当前系统的时钟源?如何将其切换为更稳定的
kvm-clock或tsc?内核转储:如何配置系统,使得当某个关键服务(如
mysqld)崩溃时,自动生成包含完整内存信息的内核转储文件(core dump),以方便后续调试?请说明需要设置的参数。审计溯源:启用Linux审计子系统
auditd,记录所有对/etc/passwd文件的读写尝试,以及所有执行的sudo命令。请写出相应的audit规则。资源隔离:简述如何使用
namespaces和cgroups技术,在不使用Docker的情况下,手动创建一个简单的“容器”环境,隔离一个进程的视图和资源。协议分析:使用
tcpdump捕获访问本机80端口的HTTP流量,并将结果输出为pcap文件,同时过滤出只包含“POST”请求的包。请写出命令。性能基准:为你的服务器建立一个性能基线。请设计一个脚本,定期(如每小时)收集CPU、内存、磁盘IO、网络流量、负载和关键进程资源占用的快照,并存入日志文件用于趋势分析。
弹性伸缩:设计一个简单的基于CPU利用率的自动水平伸缩逻辑(概念层面)。描述监控组件如何获取CPU数据,决策逻辑(如超过80%扩容,低于30%缩容),以及执行扩容/缩容时需要调用的脚本或API。
L5 DevOps/SRE深度实践 (20题)
考察点:可观测性体系构建、混沌工程、GitOps、容量与成本管理、工程效率提升。
可观测性三大支柱:如何仅用命令行工具和文本处理,为一段黑盒的批处理脚本生成简易的“指标”(Metrics)、“日志”(Logs)和“链路追踪”(Traces)数据?请举例说明(如:记录脚本开始结束时间、关键步骤输出、函数调用层次)。
错误预算:SRE强调错误预算。假设一个服务的SLO是每月可用性99.9%。请写出一个Shell命令片段,通过分析一个月的访问日志(假设每行一条记录,包含时间戳和状态码),计算本月的实际可用性。
混沌实验:设计一个在测试环境中执行的混沌实验,模拟“某数据中心交换机故障导致网络分区”。请描述你如何在Linux服务器上,使用
iptables或tc命令来模拟此故障。GitOps实操:在GitOps流程中,Kubernetes的YAML清单存储在Git中。请写一个脚本,当检测到Git仓库中deploy.yaml文件发生变化时,自动使用kubectl apply将变更同步到集群,并检查部署状态。容量管理:你有一个Hadoop集群,如何快速找出存储空间最大的前10个HDFS目录?请写出相应的HDFS Shell命令。如果是在普通文件系统上,对应的Linux命令是什么?
成本优化:如何分析AWS S3存储桶中哪些文件长期未被访问,以便将其转移到归档存储层?请写出使用
aws cli结合Shell脚本进行筛选的思路。不可变基础设施:在部署“不可变基础设施”时,你需要用一个新的镜像ID全量替换现有实例。请写一个脚本,其流程包括:拉取新镜像、更新启动配置、批量重启服务、健康检查、回滚机制。
依赖管理:如何安全地升级一个大型项目中通过包管理器(如
pip或npm)管理的所有依赖到其最新版本,并自动运行测试?请描述使用Shell脚本或Makefile的实现思路。安全扫描CI集成:在CI流水线中,如何集成一个静态应用安全测试(SAST)工具(如
gosec,bandit)?请写一段.gitlab-ci.yml或Jenkinsfile的片段,实现代码推送后自动扫描并输出报告。性能剖析:如何使用
perf工具对一段正在运行的CPU密集型进程进行采样剖析,并生成火焰图?请写出关键命令步骤。自动化值班:设计一个自动化的告警收敛和升级脚本。当监控系统触发告警时,脚本首先尝试自动清除(如重启无响应的服务),若失败则汇总信息并电话通知值班员。请描述主要逻辑模块。
配置即代码:如何使用
ansible或puppet的Dry Run(模拟运行)功能,来检测一批服务器的实际配置与代码定义的配置之间是否存在漂移?请写出命令示例。灰度发布:设计一个基于Nginx的流量切分方案。写一个脚本,能够将用户请求的10%逐步导向新版本的服务后端,并在此期间监控错误率,自动决定是否继续或回滚。
文档即代码:如何确保Markdown格式的技术文档中的每个命令行示例都是可执行的?请设计一个在CI中运行,用于验证文档中代码块正确性的方案。
SRE仪表盘:如果你只有命令行和
curl,如何从Prometheus、监控Agent等数据源收集几个关键指标(如QPS、延迟、错误率),并在终端动态刷新显示一个简易的仪表盘?请给出使用watch和curl组合的思路。根因分析(RCA)自动化:在发生严重事件后,通常需要收集大量的系统快照信息。请编写一个“取证收集脚本”,在事件发生时自动运行,收集系统日志、进程列表、网络连接、配置文件和监控数据,并打包上传。
弹性测试:如何模拟下游依赖服务响应缓慢或返回特定错误码,以测试本服务的弹性能力(如超时、重试、熔断)?请给出使用服务网格(如Istio)或网络代理的实现思路。
合规性检查:编写一个脚本,根据CIS安全基线对Linux服务器进行自动化合规性检查,检查项包括密码策略、SSH配置、文件权限等,并输出差异报告。
数据迁移:设计一个将数TB数据从旧存储系统迁移到新对象存储的迁移方案。需考虑带宽限制、增量同步、数据校验和迁移过程中的服务影响最小化。描述核心步骤和用于校验的命令。
工程文化:作为SRE/DevOps负责人,你如何利用这些底层命令和自动化技能,推动开发团队提升代码的可观测性、可部署性和可调试性?请从“左移”和“赋能”的角度提出两项具体举措。
题库使用建议:
- 面试筛选:根据不同岗位(初级运维、高级SRE、DevOps工程师)从对应级别题库中抽取5-10题进行笔试或面试。
- 技能自测:工程师可按等级逐步答题,精准定位自身技能短板。
- 培训考核:培训机构可将L1-L3作为教学成果考核,L4-L5作为优秀学员挑战。
- 团队建设:在团队内进行“夺旗赛”,使用场景题和故障排查题提升团队整体应急能力。
这套题库从最基础的命令认知延伸到最前沿的SRE实践,完整映射了现代IT工程师从入门到专家的成长路径,希望能满足您深度评估和选拔人才的需求。
