当前位置:首页>Linux>测试工程师面试:linux高频“八股文”一文打尽!

测试工程师面试:linux高频“八股文”一文打尽!

  • 2026-09-02 17:26:56
测试工程师面试:linux高频“八股文”一文打尽!

在接口测试、自动化、性能压测、线上排查等场景中,Linux 是测试工程师的“第二工作台”。

无论是查看日志、监控服务、还是调试环境,都离不开命令行操作。

本文系统梳理 测试岗最常被问到的 Linux “八股文”,涵盖 基础命令、日志分析、网络排查、进程管理、文件操作 五大类,附带 真实测试场景 + 面试回答技巧,助你从容过关!‍

一、基础信息 & 系统状态(必问!)

1. 如何查看系统版本和内核?

cat /etc/os-release    # 查看发行版(如 CentOS 7)uname -a               # 查看内核版本、主机名、架构✅ 测试场景:确认测试环境是否符合要求(如“需 CentOS 7.6+”)。

2. 如何查看 CPU 和内存使用情况?

top                    # 实时动态查看(按 q 退出)htop                   # 增强版 top(需安装)free -h                # 查看内存总量、已用、可用(-h 人性化显示)cat /proc/cpuinfo      # 查看 CPU 核心数、型号

✅ 面试话术:

“在性能测试中,我会用 top 监控被压服务的 CPU 使用率,若持续 >80%,可能成为瓶颈。”

3. 如何查看磁盘空间?

df -h                  # 查看各分区使用情况(-h 显示 GB/MB)du -sh /var/log        # 查看指定目录大小(-s 汇总,-h 人性化)

✅ 测试场景:压测后检查日志是否占满磁盘,导致服务异常。‍

二、进程 & 服务管理(高频!)

4. 如何查看某个进程(如 Java 服务)是否在运行?

ps -ef | grep java     # 列出所有含 "java" 的进程pgrep -f "app.jar"     # 直接返回 PID(更精准)5. 如何杀死一个进程?kill -9          # 强制终止(慎用!)pkill -f "app.jar"     # 按进程名杀(方便)

✅ 避坑提醒:

“一般先尝试 kill(发送 SIGTERM),给进程优雅退出机会;若无响应再用 -9。”

6. 如何查看服务端口是否监听?

netstat -tunlp | grep 8080# 或(更现代)ss -tuln | grep 8080

✅ 关键字段解释:

-t:TCP-u:UDP-l:监听状态-n:显示数字端口(不解析服务名)-p:显示进程 PID(需 root 权限)‍

三、日志查看与分析(核心技能!)

7. 如何实时跟踪日志?

tail -f app.log        # 实时追加输出最后 10 行tail -n 100 -f app.log # 从倒数 100 行开始跟踪

8. 如何搜索日志中的错误?

grep "ERROR" app.log           # 普通搜索grep -i "exception" app.log    # 忽略大小写grep -A 3 -B 3 "Timeout" app.log  # 显示匹配行前后 3 行(定位上下文)

9. 如何统计错误次数?

grep "ERROR" app.log | wc -l   # 统计 ERROR 出现行数

✅ 测试场景:

“自动化执行失败后,我会立即 grep ERROR 日志,快速定位是网络超时还是业务逻辑错误。”‍

四、网络诊断(接口测试必备!)

10. 如何测试网络连通性?

ping api.test.com              # 测试 ICMP 通断(注意:很多生产环境禁 ping)telnet api.test.com 443        # 测试 TCP 端口是否开放(更可靠!)

✅ 黄金法则:

“ping 不通 ≠ 服务不可用;telnet 通才说明端口可达。”

11. 如何查看 DNS 解析结果?

nslookup api.test.com# 或dig api.test.com

✅ 排查技巧:

若 ping 域名 慢但 ping IP 快,说明 DNS 解析有问题。

12. 如何抓包分析 HTTP 请求?(进阶)

tcpdump -i any -nn port 80 -w capture.pcap# 用 Wireshark 打开 pcap 文件分析

✅ 适用场景:

接口返回异常,但代码无日志,可通过抓包确认请求/响应内容。

五、文件与权限操作

13. 如何查找某个文件?

find / -name "*.log" 2>/dev/null   # 全盘查找 .log 文件(忽略权限错误)locate "*.log"                     # 快速查找(需先 updatedb)

14. 如何压缩和解压文件?

# 打包并压缩tar -czvf archive.tar.gz dir/# 解压tar -xzvf archive.tar.gz# 查看内容(不解压)tar -tzvf archive.tar.gz

✅ 测试场景:

下载测试数据包后快速解压;备份日志归档。

15. 如何修改文件权限?

chmod 755 script.sh    # 所有者可读写执行,组和其他人可读执行chmod +x script.sh     # 添加执行权限chown user:group file  # 修改文件所有者

✅ 安全原则:

“脚本文件需 +x 才能执行;敏感配置文件应限制为仅所有者可读。”‍

六、高级技巧:提升效率的组合命令

16. 如何统计某接口调用次数?

grep "/api/order" nginx.access.log | wc -l

17. 如何找出最耗时的 SQL?

grep "slow_query" mysql.log | awk '{print $NF, $0}' | sort -nr | head -10

18. 如何批量替换文件内容?

sed -i 's/old_token/new_token/g' config.yaml

✅ 警告:

-i 会直接修改原文件!建议先备份:cp config.yaml config.yaml.bak‍

七、面试加分回答模板

当被问“你用 Linux 做过什么?”时,别只说“会几个命令”,试试这样答:

“在接口自动化项目中,我通过 tail -f 实时监控测试环境日志,结合 grep ERROR 快速定位失败原因;

在性能测试时,用 top 和 df -h 监控服务资源,发现一次因日志未轮转导致的磁盘爆满问题;

还编写了 Shell 脚本自动清理测试数据,提升团队效率。”

——用场景体现能力,用结果证明价值。‍

八、避坑指南:这些“伪命令”别乱用!

错误做法
正确替代
rm -rf /*
永远不要在生产环境用 rm -rf,先 ls 确认
killall java
可能误杀其他 Java 进程,用 pkill -f "your_app"
cat 超大日志
用 less 或 head/tail,避免卡死终端

结语

Linux 不是“背命令”,而是解决问题的工具箱。

对测试工程师而言,掌握这些高频命令,意味着:

能独立搭建/验证测试环境

能快速定位自动化失败根因

能参与线上问题应急排查

能写出更健壮的自动化脚本‍

记住:

面试官不关心你背了多少命令,

只关心你能否用它们解决实际问题。

收藏本文,面试前快速过一遍,稳了! 💪

 每一次互动,皆是鼓励, 每一份支持,共促成长。

商务合作:huaan------9527

最新文章

随机文章