面灵AI→

米哈游运维方向笔试:选择题 + bash 编程

轮次
笔试
时间
2026-09
来源
牛客网

《面试题目》

  1. 单选题 10 道 + 多选题 15 道,知识面覆盖较广。
  2. 算法题 1 道。
  3. Bash 编程题 1 道。
  4. 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 写一个小游戏」这类题的评分通常看能否运行 + 核心玩法是否实现 + 代码结构,不要求画面精美。可操作的策略:

  1. 先读交付要求:是在线编辑器里跑还是在本地、有没有测试用例、评分标准是什么(有的只看能否通关)。
  2. 做最小可用版本:用 Canvas 或纯 DOM + requestAnimationFrame 实现一个循环:初始化状态 → 处理输入 → 更新位置 → 碰撞检测 → 渲染 → 计分。哪怕只有「方块左右移动 + 掉落物 + 计分」,也是完整游戏。
  3. 别乱抽:原帖说「随便抽了几次」,说明可能是抽卡式/重试式的交互题——这种题每一次提交都该建立在上一次的反馈上,看懂反馈再改,比反复试错有效。
  4. 留时间写注释和结构:函数拆清楚(update/render/handleInput),人工阅卷时一眼能看懂。

这场笔试的复盘

这场笔试的信息量在于题型组合:选择题(广)+ 算法(基础)+ bash(运维特色)+ AI coding(新题型)。它反映的正是运维岗当下的能力结构——传统 Linux/网络/脚本功底仍然是主线,但你已经需要会用 AI 写代码。准备下一场时,把「bash 文本处理三板斧(grep/sed/awk)+ 常见运维脚本模板」过一遍,投入产出比最高;同时用两三次计时模拟练一下时间分配,这比多刷十道选择题更能提分。