别以为会几个命令就够,真正的考验是把你扔进只有终端窗口的服务器,看你能否生存下来
面试官考察你熟悉程度,核心就看一点:把你扔到一个只有黑色终端窗口的服务器上,你能活下来吗?你能干活吗?你能解决问题吗?
如今的开发环境,尤其是后端、数据、算法领域,本地开发早已不是主流。如果你搞大模型,哪怕是微调一个7B的小模型,本地那台MacBook Pro也带不动,必须连到公司的算力集群上。这时候,Linux就是空气,就是水。
一个真实场景
一位刚入职的校招生,分到了两张A100显卡,心情激动,准备跑一个开源的训练脚本。他打开终端,SSH连上去,不管三七二十一直接运行python train.py。结果呢?程序跑了一半崩了,报错信息满屏飞。
这时候,熟悉Linux的人和不熟悉的,区别就出来了。
不熟悉的人会截图发群里问导师:”哥,这咋报错了?”导师一看,OOM Killer杀掉了进程,或者是CUDA版本不对,或者是数据盘挂载的权限问题。导师心里就会给你打个标签:这孩子基础不行,还得带。
熟悉Linux的人会怎么做?他会先用nvidia-smi看看显存占用,用htop看看CPU和内存是不是爆了,去/var/log或者当前目录下的log文件里用grep搜一下error关键字,甚至用dmesg看看内核有没有异常。他能定位到问题,然后尝试解决。
实在解决不了,去问导师的时候会说:”我查了日志,发现是Systemd杀掉了我的进程,好像是因为cgroup限制了内存,您看能不能帮我调大一点配额?”
高下立判。
所以,校招中的”熟悉”,是指工具属性的熟练,加上系统原理的感性认知。
第一板块:文件系统与权限 — 别把自己关在门外
这部分是最基础的,但也是坑最多的。现在的服务器环境,往往是多租户、容器化的。你不再是这台机器的主人,你只是一个寄居在容器或者特定用户组里的租客。
你需要理解Linux的树状结构。这不是让你背目录,而是理解逻辑。/bin放命令,/etc放配置,/var放日志和动态数据,/home是你的家。
重点来了,权限(Permissions)。
很多新手遇到“Permission denied”,第一反应就是sudo chmod 777。在面试里,你敢说你在生产环境干过这事儿,我直接就把简历扣下了。这叫极度不专业。777意味着谁都能写谁都能删,这在共享环境里是灾难。
你需要懂的是rwx(读写执行)对于文件和目录的不同含义。目录的x权限决定了你能不能cd进去,能不能ls里面的列表。你需要懂chown和chgrp。
还有软链接(Soft Link)和硬链接(Hard Link)。别背定义。想想场景。在训练模型时,数据集很大,几TB,放在/data/dataset下面。你的代码里写死了一个路径./data。你不可能把几TB数据拷过来吧?这时候ln -s就救命了。
第二板块:进程管理与资源调度 — 深水区
这是区分初级码农和资深工程师的分水岭。代码写得再好,跑不起来或者跑得慢,都是白搭。
在2025年,所有的应用几乎都是长驻后台的。你得懂怎么把程序扔到后台去跑。别告诉我你还在用SSH窗口跑训练,网一断,进程就挂了,几千块钱的电费就打水漂了。
你得熟悉nohup、&,以及更高级的tmux或screen。
强烈建议现在就去学tmux。它能让你的终端会话在服务器上永生。面试的时候你可以顺嘴提一句:”我习惯用tmux管理会话,这样方便同时监控显卡状态和训练日志,网络波动也不怕。”这句话一出,老鸟都会会心一笑。
然后是进程状态。什么叫R(Running),什么叫S(Sleeping),什么叫D(Uninterruptible Sleep),什么叫Z(Zombie)。
这里有个经典面试题:什么是僵尸进程?怎么产生的?怎么杀?
很多同学背答案:父进程没回收子进程。对是对,但没灵魂。你要结合实际:我在做数据预处理的时候,用了Python的Multiprocessing库开了多进程,结果主程序挂了,子进程没退干净,或者代码写挫了,没正确join,导致机器上一堆defunct进程,内存泄露。
这时候你得知道僵尸进程你是kill不掉的,因为它们已经死了,你得杀它们的父进程。这种回答才叫有血有肉。
资源监控是重中之重。现在的服务都是吃资源大户。
top命令是基本功,但太丑了。你应该要熟悉htop。甚至是glances。你需要一眼看出来,现在的瓶颈在CPU,还是内存,还是IO。
举个例子:你在训练大模型,发现GPU利用率总是忽高忽低,甚至长期0%。小白会以为代码写错了。熟悉Linux的人会去看CPU Load。
如果Load很高,说明CPU来不及给GPU喂数据(预处理太慢)。如果Load很低,但iowait很高(top里那个wa),说明磁盘读不过来了,瓶颈在硬盘IO。
这时候你可能需要把数据集搬到NVMe SSD上,或者检查一下是不是有人在跟你抢磁盘带宽。
这就是通过Linux指标反推业务瓶颈。这种能力,是校招里的杀手锏。
第三板块:文本处理与管道 — 命令行的艺术
Linux的哲学是万物皆文件,小程序组合干大事。这就是管道的魅力。
你不需要精通grep、awk、sed的所有参数,那是非人类干的事。但你需要知道它们能干什么。
场景又来了:服务器上有一个100GB的日志文件,我想找找昨天晚上8点到9点之间,所有包含Error关键字的行,统计一下是哪个模块报错最多。
你别想着把文件下载到本地用Excel打开,那是不可能的。你必须在服务器上搞定。
bash
grep"2025-12-20 20:"access.log|grep"Error"|awk'{print $5}'|sort|uniq-c|sort-nr|head-n10这行命令就是钱。你不用背下来,但你要知道这个逻辑链条:先过滤时间,再过滤关键字,再提取某一列(比如模块名),再排序,再去重计数,再按数量倒序,最后取前10个。
如果你在面试里能顺手写出这种逻辑的Shell命令,甚至不需要语法完全正确,只要逻辑对,面试官就会觉得你非常靠谱。这说明你有处理大规模数据的思维方式。
第四板块:网络基础 — 看不见的血管
校招不用你会配置复杂的iptables防火墙规则,那是运维的事。但你得懂基本的网络排查。
你写了一个Web服务,监听8080端口,结果外面访问不了。你得会查。
netstat -tlnp或者ss -tlnp。这俩命令必须烂熟于心。看看端口起没起来?绑定的IP是127.0.0.1还是0.0.0.0?这区别大了去了。127只能本机访问,0.0.0.0才是对外开放。
还有SSH Tunneling(端口转发)。这在AI开发里太常用了。服务器在内网,跑了个Jupyter Notebook或者TensorBoard,我想在宿舍的浏览器里看。你能不能用ssh -L把服务器端口映射到本地?
面试官问你:”如果ping不通百度怎么办?”
别光说断网了。你要有分层排查的逻辑:
ping 127.0.0.1,看协议栈挂没挂
ping网关,看局域网挂没挂
ping 8.8.8.8,看是不是DNS解析的问题
还没通?用traceroute看看断在哪一跳了
这种逻辑清晰的回答,比你背诵TCP三次握手那个图要管用得多。
第五板块:2026年的新常态 — 容器与环境管理
这点必须单独拎出来说。在现在这个时间节点,Docker和Kubernetes已经成为Linux能力的一部分了。
你得懂怎么在Linux上用Docker。怎么把本地目录挂载进去,怎么把端口透传出来,怎么查看容器日志。
更重要的是环境管理。Linux现在的Python环境简直是地狱。系统自带一个Python,Conda装一个,Virtualenv搞一个。你得搞清楚PATH环境变量的作用。
为什么你在终端输入python调用的不是你刚装的那个?因为shell是按PATH里的路径顺序去找可执行文件的。用which python看看它到底指向哪里。
还要懂动态链接库。运行程序报错error while loading shared libraries: libcudart.so.12。这时候别慌。这通常是LD_LIBRARY_PATH没设对,或者库没装。用ldd命令看看你的程序依赖哪些库,哪些是found,哪些是not found。这能帮你解决99%的环境坑。
进阶建议:不要为了学Linux而学Linux
很多同学最大的问题是把Linux当成一门课来学,学完了去考试。这是错的。Linux是一个底座,是你的工作台。
建议大家不管是做毕设,还是自己玩项目,强迫自己把开发环境迁移到Linux上去。现在的Windows有WSL2,做得非常好了,几乎和原生Linux体验一致。
从此以后:
别在Windows的图形界面里解压文件了,试着用tar命令
别在资源管理器里建文件夹了,试着用mkdir
别用记事本改配置了,逼自己学一下Vim。不需要精通Vim的所有骚操作,但至少要会i进入编辑模式,:wq保存退出,dd删一行,/搜索
当你习惯了键盘不离手,习惯了Tab键补全,习惯了用history找之前的命令,你就入门了。
总结一下
校招问你“熟悉Linux”,其实是在问:
常用命令肌肉记忆:ls、cd、grep、find、tar、ps、kill、top、netstat、ssh、chmod、chown...这些要像呼吸一样自然
问题排查逻辑:出了错知道去哪看日志,知道怎么看资源占用,知道怎么看网络连接
脚本能力:能写简单的Shell脚本或者是Python脚本来自动化处理琐事
环境生存能力:懂环境变量,懂权限,懂Docker基本操作,懂Vim基本编辑
不要去背内核源码,除非你是去面内核开发岗。不要去背那些一辈子用不到一次的冷门参数。
把时间花在理解文件、进程、网络这三个核心概念在Linux下是如何交互的。
技术在变,但底层的逻辑没变。2026年的AI大模型跑在GPU上,但GPU插在主板上,驱动跑在Kernel里,控制跑在User Space。
只要你掌握了Linux的这套交互逻辑,不管上面跑的是Transformer还是未来的什么黑科技,你都能稳得住。