ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

测试与安全工程师笔试:Linux高频考点与实战排查思路

2026/10/3 1:10:38 拓冰建站 浏览量
测试与安全工程师笔试:Linux高频考点与实战排查思路 我这些年面试过不少测试工程师和网络安全工程师候选人发现一个很有规律的筛选点只要在笔试里放几道Linux实操题哪些人真正碰过服务器哪些人只会在Windows上点点鼠标基本一目了然。测试工程师要搭环境、看日志、跑自动化脚本网络安全工程师要做日志审计、系统加固、网络排查这两类岗位的日常工作都重度依赖Linux所以笔试环节几乎都会塞进去一批Linux题目。但很多候选人明明在简历里写着熟悉Linux常用命令真到了笔试却连find和grep的组合用法都写不出来。这篇内容不是简单罗列100道题的答案而是把测试工程师和网络安全工程师笔试中最常出现的Linux考点按类别拆开每道题都讲清楚答案是什么、为什么这么答、阅卷人想看到什么踩分点。两个岗位的共同考点和差异考点也会单独对比方便你针对自己的目标岗位重点复习。1. 为什么测试和安全岗位的笔试都绕不开Linux1.1 两个岗位对Linux的真实依赖不少准备笔试的人有个误区觉得测试工程师主要用WindowsLinux是运维的事。真上了项目就会发现绝大多数公司的测试环境、预发布环境都跑在Linux服务器上你连测试环境都部署不起来后面的功能测试、接口测试根本没法开展。具体到日常工作的几个场景测试环境部署被测系统通常部署在Linux服务器上你需要会解压安装包、修改配置文件、启停服务、查看进程状态。至少得知道tar解压、systemctl服务管理、ps进程查看。日志定位功能测试发现问题后要登录服务器用tail -f实时盯日志用grep过滤关键字快速定位是前端问题、接口问题还是后端报错。这一条几乎是测试工程师笔试必考的场景题。自动化测试执行很多自动化测试框架跑在Linux CI机器上比如Jenkins、GitLab Runner脚本执行环境、定时任务配置都离不开Linux基础。数据库与中间件操作MySQL、Redis、Nginx这些测试环境组件大多装在Linux上排查问题时要会看端口、看连接数。网络安全工程师对Linux的依赖更深。安全日志分析要看/var/log/secure和/var/log/messages系统加固要管用户权限、SSH配置、防火墙策略应急响应要在服务器上找异常进程和恶意文件。可以说Linux是安全工作的主战场笔试题目自然会往深了考。1.2 笔试出题的常见逻辑站在出题人的角度想Linux笔试题目其实在考察三件事。第一有没有真实的服务器操作经验。背书背命令和真敲过命令答题的细节完全不一样。比如很多人知道chmod 755是设置权限但问文件属主、属组、其他人分别有什么权限没实操过的人会卡壳。第二遇到问题有没有清晰的排查思路。这类题通常给一个场景比如网站访问很慢你怎么排查没有标准答案但能看出候选人是慌乱的还是有序的。第三有没有安全意识。对网络安全工程师来说尤其明显比如问到SSH配置时有安全意识的人会提到禁止root直接登录、建议使用密钥认证而只背过命令的人只会说改端口号。2. 文件与目录操作笔试中占比最高的一类题文件操作命令是Linux笔试的入门题也是占比最高的类别。这类题难度不大但胜在覆盖面广、陷阱多一道题里能塞进好几个知识点。2.1 高频命令题与常见陷阱题目查看当前所在目录的完整路径用什么命令答案pwd。这道题属于送分题但偶尔会有人写成cd说明对命令的基本用途没分清。cd是切换目录pwd才是打印工作目录。题目查找/etc目录下所有以.conf结尾的文件请写出命令。答案find /etc -name *.conf。这道题很多人会答ls /etc/*.conf在文件数量少的时候能列出来但ls没法递归查找子目录而且当匹配结果太多时会报错。笔试阅卷时写出find命令的人明显是熟悉Linux的。题目递归复制目录/data/app到/backup/目录下怎么写答案cp -r /data/app /backup/。注意-r参数不能丢很多新手第一次复制目录时不加-r直接报错cp: omitting directory。笔试题里偶尔会把这个错误现象写出来问是什么原因。题目和重定向有什么区别答案会覆盖原文件内容是追加写入。这个考点简单但高频。举个实际场景把服务的启动日志写入文件时如果不想清空之前的日志必须用。题目硬链接和软链接有什么区别答案软链接符号链接是一个特殊文件指向另一个文件的路径源文件删除后软链接失效硬链接是多个文件名指向同一个inode只有所有硬链接都删除文件才会真正被释放。这道题偶尔会出现在选择题里但更多是在场景题中作为延伸考察。比如问如何给某个可执行文件做一个类似于Windows桌面快捷方式的东西答案是ln -s创建软链接。题目解压app.tar.gz文件用什么命令解压app.zip呢答案tar -zxvf app.tar.gz和unzip app.zip。顺便提醒一下不同压缩格式的命令不能混淆tar.gz用tar系列命令zip用unzip.7z文件还需要7z命令。如果服务器上没有装对应的解压工具还会提示command not found。2.2 用户、权限与特殊权限位题目解释chmod 755和chmod 644分别代表什么权限这是权限题里最经典的题目。755表示文件属主有读、写、执行权限7421属组和其他用户有读、执行权限541。644表示属主有读、写权限属组和其他用户只有读权限。阅卷时我常看到有人把数字和权限的对应关系写反比如把755写成所有人都有全部权限这就说明对数字权限的理解是生搬硬套没有真正理解4是读、2是写、1是执行。题目如何修改文件test.txt的属主为zhangsan答案chown zhangsan test.txt。如果是同时修改属主和属组用chown zhangsan:devops test.txt。chown和chmod经常同时出现前者改归属后者改权限别搞混。题目/tmp目录的权限通常是1777最后的1代表什么为什么要这样设置答案最后的1是粘滞位Sticky Bit。/tmp目录允许所有用户写入文件但粘滞位保证用户只能删除属于自己的文件。这个设计解决了多用户共享临时目录时的安全问题。这题在网络安全工程师的笔试里比较常见考察的其实是对安全机制的理解。如果没有粘滞位任何一个用户都能删除/tmp下别人的临时文件。题目某个可执行文件设置了SUID权限会有什么风险答案SUIDSet User ID允许普通用户执行该文件时临时拥有文件属主的权限。典型的例子是/usr/bin/passwd普通用户通过SUID以root身份修改密码。但如果你在自定义脚本或二进制文件上设置SUID且文件属主是root就相当于给了普通用户一条提权路径这是非常危险的安全隐患。网络安全工程师笔试里这题经常以查找系统中有SUID权限的文件的形式出现命令是find / -perm -4000 -type f。这道命令能写出来说明候选人确实做过安全基线检查。2.3 文件类题目的答题踩分点我的建议是凡是涉及命令的题目至少要写到命令名 关键参数 参数含义。阅卷不是只看对错还会通过你写的细节判断你是背的还是用的。例如问如何查找并删除30天前的日志文件完整答案是find /var/log -name *.log -mtime 30 -exec rm {} \;或者find /var/log -name *.log -mtime 30 -delete如果你只写rm -rf /var/log不但不得分反而会让阅卷人觉得你完全没有生产环境的安全意识。3. 进程管理与系统资源排查测试工程师的高频失分区测试工程师的日常工作中服务起不来、端口被占用、磁盘满了是最常见的环境问题。所以笔试题目中进程管理和系统资源排查的占比非常高而且多以场景题形式出现。3.1 进程查看与信号控制题目如何查看系统中所有Java进程答案ps -ef | grep java或者ps aux | grep javaps -ef和ps aux都能列出进程区别在于输出格式。-ef偏向显示进程的父进程ID和完整命令行aux偏向显示CPU、内存占用率。实际使用中两者都会被用到笔试时写哪个都行。注意grep java会把自己这条命令也匹配进去所以有人会在后面加| grep -v grep来排除干扰这是加分的细节说明你实际敲过。题目kill -9和kill -15有什么区别答案kill -15是发送SIGTERM信号请求进程正常退出进程可以捕获这个信号做清理工作kill -9是发送SIGKILL信号强制杀死进程进程无法捕获也无法做任何清理。这道题很基础但陷阱在于有些进程忽略-15信号这时候才考虑用-9。笔试题如果问某个进程杀不掉怎么办正确的思路是先试kill -15不行再用kill -9而不是一上来就kill -9。题目如何查看某个端口比如8080被哪个进程占用这是测试工程师笔试里出现频率极高的一道题没有之一。标准答案netstat -tunlp | grep 8080或lsof -i:8080或ss -tunlp | grep 8080三个命令的核心作用一样都是找到占用端口的进程PID然后再用ps -ef | grep PID或者直接kill PID处理。这道题之所以高频是因为测试环境部署服务时经常遇到端口被占用导致启动失败属于最典型的日常问题。3.2 必考故障场景从现象到定位的完整链路笔试中的中等难度题通常不是单独考一个命令而是给你一个现象让你写出排查链路。这类题测试工程师必须重点准备。题目Tomcat服务启动失败提示8080端口被占用请写出排查步骤。参考答案按这个顺序写最容易拿分先确认端口占用情况netstat -tunlp | grep 8080找到占用端口的PID。查看占用进程的详细信息ps -ef | grep PID确认是什么程序占用了端口。如果是遗留的Tomcat进程先尝试正常结束kill -15 PID。如果无法结束再强制杀死kill -9 PID。确认端口已释放后重新启动Tomcatsystemctl start tomcat或执行启动脚本。用ps -ef | grep tomcat确认进程已经启动再用curl http://localhost:8080验证服务是否正常响应。这道题的核心踩分点有两个一是知道用netstat -tunlp | grep定位端口二是知道先确定进程再处理而不是盲目重启。现场面试时我还会追问如果端口是被一个未知进程占用的你怎么判断能不能杀考察的是安全意识和责任心。题目服务器磁盘空间不足应用写入文件失败如何排查参考答案查看磁盘整体使用情况df -h。如果是某个分区满了继续定位大目录du -sh /var/log或du -h --max-depth1。找到大文件后按实际需求清理例如清理旧日志 /var/log/app.log或用logrotate做日志轮转。清理完成后用df -h确认空间已释放。这道题有个非常经典的陷阱df -h显示空间还有剩余但应用依然报No space left on device。这种情况很可能是inode耗尽了需要执行df -i查看inode使用率。文件系统上每个文件都要占用一个inode小文件特别多的时候inode会先被耗尽。这个细节能答出来测试工程师的基础功底就体现出来了。3.3 测试工程师怎么答这类题才加分我筛选测试工程师的时候会更看重排查思路是否完整。纯粹背命令的人会写df -h就停了有经验的人会继续写定位大文件、处理日志、确认空间释放这一整套动作。另外提醒一点场景题里尽量体现先备份、再操作的习惯。比如清理日志文件不要直接rm删除可以写清空的 app.log或者把旧日志归档压缩这种细节在阅卷时非常加分。4. 网络与安全基础网络安全工程师的必争之地网络安全工程师的Linux笔试题重心会明显偏向网络配置、安全特性、日志审计和系统加固。这批题目考的是安全从业者的日常基本功。4.1 网络配置与连通性排查题目如何查看Linux服务器的IP地址答案ip addr或者ifconfig。现在很多新版Linux发行版默认没有装ifconfig更推荐用ip addr。ip命令是iproute2工具包的功能比ifconfig更强大还能管理路由和邻居表。题目如何测试远程服务器的某个端口是否连通这个题至少有三种答案每种都有适用场景ping测试网络连通性走的是ICMP协议不能直接测端口。telnet IP PORT如果端口开放会显示连接成功如果端口不通或防火墙拦截会卡住或提示Connection refused。nc -zv IP PORTnc命令可以快速扫描端口开放状态-z表示不发送数据-v显示详细过程。测试工程师笔试通常写出telnet就够了网络安全工程师建议额外写出nc因为渗透测试、安全排查时nc是常用工具。题目tcpdump抓包抓取访问本机80端口的所有HTTP流量写出命令。答案tcpdump -i eth0 port 80 -w http.pcap-i指定网卡port 80过滤端口-w将抓包结果保存到文件方便后续用Wireshark分析。网络安全工程师笔试写tcpdump命令时记得带上-w的选项说明你有实际分析流量的经验。题目修改DNS配置让服务器通过指定DNS服务器解析域名应该修改哪个文件答案/etc/resolv.conf格式如下nameserver 223.5.5.5 nameserver 8.8.8.8注意部分云服务器或使用systemd-resolved的发行版/etc/resolv.conf会被自动管理手动修改可能被覆盖这种情况需要配套修改NetworkManager或systemd-resolved的配置。这个细节在笔试里属于拔高点。4.2 防火墙、SSH安全与系统加固题目Linux系统常见的防火墙管理工具有哪些如何开放8080端口答案常见的有firewalld和iptables老一些的发行版还有ufw。以CentOS/RHEL的firewalld为例开放端口需要执行firewall-cmd --add-port8080/tcp --permanent firewall-cmd --reload--permanent表示永久生效不加的话重启后规则会丢失--reload让配置立即生效。这块题目对网络安全工程师来说几乎是必考的而且经常会追问修改防火墙规则后如何确认规则已经生效答案是用firewall-cmd --list-ports查看或者用客户端实际访问一次验证。题目SSH服务的安全加固措施有哪些这个题属于问答论述题没有唯一答案但有一点安全经验的人能写出好几条禁止root用户直接登录修改/etc/ssh/sshd_config中的PermitRootLogin no。修改默认端口将Port 22改为高位随机端口减少扫描攻击。使用SSH密钥认证登录在sshd_config中设置PasswordAuthentication no。限制可登录用户和IP来源比如配置AllowUsers和AllowGroups。配置fail2ban等工具对多次登录失败的IP进行自动封禁。阅卷时我会重点看候选人能否从减少暴露面、增强认证、限制来源这三个维度去思考能写出三点就算有安全意识。题目如何查看系统中的登录失败记录这个题目是安全进阶题答好了很加分。登录失败记录主要在/var/log/secure文件中CentOS/RHEL系可以这样查grep Failed password /var/log/secure如果系统启用了lastb命令工具也可以用lastb直接显示登录失败记录。更完整的做法是按照时间窗口查看某段时间的失败日志并提取攻击者IPgrep Failed password /var/log/secure | awk {print $(NF-3)} | sort | uniq -c | sort -nr这串命令是把失败日志中的IP提取出来统计次数并排序能写出来说明你有日志分析能力。这条命令组合了grep、awk、sort、uniq四个命令也是文本处理的典型考题。4.3 应急响应场景安全岗位的压轴题题目某台Linux服务器突然CPU使用率飙升业务响应变慢你如何进行排查请写出排查思路。这类题没有固定命令答案但按先定位异常进程再分析关联行为最后处置的顺序答基本能拿高分。用top或htop查看CPU占用最高的进程记录PID。用top -p PID持续观察该进程的CPU占用变化确认是否为持续异常。用ps -ef | grep PID查看进程的完整路径和启动命令判断是否属于正常业务进程。如果进程路径可疑进一步查看进程的启动时间、连接的外部地址lsof -p PID或ls -l /proc/PID/exe。结合日志分析journalctl -u 服务名或查看/var/log/messages、/var/log/secure确认是否有异常登录或恶意操作。根据分析结果处置疑似挖矿程序则结束进程、清理相关文件和定时任务确认是业务故障则通知相关团队处理。这道题在网络安全工程师笔试里出现率非常高考察的是应急响应思维而不是单纯的命令记忆。阅卷人最不喜欢看到重启服务器这种简单粗暴的回答因为应急响应的核心是先取证、再处置直接重启可能导致恶意程序重启后重新拉起也会丢失内存中的关键证据。5. Shell脚本与文本处理拉开分差的关键模块基础命令大家都背过但能把几个命令串起来解决问题的候选人就明显少了。Shell脚本和文本处理才是把分数拉开差距的地方。5.1 文本三剑客grep、sed、awk题目统计日志文件app.log中ERROR出现的次数。答案grep -c ERROR app.log稍微深入一点的版本是统计ERROR在各行出现的总次数用grep -o ERROR app.log | wc -l。前者是按行匹配一行出现多个ERROR也只算一次后者按实际出现次数统计。这两种统计口径在真实日志分析中都可能用到笔试时能区分说明你踩过坑。题目将配置文件app.conf中所有的127.0.0.1替换为0.0.0.0并保存修改。答案sed -i s/127.0.0.1/0.0.0.0/g app.conf-i表示就地修改s表示替换操作g表示全局替换。注意-i在macOS和Linux上的兼容性略有差异Linux上可以直接加macOS上可能需要sed -i 。题目提取access.log中每行的第一个字段默认按空格分割的IP地址并按出现次数排序找出访问量最大的前10个IP。答案awk {print $1} access.log | sort | uniq -c | sort -nr | head -10这串命令是经典组合拳逐个拆开看awk {print $1}提取每行的第一个字段。sort排序让相同IP排列在一起。uniq -c统计连续相同行的数量。sort -nr按统计结果逆序排列。head -10取前10行。这题基本是网络岗笔试的必考题同时考了文本提取、排序、去重统计三个技能能完整写出来的人说明真的用Linux分析过日志。5.2 笔试中的Shell编程题题目写一个Shell脚本批量创建用户user1到user10并设置初始密码为123456。参考答案#!/bin/bash for i in $(seq 1 10) do useradd user$i echo 123456 | passwd --stdin user$i done这里seq 1 10生成数字序列useradd创建用户passwd --stdin从标准输入读取密码。阅卷重点看循环写法有没有问题变量引用有没有加$以及是否处理了用户已存在的情况。更完善的版本会在前面加判断#!/bin/bash for i in $(seq 1 10) do if id user$i /dev/null; then echo user$i already exists else useradd user$i echo 123456 | passwd --stdin user$i fi done题目写一个脚本检测磁盘使用率超过80%时输出告警。参考答案#!/bin/bash usage$(df -h / | awk NR2 {print $5} | sed s/%//) if [ $usage -gt 80 ]; then echo Disk usage is ${usage}% # 此处可以替换为发送邮件或集成告警平台的curl调用 fi这个脚本把df输出、awk提取、sed处理串了起来是全套基础命令的综合运用。笔试出现类似题目时不需要写得特别复杂先保证逻辑正确再考虑加告警通知和多分区遍历。题目如何配置一个定时任务每天凌晨2点执行/opt/scripts/clean.sh脚本答案编辑当前用户的crontabcrontab -e写入0 2 * * * /opt/scripts/clean.sh五个字段分别是分、时、日、月、周0 2 * * *表示每天2点0分执行。这个知识点在测试环境管理里很实用比如定时清理测试日志、定时重启服务、定时执行自动化测试用例。5.3 阅卷人想从Shell题里看到什么我批改Shell脚本题时最在意两点。第一是代码是否有基本的可读性比如缩进、变量命名清晰第二是有没有考虑边界条件比如目录不存在、用户已存在、参数没传等情况。哪怕是笔试写出带判断的脚本也会让人高看一眼因为线上的脚本必须考虑各种异常场景。另外能用一条命令解决的不要写五条能用内置命令的不要调用外部程序。阅卷人会通过脚本风格判断你日常写不写Shell比如[ $usage -gt 80 ]里的空格漏掉脚本就会报错这种小细节比背概念更能看出功底。6. 测试工程师与网络安全工程师高频考点差异对照虽然都是考Linux但两个岗位的考察侧重点有明显差异。把差异搞清楚复习时才能有的放矢。6.1 两个岗位的考点差异对比维度测试工程师网络安全工程师文件权限了解chmod、chown基本用法即可深入掌握SUID/SGID/粘滞位及排查命令进程管理重点考端口占用排查、服务启停、日志定位重点考异常进程发现、资源占用分析与处置网络命令ping、telnet、curlnc、tcpdump、ss、防火墙规则日志分析定位应用报错、过滤业务关键字登录日志审计、异常行为分析、日志取证Shell脚本写自动化测试脚本、批量处理数据写安全巡检脚本、批量加固脚本安全加固一般性了解即可必考SSH安全、防火墙策略、系统基线加固故障排查服务起不来、磁盘满、端口占用服务器被入侵、挖矿进程、异常外连6.2 给测试工程师的复习清单测试工程师准备Linux笔试建议按重要性排序文件与目录find、grep、tar、cp -r、mv、重定向。这些是环境部署的日常操作。进程与端口ps -ef | grep、netstat -tunlp、lsof -i、kill、systemctl。服务起不来的问题全靠这套命令排查。日志定位tail -f、tail -100、grep -n、组合使用grep和awk过滤日志。建议自己对着业务日志练一练从海量日志里提取关键字和统计次数。Shell脚本基础for循环、if判断、变量、$( )。至少能写一个批量操作文件或批量请求接口的脚本。数据库与中间件MySQL的mysql -u -p登录、show processlist、Redis的redis-cli连接、Nginx的配置文件目录。测试环境的日常运维经常用到。6.3 给网络安全工程师的复习清单网络安全工程师的复习重心完全不同权限与安全机制SUID/SGID/粘滞位原理、查找提权文件的命令、关键目录文件权限基线。系统加固SSH安全配置、防火墙策略、账号与口令策略、最小化安装与无用服务清理。日志审计/var/log/secure登录日志、/var/log/messages系统日志、journalctl、dmesg会用grep、awk、sort、uniq做统计和溯源。网络排查与抓包ss、netstat、nc、tcpdump能从大量连接中找出异常外连。应急响应用top、ps、lsof、ls -l /proc/PID/exe定位可疑进程用find按时间查找最近被修改的文件用crontab -l检查恶意定时任务。两个岗位的复习时间分配建议是测试工程师花60%精力在命令实操、30%在场景排查、10%在shell脚本网络安全工程师花40%在安全机制、30%在日志与应急响应、20%在网络命令、10%在Shell脚本。7. 笔试答题的实战技巧与备考建议7.1 答题策略不会写完整命令也要拿踩分点笔试时最怕遇到这题我见过但命令忘了的情况。我的建议是哪怕记不全也要把关键命令名和思路写上去阅卷是看踩分点的。比如问如何查看8080端口被哪个进程占用如果你记得netstat但记不清参数可以写使用netstat命令配合grep过滤8080找到进程PID后进一步查看进程详情。这样至少能拿到一半的分数。相反留空白是肯定没分的。场景题按定位、分析、处理、验证四步来答不要跳步。例如服务启动失败怎么排查定位查看服务状态systemctl status xxx看报错信息。分析如果提示端口冲突就用netstat -tunlp查端口如果提示配置文件错误直接打开配置文件检查语法。处理关闭占用进程或修正配置后重新启动。验证systemctl status xxx确认服务active再用curl或实际请求验证业务正常。按照这个顺序写逻辑完整阅卷人看起来也舒服。7.2 备考方法动手实操比背题重要得多说句掏心窝的话Linux笔试通过率和大半年真实使用经验是强相关的。不看任何资料在一台虚拟机上跑一遍环境部署、日志排查、脚本编写比死记硬背一百道题有效得多。具体操作建议找一台虚拟机装一个主流发行版CentOS Stream、Ubuntu Server或Rocky Linux都可以每天抽半小时练习命令重点练find、grep、awk、sed、netstat这些高频命令的组合用法。自己动手部署一个简单的Web服务比如Nginx或Tomcat然后故意制造故障改错配置、占用端口、写满磁盘再自己排查。这个过程练一遍笔试场景题基本都能应对。维护一份自己的命令速查笔记按文件操作、进程管理、网络排查、日志分析、Shell脚本分门别类遇到新命令就补进去。面试前拿出来过一遍比临时翻书效率高得多。做笔试题时不要只看答案对不对要思考为什么用这个命令而不是另一个。比如能定位端口的有netstat、ss、lsof三种区别是什么在什么场景用哪个这些理解才是笔试拉开差距的地方。7.3 最后说点实际体会这几年我筛简历和试卷一个很明显的感受是Linux笔试成绩好的人入职后的上手速度通常也快。原因不复杂愿意花时间练Linux的人本身就具备主动排查问题和动手实验的能力这两个特质在测试和安全岗位上比背多少理论都值钱。所以这份题集不是终点而是起点。笔试题里出现的每一个场景都值得你在真实环境里亲手操作一遍。把服务器当自己的练习场等你能不看资料完成部署一个服务、排查一个故障、写一个自动化脚本这套流程时Linux笔试对你来说就不再是障碍了。