这两年我面试测试工程师和网络安全工程师,简历里十个有九个写“熟悉Linux”,但真到笔试环节,能拿满分的寥寥无几。不是题难,是很多人背了命令却不知道考点背后的工作场景。网上那些“100道Linux笔试题”我也看过不少,答案背得溜不等于会干活,但完全不刷题、纯靠现场发挥,大概率会栽。这篇文章我就把这些年反复出现的Linux笔试考点和网络安全方向的大题思路整理出来——不光是给你答案,重点是说清楚出题人想考什么、你该怎么答才显得“懂行”。不管你是准备转行做测试,还是已经在安全方向摸爬滚打,拿去对照自查,至少能少踩一半的坑。
1. 为什么测试和网络安全岗位的笔试都绕不开Linux
1.1 测试工程师笔试的Linux考点长什么样
测试工程师日常打交道最多的三个环境,基本都跑在Linux上:被测服务器、测试环境、以及各种中间件和应用容器。你负责的功能部署在Linux服务器上,出了问题第一件事就是得能登上去看日志、查进程、建测试数据、清缓存。这些动作背后全是Linux命令。所以笔试阶段不会问你特别深的系统原理,而是把工作中最高频的操作直接变成题目,用一条命令、一个参数、一段输出来考察你的“基本功是否过关”。
常见出题方向包括:文件与目录操作、权限管理、进程管理、文本处理、网络排查、日志查看、定时任务。这些内容在笔试里占了七成以上的分值。出题人真正想通过题目确认的是,你遇到“服务起不来”“接口报错”“数据对不上”这类问题时,能不能用Linux命令快速定位,而不是只会打开浏览器点点点。
1.2 网络安全工程师的Linux笔试更偏什么
网络安全工程师用Linux的深度和测试不一样。测试更多是把Linux当作工具环境来用,而安全方向会把Linux本身作为分析对象,甚至作为攻击和防御的第一现场。笔试题目通常围绕几个安全场景展开:日志分析与入侵痕迹排查、权限与账号安全、计划任务与自启动项检查、端口与服务暴露面、系统加固与防火墙策略。这些题目很多时候不是单纯考“这条命令怎么写”,而是给你一段日志、一个异常进程、一个可疑文件,让你按步骤还原问题、给出处置方案。
也就是说,网络安全方向的Linux笔试更看重“排查思路”和“安全敏感度”。一道大题可能不给标准答案,但会考察你能不能想到去查/var/log/secure、敢不敢用lsof看进程打开了哪些文件、有没有意识去检查SUID文件和隐藏的定时任务。能把这些动作落在笔头上,就已经超过大部分候选人了。
1.3 两类岗位考题差异对照
| 考察维度 | 测试工程师 | 网络安全工程师 |
|---|---|---|
| 核心目标 | 保证功能正确、能快速定位缺陷 | 发现风险、分析入侵、恢复与加固 |
| 重点命令 | ls、grep、tail、top、ps、netstat | 日志、find、lsof、ss、iptables、audit |
| 典型题型 | 给你场景选命令、命令参数辨析 | 日志分析、入侵排查、安全加固方案 |
| 题量占比 | 基础命令+简单场景 70% | 场景题+分析题 60%以上 |
| 加分能力 | 会看日志、会查性能、会造数据 | 有排查路径、懂原理、能写加固建议 |
这个差异很容易被忽略。很多测试方向的朋友拿着一堆安全题来问,很多安全方向的朋友又在抠测试用到的基础命令,其实没必要。先把对应岗位的侧重点搞明白,备考效率能翻一倍。
2. 测试工程师Linux笔试题高频考点与答案解析
2.1 文件与目录:必考的权限、查找和打包题
文件操作是Linux笔试里最基础也是最好拿分的部分,但越是基础,越容易在细节上翻车。比如最常见的这道题:
题目:ls -l输出drwxr-xr-x 2 root root 4096 Mar 1 10:30 /data,解释每部分含义。
这题看着简单,但很多人会漏答。正确答案是:d表示目录,后面9个字符分三组,每组三位,依次表示文件所有者、所属组、其他用户的权限。r=4、w=2、x=1,所以rwxr-xr-x对应754,即所有者可读可写可执行,组用户和其他用户只可读可执行。2是硬链接数,root root分别是所有者和所属组,4096是大小,Mar 1 10:30是时间,/data是文件名。笔试里如果再延伸,问你chmod 754和chmod u=rwx,g=rx,o=r是否等价,你需要能反应过来两者效果相同,只是表示形式不一样。
另一个高频考点是查找文件。find命令几乎每年都出现,而且出题方式越来越贴近真实工作:
题目:查找 /var/log 下7天前修改、后缀为 .log 且大于100MB的文件并删除。
标准答案是:
find /var/log -name "*.log" -mtime +7 -size +100M -exec rm {} \;这里有几个细节容易被扣分:-mtime +7表示超过7天,不是7天以内;-size +100M注意M是大写,小写m会让语义变掉;rm {} \;的结尾分号要转义,很多笔试填空题就考这个分号。我在实际工作中更推荐先用-exec ls -lh {} \;确认一遍再删,笔试可以不写,但面试被追问时可以提,这是加分项。
打包压缩题也常见,重点考tar的参数组合。tar -czvf分别对应create、gzip压缩、verbose显示过程、指定文件名,解压用tar -xzvf。很多人记不清c和x的区别,口诀就是“c是create,x是extract,有z代表走gzip”。如果看到.tar.bz2后缀,参数要换成-j而不是-z,这也是高频混淆点。
2.2 进程与系统监控:top、ps、free这些命令的隐藏考点
测试工程师排查性能问题和环境卡顿时,进程和系统监控命令就是第一梯队。笔试里最常见的考法不是让写命令,而是给你一段top或free的输出,让你判断系统状态。
题目:在top输出中看到load average: 8.10, 5.20, 3.05,机器是4核CPU,此时系统处于什么状态?
Load average三个值分别代表1分钟、5分钟、15分钟的平均负载。这里有个经典误区,很多人看到8.1就慌了,直接说“系统死机了”。正确的判断标准是看负载与CPU核心数的比值。4核机器,1分钟负载8.1明显超过了核心数,说明系统最近1分钟任务排队比较严重;但5分钟5.2、15分钟3.05在逐渐下降,说明可能只是一波瞬时请求打过来,系统正在恢复。如果三个值都长时间维持在高位,那才需要进一步排查CPU、内存和磁盘IO。答题时如果能把这个“趋势判断”说清楚,面试官就能看出你不是背的。
ps和top的区别也是送分题中的陷阱题。top是动态刷新,相当于持续监控;ps是拍一张静态快照。ps aux和ps -ef两张表信息略有差异,但都能看进程。笔试如果问“如何找到CPU占用最高的进程”,我喜欢先答top然后按P键排序,再补充说明也可以配合ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head -5。这个写法在面试里很加分,因为它展示了你对输出格式和排序逻辑的掌握。
内存这块绕不开free命令。题目经常问buff/cache是什么,能不能手动回收。简单说,buff是块设备读写缓冲,cache是文件系统缓存,两者都是为了加速IO。系统内存紧张时,sync && echo 3 > /proc/sys/vm/drop_caches可以清理pagecache,但生产环境不建议随手执行,因为刚清完缓存会短暂降低IO性能。笔试里答出“可以清理,但需要评估业务影响”,比单纯写命令高一档。
2.3 网络与日志排查:测试环境排错最常用的几条命令
测试环境和线上环境一旦出问题,第一反应基本是登服务器查端口、查连通性、看日志。这部分笔试的题最贴近真实工作,也是区分“用过Linux”和“没实际干活”的分水岭。
题目:8080端口被占用,如何找到占用该端口的进程并杀掉?
高频答案是先netstat -tlnp | grep 8080看PID,再kill -9 进程PID。但这里有两个细节值得注意。第一,netstat -tlnp已经能看到pid和进程名,比较方便;如果机器上没有netstat,可以用ss -tlnp替代,这也是新版系统推荐的做法。第二,kill -9不是唯一的杀进程方式,更标准的流程是先kill(默认发送SIGTERM信号,让进程优雅退出),没反应再kill -9。测试环境图省事可以直接-9,但笔试这么写会在面试环节被追问。
日志查看类的题目,tail命令的出镜率极高。tail -f app.log能实时跟踪日志文件,这是测试期间盯接口报错最常用的命令。进阶一点的考法会问到grep搭配,比如“从今天所有日志中找出包含ERROR且排除订单超时的记录”。答案是:
grep "2026-03-15" /var/log/app/*.log | grep "ERROR" | grep -v "timeout"grep -v是反向匹配,笔试里经常和grep -i(忽略大小写)、grep -c(统计次数)、grep -E(扩展正则)一起考。我见过太多人在grep -E和egrep之间纠结,其实两者等价,但现代写法更偏向grep -E。
网络连通性这块,ping和telnet都是基础。telnet在云环境里经常没装,笔试题目如果问“端口通不通”,可以答telnet ip port,也可以补充说用nc -vz ip port更轻量。在需要下载文件、排查代理问题时,curl -I看响应头、curl -v看详细请求过程也是测试高频命令。
2.4 高频题速查表
| 考察点 | 高频命令 | 易错点 |
|---|---|---|
| 查看端口占用 | netstat -tlnp / ss -tlnp | 漏加-p看不到进程 |
| 实时看日志 | tail -f / tail -F | -F能处理日志轮转,更稳 |
| 查找文件 | find /path -name -type -size -mtime | 路径范围、时间参数容易写反 |
| 过滤日志 | grep -E / grep -v / grep -c | 正则元字符需转义 |
| 查看进程 | ps -ef / ps aux / top | top动态,ps静态 |
| 杀进程 | kill / kill -9 | 先试kill,无效再-9 |
| 磁盘占用 | df -h / du -sh * | df看分区,du看目录 |
| 压缩解压 | tar -czvf / -xzvf | gzip用z,bzip2用j |
| 定时任务 | crontab -l / -e | 五个时间字段顺序不能错 |
| 修改网络 | ip addr / nmcli / ifconfig | 新版系统ifconfig常缺失 |
这张表我建议你打印出来贴在工位旁边,笔试前过一遍,面试前再过一遍。不是让你背,而是让你形成一个条件反射——看到什么场景,脑子里能跳出对应的命令。
3. 网络安全工程师Linux笔试大题:场景型题目的答法
3.1 日志分析大题:从Failed password到可疑IP溯源
网络安全方向的Linux笔试大题,很少单纯考命令,几乎都是以一段日志或一个异常现象开头,让你做入侵排查。这类题目考查的其实是一条完整的分析路径。
典型题目是这样的:管理员发现服务器SSH登录日志里有大量Failed password for root from 203.0.113.5 port 34822 ssh2记录,问你怎么处置。
我看到很多候选人上来就写“封IP”,这不算错,但综合得分不高。更完整的答案应该是一个有序的排查流程:
第一步,确认日志位置。CentOS/RHEL看/var/log/secure,Ubuntu/Debian看/var/log/auth.log,写清楚这是SSH的认证日志。
第二步,统计攻击来源和次数,用命令圈定范围。比如:
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr解释一下这个命令的思路:awk取IP列,sort把相同IP聚到一起,uniq -c统计次数,再按次数降序排序。这条命令在笔试里写出,比只写“用grep查一下”直观得多。
第三步,检查除了失败记录,是否还有成功登录。grep "Accepted" /var/log/secure,如果发现同一IP或陌生用户成功认证,问题等级立刻上升,需要继续排查历史命令、账户变动、定时任务。
第四步才是处置,包括防火墙封禁来源IP、修改SSH端口、禁止root直接登录、检查是否残留了后门账号。
这类大题想拿高分,核心不是命令多复杂,而是你的回答里有“统计确认→溯源分析→处置加固”的完整链条。我批过太多试卷,只写“把IP封了”的,基本都进不了下一轮。
3.2 应急响应大题:CPU飙高、端口异常、隐藏进程怎么查
应急响应类的Linux笔试大题,经常给你一个“症状”,让你做初步诊断。比如:线上服务器CPU占用率持续100%,top看不到明显的高CPU进程,怎么办。
这个题目比普通性能排查难,因为加入了“入侵排查”的视角。正常的排查顺序是先看进程,但题目已经说了top里看不到,这时候要怀疑进程被隐藏或者有高CPU进程快速起停。我建议答题时给出分层排查路径:
第一层,用ps -ef和top交叉对比,看看有没有进程在快速消失。可以配合top -d 1刷新,或者用ps -eo pid,comm,%cpu --sort=-%cpu | head持续采样几次。
第二层,检查系统负载来源,可能是磁盘IO或网络中断导致CPU的软中断和硬中断飙高。top按1展示每个核心,然后查看si和hi字段,配合vmstat观察wa、sy、us的占比。
第三层,如果怀疑恶意挖矿程序,检查网络连接。ss -tunp找出活跃的对外连接,看看有没有指向陌生IP的长连接。很多挖矿木马都会和矿池地址保持连接,ss列出来以后用lsof -p PID确认进程打开的socket和文件。
第四层,查异常文件与自启动项。ls -lt /etc/init.d/、查看/etc/rc.local、检查crontab -l和系统级的/etc/crontab,再配合find /tmp -type f -mtime -1看看最近有没有可疑文件。
这种题目考的是“你脑子里有没有一张应急响应地图”。笔试答题时按这个顺序展开,就算没有真实环境操作,面试官也能看出你具备基本的事件处置思维。
3.3 权限与安全加固大题:SUID、计划任务、SSH加固
权限类题目是网络安全Linux笔试的大热门,因为这直接对应系统加固和提权路径分析。最经典的莫过于SUID的考察。
题目:如何找出系统中所有具有SUID权限的文件?执行find / -perm -4000 -type f 2>/dev/null之后,重点检查哪些目录?
-perm -4000的含义是匹配包含SUID位(setuid,八进制4000)的文件。答案里要重点检查/usr/bin、/usr/sbin、/usr/local/bin等常规命令目录,因为攻击者经常通过给bash、python、find等命令加上SUID位来获得更高权限。笔试如果继续深入,可能会问“SUID为什么有风险”,你要能答出:当可执行文件设置了SUID位后,进程运行时EUID会被设置为文件所有者的UID,如果所有者是root,程序就能以root身份执行。所以系统里出现非预期的SUID文件,本身就是一条重要入侵信号。
另一个高频安全问题出在计划任务上。题目会让排查可疑的cron任务,并说明为什么攻击者喜欢用cron。答题要点包括:当前用户用crontab -l,系统级计划任务直接看/etc/crontab和/etc/cron.d/目录,注意/var/spool/cron/下各用户的定时任务文件。攻击者用cron做权限维持,是因为定时任务可以周期性执行脚本,即使当前会话断开也照常运行。笔试里如果能补充一句“检查cron脚本内容时,重点关注带base64解码、wget/curl下载外联、写文件到/tmp等特征的命令”,基本就是加分项了。
SSH加固类的题目也很常见,比如:“生产环境如何安全配置sshd”。标准答案里应包含几条核心项:修改默认端口、PermitRootLogin no禁止root远程登录、PasswordAuthentication no关闭密码认证改用密钥登录、MaxAuthTries限制尝试次数、通过AllowUsers白名单限制可登录账号。这些条目要能按优先级排列,先说影响最大的,再说细节优化。
3.4 防火墙与系统加固:笔试里常考的iptables/firewalld配置
防火墙是网络安全的必考模块,Linux笔试一般两种考法,一种直接让你写命令,一种给你个场景让你设计规则。写命令的考法经常围绕iptables的增删改查:
题目:只允许192.168.1.0/24网段访问本机22端口,如何写iptables规则?
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP写的时候有两点容易被扣分:一是顺序,ACCEPT要先于DROP,否则先DROP再ACCEPT也没用,因为规则从上往下匹配;二是默认策略,如果INPUT默认是DROP,那么第二条甚至可以省略,只写ACCEPT就行。答题时把这两句的特点说明白,比堆规则更显专业。
现在很多新系统默认装了firewalld而不是iptables,所以firewalld的基础操作也要会:
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 port port=22 protocol=tcp accept' firewall-cmd --reloadfirewalld的--permanent参数必须配合--reload才生效,这个点笔试经常挖坑。我建议答防火墙相关题目时,先说明自己用的是哪一层工具,再做配置,思路会清晰很多。
系统加固类的题目还经常考察文件权限最小化,比如/etc/shadow只能root读取、日志目录不要用777权限、web目录的上传目录最好禁用执行权限。这类题没有唯一标答,但一定不能答出“为了方便全部777”这种话。笔试里出现这种致命回答,基本一票否决。
4. 笔试避坑指南:那些容易丢分的“陷阱题”和备考经验
4.1 常见陷阱题:解压乱码、空间不释放、软硬链接混淆
刷题刷多了你会发现,Linux笔试里有一批“看似简单、丢分率高”的陷阱题,它们的特点是把日常工作中的真实问题包装成选择题或填空题。
第一个是解压乱码。压缩包在Windows上生成后再到Linux解压,中文文件名经常变成乱码,原因是编码不一致。低版本unzip默认按系统本地编码解压,可以用unzip -O GBK file.zip指定编码解决。如果系统不支持-O参数,可以用7z x file.zip配合语言设置,或者用Python处理。答题时别只说“重新上传”,要落实到命令上。
第二个是删了文件但磁盘空间没释放。题目会描述“删除某个大日志后,df -h显示磁盘还是满的”,问原因和排查方法。原因通常是日志文件正被进程占用,文件删除了但句柄没释放。排查命令是:
lsof | grep deleted找到占用文件的进程PID后,重启进程或者kill,空间才会真正释放。这道题在现场面试里被问过太多次了,能答出lsof | grep deleted的基本直接过关。
第三个是软链接和硬链接的区分。软链接相当于Windows的快捷方式,删掉源文件就失效;硬链接指向同一个inode,只要还有一个链接存在,数据就不会丢。笔试常考ln -s和ln的区别,以及ls -l第二列的硬链接数字为什么会是2甚至更大。这部分理解了再记忆,死记硬背很容易忘。
4.2 从刷题到实战:测试机、虚拟机与命令速查习惯
光刷题不实操,笔试就算过了,面试或者入职后的实际工作很容易露馅。我强烈建议你准备一台虚拟机,装个主流发行版,把高频命令在真实环境里跑一遍。不用多复杂,本地用VMware或者VirtualBox装个系统,每天花15分钟做三件事就够:模拟场景排查端口占用、写一个cron定时任务、用find和grep组合找文件。这些操作都是笔试的核心考点,练一遍比刷十遍题记忆都深刻。
平时工作中遇到要反复查的命令,我会建一个个人速查笔记,按场景记录。比如“查OOM杀进程日志”去/var/log/messages或dmesg,“查看系统启动时间”用uptime,“查看文件被哪个进程占用”用fuser和lsof。不要等到笔试前才突击,把查命令的习惯融入日常,笔试反而是最轻松的一环。
另外提一句,现在不少企业开始使用国产Linux发行版作为测试和安全环境,比如统信UOS、麒麟等。虽然命令体系和主流发行版基本一致,但包管理器、目录细节可能有差异。如果你候选简历里能写上兼容性测试或国产化环境适配的经验,在测试和安全岗的面试中会是一个不错的差异化优势。
4.3 面试官视角的评分逻辑:结构化答案最加分
我批过不少笔试考卷,也参与过面试评分。从面试官视角给你交个底:大部分Linux笔试题,并不是看你背得完不完整,而是看你的答案有没有“结构化表达”。
什么叫结构化?举个例子。题目问“服务端口频繁被占用,怎么排查”,低分回答是“netstat -anp | grep 端口”。高分回答会分三步:先确认端口占用情况,再定位进程来源,最后判断是业务冲突还是异常连接,并给出对应处置。同样一道题,后者即使命令写得不全,思路的完整性也会给面试官留下好印象。
面试追问阶段也是同样的逻辑。如果你能在写完kill -9 PID后,主动提一句“生产环境我会先kill,再确认端口释放,必要时排查父进程,避免服务被守护进程自动拉起”,面试官对你Linux水平的判断会明显高一个层级。这些扩展内容不用刻意背,平时干活的时候多留个心,回答自然到位。
最后说点实在的:笔试只是入场券,真正拉开差距的是你拿到问题后的第一反应和排查路径。刷题能让你不慌,但只有实打实在Linux环境里折腾过几次,你才能把命令和场景真正对上号。这个功夫,谁也替不了你。