当前位置:首页>Linux>看完这篇 Linux面试稳了!

看完这篇 Linux面试稳了!

  • 2026-10-11 07:19:28
看完这篇 Linux面试稳了!

阿发聊测试 · 面试实战

看完这篇Linux面试稳了!

高频考点+实战问答+速查手册测试人必备的Linux面试武器库

你好,我是阿发。

最近有好几个粉丝私信问我:阿发,测试岗面试总是被问Linux,我只会几个cd、ls命令,面试官深挖就懵了。怎么办?

说实话,Linux是测试人绕不开的坎。不管你是做功能测试、自动化、性能还是测开,面试官都会问上几嘴。有的是基础命令,有的是系统排查,有的是网络问题排查。

这篇文章我把测试岗Linux面试的高频考点全部整理出来,每个考点都附上面试官在考什么、怎么回答、加分技巧。看完这篇,下次遇到Linux面试题,直接把答案甩回去,稳了。

SECTION 01

面试官到底在考什么?

很多人说Linux面试就是考命令,背命令就行。错。面试官考的是你用Linux解决实际问题的能力。命令只是手段,解决问题才是目的。

面试官在考
考察维度
基础命令
文件操作、文本处理、权限管理——会不会用工具干活
系统管理
进程管理、内存监控、磁盘使用——排查系统问题的能力
网络排查
TCP/IP、端口、防火墙、路由——定位网络问题的思路
故障诊断
OOM、CPU飙高、服务挂了——综合排查能力

记住:面试官不会问你"这个命令的参数有哪些",而是会问"线上服务挂了,你怎么排查"。你要做的是把命令组织成解决问题的思路。

SECTION 02

高频考点一:基础命令

基础命令是入门门槛,面试官会通过你对基础命令的掌握程度,判断你是否真的用过Linux。以下是高频考到的基础命令及答题要点。

Q1:如何查看一个文件的内容?不同方式的区别是什么?

参考答案:

· cat:直接输出文件内容到终端。适合小文件

· head -n 10:查看文件前10行。适合快速预览

· tail -n 10 / tail -f:查看后10行 / 实时跟踪新增内容(查日志神器)

· more / less:分页查看。less更强大,支持上下翻页、搜索

· vi / vim:编辑器模式。不仅能看,还能编辑

加分技巧:

重点说 tail -f 查日志 和 grep + tail 组合查特定日志,面试官一听就知道你干过活。比如:

tail -f app.log | grep "ERROR"

Q2:如何用grep查找文件?常用参数有哪些?

参考答案:

基本用法:grep [选项] 模式 文件

常用参数:

· -r:递归查找目录下所有文件

· -i:忽略大小写

· -n:显示行号

· -c:统计匹配行数

· -v:反向匹配(排除指定模式)

加分技巧:

说一个实战场景:查代码中所有TODO注释:

grep -rn "TODO" /project/src/

Q3:如何修改文件权限?chmod和chmod的区别?

参考答案:

chmod:修改文件的读写执行权限

· 数字方式:chmod 755 file(rwxr-xr-x)

· 符号方式:chmod +x file(添加执行权限)

权限数字记忆:4=读(r)、2=写(w)、1=执行(x)

权限分三组:所有者、同组、其他用户

加分技巧:

说一下 chown 是修改文件所有者的命令,常见场景:部署后修改日志目录权限让应用可写:

chown -R appuser:appgroup /var/log/myapp/

Q4:awk和sed有什么用?举个实际使用场景。

参考答案:

sed:流编辑器,用于替换、删除、插入文本

· 替换:sed 's/old/new/g' file

· 删除空行:sed '/^$/d' file

awk:文本分析工具,用于格式化输出、统计计算

· 格式化输出:awk '{print $1, $3}' file(输出第1、3列)

· 统计:awk '{sum+=$2} END{print sum}' file(求第2列的和)

加分技巧:

举一个测试场景的例子——统计接口调用次数TOP5:

cat access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -5

SECTION 03

高频考点二:系统管理

系统管理是面试必考项,面试官会通过你对进程、内存、磁盘的理解,判断你是否具备系统问题排查能力。

Q5:top和ps有什么区别?怎么看进程的CPU和内存占用?

参考答案:

ps:静态查看进程快照。常用:

· ps aux:查看所有进程详细信息

· ps -ef:标准格式查看进程

top:动态实时查看系统资源。类似Windows任务管理器

· 默认按CPU占用排序,每秒刷新

· 可以按内存排序:按M键

· 可以指定进程看:top -p PID

加分技巧:

说一个排查场景——发现某个进程CPU持续100%,用top定位PID后,用strace或perf看在做什么。重点说 top -Hp PID 看进程内线程的CPU分布,定位死循环线程。

