米哈游运维方向笔试:选择题 + bash 编程
- 轮次
- 笔试
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 单选题 10 道 + 多选题 15 道,知识面覆盖较广。
- 算法题 1 道。
- Bash 编程题 1 道。
- AI coding 题:用 JavaScript 写一个小游戏。
原帖复盘:选择题说不上太难;bash 不太熟浪费了很多时间也没做出来;AI coding 后面没时间做了,随便抽了几次,50 来分就交了。
《参考解析》
选择题考什么:运维知识面清单
15 道多选意味着覆盖面广、单题分值低,靠的是平时积累而不是临时突击。运维方向的高频考点大致是这几块:
- Linux 基础:文件权限与 umask、
chmod数字含义、软硬链接区别、进程状态与僵尸进程、ps/top/ss/lsof的用法、/proc下的关键文件、启动流程(systemd unit)、日志(journalctl、rsyslog 轮转)。 - 文件与文本处理:
find的时间/大小/权限参数、grep -r/-E/-v、sed替换与就地修改、awk按列处理与统计、sort -k/-n/-u、uniq -c、xargs、重定向与管道、tar打包。 - 网络:TCP 三次握手与四次挥手、TIME_WAIT 过多的原因与调优、DNS 解析过程与
dig/nslookup、HTTP 状态码语义(尤其 301/302/304/502/504)、curl常用参数、抓包(tcpdump)与端口排查(ss -lntp、netstat)。 - 系统与性能:负载与 CPU 指标(load average、
vmstat、iostat、sar)、内存与 swap、磁盘 IO 与 inode 耗尽、free各字段含义、常见瓶颈定位顺序(CPU → 内存 → 磁盘 → 网络)。 - 容器与编排:Docker 镜像分层与 Dockerfile 指令、数据卷、网络模式;K8s 的 Pod/Deployment/Service/Ingress、探针(liveness/readiness)、资源 request/limit、调度与滚动更新。
- 可用性与架构:负载均衡算法、健康检查、限流与熔断、主从与集群、备份与恢复、监控告警体系(Prometheus + Grafana + Alertmanager)。
多选题的答题技巧:拿不准的选项倾向不选(多选错选通常整题不得分),把明显错误的先排掉。
Bash 编程题的高频套路
原帖失分点就在这里,而 bash 题的题型其实很有限,把这几个模板背熟基本够用:
- 日志统计:
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20(Top N IP);统计状态码分布awk '{print $9}' | sort | uniq -c。 - 文本提取与替换:
sed -n '/pattern/p'、grep -oE、awk -F, '{sum+=$3} END{print sum}'做列求和、tr转换大小写、cut -d: -f1。 - 文件批处理:
find /path -name "*.log" -mtime +7 -exec gzip {} \;清理旧日志;按大小切分split -b 100M;批量重命名用for f in *.txt; do mv "$f" "${f%.txt}.md"; done。 - 脚本健壮性(很加分):开头写
set -euo pipefail;用IFS=$'\n'处理带空格的文件名;"$var"加引号防止分词;用trap做清理;mktemp建临时文件;[[ ]]代替[ ];判断命令是否存在用command -v。 - 进程与运维脚本:检查服务是否存活并重启(
pgrep -f+systemctl restart)、磁盘使用率超阈值告警(df -h | awk)、并发执行用xargs -P或&+wait。
写不出完整逻辑时,先把能跑通的部分写出来(比如参数解析 + 主要管道),部分得分比空白强。
算法题与时间分配
运维岗的算法题通常不难(字符串处理、数组、哈希、简单模拟),但笔试的总时长往往只够做完一半。建议的时间框架:选择题 30%、算法题 20%、bash 题 25%、AI coding 25%,任何一题超过预期时间的 1.5 倍就先跳过。原帖的失分顺序很典型:在 bash 上卡太久 → 算法和 AI coding 没时间 → 最后 50 分。如果重来一次,正确策略是先把算法题和 AI coding 拿到分,再回头啃 bash——因为 bash 题的评分往往是「跑通用例数」,短时间很难从 0 到 1,而算法题有明确的部分分。
AI coding 题怎么拿分
「用 JS 写一个小游戏」这类题的评分通常看能否运行 + 核心玩法是否实现 + 代码结构,不要求画面精美。可操作的策略:
- 先读交付要求:是在线编辑器里跑还是在本地、有没有测试用例、评分标准是什么(有的只看能否通关)。
- 做最小可用版本:用 Canvas 或纯 DOM +
requestAnimationFrame实现一个循环:初始化状态 → 处理输入 → 更新位置 → 碰撞检测 → 渲染 → 计分。哪怕只有「方块左右移动 + 掉落物 + 计分」,也是完整游戏。 - 别乱抽:原帖说「随便抽了几次」,说明可能是抽卡式/重试式的交互题——这种题每一次提交都该建立在上一次的反馈上,看懂反馈再改,比反复试错有效。
- 留时间写注释和结构:函数拆清楚(
update/render/handleInput),人工阅卷时一眼能看懂。
这场笔试的复盘
这场笔试的信息量在于题型组合:选择题(广)+ 算法(基础)+ bash(运维特色)+ AI coding(新题型)。它反映的正是运维岗当下的能力结构——传统 Linux/网络/脚本功底仍然是主线,但你已经需要会用 AI 写代码。准备下一场时,把「bash 文本处理三板斧(grep/sed/awk)+ 常见运维脚本模板」过一遍,投入产出比最高;同时用两三次计时模拟练一下时间分配,这比多刷十道选择题更能提分。