资讯动态

Linux运维面试高频命令100题精解

发布时间:2026/8/20 23:11:28 来源:尧图企业网站定制
1. Linux命令面试题的价值与定位作为一名在Linux运维领域摸爬滚打8年的老鸟我深知面试时被问到如何用find命令批量修改文件权限或怎么分析nginx日志访问量Top10时的窘迫。这套100题清单正是我根据自己参与过的47场技术面试包括被面和面人整理而成覆盖了实际工作中90%的高频场景。不同于网上那些零散的题目集合这里每个问题都经过真实生产环境验证。比如用awk统计TCP连接状态这道题直接取材自去年我们服务器遭遇SYN Flood攻击时的排查过程。题目按难度分为三个梯队基础必会30题文件操作、权限管理等生存技能进阶核心50题进程调度、网络调试等高手分水岭专家级20题系统调优、内核参数等架构师必备2. 基础命令篇精要解析2.1 文件操作三板斧find命令的-exec参数是面试官最爱挖的坑。很多人知道find /var/log -name *.log但遇到找到7天前的日志并压缩就卡壳。正确解法是find /var/log -name *.log -mtime 7 -exec gzip {} \;这里有几个关键点{}代表find找到的每个文件\;表示命令结束注意转义使用-mtime 7而非-atime因为日志更关注修改时间踩坑提醒在-exec中调用sed/awk时务必用单引号包裹脚本避免shell提前解释特殊字符2.2 权限管理深度剖析当被问到如何让新建文件自动继承目录权限时仅回答chmod是不够的。完整的解决方案应该包括chmod gs /shared_dir # 设置SGID位 setfacl -d -m g::rwx /shared_dir # 设置默认ACL我曾见过某企业NAS因为漏设SGID导致研发团队互相覆盖代码。面试时能提到ACL和特殊权限位绝对能拉开与普通候选人的差距。3. 系统管理核心题库3.1 进程监控实战技巧ps aux --sort-%mem | head -n 5这个命令看似简单但90%的候选人说不清这些字段含义VSZ虚拟内存大小包含共享库RSS实际物理内存占用%MEMRSS占总内存百分比更专业的回答应该包含对/proc/[pid]/smaps的分析技巧。比如发现Java应用内存泄漏时我会用grep -B 1 heap /proc/$(pgrep java)/smaps | awk {sum$2} END {print sum/1024MB}3.2 网络调试组合拳被问如何判断端口不可用的原因时建议按这个排查链回答telnet 127.0.0.1 80→ 测试连通性ss -tulnp | grep 80→ 检查监听状态iptables -L -n -v→ 查看防火墙规则dmesg | grep rejected→ 内核级排查去年我们遇到个经典案例某服务端口明明显示LISTEN状态但无法连接。最终发现是/etc/hosts.deny里设置了全局拒绝规则。这种实战经验会让面试官眼前一亮。4. Shell编程高频考点4.1 变量作用域陷阱这道题淘汰了60%的面试者count0 cat file.txt | while read line; do ((count)); done echo $count # 输出什么正确答案是0因为管道会创建子shell。解决方案有三种改用进程替换while read line; do ... done (cat file.txt)使用lastpipe特性bash4.2shopt -s lastpipe临时文件法count$(wc -l file.txt)4.2 信号处理必知必会当被问到如何让脚本优雅退出时至少要展示这样的结构trap cleanup; exit 1 SIGINT SIGTERM cleanup() { rm -f /tmp/lockfile kill -TERM $child_pids 2/dev/null }我曾用这个技巧处理过K8s Pod的优雅终止避免了一半的僵尸进程问题。5. 磁盘与日志分析进阶5.1 磁盘I/O瓶颈定位iostat -dx 1输出中这些指标最关键%util 70% 表示磁盘饱和await 10ms 说明延迟过高svctm与await差值大可能存在队列堆积高级技巧是用blktrace定位具体进程blktrace -d /dev/sda -o - | blkparse -i - | grep D [RW]5.2 日志分析四件套统计Nginx 500错误率的完整命令链awk $9500{count} END{print count/NR*100%} access.log更专业的分析应该包含时间维度分布awk -F[: ] {print $2:$3}关联错误模式grep -A 3 -B 3 500 地理信息解析geoipupdate awk匹配6. 系统调优终极挑战6.1 OOM Killer调优当被问到如何防止关键进程被OOM Killer杀死时应该提到echo -1000 /proc/$$/oom_score_adj # 当前shell sysctl -w vm.panic_on_oom1 # 极端情况下直接panic某次MySQL被误杀后我们通过/var/log/kern.log中的oom-kill日志发现是某Java应用的oom_score_adj设置不合理导致的。6.2 内核参数优化TCP连接复用这个知识点要能说清这些参数的关系sysctl -w net.ipv4.tcp_tw_reuse1 # 快速回收TIME_WAIT sysctl -w net.ipv4.tcp_fin_timeout30 # 缩短FIN等待 sysctl -w net.core.somaxconn65535 # 增大连接队列实际调优时要配合ss -s和netstat -s监控效果。7. 面试实战技巧7.1 问题拆解方法论遇到服务器突然变慢怎么排查这种开放性问题建议按这个框架回答快速定位瓶颈点CPU/内存/IO/网络展示诊断命令链top→vmstat→iostat→netstat结合业务场景分析如数据库连接池爆满7.2 场景模拟应答策略当面试官给出具体错误现象时采用现象→可能原因→验证方法的三段式现象无法SSH连接 可能原因 1. 网络中断ping测试 2. sshd服务崩溃systemctl status sshd 3. 最大连接数限制ss -lnp|grep ssh8. 持续学习建议保持竞争力的三个途径每天精读/proc下的一个文件比如/proc/interrupts定期分析strace -f -p PID的输出参与Linux内核邮件列表讨论这套题库每年会更新20%的内容最近新增了systemd和cgroup v2相关题目。建议配合man proc和info coreutils进行拓展阅读。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价