Q6:如何查看系统内存使用情况?什么是swap?

参考答案:

查看内存的命令:

· free -h:查看整体内存使用情况(总内存、已用、可用)

· top:实时看每个进程的RES(物理内存)和VIRT(虚拟内存)

· cat /proc/meminfo:查看详细内存信息

swap:交换分区,当物理内存不足时,系统将部分不活跃的内存页换到磁盘上

· swap的作用:防止OOM(Out Of Memory)

· swap的代价:磁盘IO慢,性能下降

· 生产环境建议:swap设置为物理内存的1-2倍,但如果swap使用率超过30%就要警惕了

加分技巧:

说一下内存泄漏的排查思路:用valgrind或LeakSanitizer检测,长时间监控进程的RES内存是否持续增长不释放。

Q7:如何查看磁盘使用情况?磁盘满了怎么办?

参考答案:

查看磁盘的两个核心命令:

· df -h:查看每个分区的使用情况(容量、已用、可用、使用率)

· du -sh 目录:查看某个目录的大小

磁盘满了的排查步骤:

1. df -h 找到满的分区

2. du -sh /* 逐级排查大文件/大目录

3. 常见元凶:core dump文件、日志文件、临时文件、Docker镜像

4. 处理:删除大文件、清理日志、扩展磁盘或迁移数据

加分技巧:

说一下 du -sh /* | sort -rh | head -10 查找最大的10个目录。还有 find / -size +100M 找大于100M的文件。

Q8:kill命令怎么用?kill -9和kill有什么区别?

参考答案:

kill:发送信号给进程。默认发送SIGTERM(信号15)

· kill PID:发送SIGTERM,请求进程正常退出(进程可以忽略)

· kill -9 PID:发送SIGKILL(信号9),强制杀死进程(进程不能忽略)

· kill -1 PID:发送SIGHUP,让进程重新加载配置

正确的关闭流程:先kill,等几秒还没关再kill -9

加分技巧:

面试官可能追问:为什么不能直接用kill -9?因为进程可能正在写文件或释放资源,直接强杀会导致数据不一致或资源泄漏。正确做法是先温和关闭,给进程时间清理。

SECTION 04

高频考点三:网络排查

网络问题是测试岗经常遇到的——接口超时、连接不上、服务调用失败。面试官问网络,就是看你排查线上问题的思路。

Q9:如何查看端口占用?怎么释放被占用的端口?

参考答案:

查看端口占用:

· netstat -tlnp | grep 端口号:查看哪个进程占用了端口

· lsof -i:端口号:更直观地显示占用进程的详细信息

释放端口:

· 找到PID后,用kill PID关闭进程

· 如果进程有父进程,可能需要杀整个进程组:kill -9 -$(ps -o pgid= PID)

加分技巧:

说一个快捷命令:fuser -k 端口号/tcp,一步搞定。但注意:先确认占用进程是否可以杀,不要误杀。

Q10:curl和wget有什么区别?怎么用curl测试接口?

参考答案:

wget:主要用于下载文件。简单直接

curl:功能更强大,支持HTTP/HTTPS/FTP等协议,可模拟各种请求

用curl测试接口:

· GET请求:curl http://localhost:8080/api/user

· POST请求:curl -X POST -H "Content-Type: application/json" -d '{"name":"test"}' http://localhost:8080/api/user

· 查看响应头:curl -I http://localhost:8080/api/user

· 显示详细过程:curl -v http://localhost:8080/api/user

加分技巧:

说一下常用的调试参数:-w "\nHTTP_CODE:%{http_code}\nTIME:%{time_total}\n" 可以输出响应码和耗时,适合接口测试场景。

Q11:DNS解析过程是怎样的?如何排查DNS问题?

参考答案:

DNS解析过程(递归查询):

1. 浏览器→本地DNS缓存→ hosts文件

2. 本地DNS缓存未命中→请求根DNS

3. 根DNS→顶级域DNS(如.com)

4. 顶级域DNS→权威DNS

5. 权威DNS返回IP→浏览器缓存

排查DNS问题:

· nslookup 域名:查看DNS解析结果

· dig 域名:显示更详细的DNS记录

· cat /etc/hosts:检查hosts文件是否有问题

· ping 域名:看是否能ping通(注意有些服务器禁ping)

SECTION 05

实战场景:线上问题排查

前面的知识点是基础,面试官最喜欢考的是实战场景。下面是三个最经典的面试场景题,每一个都要能说出完整的排查思路。

场景1:线上服务突然响应很慢,怎么排查?

排查思路(从外到内,分层排查):

第一步:确认问题范围

· 是所有用户都慢还是部分用户?→ 网络问题还是服务问题

· 是所有接口都慢还是特定接口?→ 特定模块问题还是全局问题

第二步:系统资源排查

· top → CPU是否飙高?哪个进程占满了?

· free -h → 内存是否不足?swap是否在疯狂换页?

· df -h → 磁盘是否满了?磁盘IO是否等待中?

· netstat → 网络连接是否异常?是否有大量TIME_WAIT?

第三步:应用层排查

· tail -f 应用日志 → 是否有异常?错误日志量是否暴增?

· 数据库慢查询日志 → 是否有慢SQL?

· 线程池状态 → 是否有线程被阻塞?

第四步:定位根因并处理

· CPU高 → 是否有死循环?是否需要扩容?

· 内存不足 → 是否有泄漏?是否需要增加堆内存?

· 磁盘满 → 清理日志/临时文件

· 慢SQL → 优化SQL/加索引/加缓存

场景2:服务报OOM了,怎么排查?

排查思路:

第一步:确认OOM类型

· 是系统OOM(物理内存耗尽被杀)还是应用层OOM(Java堆溢出)

· 查看内核日志:dmesg | grep -i oom

第二步:系统级排查

· free -h → 内存使用情况

· top → 哪个进程占用了最多内存

· /proc/sys/vm/oom_kill_allocating_task → OOM killer的处理策略

第三步:应用级排查(以Java为例)

· -XX:+HeapDumpOnOutOfMemoryError → 自动生成堆dump

· jmap -dump:live,format=b,file=heap.hprof PID → 手动导出堆

· 用MAT/JProfiler分析heap dump → 找大对象、内存泄漏

· jstat -gc PID → 查看GC情况,是否Full GC频繁

第四步:解决和预防

· 临时:增加内存、重启服务

· 根治:修复内存泄漏代码、优化对象创建、调整JVM参数

· 预防:设置监控告警、定期审查堆内存使用情况

场景3:接口调用超时,怎么排查是客户端还是服务端的问题?

排查思路(从上到下):

第一步:确认网络连通性

· ping 服务端IP → 网络是否通

· telnet 服务端IP 端口 → 端口是否可达

· curl -v http://服务端地址 → 看TCP握手、TLS握手是否成功

第二步:区分客户端/服务端问题

· 在服务端本地curl接口 → 本地调用是否正常?→ 本地正常说明客户端到服务端的网络有问题

· 在客户端用curl直接调用 → curl -w "time_namelookup:%{time_namelookup}\ntime_connect:%{time_connect}\ntime_total:%{time_total}" → 分析DNS解析时间、连接时间、总耗时

第三步:服务端深入排查

· 查看服务端访问日志 → 请求是否到达服务端?响应时间多少?

· 查看服务端应用日志 → 是否有异常?是否有慢SQL?

· 查看服务端系统资源 → CPU/内存/IO是否有瓶颈?

· netstat -antp | grep 端口 → 查看连接状态,是否有大量ESTABLISHED或CLOSE_WAIT?

第四步:定位网络层问题

· traceroute/tracepath → 查看路由路径,是否有中间跳延迟高?

· mtr → 结合ping和traceroute,查看丢包情况

· iptables -L → 检查防火墙规则

SECTION 06

Linux面试速查手册

最后给大家整理一份速查手册,面试前扫一眼就行。

分类
高频命令
使用场景
文件操作
cat / tail / head / less
查看日志、配置文件
文本处理
grep / sed / awk
搜索、替换、统计日志
进程管理
ps / top / kill / pkill
查看、终止进程
资源监控
top / free / df / vmstat
CPU、内存、磁盘监控
网络排查
netstat / lsof / curl / ping
端口、连接、接口测试
权限管理
chmod / chown / chgrp
修改文件权限和所有者
文件查找
find / locate / which
找文件、找命令

阿发说实话

Linux面试的核心不是背命令,而是用命令串成解决问题的思路。记住下面这几个套路:

· 分层排查:系统层→网络层→应用层,从外到内

· 数据说话:给出具体的命令、具体的数值,不要空泛地说"可能是XX问题"

· 经验分享:说一个你真实遇到过的案例,面试官会觉得你真干过

· 补充扩展:在基础回答后补充进阶命令或工具,如strace、perf、tcpdump,显示深度

最后

Linux是测试人必须掌握的基本功。不需要你成为Linux专家,但至少要能在遇到问题时,知道用什么工具、什么思路去排查。平时多动手,在自己的电脑或虚拟机上练一练,比背一百遍命令都管用。

关于面试辅导、简历修改、测试转型等,都可以通过公众号菜单栏添加我微信交流!需要学习资料也可以私信!

最新文章

随机文章